Solución de problemas de la API de Gemini Live

En este documento, se proporcionan pasos para solucionar problemas que puedes encontrar cuando usas la API de Gemini Live.

La conexión se interrumpe de forma inesperada

Si la conexión de tu sesión se interrumpe de forma inesperada, es posible que se deba a límites de tokens, tiempos de espera de conexión de sesión o problemas de red.

Comportamiento

La sesión se desconectó con el código de error 1000 o 1006.

Posibles motivos

  • La compresión de la ventana de contexto no está habilitada y el token de contexto supera el límite de tokens de contexto de la sesión (hasta 128,000).
  • No se implementó la lógica de reanudación de sesión o no se implementó correctamente.
  • La conexión a Internet es inestable.

Motivos y soluciones

  • Los tokens superan el límite de tokens de contexto de la sesión: Para evitar superar el límite de tokens de contexto de la sesión, activa la compresión de contexto. Esto podría afectar la calidad de la conversación, ya que el modelo descartará de forma intermitente partes anteriores del historial de chat.

  • La conexión de sesión vence después de 10 minutos: Administra la reanudación de la sesión para permitir interacciones más largas. Para obtener más detalles, consulta las prácticas recomendadas para la reanudación de sesiones.

  • Conexión a Internet inestable: Verifica el estado de tu conexión a Internet, ya que las fluctuaciones en la estabilidad pueden provocar problemas de conectividad.

El modelo no comprendió al usuario

Si el modelo no parece comprender tu entrada, asegúrate de que el audio esté formateado correctamente y ten en cuenta la calidad del micrófono y el ruido de fondo.

Comportamiento

El modelo responde con información irrelevante, responde con información incorrecta o le pide al usuario que repita la pregunta.

Posibles motivos

  • El formato de audio de entrada no es correcto.
  • La calidad del micrófono no es buena.
  • El ruido de fondo es demasiado alto.

Motivos y soluciones

  • El formato de audio de entrada no es correcto: Verifica que el audio de entrada use un formato PCM de 16 bits, little-endian, con una frecuencia de muestreo de 16 kHz y un solo canal mono.

  • La calidad del micrófono no es buena: Prueba la calidad del micrófono grabando un audio corto y reproduciéndolo. Si la calidad del micrófono no es buena, intenta usar uno de mejor calidad.

  • El ruido de fondo es demasiado alto: Prueba el nivel de ruido de fondo grabando un audio corto y reproduciéndolo. Si el nivel de ruido de fondo es demasiado alto, intenta acercar el micrófono al usuario o usa uno con mejor cancelación de ruido.

El modelo no responde

Si no recibes una respuesta del modelo, verifica las opciones de detección de actividad de voz y la conexión WebSocket.

Comportamiento

No hay respuesta del modelo.

Posibles motivos

  • Los parámetros de configuración del VAD no están establecidos correctamente.
  • Se interrumpió la conexión de WebSocket.

Motivos y soluciones

  • El VAD está configurado de forma incorrecta: El usuario inhabilitó el VAD. En este caso, el modelo seguirá esperando el habla del usuario y no le responderá. Asegúrate de enviar los eventos ActivityStart y ActivityEnd al modelo si el VAD está inhabilitado.

  • Se interrumpió la conexión de WebSocket: Si se interrumpe la conexión de WebSocket, no habrá comunicación entre el cliente y el servidor. Verifica el estado de la conexión WebSocket y asegúrate de que se haya establecido correctamente.

No se puede interrumpir el modelo

Si no puedes interrumpir el modelo mientras habla, asegúrate de controlar el búfer de reproducción y la transmisión de audio correctamente.

Comportamiento

El modelo sigue hablando sin interrupciones del usuario.

Posibles motivos

  • No se pudo vaciar el búfer de reproducción.
  • No se pudo transmitir audio a la API de Gemini Live.
  • El VAD personalizado no se implementó correctamente.

Motivos y soluciones

  • No se pudo vaciar el búfer de reproducción: El cliente debe vaciar el búfer de reproducción de inmediato cuando recibe una señal de interrupción del modelo. De lo contrario, el modelo seguirá hablando.

  • No se pudo transmitir audio a la API de Gemini Live: El cliente debe transmitir audio a la API de Gemini Live en fragmentos de entre 20 ms y 40 ms para minimizar la latencia. Si el cliente no puede transmitir audio a la API de Gemini Live, el modelo no enviará una señal de interrupción al cliente.

  • No se implementó correctamente el VAD personalizado: Si el VAD personalizado no reconoce el inicio del habla o el cliente no envía el indicador ActivityStart al modelo, el modelo no enviará un indicador de interrupción al cliente.

Limitaciones conocidas

Se aplican las siguientes limitaciones a la API de Gemini Live. Cada elemento incluye una mitigación cuando está disponible.

No se admite el pago por uso prioritario

La API de Gemini Live no admite la opción de consumo de pago por uso prioritario.

La voz puede cambiar en un solo turno

En casos excepcionales, el modelo responde con una voz diferente a la que configuraste en el campo voice_name. El cambio se limita a un solo turno, y los turnos siguientes vuelven a usar la voz configurada. No es necesario realizar ningún cambio de configuración.

La velocidad del habla puede acelerarse durante los turnos largos

Cuando el modelo genera una respuesta hablada extendida y sin interrupciones, su cadencia de habla puede acelerarse gradualmente. Este comportamiento se nota más en los diálogos únicos que superan los 60 segundos. Para mantener un ritmo constante, usa los siguientes enfoques:

  • Segmenta las respuestas largas: Evita pedirle al modelo que lea bloques de texto largos en un solo turno. Divide las respuestas extensas en fragmentos de menos de 100 palabras o menos de 50 segundos de audio hablado.

  • Usa la alternancia de turnos conversacionales: Adopta un patrón de diálogo interactivo que le devuelva el control al usuario entre segmentos.

El modelo puede cambiar de idioma de forma inesperada

Si el modelo determina que un usuario está hablando en un idioma distinto del configurado, puede responder en ese idioma. Para reducir la probabilidad de un cambio no deseado, proporciona una sugerencia de idioma configurando el campo language_code y estableciendo el idioma esperado en la instrucción del sistema. Para obtener más información, consulta Cómo establecer el idioma y la voz.

Las secuencias de dígitos se pueden repetir de forma incoherente.

Cuando un usuario pronuncia una secuencia de dígitos individuales, como un número de teléfono, un número de tarjeta de crédito o un número de cuenta, el modelo puede repetir la secuencia con dígitos incorrectos o faltantes. Para reducir estos errores, agrega una instrucción del sistema que le indique al modelo que lea la secuencia un dígito a la vez y que le pida al usuario que repita la secuencia lentamente cuando los dígitos no sean claros.