Especificar o idioma do reconhecedor de fala
Saiba como selecionar um idioma instalado para usar no reconhecimento de fala.
APIs importantes: SupportedTopicLanguages, SupportedGrammarLanguages, Language
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 se baseia no reconhecimento de fala.
Você deve ter uma compreensão básica do reconhecimento de fala e das restrições de reconhecimento.
Se você é novo no desenvolvimento de aplicativos do Windows, dê uma olhada nestes tópicos para se familiarizar com as tecnologias discutidas aqui.
- Criar seu primeiro aplicativo
- Saiba mais sobre eventos com Visão geral de eventos e eventos roteados
Diretrizes da experiência do usuário:
Para obter dicas úteis sobre como criar um aplicativo habilitado para fala útil e envolvente, consulte Diretrizes de design de fala.
Identificar o idioma padrão
Um reconhecedor de fala usa a linguagem de fala do sistema como sua linguagem de reconhecimento padrão. Esse idioma é definido pelo usuário na tela Configurações > do sistema > Fala > Fala do dispositivo.
Identificamos o idioma padrão verificando a propriedade estática SystemSpeechLanguage.
var language = SpeechRecognizer.SystemSpeechLanguage;
Confirme um idioma instalado
Os idiomas instalados podem variar entre os dispositivos. Você deve verificar a existência de uma linguagem se depender dela para uma restrição específica.
Observação Uma reinicialização é necessária após a instalação de um novo pacote de idiomas. Uma exceção com o código de erro SPERR_NOT_FOUND (0x8004503a) será gerada se o idioma especificado não for suportado ou não tiver concluído a instalação.
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 usados com gramáticas predefinidas de ditado e pesquisa na Web.
SupportedGrammarLanguages — A coleção de objetos Language usados com uma restrição de lista ou um arquivo SRGS (Especificação de Gramática de Reconhecimento de Fala).
Especificar 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 um SpeechRecognitionTopicConstraint à coleção Constraints do SpeechRecognizer e chamando CompileConstraintsAsync. Um SpeechRecognitionResultStatus de TopicLanguageNotSupported será retornado se o reconhecedor não for inicializado com um idioma de tópico com suporte.
Uma restrição de lista é configurada adicionando um 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 das listas personalizadas, você pode especificar o idioma da gramática na marcação SRGS. CompileConstraintsAsync falhará com um SpeechRecognitionResultStatus de TopicLanguageNotSupported se o reconhecedor não for inicializado para o mesmo idioma que a marcação SRGS.
Artigos relacionados
Amostras
Windows developer