本文提供疑難排解步驟,協助您解決使用 Gemini Live API 時可能遇到的問題。
連線無預警中斷
如果工作階段連線意外中斷,可能是因為權杖用盡、工作階段連線逾時或網路問題。
行為
工作階段已中斷,錯誤代碼為 1000 或 1006。
可能原因
- 脈絡窗口壓縮功能未啟用,且脈絡權杖超過工作階段的脈絡權杖上限 (最多 12.8 萬個)。
- 未導入工作階段續傳邏輯,或續傳邏輯導入有誤。
- 網際網路連線不穩定。
原因和解決方法
權杖超出工作階段的內容權杖限制: 如要避免超出工作階段的內容權杖限制,請啟用內容壓縮功能。這可能會影響對話品質,因為模型會間歇性捨棄先前的對話記錄。
工作階段連線會在 10 分鐘後過期: 管理工作階段續傳功能,延長互動時間。如需更多詳細資料,請參閱工作階段續傳最佳做法。
網際網路連線不穩定: 請確認網際網路連線狀態,因為連線不穩可能會導致連線問題。
模型無法理解使用者
如果模型似乎無法理解你的輸入內容,請確認音訊格式是否正確,並考量麥克風品質和背景噪音。
行為
模型回覆不相關或錯誤的資訊,或要求使用者重複提問。
可能原因
- 輸入的音訊格式有誤。
- 麥克風品質不佳。
- 背景噪音過大。
原因和解決方法
輸入音訊格式不正確: 確認輸入音訊使用小端序 16 位元 PCM 格式,取樣率為 16 kHz,且只有單一單聲道。
麥克風品質不佳: 錄製一小段音訊並播放,測試麥克風品質。 如果麥克風品質不佳,請改用音質較好的麥克風。
背景噪音過高: 錄製一小段音訊並播放,測試背景噪音程度。如果背景噪音過大,請嘗試將麥克風靠近使用者,或使用降噪效果更好的麥克風。
模型沒有回應
如果模型沒有回應,請檢查語音活動偵測選項和 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信號給模型,模型就不會傳送中斷信號給用戶端。
已知限制
Gemini Live API 有以下限制。每個項目都包含緩解措施 (如有)。
不支援優先即付即用模式
Gemini Live API 不支援優先即付即用做為用量選項。
語音可在一回合內變更
在極少數情況下,模型會使用您在 voice_name 欄位中設定的語音以外的語音回覆。這項變更僅限單一回合,後續回合會再次使用設定的聲音。不需要變更任何設定。
長時間的對話可能會加快語音速率
模型生成較長且不間斷的語音回覆時,說話速度可能會逐漸加快。如果單一回合超過 60 秒,這種情況會更加明顯。如要維持穩定配速,請採用下列方法:
將長篇輸出內容分段: 避免提示模型在單一回合中讀取長篇文字。 將長篇回覆分成多個部分,每個部分不超過 100 字,或語音長度不超過 50 秒。
使用對話輪流模式: 採用互動式對話模式,在各個區段之間將控制權交還給使用者。
模型可能會無預警切換語言
如果模型判斷使用者說的語言與設定的語言不同,就會以該語言回覆。如要降低非預期切換的機率,請設定 language_code 欄位,並在系統指令中說明預期語言,提供語言提示。詳情請參閱「設定語言和聲音」。
數字序列可能重複顯示,但順序不一致
如果使用者說出一連串的個別數字,例如電話號碼、卡號或帳號,模型可能會重複這串數字,但數字有誤或缺漏。如要減少這類錯誤,請新增系統指令,引導模型一次讀取一個數字,並在數字不清楚時要求使用者慢慢重複唸出數字。