Explorar en Dialogflow
Haz clic en Continuar para importar nuestra muestra de respuestas en Dialogflow. Luego, sigue los pasos que se indican a continuación para implementar y probar la muestra:
- Ingresa un nombre de agente y crea un agente de Dialogflow nuevo para la muestra.
- Cuando el agente termine de importarse, haz clic en Ir al agente.
- En el menú de navegación principal, ve a Fulfillment (Entrega).
- Habilita el Editor intercalado y, luego, haz clic en Implementar. El editor contiene el código de muestra.
- En el menú de navegación principal, ve a Integraciones y, luego, haz clic en Asistente de Google.
- En la ventana modal que aparece, habilita la opción Vista previa automática de cambios y haz clic en Probar para abrir el simulador de Actions.
- En el simulador, ingresa
Talk to my test app
para probar la muestra.
Las respuestas simples toman la forma de una burbuja de chat visualmente y usan texto a voz (TTS) o lenguaje de marcación de síntesis de voz (SSML) para el sonido.
El texto de texto a voz se utiliza como contenido de cuadro de chat de forma predeterminada. Si el aspecto visual de ese texto satisface tus necesidades, no tendrás que especificar ningún texto visible para una burbuja de chat.
También puedes consultar nuestros lineamientos de diseño de conversación para aprender a incorporar estos elementos visuales a tu acción.
Propiedades

Las respuestas simples tienen los siguientes requisitos y propiedades opcionales que puedes configurar:
- Compatible con plataformas con las capacidades
actions.capability.AUDIO_OUTPUT
oactions.capability.SCREEN_OUTPUT
. El límite es de 640 caracteres por cuadro de chat. Las strings más largas que el límite se truncan en la primera pausa de palabras (o espacios en blanco) antes de los 640 caracteres.
El contenido del cuadro de chat debe ser un subconjunto fonético o una transcripción completa del resultado de TTS/SSML. Esto ayuda a los usuarios a definir lo que estás diciendo y aumenta la comprensión en varias condiciones.
Máximo de dos burbujas de chat por turno.
El encabezado de chat (logotipo) que envíes a Google debe tener 192 x 192 píxeles y no puede ser animado.

Código de muestra
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
Ten en cuenta que el JSON a continuación describe una respuesta de webhook.
{ "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
Ten en cuenta que el JSON a continuación describe una respuesta de webhook.
{ "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 y sonidos
Usar el SSML y los sonidos en tus respuestas les brinda más refinamiento y mejora la experiencia del usuario. En los siguientes fragmentos de código, se muestra cómo crear una respuesta que use SSML:
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
Ten en cuenta que el JSON a continuación describe una respuesta de webhook.
{ "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
Ten en cuenta que el JSON a continuación describe una respuesta de webhook.
{ "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?" } } ] } } } ] }
Consulta la documentación de referencia de SSML para obtener más información.
Biblioteca de sonidos
En nuestra biblioteca de sonido, encontrarás varios sonidos gratuitos gratuitos. Estos sonidos están alojados para ti, por lo que todo lo que necesitas hacer es incluirlos en tu SSML.