Lorsque vous effectuez une requête de détection d'intent, vous pouvez éventuellement fournir un contexte de reconnaissance vocale pour donner des indications au système de reconnaissance vocale. Ces indications peuvent faciliter la reconnaissance dans un état de conversation spécifique.
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 activé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 :
- Accédez à la console Dialogflow ES.
- Sélectionnez votre agent dans la partie supérieure du menu de la barre latérale gauche.
- Cliquez sur le bouton des paramètres settings à côté du nom de l'agent.
- Sélectionnez l'onglet Voix.
- Faites défiler la page jusqu'à la section Améliorer la qualité de la reconnaissance vocale.
- Sélectionnez ou déselectionnez l'option Activer l'adaptation vocale automatique.
Conception d'agent pour améliorer 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, au contexte et aux entités de votre agent.
Phrases d'entraînement et contextes
- Si vous définissez des phrases d'entraînement avec une expression telle que "stuffy nose" (nez encombré), une expression similaire de l'utilisateur final est reconnue de manière fiable comme "stuffy nose" et non comme "stuff he knows" (ce qu'il sait).
Lorsqu'une session comporte des contextes actifs, l'adaptation automatique de la voix privilégie les phrases d'entraînement des intents où tous les contextes d'entrée sont actifs. Par exemple, avec deux contextes actifs "pay-bill" et "confirmation", tous les intents suivants vont influencer l'adaptation vocale automatique : les intents avec un contexte d'entrée unique "pay-bill", les intents avec un seul contexte d'entrée "confirmation", et intents avec deux contextes d'entrée "pay-bill" et "confirmation".
Lorsqu'une session n'a pas de contextes actifs, l'adaptation vocale automatique penchera plus pour les expressions d'entraînement des intents sans contexte d'entrée.
- Lorsque vous avez un paramètre obligatoire qui force Dialogflow à afficher des invites de remplissage d'emplacement, l'adaptation automatique de la reconnaissance vocale est fortement biaisée vers l'entité en cours de remplissage.
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 "I want two" (Je veux deux), l'expression peut être reconnue comme "to", "too", "2" ou "two".
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 une entité personnalisée 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é
quantityavec des entrées :zeroone...twenty - Définissez une entité
productousizeavec des entrées :sixteen packtwo 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
1et un simple synonymeonepour simplifier votre logique de fulfillment.
- Définissez une entité
Entités d'expression régulière
Les entités d'expression régulière peuvent déclencher l'adaptation vocale automatique pour les séquences alphanumériques et numériques telles que "ABC123" ou "12345" lorsqu'elles sont configurées et testées correctement.Pour reconnaître ces séquences par commande vocale, implémentez les quatre exigences ci-dessous :
1. Exigence de saisie d'une expression régulière
Bien que n'importe quelle expression régulière puisse être utilisée pour extraire des entités d'entrées textuelles, seules certaines expressions indiquent à l'adaptation automatique de la reconnaissance vocale de privilégier les séquences alphanumériques ou de chiffres épelées lors de la reconnaissance vocale.
Dans l'entité regexp, au moins une entrée doit respecter toutes les règles suivantes :
- Doit correspondre à des caractères alphanumériques, par exemple :
\d,\w,[a-zA-Z0-9] - Ne doit pas contenir d'espace blanc
ou\s, bien que\s*et\s?soient autorisés - Ne doit pas contenir de groupes de capture ou de non-capture
() - Ne doit pas essayer de faire correspondre des caractères spéciaux ou des signes de ponctuation tels que :
` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |
Cette entrée peut comporter des jeux de caractères [] et des quantificateurs de répétition tels que *, ?, +, {3,5}.
Consultez la section Exemples.
2. Exigence de définition des paramètres
Marquez l'entité d'expression régulière en tant que paramètre d'intent requis pour pouvoir la collecter lors du remplissage de cases. 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".
3. Exigence d'annotation des expressions d'entraînement
N'utilisez pas l'entité d'expression régulière pour une annotation d'expression d'entraînement d'intent. Cela garantit que le paramètre est résolu lors du remplissage de cases.
4. Exigence concernant les tests
Consultez Tester l'adaptation vocale.
Exemples
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}. Vous bénéficierez désormais de l'outil de reconnaissance de séquence lors de la mise en correspondance de "ABC123", mais la NLU continuera de mettre en correspondance des entrées telles que "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}
Solution de contournement avec une expression régulière
La compatibilité intégrée de l'adaptation vocale automatique avec les entités d'expression régulière varie selon la langue.
Consultez la page Jetons de classe Speech pour connaître les langues compatibles avec $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 reconnu avec précision, vous pouvez créer votre agent avec les entités et paramètres suivants :
- Définissez une entité
digitcontenant 10 entrées d'entité (avec des synonymes) :0, 01, 1...9, 9 - Définissez une entité
lettercontenant 26 entrées d'entité (avec des synonymes) :A, AB, B...Z, Z - Définissez une entité
employee-idcontenant une seule entrée d'entité (sans synonymes) :@letter @letter @letter @digit @digit @digit - Utilisez
@employee-idcomme paramètre dans une expression d'entraînement.
Tester l'adaptation vocale
Lorsque vous testez les capacités d'adaptation vocale de votre agent pour une phrase d'entraînement ou une correspondance d'entité 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énement pour l'ensemble de la conversation avant la correspondance que vous souhaitez tester. Le comportement de votre agent lorsqu'il est testé de cette manière sera semblable à celui des conversations de production réelles.
Limites
Les limites suivantes s'appliquent :
- L'adaptation vocale n'est pas disponible pour tous les modèles vocaux ni toutes les combinaisons de langues. Consultez la page Langues acceptées par Cloud Speech pour vérifier si l'adaptation de modèle est disponible pour votre combinaison de modèle de reconnaissance vocale et de langue.
- L'adaptation vocale automatique n'est pas compatible avec Actions on Google (Assistant Google), car la reconnaissance vocale est effectuée par Actions on Google avant que les données ne soient envoyées à Dialogflow.
- La reconnaissance des séquences de caractères longues est difficile. Le nombre de caractères capturés en un seul tour est directement lié à la qualité de l'audio d'entrée.
Par exemple, si votre intégration fonctionne sur l'audio d'un appel téléphonique, vous devez activer les modèles de reconnaissance vocale améliorés pour reconnaître de manière fiable les séquences alphanumériques de plus de quatre ou cinq caractères, ou les séquences de chiffres de plus de 10 caractères.
Si vous avez suivi toutes les consignes concernant les entités d'expression régulière et que vous avez toujours du mal à capturer l'intégralité de la séquence en une seule fois, vous pouvez envisager d'autres options plus 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. Pour en savoir plus, consultez ce tutoriel.