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.

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:

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.

Beispiele