Especificar o idioma do reconhecedor de fala
Saiba como selecionar um idioma instalado para usá-lo para 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 o reconhecimento.
Pré-requisitos:
Este tópico complementa Reconhecimento de fala.
Você deve ter uma noção básica de reconhecimento de fala e restrições de reconhecimento.
Se você estiver familiarizado com o desenvolvimento de aplicativos do Windows, confira estes tópicos para se familiarizar com as tecnologias discutidas aqui.
- Crie seu primeiro aplicativo
- Saiba mais sobre eventos com Visão geral de eventos e eventos roteados
Diretrizes de experiência do usuário:
Para obter dicas úteis sobre o design de um aplicativo habilitado para controle por voz interessante e prático, consulte Diretrizes para design de controle por voz.
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;
Confirmar 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.
Nota Uma reinicialização é necessária depois que um novo pacote de idiomas é instalado. Uma exceção com SPERR_NOT_FOUND de código de erro (0x8004503a) será gerada se o idioma especificado não tiver suporte 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 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).
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 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.
Artigos relacionados
Amostras
Windows developer
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de