Résoudre les problèmes liés à l'API Gemini Live

Ce document fournit des étapes de dépannage pour les problèmes que vous pouvez rencontrer lorsque vous utilisez l'API Gemini Live.

La connexion est interrompue de manière inattendue

Si la connexion de votre session est interrompue de manière inattendue, cela peut être dû à des limites de jetons, à des délais d'expiration de la connexion de session ou à des problèmes de réseau.

Comportement

La session a été déconnectée avec le code d'erreur 1000 ou 1006.

Causes possibles

  • La compression de la fenêtre de contexte n'est pas activée et le jeton de contexte dépasse la limite de jetons de contexte de la session (jusqu'à 128 000).
  • Aucune logique de reprise de session n'est implémentée ou la logique de reprise n'est pas correctement implémentée.
  • Connexion Internet instable.

Causes et solutions

  • Les jetons dépassent la limite de jetons de contexte de la session Pour éviter de dépasser la limite de jetons de contexte de la session, activez la compression du contexte. Cela peut avoir un impact sur la qualité de la conversation, car le modèle ignorera par intermittence les parties antérieures de l'historique des discussions.

  • La connexion de session expire après 10 minutes : gérez la reprise de session pour permettre des interactions plus longues. Pour en savoir plus, consultez les bonnes pratiques concernant la reprise de session.

  • Connexion Internet instable : vérifiez l'état de votre connexion Internet, car les fluctuations de stabilité peuvent entraîner des problèmes de connectivité.

Le modèle n'a pas compris l'utilisateur

Si le modèle ne semble pas comprendre votre saisie, assurez-vous que votre audio est correctement formaté et tenez compte de la qualité de votre micro et du bruit de fond.

Comportement

Le modèle répond avec des informations non pertinentes ou incorrectes, ou demande à l'utilisateur de répéter.

Causes possibles

  • Le format audio d'entrée n'est pas correct.
  • La qualité du micro n'est pas bonne.
  • Le bruit de fond est trop élevé.

Causes et solutions

  • Le format audio d'entrée n'est pas correct Vérifiez que l'audio d'entrée utilise un format PCM 16 bits little-endian avec un taux d'échantillonnage de 16 kHz et un seul canal mono.

  • La qualité du micro n'est pas bonne Testez la qualité du micro en enregistrant un court extrait audio et en le lisant. Si la qualité du micro n'est pas bonne, essayez d'utiliser un micro de meilleure qualité.

  • Le bruit de fond est trop élevé : testez le niveau de bruit de fond en enregistrant un court extrait audio et en le lisant. Si le niveau de bruit de fond est trop élevé, essayez de rapprocher le micro de l'utilisateur ou d'utiliser un micro avec une meilleure suppression du bruit.

Le modèle ne répond pas

Si vous ne recevez pas de réponse du modèle, vérifiez vos options de détection d'activité vocale et votre connexion WebSocket.

Comportement

Aucune réponse du modèle.

Causes possibles

  • Les paramètres VAD ne sont pas correctement définis.
  • La connexion WebSocket a été interrompue.

Causes et solutions

  • VAD mal défini : le VAD est désactivé par l'utilisateur. Dans ce cas, le modèle continue d'attendre la parole de l'utilisateur et ne lui répond pas. Veillez à envoyer des événements ActivityStart et ActivityEnd au modèle si le VAD est désactivé.

  • La connexion WebSocket a été interrompue : si la connexion WebSocket est interrompue, il n'y aura aucune communication entre le client et le serveur. Vérifiez l'état de la connexion WebSocket et assurez-vous qu'elle est correctement établie.

Impossible d'interrompre le modèle

Si vous ne parvenez pas à interrompre le modèle pendant qu'il parle, assurez-vous de gérer correctement le tampon de lecture et le streaming audio.

Comportement

Le modèle continue de parler sans être interrompu par l'utilisateur.

Causes possibles

  • Échec de l'effacement du tampon de lecture.
  • Échec du streaming audio vers l'API Gemini Live.
  • Le VAD personnalisé n'est pas correctement implémenté.

Causes et solutions

  • Échec de l'effacement du tampon de lecture : le client doit effacer immédiatement le tampon de lecture lorsqu'il reçoit un signal d'interruption du modèle. Sinon, le modèle continue de parler.

  • Échec du streaming audio vers l'API Gemini Live : le client doit diffuser l'audio vers l'API Gemini Live par blocs de 20 à 40 ms pour minimiser la latence. Si le client ne parvient pas à diffuser l'audio vers l'API Gemini Live, le modèle n'envoie pas de signal d'interruption au client.

  • Le VAD personnalisé n'est pas correctement implémenté : si le VAD personnalisé ne parvient pas à reconnaître le début de la parole ou si le client ne parvient pas à envoyer le signal ActivityStart au modèle, le modèle n'envoie pas de signal d'interruption au client.