Anwendungen benötigen für die Kommunikation mit dem Nutzer oft einen Bot. Dialogflow Anwendungen benötigen oft einen Bot, der mit dem Endnutzer kommuniziert. Mit Dialogflow können Sie Cloud Text-to-Speech mit DeepMind WaveNet verwenden, um Sprachantworten von Ihrem Agenten zu generieren. Diese Umwandlung von Textantworten in Audio wird als Audioausgabe, Sprachsynthese,
Sie können Audio sowohl für die Eingabe als auch für die Ausgabe verwenden, wenn Sie einen Intent erkennen. Dies ist üblich, wenn Apps entwickelt werden, die mit Nutzern über eine reine Audioschnittstelle kommunizieren.
Eine Liste der unterstützten Sprachen finden Sie in der Spalte TTS auf der Seite Sprachen.
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 Console an, wenn Sie dazu aufgefordert werden. Weitere Informationen finden Sie in der Übersicht über die Dialogflow-Konsole.
- Maximieren Sie im Menü der Seitenleiste Lade-Agents.
- Klicken Sie auf Neuen Agent erstellen.
- Geben Sie den Namen des KI-Agenten, die Standardsprache und die Standardzeitzone ein.
- Geben Sie ein vorhandenes Projekt ein. Wenn Sie ein Projekt über die Dialogflow-Konsole erstellen möchten, wählen Sie Neues Google-Projekt erstellen aus.
- Klicken Sie auf Erstellen.
Intent erkennen
Rufen Sie zum Erkennen der Intent die Methode detectIntent für den Typ Sessions auf.
REST
1. Audioinhalte vorbereiten
Laden Sie die Beispieldatei book-a-room.wav für input_audio herunter, in der „book a room“ gesagt wird. Die Audiodatei muss für dieses Beispiel base64-codiert sein, damit sie in der JSON-Anfrage unten 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 Cloud Speech API-Dokumentation unter Base64-codierte Audioinhalte einbetten.
2. Anfrage zur Intent-Erkennung erstellen
Rufen Sie die Methode detectIntent für den Typ 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..."
}
Beachten Sie, dass der Wert des Felds queryResult.action room.reservation ist und das Feld outputAudio einen großen Base64-Audiostring enthält.
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.
Sie können jetzt die Audiodatei output_audio.wav abspielen und hören, dass sie mit dem Text aus dem Feld queryResult.fulfillmentMessages[1].text.text[0] oben übereinstimmt.
Das zweite fulfillmentMessages-Element wird ausgewählt, da es die Textantwort für die Standardplattform ist.
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 Antworten auf Intent-Erkennung.
Intent-Antworten erkennen
Auf eine Anfrage zur Intent-Erkennung wird als Antwort ein Objekt des Typs DetectIntentResponse zurückgegeben.
Die normale Verarbeitung der Intent-Erkennung steuert den Inhalt des Felds DetectIntentResponse.queryResult.fulfillmentMessages.
Das Feld DetectIntentResponse.outputAudio wird mit Audioinhalten gefüllt, die auf den Werten der Standard-Plattform-Textantworten im Feld DetectIntentResponse.queryResult.fulfillmentMessages basieren:
- Wenn mehrere Standardtextantworten vorhanden sind, werden sie beim Generieren von Audio verkettet.
- Wenn keine Standard-Plattformtextantworten vorhanden sind, 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 die Absicht aus einem Stream erkennen, senden Sie Anfragen, die dem Beispiel ähneln, in dem keine Audioausgabe verwendet wird: Absicht aus einem Stream erkennen.
Sie geben jedoch ein OutputAudioConfig-Feld in der Anfrage an. Die Felder output_audio und output_audio_config werden in der endgültigen Streamingantwort ausgefüllt, die Sie vom Dialogflow API-Server erhalten. 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 für den Agent.
Dialogflow-Simulator verwenden
Sie können mit dem Agenten interagieren und Audioantworten über den Dialogflow-Simulator erhalten:
- Aktivieren Sie die automatische Text-zu-Sprache-Funktion, indem Sie der Anleitung unter Spracheinstellungen für Agenten folgen.
- Geben Sie in den Simulator "book a room" (Raum buchen) ein oder sagen Sie die Worte.
- Sehen Sie sich im Simulator den Abschnitt Audioausgabe an.