Condividi tramite


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.

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:

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.

Esempi