Risoluzione dei problemi dell'API Gemini Live

Questo documento fornisce i passaggi per la risoluzione dei problemi che potresti riscontrare quando utilizzi l'API Gemini Live.

La connessione si interrompe inaspettatamente

Se la connessione della sessione si interrompe inaspettatamente, il problema potrebbe essere dovuto a limiti dei token, timeout della connessione della sessione o problemi di rete.

Comportamento

Sessione disconnessa con codice di errore 1000 o 1006.

Possibili motivi

  • La compressione della finestra contestuale non è attivata e il token di contesto supera il limite di token di contesto della sessione (fino a 128.000).
  • Non è implementata alcuna logica di ripresa della sessione o la logica di ripresa non è implementata correttamente.
  • Connessione a internet instabile.

Motivi e soluzioni

  • I token superano il limite di token di contesto della sessione: Per evitare di superare il limite di token di contesto della sessione, attiva la compressione del contesto. Ciò potrebbe influire sulla qualità della conversazione, in quanto il modello scarta a intermittenza le parti precedenti della cronologia della chat.

  • La connessione della sessione scade dopo 10 minuti: gestisci il ripristino della sessione per consentire interazioni più lunghe. Per ulteriori dettagli, consulta le best practice per la ripresa della sessione.

  • Connessione a internet instabile: verifica le condizioni della connessione a internet, poiché le fluttuazioni di stabilità possono causare problemi di connettività.

Il modello non è riuscito a comprendere l'utente

Se il modello non sembra comprendere il tuo input, assicurati che l'audio sia formattato correttamente e valuta la qualità del microfono e il rumore di fondo.

Comportamento

Il modello risponde con informazioni non pertinenti, risponde con informazioni errate o chiede all'utente di ripetere.

Possibili motivi

  • Il formato audio di input non è corretto.
  • La qualità del microfono non è buona.
  • Il rumore di fondo è troppo elevato.

Motivi e soluzioni

  • Il formato audio di input non è corretto: verifica che l'audio di input utilizzi un formato PCM a 16 bit little-endian con una frequenza di campionamento di 16 kHz e un singolo canale mono.

  • La qualità del microfono non è buona: testa la qualità del microfono registrando un breve audio e riproducendolo. Se la qualità del microfono non è buona, prova a utilizzarne uno con una qualità migliore.

  • Il rumore di fondo è troppo alto: Prova il livello di rumore di fondo registrando un breve audio e riproducendolo. Se il livello di rumore di fondo è troppo alto, prova ad avvicinare il microfono all'utente o a utilizzarne uno con una migliore cancellazione del rumore.

Il modello non risponde

Se non ricevi una risposta dal modello, controlla le opzioni di rilevamento dell'attività vocale e la connessione WebSocket.

Comportamento

Nessuna risposta dal modello.

Possibili motivi

  • Le impostazioni VAD non sono impostate correttamente.
  • La connessione WebSocket è stata interrotta.

Motivi e soluzioni

  • VAD impostato in modo errato: VAD è disattivato dall'utente. In questo caso, il modello continuerà ad aspettare il discorso dell'utente e non risponderà. Se la VAD è disattivata, assicurati di inviare gli eventi ActivityStart e ActivityEnd al modello.

  • La connessione WebSocket è stata interrotta: Se la connessione WebSocket viene interrotta, non ci sarà comunicazione tra il client e il server. Controlla lo stato della connessione WebSocket e assicurati che sia stabilita correttamente.

Impossibile interrompere il modello

Se non riesci a interrompere il modello mentre parla, assicurati di gestire correttamente il buffer di riproduzione e lo streaming audio.

Comportamento

Il modello continua a parlare senza interruzioni da parte dell'utente.

Possibili motivi

  • Impossibile svuotare il buffer di riproduzione.
  • Impossibile trasmettere l'audio in streaming all'API Gemini Live.
  • Il VAD personalizzato non è implementato correttamente.

Motivi e soluzioni

  • Impossibile svuotare il buffer di riproduzione: il client deve svuotare immediatamente il buffer di riproduzione quando riceve un segnale di interruzione dal modello. In caso contrario, il modello continuerà a parlare.

  • Impossibile trasmettere in streaming l'audio all'API Gemini Live: il client deve trasmettere in streaming l'audio all'API Gemini Live in blocchi compresi tra 20 ms e 40 ms per ridurre al minimo la latenza. Se il client non riesce a trasmettere l'audio all'API Gemini Live, il modello non invierà un segnale di interruzione al client.

  • L'attivazione vocale personalizzata non è implementata correttamente: se l'attivazione vocale personalizzata non riconosce l'inizio del discorso o il client non invia il segnale ActivityStart al modello, quest'ultimo non invierà un segnale di interruzione al client.

Limitazioni note

All'API Gemini Live si applicano le seguenti limitazioni. Ogni elemento include una mitigazione, se disponibile.

Il pagamento a consumo prioritario non è supportato

L'API Gemini Live non supporta il pagamento a consumo prioritario come opzione di consumo.

La voce può cambiare per un singolo turno

In rari casi, il modello risponde con una voce diversa da quella impostata nel campo voice_name. La modifica è limitata a un singolo turno e i turni successivi utilizzano di nuovo la voce configurata. Non è necessaria alcuna modifica alla configurazione.

La velocità del parlato può aumentare durante le lunghe svolte

Quando il modello genera una risposta vocale estesa e ininterrotta, la sua cadenza vocale può accelerare gradualmente. Questo comportamento è più evidente nelle singole svolte che superano i 60 secondi. Per mantenere un ritmo costante, utilizza i seguenti approcci:

  • Segmenta output lunghi: evita di chiedere al modello di leggere lunghi blocchi di testo in un unico turno. Dividi le risposte lunghe in blocchi di meno di 100 parole o meno di 50 secondi di audio parlato.

  • Utilizza l'alternanza di turni di conversazione:adotta un modello di dialogo interattivo che restituisce il controllo all'utente tra un segmento e l'altro.

Il modello può cambiare lingua inaspettatamente

Se il modello rileva che un utente sta parlando una lingua diversa da quella configurata, può rispondere in quella lingua. Per ridurre la possibilità di un cambio involontario, fornisci un suggerimento sulla lingua impostando il campo language_code e indicando la lingua prevista nelle istruzioni di sistema. Per saperne di più, consulta Impostare la lingua e la voce.

Le sequenze di cifre possono essere ripetute in modo incoerente

Quando un utente pronuncia una sequenza di singole cifre, ad esempio un numero di telefono, un numero carta o un numero di conto bancario, il modello può ripetere la sequenza con cifre errate o mancanti. Per ridurre questi errori, aggiungi un'istruzione di sistema che indichi al modello di leggere la sequenza un numero alla volta e di chiedere all'utente di ripetere la sequenza lentamente quando i numeri non sono chiari.