对话模式
对话模式是一个连续的语音对话循环:
- 监听语音
- 将转录文本发送到模型(主会话,chat.send)
- 等待响应
- 通过 ElevenLabs 播放语音(流式播放)
行为(macOS)
- 启用对话模式时显示常驻悬浮窗。
- 监听 → 思考 → 说话的阶段转换。
- 在短暂停顿(静默窗口)时,发送当前转录文本。
- 回复写入 WebChat(与键入相同)。
- 语音中断(默认开启):如果用户在助手说话时开始讲话,我们会停止播放并记录中断时间戳用于下一个提示。
回复中的语音指令
助手可以在其回复前加上单行 JSON 来控制语音:
json
{ "voice": "<voice-id>", "once": true }规则:
- 仅限第一个非空行。
- 未知键会被忽略。
once: true仅适用于当前回复。- 没有
once时,该语音将成为对话模式的新默认设置。 - 在 TTS 播放前会移除 JSON 行。
支持的键:
voice/voice_id/voiceIdmodel/model_id/modelIdspeed,rate(WPM),stability,similarity,style,speakerBoostseed,normalize,lang,output_format,latency_tieronce
配置(~/.openclaw/openclaw.json)
json5
{
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 密钥可用时使用第一个 ElevenLabs 语音)modelId: 未设置时默认为eleven_v3apiKey: 回退到ELEVENLABS_API_KEY(或网关 shell 配置文件,如果可用)outputFormat: 在 macOS/iOS 上默认为pcm_44100,在 Android 上默认为pcm_24000(设置mp3_*以强制使用 MP3 流式传输)
macOS 用户界面
- 菜单栏切换:对话
- 配置标签:对话模式组(语音 ID + 中断切换)
- 悬浮窗:
- 监听中:云图标随麦克风音量脉动
- 思考中:下沉动画
- 说话中:辐射波纹
- 点击云图标:停止说话
- 点击 X:退出对话模式
注意事项
- 需要语音 + 麦克风权限。
- 使用
chat.send针对会话键main。 - TTS 使用 ElevenLabs 流式 API,在 macOS/iOS/Android 上使用
ELEVENLABS_API_KEY和增量播放以降低延迟。 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 流式传输。