このドキュメントでは、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信号をモデルに送信できない場合、モデルは割り込み信号をクライアントに送信しません。