En esta guía se muestra cómo enviar una entrada de audio a una solicitud de detección de intención mediante la API. Dialogflow procesa el audio y lo convierte en texto antes de intentar encontrar una coincidencia con una intención. Esta conversión se conoce como entrada de audio, reconocimiento de voz, transcripción de voz o STT.
Antes de empezar
Esta función solo se aplica cuando se usa la API para las interacciones con el usuario final. Si usas una integración, puedes saltarte esta guía.
Antes de leer esta guía, debes hacer lo siguiente:
- Consulta los conceptos básicos de Dialogflow.
- Sigue los pasos de configuración.
Crear un agente
Si aún no has creado un agente, hazlo ahora:
- Ve a la consola de Dialogflow ES.
- Si se te solicita, inicia sesión en la consola de Dialogflow. Para obtener más información, consulta el artículo Información general sobre la consola de Dialogflow.
- En el menú de la barra lateral de la izquierda, haz clic en Crear agente. Si ya tienes otros agentes, haz clic en el nombre del agente, desplázate hasta la parte inferior y haz clic en Crear nuevo agente.
- Introduce el nombre, el idioma predeterminado y la zona horaria predeterminada del agente.
- Si ya has creado un proyecto, accede a él. Si quieres permitir que la consola de Dialogflow cree el proyecto, selecciona Crear un proyecto de Google.
- Haz clic en el botón Crear.
Importar el archivo de ejemplo a tu agente
En los pasos de esta guía se presupone que tienes un agente, por lo que debes importar un agente preparado para esta guía. Al importar, estos pasos utilizan la opción Restaurar, que sobrescribe todos los ajustes, las intenciones y las entidades del agente.
Para importar el archivo, sigue estos pasos:
-
Descarga el archivo
room-booking-agent.zip
. - Ve a la consola de Dialogflow ES.
- Selecciona tu agente.
- Haz clic en el botón de configuración settings situado junto al nombre del agente.
- Selecciona la pestaña Exportar e importar.
- Selecciona Restaurar desde ZIP y sigue las instrucciones para restaurar el archivo ZIP que has descargado.
Detectar un intent
Para detectar la intención, llama al método detectIntent
del tipo Sessions
.
REST
Descarga el archivo de audio de entrada de muestrabook-a-room.wav
, que dice "book a room" (reserva una habitación).
El archivo de audio debe estar codificado en Base64 para este ejemplo, de modo que se pueda proporcionar en la solicitud JSON que se muestra a continuación.
Aquí tienes un ejemplo para Linux:
wget https://cloud.google.com/dialogflow/es/docs/data/book-a-room.wav base64 -w 0 book-a-room.wav > book-a-room.b64
Para ver ejemplos en otras plataformas, consulta Codificación en Base64 de contenido de audio en la documentación de la API Cloud Speech-to-Text.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de Google Cloud
- AUDIO: el contenido de audio codificado en Base64
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/123456789:detectIntent
Cuerpo JSON de la solicitud:
{ "queryInput": { "audioConfig": { "languageCode": "en-US" } }, "inputAudio": "AUDIO" }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "responseId": "3c1e5a89-75b9-4c3f-b63d-4b1351dd5e32", "queryResult": { "queryText": "book a room", "action": "room.reservation", "parameters": { "time": "", "date": "", "guests": "", "duration": "", "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" } }
Observe que el valor del campo queryResult.action
es "room.reservation" y el valor del campo queryResult.fulfillmentMessages[0|1].text.text[0]
pide más información al usuario.
Go
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Dialogflow para .NET.
PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Dialogflow para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Dialogflow para Ruby.