En esta página, se describe 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 de intent. Este proceso 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.
Completa las siguientes tareas antes de leer esta guía:
- Lee los conceptos básicos de Dialogflow.
- Realiza los pasos de configuración.
Crea un agente
- Ve a la consola de Dialogflow ES.
- Accede a la consola si se te lo solicita. Para obtener más información, consulta la descripción general de la consola de Dialogflow.
- En el menú de la barra lateral, expande Loading agents.
- Haz clic en Create new agent.
- Ingresa el nombre del agente, y el idioma y la zona horaria predeterminados.
- Ingresa un proyecto existente. Para permitir que la consola de Dialogflow cree un proyecto, selecciona Create a new Google project.
- Haz clic en Crear.
Conceptos básicos de transmisión
El método Session type's
streamingDetectIntent 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 de forma simultánea StreamingDetectIntentResponse.
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 unaStreamingDetectIntentResponsecon un resultado de reconocimiento deEND_OF_SINGLE_UTTERANCEa 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_utteranceestablecido entruey recibe unaStreamingDetectIntentResponsecon un resultado de reconocimiento deEND_OF_SINGLE_UTTERANCE.
Después de cerrar una transmisión, tu cliente debe iniciar una solicitud nueva con una transmisión nueva según sea necesario.
Transmite intents de detección
En las siguientes muestras, se usa el
Session
tipo's streamingDetectIntent método para transmitir audio.
Go
Para autenticarte en Dialogflow CX, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para autenticarte en Dialogflow CX, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Dialogflow CX, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Dialogflow CX, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas cliente y, luego, visita la documentación de referencia de Dialogflow CX para .NET.
PHP: Sigue las instrucciones de configuración de PHP en la página de bibliotecas cliente y, luego, visita la documentación de referencia de Dialogflow CX para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas cliente y, luego, visita la documentación de referencia de Dialogflow CX para Ruby.
Muestras
Para obtener más información sobre las prácticas recomendadas para la transmisión desde un micrófono del navegador a Dialogflow, consulta la página de muestras.