第 2 站 · 搭 harness該站第 9 / 12 場
語音 Agent 的搶話時機拿捏
Designing Voice Agents for Real Conversations - Chintan Agrawal & Daniel Wirjo, AWS

AWS 兩位工程師拆解語音 agent 搶話問題,比較 VAD、STT 內建偵測與 SmartTurn 三種做法的取捨。
重點摘要
- 200 毫秒的生理限制:人類對話換手大約只要 200 毫秒,語音 agent 慢到 800 毫秒使用者就會覺得卡卡的,拖到 1.5 秒可能直接掛電話。
- 三個層次的 turn-taking 架構:Level 1 只靠 VAD 偵測靜音,Level 2 交給 STT 服務內建的判斷,Level 3 是本地 VAD 加上 SmartTurn 模型;三種做法程式碼架構幾乎一樣,差別只在誰來決定「使用者講完了沒」。
- VAD 的極限:Silero VAD 只有 30 萬參數,能快速判斷有沒有人在講話,但分不出這段靜音是換氣、講完還是被打斷,同一種靜音背後可能是完全不同的意圖。
- STT 內建偵測 vs SmartTurn:Cartesia、Deepgram 的 STT 服務可以直接判斷 turn 是否結束,p50 延遲約 250 到 300 毫秒,但判斷邏輯是黑箱;SmartTurn v3.2 改用語調與韻律判斷,recall 約 58.9%,抓不到的交給靜音計時器兜底,兩者互補。
- 延遲預算拆解:一般語音管線的端到端延遲落在 800 到 1300 毫秒之間,其中 STT 加 LLM 就吃掉約三分之二,是唯二還能優化的環節;幫語音場景選 LLM 時,p95 尾端延遲比 p50 更重要。
- 上線後才會冒出來的問題:誤判打斷會拉高使用者要求轉真人客服的比例,對話拉長後模型也容易變得囉唆或忘記指令,需要做 context pruning 或重置對話。
時間軸16 段
| 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 模型,靠語調判斷出這句話真的講完了,立刻接話。 |
值得記的話5 句
Like someone else is talking and it knows when to shut up.
像是有人正在講話,它就知道該閉嘴02:28And the implications are pretty brutal because at 800 milliseconds, things start to feel off, while at 1.5 seconds, your user would just hang up on you.
後果其實很殘酷:拖到 800 毫秒對話就開始感覺卡卡的,到了 1.5 秒使用者可能直接掛你電話02:44SmartTurn is BSD2 licensed, and it's an 8 megabyte small model.
SmartTurn 採用 BSD2 授權,是一個只有 8MB 的小模型11:22And the key insight to note here is that the STT and LLM together eat about two-thirds of these latency budget.
這裡的關鍵洞察是:STT 加上 LLM 兩者就吃掉了大約三分之二的延遲預算16:30So that's in a nutshell how turn detection works.
這就是 turn detection 運作的大致樣貌32:41
名詞與人物8 個
- 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%,但因為沒有釋出程式碼,這場也只是拿來對比、沒有多談。