Talk Mode(Talk 模式)
Talk 模式是一个连续的语音对话循环:
- 监听语音
- 将转录发送到模型(main 会话,chat.send)
- 等待响应
- 通过 ElevenLabs 朗读(流式播放)
行为(macOS)
- 启用 Talk 模式时始终显示覆盖层。
- Listening(监听)→ Thinking(思考)→ Speaking(讲话) 阶段转换。
- 在短暂暂停(静音窗口)时,发送当前转录。
- 回复写入 WebChat(与打字相同)。
- Interrupt on speech(语音中断)(默认开启):如果用户在助手讲话时开始说话,我们停止播放并记录中断时间戳用于下一个提示。
回复中的语音指令
助手可能在其回复前加上一个单个 JSON 行来控制语音:
{"voice":"<voice-id>","once":true}
规则:
- 仅第一个非空行。
- 未知键被忽略。
- once: true 仅应用于当前回复。
- 没有 once,语音成为 Talk 模式的新默认值。
- JSON 行在 TTS 播放之前被剥离。
支持的键:
- voice / voice_id / voiceId
- model / model_id / modelId
- speed、rate(WPM)、stability、similarity、style、speakerBoost
- seed、normalize、lang、output_format、latency_tier
- once
配置(~/.openclaw/openclaw.json)
{
"talk": {
"voiceId": "elevenlabs_voice_id",
"modelId": "eleven_v3",
"outputFormat": "mp3_44100_128",
"apiKey": "elevenlabs_api_key",
"interruptOnSpeech": true
}
}
默认值:
- interruptOnSpeech:true
- voiceId:回退到 ELEVENLABS_VOICE_ID / SAG_VOICE_ID(或在 API 密钥可用时回退到第一个 ElevenLabs 语音)
- modelId:未设置时默认为 eleven_v3
- apiKey:回退到 ELEVENLABS_API_KEY(或 Gateway shell 配置文件,如果可用)
- outputFormat:在 macOS/iOS 上默认为 pcm_44100,在 Android 上默认为 pcm_24000(设置 mp3_* 强制使用 MP3 流式传输)
macOS UI
- 菜单栏切换:Talk
- 配置选项卡:Talk Mode 组(语音 ID + 中断切换)
- 覆盖层:
- Listening(监听):云随麦克风电平脉动
- Thinking(思考):下沉动画
- Speaking(讲话):辐射环
- 点击云:停止讲话
- 点击 X:退出 Talk 模式
注意事项
- 需要 Speech + Microphone 权限。
- 对会话键 main 使用 chat.send。
- 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 流式传输。