关于 doubao-open-tts
基于 Doubao(Volcano Engine)API V1 的文本转语音技能,供命令行和 Python 用户将文本生成为音频。提供多类语音、格式选择及语速和音量调节。
主要功能
- 01提供多种分类语音
- 02支持 MP3、PCM 和 WAV
- 03调节语速与音量
- 04提供命令行和 Python API
- 05按类别浏览语音
适用场景
- 01将文本文件转换为语音音频
- 02为多语言文本选择对应语音
- 03生成可调语速和音量的旁白
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ xdrshjr/ jr-openclaw-skills --skill doubao-open-tts安装后在 Claude Code 中输入/doubao-open-tts确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.env.example.txtrequirements.txtscripts/test_tts.pytts.py详细介绍
Doubao Open TTS
使用 Doubao(火山引擎)API V1 接口的文本转语音(TTS)服务,可将文本转换为自然流畅的语音。
功能
- 🎙️ 200 多种语音选项 - 默认使用适用于通用场景的 Shiny(灿灿)
- 🔊 多种音频格式 - 支持 mp3、pcm、wav
- ⚡ 可调参数 - 可控制语速和音量
- 📦 双接口 - 命令行工具 + Python API
- 🎯 语音分类 - 按类别浏览语音
安装
cd skills/doubao-open-tts
pip install -r requirements.txt
配置
方法 1:环境变量
export VOLCANO_TTS_APPID="your_app_id"
export VOLCANO_TTS_ACCESS_TOKEN="your_access_token"
export VOLCANO_TTS_SECRET_KEY="your_secret_key"
export VOLCANO_TTS_VOICE_TYPE="zh_female_cancan_mars_bigtts" # Optional: set default voice
方法 2:.env 文件
将 .env.example.txt 复制为 .env,并填写凭据:
cp .env.example.txt .env
# Edit the .env file with your credentials
使用方法
命令行
# Basic usage (uses default voice: Shiny)
python scripts/tts.py "Hello, this is a test of Doubao text-to-speech service"
# Specify output file and format
python scripts/tts.py "Welcome to use TTS" -o output.mp3 -e mp3
# Read text from file
python scripts/tts.py -f input.txt -o output.mp3
# Adjust parameters
python scripts/tts.py "Custom voice" --speed 1.2 --volume 0.8 -v zh_female_cancan_mars_bigtts
# List all available voices
python scripts/tts.py --list-voices
# List voices by category
python scripts/tts.py --list-voices --category "General-Multilingual"
# Use different cluster
python scripts/tts.py "Hello" --cluster volcano_tts
# Enable debug mode
python scripts/tts.py "Test" --debug
Python API
from scripts.tts import VolcanoTTS, VOICE_TYPES, VOICE_CATEGORIES
# Initialize client
tts = VolcanoTTS(
app_id="your_app_id",
access_token="your_access_token",
secret_key="your_secret_key",
voice_type="zh_female_cancan_mars_bigtts" # Optional: set default voice
)
# List available voices
print("All voices:", tts.list_voices())
print("General voices:", tts.list_voices("General-Normal"))
# Change voice
tts.set_voice("zh_male_xudong_conversation_wvae_bigtts") # Set to "Happy Xiaodong"
# Synthesize speech
output_path = tts.synthesize(
text="Hello, this is Doubao text-to-speech",
voice_type="zh_female_cancan_mars_bigtts", # Optional: override default
encoding="mp3",
cluster="volcano_tts",
speed=1.0,
volume=1.0,
output_file="output.mp3"
)
print(f"Audio saved to: {output_path}")
可用语音类型
通用场景
| 语音名称 | 语音类型 | 描述 |
|---|---|---|
| Shiny(灿灿) | zh_female_cancan_mars_bigtts | 活泼的女声,适用于各种场景 |
| 活泼小宁 | zh_female_wanwanxiaohe_mars_bigtts | 活泼俏皮的女声 |
| 小莫 | zh_male_xiaomo_mars_bigtts | 温暖亲切的男声 |
| 小琪 | zh_female_xiaoqi_mars_bigtts | 专业的女主持人声音 |
| AI 超级大流利 | zh_female_gaolanfenqu_mars_bigtts | 极其流畅的女声 |
情感超自然人声
| 语音名称 | 语音类型 | 描述 |
|---|---|---|
| 开心小东 | zh_male_xudong_conversation_wvae_bigtts | 开朗阳光的男声 |
| 悲伤小亮 | zh_male_sadxiaoliang_sad_mars_bigtts | 忧郁的男声 |
| 中性小帅 | zh_male_zhongxingxiaoshuai_speech_mars_bigtts | 语气中性的男声 |
| 开心小美 | zh_female_gaoxiaomei_happy_mars_bigtts | 开朗的女声 |
| 愤怒小甜 | zh_female_shengmoxiaotian_angry_mars_bigtts | 带有愤怒语气的女声 |
智能客服
| 语音名称 | 语音类型 | 描述 |
|---|---|---|
| 客服小文 | zh_male_jingyixiaowen_mars_bigtts | 专业的客服男声 |
| 客服小柔 | zh_female_xiaorou_customer_service_mars_bigtts | 温柔的客服女声 |
纪录片
| 语音名称 | 语音类型 | 描述 |
|---|---|---|
| 经典小明 | zh_male_jingdianxiaoming_mars_bigtts | 经典的纪录片男声 |
| 旁白小然 | zh_female_xiaoran_narration_mars_bigtts | 纪录片旁白女声 |
有声小说
| 语音名称 | 语音类型 | 描述 |
|---|---|---|
| 讲书小桃 | zh_female_jiangshuxiaotao_mars_bigtts | 讲故事风格的女声 |
| 温暖小晨 | zh_male_wennuanxiaochen_mars_bigtts | 温暖的小说朗读男声 |
新闻播报
| 语音名称 | 语音类型 | 描述 |
|---|---|---|
| 新闻小志 | zh_male_xinwenxiaozhi_mars_bigtts | 标准的新闻播报男声 |
| 新闻小静 | zh_female_xinwenxiaojing_mars_bigtts | 专业的新闻播报女声 |
| 粤语新闻 | zh_male_yueyuxiaowu_mars_bigtts | 粤语新闻男声 |
| 闽南语新闻 | zh_female_minnanxiaoyue_mars_bigtts | 闽南语新闻女声 |
通用多语言
| 语音名称 | 语音类型 | 描述 |
|---|---|---|
| 英语男声(柔和) | en_male_mars_bigtts | 柔和的英语男声 |
| 英语女声(活泼) | en_female_mars_bigtts | 活泼的英语女声 |
| 日语男声 | ja_male_mars_bigtts | 日语男声 |
| 日语女声 | ja_female_mars_bigtts | 日语女声 |
| 韩语男声 | ko_male_mars_bigtts | 韩语男声 |
| 韩语女声 | ko_female_mars_bigtts | 韩语女声 |
| 法语男声 | fr_male_mars_bigtts | 法语男声 |
| 法语女声 | fr_female_mars_bigtts | 法语女声 |
| 德语男声 | de_male_mars_bigtts | 德语男声 |
| 德语女声 | de_female_mars_bigtts | 德语女声 |
| 西班牙语男声 | es_male_mars_bigtts | 西班牙语男声 |
| 西班牙语女声 | es_female_mars_bigtts | 西班牙语女声 |
| 俄语男声 | ru_male_mars_bigtts | 俄语男声 |
| 俄语女声 | ru_female_mars_bigtts | 俄语女声 |
| 葡萄牙语男声 | pt_male_mars_bigtts | 葡萄牙语男声 |
| 葡萄牙语女声 | pt_female_mars_bigtts | 葡萄牙语女声 |
| 意大利语男声 | it_male_mars_bigtts | 意大利语男声 |
| 意大利语女声 | it_female_mars_bigtts | 意大利语女声 |
| 阿拉伯语男声 | ar_male_mars_bigtts | 阿拉伯语男声 |
| 阿拉伯语女声 | ar_female_mars_bigtts | 阿拉伯语女声 |
| 印地语男声 | hi_male_mars_bigtts | 印地语男声 |
| 印地语女声 | hi_female_mars_bigtts | 印地语女声 |
| 泰语男声 | th_male_mars_bigtts | 泰语男声 |
| 泰语女声 | th_female_mars_bigtts | 泰语女声 |
| 越南语男声 | vi_male_mars_bigtts | 越南语男声 |
| 越南语女声 | vi_female_mars_bigtts | 越南语女声 |
| 印尼语男声 | id_male_mars_bigtts | 印尼语男声 |
| 印尼语女声 | id_female_mars_bigtts | 印尼语女声 |
| 马来语男声 | ms_male_mars_bigtts | 马来语男声 |
| 马来语女声 | ms_female_mars_bigtts | 马来语女声 |
| 菲律宾语男声 | fil_male_mars_bigtts | 菲律宾语男声 |
| 菲律宾语女声 | fil_female_mars_bigtts | 菲律宾语女声 |
| 土耳其语男声 | tr_male_mars_bigtts | 土耳其语男声 |
| 土耳其语女声 | tr_female_mars_bigtts | 土耳其语女声 |
| 荷兰语男声 | nl_male_mars_bigtts | 荷兰语男声 |
| 荷兰语女声 | nl_female_mars_bigtts | 荷兰语女声 |
| 波兰语男声 | pl_male_mars_bigtts | 波兰语男声 |
| 波兰语女声 | pl_female_mars_bigtts | 波兰语女声 |
| 乌克兰语男声 | uk_male_mars_bigtts | 乌克兰语男声 |
| 乌克兰语女声 | uk_female_mars_bigtts | 乌克兰语女声 |
| 希伯来语男声 | he_male_mars_bigtts | 希伯来语男声 |
| 希伯来语女声 | he_female_mars_bigtts | 希伯来语女声 |
方言类别(方言场景)
| 声音名称 | 声音类型 | 描述 |
|---|---|---|
| 粤语男声(粤语男声) | zh_male_yueyuzhongxing_mars_bigtts | 粤语男声 |
| 粤语女声(粤语女声) | zh_female_yueyumars_mars_bigtts | 粤语女声 |
| 闽南语男声(闽南语男声) | zh_male_taiminmars_mars_bigtts | 闽南语男声 |
| 闽南语女声(闽南语女声) | zh_female_minnanAImars_mars_bigtts | 闽南语女声 |
| 四川话(四川话) | zh_male_sichuanmars_mars_bigtts | 四川话男声 |
| 上海话(上海话) | zh_female_shanghaihuamars_mars_bigtts | 上海话女声 |
| 武汉话(武汉话) | zh_male_wuhanmars_mars_bigtts | 武汉话男声 |
| 湖南话(湖南话) | zh_male_hunanmars_mars_bigtts | 湖南话男声 |
| 河南话(河南话) | zh_female_henanmars_mars_bigtts | 河南话女声 |
| 东北话(东北话) | zh_male_dongbeimars_mars_bigtts | 东北话男声 |
| 山东话(山东话) | zh_male_shandongmars_mars_bigtts | 山东话男声 |
| 天津话(天津话) | zh_female_tianjinmars_mars_bigtts | 天津话女声 |
特殊类别
| 声音名称 | 声音类型 | 描述 |
|---|---|---|
| 有声小予(有声小予) | zh_female_xiaoyujingxisanguo_mars_bigtts | 三国有声书音色 |
| 动漫小花(动漫小花) | zh_female_xiaohuadongman_mars_bigtts | 动漫风格音色 |
| Rap小蔷(Rap小蔷) | zh_female_xiaoqiangrap_mars_bigtts | Rap 风格女声 |
| Rap大将(Rap大将) | zh_male_rapgeneral_mars_bigtts | Rap 风格男声 |
| 智慧的声音(智慧的声音) | zh_male_jinyumars_mars_bigtts | 睿智成熟的声音 |
| 唠唠叨叨(唠唠叨叨) | zh_female_laolaodaodao_chat_mars_bigtts | 健谈的女声 |
| 讲话北京(讲话北京) | zh_male_jianghuabeijing_speech_mars_bigtts | 北京口音 |
| 主播小羊(主播小羊) | zh_female_xiaoyang_host_mars_bigtts | 主播风格 |
输出
生成的音频文件将保存到指定的输出路径(默认:当前目录下的 output.mp3)。
注意事项
- 确保已设置 VOLCANO_TTS_APPID、VOLCANO_TTS_ACCESS_TOKEN 和 VOLCANO_TTS_SECRET_KEY 环境变量
- 支持 mp3、pcm 和 wav 格式(默认使用 mp3)
- 语速范围:0.8-2.0(1.0 为正常语速)
- 音量范围:0.1-3.0(1.0 为正常音量)
- 可使用
--list-voices查看声音类型 - 不同集群可能支持不同的声音类型;默认集群为
volcano_tts - 对于非中文文本,请使用“General-Multilingual”类别中的多语言音色
评论
支持 Markdown