Partager via


Faciliter la récupération d’erreurs

[Microsoft Agent est déconseillé à partir de Windows 7 et peut ne pas être disponible dans les versions ultérieures de Windows.]

Comme pour toute interface bien conçue, le processus interactif doit réduire au minimum les circonstances qui entraînent des erreurs. Toutefois, il est rarement possible d’éliminer toutes les erreurs. La prise en charge d’une bonne récupération des erreurs est donc essentielle pour maintenir la confiance et l’intérêt de l’utilisateur. En général, la récupération d’erreur implique la détection d’une erreur, la détermination de la cause et la définition d’un moyen de résoudre l’erreur. Les utilisateurs répondent mieux aux interfaces coopératives, qui fonctionnent avec l’utilisateur pour accomplir une tâche.

La première étape de la récupération d’erreur vocale consiste à détecter la condition d’échec. La reconnaissance vocale peut échouer en raison de diverses erreurs. Les conditions d’erreur peuvent généralement être détectées en raison d’une entrée non valide, d’une correction ou d’une annulation explicite de l’utilisateur ou d’une répétition de l’utilisateur.

Une erreur de rejet se produit lorsque le moteur de reconnaissance ne correspond pas à ce que l’utilisateur a dit. Le bruit de fond ou les démarrages précoces sont également des causes courantes d’échec de la reconnaissance, donc demander à l’utilisateur de répéter une commande est souvent une bonne solution initiale. Toutefois, si l’expression est en dehors de la grammaire active actuelle, demander à l’utilisateur de reformuler la requête peut résoudre le problème. La différence de formulation peut entraîner une correspondance avec quelque chose dans la grammaire actuelle. Répertorier ou suggérer des options d’entrée attendues appropriées est une autre alternative.

Une bonne stratégie pour la récupération des erreurs de rejet consiste à combiner ces techniques pour remettre l’utilisateur sur les rails, offrant de plus en plus d’assistance si l’échec persiste. Par exemple, vous pouvez commencer par répondre à l’échec initial avec un interrogatoire comme « Huh ? » ou « What ? » ou un mouvement main-à-l’oreille. Une réponse courte augmente la probabilité que l’instruction répétée de l’utilisateur n’échoue pas, car l’utilisateur a parlé trop tôt. En cas d’échec répété, la demande de reforma suivante améliore la probabilité de faire correspondre quelque chose dans la grammaire donnée. À partir de là, la fourniture d’invites explicites de commandes acceptées augmente davantage les chances d’une correspondance. Cette technique est illustrée dans l’exemple suivant :

Utilisateur : J’aimerais une pizza de style Chicago avec des anchois.

Caractère: (de la main à l’oreille) Hein?

Utilisateur : Je veux une pizza chicago avec des anchois.

Caractère: (Coup de tête) Veuillez reformuler votre demande.

Utilisateur : J’ai dit Pizza chicago, avec des anchois.

Caractère: (Shrug) Je suis désolé. Dites-moi le style de pizza que vous voulez.

Utilisateur : Chicago, avec des anchois.

Caractère: Toujours pas de chance. Voici ce que vous pouvez dire : « Chicago », « Hawaïen » ou « Combo ».

Pour que la gestion des erreurs soit plus naturelle, veillez à fournir un degré de variation aléatoire lors de la réponse aux erreurs. En outre, une réaction naturelle de l’utilisateur à toute demande de répétition d’une réponse consiste à exagérer ou à augmenter le volume lors de la répétition de l’instruction. Il peut être utile de rappeler occasionnellement à l’utilisateur de parler normalement et clairement, car l’exagération ou l’augmentation du volume peuvent rendre plus difficile pour le moteur vocal de reconnaître les mots.

L’assistance progressive doit faire plus que porter l’erreur à l’attention de l’utilisateur ; il doit guider l’utilisateur vers la parole dans la grammaire actuelle en fournissant successivement des messages plus informatifs. Les interfaces qui semblent essayer de comprendre encouragent un degré élevé de satisfaction et de tolérance de la part de l’utilisateur.

Les erreurs de substitution, où le moteur vocal reconnaît l’entrée mais correspond à la commande incorrecte, sont plus difficiles à résoudre, car le moteur de reconnaissance vocale détecte un énoncé correspondant. Une incompatibilité peut également se produire lorsque le moteur vocal interprète des sons superflus comme une entrée valide (également appelée erreur d’insertion). Dans ces situations, l’assistance de l’utilisateur est nécessaire pour identifier la condition d’erreur. Pour ce faire, vous pouvez répéter ce que le moteur speech a retourné et demander à l’utilisateur de le confirmer avant de continuer :

Utilisateur : J’aimerais une pizza de style Chicago.

Caractère: Avez-vous dit que vous aimeriez une pizza de style Chicago?

Utilisateur : Oui.

Caractère: Quels ingrédients supplémentaires aimeriez-vous dessus?

Utilisateur : Anchois.

Caractère: As-tu dit « anchois » ?

Utilisateur : Oui.

Toutefois, l’utilisation de cette technique pour chaque énoncé devient inefficace et fastidieuse. Pour gérer ce problème, limitez la confirmation aux situations qui ont des conséquences négatives importantes ou qui augmentent la complexité de la tâche immédiate. S’il est facile pour l’utilisateur d’apporter ou d’inverser des modifications, vous pouvez éviter de demander la confirmation de ses choix. De même, si vous faites des choix visibles, vous n’aurez peut-être pas besoin de fournir une correction explicite. Par exemple, le choix d’un élément dans une liste peut ne pas nécessiter de vérification, car l’utilisateur peut voir les résultats et les modifier facilement. Vous pouvez également utiliser des scores de confiance et d’autres scores pour fournir un seuil de confirmation. Vous pouvez ajuster le seuil en conservant un historique des actions de l’utilisateur dans une situation donnée et en éliminant la vérification basée sur une confirmation cohérente de l’utilisateur. Enfin, considérez la nature multimodale de l’interface. La confirmation de la souris ou du clavier peut également être appropriée.

Choisissez soigneusement le libellé des confirmations. Par exemple, « Avez-vous dit... ? » ou « Je crois que vous avez dit... » sont mieux que « Voulez-vous vraiment... ? », car les anciennes phrases impliquent que la précision de l’écoute (reconnaissance) du personnage est interrogée, et non que l’utilisateur peut avoir des erreurs.

Tenez également compte de la grammaire d’une réponse. Par exemple, une réponse négative est susceptible de générer une erreur de rejet, nécessitant une invite supplémentaire, comme indiqué dans l’exemple suivant :

Utilisateur : J’aimerais un peu de pepperoni.

Caractère: Tu as dit « pas de jambon » ?

Utilisateur : Non, j’ai dit pepperoni.

Personnage: Hein?

Utilisateur : Pepperoni.

La modification de votre grammaire pour inclure des préfixes pour gérer les variations de réponse naturelle augmente l’efficacité du processus de récupération, en particulier lorsque l’utilisateur ne confirme pas l’invite de vérification. Dans cet exemple, la confirmation aurait pu être traitée en une seule étape en modifiant la grammaire du « pepperoni » en incluant également « no I said pepperoni », « I said pepperoni » et « no pepperoni ».

Vous pouvez également gérer les erreurs de substitution à l’aide des correspondances alternatives retournées par le moteur de reconnaissance vocale comme confirmation corrective :

Utilisateur : J’aimerais un peu de pepperoni.

Caractère: (Entend « pas de jambon » comme meilleure correspondance, « pepperoni » comme première alternative) Avez-vous dit « pas de jambon »?

Utilisateur : Non, pepperoni.

Caractère: (entend toujours « pas de jambon » comme meilleure correspondance, mais offre maintenant la première alternative) « Pepperoni »?

De même, vous pouvez conserver un historique des erreurs de substitution courantes et, si une erreur particulière est fréquente, proposez l’alternative la première fois.

Dans toute situation d’erreur de reconnaissance, évitez de blâmer l’utilisateur. Si le caractère suggère ou même implique que l’utilisateur est responsable, ou si le caractère semble indifférent à l’erreur, l’utilisateur peut être offensé. Ici aussi, choisissez soigneusement une formulation qui accepte explicitement la responsabilité, est adaptée à la situation et utilise la variété pour créer une réponse plus naturelle. Lorsque vous exprimez des excuses, évitez les mots ambigus comme « oops » ou « uh-oh » qui pourraient être interprétés comme blâmer l’utilisateur. Au lieu de cela, utilisez des expressions comme « Je suis désolé » ou « Mon erreur ». Des erreurs répétées ou plus graves peuvent utiliser des excuses plus élaborées comme « Je suis vraiment désolé à ce sujet ». Tenez également compte de la personnalité du caractère lors de la détermination du type de réponse. Une autre option consiste à blâmer une situation externe. Des commentaires tels que « Garçon, c’est bruyant là-bas », éloignent la faute de l’utilisateur et du personnage. Rappeler à l’utilisateur la nature coopérative de l’interaction peut également être utile : envisagez des expressions telles que « Voyons ce que nous pouvons faire pour faire ce travail ».

Microsoft Agent prend également en charge certains commentaires automatiques pour la reconnaissance. Lorsqu’un énoncé est détecté, le conseil d’écoute affiche le texte vocal de la meilleure correspondance entendue. Vous pouvez définir votre propre texte à afficher en fonction du paramètre de confiance pour une commande que vous définissez.

En raison du potentiel d’erreur, exigez toujours une confirmation pour tous les choix qui ont de graves conséquences négatives et sont irréversibles. Naturellement, vous devez avoir besoin d’une confirmation lorsque les résultats d’une action peuvent être destructeurs. Toutefois, envisagez également d’exiger une confirmation pour les situations qui abandonnent un processus ou une opération de longue durée.