Les applications ont souvent besoin d'un bot pour communiquer avec l'utilisateur final. Dialogflow Les applications ont souvent besoin d'un bot pour communiquer avec l'utilisateur final. Dialogflow vous permet d'utiliser Cloud Text-to-Speech fourni par DeepMind WaveNet pour générer des réponses vocales à partir de votre agent. Cette conversion des réponses d'intent textuelles en audio est appelée sortie audio, synthèse vocale,
Vous pouvez utiliser la fonction audio pour les entrées et les sorties lors de la détection d'un intent. Ce cas est courant pour le développement d'applications qui communiquent avec les utilisateurs à l'aide d'une interface purement audio.
Pour obtenir la liste des langues acceptées, 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 autoriser la console Dialogflow à créer un projet, sélectionnez Créer un projet Google.
- Cliquez sur Créer.
Détecter un intent
Pour détecter l'intent, appelez la méthode detectIntent du type Sessions.
REST
1. Préparez le contenu audio
Téléchargez l'exemple de fichier input_audio book-a-room.wav, qui énonce la phrase "book a room". Pour cet exemple, le fichier audio doit être encodé en base64 afin de pouvoir être inclus 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 voir des exemples sur d'autres plates-formes, consultez la page 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 les données audio encodées 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 grande 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 voir des exemples sur d'autres plates-formes, consultez la page 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 constater que son contenu 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 destinée à 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 concernés, consultez la section Réponses de détection d'intent.
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'intent contrôle le contenu du champ DetectIntentResponse.queryResult.fulfillmentMessages.
Le champ DetectIntentResponse.outputAudio contient 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 regroupées lors de la génération du contenu audio.
- Si aucune réponse textuelle de plate-forme par défaut n'existe, 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
Lors de la détection d'intent à partir d'un flux, vous envoyez des requêtes similaires à l'exemple qui n'utilise pas le contenu audio de sortie : Détecter l'intent d'un flux.
Vous fournissez toutefois un champ OutputAudioConfig à la requête. Les champs output_audio et output_audio_config sont renseignés dans la réponse de streaming finale reçue du serveur de l'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 vocaux de l'agent.
- Saisissez ou dites "book a room" dans le simulateur.
- Consultez la section contenu audio de sortie dans le simulateur.