Compartilhar via


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.

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:

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.

Amostras