Transmisión bidireccional con la API de Gemini Live 



Gemini Live API permite interacciones de voz y texto bidireccionales de baja latencia con Gemini. Con Live API, puedes proporcionar a los usuarios finales la experiencia de conversaciones de voz naturales y similares a las humanas, con la capacidad de interrumpir las respuestas del modelo con comandos de texto o voz. El modelo puede procesar entradas de texto y audio (próximamente, video) y puede proporcionar salidas de texto y audio.

Puedes crear prototipos con instrucciones y Live API en Vertex AI Studio.

Live API es una API con estado que crea una conexión WebSocket para establecer una sesión entre el cliente y el servidor de Gemini. Para obtener más información, consulta la documentación de referencia de Live API.

Antes de comenzar

Si aún no lo has hecho, completa la guía de introducción, en la que se describe cómo configurar tu proyecto de Firebase, conectar tu app a Firebase, agregar el SDK, inicializar el servicio Vertex AI y crear una instancia de LiveModel.

Ten en cuenta lo siguiente para usar Live API:

  • Asegúrate de usar como mínimo estas versiones de la biblioteca de Firebase:
    iOS y versiones posteriores: Aún no se admite | Android: v16.3.0 y versiones posteriores (BoM: v33.12.0 y versiones posteriores) | Web: Aún no se admite | Flutter: v1.5.0 y versiones posteriores (BoM: v3.9.0 y versiones posteriores)

  • Crea una instancia de LiveModel (no una instancia de GenerativeModel).

Modelos que admiten esta función

Live API solo es compatible con gemini-2.0-flash-live-preview-04-09 (no con gemini-2.0-flash).

Usa las funciones estándar de Live API

En esta sección, se describe cómo usar las funciones estándar de Live API, específicamente para transmitir varios tipos de entradas y salidas:

Cómo enviar y recibir mensajes de texto

Puedes enviar entradas de texto transmitidas y recibir salidas de texto transmitidas. Asegúrate de crear una instancia de liveModel y establecer la modalidad de respuesta en Text.

Aprende a elegir un modelo y, de manera opcional, una ubicación adecuada para tu caso de uso y app.

Cómo enviar y recibir audio

Puedes enviar entradas de audio transmitidas y recibir salidas de audio transmitidas. Asegúrate de crear una instancia de LiveModel y establecer la modalidad de respuesta en Audio.

Obtén información para configurar y personalizar la voz de respuesta (más adelante en esta página).

Aprende a elegir un modelo y, de manera opcional, una ubicación adecuada para tu caso de uso y app.



Crea experiencias más interactivas y atractivas

En esta sección, se describe cómo crear y administrar funciones más atractivas o interactivas de Live API.

Cambia la voz de la respuesta

Live API usa Chirp 3 para admitir respuestas de voz sintetizada. Cuando usas Vertex AI in Firebase, puedes enviar audio en 5 voces de alta definición y 31 idiomas.

Si no especificas una voz, el valor predeterminado es Puck. Como alternativa, puedes configurar el modelo para que responda con cualquiera de las siguientes voces:

Aoede (mujer)
Charon (hombre)
Fenrir (hombre)
Kore (mujer)
Puck (hombre)

Para ver demostraciones de cómo suenan estas voces y obtener la lista completa de los idiomas disponibles, consulta Chirp 3: Voces en HD.

Para especificar una voz, establece el nombre de la voz dentro del objeto speechConfig como parte de la configuración del modelo:

Para obtener los mejores resultados cuando le pidas al modelo que responda en un idioma que no sea inglés, incluye lo siguiente como parte de las instrucciones del sistema:

RESPOND IN LANGUAGE. YOU MUST RESPOND UNMISTAKABLY IN LANGUAGE.

Mantén el contexto en todas las sesiones y solicitudes

Puedes usar una estructura de chat para mantener el contexto en todas las sesiones y solicitudes. Ten en cuenta que esto solo funciona para la entrada y salida de texto.

Este enfoque es mejor para contextos cortos. Puedes enviar interacciones paso a paso para representar la secuencia exacta de eventos. Para contextos más largos, te recomendamos que proporciones un resumen de un solo mensaje para liberar la ventana de contexto para interacciones posteriores.

Controla las interrupciones

Vertex AI in Firebase aún no admite el manejo de interrupciones. Vuelva a consultar más tarde.

Usa llamadas a función (herramientas)

Puedes definir herramientas, como funciones disponibles, para usar con la API de Live, al igual que con los métodos de generación de contenido estándar. En esta sección, se describen algunos matices cuando se usa la API en vivo con llamadas a funciones. Para obtener una descripción completa y ejemplos de llamadas a funciones, consulta la guía de llamadas a funciones.

A partir de una sola instrucción, el modelo puede generar varias llamadas a funciones y el código necesario para encadenar sus resultados. Este código se ejecuta en un entorno de zona de pruebas y genera mensajes BidiGenerateContentToolCall posteriores. La ejecución se detiene hasta que los resultados de cada llamada a función están disponibles, lo que garantiza el procesamiento secuencial.

Además, usar la API en vivo con llamadas a funciones es particularmente potente porque el modelo puede solicitarle al usuario información de seguimiento o de aclaración. Por ejemplo, si el modelo no tiene suficiente información para proporcionar un valor de parámetro a una función a la que desea llamar, puede pedirle al usuario que proporcione más información o que aclare la información.

El cliente debe responder con BidiGenerateContentToolResponse.



Limitaciones y requisitos

Ten en cuenta las siguientes limitaciones y requisitos de Live API.

Transcripción

Vertex AI in Firebase aún no admite transcripciones. Vuelva a consultar más tarde.

Lenguajes

Formatos de audio

Live API admite los siguientes formatos de audio:

  • Formato de audio de entrada: Audio PCM sin procesar de 16 bits a 16 kHz en formato little-endian
  • Formato de audio de salida: Audio PCM sin procesar de 16 bits a 24 kHz en formato little-endian

Límites de frecuencia

Se aplican los siguientes límites de frecuencia:

  • 10 sesiones simultáneas por proyecto de Firebase
  • 4 millones de tokens por minuto

Duración de la sesión

La duración predeterminada de una sesión es de 30 minutos. Cuando la duración de la sesión supera el límite, se finaliza la conexión.

El modelo también se limita por el tamaño del contexto. Enviar grandes fragmentos de entrada puede generar el cierre anticipado de la sesión.

Detección de actividad de voz (VAD)

El modelo realiza automáticamente la detección de actividad de voz (VAD) en una transmisión de entrada de audio continua. La VAD está habilitada de forma predeterminada.

Recuento de tokens

No puedes usar la API de CountTokens con Live API.