对话模式
对话模式是一个连续的语音对话循环:
- 监听语音
- 将转录发送给模型(主会话,chat.send)
- 等待响应
- 通过ElevenLabs播放(流式播放)
行为 (macOS)
- 启用对话模式时,始终显示叠加层。
- 监听 → 思考 → 发言阶段转换。
- 在短暂暂停(静音窗口)时,发送当前转录。
- 回复会写入WebChat(与输入相同)。
- 语音中断(默认开启):如果用户在助手发言时开始说话,我们将停止播放并记录中断时间戳以供下次提示使用。
回复中的语音指令
助手可能会在其回复前加上单行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)
{
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,结合
ELEVENLABS_API_KEY并在macOS/iOS/Android上进行增量播放以降低延迟。 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流式传输。