Partilhar via


Especificar o idioma do reconhecedor de fala

Saiba como selecionar um idioma instalado para usar no reconhecimento de fala.

APIs importantes: IdiomasDeTópicoSuportados, IdiomasDeGramáticaSuportados, Língua

Aqui, enumeramos os idiomas instalados em um sistema, identificamos qual é o idioma padrão e selecionamos um idioma diferente para reconhecimento.

Pré-requisitos:

Este tópico baseia-se no Reconhecimento de fala.

Você deve ter uma compreensão básica do reconhecimento de fala e das suas restrições.

Se você é novo no desenvolvimento de aplicativos do Windows, dê uma olhada nesses tópicos para se familiarizar com as tecnologias discutidas aqui.

Diretrizes de experiência do usuário:

Para obter dicas úteis sobre como criar um aplicativo de reconhecimento de fala que seja envolvente e funcional, consulte Diretrizes para o design de aplicações de fala.

Identificar o idioma padrão

Um reconhecedor de fala usa a linguagem de fala do sistema como seu idioma de reconhecimento padrão. Esse idioma é definido pelo utilizador em Configurações > Sistema > Fala > Idioma da fala do dispositivo.

Identificamos o idioma padrão verificando a propriedade estática SystemSpeechLanguage .

var language = SpeechRecognizer.SystemSpeechLanguage; 

Confirmar um idioma instalado

Os idiomas instalados podem variar entre dispositivos. Você deve verificar a existência de um idioma se depender dele para uma restrição específica.

Observação É necessária uma reinicialização após a instalação de um novo pacote de idiomas. Uma exceção com código de erro SPERR_NOT_FOUND (0x8004503a) é gerada se o idioma especificado não for suportado ou não tiver concluído a instalação.

 

Determine os idiomas suportados em um dispositivo verificando uma das duas propriedades estáticas da classe SpeechRecognizer :

Especificar um idioma

Para especificar um idioma, passe um objeto Language no construtor SpeechRecognizer.

Aqui, especificamos "en-US" como a linguagem de reconhecimento.

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

Observações

Uma restrição de tópico pode ser configurada ao adicionar o SpeechRecognitionTopicConstraint à coleção de Constraints do SpeechRecognizer e, em seguida, chamar CompileConstraintsAsync. Um SpeechRecognitionResultStatus de TopicLanguageNotSupported é devolvido se o reconhecedor não for inicializado com um idioma de tópico suportado.

Uma restrição de lista é configurada adicionando um SpeechRecognitionListConstraint à coleção de Restrições do do SpeechRecognizer e, em seguida, chamando CompileConstraintsAsync. Não é possível especificar o idioma de uma lista personalizada diretamente. Em vez disso, a lista será processada usando o idioma do reconhecedor.

Uma gramática SRGS é um formato XML de padrão aberto representado pela classe SpeechRecognitionGrammarFileConstraint. Ao contrário das listas personalizadas, você pode especificar o idioma da gramática na marcação SRGS. CompileConstraintsAsync falhará com um SpeechRecognitionResultStatus TopicLanguageNotSupported se o reconhecedor não for inicializado no mesmo idioma da marcação SRGS.

Amostras