語音對話模式是一個連續的語音對話迴圈:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- 聆聽語音
- 將逐字稿傳送給模型(主工作階段,chat.send)
- 等待回覆
- 透過已設定的語音對話提供者(
talk.speak)朗讀回覆
行為 (macOS)
- 啟用語音對話模式時,會顯示常駐覆蓋層。
- 聆聽 → 思考 → 說話 階段轉換。
- 在出現短暫停頓(靜音時間窗)時,會送出目前的逐字稿。
- 回覆會寫入 WebChat(與打字相同)。
- 語音打斷(預設開啟):如果使用者在助理說話時開始說話,我們會停止播放,並為下一個提示記錄打斷時間戳。
回覆中的語音指令
助理可在回覆前加上一行 JSON,以控制語音:- 僅限第一個非空白行。
- 未知鍵會被忽略。
once: true僅套用於目前回覆。- 若沒有
once,該語音會成為語音對話模式的新預設值。 - JSON 行會在 TTS 播放前移除。
voice/voice_id/voiceIdmodel/model_id/modelIdspeed,rate(WPM),stability,similarity,style,speakerBoostseed,normalize,lang,output_format,latency_tieronce
設定 (~/.openclaw/openclaw.json)
interruptOnSpeech: truesilenceTimeoutMs: 未設定時,語音對話模式會在傳送逐字稿前使用平台預設的暫停時間窗(700 ms on macOS and Android, 900 ms on iOS)provider: 選取作用中的語音對話提供者。對於 macOS 本機播放路徑,請使用elevenlabs、mlx或system。providers.<provider>.voiceId: 若是 ElevenLabs,會回退至ELEVENLABS_VOICE_ID/SAG_VOICE_ID(或在 API 金鑰可用時使用第一個 ElevenLabs 語音)。providers.elevenlabs.modelId: 未設定時預設為eleven_v3。providers.mlx.modelId: 未設定時預設為mlx-community/Soprano-80M-bf16。providers.elevenlabs.apiKey: 會回退至ELEVENLABS_API_KEY(或 Gateway shell profile,如果可用)。speechLocale: 選用的 BCP 47 地區設定 ID,用於 iOS/macOS 裝置端語音對話語音辨識。保留未設定即可使用裝置預設值。outputFormat: 在 macOS/iOS 上預設為pcm_44100,在 Android 上預設為pcm_24000(設定mp3_*以強制使用 MP3 串流)
macOS 使用者介面
- 選單列切換項:語音對話
- 設定分頁:語音對話模式 群組(語音 ID + 打斷切換項)
- 覆蓋層:
- 聆聽:雲朵會隨麥克風音量脈動
- 思考:下沉動畫
- 說話:向外放射的環
- 點按雲朵:停止說話
- 點按 X:離開語音對話模式
Android 使用者介面
- 語音分頁切換項:語音對話
- 手動麥克風與語音對話是互斥的執行期擷取模式。
- 手動麥克風會在應用程式離開前景或使用者離開語音分頁時停止。
- 語音對話模式會持續執行,直到被切換關閉或 Android Node 中斷連線;啟用期間會使用 Android 的麥克風前景服務類型。
注意事項
- 需要語音辨識與麥克風權限。
- 針對工作階段鍵
main使用chat.send。 - Gateway 會透過
talk.speak使用作用中的語音對話提供者處理語音對話播放。只有在該 RPC 不可用時,Android 才會回退到本機系統 TTS。 - macOS 本機 MLX 播放會在存在時使用隨附的
openclaw-mlx-tts輔助程式,否則使用PATH上的可執行檔。開發期間,設定OPENCLAW_MLX_TTS_BIN指向自訂輔助程式二進位檔。 stability對於eleven_v3會驗證為0.0、0.5或1.0;其他模型接受0..1。latency_tier設定時會驗證為0..4。- Android 支援
pcm_16000、pcm_22050、pcm_24000和pcm_44100輸出格式,用於低延遲 AudioTrack 串流。