OpenClaw 内置 TTS(文字转语音)功能,支持三大服务商,可将 AI 回复自动转为语音消息,在 Telegram 中显示为圆形语音气泡。
三大支持服务商
| 服务商 | 特点 | 是否需要 API Key |
|---|---|---|
| ElevenLabs | 音质最佳,支持多语言情感合成 | 需要 |
| OpenAI | 质量优秀,延迟低 | 需要 |
| Edge TTS | 免费,微软神经网络语音,零成本 | 不需要 |
如果没有配置任何 API Key,OpenClaw 自动使用 Edge TTS——完全免费,无需注册。
TTS 默认关闭
Auto-TTS 默认不开启。启用方式:
bash
# 当前会话永久开启
/tts always
# 或在配置文件中开启快速配置
最简配置(启用 + 指定提供商)
json
{
"messages": {
"tts": {
"auto": "always",
"provider": "elevenlabs"
}
}
}免费版(Edge TTS,无需 API Key)
json
{
"messages": {
"tts": {
"auto": "always",
"provider": "edge",
"edge": {
"enabled": true,
"voice": "zh-CN-XiaoxiaoNeural",
"lang": "zh-CN",
"outputFormat": "audio-24khz-48kbitrate-mono-mp3",
"rate": "+0%",
"pitch": "+0%"
}
}
}
}常用中文语音:
zh-CN-XiaoxiaoNeural(女声,温柔)zh-CN-YunxiNeural(男声,沉稳)zh-TW-HsiaoChenNeural(台湾普通话)
ElevenLabs(高质量多语言)
json
{
"messages": {
"tts": {
"auto": "always",
"provider": "elevenlabs",
"elevenlabs": {
"apiKey": "your_elevenlabs_api_key",
"voiceId": "voice_id",
"modelId": "eleven_multilingual_v2",
"voiceSettings": {
"stability": 0.5,
"similarityBoost": 0.75,
"style": 0.0,
"useSpeakerBoost": true,
"speed": 1.0
}
}
}
}
}OpenAI 主供 + ElevenLabs 备份
json
{
"messages": {
"tts": {
"auto": "always",
"provider": "openai",
"summaryModel": "openai/gpt-4.1-mini",
"openai": {
"apiKey": "your_openai_api_key",
"model": "gpt-4o-mini-tts",
"voice": "alloy"
},
"elevenlabs": {
"apiKey": "your_elevenlabs_api_key",
"voiceId": "voice_id"
}
}
}
}四种自动 TTS 模式
| 模式 | 触发条件 |
|---|---|
off | 禁用(默认) |
always | 所有回复都转语音 |
inbound | 仅当收到语音消息后才回语音 |
tagged | 仅当回复含 [[tts]] 标签时 |
bash
/tts always # 始终语音
/tts inbound # 语音对语音
/tts tagged # 按标签触发
/tts off # 关闭
/tts status # 查看当前状态斜杠命令完整参考
bash
/tts off
/tts always
/tts inbound
/tts tagged
/tts status
/tts provider openai # 切换提供商
/tts limit 2000 # 设置摘要阈值(字符数)
/tts summary off # 关闭长文自动摘要
/tts audio Hello from AI # 生成一次性语音(不影响设置)Discord 注意:
/tts是 Discord 内置命令,OpenClaw 在 Discord 使用/voice作为替代。
模型驱动的语音指令
AI 可以在回复中嵌入 TTS 指令,动态控制语音效果:
这是你要的内容。
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
[[tts:text]](笑声) 再读一遍吧。[[/tts:text]]
可用指令键:voiceId、model、stability、similarityBoost、style、speed、languageCode、seed
禁用模型控制(更严格的设置):
json
{
"messages": {
"tts": {
"modelOverrides": { "enabled": false }
}
}
}长文自动摘要
回复超过阈值(默认 1500 字符)时,OpenClaw 先用语言模型摘要,再转语音:
json
{
"messages": {
"tts": {
"summaryModel": "openai/gpt-4.1-mini"
}
}
}Telegram 输出格式
- Telegram:Opus 语音气泡(48kHz/64kbps)→ 显示为圆形语音泡
- 其他频道:MP3(44.1kHz/128kbps)
- Edge TTS:使用
edge.outputFormat配置(默认 MP3)
TTS 处理流程
收到回复 → TTS 开启?
否 → 发送文本
是 → 含媒体/MEDIA:/超短?
是 → 发送文本
否 → 超过字数限制?
否 → TTS → 附加音频
是 → 摘要开启?
否 → 发送文本
是 → 摘要 → TTS → 附加音频
原文:Text-to-Speech - OpenClaw | 来源:OpenClaw 官方文档