使用豆包语音合成(Volcengine TTS)将文本转为语音文件。当用户提到"豆包TTS"、"豆包语音合成"、"doubao tts"、"火山引擎TTS"、"volcengine tts"、"语音合成"、"文字转语音"、"TTS"、"生成音频"、"朗读文字",或任何需要调用豆包/火山引擎语音合成 API 的场景,必须触发本技能。
| 变量名 | 说明 |
|---|---|
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_APPID" ] && echo "set" || echo "not set"
[ -n "$DOUBAO_TTS_TOKEN" ] && echo "set" || echo "not set"
未配置时告知用户设置: Set DOUBAO_TTS_APPID | Set DOUBAO_TTS_TOKEN | Set DOUBAO_TTS_RESOURCE_ID
调用脚本:/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
https://openspeech.bytedance.com/api/v3/tts/unidirectional/sse(SSE 流式)X-Api-App-Id + X-Api-Access-Key(即 AppID + Token,非 API Key)| 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 | 输出文件路径(必填) |
--speaker | 音色,默认 BV700_streaming(灿灿) |
--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 格式输出结果 |
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 | 美式英语 |
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(讲故事)
tts.py 脚本生成音频文件到 /var/minis/workspace/minis://workspace/xxx.mp3 链接形式返回给用户,可直接点击播放