Partilhar via


Interações de controle por voz

Integre o reconhecimento de fala e a conversão de texto em fala (também conhecida 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, 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 Especificação de Gramática de Reconhecimento de Fala (SRGS) 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 cadeia de caracteres de entrada pode ser texto básico e sem adornos ou SSML (Speech Synthesis Markup Language) mais complexo. O SSML fornece uma maneira padrão de controlar as 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 recebe o foco, como se tivesse sido iniciado no menu Iniciar) ou ativar como um serviço em segundo plano (a Cortana mantém o foco, mas fornece resultados do aplicativo). Consulte Interações da Cortana em aplicativos do Windows.

Design de interação de fala

Projetada e implementada de forma cuidadosa, a fala pode ser uma maneira robusta e agradável de as pessoas interagirem com seu aplicativo, complementando ou até mesmo substituindo teclado, mouse, toque e gestos.

Essas diretrizes e recomendações descrevem a melhor forma de integrar o reconhecimento de fala e o TTS à experiência de interação do seu aplicativo.

Se você estiver pensando em oferecer suporte a interações de fala em seu aplicativo:

  • Que 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, notas 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 ouvindo ou o usuário precisa executar uma ação para que o aplicativo entre no modo de escuta?
  • Quais frases iniciam uma ação ou comportamento? As frases e ações precisam ser enumeradas na tela?
  • As telas de prompt, confirmação e desambiguação ou TTS são necessárias?
  • O que é a caixa de diálogo de interação entre o aplicativo e o usuário?
  • É necessário um vocabulário personalizado ou restrito (como medicina, ciência ou localidade) para o contexto do seu aplicativo?
  • É necessária conectividade de rede?

Entrada de texto

A fala para entrada de texto pode variar de forma curta (palavra ou frase única) a forma longa (ditado contínuo). A entrada de formato curto deve ter menos de 10 segundos de duração, enquanto a sessão de entrada de formato longo pode ter até dois minutos de duração. (A entrada de formato 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 da barra de comandos com um glifo de microfone (consulte Barras de comandos) pode ser usado para mostrar a disponibilidade e o estado.

Forneça feedback de reconhecimento contínuo para minimizar qualquer aparente falta de resposta enquanto o reconhecimento está sendo executado.

Permita que os usuários revisem o texto de reconhecimento usando entrada de teclado, prompts de desambiguação, sugestões ou reconhecimento de fala adicional.

Interrompa o reconhecimento se a entrada for detectada em um dispositivo diferente do reconhecimento de fala, como toque ou teclado. Isso provavelmente indica que o usuário mudou para outra tarefa, como corrigir o texto de reconhecimento ou interagir com outros campos de formulário.

Especifique o período de tempo durante o qual nenhuma entrada de fala indica que o reconhecimento acabou. Não reinicie automaticamente o reconhecimento após esse período, pois isso normalmente indica que o usuário parou de interagir com seu aplicativo.

Desative todas as interfaces 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.

Comando

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 forma 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 à variedade das respostas. Alternativamente, "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 da 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 interna para 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 Thinking .
    • A tela Ouvi você dizer ou a tela de erro.
  • Lista de palavras ou frases, ou um arquivo de gramática SRGS

    • A tela de escuta .
    • A tela Você disse , se o que o usuário disse pode ser interpretado como mais de um resultado potencial.
    • 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 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.

Tela de reconhecimento inicial para uma restrição baseada em um arquivo de gramática SGRS

Tela de reconhecimento intermediário para uma restrição baseada em um arquivo de gramática SGRS

Tela de reconhecimento final para uma restrição baseada em um arquivo de gramática SGRS

Sempre ouvindo

Seu aplicativo pode ouvir e reconhecer a entrada de fala assim que o aplicativo é 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 os erros.

"O que posso falar?"

Quando a entrada de fala está habilitada, é importante ajudar os usuários a descobrir exatamente o que pode ser entendido e quais ações podem ser executadas.

Se o reconhecimento de fala estiver habilitado pelo 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 disser 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á. As falhas acontecem quando a qualidade do áudio é ruim, quando apenas parte de uma frase é reconhecida ou quando nenhuma entrada é detectada.

Lide com a falha normalmente, ajude um usuário a entender por que o reconhecimento falhou e recupere-se.

Seu aplicativo deve informar ao usuário que ele não foi compreendido e que ele precisa tentar novamente.

Você pode fornecer exemplos de uma ou mais frases com suporte. É provável que o usuário repita uma frase sugerida, o que aumenta o sucesso 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ê deve sempre 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 usar o toque ou o mouse para selecionar em uma lista de possíveis correspondências.

Use a experiência de reconhecimento de fala interna, pois ela 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 permitir que ele tome medidas corretivas, se possível. Por exemplo, se a configuração de volume do microfone estiver muito baixa, você poderá solicitar que o usuário fale mais alto ou aumente o volume.

Restrições

Restrições, ou gramáticas, definem as palavras e frases faladas que podem ser correspondidas pelo reconhecedor de fala. Você pode especificar uma das gramáticas de serviço Web predefinidas ou criar uma gramática personalizada que é instalada com seu aplicativo.

Gramáticas predefinidas

Ditado predefinido e 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 ao 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 notas 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, ele é otimizado para reconhecer termos que as pessoas normalmente usam ao pesquisar na web.

Observação

Como as gramáticas predefinidas de ditado e pesquisa na Web podem ser grandes e como estão 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 a 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. As gramáticas que contêm menos frases tendem a fornecer um reconhecimento mais preciso do que as 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 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.
    • Use o elemento sapi:subset para ajudar a corresponder à entrada de fala. Esta é uma extensão da Microsoft para a especificação SRGS para ajudar a corresponder 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 contendo duas ou mais sílabas.
    • Evite usar frases que soem semelhantes. Por exemplo, frases como "olá", "abaixo" e "companheiro" podem confundir o mecanismo de reconhecimento e resultar em baixa precisão de reconhecimento.

Observação

O tipo de tipo de restrição que você usa depende da complexidade da experiência de reconhecimento que você deseja criar. Qualquer um pode ser a melhor opção para uma tarefa de reconhecimento específica e você pode encontrar usos para todos os tipos de restrições em seu aplicativo.

Pronúncias personalizadas

Se o app contiver vocabulário especializado com palavras incomuns ou fictícias, ou palavras com pronúncias incomuns, talvez você consiga 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 token Element para obter mais informações.

Para listas maiores de palavras e frases, ou palavras e frases usadas com frequência, você pode criar documentos de léxico de pronúncia separados. Veja Sobre léxicos e alfabetos fonéticos para mais informações.

Testando

Teste a precisão do reconhecimento de fala e qualquer interface do usuário de suporte com o público-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 obtendo resultados de reconhecimento ruins porque seu aplicativo não está ouvindo 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.

Conversão de texto em fala (TTS)

O TTS gera saída de fala a partir de texto sem formatação ou SSML.

Tente criar prompts que sejam educados e encorajadores.

Considere se você deve ler longas sequências de texto. Uma coisa é ouvir uma mensagem de texto, mas outra bem diferente é ouvir uma longa lista de resultados de pesquisa difíceis de lembrar.

Você deve fornecer controles de mídia para permitir que os usuários pausem ou parem o TTS.

Você deve ouvir todas as cordas TTS para garantir que sejam inteligíveis e soem naturais.

  • Encadear uma sequência incomum de palavras ou falar números de peças ou pontuação pode fazer com que uma frase se torne ininteligível.
  • A fala pode soar antinatural quando a prosódia ou cadência é diferente de como um falante 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 fala sintetizada e referência de linguagem de marcação de síntese de fala.

Tópico Descrição
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 para usar no 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 a entrada de fala de ditado contínuo e de formato longo.
Gerenciar problemas com entrada de áudio Saiba como gerenciar problemas na precisão do reconhecimento de fala causados 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 sons irreconhecíveis (balbucio) e continua ouvindo a entrada de fala.

 Amostras