Compartilhar via


Fornecer uma boa recuperação de erro

[O Microsoft Agent foi preterido a partir do Windows 7 e pode estar indisponível nas versões subsequentes do Windows.]

Assim como acontece com qualquer interface bem projetada, o processo interativo deve minimizar as circunstâncias que levam a erros. No entanto, raramente é possível eliminar todos os erros, portanto, dar suporte à boa recuperação de erros é essencial para manter a confiança e o interesse do usuário. Em geral, a recuperação de erro envolve detectar um erro, determinar a causa e definir uma maneira de resolve o erro. Os usuários respondem melhor às interfaces que são cooperativas, que funcionam com o usuário para realizar uma tarefa.

A primeira etapa na recuperação de erro de fala é detectar a condição de falha. O reconhecimento de fala pode falhar devido a uma variedade de erros. As condições de erro geralmente podem ser detectadas como resultado de entrada inválida, correção explícita do usuário ou cancelamento ou repetição do usuário.

Um erro de rejeição ocorre quando o mecanismo de reconhecimento não tem correspondência com o que o usuário disse. Ruído de tela de fundo ou inícios iniciais também são causas comuns de falha de reconhecimento, portanto, pedir ao usuário para repetir um comando geralmente é uma boa solução inicial. No entanto, se a frase estiver fora da gramática ativa atual, pedir ao usuário para reformular a solicitação poderá resolver o problema. A diferença na redação pode resultar em uma correspondência com algo na gramática atual. Listar ou sugerir opções de entrada esperadas apropriadas é outra alternativa.

Uma boa estratégia para a recuperação de erros de rejeição é combinar essas técnicas para colocar o usuário de volta aos trilhos, oferecendo cada vez mais assistência se a falha persistir. Por exemplo, você pode começar respondendo à falha inicial com um interrogado como "Huh?" ou "O quê?" ou um gesto de mão para a orelha. Uma resposta curta aumenta a probabilidade de que a instrução repetida do usuário não falhe porque o usuário falou muito cedo. Após uma falha repetida, a solicitação subsequente para reformular melhora a chance de corresponder a algo dentro da gramática fornecida. A partir daqui, fornecer prompts explícitos de comandos aceitos aumenta ainda mais a chance de uma correspondência. Essa técnica é ilustrada no exemplo a seguir:

Usuário: Eu gostaria de uma pizza no estilo Chicago com anchovas.

Personagem: (Mão a orelha) Hein?

Usuário: Quero uma pizza de Chicago com anchovas.

Caractere: (Balanceamento de cabeça) Reformular sua solicitação.

Eu disse pizza de Chicago, com anchovas.

Personagem: (Encolher de ombros) Sinto muito. Diga-me o estilo de pizza que você quer.

Usuário: Chicago, com anchovies.

Personagem: Ainda sem sorte. Aqui está o que você pode dizer: "Chicago", "Havaiano" ou "Combinação".

Para tornar o tratamento de erros mais natural, certifique-se de fornecer um grau de variação aleatória ao responder a erros. Além disso, uma reação natural do usuário a qualquer solicitação para repetir uma resposta é exagerar ou aumentar o volume ao repetir a instrução. Pode ser útil ocasionalmente lembrar o usuário de falar normalmente e claramente, pois o exagero ou o aumento do volume podem dificultar o reconhecimento das palavras pelo mecanismo de fala.

A assistência progressiva deve fazer mais do que chamar a atenção do usuário. ele deve orientar o usuário a falar na gramática atual, fornecendo sucessivamente mensagens mais informativas. Interfaces que parecem estar tentando entender incentivam um alto grau de satisfação e tolerância do usuário.

Erros de substituição, em que o mecanismo de fala reconhece a entrada, mas corresponde ao comando errado, são mais difíceis de resolve porque o mecanismo de fala detecta um enunciado correspondente. Uma incompatibilidade também pode ocorrer quando o mecanismo de fala interpreta sons estranhos como entrada válida (também conhecido como erro de inserção). Nessas situações, a assistência do usuário é necessária para identificar a condição de erro. Para fazer isso, você pode repetir o que o mecanismo de fala retornou e pedir ao usuário para confirmá-lo antes de continuar:

Usuário: Eu gostaria de uma pizza no estilo Chicago.

Você disse que gostaria de uma "pizza estilo Chicago"?

Usuário: Sim.

Personagem: Que ingredientes adicionais você gostaria nele?

Usuário: Anchovies.

Você disse "anchovas"?

Usuário: Sim.

No entanto, usar essa técnica para cada enunciado torna-se ineficiente e cansativo. Para lidar com isso, restrinja a confirmação a situações que tenham consequências negativas significativas ou aumentem a complexidade da tarefa imediata. Se for fácil para o usuário fazer ou reverter as alterações, você poderá evitar solicitar a confirmação de suas escolhas. Da mesma forma, se você tornar as escolhas visíveis, talvez não precise fornecer correção explícita. Por exemplo, escolher um item de uma lista pode não exigir verificação porque o usuário pode ver os resultados e alterá-los facilmente. Você também pode usar a confiança e as pontuações alternativas para fornecer um limite para confirmação. Você pode ajustar o limite mantendo um histórico das ações do usuário em determinada situação e eliminando a verificação com base na confirmação consistente do usuário. Por fim, considere a natureza multimoda da interface. A confirmação do mouse ou teclado também pode ser apropriada.

Escolha cuidadosamente a redação de confirmações. Por exemplo, "Você disse...?" ou "Acho que você disse..." são melhores do que "Você realmente quer...?" porque as frases anteriores implicam que a precisão da escuta do caractere (reconhecimento) está sendo consultada, não que o usuário possa ter errado.

Considere também a gramática para uma resposta. Por exemplo, é provável que uma resposta negativa gere um erro de rejeição, exigindo um prompt adicional, conforme mostrado no exemplo a seguir:

Usuário: Eu gostaria de um pouco de pepperoni.

Você disse "sem presunto"?

Usuário: Não, eu disse pepperoni.

Personagem: Hein?

Usuário: Pepperoni.

Modificar sua gramática para incluir prefixos para lidar com variações de resposta natural aumenta a eficiência do processo de recuperação, especialmente quando o usuário não confirma o prompt de verificação. Neste exemplo, a confirmação poderia ter sido tratada em uma única etapa modificando a gramática do "pepperoni" incluindo também "não, eu disse pepperoni", "Eu disse pepperoni" e "no pepperoni".

Você também pode lidar com erros de substituição usando as correspondências alternativas retornadas pelo mecanismo de fala como a confirmação corretiva:

Usuário: Eu gostaria de um pouco de pepperoni.

Personagem: (Ouve "sem presunto" como melhor combinação, "pepperoni" como primeira alternativa) Você disse "sem presunto"?

Usuário: Não, pepperoni.

Personagem: (Ainda ouve "sem presunto" como melhor correspondência, mas agora oferece a primeira alternativa) "Pepperoni"?

Da mesma forma, você pode manter um histórico de erros comuns de substituição e, se um erro específico for frequente, ofereça a alternativa pela primeira vez.

Em qualquer situação de erro de reconhecimento, evite culpar o usuário. Se o caractere sugerir ou até mesmo implicar que o usuário deve blame ou o caractere parece indiferente ao erro, o usuário pode ficar ofendido. Aqui também, escolha cuidadosamente a redação que aceite explicitamente a responsabilidade, seja apropriada para a situação e use a variedade para criar uma resposta mais natural. Ao expressar um pedido de desculpas, evite palavras ambíguas como "oops" ou "uh-oh" que possam ser interpretadas como culpando o usuário. Em vez disso, use frases como "Sinto muito" ou "Meu erro". Erros repetidos ou mais graves podem usar um pedido de desculpas mais elaborado como "Sinto muito por isso". Considere também a personalidade do caractere ao determinar o tipo de resposta. Outra opção é blame uma situação externa. Comentários como, "Rapaz, é barulhento lá fora", tiram a blame do usuário e do personagem. Lembrar o usuário da natureza cooperativa da interação também pode ser útil: considere frases como "Vamos ver o que podemos fazer para fazer isso funcionar".

O Microsoft Agent também dá suporte a alguns comentários automáticos para reconhecimento. Quando um enunciado é detectado, a Dica de Escuta exibe o texto de voz da melhor correspondência ouvida. Você pode definir seu próprio texto para exibição com base na configuração de confiança de um comando definido.

Devido ao potencial de erro, sempre exija confirmação para quaisquer opções que tenham sérias consequências negativas e sejam irreversíveis. Naturalmente, você precisará de confirmação quando os resultados de uma ação puderem ser destrutivos. No entanto, considere também exigir confirmação para situações que anulam qualquer processo ou operação demorada.