對話模式
對話模式是一個連續的語音對話迴圈:
- 聆聽語音
- 將轉錄文字傳送給模型(主工作階段,chat.send)
- 等待回應
- 透過 ElevenLabs 朗讀回應(串流播放)
行為(macOS)
- 對話模式啟用期間顯示常駐覆蓋層。
- 聆聽 → 思考 → 朗讀的階段轉換。
- 短暫停頓(靜默窗口)後,自動傳送當前轉錄文字。
- 回覆會寫入 WebChat(與打字相同)。
- 語音打斷(預設開啟):使用者在助理朗讀時開口說話,會停止播放並在下次提示中記錄打斷的時間戳記。
回覆中的語音指令
助理可以在回覆開頭加上一行 JSON 來控制語音:
{ "voice": "<voice-id>", "once": true }
規則:
- 僅限第一行非空行。
- 不認識的鍵值會被忽略。
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)
{
talk: {
voiceId: "elevenlabs_voice_id",
modelId: "eleven_v3",
outputFormat: "mp3_44100_128",
apiKey: "elevenlabs_api_key",
silenceTimeoutMs: 1500,
interruptOnSpeech: true,
},
}
預設值:
interruptOnSpeech:truesilenceTimeoutMs:未設定時,對話模式使用平台預設的停頓窗口(macOS 和 Android 為700 ms,iOS 為900 ms)voiceId:退回至ELEVENLABS_VOICE_ID/SAG_VOICE_ID(或 API 金鑰可用時的第一個 ElevenLabs 語音)modelId:未設定時預設為eleven_v3apiKey:退回至ELEVENLABS_API_KEY(或可用的 gateway shell profile)outputFormat:macOS/iOS 預設為pcm_44100,Android 預設為pcm_24000(設定mp3_*可強制使用 MP3 串流)
macOS UI
- 選單列切換:Talk
- 設定頁:Talk Mode 區塊(語音 id + 打斷開關)
- 覆蓋層:
- 聆聽:雲朵隨麥克風音量脈動
- 思考:下沉動畫
- 朗讀:擴散光圈
- 點擊雲朵:停止朗讀
- 點擊 X:退出對話模式
注意事項
- 需要語音辨識與麥克風權限。
- 使用
chat.send對工作階段金鑰main操作。 - TTS 使用 ElevenLabs 串流 API 搭配
ELEVENLABS_API_KEY,在 macOS/iOS/Android 上以增量播放降低延遲。 eleven_v3的stability值限定為0.0、0.5或1.0;其他模型接受0..1。- 設定時,
latency_tier值限定為0..4。 - Android 支援
pcm_16000、pcm_22050、pcm_24000和pcm_44100輸出格式,用於低延遲的 AudioTrack 串流。