El mayor atractivo de la API de Google Gemini Live no es solo la síntesis de voz: puede escucharte mientras hablas y responder en tiempo real, además de permitirte interrumpir en cualquier momento, lo que se siente como una conversación telefónica real. Google Cloud Tech ha publicado recientemente un tutorial detallado que descompone todo el agente de voz en vivo en 3 partes: las diferencias entre Gemini Live y TTS tradicional, la arquitectura de tres capas y un bucle central de WebSocket, así como 3 conceptos clave que dan «vida» al agente. Este artículo resume el contenido central de este tutorial, junto con enlaces al código y documentos proporcionados oficialmente por Google, para ofrecer a los desarrolladores interesados en crear su propio agente de IA de voz en tiempo real una visión completa.
Las 3 grandes diferencias entre Gemini Live y TTS tradicional: audio-a-audio + bidireccional + transmisión en tiempo real
Los sistemas tradicionales de texto a voz (TTS) funcionan de manera bastante directa: introduces texto y ellos producen voz, en un pipeline unidireccional. Los sistemas TTS pueden hablar, pero no pueden escucharte, no saben si estás presente.
Gemini Live sigue una dirección completamente diferente: audio-a-audio, funcionando de manera bidireccional. Recibe directamente tu señal de voz, detecta el tono, las pausas, la energía y la forma en que hablas, y genera y transmite voz en tiempo real.
Las 3 diferencias clave son:
- Dirección: TTS es texto → audio unidireccional; Gemini Live es audio ↔ audio bidireccional
- Percepción: TTS no sabe que estás presente; Gemini Live puede escuchar pistas de voz como tono, pausa, energía, etc.
- Secuencia: TTS espera a que se genere toda la respuesta antes de empezar a leer; Gemini Live puede pensar y hablar al mismo tiempo, comenzando a transmitir audio mientras genera la respuesta.
En otras palabras: «TTS lee, Live escucha» — el TTS tradicional leerá, mientras que Gemini Live realmente te escuchará.
Arquitectura de 3 capas: navegador + backend + Gemini Live, con conexión WebSocket
La arquitectura del agente de voz en vivo consta de 3 partes:
- Navegador: encargado de capturar el audio de tu micrófono y reproducir la respuesta de Gemini
- Gemini Live: el modelo de voz en vivo en sí
- Backend: mantiene una conexión persistente con Gemini, actuando como canal de audio entre el navegador y Gemini
La comunicación entre el navegador y el backend utiliza WebSocket, en lugar de solicitudes HTTP comunes. La razón es que una solicitud HTTP típica solo puede «preguntar una vez y desconectar», pero la voz en vivo necesita un flujo de audio bidireccional continuo, por lo que es necesario usar WebSocket para mantener la conexión persistente.
El backend realiza en realidad 2 tareas en paralelo:
- Tarea A: transmite continuamente el audio de tu micrófono a Gemini
- Tarea B: recibe la respuesta de voz de Gemini y la envía de vuelta al navegador para su reproducción
Las dos tareas funcionan de manera independiente, por lo que puedes interrumpir en tiempo real mientras el agente está hablando.
El ciclo central consta de 4 pasos: Abrir → Enviar → Recibir → Reproducir
Al escribir código, toda la conversación se desarrolla en un ciclo de 4 pasos:
- Abrir: inicia una sesión con Gemini Live
- Enviar: envía el audio del micrófono capturado por el navegador al backend
- Recibir: el backend recibe la respuesta de voz de Gemini y la envía de vuelta al navegador
- Reproducir: el navegador reproduce inmediatamente la respuesta de Gemini
Google enfatiza en el tutorial: «Este ciclo es muy simple — Abrir, Enviar, Recibir, Reproducir, el resto son solo detalles de conexión». Al dominar este ciclo, ya tienes un agente de voz funcional.
3 conceptos clave que dan «vida» al agente: VAD, Barge-in, Herramientas
Una vez que dominas el ciclo de 4 pasos, técnicamente el agente ya es funcional, pero aún hay una gran distancia respecto a la experiencia de conversación real. Para que se sienta «vivo», se necesitan 3 conceptos avanzados.
Concepto 1: Detección de Actividad de Voz (VAD), ¿cómo saber cuándo has terminado de hablar?
VAD (Detección de Actividad de Voz) es la pregunta que el modelo se hace continuamente: ¿hay alguien hablando ahora o está en silencio? Esta determinación permite al modelo identificar el inicio y el final de tu turno — es decir, saber cuándo comienzas a hablar y cuándo te detienes.
Por esta razón, tu micrófono necesita transmitir audio al modelo incluso cuando no estás hablando, porque el modelo necesita ese «flujo continuo» para capturar el momento en que abres la boca.
La buena noticia es que el VAD de Gemini Live está integrado, no necesitas escribirlo tú mismo.
Concepto 2: Barge-in, poder interrumpir al agente mientras habla
Barge-in significa que puedes interrumpir al agente mientras está hablando, y el agente se detiene inmediatamente. Esto no es posible con un walkie-talkie, pero sí en una conversación real entre personas.
Gemini Live utiliza el mismo mecanismo de VAD para detectar si estás «comenzando a interrumpir al agente». Cuando detecta que estás interrumpiendo, el modelo se detiene de inmediato y envía una señal de «interrumpido» al backend.
Las claves para que la interrupción se sienta instantánea son:
- No esperar a que la señal de interrumpido cruce la red antes de detener el audio local
- Tan pronto como el navegador «escuche» que comienzas a hablar desde el micrófono, detén inmediatamente la reproducción de la voz del agente
- Una vez que hayas terminado de hablar, utiliza la señal de interrumpido del modelo para confirmar la sincronización del estado
Este diseño de «detención local inmediata» es el secreto para que la interrupción se sienta natural.
Concepto 3: Herramientas, habilidades prácticas para el agente
El modelo de Gemini Live solo sabe hablar — no tiene la capacidad de reproducir música, saltar canciones o presionar botones. Por lo tanto, necesitas darle herramientas — una serie de llamadas a funciones, cada herramienta tiene su propio nombre, descripción y representa una acción.
Ejemplos de herramientas en el tutorial:
- play_playlist: reproducir una lista de reproducción
- skip_current_track: saltar la canción actual
- pause_music: pausar la música
El modo de operación es: una vez que el modelo decide qué herramienta usar, no simplemente «dirá» lo que quiere hacer, sino que emitirá directamente una instrucción de «usar esta herramienta + estos argumentos», que será ejecutada por tu código backend y luego reportará el resultado.
Google enfatiza una regla de limitación de voz: «regla de latencia de herramienta»: «cuando la herramienta está en ejecución, el modelo está esperando». Si la herramienta tarda demasiado en devolver, la conversación entrará en estado de silencio. Por lo tanto, tu herramienta de música debería devolver inmediatamente al recibir el comando, sin esperar a que termine de reproducirse toda la canción.
En resumen, los 3 conceptos clave son: VAD captura tu turno, Barge-in te permite interrumpir, y Herramientas permiten que el agente realice acciones.
Conclusión: elección entre API cruda y Google ADK
El tutorial de implementación se realizó intencionadamente utilizando el SDK GenAI crudo — los desarrolladores pueden ver cómo funciona cada parte (sesión, flujo, bucle de audio, herramientas) sin que ningún framework lo oculte. Pero esto implica escribir más código de conexión.
Google menciona que el próximo episodio utilizará el Google ADK (Kit de Desarrollo de Agentes), que está diseñado para proporcionar un framework para este tipo de agentes de voz:
- Agente, sesión y bucle de transmisión son gestionados por el framework
- Cola integrada para mantener la llamada en vivo fluida
- Los desarrolladores solo escriben lógica de negocio de alto nivel (herramientas, prompts)
Si solo quieres probar rápidamente un agente de voz en vivo, el ADK será una opción más accesible; si deseas entender los principios de funcionamiento subyacentes o realizar personalizaciones extensas, la API cruda del tutorial es más clara.
Recursos completos oficiales
- Código de demostración: [g.dev/cloud/voicedemo1](https://g.dev/cloud/voicedemo1)
- Documentación de la API de Gemini Live: [g.dev/cloud/gemini-live](https://g.dev/cloud/gemini-live)
- Documentación del Kit de Desarrollo de Agentes: [g.dev/cloud/adk-docs](https://g.dev/cloud/adk-docs)
- Hoja de ruta de Google Cloud: [g.dev/cloud/mma-roadmap](https://g.dev/cloud/mma-roadmap)
- Avance del próximo episodio: reconstruyendo la misma aplicación de agente de voz con Google ADK

