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. Ele dá suporte a 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.
Speech synthesis/Text to Speech (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.
Design de interação de fala
Quando você cria e implementa a fala com consideração, pode ser uma maneira eficaz, acessível e natural para que as pessoas interajam com seus aplicativos Windows, complementando ou até mesmo substituindo experiências de interação tradicionais com base em um mouse, teclado, controlador ou toque.
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, faça as seguintes perguntas:
- Quais ações os usuários podem executar por meio da fala? Eles podem 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 entrada de texto pode variar de entrada de formulário curto, como uma única palavra ou frase, a entrada de formulário longo, como várias frases, parágrafos ou ditado contínuo. Entradas curtas normalmente têm menos de 10 segundos de duração, enquanto sessões de entrada longa podem durar até dois minutos. A entrada de formulário longo pode ser reiniciada sem intervenção do usuário para dar a impressão de ditado contínuo.
Forneça 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, use um botão de barra de comandos com um glifo de microfone (consulte barras de comando) para mostrar a disponibilidade e o estado.
Forneça comentários de reconhecimento contínuos 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 via teclado, avisos 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. Essa entrada 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.
Em alguns casos, uma conexão de rede pode ser necessária para dar suporte ao reconhecimento de fala. Caso não esteja disponível, desabilite a interface de usuário para reconhecimento contínuo e encerre a sessão de reconhecimento.
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. Essa abordagem 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 para provocar uma resposta o mais específica possível. Por exemplo, "O que você deseja fazer hoje?" é muito aberto e requer 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.
Forneça 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, use um botão de barra de comandos com um glifo de microfone (consulte Diretrizes para barras de comandos) 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 usuário iniciar o reconhecimento, considere usar a experiência de reconhecimento integrada 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 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 de Escuta.
- A tela Você disse se o que o usuário disse puder ser interpretado como mais de um resultado possível.
- A tela de Ouvir o que você disse 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 .
As imagens a seguir mostram um exemplo do fluxo de reconhecimento interno para um reconhecedor de fala que usa uma restrição definida por 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.
Personalize as restrições gramaticais com base no contexto do aplicativo. Essa abordagem mantém a experiência de reconhecimento de fala muito direcionada e relevante para a tarefa atual e minimiza erros.
"O que posso dizer?"
Ao habilitar a entrada de fala, ajude os usuários a descobrir o que o aplicativo pode entender e quais ações ele pode executar.
Se os usuários habilitarem o reconhecimento de fala, 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 pode falhar. Falhas ocorrem quando a qualidade do áudio é ruim, quando o reconhecedor detecta apenas parte de uma frase ou quando o reconhecedor não detecta nenhuma entrada.
Manipule a falha de forma eficaz, ajude o usuário a entender por que o reconhecimento falhou e promova a recuperação.
Seu aplicativo deve informar ao usuário que o reconhecedor não os entendeu 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.
Exibir uma lista de possíveis correspondências para o usuário selecionar. Essa abordagem pode ser muito mais eficiente do que passar pelo processo de reconhecimento novamente.
Sempre dê 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.
Restrições
Restrições ou gramáticas definem as palavras e frases faladas que o reconhecedor de fala pode reconhecer. Você pode especificar uma das gramáticas predefinidas do serviço Web 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. Quando você usa essas gramáticas, um serviço Web remoto executa o reconhecimento de fala e retorna os resultados para o dispositivo.
- A gramática de ditado de texto livre padrão reconhece a maioria das palavras e frases que um usuário pode dizer em um idioma específico. Ele é otimizado para reconhecer frases curtas. Use o ditado de texto livre quando você não quiser 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 para 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, 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 reconhecer até 10 segundos de entrada de fala e não exigem esforço de criação. No entanto, eles exigem conexão com uma rede.
Gramáticas personalizadas
Desenvolva e crie uma gramática personalizada e instale-a com o aplicativo. O dispositivo executa o reconhecimento de fala usando uma restrição personalizada.
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. Você também pode atualizar a lista 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, use a regra GARBAGE para corresponder à entrada de fala que sua gramática não define. Essa regra 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. Esse elemento é uma extensão da Microsoft para a especificação 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 tipo 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 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, crie 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 frequentemente usadas, crie documentos léxico de pronúncia separados. Consulte Sobre lexicons e alfabetos fonéticos para obter mais informações.
Testes
Teste a precisão do reconhecimento de fala e qualquer interface de usuário associada com a audiência-alvo do seu aplicativo. Essa abordagem ajuda você a determinar o quão eficaz é a 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 escuta 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 os usuários podem encontrá-la facilmente.
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.
Forneça controles de mídia para permitir que os usuários pausem ou interrompa o TTS.
Ouça 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.
Você pode resolver ambos os problemas 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.