Compartilhar via


Como especificar o idioma do reconhecedor de fala

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Saiba como selecionar um idioma instalado para usá-lo para reconhecimento de fala.

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

O que você precisa saber

Tecnologias

Pré-requisitos

Este tópico faz parte do Guia de início rápido: reconhecimento de fala. Você deve ter uma noção básica de reconhecimento de fala e restrições de reconhecimento.

Para concluir este tutorial, dê uma olhada nestes tópicos para se familiarizar com as tecnologias discutidas aqui:

Instruções

Etapa 1: Identifique o idioma padrão

Um reconhecedor de fala usa o idioma do controle por voz do sistema como seu idioma de reconhecimento padrão. Esse idioma é definido pelo usuário na tela Settings > System > Speech > Speech Language do dispositivo.

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

var language = SpeechRecognizer.systemSpeechLanguage; 

Etapa 2: Confirme um idioma instalado

Os idiomas instalados podem variar entre dispositivos. Verifique a existência de um idioma se você depender dele para uma determinada restrição.

Observação  É necessário reinicializar depois da instalação de um novo pacote de idiomas. Uma exceção com o código de erro SPERR_NOT_FOUND (0x8004503a) será acionada se o idioma especificado não tiver suporte ou sua instalação não tiver sido concluída.

 

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

Etapa 3: Especifique um idioma

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

Aqui, especificamos "en-US" como o idioma de reconhecimento.

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

Comentários

Uma restrição de tópico pode ser configurada adicionando uma SpeechRecognitionTopicConstraint à coleção constraints do SpeechRecognizer e chamando compileConstraintsAsync. Um speechRecognitionResultStatus de TopicLanguageNotSupported é retornado se o reconhecedor não for inicializado com um idioma de tópico com suporte.

Uma restrição de lista é configurada adicionando uma speechRecognitionListConstraint à coleção constraints do SpeechRecognizer e chamando compileConstraintsAsync. Você não pode 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 de listas personalizadas, você pode especificar o idioma da gramática na marcação SRGS. Haverá falha de compileConstraintsAsync com um SpeechRecognitionResultStatus de TopicLanguageNotSupported se o reconhecedor não for inicializado com o mesmo idioma que a marcação SRGS.

Tópicos relacionados

Respondendo a interações de fala

Designers

Diretrizes para design de controle por voz