Talk 模式
Talk 是 OpenClaw 的语音交互功能,支持 macOS、iOS 和 Android 平台。通过 ElevenLabs 语音合成,AI 助手可以用自然人声回复。
配置
在 openclaw.json 中配置 Talk:
{
talk: {
voiceId: "EXAVITQu4vr4xnSDxMaL",
voiceAliases: {
"Clawd": "EXAVITQu4vr4xnSDxMaL",
"Roger": "CwhRBWXzGAHq8TQ4Fs17"
},
modelId: "eleven_v3",
outputFormat: "mp3_44100_128",
apiKey: "elevenlabs_api_key",
silenceTimeoutMs: 1500,
interruptOnSpeech: true
}
}
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
voiceId |
ElevenLabs 语音 ID | - |
voiceAliases |
语音别名映射,方便在对话中切换语音 | - |
modelId |
ElevenLabs 模型 | eleven_v3 |
outputFormat |
音频输出格式 | mp3_44100_128 |
apiKey |
ElevenLabs API Key(也可通过 ELEVENLABS_API_KEY 环境变量设置) |
- |
silenceTimeoutMs |
用户停止说话后等待多久开始处理 | Android/macOS: 700ms, iOS: 900ms |
interruptOnSpeech |
用户说话时是否中断 AI 的语音回复 | - |
环境变量
Talk 支持以下环境变量作为备用:
ELEVENLABS_API_KEY:ElevenLabs API 密钥ELEVENLABS_VOICE_ID:默认语音 IDSAG_VOICE_ID:备选语音 ID
配置文件中的值优先于环境变量。
语音切换
通过 voiceAliases 可以在对话中用别名切换语音,例如告诉 AI "用 Roger 的声音说"。
注意事项
- Talk 功能需要 ElevenLabs 账号和 API Key
- 语音合成会消耗 ElevenLabs 的字符额度
silenceTimeoutMs设置太短可能导致用户还没说完就开始处理