| name | doubao-tts |
| version | 2.1.0 |
| description | 使用豆包语音合成(Volcengine TTS)将文本转为语音文件。当用户提到"豆包TTS"、"豆包语音合成"、"doubao tts"、"火山引擎TTS"、"volcengine tts"、"语音合成"、"文字转语音"、"TTS"、"生成音频"、"朗读文字",或任何需要调用豆包/火山引擎语音合成 API 的场景,必须触发本技能。 |
Doubao TTS Skill(V3)
使用火山引擎豆包语音合成 V3 HTTP SSE 单向流式接口将文本转为音频文件。
获取 API Key(推荐,新版控制台)
- 登录 火山引擎控制台
- 进入 豆包语音 → 语音合成大模型 → 应用管理
- 创建应用(或使用已有应用)
- 在 API Key 管理 页面获取 API Key → 对应
DOUBAO_TTS_API_KEY
若尚未开通服务,需先在 语音合成大模型 页面开通。
旧版控制台(AppID + Token)
旧版控制台应用详情页底部可获取:
- APP ID →
DOUBAO_TTS_APPID
- Access Token →
DOUBAO_TTS_TOKEN
环境变量
| 变量名 | 说明 | 推荐 |
|---|
DOUBAO_TTS_API_KEY | API Key(新版控制台,X-Api-Key) | ✅ |
DOUBAO_TTS_APPID | AppID(旧版控制台,X-Api-App-Id) | |
DOUBAO_TTS_TOKEN | Access Token(旧版控制台,X-Api-Access-Key) | |
DOUBAO_TTS_RESOURCE_ID | 资源 ID,留空默认 seed-tts-2.0 | |
检查是否已配置:
[ -n "$DOUBAO_TTS_API_KEY" ] && echo "API_KEY: set" || echo "API_KEY: not set"
[ -n "$DOUBAO_TTS_APPID" ] && echo "APPID: set" || echo "APPID: not set"
[ -n "$DOUBAO_TTS_TOKEN" ] && echo "TOKEN: set" || echo "TOKEN: not set"
未配置时告知用户设置(优先使用 API Key):
Set DOUBAO_TTS_API_KEY | Set DOUBAO_TTS_RESOURCE_ID
旧版控制台(AppID + Token):
Set DOUBAO_TTS_APPID | Set DOUBAO_TTS_TOKEN
使用方式
调用脚本:/var/minis/skills/doubao-tts/scripts/tts.py
uv run --script --cache-dir /root/.cache/uv \
/var/minis/skills/doubao-tts/scripts/tts.py \
--text "你好,欢迎使用豆包语音合成" \
--output /var/minis/workspace/output.mp3
uv run --script --cache-dir /root/.cache/uv \
/var/minis/skills/doubao-tts/scripts/tts.py \
--text "今天天气真好" \
--speaker zh_female_cancan_uranus_bigtts \
--speech-rate 10 \
--output /var/minis/workspace/output.mp3
uv run --script --cache-dir /root/.cache/uv \
/var/minis/skills/doubao-tts/scripts/tts.py \
--text "Hello! Nice to meet you." \
--speaker en_female_dacey_uranus_bigtts \
--output /var/minis/workspace/output.mp3
API 说明
- 接口:
https://openspeech.bytedance.com/api/v3/tts/unidirectional/sse(SSE 流式)
- 鉴权(二选一):
- 新版控制台:Header
X-Api-Key(API Key)
- 旧版控制台:Header
X-Api-App-Id + X-Api-Access-Key(AppID + Token)
- Resource ID:指定调用的模型版本(见下表)
- 用量返回:脚本默认携带
X-Control-Require-Usage-Tokens-Return: text_words,合成结束时返回计费字符数(text_words)
| Resource ID | 说明 |
|---|
seed-tts-1.0 | 豆包语音合成模型 1.0 字符版(默认,兼容所有 BV*_streaming 音色) |
seed-tts-1.0-concurr | 豆包语音合成模型 1.0 并发版 |
seed-tts-2.0 | 豆包语音合成模型 2.0(仅支持 2.0 音色) |
参数说明
| 参数 | 说明 |
|---|
--text | 要合成的文本(必填) |
--output | 输出文件路径(必填) |
--api-key | API Key(新版控制台,优先于 APPID/TOKEN) |
--appid | AppID(旧版控制台) |
--token | Access Token(旧版控制台) |
--speaker | 音色,默认 zh_female_shuangkuaisisi_uranus_bigtts(爽快思思 2.0) |
--encoding | 格式:mp3/pcm/ogg_opus,默认 mp3 |
--speech-rate | 语速 [-50, 100],0 为默认,100 为 2 倍速 |
--loudness | 音量 [-50, 100],0 为默认 |
--sample-rate | 采样率,默认 24000 |
--emotion | 情感(如 happy/sad/angry/narrator 等) |
--emotion-scale | 情绪强度 [1, 5](配合 --emotion 使用) |
--resource-id | Resource ID(覆盖环境变量) |
--json | JSON 格式输出结果 |
常用音色速查
豆包语音合成模型 2.0(seed-tts-2.0,推荐)
| speaker | 名称 | 场景 |
|---|
zh_female_shuangkuaisisi_uranus_bigtts | 爽快思思 2.0 ⭐默认 | 通用 |
zh_female_cancan_uranus_bigtts | 知性灿灿 2.0 | 角色扮演 |
zh_female_tianmeixiaoyuan_uranus_bigtts | 甜美小源 2.0 | 通用 |
zh_female_vv_uranus_bigtts | Vivi 2.0 | 通用,中/日/印尼/墨西哥西语,方言川陕东北 |
zh_female_xiaohe_uranus_bigtts | 小何 2.0 | 通用 |
zh_male_m191_uranus_bigtts | 云舟 2.0 | 通用 |
zh_male_taocheng_uranus_bigtts | 小天 2.0 | 通用 |
zh_female_kefunvsheng_uranus_bigtts | 暖阳女声 2.0 | 客服 |
en_female_dacey_uranus_bigtts | Dacey | 多语种(英) |
en_male_tim_uranus_bigtts | Tim | 多语种(英) |
豆包语音合成模型 1.0(seed-tts-1.0,需改 --resource-id)
| speaker | 名称 | 场景 |
|---|
BV700_streaming | 灿灿 | 通用,支持22种情感 |
BV001_streaming | 通用女声 | 通用 |
BV002_streaming | 通用男声 | 通用 |
BV701_streaming | 擎苍 | 有声阅读 |
BV503_streaming | 活力女声-Ariana | 英语 |
⚠️ 1.0 和 2.0 音色不能混用,seed-tts-2.0 只支持 *_uranus_bigtts 结尾的音色
常见情感值
pleased(愉悦) / sorry(抱歉) / happy(开心) / sad(悲伤) / angry(愤怒) / scare(害怕) / surprise(惊讶) / hate(厌恶) / tear(哭腔) / narrator(旁白) / storytelling(讲故事)
完整工作流
- 检查环境变量是否配置(优先
DOUBAO_TTS_API_KEY,其次 DOUBAO_TTS_APPID + DOUBAO_TTS_TOKEN)
- 调用
tts.py 脚本生成音频文件到 /var/minis/workspace/
- 以
minis://workspace/xxx.mp3 链接形式返回给用户,可直接点击播放