En esta página, se muestra cómo transmitir una entrada de audio a una solicitud de intent de detección mediante la API. Dialogflow procesa el audio y lo convierte en texto antes de buscar una coincidencia del intent. Esta conversión se conoce como entrada de audio, reconocimiento de voz, voz a texto o STT.
Antes de comenzar
Esta función solo es aplicable cuando se usa la API para las interacciones del usuario final. Si usas una integración, puedes omitir esta guía.
Debes hacer lo siguiente antes de leer esta guía:
- Lee los conceptos básicos de Dialogflow.
- Realiza los pasos de configuración.
Crea un agente
Si aún no creaste un agente, sigue estos pasos para crearlo:
- Ve a la consola de Dialogflow ES.
- Si se te solicita, accede a la consola de Dialogflow. Consulta Descripción general de la consola de Dialogflow para obtener más información.
- Haz clic en Create agent, en el menú de la barra lateral izquierda. (Si ya tienes otros agentes, haz clic en el nombre del agente, desplázate hacia la parte inferior y haz clic en Create new agent).
- Ingresa el nombre del agente, y el idioma y la zona horaria predeterminados.
- Si ya creaste un proyecto, ingrésalo. Si quieres que la consola de Dialogflow cree el proyecto, selecciona Create a new Google project.
- Haz clic en el botón Create.
Importa el archivo de ejemplo al agente
En los pasos que se brindan en esta guía, se hacen suposiciones sobre tu agente, por lo que debes importar un agente preparado para esta guía. Cuando realizas la importación, en estos pasos se usa la opción restablecer, que reemplaza todas las opciones de configuración, intents y 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 el agente.
- Haz clic en el botón de configuración settings que se encuentra junto al nombre del agente.
- Selecciona la pestaña Export and Import.
- Selecciona Restore From Zip y sigue las instrucciones para restablecer el archivo ZIP que descargaste.
Conceptos básicos de transmisión
El método streamingDetectIntent
del tipo Session
muestra un objeto de transmisión de gRPC bidireccional.
Los métodos disponibles para este objeto varían según el lenguaje. Por lo tanto, si quieres obtener más información, consulta la documentación de referencia de tu biblioteca cliente.
El objeto de transmisión se usa para enviar y recibir datos de forma simultánea.
Con este objeto, tu cliente transmite contenido de audio a Dialogflow, mientras escucha StreamingDetectIntentResponse
de forma simultánea.
El método streamingDetectIntent
tiene un parámetro query_input.audio_config.single_utterance
que afecta el reconocimiento de voz de las siguientes maneras:
- Si es
false
(predeterminado), el reconocimiento de voz no se detiene hasta que el cliente cierre la transmisión. - Si es
true
, Dialogflow detectará una sola declaración de voz en el audio de entrada. Cuando Dialogflow detecta que la voz del audio se detuvo o se pausó, cesa el reconocimiento de voz y envía unaStreamingDetectIntentResponse
con un resultado de reconocimiento deEND_OF_SINGLE_UTTERANCE
a tu cliente. Dialogflow ignora todos los archivos de audio que recibe después de la recepción deEND_OF_SINGLE_UTTERANCE
.
En la transmisión bidireccional, un cliente puede cerrar de forma parcial el objeto de transmisión para indicarle al servidor que no enviará más datos.
Por ejemplo, en Java y Go, este método se llama closeSend
.
Es importante cerrar las transmisiones de forma parcial (pero no cancelarlas) en los siguientes casos:
- Tu cliente ya terminó de enviar datos.
- Tu cliente está configurado con
single_utterance
establecido en verdadero y recibe unaStreamingDetectIntentResponse
con un resultado de reconocimiento deEND_OF_SINGLE_UTTERANCE
.
Después de cerrar una transmisión, tu cliente debe iniciar otra solicitud con una transmisión nueva según sea necesario.
Transmite intents de detección
En las siguientes muestras, se usa el método streamingDetectIntent
del tipo Session
para transmitir audio.
Go
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue lasinstrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita ladocumentación de referencia de Dialogflow para .NET.
PHP: Sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Dialogflow para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Dialogflow para Ruby.
Muestras
Consulta la página de muestras para conocer las prácticas recomendadas sobre la transmisión desde un micrófono del navegador a Dialogflow.