Les applications ont souvent besoin d'un bot pour communiquer avec l'utilisateur final. Dialogflow : les applications ont souvent besoin d'un bot pour répondre à l'utilisateur final. Dialogflow vous permet d'utiliser Cloud Text-to-Speech optimisé par DeepMind WaveNet pour générer des réponses vocales à partir de votre agent. Cette conversion des réponses textuelles d'intent en audio est appelée sortie audio, synthèse vocale,
Vous pouvez utiliser l'audio à la fois pour l'entrée et la sortie lors de la détection d'une intention. C'est une pratique courante lors du développement d'applications qui communiquent avec les utilisateurs à l'aide d'une interface purement audio.
Pour obtenir la liste des langues disponibles, consultez la colonne TTS de la page Langues.
Avant de commencer
Cette fonctionnalité n'est disponible que lorsque l'API est utilisée pour les interactions de l'utilisateur final. Si vous utilisez une intégration, vous pouvez ignorer ce guide.
Avant de commencer, procédez comme suit :
- Consultez la section Principes de base de Dialogflow.
- Effectuez la procédure de configuration.
Créer un agent
- Accédez à la console Dialogflow ES.
- Connectez-vous à la console si vous y êtes invité. Pour en savoir plus, consultez la présentation de la console Dialogflow.
- Dans le menu de la barre latérale, développez Agents de chargement.
- Cliquez sur Create new agent (Créer un agent).
- Saisissez le nom de l'agent, la langue par défaut et le fuseau horaire par défaut.
- Saisissez un projet existant. Pour laisser la console Dialogflow créer un projet, sélectionnez Create a new Google project (Créer un projet Google).
- Cliquez sur Créer.
Détecter un intent
Pour détecter l'intention, appelez la méthode detectIntent sur le type Sessions.
REST
1. Préparez le contenu audio
Téléchargez l'exemple de fichier input_audio book-a-room.wav, qui dit "book a room" (réserver une chambre). Pour cet exemple, le fichier audio doit être encodé en base64 afin de pouvoir être fourni dans la requête JSON ci-dessous.
Voici un exemple avec Linux :
wget https://cloud.google.com/dialogflow/es/docs/data/book-a-room.wav base64 -w 0 book-a-room.wav > book-a-room.b64
Pour obtenir des exemples sur d'autres plates-formes, consultez Intégrer du contenu audio encodé en base64 dans la documentation de l'API Cloud Speech.
2. Effectuez une requête de détection d'intent
Appelez la méthode detectIntent sur le type Sessions et spécifiez l'audio encodé en base64.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SESSION_ID : un ID de session
- BASE64_AUDIO : contenu base64 du fichier de sortie spécifié ci-dessus
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
Corps JSON de la requête :
{
"queryInput": {
"audioConfig": {
"languageCode": "en-US"
}
},
"outputAudioConfig" : {
"audioEncoding": "OUTPUT_AUDIO_ENCODING_LINEAR_16"
},
"inputAudio": "BASE64_AUDIO"
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"responseId": "b7405848-2a3a-4e26-b9c6-c4cf9c9a22ee",
"queryResult": {
"queryText": "book a room",
"speechRecognitionConfidence": 0.8616504,
"action": "room.reservation",
"parameters": {
"time": "",
"date": "",
"duration": "",
"guests": "",
"location": ""
},
"fulfillmentText": "I can help with that. Where would you like to reserve a room?",
"fulfillmentMessages": [
{
"text": {
"text": [
"I can help with that. Where would you like to reserve a room?"
]
}
}
],
"intent": {
"name": "projects/PROJECT_ID/agent/intents/e8f6a63e-73da-4a1a-8bfc-857183f71228",
"displayName": "room.reservation"
},
"intentDetectionConfidence": 1,
"diagnosticInfo": {},
"languageCode": "en-us"
},
"outputAudio": "UklGRs6vAgBXQVZFZm10IBAAAAABAAEAwF0AAIC7AA..."
}
Notez que la valeur du champ queryResult.action est room.reservation et que le champ outputAudio contient une longue chaîne audio en base64.
3. Lisez la sortie audio
Copiez le texte du champ outputAudio et enregistrez-le dans un fichier nommé output_audio.b64. Ce fichier doit être converti en audio.
Voici un exemple avec Linux :
base64 -d output_audio.b64 > output_audio.wav
Pour obtenir des exemples sur d'autres plates-formes, consultez Décoder le contenu audio encodé en base64 dans la documentation de l'API Text-to-Speech.
Vous pouvez maintenant lire le fichier audio output_audio.wav et vérifier qu'il correspond au texte du champ queryResult.fulfillmentMessages[1].text.text[0] ci-dessus.
Le deuxième élément fulfillmentMessages est choisi, car il s'agit de la réponse textuelle pour la plate-forme par défaut.
Java
Pour vous authentifier auprès de Dialogflow CX, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow CX, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Dialogflow CX, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Pour en savoir plus sur les champs de réponse pertinents, consultez la section Réponses de détection d'intentions.
Réponses de détection d'intent
La réponse à une requête de détection d'intent est du type DetectIntentResponse.
Le traitement normal de détection d'intentions contrôle le contenu du champ DetectIntentResponse.queryResult.fulfillmentMessages.
Le champ DetectIntentResponse.outputAudio est renseigné avec des données audio basées sur les valeurs des réponses textuelles de la plate-forme par défaut trouvées dans le champ DetectIntentResponse.queryResult.fulfillmentMessages :
- Si plusieurs réponses textuelles par défaut existent, elles sont concaténées lors de la génération de l'audio.
- Si aucune réponse textuelle par défaut n'existe pour la plate-forme, le contenu audio généré est vide.
Le champ DetectIntentResponse.outputAudioConfig contient les paramètres audio utilisés pour générer la sortie audio.
Détecter l'intent d'un flux
Lorsque vous détectez l'intention à partir d'un flux, vous envoyez des requêtes semblables à l'exemple qui n'utilise pas de sortie audio : Détecter l'intention à partir d'un flux.
Toutefois, vous fournissez un champ OutputAudioConfig à la requête. Les champs output_audio et output_audio_config sont renseignés dans la réponse finale de streaming que vous obtenez du serveur d'API Dialogflow. Pour en savoir plus, consultez les sections StreamingDetectIntentRequest et StreamingDetectIntentResponse.
Paramètres de l'agent pour la synthèse vocale
Vous pouvez contrôler différents aspects de la synthèse vocale. Consultez les paramètres de synthèse vocale de l'agent.
Utiliser le simulateur Dialogflow
Vous pouvez interagir avec l'agent et recevoir des réponses audio à l'aide du simulateur Dialogflow :
- Activez la synthèse vocale automatique en suivant les instructions de la section Paramètres de synthèse vocale de l'agent.
- Saisissez ou dites "book a room" dans le simulateur.
- Consultez la section Sortie audio dans le simulateur.