Talk Mode
Talk mode 是一个连续的语音对话循环:
- 监听语音输入
- 将语音转文字后发送给模型(main session,chat.send)
- 等待响应
- 通过 ElevenLabs 播放语音(Streaming 播放)
行为特性(macOS)
- 常驻悬浮窗:Talk mode 启用时会一直显示
- 监听 → 思考 → 说话:三个阶段的转换
- 短暂停顿:检测到静音窗口时,当前的语音转录会被发送
- 回复写入 WebChat:和打字输入一样
- 语音中断(默认开启):如果你在助手说话时开始讲话,会停止播放并记录中断时间戳,用于下一个 Prompt
回复中的语音指令
助手可以在回复开头加一行 JSON 指令来控制语音:
{ "voice": "<voice-id>", "once": true }
规则:
- 只能在第一个非空行
- 未知的键会被忽略
once: true只对当前回复生效- 不加
once时,语音会成为 Talk mode 的新默认值 - 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",
interruptOnSpeech: true,
},
}
默认值:
interruptOnSpeech:truevoiceId:回退到ELEVENLABS_VOICE_ID/SAG_VOICE_ID(或在 API key 可用时使用第一个 ElevenLabs 语音)modelId:未设置时默认为eleven_v3apiKey:回退到ELEVENLABS_API_KEY(或 Gateway shell profile 中的配置)outputFormat:macOS/iOS 上默认为pcm_44100,Android 上默认为pcm_24000(设置mp3_*可强制使用 MP3 Streaming)
macOS 界面
- 菜单栏切换:Talk
- 配置标签页:Talk Mode 组(语音 ID + 中断开关)
- 悬浮窗:
- 监听中:云朵随麦克风音量脉动
- 思考中:下沉动画
- 说话中:辐射波纹
- 点击云朵:停止说话
- 点击 X:退出 Talk mode
注意事项
- 需要语音和麦克风权限
- 使用
chat.send对 session keymain发送消息 - TTS 使用 ElevenLabs Streaming 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 Streaming