Gemini Live API のトラブルシューティング

このドキュメントでは、Gemini Live API の使用時に発生する可能性のある問題のトラブルシューティング手順について説明します。

接続が予期せず切断される

セッション接続が予期せず切断される場合は、トークン上限、セッション接続のタイムアウト、ネットワークの問題が原因である可能性があります。

行動

エラーコード 1000 または 1006 でセッションが切断されました。

考えられる原因

  • コンテキスト ウィンドウの圧縮が有効になっておらず、コンテキスト トークンがセッションのコンテキスト トークン上限(最大 128K)を超えている。
  • セッション再開ロジックが実装されていないか、正しく実装されていない。
  • インターネット接続が不安定である。

理由と解決策

  • トークンがセッションのコンテキスト トークン上限を超えている: セッションのコンテキスト トークン上限を超えないようにするには、コンテキスト 圧縮を有効にします。モデルがチャット履歴の以前の部分を断続的に破棄するため、会話の品質に影響する可能性があります。

  • セッション接続が 10 分後に期限切れになる: セッションの再開を管理して、より長いインタラクションを可能にします。詳しくは、セッション再開のベスト プラクティスをご覧ください。

  • インターネット接続が不安定である: インターネット接続の状態を確認します。安定性の変動により、接続の問題が発生する可能性があります。

モデルがユーザーを理解できなかった

モデルが入力内容を理解していないと思われる場合は、音声の形式が正しいことを確認し、マイクの品質と背景雑音を考慮してください。

行動

モデルが関連性のない情報で応答する、誤った情報で応答する、ユーザーに繰り返すように求める。

考えられる原因

  • 入力音声形式が正しくない。
  • マイクの品質が良くない。
  • 周囲の雑音が大きすぎる。

理由と解決策

  • 入力音声形式が正しくない: 入力音声がリトル エンディアン、16 ビット PCM 形式で、サンプリング レートが 16 kHz、モノラル 1 チャンネルであることを確認します。

  • マイクの品質が良くない: 短い音声を録音して再生し、マイクの品質をテストします。 マイクの品質が良くない場合は、品質の良いマイクを使用してみてください。

  • 背景雑音が大きすぎる: 短い音声を録音して再生し、背景雑音レベルをテストします。周囲の雑音レベルが高すぎる場合は、マイクをユーザーに近づけるか、ノイズ キャンセリング機能が優れたマイクを使用してみてください。

モデルが応答しない

モデルからレスポンスが返ってこない場合は、音声アクティビティ検出オプションと WebSocket 接続を確認してください。

行動

モデルからのレスポンスがない。

考えられる原因

  • VAD 設定が正しく設定されていない。
  • WebSocket 接続が中断された。

理由と解決策

  • VAD が正しく設定されていない: VAD がユーザーによって無効になっている。この場合、モデルはユーザーの発話を待機し続け、ユーザーに応答しません。VAD が無効になっている場合は、ActivityStart イベントと ActivityEnd イベントをモデルに送信してください。

  • WebSocket 接続が中断された: WebSocket 接続が中断されると、クライアントとサーバー間の通信は行われません。WebSocket 接続ステータスを確認し、正しく確立されていることを確認します。

モデルを中断できない

モデルが話しているときに中断できない場合は、再生バッファとストリーミング音声を正しく処理していることを確認してください。

行動

モデルがユーザーの中断なしに話し続ける。

考えられる原因

  • 再生バッファのフラッシュに失敗した。
  • Gemini Live API に音声をストリーミングできなかった。
  • カスタマイズされた VAD が正しく実装されていない。

理由と解決策

  • 再生バッファのフラッシュに失敗した: クライアントは、モデルから割り込み信号を受信したらすぐに再生バッファをフラッシュする必要があります。そうしないと、モデルは話し続けます。

  • Gemini Live API に音声をストリーミングできなかった: クライアントは、レイテンシを最小限に抑えるため、20 ミリ秒から 40 ミリ秒のチャンクで Gemini Live API に音声をストリーミングする必要があります。クライアントが Gemini Live API に音声をストリーミングできない場合、モデルはクライアントに割り込み信号を送信しません。

  • カスタマイズされた VAD が正しく実装されていない: カスタマイズされた VAD が発話の開始を認識できない場合、またはクライアントが モデルに ActivityStart 信号を送信できない場合、モデルはクライアントに 割り込み信号を送信しません。