概述
OpenClaw 的 Talk 模式提供了一个持续的语音交互循环,让你可以像与真人对话一样与 AI 助手交流。整个流程包括监听、转录、模型推理和语音合成四个阶段。
语音循环流程
Talk 模式的核心是一个持续运行的语音循环:
┌─────────┐ ┌──────────┐ ┌─────────┐ ┌─────────┐
│ 监听 │ → │ 转录 │ → │ 模型推理 │ → │ TTS 合成 │
│ Listening│ │Transcribing│ │ Thinking │ │ Speaking │
└─────────┘ └──────────┘ └─────────┘ └─────────┘
↑ │
└──────────────────────────────────────────────┘
每个阶段的状态会在 macOS 浮动窗口中实时显示。
基础配置
启用 Talk 模式需要配置 TTS 提供商,OpenClaw 默认集成 ElevenLabs:
// ~/.openclaw/openclaw.json
{
"talk": {
"enabled": true,
"tts": {
"provider": "elevenlabs",
"apiKey": "${ELEVENLABS_API_KEY}",
"model": "eleven_v3", // 默认模型
"voiceId": "EXAVITQu4vr4xnSDxMaL" // 默认语音 ID
}
}
}
四个交互阶段
1. 监听阶段(Listening)
系统通过麦克风持续采集音频输入。浮动窗口显示声波动画,表示正在监听。
2. 转录阶段(Transcribing)
采集到的音频发送给语音识别服务进行文字转录。
3. 推理阶段(Thinking)
转录后的文本作为用户输入发送给 AI 模型处理。
4. 语音合成阶段(Speaking)
模型回复通过 ElevenLabs TTS 转换为语音并播放。
语音参数控制
OpenClaw 支持通过 JSON 响应头动态控制语音参数:
{
"talk": {
"tts": {
"provider": "elevenlabs",
"model": "eleven_v3",
"voiceId": "EXAVITQu4vr4xnSDxMaL",
"speed": 1.0, // 语速,0.5-2.0
"stability": 0.5 // 语音稳定性,0-1
}
}
}
参数说明
| 参数 | 范围 | 说明 |
|---|---|---|
voice-id |
ElevenLabs 语音 ID | 选择不同的声音角色 |
model |
模型名称 | 默认 eleven_v3 |
speed |
0.5 - 2.0 | 语速调节,1.0 为正常速度 |
stability |
0 - 1 | 值越高语音越稳定,越低则更有表现力 |
语音中断支持
Talk 模式支持语音中断功能——当 AI 正在朗读回复时,用户可以随时开口说话打断:
{
"talk": {
"interruption": {
"enabled": true,
"sensitivity": 0.6 // 中断灵敏度,0-1
}
}
}
中断后,AI 会停止当前朗读,立即进入监听状态处理新的语音输入。
macOS 浮动窗口
在 macOS 上,Talk 模式提供一个浮动窗口界面:
- 菜单栏图标:快速开关 Talk 模式
- 状态指示:实时显示当前阶段(监听/转录/推理/朗读)
- 菜单栏切换:通过 Toggle 按钮控制各项功能
{
"talk": {
"ui": {
"floatingWindow": true,
"showTranscript": true, // 显示转录文字
"showModelResponse": true // 显示模型回复文字
}
}
}
ElevenLabs 语音选择
ElevenLabs 提供多种预设语音,以下是几个适合中文场景的推荐:
// 切换语音只需更改 voiceId
{
"talk": {
"tts": {
"voiceId": "选择适合你的语音ID"
}
}
}
可以在 ElevenLabs 官网的 Voice Library 中试听和获取语音 ID。
性能优化建议
- 选择合适的 TTS 模型:
eleven_v3是默认推荐,平衡了质量和延迟 - 调整语速:中文场景建议
speed设置在 0.9-1.1 之间 - 网络优化:TTS 服务对延迟敏感,确保网络连接稳定
- 麦克风质量:使用外置麦克风可以显著提升语音识别准确率
故障排查
语音识别不准确?
- 检查麦克风是否正确配置且无杂音
- 确保环境噪音较低
TTS 播放卡顿?
- 检查 ElevenLabs API 配额是否充足
- 尝试降低
stability值减少生成延迟
浮动窗口未显示?
- 确认系统为 macOS 平台
- 检查应用是否有悬浮窗口权限