排解 Gemini Live API 問題

本文提供疑難排解步驟,協助您解決使用 Gemini Live API 時可能遇到的問題。

連線意外中斷

如果工作階段連線意外中斷,可能是因為權杖限制、工作階段連線逾時或網路問題。

行為

工作階段已中斷,錯誤代碼為 10001006

可能原因

  • 脈絡窗口壓縮功能未啟用,且脈絡權杖超過工作階段的脈絡權杖上限 (最多 12.8 萬個)。
  • 未實作工作階段續傳邏輯,或實作的續傳邏輯有誤。
  • 網際網路連線不穩定。

原因和解決方法

  • 權杖超出工作階段的脈絡權杖限制: 如要避免超出工作階段的脈絡權杖限制,請啟用脈絡壓縮功能。這可能會影響對話品質,因為模型會間歇性捨棄先前的對話記錄。

  • 工作階段連線會在 10 分鐘後過期: 管理工作階段續傳功能,延長互動時間。詳情請參閱工作階段續傳最佳做法。

  • 網際網路連線不穩定: 請確認網際網路連線狀態,因為穩定性波動可能會導致連線問題。

模型無法理解使用者

如果模型似乎無法理解你的輸入內容,請確認音訊格式是否正確,並考量麥克風品質和背景噪音。

行為

模型回覆不相關或錯誤的資訊,或是要求使用者重複提問。

可能原因

  • 輸入的音訊格式有誤。
  • 麥克風品質不佳。
  • 背景噪音過大。

原因和解決方法

  • 輸入音訊格式不正確: 確認輸入音訊使用小端序 16 位元 PCM 格式,取樣率為 16 kHz,且為單一單聲道。

  • 麥克風品質不佳: 錄製一小段音訊並播放,測試麥克風品質。 如果麥克風音質不佳,請嘗試使用音質較好的麥克風。

  • 背景噪音過高: 錄製一小段音訊並播放,測試背景噪音程度。如果背景噪音過大,請試著將麥克風靠近使用者,或使用降噪效果更好的麥克風。

模型沒有回應

如果模型沒有回應,請檢查語音活動偵測選項和 WebSocket 連線。

行為

模型沒有回應。

可能原因

  • VAD 設定有誤。
  • WebSocket 連線中斷。

原因和解決方法

  • VAD 設定錯誤: 使用者停用了 VAD。在這種情況下,模型會持續等待使用者說話,不會回應使用者。如果停用 VAD,請務必將 ActivityStartActivityEnd 事件傳送至模型。

  • WebSocket 連線中斷: 如果 WebSocket 連線中斷,用戶端和伺服器之間將無法通訊。請檢查 WebSocket 連線狀態,並確認連線已正確建立。

無法中斷模型

如果無法在模型說話時中斷,請確認你正確處理播放緩衝區和串流音訊。

行為

模型會繼續說話,不會受到使用者干擾。

可能原因

  • 無法清除播放緩衝區。
  • 無法將音訊串流至 Gemini Live API。
  • 自訂 VAD 未正確實作。

原因和解決方法

  • 無法清除播放緩衝區: 當用戶端收到模型傳送的中斷信號時,應立即清除播放緩衝區,否則模型會繼續說話。

  • 無法將音訊串流至 Gemini Live API: 用戶端應以 20 毫秒到 40 毫秒的區塊,將音訊串流至 Gemini Live API,以盡量縮短延遲時間。如果用戶端無法將音訊串流傳輸至 Gemini Live API,模型就不會將中斷訊號傳送至用戶端。

  • 自訂 VAD 導入不正確: 如果自訂 VAD 無法辨識語音開始,或用戶端無法將 ActivityStart 訊號傳送至模型,模型就不會將中斷訊號傳送至用戶端。