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:
- Instale o Microsoft Visual Studio.
- Obter uma licença de desenvolvedor. Para obter instruções, veja Desenvolver usando o Visual Studio 2013.
- Crie seu primeiro aplicativo em JavaScript.
- Mapa para os aplicativos da Windows Store usando JavaScript
- Saiba mais sobre eventos com Guia de início rápido: adicionando controles HTML e manipulando eventos
- Consulte Diretrizes de design de controle por voz para Windows Phone para obter dicas úteis sobre o design de um aplicativo habilitado para controle por voz interessante e útil.
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:
supportedTopicLanguages—A coleção de objetos Language usada com ditado predefinido e gramáticas de pesquisa na Web.
supportedGrammarLanguages—A coleção de objetos Language usada com uma restrição de lista ou um arquivo SRGS (Especificação de Gramática de Reconhecimento de Fala).
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