Partager via


Spécifier la langue de reconnaissance vocale

Découvrez comment sélectionner une langue installée à utiliser pour la reconnaissance vocale.

API importantes : SupportedTopicLanguages, SupportedGrammarLanguages, Language

Ici, nous énumérons les langues installées sur un système, identifiez la langue par défaut et sélectionnez une autre langue pour la reconnaissance.

Configuration requise :

Cette rubrique s’appuie sur la reconnaissance vocale.

Vous devez avoir une compréhension de base des contraintes de reconnaissance vocale et de reconnaissance vocale.

Si vous êtes novice en matière de développement d’applications Windows, jetez un coup d’œil à ces rubriques pour vous familiariser avec les technologies abordées ici.

Conseils sur l’expérience utilisateur :

Pour obtenir des conseils utiles sur la conception d’une application prenant en charge la reconnaissance vocale utile et attrayante, consultez les instructions de conception Speech.

Identifier la langue par défaut

Un module de reconnaissance vocale utilise la langue vocale système comme langue de reconnaissance par défaut. Cette langue est définie par l’utilisateur sur l’écran Paramètres > de reconnaissance vocale système > > de l’appareil.

Nous identifions la langue par défaut en vérifiant la propriété statique SystemSpeechLanguage.

var language = SpeechRecognizer.SystemSpeechLanguage; 

Confirmer une langue installée

Les langues installées peuvent varier entre les appareils. Vous devez vérifier l’existence d’une langue si vous en dépendez pour une contrainte particulière.

Notez qu’un redémarrage est requis après l’installation d’un nouveau module linguistique. Une exception avec le code d’erreur SPERR_NOT_FOUND (0x8004503a) est levée si la langue spécifiée n’est pas prise en charge ou n’a pas terminé l’installation.

 

Déterminez les langues prises en charge sur un appareil en vérifiant l’une des deux propriétés statiques de la classe SpeechRecognizer :

Spécifier une langue

Pour spécifier une langue, passez un objet Language dans le constructeur SpeechRecognizer.

Ici, nous spécifions « en-US » comme langue de reconnaissance.

var language = new Windows.Globalization.Language("en-US"); 
var recognizer = new SpeechRecognizer(language); 

Notes

Une contrainte de rubrique peut être configurée en ajoutant un SpeechRecognitionTopicConstraint à la collection Constraints de SpeechRecognizer, puis en appelant CompileConstraintsAsync. Un SpeechRecognitionResultStatus de TopicLanguageNotSupported est retourné si le module de reconnaissance n’est pas initialisé avec une langue de rubrique prise en charge.

Une contrainte de liste est configurée en ajoutant un SpeechRecognitionListConstraint à la collection Constraints de SpeechRecognizer, puis en appelant CompileConstraintsAsync. Vous ne pouvez pas spécifier directement la langue d’une liste personnalisée. Au lieu de cela, la liste sera traitée à l’aide de la langue du module de reconnaissance.

Une grammaire SRGS est un format XML open standard représenté par la classe SpeechRecognitionGrammarFileConstraint. Contrairement aux listes personnalisées, vous pouvez spécifier la langue de la grammaire dans le balisage SRGS. CompileConstraintsAsync échoue avec un SpeechRecognitionResultStatus de TopicLanguageNotSupported si le module de reconnaissance n’est pas initialisé dans le même langage que le balisage SRGS.

Exemples