交谈模式
交谈模式是一个持续的语音对话循环:- 监听语音
- 将转录文本发送给模型(主会话,chat.send)
- 等待响应
- 通过 ElevenLabs 播放该响应(流式播放)
行为(macOS)
- 当交谈模式启用时,始终显示一个始终可见的叠加层。
- 在“聆听 → 思考 → 说话”之间进行阶段转换。
- 在出现短暂停顿(静音窗口)时,当前转录文本会被发送。
- 回复会写入 WebChat(与手动输入相同)。
- 语音打断功能(默认开启):如果助手正在讲话时用户开始说话,我们会立即停止播放,并记录打断时间戳,以便在下一次提示中使用。
回复中的语音指令
助手可以在回复前添加单行 JSON来控制语音:- 只允许第一行非空内容。
- 未知键将被忽略。
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)
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 用户界面
- 菜单栏切换按钮:交谈
- 配置选项tab:交谈模式组(语音 ID + 打断开关)
- 叠加层:
- 聆听:云图标随麦克风音量脉动
- 思考:下沉动画
- 说话:辐射状光圈
- 单击云图标:停止说话
- 单击 X:退出交谈模式
备注
- 需要语音和麦克风权限。
- 使用
chat.send对会话密钥main进行验证。 - TTS 使用 ElevenLabs 流式 API,并在 macOS/iOS/Android 上采用
ELEVENLABS_API_KEY和增量播放以降低延迟。 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 流式传输。