Konversationsaktionen werden am 13. Juni 2023 eingestellt. Weitere Informationen finden Sie unter Einstellung von Konversationsaktionen.

Einfache Antworten (Dialogflow)

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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:

  1. Geben Sie einen Agent-Namen ein und erstellen Sie einen neuen Dialogflow-Agent für das Beispiel.
  2. Klicken Sie nach dem Import auf Zum Agent.
  3. Klicken Sie im Hauptnavigationsmenü auf Fulfillment (Auftragsausführung).
  4. Aktivieren Sie den Inline-Editor und klicken Sie auf Bereitstellen. Der Editor enthält den Beispielcode.
  5. Klicken Sie im Hauptnavigationsmenü auf Integrationen und dann auf Google Assistant.
  6. Aktivieren Sie im angezeigten modalen Fenster Automatische Vorschau von Änderungen und klicken Sie auf Testen, um den Actions-Simulator zu öffnen.
  7. Geben Sie im Simulator Talk to my test app ein, um das Beispiel zu testen.
Weiter

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

Abbildung 1. Beispiel einer einfachen Antwort (Smartphone)

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 oder actions.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.

Abbildung 2. Beispiel einer einfachen Antwort (Smart Display)

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.