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

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

接続が突然切れる

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

動作

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

考えられる原因

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

理由と解決策

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

  • セッション接続の有効期限は 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 信号をモデルに送信できない場合、モデルは割り込み信号をクライアントに送信しません。