OpenClaw Realtime Voice Conversation 實測:用 WebUI 和本地 AI Agent 即時語音對談
在前一篇文章,【用 Tailscale 從外部安全連回本地 OpenClaw WebUI:手機也能像 App 一樣使用】,我們討論的場景是:當我們本人不在本機電腦旁邊,能不能用手機或另一台電腦,安全打開自己本機的 OpenClaw WebUI?
實測答案是可以。只要本地 OpenClaw Gateway 已經正常啟動,再透過 Tailscale 和 Tailscale Serve 把 WebUI 分享到自己的私人 tailnet 裡,外部裝置就能用瀏覽器打開完整的 OpenClaw WebUI。
這篇文章要往前再推一步。
既然手機或外部電腦已經可以打開 OpenClaw WebUI,那能不能直接用說話的方式和 OpenClaw 互動?
也就是:不用只靠打字、不用只靠 Telegram bot、不用遠端桌面模擬滑鼠鍵盤,而是在 WebUI 裡按下 Start Talk,直接開啟 OpenClaw 的 Realtime Voice Conversation,讓本地 AI agent 變成一個可以即時語音對談的工作助理。
我這次主要用 iPhone 手機透過 Tailscale 連回本地 OpenClaw WebUI 來實測示範。不過這個功能本質上並不侷限於手機。只要裝置能打開 OpenClaw WebUI,而且瀏覽器能取得麥克風權限,無論是本機電腦、外部筆電、平板,或手機,都可以用同樣概念操作。
先講結論
OpenClaw 的 Realtime Voice Conversation 主要適合從 WebUI / Control UI 使用。
基本使用流程大概是這樣:
- 打開 OpenClaw WebUI。
- 進入一個既有 session,或建立新的 session。
- 展開語音設定區。
- 選擇 Voice、Model、Sensitivity 等設定,或先維持 Auto / Default。
- 點擊左下方的 Start Talk。
- 允許瀏覽器使用麥克風。
- 直接開始說話。
如果是外部裝置,無論是手機或電腦,只要先用 Tailscale 連回本地 OpenClaw WebUI,後面的操作方式和在本機電腦上使用差不多。
這也是我覺得這個功能有意思的地方:OpenClaw 不再只是桌機上的文字操作介面。只要網路與權限設定正確,手機也可以變成本地 AI agent 的語音入口。
這裡還有一個很值得注意的地方:目前 OpenClaw WebUI Talk 可以串接 OpenAI 在 2026 年 5 月 7 日公布的最新一代即時語音模型 GPT-Realtime-2。
依照 OpenAI 官方文章 Advancing voice intelligence with new models in the API,GPT-Realtime-2 是具備 GPT-5 等級推理能力的語音模型,設計目標就是處理 live voice interaction。它可以在對話中推理、呼叫工具、處理修正或打斷,並用比較符合當下情境的方式回應。
這個模型目前定位在 OpenAI API 端的新一代 realtime voice model,一般 ChatGPT 網頁版未必能直接選到。OpenClaw 已經把它接進 WebUI Talk 裡,某種程度上算是相當佛心的整合。
以我的實測感受來說,回應速度快、延遲低,講到一半也可以隨時打斷插話,整體使用感比傳統「錄音檔送出後等回覆」更接近真人對話。搭配 OpenClaw 的 OpenAI / Codex OAuth 使用路徑時,體感上也更像一個可以長時間使用的訂閱式即時語音入口;實際可用量仍會依帳號、服務端與當時政策而定。
Realtime Voice Conversation 和 Telegram 語音訊息不太一樣
在正式介紹 WebUI 操作前,先釐清一件事。
OpenClaw 可以支援多種「語音」相關功能,但這些功能背後走的路徑不同。
| 模式 | 互動方式 | 技術路徑 | 適合情境 |
|---|---|---|---|
| WebUI Realtime Talk | 開啟語音 session,直接說話互動 | talk.realtime / browser Talk session |
連續追問、語音工作台、即時互動 |
| Telegram voice note | 傳一段語音訊息,再等待回覆 | audio transcription + messages.tts |
非同步語音訊息、通訊軟體互動 |
Telegram 的語音訊息比較像「錄一段音檔送出去」。OpenClaw 收到後可以轉錄、理解,再用文字或語音訊息回覆。
WebUI Realtime Voice Conversation 則是另一種使用感。它會建立即時語音 session,讓你用比較接近連續對話的方式,把問題、補充、修正、追問直接講出來。
這篇文章會先聚焦在 WebUI 的 Realtime Talk 即時語音互動模式。而 Telegram 語音訊息的部分,未來若讀者有興趣,我們再另外來介紹,避免各位把 talk.realtime 和 messages.tts 兩者混在一起。
使用前提:要先能打開 OpenClaw WebUI
要使用 Realtime Voice Conversation,最基本的前提是 WebUI 已經可以正常使用。
如果是在本機電腦上測試,通常就是打開本機 OpenClaw WebUI。
如果是在外部電腦或行動裝置上使用,可以沿用前一篇文章的方式:透過 Tailscale 和 Tailscale Serve,開啟類似下面這種 HTTPS URL:
https://<device-name>.<tailnet-name>.ts.net/實際部署時,請讀者們替換成自己環境中的實際使用網址。
另外,瀏覽器必須允許麥克風權限。以 iPhone 手機為例,第一次按下 Start Talk 時,Safari 會詢問是否允許這個網站使用麥克風。若沒有授權,Realtime Voice Conversation 就無法正常收音。
遠端連線安全性的細節,前一篇 Tailscale 文章已經說明過。這篇只簡單提醒:語音功能需要麥克風與 realtime provider session,建議在自己信任的 WebUI 連線環境中使用。
Realtime Voice 的設定放在哪裡?
OpenClaw 官方 Talk Mode 文件 將 Talk 分成幾種形態。這篇重點放在 Browser / Control UI 的 realtime Talk,也就是 WebUI 這條路徑。
這一類設定主要放在組態設定檔 openclaw.json 的 talk.realtime 區塊;messages.tts 則是另一條語音輸出路徑。
可以先把兩者簡單分開:
talk.realtime:WebUI / browser realtime voice conversation 使用。messages.tts:文字轉語音、Telegram 語音回覆等非同步語音輸出使用。
如果當初是走 OpenAI 或 Google 的模型來源, WebUI 介面裡 Talk Mode 設定維持 Auto / Default 一般可以直接使用。
若希望固定 provider、model、voice,避免 Auto 選到非預期設定,則可以用下面這種設定。
A. 如果你主要使用 OpenAI Realtime,可固定 provider = openai、model = gpt-realtime-2,並選擇 marin 或 cedar 這類官方較推薦的聲線:
{
"talk": {
"realtime": {
"provider": "openai",
"mode": "realtime",
"transport": "webrtc",
"brain": "agent-consult",
"model": "gpt-realtime-2",
"voice": "marin",
"providers": {
"openai": {
"model": "gpt-realtime-2",
"voice": "marin",
"vadThreshold": 0.5,
"silenceDurationMs": 500,
"prefixPaddingMs": 300
}
}
}
}
}B. 如果你主要使用 Google / Gemini Live,OpenClaw 官方 Google provider 文件裡,Realtime voice 的主要模型是 gemini-2.5-flash-native-audio-preview-12-2025,預設 voice 是 Kore。Google 這條路徑使用 Gemini Live API,也支援雙向音訊與 function calling。
以官方 Voice Call realtime config 來看,設定會像這樣:
{
"plugins": {
"entries": {
"voice-call": {
"enabled": true,
"config": {
"realtime": {
"enabled": true,
"provider": "google",
"providers": {
"google": {
"model": "gemini-2.5-flash-native-audio-preview-12-2025",
"voice": "Kore",
"activityHandling": "start-of-activity-interrupts",
"turnCoverage": "only-activity"
}
}
}
}
}
}
}
}WebUI / Control UI Talk 也支援 Google Live browser session。OpenClaw 會透過 Gateway 產生受限的一次性 token,讓瀏覽器連到 Google Live browser endpoint。實際使用時,可以在 WebUI 的 Provider 選 Google,或在設定裡固定 Google realtime provider。Google 端的授權通常會使用 GEMINI_API_KEY、GOOGLE_API_KEY,或設定檔裡的 Google API key。
上面兩段都是示意結構,實際檔案位置與設定方式會依照每個人的 OpenClaw 安裝方式不同而略為調整。正式修改前,建議先備份設定檔。
幾個欄位可以這樣理解:
provider:即時語音 provider,例如 OpenAI 或 Google。model:即時語音模型,例如 OpenAI 的gpt-realtime-2,或 Google Live 的gemini-2.5-flash-native-audio-preview-12-2025。voice:語音聲線,例如 OpenAI 的marin、cedar,或 Google 的Kore。transport:WebUI 常見為webrtc。brain:是否讓 realtime session 背後可以請 OpenClaw agent 介入處理。vadThreshold:聲音活動偵測門檻。silenceDurationMs:停頓多久後視為一句話結束。prefixPaddingMs:保留語音開頭的緩衝,避免句首被切掉。
依照 OpenClaw 官方 OpenAI provider 文件,gpt-realtime-2 可用的 built-in realtime voices 的聲線包含 alloy、ash、ballad、coral、echo、sage、shimmer、verse、marin、cedar。官方也提到 marin 和 cedar 是 Realtime 品質較佳的建議聲線。
授權與額度也要分清楚。
同一組 OpenAI realtime 設定結構,可以搭配 OpenAI API key,也可以搭配 OpenClaw 中已可用的 openai-codex OAuth profile 來產生 browser realtime session 需要的臨時 client secret。若環境中有 OPENAI_API_KEY,通常會走 API key;若沒有 API key,但 OpenClaw 可使用 openai-codex OAuth,Gateway 也可能透過 OAuth profile 產生 ephemeral client secret。
實務上可以這樣想:
- 設定結構:看
talk.realtime。 - 語音 provider:看
talk.realtime.provider。 - 語音模型與聲線:看
model、voice。 - 額度與授權:看 provider 實際使用的 auth 路徑。
- Agent 背後要不要幫你查資料、用工具、接續 session:看
brain與 OpenClaw agent 設定。
修改設定後,建議重啟 Gateway,並用 openclaw config validate 或 WebUI 實測確認設定是否生效。
WebUI 即時語音介面怎麼看?
目前 OpenClaw WebUI 的語音操作區,大致可以分成幾個部分。
第一個是左下方的 Start Talk 按鈕。這是開啟 realtime voice session 的入口。旁邊的設定按鈕可以展開更多語音相關選項。
第二個是 Voice。這裡可以選擇聲線。如果維持 Default,就依照目前設定或 provider 預設值處理;如果想固定聲音,可以選擇像 marin 或 cedar 這類聲線。這兩個也是 OpenAI 官方較推薦的 Realtime voice。
第三個是 Model。如果維持 Auto,OpenClaw 會依照目前可用設定選擇預設 realtime model。若已在 talk.realtime 固定 gpt-realtime-2,WebUI 使用時就比較不容易出現「到底現在走哪個模型」的疑問。
第四個是 Sensitivity。這個選項影響收音敏感度。環境安靜時,可以先用 Default;如果背景聲音容易觸發,就可以改低一點;如果發現自己講話不容易被偵測到,再往 Medium 或 High 調整。
展開 Advanced 後,還會看到 Provider、Transport、Reasoning、Exact VAD、Pause before send、Lead-in 等欄位。
這些設定可以先不用急著全部調整。第一次測試時,我會建議保持簡單:
- Voice:Default 或 marin / cedar
- Model:Auto
- Sensitivity:Default
- Provider:Auto 或 OpenAI
- Transport:Auto
- Pause before send:先用預設值
- Lead-in:先用預設值
確認能正常聽、正常回覆後,再依照實際環境慢慢調整。
用 iPhone 手機連回 WebUI 實測
這次我比較有感的使用方式,是用 iPhone 手機透過 Tailscale 連回本地 OpenClaw WebUI。
整體流程如下:
- 在 iPhone 手機開啟 Tailscale,確認 VPN 已連線。
- 用 Safari 打開 OpenClaw WebUI 的 Tailscale HTTPS URL。
- 進入既有 session,或建立新的 session。
- 展開語音設定。
- 先維持
Voice = Default、Model = Auto、Sensitivity = Default。 - 點擊
Start Talk。 - Safari 跳出麥克風權限時,允許使用麥克風。
- 用短句測試 OpenClaw 是否聽得到。
我會建議第一次測試時,不要一開始就丟很長的問題。可以先用一句簡單測試:
請用一句話告訴我,你現在是否聽得到我的聲音。確認能收音、能回覆後,再開始測比較實際的情境。
例如:
我現在想整理一篇文章的大綱,請先聽我講完,不要急著回答。等我說「開始整理」時,再幫我分成三個段落。或是:
請根據目前這個 session 的上下文,幫我整理接下來三個最值得處理的工作。如果你已經把 OpenClaw WebUI 加到 iPhone 手機主畫面,使用起來會更接近一個自用 App。實際上它仍然是 WebUI,但從操作感來看,就像多了一個可以從手機叫出的本地 AI agent 語音入口。
為什麼不直接用 ChatGPT、Copilot、Gemini 的語音功能?
現在很多 AI 平台都有語音功能。ChatGPT、Copilot、Gemini 這些網頁或 App 版本,本身也可以用語音問答。
那 OpenClaw Realtime Voice Conversation 的差異在哪裡?
我覺得關鍵在「它連著你的本地工作環境」。
一般網頁版 AI 工具很適合問知識、整理想法、寫文字、討論概念。但它通常不會自然連到你本機的專案資料夾、工作檔案、腳本、設定檔、長期 workflow,也不會直接幫你操作本地環境中的資料。
OpenClaw 的定位更接近一個跑在自己電腦旁邊的 AI agent。它可以接上本地資料、本地工具、既有 session、個人偏好與工作流程。當你用語音和它互動時,這個語音入口的意義就變大了。
你問的可能不只是:
請解釋這個概念。更可能是:
請根據我目前這個資料夾裡的筆記,幫我整理下一篇文章大綱。或是:
幫我看一下目前這個設定是不是和上次部署時一致。也可能是:
請接續這個 session,幫我把剛剛口述的想法整理成可發布的段落。這種差異,有點像鋼鐵人裡的 Jarvis。
一般網頁版 AI 像是一個很聰明的線上顧問;OpenClaw WebUI 的 realtime voice conversation 則比較像接在自己工作環境裡的私人助理。它知道更多你的上下文,也能在授權範圍內處理更貼近本地工作的任務。
當然,這也代表責任更高。能接觸本地資料、能呼叫工具、能操作工作環境,就更需要清楚知道自己允許它做什麼。語音操作很方便,但真正涉及檔案修改、程式執行、設定變更時,我還是會保留明確確認步驟。
適合的使用情境
以目前實測來看,我覺得 OpenClaw Realtime Voice Conversation 適合這幾種情境。
第一種是快速口述想法。
很多時候,想法不是在坐到電腦前才出現。走路、通勤、離開書桌時,反而更容易想到文章架構、工作安排、問題解法。這時如果手機可以連回 OpenClaw WebUI,就能直接用說話方式把想法丟進既有 session。
第二種是整理本地資料。
如果 OpenClaw 已經能存取你的本地資料夾、筆記或專案檔案,語音就可以變成更自然的指令入口。例如請它根據某個資料夾中的筆記,整理成摘要、大綱或待辦。
第三種是接續既有工作流程。
以部落格寫作為例,我可以先用語音說明這篇文章想怎麼寫,再請 OpenClaw 依照既有 workflow 產出大綱、初稿、SEO 標題、發布後清單。這種操作比起每次重新打字描述,節奏會更接近和助理討論。
第四種是狀態確認與下一步規劃。
例如:
請根據目前 session,告訴我下一步應該先處理哪三件事。或是:
請先不要改檔案,只幫我檢查目前設定可能有哪些風險。語音很適合拿來做這種「先討論、再決定是否執行」的互動。
實用的語音提示詞
語音對話和文字 prompt 有一點不同。
用打字時,我們通常會一次寫得比較完整。用說話時,句子比較自然,也更容易邊想邊補充。因此,我會建議在語音對話一開始先講清楚互動規則。
例如:
我先口述一段想法,請你先記住,不要急著回答。等我說「整理」時,再幫我整理成條列大綱。或是:
接下來請先用簡短回答。如果需要查檔案或工具狀態,先告訴我要查什麼,不要直接改檔。也可以這樣說:
請把我剛剛這段口述整理成文章段落,語氣維持自然,不要寫得太像正式文件。如果你要讓 OpenClaw 接續本地工作,最好把「可不可以操作檔案」講清楚。
例如:
目前先只做分析,不要修改任何檔案。或是:
如果需要修改檔案,先列出你要改哪些檔案,等我確認後再做。語音入口越方便,越要保留清楚的控制邊界。這一點對本地 AI agent 特別重要。
常見問題與注意事項
如果按下 Start Talk 後沒有反應,我會先檢查幾件事:
- Tailscale 是否已連線。
- OpenClaw WebUI 是否能正常打開。
- Gateway 是否正在運行。
- 瀏覽器是否允許麥克風權限。
Provider、Model是否選到可用組合。- provider auth 是否有效。
- 手機網路是否穩定。
如果有收音,但回覆不穩定,可以先降低問題複雜度,用短句測試。
如果背景噪音太多,可以調整 Sensitivity,或換到較安靜的環境。
如果想固定語音聲線,可以在 WebUI 選擇 voice,也可以在 talk.realtime 裡固定 voice。OpenAI Realtime voice 通常在 session 建立後就不適合中途更換;如果想換聲音,重新開一個 Talk session 會比較單純。
小結
前一篇 Tailscale 文章讓 OpenClaw WebUI 從「只能在本機前使用」變成「自己的裝置都能安全打開」。
這篇的 Realtime Voice Conversation,則讓 OpenClaw 再往前走一步:只要能打開 WebUI,就可以用聲音和本地 AI agent 互動。
本機電腦可以用,外部電腦可以用,手機也可以用。手機透過 Tailscale 連回本地 WebUI,這是其中一個很方便的使用情境。
對我來說,這個功能最有價值的地方,不只是「AI 可以用語音回答」。真正的重點是:語音入口接上的,是自己的本地 OpenClaw 工作環境。
當一個 AI agent 能理解我的資料、接續我的 workflow、在授權範圍內處理本機任務,再加上即時語音互動,它就開始更接近一個日常可以呼叫的個人助理。
如果說前一篇 Tailscale 是把 OpenClaw 帶出本機螢幕,那這篇的 realtime voice conversation,就是讓這個本地 AI agent 開始有了更自然的對話入口。
留言
張貼留言