080 · 語音 Agent 的搶話時機拿捏
AWS 兩位工程師拆解語音 agent 搶話問題,比較 VAD、STT 內建偵測與 SmartTurn 三種做法的取捨。
原標題:Designing Voice Agents for Real Conversations - Chintan Agrawal & Daniel Wirjo, AWS
重點摘要
- 200 毫秒的生理限制人類對話換手大約只要 200 毫秒,語音 agent 慢到 800 毫秒使用者就會覺得卡卡的,拖到 1.5 秒可能直接掛電話。
- 三個層次的 turn-taking 架構Level 1 只靠 VAD 偵測靜音,Level 2 交給 STT 服務內建的判斷,Level 3 是本地 VAD 加上 SmartTurn 模型;三種做法程式碼架構幾乎一樣,差別只在誰來決定「使用者講完了沒」。
- VAD 的極限Silero VAD 只有 30 萬參數,能快速判斷有沒有人在講話,但分不出這段靜音是換氣、講完還是被打斷,同一種靜音背後可能是完全不同的意圖。
- STT 內建偵測 vs SmartTurnCartesia、Deepgram 的 STT 服務可以直接判斷 turn 是否結束,p50 延遲約 250 到 300 毫秒,但判斷邏輯是黑箱;SmartTurn v3.2 改用語調與韻律判斷,recall 約 58.9%,抓不到的交給靜音計時器兜底,兩者互補。
- 延遲預算拆解一般語音管線的端到端延遲落在 800 到 1300 毫秒之間,其中 STT 加 LLM 就吃掉約三分之二,是唯二還能優化的環節;幫語音場景選 LLM 時,p95 尾端延遲比 p50 更重要。
- 上線後才會冒出來的問題誤判打斷會拉高使用者要求轉真人客服的比例,對話拉長後模型也容易變得囉唆或忘記指令,需要做 context pruning 或重置對話。
時間軸
時碼點下去會跳到影片的那一段。
| 時碼 | 段落 | 重點 |
|---|---|---|
| 00:00 | 開場 | Chintan 與 Daniel 自我介紹,說明今天要談語音 agent 的 turn-taking,這是 audio engineering 問題,不是 LLM 問題。 |
| 01:37 | 問題示範 | 同一句話、同一個模型,只因為抓到打斷的速度差了將近兩秒,使用者的體驗就完全不同。 |
| 02:28 | 人類換手只要 200 毫秒 | 慢到 800 毫秒對話開始感覺卡,拖到 1.5 秒使用者可能直接掛電話;Salesforce 在 2026 年 3 月公開的最佳成績也只有 755 毫秒。 |
| 03:49 | 拆解語音管線 | STT、LLM、TTS 之外,真正掌握 turn-taking 的其實是藏在最前面的 VAD。 |
| 05:16 | Level 1:純 VAD | Silero VAD 是 30 萬參數的小模型,靠靜音時長門檻判斷使用者講完了沒,對話節奏完全看這個參數怎麼調。 |
| 07:15 | VAD 的盲點 | 同一段靜音可能是換氣、講完、被打斷或只是附和,VAD 完全分不出差別。 |
| 08:23 | Level 2:交給 STT 判斷 | Cartesia、Deepgram Nova 3 的 STT 服務直接在語音轉文字過程中判斷 turn 是否結束,p50 延遲約 250 到 300 毫秒,但判斷邏輯是黑箱。 |
| 09:51 | Level 3:VAD 加 SmartTurn | SmartTurn v3.2 用語調判斷是否講完,recall 58.9%、precision 68.4%,判斷不出來就交給靜音計時器兜底。 |
| 11:37 | 打斷處理機制 | 使用者一開口,管線能在 32 毫秒內偵測、15 毫秒內清空,但目前多數系統只要偵測到聲音就整段喊停,還分不出是真的打斷還是單純附和。 |
| 14:46 | 延遲預算全拆解 | 一般管線端到端要 1100 到 1300 毫秒,STT 加 LLM 吃掉三分之二,是唯二還能優化的環節。 |
| 17:07 | 幫語音挑 LLM 要看 p95 | Nemotron 3 Ultra 與 GPT-4.1 的 p50 都在 530 毫秒左右,但 GPT-4.1 的 p95 飆到 1.7 秒,另一款模型甚至衝破 4 秒。 |
| 20:01 | 上線後才會遇到的問題 | 誤判打斷會讓使用者更常要求轉真人客服,對話拉長後模型也容易變得囉唆或忘記指令。 |
| 21:39 | 換 Daniel 上場示範 | Daniel 接手,準備用同一個旅遊助理範例,實測三種 turn-taking 做法的差別。 |
| 25:42 | 示範一:純靜音偵測太心急 | 使用者句子都還沒講完,agent 就因為靜音門檻搶著回話。 |
| 27:31 | 示範二:STT 內建偵測比較聰明 | Cartesia 的內建 turn detection 會等到一句完整的話才回應,中途沒說完就先按兵不動。 |
| 31:33 | 示範三:SmartTurn 判斷語氣完整 | 同樣的句子換成 SmartTurn 模型,靠語調判斷出這句話真的講完了,立刻接話。 |
值得記的話
名詞與人物
| turn-taking | 語音對話中判斷「現在輪到誰說話」的機制,是這場演講的核心主題 |
|---|---|
| VAD(voice activity detection) | 偵測聲音裡有沒有人在講話的元件,是三種做法共同的基礎 |
| Silero VAD | 30 萬參數的開源 VAD 模型,靠靜音時長門檻判斷使用者是否講完 |
| Cartesia | 提供語音轉文字與合成服務的公司,STT 內建 turn detection,講者量到的 p50 延遲約 300 毫秒 |
| Deepgram Nova 3 | Deepgram 的語音轉文字模型,同樣內建 end-of-turn 判斷,p50 約 250 毫秒 |
| SmartTurn v3.2 | 開源的本地語調判斷模型,recall 58.9%、precision 68.4%,BSD2 授權 |
| Pipecat | 這場示範用來串接 STT、LLM、TTS 與 turn detection 的語音 agent 框架 |
| p50 / p95 | 延遲的中位數與 95 百分位數,語音 agent 場景更該看尾端的 p95 |
延伸
- AWS 提供的語音 agent 參考架構(guidance reference architecture),標榜有完整的企業級防護機制,這場只提到名稱,沒有展開細節。
- 講者順帶點到可以把語音 agent 交給雲端代管、自己只顧 agent 邏輯這條路,但沒有比較各家代管平台的差別。
- Meta 在 2026 年 3 月發表的一篇論文,宣稱其 turn detection 方法 recall 達到 87.7%,但因為沒有釋出程式碼,這場也只是拿來對比、沒有多談。