Partager via


Qu’est-ce que la reconnaissance vocale incorporée ?

Le service Embedded Speech est conçu pour les scénarios de reconnaissance vocale et de synthèse vocale sur appareil où la connectivité cloud est intermittente ou indisponible. Par exemple, vous pouvez utiliser la reconnaissance vocale intégrée avec du matériel industriel, une unité de climatisation à commande vocale ou une voiture susceptible de se déplacer dans une zone hors de portée. Vous pouvez également développer des solutions cloud hybrides et hors connexion. Pour les scénarios où vos appareils doivent se trouver dans un environnement sécurisé comme un établissement bancaire ou une entité gouvernementale, vous devez d’abord envisager d’utiliser des conteneurs déconnectés.

Important

Microsoft limite l’accès à Embedded Speech. Vous pouvez demander un accès par le biais de la révision d’accès limité au message incorporé Azure AI Speech. Pour plus d’informations, consultez Accès limité pour Embedded Speech.

Plateforme requise

Embedded Speech est inclus dans le SDK Speech (version 1.24.1 et ultérieure) pour C#, C++ et Java. Reportez-vous aux exigences générales d’installation du SDK Speech pour connaître les détails propres aux langages de programmation et plateformes cibles.

Choisir votre environnement cible

Nécessite Android 7.0 (API niveau 24) ou une ultérieure sur du matériel Arm64 (arm64-v8a) ou Arm32 (armeabi-v7a).

La synthèse vocale incorporée avec des voix neuronales est uniquement prise en charge sur Arm64.

Limites

Embedded Speech est uniquement disponible avec les SDK C#, C++ et Java. Les autres SDK Speech, l’interface CLI Speech et les API REST ne prennent pas en charge Embedded Speech.

La reconnaissance vocale incorporée prend uniquement en charge les format audio WAV codé par PCM mono 16 bits, 8 kHz ou 16kHz.

Les voix neuronales incorporées prennent en charge le RIFF/RAW de 24 kHz, avec une exigence de RAM de 100 Mo.

Packages SDK Speech incorporés

Pour les applications incorporées C#, installez le kit de développement logiciel (SDK) Speech suivant pour les packages C# :

Package Description
Microsoft.CognitiveServices.Speech Obligatoire pour utiliser le kit de développement logiciel (SDK) Speech
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR Obligatoire pour la reconnaissance vocale incorporée
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Obligatoire pour la synthèse vocale incorporée
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime Obligatoire pour la reconnaissance et la synthèse vocale incorporées
Microsoft.CognitiveServices.Speech.Extension.Telemetry Obligatoire pour la reconnaissance et la synthèse vocale incorporées

Pour les applications incorporées C++, installez le kit de développement logiciel (SDK) Speech suivant pour les packages C++ :

Package Description
Microsoft.CognitiveServices.Speech Obligatoire pour utiliser le kit de développement logiciel (SDK) Speech
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR Obligatoire pour la reconnaissance vocale incorporée
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Obligatoire pour la synthèse vocale incorporée
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime Obligatoire pour la reconnaissance et la synthèse vocale incorporées
Microsoft.CognitiveServices.Speech.Extension.Telemetry Obligatoire pour la reconnaissance et la synthèse vocale incorporées

Choisir votre environnement cible

Pour les applications Java incorporées, ajoutez client-sdk-embedded (.jar) en tant que dépendance. Ce package prend en charge les services vocaux cloud, incorporés et hybrides.

Important

N’ajoutez pas de client-sdk dans le même projet, car il prend uniquement en charge les services de reconnaissance vocale cloud.

Procédez comme suit pour installer le Kit de développement logiciel (SDK) Speech pour Java à l’aide d’Apache Maven :

  1. Installez Apache Maven.
  2. Ouvrez une invite de commandes à l’emplacement où vous souhaitez placer le nouveau projet, puis créez un nouveau fichier pom.xml.
  3. Copiez le contenu XML suivant dans pom.xml :
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.microsoft.cognitiveservices.speech.samples</groupId>
        <artifactId>quickstart-eclipse</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                <source>1.8</source>
                <target>1.8</target>
                </configuration>
            </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk-embedded</artifactId>
            <version>1.40.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. Exécutez la commande Maven suivante pour installer le kit de développement logiciel (SDK) Speech et les dépendances.
    mvn clean dependency:copy-dependencies
    

Modèles et voix

Pour Embedded Speech, vous avez besoin de télécharger les modèles de reconnaissance vocale pour la reconnaissance vocale et des voix pour la synthèse vocale. Des instructions sont fournies une fois le processus de révision de l’accès limité correctement terminé.

Les modèles de reconnaissance vocale suivants sont disponibles : da-DK, de-DE, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, pt-PT, zh-CN, zh-HK et zh-TW.

Tous les paramètres régionaux de synthèse vocale ici (à l’exception de fa-IR, Persan (Iran)) sont disponibles immédiatement avec 1 voix féminine et/ou 1 voix masculine sélectionnées. Nous vous invitons à nous faire part de vos commentaires pour nous aider à évaluer la demande de plus de langues et de voix.

Configuration d’Embedded Speech

Pour les applications connectées au cloud, comme indiqué dans la plupart des exemples du SDK Speech, vous utilisez l’objet SpeechConfig avec une clé de ressource Speech et une région. Pour Embedded Speech, vous n’utilisez pas de ressource Speech. Au lieu d’une ressource cloud, vous utilisez les modèles et voix que vous téléchargez sur votre appareil local.

Utilisez l’objet EmbeddedSpeechConfig pour définir l’emplacement des modèles ou des voix. Si votre application est utilisée à la fois pour la reconnaissance vocale et la synthèse vocale, vous pouvez utiliser le même objet EmbeddedSpeechConfig pour définir l’emplacement des modèles et des voix.

// Provide the location of the models and voices.
List<string> paths = new List<string>();
paths.Add("C:\\dev\\embedded-speech\\stt-models");
paths.Add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.FromPaths(paths.ToArray());

// For speech to text
embeddedSpeechConfig.SetSpeechRecognitionModel(
    "Microsoft Speech Recognizer en-US FP Model V8",
    Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));

// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);

Conseil

La fonction GetEnvironmentVariable est définie dans le guide de démarrage rapide de la reconnaissance vocale et le guide de démarrage rapide de la synthèse vocale.

// Provide the location of the models and voices.
vector<string> paths;
paths.push_back("C:\\dev\\embedded-speech\\stt-models");
paths.push_back("C:\\dev\\embedded-speech\\tts-voices");
auto embeddedSpeechConfig = EmbeddedSpeechConfig::FromPaths(paths);

// For speech to text
embeddedSpeechConfig->SetSpeechRecognitionModel((
    "Microsoft Speech Recognizer en-US FP Model V8",
    GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));

// For text to speech
embeddedSpeechConfig->SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig->SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat::Riff24Khz16BitMonoPcm);
// Provide the location of the models and voices.
List<String> paths = new ArrayList<>();
paths.add("C:\\dev\\embedded-speech\\stt-models");
paths.add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.fromPaths(paths);

// For speech to text
embeddedSpeechConfig.setSpeechRecognitionModel(
    "Microsoft Speech Recognizer en-US FP Model V8",
    System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));

// For text to speech
embeddedSpeechConfig.setSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);

Exemples de code vocal incorporé

Vous trouverez des exemples Embedded Speech prêts à l’emploi sur GitHub. Pour obtenir des remarques sur les projets à partir de zéro, consultez la documentation spécifique des exemples :

Vous trouverez des exemples Embedded Speech prêts à l’emploi sur GitHub. Pour obtenir des remarques sur les projets à partir de zéro, consultez la documentation spécifique des exemples :

Vous trouverez des exemples Embedded Speech prêts à l’emploi sur GitHub. Pour obtenir des remarques sur les projets à partir de zéro, consultez la documentation spécifique des exemples :

Hybrid Speech

Hybrid Speech avec l’objet HybridSpeechConfig utilise le service Speech cloud par défaut et le service Embedded Speech en solution de secours si la connectivité cloud est limitée ou lente.

Avec la configuration Hybrid Speech pour la reconnaissance vocale (modèles de reconnaissance), Embedded Speech est utilisé quand la connexion au service cloud échoue après de multiples tentatives. Il est possible que la reconnaissance continue à réutiliser le service cloud si la connexion reprend ultérieurement.

Avec la configuration Hybrid Speech pour la synthèse vocale (voix), une synthèse incorporée et cloud sont exécutées en parallèle et le résultat final est sélectionné en fonction de la rapidité de la réponse. Le meilleur résultat est évalué à nouveau sur chaque nouvelle requête de synthèse.

Cloud Speech

Pour Cloud Speech, vous utilisez l’objet SpeechConfig, comme indiqué dans le guide de démarrage rapide de la reconnaissance vocale et le guide de démarrage rapide de la synthèse vocale. Pour exécuter les guides de démarrage rapide pour Embedded Speech, vous pouvez remplacer SpeechConfig par EmbeddedSpeechConfig ou HybridSpeechConfig. La plupart des autres codes de reconnaissance vocale et de synthèse vocale sont les mêmes, qu’ils utilisent une configuration cloud, incorporée ou hybride.

Fonctionnalités de voix incorporées

Pour les voix incorporées, il est primordial de noter que certaines balises SSML peuvent ne pas être actuellement prises en charge en raison de différences dans la structure du modèle. Pour plus d’informations sur les balises SSML non prises en charge, reportez-vous au tableau suivant.

Niveau 1 Niveau 2 Sous-valeurs Prise en charge dans NTTS incorporé
audio src Non
signet Oui
break strength Oui
time Oui
silence type De début, de fin, exact à la virgule près, etc. Non
value No
emphasis level Non
lang Non
lexicon uri Oui
math Non
msttsaudioduration value Non
msttsbackgroundaudio src Non
volume Non
fadein Non
fadeout Non
msttsexpress-as style Non
styledegree Non
role Non
msttssilence Non
msttsviseme type redlips_front, FacialExpression Non
p Oui
Un phonème alphabet ipa, sapi, ups, etc. Oui
ph Oui
prosodie contour Prise en charge au niveau des phrases, au niveau du mot uniquement pour en-US et zh-CN Oui
pitch Oui
range Oui
rate Oui
volume Oui
s Oui
prononcer interpret-as caractères, orthographe, number_digit, date, etc. Oui
format Oui
detail Oui
sub alias Oui
speak Oui
voice Non