Freigeben über


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: UnterstützteThemensprachen, UnterstützteGrammatiksprachen, Language

Hier werden die auf einem System installierten Sprachen aufgelistet, die Standardsprache ermittelt und eine andere Sprache für die Erkennung ausgewählt.

Voraussetzungen:

Dieses Thema basiert auf Spracherkennung.

Sie sollten ein grundlegendes Verständnis von Spracherkennung und ihren Einschrä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 für die Benutzererfahrung:

Hilfreiche Tipps zum Entwerfen einer nützlichen und ansprechenden sprachgesteuerten App finden Sie unter Richtlinien für das Sprachdesign.

Standardsprache identifizieren

Eine Spracherkennung verwendet die Systemsprache als Standarderkennungssprache. Diese Sprache wird vom Benutzer auf dem Bildschirm "Geräteeinstellungen" > System > Spracherkennung > Sprachausgabe festgelegt.

Wir identifizieren die Standardsprache, indem wir die statische Eigenschaft SystemSpeechLanguage überprüfen.

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.

Anmerkung 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 ihre Installation noch nicht abgeschlossen wurde.

 

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

Um eine Sprache anzugeben, geben Sie ein Language-Objekt im SpeechRecognizer-Konstruktor an.

Hier geben wir "en-US" als Erkennungssprache an.

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

Bemerkungen

Eine Themeneinschränkung kann konfiguriert werden, indem sie eine SpeechRecognitionTopicConstraint- der Constraints Auflistung der SpeechRecognizer- hinzufügen und dann CompileConstraintsAsyncaufrufen. 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- der Constraints Auflistung der SpeechRecognizer- 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 des Erkennungsmoduls verarbeitet.

Eine SRGS-Grammatik ist ein XML-Format im offenen Standard, 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-TopicLanguageNotSupported fehl, wenn die Erkennung nicht auf dieselbe Sprache wie das SRGS-Markup initialisiert wird.

Beispiele