Solução de problemas da API Gemini Live

Este documento fornece etapas de solução de problemas que podem ocorrer ao usar a API Gemini Live.

A conexão cai inesperadamente

Se a conexão da sessão cair inesperadamente, o motivo pode ser limites de token, tempos limite de conexão da sessão ou problemas de rede.

Comportamento

A sessão foi desconectada com o código de erro 1000 ou 1006.

Motivos possíveis

  • A compactação da janela de contexto não está ativada, e o token de contexto excede o limite de tokens de contexto da sessão (até 128 mil).
  • Nenhuma lógica de retomada de sessão foi implementada ou a lógica de retomada não foi implementada corretamente.
  • Conexão de Internet instável.

Motivos e soluções

  • Os tokens excedem o limite de tokens de contexto da sessão:para evitar exceder o limite de tokens de contexto da sessão, ative a compactação de contexto. Isso pode afetar a qualidade da conversa, já que o modelo descarta intermitentemente partes anteriores do histórico de chat.

  • A conexão da sessão expira após 10 minutos:gerencie a retomada da sessão para permitir interações mais longas. Para mais detalhes, consulte as práticas recomendadas para retomada de sessão.

  • Conexão de Internet instável:verifique a condição da sua conexão de Internet, já que flutuações na estabilidade podem resultar em problemas de conectividade.

O modelo não entendeu o usuário

Se o modelo não parecer entender seu comando, verifique se o áudio está formatado corretamente e considere a qualidade do microfone e o ruído de fundo.

Comportamento

O modelo responde com informações irrelevantes ou incorretas ou pede para o usuário repetir.

Motivos possíveis

  • O formato do áudio de entrada não está correto.
  • A qualidade do microfone não é boa.
  • O ruído de fundo está muito alto.

Motivos e soluções

  • O formato de áudio de entrada não está correto:verifique se o áudio de entrada usa um formato PCM de 16 bits little-endian com uma taxa de amostragem de 16 kHz e um único canal mono.

  • A qualidade do microfone não é boa:teste a qualidade do microfone gravando um áudio curto e reproduzindo-o. Se a qualidade do microfone não for boa, tente usar um microfone melhor.

  • O ruído de fundo está muito alto:teste o nível de ruído de fundo gravando um áudio curto e reproduzindo-o. Se o nível de ruído de fundo estiver muito alto, tente aproximar o microfone do usuário ou use um microfone com melhor cancelamento de ruído.

O modelo não está respondendo

Se você não estiver recebendo uma resposta do modelo, verifique as opções de detecção de atividade de voz e a conexão WebSocket.

Comportamento

Nenhuma resposta do modelo.

Motivos possíveis

  • As configurações de VAD não estão definidas corretamente.
  • A conexão WebSocket foi interrompida.

Motivos e soluções

  • VAD definido incorretamente:o usuário desativou a VAD. Nesse caso, o modelo vai continuar esperando a fala do usuário e não vai responder. Envie eventos ActivityStart e ActivityEnd ao modelo se a VAD estiver desativada.

  • A conexão WebSocket foi interrompida:se a conexão WebSocket for interrompida, não haverá comunicação entre o cliente e o servidor. Verifique o status da conexão WebSocket e confira se ela foi estabelecida corretamente.

Não é possível interromper o modelo

Se não for possível interromper o modelo enquanto ele fala, verifique se você está processando o buffer de reprodução e o áudio de streaming corretamente.

Comportamento

O modelo continua falando sem interrupção do usuário.

Motivos possíveis

  • Falha ao limpar o buffer de reprodução.
  • Falha ao transmitir áudio para a API Gemini Live.
  • O VAD personalizado não foi implementado corretamente.

Motivos e soluções

  • Falha ao limpar o buffer de reprodução:o cliente precisa limpar o buffer de reprodução imediatamente ao receber um sinal de interrupção do modelo. Caso contrário, o modelo vai continuar falando.

  • Falha ao transmitir áudio para a API Gemini Live:o cliente precisa transmitir áudio para a API Gemini Live em partes entre 20 ms e 40 ms para minimizar a latência. Se o cliente não conseguir transmitir áudio para a API Gemini Live, o modelo não enviará um sinal de interrupção para ele.

  • A VAD personalizada não está implementada corretamente:se a VAD personalizada não reconhecer o início da fala ou o cliente não enviar o sinal ActivityStart ao modelo, ele não enviará um sinal de interrupção ao cliente.