Compartilhar via


Especificar o idioma do reconhecedor de fala

Saiba como selecionar um idioma instalado a ser usado para reconhecimento de fala.

APIs importantes: idiomasSuportadosDeTópicos, idiomasSuportadosDeGramática, Idioma

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 baseia-se no reconhecimento de fala .

Você deve ter uma compreensão básica de reconhecimento de fala e restrições de reconhecimento.

Se você é novo no desenvolvimento de aplicativos do Windows, confira estes tópicos para conhecer as tecnologias discutidas aqui.

Diretrizes de experiência do usuário:

Para obter dicas úteis sobre como criar um aplicativo útil e envolvente com reconhecimento de fala, consulte Diretrizes de Design para Aplicativos de Voz.

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 > Sistema > Fala > Linguagem de Fala 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. Você deve verificar a existência de um idioma se depender dele para uma restrição específica.

Nota Uma reinicialização é necessária depois que um novo pacote de idiomas é instalado. Uma exceção com código de erro SPERR_NOT_FOUND (0x8004503a) é 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 usados com ditado predefinido e gramáticas de pesquisa na Web.

  • SupportedGrammarLanguages— A coleção de objetos de linguagem 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 a linguagem de reconhecimento.

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

Observações

Uma restrição de tópico pode ser configurada adicionando um SpeechRecognitionTopicConstraint à coleção Constraints do SpeechRecognizer e chamando CompileConstraintsAsync. Um SpeechRecognitionResultStatus do TopicLanguageNotSupported será retornado se o reconhecedor não for inicializado com uma linguagem de tópico com suporte.

Uma restrição de lista é configurada adicionando um SpeechRecognitionListConstraint à coleção Constraints do SpeechRecognizer e, em seguida, 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 falha com um SpeechRecognitionResultStatus de TopicLanguageNotSupported se o reconhecedor não for inicializado para o mesmo idioma que a marcação SRGS.

  • Interações de fala

Amostras