In Dialogflow ansehen
Klicken Sie auf Weiter, um das Antwortbeispiel in Dialogflow zu importieren. Führen Sie dann die folgenden Schritte aus, um das Beispiel bereitzustellen und zu testen:
- Geben Sie einen Agent-Namen ein und erstellen Sie einen neuen Dialogflow-Agent für das Beispiel.
- Klicken Sie nach dem Import auf Zum Agent.
- Klicken Sie im Hauptnavigationsmenü auf Fulfillment (Auftragsausführung).
- Aktivieren Sie den Inline-Editor und klicken Sie auf Bereitstellen. Der Editor enthält den Beispielcode.
- Klicken Sie im Hauptnavigationsmenü auf Integrationen und dann auf Google Assistant.
- Aktivieren Sie im angezeigten modalen Fenster Automatische Vorschau von Änderungen und klicken Sie auf Testen, um den Actions-Simulator zu öffnen.
- Geben Sie im Simulator
Talk to my test app
ein, um das Beispiel zu testen.
Einfache Antworten werden visuell in Form eines Chat-Infofelds dargestellt und für den Ton die Sprachausgabe oder SSML (Speech Synthesis Markup Language) verwendet.
TTS-Text wird standardmäßig als Chat-Bubble-Inhalt verwendet. Wenn der visuelle Aspekt dieses Texts Ihren Anforderungen entspricht, müssen Sie keinen Anzeigetext für eine Chat-Bubble angeben.
In unseren Designrichtlinien für Unterhaltungen findest du weitere Informationen dazu, wie du diese visuellen Elemente in deine Aktion aufnimmst.
Attribute

Für einfache Antworten gelten die folgenden Anforderungen und optionalen Attribute, die Sie konfigurieren können:
- Wird auf Oberflächen mit den Funktionen
actions.capability.AUDIO_OUTPUT
oderactions.capability.SCREEN_OUTPUT
unterstützt. Maximal 640 Zeichen pro Chat-Bubble. Strings, die länger als das Limit sind, werden beim ersten Wortwechsel (oder Leerzeichen) vor 640 Zeichen abgeschnitten.
Die Inhalte von Chat-Bubbles müssen eine phonetische Teilmenge oder ein vollständiges Transkript der TTS-/SSML-Ausgabe sein. Dies hilft Nutzern dabei, das Gesagte zu kartieren und das Verständnis unter verschiedenen Bedingungen zu verbessern.
Maximal zwei Chat-Bubbles pro Spielrunde.
Der Chatkopf, den Sie bei Google einreichen, muss 192 x 192 Pixel groß sein und darf nicht animiert sein.

Beispielcode
Node.js
app.intent('Simple Response', (conv) => { conv.ask(new SimpleResponse({ speech: `Here's an example of a simple response. ` + `Which type of response would you like to see next?`, text: `Here's a simple response. ` + `Which response would you like to see next?`, })); });
Java
@ForIntent("Simple Response") public ActionResponse welcome(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); responseBuilder.add( new SimpleResponse() .setTextToSpeech( "Here's an example of a simple response. " + "Which type of response would you like to see next?") .setDisplayText( "Here's a simple response. Which response would you like to see next?")); return responseBuilder.build(); }
Node.js
conv.ask(new SimpleResponse({ speech: `Here's an example of a simple response. ` + `Which type of response would you like to see next?`, text: `Here's a simple response. ` + `Which response would you like to see next?`, }));
Java
ResponseBuilder responseBuilder = getResponseBuilder(request); responseBuilder.add( new SimpleResponse() .setTextToSpeech( "Here's an example of a simple response. " + "Which type of response would you like to see next?") .setDisplayText( "Here's a simple response. Which response would you like to see next?")); return responseBuilder.build();
JSON
Im folgenden JSON-Code wird eine Webhook-Antwort beschrieben.
{ "payload": { "google": { "expectUserResponse": true, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "Here's an example of a simple response. Which type of response would you like to see next?", "displayText": "Here's a simple response. Which response would you like to see next?" } } ] } } } }
JSON
Im folgenden JSON-Code wird eine Webhook-Antwort beschrieben.
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.TEXT" } ], "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "Here's an example of a simple response. Which type of response would you like to see next?", "displayText": "Here's a simple response. Which response would you like to see next?" } } ] } } } ] }
SSML und Töne
Durch die Verwendung von SSML und Tönen in Ihren Antworten werden diese flüssiger und die Nutzererfahrung verbessert. Die folgenden Code-Snippets zeigen, wie Sie eine Antwort mit SSML erstellen:
Node.js
app.intent('SSML', (conv) => { conv.ask(`<speak>` + `Here are <say-as interpet-as="characters">SSML</say-as> examples.` + `Here is a buzzing fly ` + `<audio src="https://actions.google.com/sounds/v1/animals/buzzing_fly.ogg"></audio>` + `and here's a short pause <break time="800ms"/>` + `</speak>`); conv.ask('Which response would you like to see next?'); });
Java
@ForIntent("SSML") public ActionResponse ssml(ActionRequest request) { ResponseBuilder responseBuilder = getResponseBuilder(request); responseBuilder.add( "<speak>" + "Here are <say-as interpet-as=\"characters\">SSML</say-as> examples." + "Here is a buzzing fly " + "<audio src=\"https://actions.google.com/sounds/v1/animals/buzzing_fly.ogg\"></audio>" + "and here's a short pause <break time=\"800ms\"/>" + "</speak>"); return responseBuilder.build(); }
Node.js
conv.ask(`<speak>` + `Here are <say-as interpet-as="characters">SSML</say-as> examples.` + `Here is a buzzing fly ` + `<audio src="https://actions.google.com/sounds/v1/animals/buzzing_fly.ogg"></audio>` + `and here's a short pause <break time="800ms"/>` + `</speak>`); conv.ask('Which response would you like to see next?');
Java
ResponseBuilder responseBuilder = getResponseBuilder(request); responseBuilder.add( "<speak>" + "Here are <say-as interpet-as=\"characters\">SSML</say-as> examples." + "Here is a buzzing fly " + "<audio src=\"https://actions.google.com/sounds/v1/animals/buzzing_fly.ogg\"></audio>" + "and here's a short pause <break time=\"800ms\"/>" + "</speak>"); return responseBuilder.build();
JSON
Im folgenden JSON-Code wird eine Webhook-Antwort beschrieben.
{ "payload": { "google": { "expectUserResponse": true, "richResponse": { "items": [ { "simpleResponse": { "textToSpeech": "<speak>Here are <say-as interpet-as=\"characters\">SSML</say-as> examples.Here is a buzzing fly <audio src=\"https://actions.google.com/sounds/v1/animals/buzzing_fly.ogg\"></audio>and here's a short pause <break time=\"800ms\"/></speak>" } }, { "simpleResponse": { "textToSpeech": "Which response would you like to see next?" } } ] } } } }
JSON
Im folgenden JSON-Code wird eine Webhook-Antwort beschrieben.
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.TEXT" } ], "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "<speak>Here are <say-as interpet-as=\"characters\">SSML</say-as> examples.Here is a buzzing fly <audio src=\"https://actions.google.com/sounds/v1/animals/buzzing_fly.ogg\"></audio>and here's a short pause <break time=\"800ms\"/></speak>" } }, { "simpleResponse": { "textToSpeech": "Which response would you like to see next?" } } ] } } } ] }
Weitere Informationen finden Sie in der SSML-Referenzdokumentation.
Sound-Mediathek
In unserer Sound-Mediathek findest du verschiedene kostenlose, kurze Töne. Diese Töne werden für Sie gehostet. Sie müssen sie also nur in Ihre SSML-Datei aufnehmen.