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.
- Créez votre première application
- Pour en savoir plus sur les événements, consultez Vue d’ensemble des événements et des événements routés
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 :
SupportedTopicLanguages : collection d’objets Language utilisés avec des grammaires prédéfinies de dictée et de recherche web.
SupportedGrammarLanguages : collection d’objets language utilisés avec une contrainte de liste ou un fichier SRGS (Speech Recognition Grammar Specification).
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.
Articles connexes
Exemples
Windows developer