Partager via


Interactions vocales

Intégrez la reconnaissance vocale et la synthèse vocale (également appelée TTS ou synthèse vocale) directement dans l’expérience utilisateur de votre application.

La reconnaissance vocale convertit les mots prononcés par l’utilisateur en texte pour l’entrée de formulaire, pour la dictée de texte, pour spécifier une action ou une commande, et pour accomplir des tâches. Les grammaires prédéfinies pour la dictée en texte libre et la recherche web, ainsi que les grammaires personnalisées créées à l’aide de la spécification de grammaire de reconnaissance vocale (SRGS) version 1.0 sont prises en charge.

TTS TTS utilise un moteur de synthèse vocale (voix) pour convertir une chaîne de texte en mots parlés. La chaîne d’entrée peut être de base, de texte nonadorné ou de langage de balisage de synthèse vocale plus complexe (SSML). SSML offre un moyen standard de contrôler les caractéristiques de la sortie vocale, telles que la prononciation, le volume, le pitch, la vitesse ou la vitesse, et l’accentuation.

D’autres composants vocaux :Cortana dans les applications Windows utilise des commandes vocales personnalisées (parlées ou typées) pour lancer votre application au premier plan (l’application prend le focus, comme si elle a été lancée à partir de l’menu Démarrer) ou s’active en tant que service en arrière-plan (Cortana conserve le focus mais fournit des résultats de l’application). Consultez les instructions de la commande vocale Cortana (VCD) si vous exposez des fonctionnalités d’application dans l’interface utilisateur Cortana .

Conception de l’interaction vocale

Conçu et implémenté de manière réfléchie, la parole peut être un moyen robuste et agréable pour les personnes d’interagir avec votre application, de compléter, ou même de remplacer, clavier, souris, toucher et mouvements.

Ces instructions et recommandations décrivent comment intégrer au mieux la reconnaissance vocale et le TTS dans l’expérience d’interaction de votre application.

Si vous envisagez de prendre en charge les interactions vocales dans votre application :

  • Quelles actions peuvent être effectuées par le biais de la parole ? Un utilisateur peut-il naviguer entre les pages, appeler des commandes ou entrer des données sous forme de champs de texte, de brèves notes ou de messages longs ?
  • L’entrée vocale est-elle une bonne option pour effectuer une tâche ?
  • Comment un utilisateur sait-il quand l’entrée vocale est disponible ?
  • L’application écoute-t-elle toujours ou l’utilisateur doit-il effectuer une action pour que l’application entre en mode d’écoute ?
  • Quelles expressions lancent une action ou un comportement ? Les expressions et les actions doivent-elles être énumérées à l’écran ?
  • Les écrans d’invite, de confirmation et d’ambiguïté sont-ils requis ?
  • Qu’est-ce que la boîte de dialogue d’interaction entre l’application et l’utilisateur ?
  • Un vocabulaire personnalisé ou limité est-il nécessaire (comme la médecine, la science ou les paramètres régionaux) pour le contexte de votre application ?
  • La connectivité réseau est-elle requise ?

Saisie de texte

La reconnaissance vocale pour l’entrée de texte peut aller de la forme courte (mot ou expression unique) à la forme longue (dictée continue). L’entrée de formulaire court doit être inférieure à 10 secondes, tandis que la session d’entrée de formulaire longue peut avoir jusqu’à deux minutes de longueur. (L’entrée de formulaire long peut être redémarrée sans intervention de l’utilisateur pour donner l’impression de la dictée continue.)

Vous devez fournir un indicateur visuel pour indiquer que la reconnaissance vocale est prise en charge et disponible pour l’utilisateur et si l’utilisateur doit l’activer. Par exemple, un bouton de barre de commandes avec un glyphe de microphone (voir barres de commandes) peut être utilisé pour afficher la disponibilité et l’état.

Fournissez des commentaires de reconnaissance continus pour réduire tout manque apparent de réponse pendant l’exécution de la reconnaissance.

Permettre aux utilisateurs de réviser le texte de reconnaissance à l’aide d’une entrée clavier, d’invites d’ambiguïté, de suggestions ou de reconnaissance vocale supplémentaire.

Arrêtez la reconnaissance si l’entrée est détectée à partir d’un appareil autre que la reconnaissance vocale, par exemple tactile ou clavier. Cela indique probablement que l’utilisateur a déplacé vers une autre tâche, comme corriger le texte de reconnaissance ou interagir avec d’autres champs de formulaire.

Spécifiez la durée pendant laquelle aucune entrée vocale n’indique que la reconnaissance est terminée. Ne redémarrez pas automatiquement la reconnaissance après cette période, car elle indique généralement que l’utilisateur a cessé d’interagir avec votre application.

Désactivez l’interface utilisateur de reconnaissance continue et terminez la session de reconnaissance si une connexion réseau n’est pas disponible. La reconnaissance continue nécessite une connexion réseau.

Commandes

L’entrée vocale peut lancer des actions, appeler des commandes et accomplir des tâches.

Si l’espace le permet, envisagez d’afficher les réponses prises en charge pour le contexte d’application actuel, avec des exemples d’entrée valides. Cela réduit les réponses potentielles que votre application doit traiter et élimine également la confusion pour l’utilisateur.

Essayez de formuler vos questions de telle sorte qu’elles suscitent une réponse aussi précise que possible. Par exemple, « Que voulez-vous faire aujourd’hui ? » est très ouvert et nécessite une définition grammaticale très importante en raison de la diversité des réponses. Sinon, « Voulez-vous jouer à un jeu ou écouter de la musique ? » limite la réponse à l’une des deux réponses valides avec une définition grammaticale de petite taille correspondante. Une petite grammaire est beaucoup plus facile à créer et entraîne des résultats de reconnaissance beaucoup plus précis.

Demander la confirmation de l’utilisateur lorsque la confiance de la reconnaissance vocale est faible. Si l’intention de l’utilisateur n’est pas claire, il est préférable d’obtenir des précisions que de lancer une action involontaire.

Vous devez fournir un indicateur visuel pour indiquer que la reconnaissance vocale est prise en charge et disponible pour l’utilisateur et si l’utilisateur doit l’activer. Par exemple, un bouton de barre de commandes avec un glyphe de microphone (voir Instructions pour les barres de commandes) peut être utilisé pour afficher à la fois la disponibilité et l’état.

Si le commutateur de reconnaissance vocale est généralement hors vue, envisagez d’afficher un indicateur d’état dans la zone de contenu de l’application.

Si la reconnaissance est lancée par l’utilisateur, envisagez d’utiliser l’expérience de reconnaissance intégrée pour la cohérence. L’expérience intégrée inclut des écrans personnalisables avec des invites, des exemples, des ambiguïtés, des confirmations et des erreurs.

Les écrans varient en fonction des contraintes spécifiées :

  • Grammaire prédéfinie (dictée ou recherche web)

    • Écran d’écoute .
    • Écran Pensée .
    • L’écran Entendu que vous dites ou l’écran d’erreur.
  • Liste de mots ou d’expressions ou d’un fichier de grammaire SRGS

    • Écran d’écoute .
    • L’écran Did you say , si ce que l’utilisateur a dit pourrait être interprété comme plusieurs résultats potentiels.
    • L’écran Entendu que vous dites ou l’écran d’erreur.

Sur l’écran d’écoute, vous pouvez :

  • Personnalisez le texte du titre.
  • Fournissez un exemple de texte de ce que l’utilisateur peut dire.
  • Spécifiez si l’écran Entendu que vous dites s’affiche.
  • Lisez la chaîne reconnue à l’utilisateur sur l’écran Heard que vous dites .

Voici un exemple de flux de reconnaissance intégré pour un module de reconnaissance vocale qui utilise une contrainte définie par SRGS. Dans cet exemple, la reconnaissance vocale réussit.

écran de reconnaissance initiale d’une contrainte basée sur un fichier de grammaire sgrs

Écran de reconnaissance intermédiaire pour une contrainte basée sur un fichier de grammaire sgrs

écran de reconnaissance finale d’une contrainte basée sur un fichier de grammaire sgrs

Toujours écouter

Votre application peut écouter et reconnaître l’entrée vocale dès le lancement de l’application, sans intervention de l’utilisateur.

Vous devez personnaliser les contraintes de grammaire en fonction du contexte de l’application. Cela permet de maintenir l’expérience de reconnaissance vocale très ciblée et pertinente pour la tâche actuelle, et réduit les erreurs.

Qu’est-ce que je dis ?

Lorsque l’entrée vocale est activée, il est important d’aider les utilisateurs à découvrir ce qui peut être compris exactement et quelles actions peuvent être effectuées.

Si la reconnaissance vocale est activée par l’utilisateur, envisagez d’utiliser la barre de commandes ou une commande de menu pour afficher tous les mots et expressions pris en charge dans le contexte actuel.

Si la reconnaissance vocale est toujours activée, envisagez d’ajouter l’expression « Que puis-je dire ? » à chaque page. Lorsque l’utilisateur indique cette expression, affichez tous les mots et expressions pris en charge dans le contexte actuel. L’utilisation de cette expression permet aux utilisateurs de découvrir des fonctionnalités vocales dans le système.

Échecs de reconnaissance

La reconnaissance vocale échoue. Les défaillances se produisent lorsque la qualité audio est médiocre, lorsque seule une partie d’une expression est reconnue ou lorsqu’aucune entrée n’est détectée du tout.

Gérez correctement l’échec, aidez un utilisateur à comprendre pourquoi la reconnaissance a échoué et à récupérer.

Votre application doit informer l’utilisateur qu’il n’a pas été compris et qu’il doit réessayer.

Envisagez de fournir des exemples d’une ou plusieurs expressions prises en charge. L’utilisateur est susceptible de répéter une expression suggérée, ce qui augmente la réussite de la reconnaissance.

Vous devez afficher une liste de correspondances potentielles pour qu’un utilisateur le sélectionne. Cela peut être beaucoup plus efficace que de passer à nouveau par le processus de reconnaissance.

Vous devez toujours prendre en charge d’autres types d’entrée, particulièrement utiles pour la gestion des échecs de reconnaissance répétés. Par exemple, vous pouvez suggérer que l’utilisateur tente d’utiliser un clavier, ou d’utiliser l’interaction tactile ou une souris pour effectuer une sélection dans une liste de correspondances potentielles.

Utilisez l’expérience de reconnaissance vocale intégrée, car elle inclut des écrans qui informent l’utilisateur que la reconnaissance n’a pas réussi et permet à l’utilisateur d’effectuer une autre tentative de reconnaissance.

Écoutez et essayez de corriger les problèmes dans l’entrée audio. Le module de reconnaissance vocale peut détecter les problèmes de qualité audio susceptibles d’affecter la précision de la reconnaissance vocale. Vous pouvez utiliser les informations fournies par le module de reconnaissance vocale pour informer l’utilisateur du problème et leur permettre de prendre des mesures correctives, si possible. Par exemple, si le paramètre de volume sur le microphone est trop faible, vous pouvez inviter l’utilisateur à parler plus fort ou à activer le volume.

Contraintes

Les contraintes ou grammaires définissent les mots et expressions prononcés qui peuvent être mis en correspondance par le module de reconnaissance vocale. Vous pouvez spécifier l’une des grammaires de service web prédéfinies ou créer une grammaire personnalisée installée avec votre application.

Grammaires prédéfinies

Les grammaires de dictée et de recherche web prédéfinies fournissent une reconnaissance vocale pour votre application sans avoir à créer une grammaire. Lorsque vous utilisez ces grammaires, la reconnaissance vocale est effectuée par un service web distant et les résultats sont retournés à l’appareil.

  • La grammaire de dictée de texte libre par défaut peut reconnaître la plupart des mots et expressions qu’un utilisateur peut dire dans une langue particulière et est optimisé pour reconnaître les phrases courtes. La dictée en texte libre est utile lorsque vous ne souhaitez pas limiter les types de choses qu’un utilisateur peut dire. Les utilisations classiques incluent la création de notes ou la dictée du contenu d’un message.
  • La grammaire de recherche web, comme une grammaire de dictée, contient un grand nombre de mots et d’expressions qu’un utilisateur peut dire. Toutefois, il est optimisé pour reconnaître les termes que les utilisateurs utilisent généralement lors de la recherche sur le web.

Remarque

Étant donné que les grammaires de dictée et de recherche web prédéfinies peuvent être volumineuses et parce qu’elles sont en ligne (pas sur l’appareil), les performances peuvent ne pas être aussi rapides qu’avec une grammaire personnalisée installée sur l’appareil.

Ces grammaires prédéfinies peuvent être utilisées pour reconnaître jusqu’à 10 secondes d’entrée vocale et ne nécessitent aucun effort de création de votre part. Toutefois, ils nécessitent une connexion à un réseau.

Grammaires personnalisées

Une grammaire personnalisée est conçue et créée par vous et installée avec votre application. La reconnaissance vocale à l’aide d’une contrainte personnalisée est effectuée sur l’appareil.

  • Les contraintes de liste programmatique offrent une approche légère pour créer des grammaires simples à l’aide d’une liste de mots ou d’expressions. Une contrainte de liste fonctionne bien pour reconnaître des expressions courtes et distinctes. La spécification explicite de tous les mots d’une grammaire améliore également la précision de la reconnaissance, car le moteur de reconnaissance vocale ne doit traiter que la voix pour confirmer une correspondance. La liste peut également être mise à jour par programmation.

  • Une grammaire SRGS est un document statique qui, contrairement à une contrainte de liste programmatique, utilise le format XML défini par la version SRGS 1.0. Une grammaire SRGS offre le meilleur contrôle de l’expérience de reconnaissance vocale en vous permettant de capturer plusieurs significations sémantiques dans une seule reconnaissance.

    Voici quelques conseils pour créer des grammaires SRGS :

    • Conservez chaque grammaire petite. Les grammaires qui contiennent moins d’expressions ont tendance à fournir une reconnaissance plus précise que les grammaires plus volumineuses qui contiennent de nombreuses expressions. Il est préférable d’avoir plusieurs grammaires plus petites pour des scénarios spécifiques que pour avoir une grammaire unique pour l’ensemble de votre application.
    • Indiquez aux utilisateurs ce qu’il faut dire pour chaque contexte d’application et activez et désactivez les grammaires si nécessaire.
    • Concevez chaque grammaire afin que les utilisateurs puissent parler une commande de différentes façons. Par exemple, vous pouvez utiliser la règle GARBAGE pour faire correspondre l’entrée vocale que votre grammaire ne définit pas. Cela permet aux utilisateurs de parler des mots supplémentaires qui n’ont aucune signification pour votre application. Par exemple, « donne-moi », « et », « uh », « peut-être », et ainsi de suite.
    • Utilisez l’élément sapi :sous-ensemble pour aider à faire correspondre l’entrée vocale. Il s’agit d’une extension Microsoft à la spécification SRGS pour vous aider à faire correspondre les expressions partielles.
    • Essayez d’éviter de définir des expressions dans votre grammaire qui ne contiennent qu’une seule syllabe. La reconnaissance tend à être plus précise pour les expressions contenant deux syllabes ou plus.
    • Évitez d’utiliser des expressions qui semblent similaires. Par exemple, les expressions telles que « hello », « bellow » et « fellow » peuvent confondre le moteur de reconnaissance et entraîner une mauvaise précision de reconnaissance.

Remarque

Le type de contrainte que vous utilisez dépend de la complexité de l’expérience de reconnaissance que vous souhaitez créer. Tout peut être le meilleur choix pour une tâche de reconnaissance spécifique, et vous pouvez trouver des utilisations pour tous les types de contraintes dans votre application.

Prononciations personnalisées

Si votre application contient un vocabulaire spécialisé avec des mots inhabituels ou fictifs, ou des mots avec des prononciations rares, vous pouvez améliorer les performances de reconnaissance pour ces mots en définissant des prononciations personnalisées.

Pour obtenir une petite liste de mots et d’expressions, ou une liste de mots et expressions rarement utilisés, vous pouvez créer des prononciations personnalisées dans une grammaire SRGS. Pour plus d’informations, consultez l’élément de jeton.

Pour des listes plus volumineuses de mots et d’expressions, ou des mots et expressions fréquemment utilisés, vous pouvez créer des documents lexiques de prononciation distincts. Pour plus d’informations, voir À propos des lexicons et des alphabets phonétiques .

Test

Testez la précision de la reconnaissance vocale et toute interface utilisateur de prise en charge avec le public cible de votre application. Il s’agit de la meilleure façon de déterminer l’efficacité de l’expérience d’interaction vocale dans votre application. Par exemple, les utilisateurs obtiennent-ils des résultats de reconnaissance médiocres, car votre application n’écoute pas une expression courante ?

Modifiez la grammaire pour prendre en charge cette expression ou fournissez aux utilisateurs une liste d’expressions prises en charge. Si vous fournissez déjà la liste des expressions prises en charge, assurez-vous qu’elle est facilement détectable.

Synthèse vocale (TTS)

TTS génère une sortie vocale à partir de texte brut ou de SSML.

Essayez de concevoir des invites polies et encourageantes.

Déterminez si vous devez lire de longues chaînes de texte. Il est une chose d’écouter un sms, mais une autre pour écouter une longue liste de résultats de recherche difficile à mémoriser.

Vous devez fournir des contrôles multimédias pour permettre aux utilisateurs de suspendre ou d’arrêter, TTS.

Vous devez écouter toutes les chaînes TTS pour vous assurer qu’elles sont intelligibles et son naturelles.

  • La chaîne d’une séquence inhabituelle de mots ou de chiffres de parties ou de ponctuation peut entraîner une expression de façon inintelligible.
  • La voix peut sembler anormale lorsque la prosodie ou la cadence est différente de la façon dont un orateur natif dirait une expression.

Les deux problèmes peuvent être résolus à l’aide de SSML au lieu de texte brut comme entrée au synthétiseur vocal. Pour plus d’informations sur SSML, consultez Utiliser SSML pour contrôler la synthèse vocale et la référence du langage de balisage de synthèse vocale.

Sujet Description
Reconnaissance vocale Utilisez la reconnaissance vocale pour fournir une entrée, spécifier une action ou une commande et accomplir des tâches.
Spécifier la langue du module de reconnaissance vocale Découvrez comment sélectionner une langue installée à utiliser pour la reconnaissance vocale.
Définir des contraintes de reconnaissance personnalisée Découvrez comment définir et utiliser des contraintes personnalisées pour la reconnaissance vocale.
Activer la dictée continue Découvrez comment capturer et reconnaître une entrée vocale de dictée continue et de longue forme.
Gérer les problèmes liés à l’entrée audio Découvrez comment gérer les problèmes liés à la précision de la reconnaissance vocale causée par la qualité de l’entrée audio.
Définir des délais d’expiration de reconnaissance vocale Définissez la durée pendant laquelle un module de reconnaissance vocale ignore le silence ou les sons non reconnaissables (babble) et continue d’écouter l’entrée vocale.

 Exemples