Share 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

Nous avons répertorié 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 l’article Reconnaissance vocale.

Vous devez posséder des connaissances de base sur la reconnaissance vocale et ses contraintes.

Si vous débutez dans le développement d’applications Windows, consultez ces rubriques pour vous familiariser avec les technologies abordées ici.

Instructions relatives à l’expérience utilisateur :

Pour obtenir de précieux conseils concernant la conception d’une application dotée de fonctions vocales à la fois utile et conviviale, voir Recommandations en matière de conception.

Identifiez la langue par défaut.

La reconnaissance vocale utilise la langue du système en tant que langue de reconnaissance par défaut. Cette langue est définie par l’utilisateur sur l’écran Paramètres > Système > Parole > Langue vocale 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. Vérifiez l’existence d’une langue avant de vous en servir pour une contrainte particulière.

Remarque Un redémarrage est nécessaire lorsqu’un nouveau module linguistique est installé. 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, transmettez 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); 

Remarques

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

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

Une grammaire SRGS est un format XML standard ouvert 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é pour la même langue que le balisage SRGS.

Exemples