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

Se desconectó la sesión 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 del 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 o 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: Para probar la calidad del micrófono, graba un audio corto y reprodúcelo. 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

  • VAD configurado de forma incorrecta: El usuario inhabilitó el VAD. En este caso, el modelo seguirá esperando el discurso del usuario y no le responderá. Asegúrate de enviar 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 de 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.

  • La VAD personalizada no se implementó correctamente: Si la VAD personalizada 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.