基于 火山引擎音色克隆 (ICL) 的 AstrBot 文本转语音插件,使用自定义克隆音色让你的聊天机器人开口"说话"。
appid — 应用 AppIDaccess_token — API 访问令牌 (Access Key)voice_type — 克隆音色 ID (Speaker ID)





安装后在 AstrBot 管理面板的 插件配置 中找到 克隆语音,填写以下参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enable_tts |
bool |
true |
全局 TTS 开关,关闭后不进行任何语音合成 |
appid |
string |
"" |
火山引擎应用 AppID (必填) |
access_token |
string |
"" |
火山引擎 Access Token (必填) |
voice_type |
string |
"" |
克隆音色 ID(Speaker ID)(必填) |
speed_ratio |
int |
0 |
语速,范围 -50 ~ 100(0=正常,100=2 倍,-50=0.5 倍) |
loudness_rate |
int |
0 |
音量,范围 -50 ~ 100(0=正常,100=2 倍,-50=0.5 倍) |
sample_rate |
int |
24000 |
采样率,可选:8000/16000/22050/24000/32000/44100/48000 |
tts_probability |
int |
80 |
被动模式触发概率(0~100,超范围会自动截断) |
max_length |
int |
50 |
文本长度上限(被动模式始终生效;工具模式由 enable_tts_tool_minmax 控制) |
min_length |
int |
5 |
文本长度下限(被动模式始终生效;工具模式由 enable_tts_tool_minmax 控制) |
blocked_words |
list |
[] |
屏蔽词列表,文本包含任一屏蔽词时跳过 TTS |
enable_llm_tool |
bool |
true |
是否启用 clone_tts 工具,允许 AI 主动调用语音合成 |
enable_tts_tool_minmax |
bool |
true |
工具模式下是否也应用 min_length / max_length 字数限制 |
enable_llm_response |
bool |
false |
![]() |
llm_recognition |
string |
"" |
语气识别模型 Provider ID,留空时使用当前会话的默认模型 |
插件会根据 tts_probability 的概率自动将 LLM 的文字回复转换为语音。如果回复字数不在 min_length 到 max_length 之间,则跳过转换。
当 enable_llm_tool 开启时,AI 可以在对话中意识到自己具有 clone_tts 工具。它会根据语境主动决定是否使用语音回复。
| 特性 | 说明 |
|---|---|
| 🗣️ 音色克隆 | 接入火山引擎音色克隆 (ICL) v3 API,音质逼真 |
| 🛠️ LLM 工具支持 | 允许 LLM 主动调用 clone_tts 工具进行语音回复 |
| 🎛️ 音频参数可调 | 支持调节语速、音量、采样率 |
| 🎲 概率触发 | 可配置 0–100% 的被动回复概率,灵活控制语音频率 |
| 📝 屏蔽词列表 | 配置 blocked_words 可以屏蔽指定文本 |
| 📏 长度限制 | 被动模式下可设置字数上下限,避免长文本或短语转语音 |
| ⚡ 流式合成 | 使用 SSE 流式接口获取音频,响应更迅速 |
| 🛡️ 防御性设计 | 完善的配置校验、异常捕获与日志,运行稳定 |
astrbot_plugin_clonetts/
├── main.py # 插件主逻辑与工具定义
├── tts_api/
│ └── dy_tts_api.py # 封装火山引擎 SSE 接口
├── metadata.yaml # 插件元信息
├── _conf_schema.json # 配置项定义
├── README.md # 本文档
└── requirements.txt # 依赖 (aiohttp)
appid、access_token、voice_type 已正确配置。tts_probability 是否过低,或回复字数超出了限制。CloneTTS 开头的错误提示。openspeech.bytedance.com。seed-icl-2.0(本插件使用此 Resource ID)。[!TIP] 如果本项目对您的生活 / 工作产生了帮助,或者您关注本项目的未来发展,请给项目 Star,这是我们维护这个开源项目的动力 <3
$ claude mcp add astrbot_plugin_clonetts \
-- python -m otcore.mcp_server <graph>