Specificare la lingua per il riconoscimento vocale
Informazioni su come selezionare una lingua installata da usare per il riconoscimento vocale.
API importanti: SupportedTopicLanguages, SupportedGrammarLanguages, Language
In questo esempio vengono enumerate le lingue installate in un sistema, si identifica la lingua predefinita e si seleziona una lingua diversa per il riconoscimento.
Prerequisiti:
Questa sezione è incentrata sul riconoscimento vocale.
È necessario avere una conoscenza di base dei vincoli del riconoscimento vocale e del riconoscimento in generale.
Se non si ha familiarità con lo sviluppo di app di Windows, consultare queste sezioni per acquisire familiarità con le tecnologie qui descritte.
- Crea la tua prima app
- Informazioni sugli eventi con Panoramica degli eventi e degli eventi indirizzati
Linee guida sull'esperienza utente:
Per validi suggerimenti sulla progettazione di un'app abilitata per il riconoscimento vocale utile e coinvolgente, vedere Linee guida per la progettazione del riconoscimento vocale.
Identificare la lingua predefinita
Il riconoscimento vocale usa la lingua di riconoscimento vocale di sistema come lingua di riconoscimento predefinita. Questa lingua viene impostata dall'utente nella schermata Impostazioni > Sistema > Voce > Lingua voce del sistema.
È possibile identificare la lingua predefinita controllando la proprietà statica SystemSpeechLanguage.
var language = SpeechRecognizer.SystemSpeechLanguage;
Confermare una lingua installata
Le lingue installate possono variare tra i dispositivi. È consigliabile verificare l'esistenza di una lingua se si dipende da essa per un vincolo specifico.
Nota Dopo l'installazione di un nuovo Language Pack è necessario un riavvio del sistema. Se la lingua specificata non è supportata o non ne è stata completata l'installazione viene generata un'eccezione con codice di errore SPERR_NOT_FOUND (0x8004503a).
Determinare le lingue supportate in un dispositivo controllando una delle due proprietà statiche della classe SpeechRecognizer:
SupportedTopicLanguages: raccolta di oggetti Lingua usati con grammatiche di dettatura e per la ricerca web predefinite.
SupportedGrammarLanguages: raccolta di oggetti Lingua usati con un vincolo di elenco o un file SRGS (Speech Recognition Grammar Specification).
Specificare una lingua
Per specificare una lingua, passare un oggetto Lingua al costruttore di SpeechRecognizer.
Qui si specifica "en-US" come lingua di riconoscimento.
var language = new Windows.Globalization.Language("en-US");
var recognizer = new SpeechRecognizer(language);
Osservazioni:
È possibile configurare un vincolo di argomento aggiungendo SpeechRecognitionTopicConstraint all'insieme Constraints di SpeechRecognizer e quindi chiamando CompileConstraintsAsync. Se il riconoscimento non viene inizializzato con una lingua di argomento supportata viene restituito un oggetto SpeechRecognitionResultStatus di TopicLanguageNotSupported.
È possibile configurare un vincolo di elenco aggiungendo SpeechRecognitionListConstraint all'insieme Constraints di SpeechRecognizer e quindi chiamando CompileConstraintsAsync. Non è possibile specificare direttamente la lingua di un elenco personalizzato. L'elenco verrà invece elaborato usando la lingua del riconoscitore.
Una grammatica SRGS è un formato XML open-standard rappresentato dalla classe SpeechRecognitionGrammarFileConstraint. A differenza degli elenchi personalizzati, è possibile specificare la lingua della grammatica nel markup SRGS. Se il riconoscimento non viene inizializzato nella stessa lingua del markup SRGS, CompileConstraintsAsync ha esito negativo con SpeechRecognitionResultStatus di TopicLanguageNotSupported.
Articoli correlati
Esempi