Festlegen der Sprache für die Spracherkennung
Erfahren Sie, wie Sie eine installierte Sprache auswählen, die für die Spracherkennung verwendet werden soll.
Wichtige APIs: SupportedTopicLanguages, SupportedGrammarLanguages, Language
Hier werden die auf einem System installierten Sprachen aufgelistet, die Standardsprache identifizieren und eine andere Sprache für die Erkennung auswählen.
Voraussetzungen:
Dieses Thema baut auf der Spracherkennung auf.
Sie sollten ein grundlegendes Verständnis für Spracherkennungs- und Erkennungseinschränkungen haben.
Wenn Sie noch nicht mit der Entwicklung von Windows-Apps vertraut sind, schauen Sie sich diese Themen an, um sich mit den hier erläuterten Technologien vertraut zu machen.
- Erstellen der ersten App
- Informationen zu Ereignissen mit Ereignisse und Routingereignisse (Übersicht)
Richtlinien zur Benutzerfreundlichkeit
Hilfreiche Tipps zum Entwerfen einer nützlichen und ansprechenden Spracherkennungs-App finden Sie unter Sprachdesignrichtlinien .
Identifizieren der Standardsprache
Eine Spracherkennung verwendet die Systemsprache als Standarderkennungssprache. Diese Sprache wird vom Benutzer auf dem Bildschirm "Systemspracherkennungssprache > >" > des Geräts festgelegt.
Wir identifizieren die Standardsprache durch Überprüfen der statischen SystemSpeechLanguage-Eigenschaft.
var language = SpeechRecognizer.SystemSpeechLanguage;
Bestätigen einer installierten Sprache
Installierte Sprachen können zwischen Geräten variieren. Sie sollten das Vorhandensein einer Sprache überprüfen, wenn Sie davon abhängig sind, dass sie für eine bestimmte Einschränkung erforderlich ist.
Hinweis: Nach der Installation eines neuen Sprachpakets ist ein Neustart erforderlich. Eine Ausnahme mit dem Fehlercode SPERR_NOT_FOUND (0x8004503a) wird ausgelöst, wenn die angegebene Sprache nicht unterstützt wird oder die Installation nicht abgeschlossen ist.
Ermitteln Sie die unterstützten Sprachen auf einem Gerät, indem Sie eine von zwei statischen Eigenschaften der SpeechRecognizer-Klasse überprüfen:
SupportedTopicLanguages – Die Sammlung von Language-Objekten , die mit vordefinierten Diktier- und Websuchgrammatiken verwendet werden.
SupportedGrammarLanguages – Die Auflistung von Language-Objekten , die mit einer Listeneinschränkung oder einer SRGS-Datei (Speech Recognition Grammar Specification) verwendet werden.
Angeben einer Sprache
Übergeben Sie zum Angeben einer Sprache ein Language-Objekt im SpeechRecognizer-Konstruktor.
Hier geben wir "en-US" als Erkennungssprache an.
var language = new Windows.Globalization.Language("en-US");
var recognizer = new SpeechRecognizer(language);
Hinweise
Eine Themeneinschränkung kann konfiguriert werden, indem sie eine SpeechRecognitionTopicConstraint zur Constraints-Auflistung des SpeechRecognizers hinzufügen und dann CompileConstraintsAsync aufrufen. Eine SpeechRecognitionResultStatus von TopicLanguageNotSupported wird zurückgegeben, wenn die Erkennung nicht mit einer unterstützten Themensprache initialisiert wird.
Eine Listeneinschränkung wird konfiguriert, indem eine SpeechRecognitionListConstraint zur Constraints-Auflistung des SpeechRecognizers hinzugefügt und dann CompileConstraintsAsync aufgerufen wird. Sie können die Sprache einer benutzerdefinierten Liste nicht direkt angeben. Stattdessen wird die Liste mithilfe der Sprache der Erkennung verarbeitet.
Eine SRGS-Grammatik ist ein open-standard XML-Format, das durch die SpeechRecognitionGrammarFileConstraint-Klasse dargestellt wird. Im Gegensatz zu benutzerdefinierten Listen können Sie die Sprache der Grammatik im SRGS-Markup angeben. CompileConstraintsAsync schlägt mit einem SpeechRecognitionResultStatus von TopicLanguageNotSupported fehl, wenn die Erkennung nicht in dieselbe Sprache wie das SRGS-Markup initialisiert ist.
Verwandte Artikel
Beispiele
Windows developer