Adaptation vocale automatique

La fonctionnalité d'adaptation vocale automatique améliore la précision de la reconnaissance vocale de l'agent en utilisant automatiquement l'état de conversation pour transmettre les entités pertinentes et les phrases d'entraînement comme indications de contexte vocal pour toutes les requêtes de détection d'intents. Cette fonctionnalité est désactivée par défaut.

Activer ou désactiver l'adaptation vocale automatique

Pour activer ou désactiver l'adaptation vocale automatique, procédez comme suit :

Console

  1. Ouvrez la console Dialogflow CX.
  2. Choisissez votre projet GCP.
  3. Sélectionnez votre agent.
  4. Cliquez sur Agent Settings (Paramètres de l'agent).
  5. Cliquez sur l'onglet Voix et réponse vocale interactive.
  6. Activez ou désactivez l'option Activer l'adaptation vocale.
  7. Cliquez sur Save (Enregistrer).

API

Consultez les méthodes get et patch/update pour le type Agent.

Sélectionnez un protocole et une version pour la référence de l'agent :

Protocole V3 V3beta1
REST Ressource Agent Ressource Agent
RPC Interface de l'agent Interface de l'agent
C++ Client-agent Non disponible
C# Client-agent Non disponible
Go Client-agent Non disponible
Java Client-agent Client-agent
Node.js Client-agent Client-agent
PHP Non disponible Non disponible
Python Client-agent Client-agent
Ruby Non disponible Non disponible

Exemples d'amélioration de la reconnaissance vocale

Lorsque l'adaptation vocale automatique est activée, vous pouvez créer votre agent de manière à en bénéficier. Les sections suivantes expliquent comment améliorer la reconnaissance vocale en apportant certaines modifications aux expressions d'entraînement et aux entités de votre agent.

Phrases d'entraînement

  • Si vous définissez des phrases d'entraînement avec une expression telle que "un beau nez", un énoncé utilisateur phonétiquement semblable est reconnu comme correspondant à "un beau nez", et non à "un bonnet".
  • Lorsque vous disposez d'un paramètre obligatoire qui oblige Dialogflow à envoyer des invites de remplissage de formulaires, l'adaptation vocale automatique penchera fortement vers l'entité remplie.

Dans tous les cas, l'adaptation vocale automatique ne fait que pondérer la reconnaissance vocale, et ne la limite pas. Par exemple, même si Dialogflow demande à un utilisateur un paramètre requis, les utilisateurs pourront toujours déclencher d'autres intents, tels qu'un intent de premier niveau "parler à un agent".

Entités système

Si vous définissez une phrase d'entraînement qui utilise l'entité système @sys.number et que l'utilisateur final dit le mot "deux", celui-ci peut être reconnu de différentes façons : "de", "d'œufs", "2" ou "deux".

Si l'adaptation vocale automatique est activée, l'entité @sys.number sert d'indication à Dialogflow pendant la reconnaissance vocale, et le paramètre est plus susceptible d'être extrait pour "2".

Entités personnalisées

  • Si vous définissez des entités pour les noms de produits ou de services proposés par votre entreprise et que l'utilisateur final mentionne ces termes dans un énoncé, ils sont plus susceptibles d'être reconnus. Une phrase d'entraînement telle que "I love Dialogflow", où "Dialogflow" est annoté en tant qu'entité @product, indique à l'adaptation automatique de pencher pour "I love Dialogflow", "I love Cloud Speech" et de toutes autres entrées de l'entité @product.

  • Il est particulièrement important de définir des synonymes d'entité propres lorsque vous utilisez Dialogflow pour détecter la reconnaissance vocale. Imaginons que vous disposez de deux entrées d'entité @product, "Dialogflow" et "Dataflow". Vos synonymes de "Dialogflow" peuvent être "Dialogflow", "dialogue flow", "dialogue builder", "Speaktoit", "speak to it", "API.ai", "API dot AI". Ce sont des synonymes pertinents, car ils présentent les variantes les plus courantes. Vous n'avez pas besoin d'ajouter "the dialogue flow builder", car "dialogue flow" couvre déjà cette entrée.

  • Les énoncés de l'utilisateur avec des entités de nombre consécutives, mais distinctes, peuvent être ambigus. Par exemple, "Je veux deux packs de seize" peut signifier 2 quantités de 16 paquets, soit 216 quantités de paquets. L'adaptation vocale peut aider à clarifier les cas suivants si vous configurez des entités avec des valeurs épelées :
    • Définissez une entité quantity avec des entrées :
      zero
      one
      ...
      twenty
    • Définissez une entité product ou size avec des entrées :
      sixteen pack
      two ounce
      ...
      five liter
    • Seuls les synonymes des entités sont utilisés dans l'adaptation vocale. Vous pouvez ainsi définir une entité avec la valeur de référence 1 et un simple synonyme one pour simplifier votre logique de fulfillment.

Entités de type expression régulière

Les entités d'expression régulière peuvent déclencher l'adaptation vocale automatique pour des séquences alphanumériques et numériques tels que "ABC123" ou "12345" lorsqu'elles sont correctement configurées. Bien que toute expression régulière puisse être utilisée pour extraire des entités du TLN, seules certaines expressions indiquent à l'adaptation automatique de la voix de tenir compte des séquences alphanumériques ou numériques épelées lors de la reconnaissance vocale.

Vérifiez que vous respectez toutes les conditions suivantes si vous souhaitez reconnaître ces séquences par commande vocale :

  • Au moins une de vos entrées d'entité d'expression régulière suit toutes ces règles :

    • Peut utiliser des jeux de caractères [].
    • Peut utiliser des quantificateurs répétitifs tels que *, ?, +, {3,5}
    • Ne contient pas d'espace blanc ni de \s, bien que \s* et \s? soient autorisés
    • Ne contient pas de groupes de capture ou non-()
    • N'essaie pas d'utiliser des caractères spéciaux ou des signes de ponctuation tels que : ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |
  • Marquez l'entité d'expression régulière en tant que paramètre de formulaire requis pour pouvoir la collecter lors du remplissage du formulaire. Cela permet à l'adaptation vocale automatique de pencher fortement pour la reconnaissance de séquence au lieu d'essayer de reconnaître un intent et une séquence en même temps. Sinon, "Where is my package for ABC123" sera peut-être mal interprété comme "Where is my package 4ABC123".

  • N'utilisez pas l'entité d'expression régulière pour une annotation de phrase d'entraînement d'intent. Cela garantit que le paramètre est résolu lors du remplissage du formulaire.

Par exemple, une entité d'expression régulière avec une seule entrée ([a-zA-Z0-9]\s?){5,9} ne déclenche pas l'outil de reconnaissance de la séquence vocale, car elle contient un groupe de capture. Pour résoudre ce problème, ajoutez simplement une autre entrée pour [a-zA-Z0-9]{5,9}. À présent, vous pourrez profiter de l'outil de reconnaissance de séquence lorsque la correspondance avec "ABC123" sera établie, mais le TLN continuera de correspondre aux entrées telles qu'ABC 123 grâce à la règle d'origine qui autorise les espaces.

Les exemples suivants d'expressions régulières s'adaptent aux séquences alphanumériques :

^[A-Za-z0-9]{1,10}$
WAC\d+
215[2-8]{3}[A-Z]+
[a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]

Les exemples suivants d'expressions régulières s'adaptent aux séquences de chiffres :

\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}

Pensez également à utiliser @sys.number-sequence pour accepter n'importe quelle séquence de chiffres, et @sys.phone-number pour une reconnaissance de numéro de téléphone localisé.

Tester l'adaptation vocale

Lorsque vous testez les capacités d'adaptation vocale de votre agent pour une expression ou une correspondance d'entité d'entraînement particulière, vous ne devez pas passer directement au test de la correspondance avec le premier énoncé vocal d'une conversation. Vous ne devez utiliser que des entrées vocales ou d'événements pour l'ensemble de la conversation avant la correspondance que vous souhaitez tester. Lorsqu'il est testé de cette manière, votre agent se comporte de la même manière que dans les conversations en production.

Limites

Les limites suivantes s'appliquent :

  • La reconnaissance des séquences de caractères longues est difficile. Le nombre de caractères que vous pouvez capturer avec précision en un seul geste est directement lié à la qualité du contenu audio de votre entrée. Si vous avez suivi toutes les consignes relatives aux entités d'expression régulière et que vous n'arrivez toujours pas à capturer l'intégralité de la séquence en un seul tour, envisagez d'autres solutions conversationnelles:

    • Lorsque vous validez la séquence par rapport à une base de données, pensez à faire référence aux autres paramètres collectés, tels que les dates, les noms ou les numéros de téléphone, afin d'autoriser les correspondances incomplètes. Par exemple, au lieu de demander simplement un numéro de commande à un utilisateur, demandez également son numéro de téléphone. Désormais, lorsque votre webhook interroge votre base de données pour connaître l'état de la commande, il s'appuie d'abord sur le numéro de téléphone, puis renvoie le numéro de commande correspondant le plus proche pour ce compte. Cela peut permettre à Dialogflow d'identifier "ABC" en tant que "AVC", mais de toujours renvoyer le correct état de la commande pour l'utilisateur.
    • Pour les séquences plus longues, envisagez de créer un flux qui encourage les utilisateurs finaux à faire une pause au milieu afin que le bot puisse confirmer au fur à mesure.
  • La prise en charge intégrée de l'adaptation automatique de la voix pour les entités système et les expressions régulières varie selon la langue. Consultez les jetons de classe Speech pour connaître les langues acceptées par $OOV_CLASS_ALPHANUMERIC_SEQUENCE et $OOV_CLASS_DIGIT_SEQUENCE. Si votre langue n'est pas répertoriée, vous pouvez contourner cette limite. Par exemple, si vous souhaitez qu'un ID d'employé composé de trois lettres suivies de trois chiffres soit correctement reconnu, vous pouvez créer votre agent avec les entités et les paramètres suivants :

    • Définissez une entité digit contenant 10 entrées d'entités (avec des synonymes) :
      0, 0
      1, 1
      ...
      9, 9
    • Définissez une entité letter contenant 26 entrées d'entités (avec des synonymes) :
      A, A
      B, B
      ...
      Z, Z
    • Définissez une entité employee-id contenant une seule entrée d'entité (sans synonymes) :
      @letter @letter @letter @digit @digit @digit
    • Utilisez @employee-id comme paramètre dans une expression d'entraînement.