Anwendungen benötigen für die Kommunikation mit dem Nutzer oft einen Bot. Dialogflow-Anwendungen benötigen für die Kommunikation mit dem Nutzer oft einen Bot. Mit Dialogflow können Sie Cloud Text-to-Speech von DeepMind WaveNet verwenden, um Sprachantworten für Ihren Agent zu generieren. Die Umwandlung von Intent-Textantworten in Audiodaten wird als Audioausgabe, Sprachsynthese,
Sie können Audiodaten für die Ein- und Ausgabe verwenden, wenn Sie eine Intention erkennen. Dieser Ansatz wird häufig bei der Entwicklung von Apps genutzt, die über eine reine Audioschnittstelle mit Nutzern kommunizieren.
Eine Liste der unterstützten Sprachen finden Sie auf der Seite Sprachen in der Spalte TTS.
Hinweis
Dieses Feature ist nur verfügbar, wenn die API für Endnutzerinteraktionen verwendet wird. Wenn Sie eine Integration verwenden, können Sie diesen Leitfaden überspringen.
Führen Sie zuerst die folgenden Schritte aus:
Agent erstellen
- Rufen Sie die Dialogflow ES-Konsole auf.
- Melden Sie sich in der Konsole an, wenn Sie dazu aufgefordert werden. Weitere Informationen finden Sie unter Dialogflow-Konsole – Übersicht.
- Maximieren Sie im Seitenleistenmenü Lade-Agents.
- Klicken Sie auf Neuen Agent erstellen.
- Geben Sie den Namen des Agents, die Standardsprache und die Standardzeitzone ein.
- Geben Sie ein vorhandenes Projekt ein. Wenn Sie zulassen möchten, dass die Dialogflow-Konsole ein Projekt erstellt, wählen Sie Neues Google-Projekt erstellen aus.
- Klicken Sie auf Erstellen.
Intent erkennen
Rufen Sie zur Intent-Erkennung die Methode detectIntent für den Typ Sessions auf.
REST
1. Audioinhalte vorbereiten
Laden Sie die Audiodatei book-a-room.wav mit der Beispieleingabe herunter, die den Sprachbefehl „book a room“ (Ein Zimmer buchen) enthält. Die Audiodatei muss für dieses Beispiel base64-codiert sein, damit sie in der folgenden JSON-Anfrage bereitgestellt werden kann.
Hier ein Linux-Beispiel:
wget https://cloud.google.com/dialogflow/es/docs/data/book-a-room.wav base64 -w 0 book-a-room.wav > book-a-room.b64
Beispiele für andere Plattformen finden Sie in der API-Dokumentation zur Cloud Speech API unter Base64-codierte Audiodaten einbetten.
2. Anfrage zur Intent-Erkennung erstellen
Rufen Sie die Methode detectIntent des Typs Sessions auf und geben Sie base64-codierte Audiodaten an.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud-Projekt-ID
- SESSION_ID: eine Sitzungs-ID
- BASE64_AUDIO: Der base64-Inhalt aus der vorherigen Ausgabedatei
HTTP-Methode und URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
JSON-Text anfordern:
{
"queryInput": {
"audioConfig": {
"languageCode": "en-US"
}
},
"outputAudioConfig" : {
"audioEncoding": "OUTPUT_AUDIO_ENCODING_LINEAR_16"
},
"inputAudio": "BASE64_AUDIO"
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"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..."
}
Das Feld queryResult.action hat den Wert room.reservation und das Feld outputAudio enthält einen langen Base64-Audiostring.
3. Audioausgabe abspielen
Kopieren Sie den Text aus dem Feld outputAudio und speichern Sie ihn in einer Datei mit dem Namen output_audio.b64. Diese Datei muss in Audio konvertiert werden.
Hier ein Linux-Beispiel:
base64 -d output_audio.b64 > output_audio.wav
Beispiele für andere Plattformen finden Sie in der Text-to-Speech API-Dokumentation unter Base64-codierte Audioinhalte decodieren.
Wenn Sie jetzt die Audiodatei output_audio.wav wiedergeben, entspricht deren Inhalt dem Text aus dem obigen Feld queryResult.fulfillmentMessages[1].text.text[0].
Das zweite fulfillmentMessages-Element wird ausgewählt, da es sich um die Textantwort für die Standardplattform handelt.
Java
Richten Sie zur Authentifizierung bei Dialogflow CX Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Dialogflow CX Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Dialogflow CX Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Weitere Informationen zu den relevanten Antwortfeldern finden Sie im Abschnitt Intent-Antworten erkennen.
Intent-Antworten erkennen
Auf eine Anfrage zur Intent-Erkennung wird als Antwort ein Objekt des Typs DetectIntentResponse zurückgegeben.
Bei der normalen Verarbeitung von Intent-Erkennungen wird der Inhalt des Felds DetectIntentResponse.queryResult.fulfillmentMessages gesteuert.
Das Feld DetectIntentResponse.outputAudio wird mit Audiodaten gefüllt, die auf den Werten der im Feld DetectIntentResponse.queryResult.fulfillmentMessages festgelegten Textantworten der Standardplattform basieren:
- Mehrere Standardtextantworten werden bei der Audiogenerierung verkettet.
- Sind keine standardmäßigen Plattformtextantworten vorhanden, ist der generierte Audioinhalt leer.
Das Feld DetectIntentResponse.outputAudioConfig wird mit den Audioeinstellungen gefüllt, die zum Generieren der Audioausgabe verwendet werden.
Intent in Stream erkennen
Wenn Sie einen Intent in einem Stream erkennen, senden Sie Anfragen ähnlich dem Beispiel unter Intent in Stream erkennen, in dem keine Audioausgabe verwendet wird.
Geben Sie aber für die Anfrage einen Wert im Feld OutputAudioConfig an. Die Felder output_audio und output_audio_config werden in der letzten Streamingantwort vom Dialogflow API-Server mit Werten versehen. Weitere Informationen finden Sie unter StreamingDetectIntentRequest und StreamingDetectIntentResponse.
Agent-Einstellungen für Sprache
Sie können verschiedene Aspekte der Sprachsynthese steuern. Weitere Informationen finden Sie unter Spracheinstellungen des Agents.
Dialogflow-Simulator verwenden
Sie können über den Dialogflow-Simulator mit dem Agent interagieren und Audioantworten erhalten:
- Aktivieren Sie die automatische Sprachausgabe, indem Sie der Anleitung unter Spracheinstellungen für Agents folgen.
- Geben Sie in den Simulator "book a room" (Raum buchen) ein oder sagen Sie die Worte.
- Sehen Sie sich im Simulator den Abschnitt output audio (Audioausgabe) an.