深夜跟語音助理吵架:Gemini Live API 怎麼做出「打斷她也沒關係」的語音 AI Agent

你對著音響說:「嘿 Mira,放一點 dream pop。」
音樂流出來,帶點朦朧感的合成器音色。你聽了幾秒,皺眉:「跳過這首。」
「已經幫你跳過了。」
你隨口問:「你覺得這首歌怎麼樣?」
「很溫柔。」
這是 Google Cloud Tech 官方頻道示範的語音 Agent,名字叫 Mira。她會聽、能被打斷,回應幾乎沒有延遲——像講電話,不像對著答錄機。
如果你自己做過語音應用,大概知道「像講電話」的手感有多難做。多數人第一次做出來的,其實是包了語音外皮的答錄機:問完整句話它才念答案,你想插嘴,它照樣把稿子念完。你以為是模型不夠聰明,其實是一開始就選錯了架構。
你的語音機器人可能一直都只會「念稿」,不會「聽」
多數語音 AI 走的是文字轉語音(TTS):你給文字,它吐出聲音,單向、一次性。它能講話,但聽不到你,甚至不知道你還在不在。
Gemini Live API 不一樣,它是「聲音對聲音」,雙向即時:把你的聲音當音訊直接聽進去,也直接用音訊回話。它聽得到的不只是字,還有語氣、停頓、情緒——這些東西打成文字就消失了。更關鍵的是,它會邊組織答案邊開口,不必等整段話想完才出聲。一句話:TTS 是「念」,Live 是「聽」,答案邊講邊生成。
打開一條不會掛斷的線,才談得上「對話」
架構分三塊:瀏覽器負責收音與播放;Gemini Live 是核心模型;中間的小後端跟 Gemini 維持一條持續開著的連線,把音訊原樣轉送。瀏覽器與後端之間走 WebSocket——普通網頁請求問一次就關掉,這條線卻一直開著,音訊才能雙向持續流動。
後端同時做兩件事:把麥克風音訊往上送、把 Gemini 的聲音往下接,兩件事互不等待、平行進行,這就是為什麼這通「電話」感覺一直活著。核心迴圈只有四步:打開連線、送出音訊、接收音訊、播放。走到這裡,你有了一個「能運作」的 Agent——但能運作,跟一場真正的對話,是兩回事。
光是能對話還不夠,她得先學會「聽出你說完了」
要讓它感覺像活的,還缺三件事。第一件:模型怎麼知道你講完了?答案是語音活動偵測(VAD)——模型一直在問自己:現在有人在講話,還是安靜?靠這個找到你這輪話的起點與終點,這也是為什麼即使你沉默,也要持續傳送音訊串流。好消息是,Gemini Live 內建了 VAD,不必自己從頭寫偵測邏輯。
真正讓你相信「這是活的」,是你打斷她那一瞬間
第二件事是能不能「插嘴」(barge-in)。對講機做不到,真正的對話可以——你講到一半直接蓋過去,對方就停下來。同一套 VAD 也偵測你有沒有在模型講話時開口,一旦偵測到,模型會自己停下並送出「被打斷」訊號。
真正讓插嘴感覺即時的,是一個容易被忽略的細節:應用程式應該在麥克風一聽到你開口,就先停掉本地正在播放的聲音,不必等訊號跑完整趟網路來回。先停播放,再讓模型追上來——這一步做對,打斷才像真人對話,而不是有延遲的機器人。
只會說話還不夠看,你得給她一雙手
第三件事是行動力。模型自己只能「說話」,播不了歌、切不了歌、按不了鈕。所以要給它工具(tools)——工具是程式裡的一個函式,有名字、有描述,代表模型能請你做的一個具體動作,例如播放歌單、跳過這首、暫停音樂。
模型判斷需要用到工具時,不會自己編答案交差,而是說「用這些參數呼叫這個工具」,接著你的程式執行、回報結果,模型再接著往下講——模型決定,程式碼動手。這裡有條對語音特別重要的規則:工具執行時模型會停在原地等,所以工具一定要跑得快,跑太久整段對話就會陷入沉默。
會跑起來,不代表你已經算清楚這通「電話」要花你多少
三件事湊齊:VAD 找到你話的邊界,barge-in 讓你能隨時插嘴,工具讓她能真的動手。整支 Agent 跑起來,體感確實像講電話。
但很少有教學提醒你:一支「打開了就一直開著」的雙向語音連線,跟一次問一次答的文字請求,本來就不是同一種用量邏輯。文字聊天安靜時什麼都不發生;為了隨時能被打斷而持續串流的連線,運作方式完全不同。這不是示範要解決的問題,卻是你把它搬進真正產品前,遲早要攤開來看的那張帳單——等使用者已經習慣「隨時能插嘴」才回頭算,通常比一開始就放進評估清單裡痛得多。
從「能對話」到「像講電話」
回到開頭那句「嘿 Mira,放一點 dream pop」。讓那一幕成立的,不是模型講得多聰明,而是你幾乎不會注意到的細節:她一直在聽、你插嘴真的會停、她能真的動手切歌。你自己動手搭語音 Agent 的那一刻起,要盯的不只是「它會不會講話」,還有它聽不聽得懂被打斷的瞬間,以及那條一直開著的線最後會變成什麼帳單。把這兩件事放進第一版設計,做出來的才不會只是一台會講話的答錄機。
常見問題(FAQ)
Q1:Gemini Live API 跟一般的文字轉語音(TTS)差在哪?
TTS 單向:給文字、出聲音,聽不到你也不知道你在不在。Gemini Live 雙向即時、聲音對聲音,能聽出語氣與停頓,且邊生成答案邊開口。
Q2:語音打斷(barge-in)怎麼做到?
靠語音活動偵測(VAD)同時判斷你這輪話講完了沒、以及有沒有在模型講話時插嘴。偵測到插嘴,模型自行停止並送出中斷訊號;應用程式端最好在麥克風聽到你開口就先停掉本地播放,插嘴才會即時。
Q3:VAD 需要自己寫嗎?
不用,Gemini Live 已內建語音活動偵測,不必自己打造判斷「有沒有人在講話」的機制。
Q4:Tool Calling 在語音 Agent 裡為什麼要「快」?
工具執行期間模型會停在原地等待,跑太久對話就會出現沉默。語音比文字聊天更在意即時反應,工具設計必須盡快回傳結果。
資料來源:本文改寫整理自 Google Cloud Tech 官方頻道影片《Build a real-time voice AI agent with Gemini Live API》(2026-08-26 發布,觀看數約 12.1 萬),原始連結:https://www.youtube.com/watch?v=pFc-HcUgFgY。Gemini Live API 產品能力描述以原影片示範為準,實際功能與資費請以 Google Cloud 官方文件為主,本文不構成技術實作保證。
自己動手打造語音 AI Agent 時,那支「打開了就一直開著」的連線,最後會變成什麼帳單,你想現在就看清楚,還是等帳單寄來才回頭查?免費試用 AI Token King →


留言