Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Integre o reconhecimento de fala e a conversão de texto em fala (também conhecido como TTS ou síntese de fala) diretamente na experiência do usuário do seu aplicativo.
Reconhecimento de fala O reconhecimento de fala converte palavras faladas pelo usuário em texto para entrada de formulário, para ditado de texto, para especificar uma ação ou comando e para realizar tarefas. Há suporte para gramáticas predefinidas para ditado de texto livre e pesquisa na Web e gramáticas personalizadas criadas usando a SRGS (Especificação gramatical de reconhecimento de fala) versão 1.0.
TTS O TTS usa um mecanismo de síntese de fala (voz) para converter uma cadeia de caracteres de texto em palavras faladas. A entrada de texto pode ser um texto básico e não adornado ou uma Linguagem de Marcação de Síntese de Fala (SSML) mais complexa. O SSML fornece uma maneira padrão de controlar características da saída de fala, como pronúncia, volume, tom, taxa ou velocidade e ênfase.
Outros componentes relacionados à fala:a Cortana em aplicativos do Windows usa comandos de voz personalizados (falados ou digitados) para iniciar seu aplicativo em primeiro plano (o aplicativo assume o foco, assim como se tivesse sido iniciado no menu Iniciar) ou ativado como um serviço em segundo plano (a Cortana mantém o foco, mas fornece resultados do aplicativo). Consulte as interações da Cortana em aplicativos do Windows.
Design de interação de fala
Projetada e implementada com consideração, a fala pode ser uma maneira robusta e agradável para que as pessoas interajam com seu aplicativo, complementando ou até mesmo substituindo, teclado, mouse, toque e gestos.
Essas diretrizes e recomendações descrevem como integrar melhor o reconhecimento de fala e o TTS à experiência de interação do seu aplicativo.
Se você estiver considerando dar suporte a interações de fala em seu aplicativo:
- Quais ações podem ser tomadas por meio da fala? Um usuário pode navegar entre páginas, invocar comandos ou inserir dados como campos de texto, anotações breves ou mensagens longas?
- A entrada de fala é uma boa opção para concluir uma tarefa?
- Como um usuário sabe quando a entrada de fala está disponível?
- O aplicativo está sempre escutando ou o usuário precisa executar uma ação para que o aplicativo insira o modo de escuta?
- Quais frases iniciam uma ação ou comportamento? As frases e as ações precisam ser enumeradas na tela?
- As telas de solicitação, confirmação e desambiguação ou TTS são necessárias?
- Qual é a caixa de diálogo de interação entre o aplicativo e o usuário?
- Um vocabulário personalizado ou restrito é necessário (como medicina, ciência ou localidade) para o contexto do seu aplicativo?
- A conectividade de rede é necessária?
Entrada de texto
A fala para entrada de texto pode variar de forma curta (palavra ou frase) a forma longa (ditado contínuo). A entrada de formulário curto deve ter menos de 10 segundos de comprimento, enquanto a sessão de entrada de forma longa pode ter até dois minutos de comprimento. (A entrada de formulário longo pode ser reiniciada sem intervenção do usuário para dar a impressão de ditado contínuo.)
Você deve fornecer uma indicação visual para indicar que o reconhecimento de fala tem suporte e está disponível para o usuário e se o usuário precisa ativá-lo. Por exemplo, um botão de barra de comandos com um glifo de microfone (consulte barras de comando) pode ser usado para mostrar disponibilidade e estado.
Forneça comentários de reconhecimento contínuos para minimizar qualquer aparente falta de resposta enquanto o reconhecimento está sendo executado.
Permitir que os usuários revisem o texto de reconhecimento através de entrada de teclado, prompts de desambiguação, sugestões ou reconhecimento de fala adicional.
Interrompa o reconhecimento se for detectada entrada de um dispositivo diferente do de reconhecimento de fala, como toque ou teclado. Isso provavelmente indica que o usuário passou para outra tarefa, como corrigir o texto de reconhecimento ou interagir com outros campos de formulário.
Especifique a duração de tempo durante a qual nenhuma entrada de fala indica que o reconhecimento terminou. Não reinicie automaticamente o reconhecimento após esse período, pois normalmente indica que o usuário parou de se envolver com seu aplicativo.
Desabilite toda a interface do usuário de reconhecimento contínuo e encerre a sessão de reconhecimento se uma conexão de rede não estiver disponível. O reconhecimento contínuo requer uma conexão de rede.
Comandando
A entrada de fala pode iniciar ações, invocar comandos e realizar tarefas.
Se o espaço permitir, considere exibir as respostas com suporte para o contexto atual do aplicativo, com exemplos de entrada válida. Isso reduz as possíveis respostas que seu aplicativo precisa processar e também elimina a confusão para o usuário.
Tente enquadrar suas perguntas de modo que elas provoquem uma resposta o mais específica possível. Por exemplo, "O que você quer fazer hoje?" é muito aberto e exigiria uma definição gramatical muito grande devido à variação das respostas. Como alternativa, "Você gostaria de jogar um jogo ou ouvir música?" restringe a resposta a uma das duas respostas válidas com uma definição gramatical correspondentemente pequena. Uma gramática pequena é muito mais fácil de criar e resulta em resultados de reconhecimento muito mais precisos.
Solicite a confirmação do usuário quando a confiança do reconhecimento de fala estiver baixa. Se a intenção do usuário não estiver clara, é melhor obter esclarecimentos do que iniciar uma ação não intencional.
Você deve fornecer uma indicação visual para indicar que o reconhecimento de fala tem suporte e está disponível para o usuário e se o usuário precisa ativá-lo. Por exemplo, um botão de barra de comandos com um glifo de microfone (consulte Diretrizes para barras de comandos) pode ser usado para mostrar a disponibilidade e o estado.
Se a opção de reconhecimento de fala normalmente estiver fora de exibição, considere exibir um indicador de estado na área de conteúdo do aplicativo.
Se o reconhecimento for iniciado pelo usuário, considere usar a experiência de reconhecimento integrada para garantir consistência. A experiência integrada inclui telas personalizáveis com prompts, exemplos, desambiguações, confirmações e erros.
As telas variam dependendo das restrições especificadas:
Gramática predefinida (ditado ou pesquisa na Web)
- A tela de Escuta.
- A tela Pensando .
- A tela de Ouvir o que você disse ou a tela de erro.
Lista de palavras ou frases ou um arquivo de gramática SRGS
- A tela Escuta.
- A tela Você disse se o que o usuário disse puder ser interpretado como mais de um resultado possível.
- A tela Ouvi você dizer ou a tela de erro.
Na tela Escuta , você pode:
- Personalize o texto do título.
- Forneça um texto de exemplo do que o usuário pode dizer.
- Especifique se a tela Heard you say é mostrada.
- Leia a cadeia de caracteres reconhecida de volta para o usuário na tela Ouvi você dizer .
Aqui está um exemplo do fluxo de reconhecimento interno para um reconhecedor de fala que usa uma restrição definida pelo SRGS. Neste exemplo, o reconhecimento de fala é bem-sucedido.
Sempre escutando
Seu aplicativo pode escutar e reconhecer a entrada de fala assim que o aplicativo for iniciado, sem intervenção do usuário.
Você deve personalizar as restrições gramaticais com base no contexto do aplicativo. Isso mantém a experiência de reconhecimento de fala muito direcionada e relevante para a tarefa atual e minimiza erros.
"O que posso dizer?"
Quando a entrada de fala está habilitada, é importante ajudar os usuários a descobrir o que exatamente pode ser entendido e quais ações podem ser executadas.
Se o reconhecimento de fala estiver habilitado para o usuário, considere usar a barra de comandos ou um comando de menu para mostrar todas as palavras e frases com suporte no contexto atual.
Se o reconhecimento de fala estiver sempre ativado, considere adicionar a frase "O que posso dizer?" a cada página. Quando o usuário diz essa frase, exiba todas as palavras e frases com suporte no contexto atual. O uso dessa frase fornece uma maneira consistente para os usuários descobrirem recursos de fala em todo o sistema.
Falhas de reconhecimento
O reconhecimento de fala falhará. Falhas ocorrem quando a qualidade do áudio é ruim, quando apenas parte de uma frase é reconhecida ou quando nenhuma entrada é detectada.
Manipule a falha de forma tranquila, ajude o usuário a entender por que o reconhecimento falhou e se recupere.
Seu aplicativo deve informar ao usuário que ele não foi compreendido e que ele precisa tentar novamente.
Considere fornecer exemplos de uma ou mais frases com suporte. É provável que o usuário repita uma frase sugerida, o que aumenta o êxito do reconhecimento.
Você deve exibir uma lista de possíveis correspondências para um usuário selecionar. Isso pode ser muito mais eficiente do que passar pelo processo de reconhecimento novamente.
Você sempre deve dar suporte a tipos de entrada alternativos, o que é especialmente útil para lidar com falhas de reconhecimento repetidas. Por exemplo, você pode sugerir que o usuário tente usar um teclado ou use um toque ou um mouse para selecionar em uma lista de possíveis correspondências.
Use a experiência de reconhecimento de fala interna, pois inclui telas que informam ao usuário que o reconhecimento não foi bem-sucedido e permite que o usuário faça outra tentativa de reconhecimento.
Ouça e tente corrigir problemas na entrada de áudio. O reconhecedor de fala pode detectar problemas com a qualidade do áudio que podem afetar negativamente a precisão do reconhecimento de fala. Você pode usar as informações fornecidas pelo reconhecedor de fala para informar o usuário sobre o problema e deixá-lo tomar medidas corretivas, se possível. Por exemplo, se a configuração de volume no microfone for muito baixa, você poderá solicitar que o usuário fale mais alto ou ative o volume.
Constraints
Restrições, ou também gramáticas, definem as palavras e frases faladas que podem ser reconhecidas pelo reconhecedor de fala. Você pode especificar uma das gramáticas de serviço Web predefinidas ou criar uma gramática personalizada instalada com seu aplicativo.
Gramáticas predefinidas
O ditado predefinido e as gramáticas de pesquisa na Web fornecem reconhecimento de fala para seu aplicativo sem exigir que você crie uma gramática. Ao usar essas gramáticas, o reconhecimento de fala é executado por um serviço Web remoto e os resultados são retornados para o dispositivo
- A gramática de ditado de texto livre padrão pode reconhecer a maioria das palavras e frases que um usuário pode dizer em um idioma específico e é otimizada para reconhecer frases curtas. O ditado de texto livre é útil quando você não deseja limitar os tipos de coisas que um usuário pode dizer. Os usos típicos incluem criar anotações ou ditar o conteúdo de uma mensagem.
- A gramática de pesquisa na Web, como uma gramática de ditado, contém um grande número de palavras e frases que um usuário pode dizer. No entanto, é otimizado reconhecer os termos que as pessoas normalmente usam ao pesquisar na Web.
Observação
Como o ditado predefinido e as gramáticas de pesquisa na Web podem ser grandes e, por estarem online (não no dispositivo), o desempenho pode não ser tão rápido quanto com uma gramática personalizada instalada no dispositivo.
Essas gramáticas predefinidas podem ser usadas para reconhecer até 10 segundos de entrada de fala e não exigem nenhum esforço de criação de sua parte. No entanto, eles exigem conexão com uma rede.
Gramáticas personalizadas
Uma gramática personalizada é projetada e criada por você e é instalada com seu aplicativo. O reconhecimento de fala usando uma restrição personalizada é executado no dispositivo.
As restrições de lista programática fornecem uma abordagem leve para criar gramáticas simples usando uma lista de palavras ou frases. Uma restrição de lista funciona bem para reconhecer frases curtas e distintas. Especificar explicitamente todas as palavras em uma gramática também melhora a precisão do reconhecimento, pois o mecanismo de reconhecimento de fala só deve processar a fala para confirmar uma correspondência. A lista também pode ser atualizada programaticamente.
Uma gramática SRGS é um documento estático que, ao contrário de uma restrição de lista programática, usa o formato XML definido pelo SRGS Versão 1.0. Uma gramática SRGS fornece o maior controle sobre a experiência de reconhecimento de fala, permitindo que você capture vários significados semânticos em um único reconhecimento.
Aqui estão algumas dicas para criar gramáticas SRGS:
- Mantenha cada gramática pequena. Gramáticas que contêm menos frases tendem a fornecer um reconhecimento mais preciso do que gramáticas maiores que contêm muitas frases. É melhor ter várias gramáticas menores para cenários específicos do que ter uma única gramática para todo o aplicativo.
- Informe aos usuários o que dizer para cada contexto de aplicativo e habilite e desabilite as gramáticas conforme necessário.
- Projete cada gramática para que os usuários possam falar um comando de várias maneiras. Por exemplo, você pode usar a regra GARBAGE para corresponder à entrada de fala que sua gramática não define. Isso permite que os usuários falem palavras adicionais que não têm significado para seu aplicativo. Por exemplo, "dê-me", "e", "uh", "talvez" e assim por diante.
- Utilize o elemento sapi:subset para facilitar a correspondência da entrada de fala. Esta é uma extensão da Microsoft para a especificação do SRGS para ajudar a corresponder a frases parciais.
- Tente evitar definir frases em sua gramática que contenham apenas uma sílaba. O reconhecimento tende a ser mais preciso para frases que contêm duas ou mais sílabas.
- Evite usar frases semelhantes. Por exemplo, frases como "hello", "bellow" e "fellow" podem confundir o mecanismo de reconhecimento e resultar em pouca precisão de reconhecimento.
Observação
Qual tipo de restrição você usa depende da complexidade da experiência de reconhecimento que você deseja criar. Qualquer pode ser a melhor escolha para uma tarefa de reconhecimento específica, e você pode encontrar aplicações para todos os tipos de limitações em seu aplicativo.
Pronúncias personalizadas
Se seu aplicativo contiver vocabulário especializado com palavras incomuns ou fictícias ou palavras com pronúncias incomuns, você poderá melhorar o desempenho de reconhecimento dessas palavras definindo pronúncias personalizadas.
Para uma pequena lista de palavras e frases ou uma lista de palavras e frases usadas com pouca frequência, você pode criar pronúncias personalizadas em uma gramática SRGS. Consulte o elemento de token para obter mais informações.
Para listas maiores de palavras e frases, ou palavras e frases usadas com frequência, você pode criar documentos léxico de pronúncia separados. Consulte Sobre lexicons e alfabetos fonéticos para obter mais informações.
Testing
Teste a precisão do reconhecimento de fala e qualquer interface de usuário associada com a audiência-alvo do seu aplicativo. Essa é a melhor maneira de determinar a eficácia da experiência de interação de fala em seu aplicativo. Por exemplo, os usuários estão recebendo resultados de reconhecimento ruins porque seu aplicativo não está escutando uma frase comum?
Modifique a gramática para dar suporte a essa frase ou forneça aos usuários uma lista de frases com suporte. Se você já fornecer a lista de frases com suporte, verifique se ela é facilmente detectável.
TTS (conversão de texto em fala)
O TTS gera saída de fala a partir de texto simples ou SSML.
Tente projetar prompts que são educados e encorajadores.
Considere se você deve ler cadeias de caracteres longas de texto. Uma coisa é ouvir uma mensagem de texto, mas outra é ouvir uma longa lista de resultados de pesquisa que são difíceis de lembrar.
Você deve fornecer controles de mídia para permitir que os usuários pausem ou interrompam o TTS.
Você deve ouvir todas as cadeias de caracteres TTS para garantir que elas sejam inteligíveis e soem naturais.
- Unir uma sequência incomum de palavras ou números de parte de fala ou pontuação pode fazer com que uma frase se torne ininteligível.
- A fala pode soar não natural quando a prosódia ou a cadência é diferente de como um orador nativo diria uma frase.
Ambos os problemas podem ser resolvidos usando SSML em vez de texto sem formatação como entrada para o sintetizador de fala. Para obter mais informações sobre SSML, consulte Usar SSML para controlar a fala sintetizada e Referência de Linguagem de Marcação de Síntese de Fala.
Outros artigos nesta seção
| Tópico | Description |
|---|---|
| Reconhecimento de fala | Use o reconhecimento de fala para fornecer entrada, especificar uma ação ou comando e realizar tarefas. |
| Especificar o idioma do reconhecedor de fala | Saiba como selecionar um idioma instalado a ser usado para reconhecimento de fala. |
| Definir restrições de reconhecimento personalizadas | Saiba como definir e usar restrições personalizadas para reconhecimento de fala. |
| Habilitar ditado contínuo | Saiba como capturar e reconhecer entradas de falas ditadas continuamente de forma extensa. |
| Gerenciar problemas com entrada de áudio | Saiba como gerenciar problemas com a precisão de reconhecimento de fala causada pela qualidade da entrada de áudio. |
| Definir tempos limite de reconhecimento de fala | Defina por quanto tempo um reconhecedor de fala ignora o silêncio ou ruídos indistintos e continua a escutar a entrada de fala. |
Artigos relacionados
- Interações de fala
- Interações da Cortana
Amostras
Windows developer