doubao-open-tts

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Doubao Open TTS

Doubao开放文本转语音(TTS)

Text-to-Speech (TTS) service using Doubao (Volcano Engine) API V1 interface to convert text into natural-sounding speech.
基于Doubao(火山引擎)API V1接口的文本转语音(TTS)服务,可将文本转换为自然流畅的语音。

Features

功能特性

  • 🎙️ 200+ Voice Options - Default: Shiny (灿灿) for general scenarios
  • 🔊 Multiple Audio Formats - Supports mp3, pcm, wav
  • Adjustable Parameters - Speed and volume control
  • 📦 Dual Interface - Command-line tool + Python API
  • 🎯 Voice Categorization - Browse voices by category
  • 🎙️ 200+ 音色可选 - 默认:通用场景使用Shiny(灿灿)音色
  • 🔊 多种音频格式 - 支持mp3、pcm、wav格式
  • 参数可调节 - 支持语速与音量控制
  • 📦 双接口支持 - 命令行工具 + Python API
  • 🎯 音色分类浏览 - 可按类别查看音色

Installation

安装

bash
cd skills/doubao-open-tts
pip install -r requirements.txt
bash
cd skills/doubao-open-tts
pip install -r requirements.txt

Configuration

配置

Method 1: Environment Variables

方法1:环境变量

bash
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
bash
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"  # 可选:设置默认音色

Method 2: .env File

方法2:.env文件

Copy
.env.example.txt
to
.env
and fill in your credentials:
bash
cp .env.example.txt .env
复制
.env.example.txt
.env
并填写你的凭证信息:
bash
cp .env.example.txt .env

Edit the .env file with your credentials

编辑.env文件填入你的凭证信息

undefined
undefined

Usage

使用方法

Command Line

命令行

bash
undefined
bash
undefined

Basic usage (uses default voice: Shiny)

基础使用(使用默认音色:Shiny)

python scripts/tts.py "Hello, this is a test of Doubao text-to-speech service"
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
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
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
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
python scripts/tts.py --list-voices

List voices by category

按类别查看音色

python scripts/tts.py --list-voices --category "General-Multilingual"
python scripts/tts.py --list-voices --category "General-Multilingual"

Use different cluster

使用不同集群

python scripts/tts.py "Hello" --cluster volcano_tts
python scripts/tts.py "Hello" --cluster volcano_tts

Enable debug mode

启用调试模式

python scripts/tts.py "Test" --debug
undefined
python scripts/tts.py "Test" --debug
undefined

Python API

Python API

python
from scripts.tts import VolcanoTTS, VOICE_TYPES, VOICE_CATEGORIES
python
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 )
tts = VolcanoTTS( app_id="your_app_id", access_token="your_access_token", secret_key="your_secret_key", voice_type="zh_female_cancan_mars_bigtts" # 可选:设置默认音色 )

List available voices

列出可用音色

print("All voices:", tts.list_voices()) print("General voices:", tts.list_voices("General-Normal"))
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"
tts.set_voice("zh_male_xudong_conversation_wvae_bigtts") # 设置为「开心小东」

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}")
undefined
output_path = tts.synthesize( text="Hello, this is Doubao text-to-speech", voice_type="zh_female_cancan_mars_bigtts", # 可选:覆盖默认音色 encoding="mp3", cluster="volcano_tts", speed=1.0, volume=1.0, output_file="output.mp3" ) print(f"Audio saved to: {output_path}")
undefined

Available Voice Types

可用音色类型

General Category (通用场景)

通用场景

Voice NameVoice TypeDescription
Shiny (灿灿)zh_female_cancan_mars_bigttsCheerful female voice, suitable for various scenarios
Lively Xiaoning (活泼小宁)zh_female_wanwanxiaohe_mars_bigttsLively and playful female voice
Xiaomo (小莫)zh_male_xiaomo_mars_bigttsWarm and friendly male voice
Xiaoqi (小琪)zh_female_xiaoqi_mars_bigttsProfessional female host
AISuper (AI超级大流利)zh_female_gaolanfenqu_mars_bigttsSuper fluent female voice
音色名称音色类型描述
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超流利女声

Emotional Category (情感超自然人声)

情感超自然人声

Voice NameVoice TypeDescription
Happy Xiaodong (开心小东)zh_male_xudong_conversation_wvae_bigttsCheerful and sunny male voice
Sad Xiaoliang (悲伤小亮)zh_male_sadxiaoliang_sad_mars_bigttsMelancholic male voice
Neutral Xiaoshuai (中性小帅)zh_male_zhongxingxiaoshuai_speech_mars_bigttsNeutral tone male voice
Happy Xiaomei (开心小美)zh_female_gaoxiaomei_happy_mars_bigttsCheerful female voice
Angry Xiaotian (愤怒小甜)zh_female_shengmoxiaotian_angry_mars_bigttsAngry tone female voice
音色名称音色类型描述
开心小东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愤怒语调女声

Intelligent Customer Service (智能客服)

智能客服

Voice NameVoice TypeDescription
Customer Service Xiaowen (客服小文)zh_male_jingyixiaowen_mars_bigttsProfessional customer service male voice
Customer Service Xiaorou (客服小柔)zh_female_xiaorou_customer_service_mars_bigttsGentle customer service female voice
音色名称音色类型描述
客服小文zh_male_jingyixiaowen_mars_bigtts专业客服男声
客服小柔zh_female_xiaorou_customer_service_mars_bigtts温柔客服女声

Documentary (纪录片)

纪录片

Voice NameVoice TypeDescription
Classic Xiaoming (经典小明)zh_male_jingdianxiaoming_mars_bigttsClassic documentary male voice
Narration Xiaoran (旁白小然)zh_female_xiaoran_narration_mars_bigttsDocumentary narration female voice
音色名称音色类型描述
经典小明zh_male_jingdianxiaoming_mars_bigtts经典纪录片男声
旁白小然zh_female_xiaoran_narration_mars_bigtts纪录片旁白女声

Audio Novels (有声小说)

有声小说

Voice NameVoice TypeDescription
Storytelling Xiaotao (讲书小桃)zh_female_jiangshuxiaotao_mars_bigttsStorytelling female voice
Warm Xiaochen (温暖小晨)zh_male_wennuanxiaochen_mars_bigttsWarm novel reading male voice
音色名称音色类型描述
讲书小桃zh_female_jiangshuxiaotao_mars_bigtts讲书风格女声
温暖小晨zh_male_wennuanxiaochen_mars_bigtts温暖治愈的小说朗读男声

News Broadcasting (新闻播报)

新闻播报

Voice NameVoice TypeDescription
News Xiaozhi (新闻小志)zh_male_xinwenxiaozhi_mars_bigttsStandard news broadcasting male voice
News Xiaojing (新闻小静)zh_female_xinwenxiaojing_mars_bigttsProfessional news broadcasting female voice
Cantonese News (粤语新闻)zh_male_yueyuxiaowu_mars_bigttsCantonese news male voice
Amoy News (闽南语新闻)zh_female_minnanxiaoyue_mars_bigttsAmoy dialect news female voice
音色名称音色类型描述
新闻小志zh_male_xinwenxiaozhi_mars_bigtts标准新闻播报男声
新闻小静zh_female_xinwenxiaojing_mars_bigtts专业新闻播报女声
粤语新闻zh_male_yueyuxiaowu_mars_bigtts粤语新闻男声
闽南语新闻zh_female_minnanxiaoyue_mars_bigtts闽南语新闻女声

General-Multilingual (通用多语言)

通用多语言

Voice NameVoice TypeDescription
English Gentle (英语男声-柔和)en_male_mars_bigttsGentle English male voice
English Lively (英语女声-活泼)en_female_mars_bigttsLively English female voice
Japanese Male (日语男声)ja_male_mars_bigttsJapanese male voice
Japanese Female (日语女声)ja_female_mars_bigttsJapanese female voice
Korean Male (韩语男声)ko_male_mars_bigttsKorean male voice
Korean Female (韩语女声)ko_female_mars_bigttsKorean female voice
French Male (法语男声)fr_male_mars_bigttsFrench male voice
French Female (法语女声)fr_female_mars_bigttsFrench female voice
German Male (德语男声)de_male_mars_bigttsGerman male voice
German Female (德语女声)de_female_mars_bigttsGerman female voice
Spanish Male (西班牙语男声)es_male_mars_bigttsSpanish male voice
Spanish Female (西班牙语女声)es_female_mars_bigttsSpanish female voice
Russian Male (俄语男声)ru_male_mars_bigttsRussian male voice
Russian Female (俄语女声)ru_female_mars_bigttsRussian female voice
Portuguese Male (葡萄牙语男声)pt_male_mars_bigttsPortuguese male voice
Portuguese Female (葡萄牙语女声)pt_female_mars_bigttsPortuguese female voice
Italian Male (意大利语男声)it_male_mars_bigttsItalian male voice
Italian Female (意大利语女声)it_female_mars_bigttsItalian female voice
Arabic Male (阿拉伯语男声)ar_male_mars_bigttsArabic male voice
Arabic Female (阿拉伯语女声)ar_female_mars_bigttsArabic female voice
Hindi Male (印地语男声)hi_male_mars_bigttsHindi male voice
Hindi Female (印地语女声)hi_female_mars_bigttsHindi female voice
Thai Male (泰语男声)th_male_mars_bigttsThai male voice
Thai Female (泰语女声)th_female_mars_bigttsThai female voice
Vietnamese Male (越南语男声)vi_male_mars_bigttsVietnamese male voice
Vietnamese Female (越南语女声)vi_female_mars_bigttsVietnamese female voice
Indonesian Male (印尼语男声)id_male_mars_bigttsIndonesian male voice
Indonesian Female (印尼语女声)id_female_mars_bigttsIndonesian female voice
Malay Male (马来语男声)ms_male_mars_bigttsMalay male voice
Malay Female (马来语女声)ms_female_mars_bigttsMalay female voice
Filipino Male (菲律宾语男声)fil_male_mars_bigttsFilipino male voice
Filipino Female (菲律宾语女声)fil_female_mars_bigttsFilipino female voice
Turkish Male (土耳其语男声)tr_male_mars_bigttsTurkish male voice
Turkish Female (土耳其语女声)tr_female_mars_bigttsTurkish female voice
Dutch Male (荷兰语男声)nl_male_mars_bigttsDutch male voice
Dutch Female (荷兰语女声)nl_female_mars_bigttsDutch female voice
Polish Male (波兰语男声)pl_male_mars_bigttsPolish male voice
Polish Female (波兰语女声)pl_female_mars_bigttsPolish female voice
Ukrainian Male (乌克兰语男声)uk_male_mars_bigttsUkrainian male voice
Ukrainian Female (乌克兰语女声)uk_female_mars_bigttsUkrainian female voice
Hebrew Male (希伯来语男声)he_male_mars_bigttsHebrew male voice
Hebrew Female (希伯来语女声)he_female_mars_bigttsHebrew female voice
音色名称音色类型描述
英语男声-柔和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希伯来语女声

Dialect Category (方言场景)

方言场景

Voice NameVoice TypeDescription
Cantonese Male (粤语男声)zh_male_yueyuzhongxing_mars_bigttsCantonese male voice
Cantonese Female (粤语女声)zh_female_yueyumars_mars_bigttsCantonese female voice
Amoy Male (闽南语男声)zh_male_taiminmars_mars_bigttsAmoy dialect male voice
Amoy Female (闽南语女声)zh_female_minnanAImars_mars_bigttsAmoy dialect female voice
Sichuanese (四川话)zh_male_sichuanmars_mars_bigttsSichuan dialect male voice
Shanghainese (上海话)zh_female_shanghaihuamars_mars_bigttsShanghainese female voice
Wuhan Dialect (武汉话)zh_male_wuhanmars_mars_bigttsWuhan dialect male voice
Hunan Dialect (湖南话)zh_male_hunanmars_mars_bigttsHunan dialect male voice
Henan Dialect (河南话)zh_female_henanmars_mars_bigttsHenan dialect female voice
Northeastern Dialect (东北话)zh_male_dongbeimars_mars_bigttsNortheastern dialect male voice
Shandong Dialect (山东话)zh_male_shandongmars_mars_bigttsShandong dialect male voice
Tianjin Dialect (天津话)zh_female_tianjinmars_mars_bigttsTianjin dialect female voice
音色名称音色类型描述
粤语男声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天津话女声

Special Categories

特色分类

Voice NameVoice TypeDescription
Audiobook Xiaoyu (有声小予)zh_female_xiaoyujingxisanguo_mars_bigttsThree Kingdoms audiobook voice
Animation Xiaohua (动漫小花)zh_female_xiaohuadongman_mars_bigttsAnime style voice
Rap Xiaoqiang (Rap小蔷)zh_female_xiaoqiangrap_mars_bigttsRap style female voice
RAP General (Rap大将)zh_male_rapgeneral_mars_bigttsRap style male voice
Wise Voice (智慧的声音)zh_male_jinyumars_mars_bigttsWise and mature voice
Chattering (唠唠叨叨)zh_female_laolaodaodao_chat_mars_bigttsChatty female voice
Talking Beijing (讲话北京)zh_male_jianghuabeijing_speech_mars_bigttsBeijing accent
Host Xiaoyang (主播小羊)zh_female_xiaoyang_host_mars_bigttsStreamer host style
音色名称音色类型描述
有声小予zh_female_xiaoyujingxisanguo_mars_bigtts三国有声书风格音色
动漫小花zh_female_xiaohuadongman_mars_bigtts动漫风格女声
Rap小蔷zh_female_xiaoqiangrap_mars_bigttsRap风格女声
Rap大将zh_male_rapgeneral_mars_bigttsRap风格男声
智慧的声音zh_male_jinyumars_mars_bigtts成熟睿智的男声
唠唠叨叨zh_female_laolaodaodao_chat_mars_bigtts絮叨聊天式女声
讲话北京zh_male_jianghuabeijing_speech_mars_bigtts北京口音男声
主播小羊zh_female_xiaoyang_host_mars_bigtts直播主播风格女声

Output

输出

The generated audio file will be saved to the specified output path (default:
output.mp3
in current directory).
生成的音频文件将保存到指定路径(默认:当前目录下的
output.mp3
)。

Notes

注意事项

  1. Ensure VOLCANO_TTS_APPID, VOLCANO_TTS_ACCESS_TOKEN, and VOLCANO_TTS_SECRET_KEY environment variables are set
  2. Supports mp3, pcm, and wav formats (mp3 by default)
  3. Speed range: 0.8-2.0 (1.0 is normal)
  4. Volume range: 0.1-3.0 (1.0 is normal)
  5. Voice types can be viewed using
    --list-voices
  6. Different clusters may support different voice types; default cluster is
    volcano_tts
  7. For non-Chinese text, use multilingual voices from "General-Multilingual" category
  1. 请确保已设置VOLCANO_TTS_APPID、VOLCANO_TTS_ACCESS_TOKEN和VOLCANO_TTS_SECRET_KEY环境变量
  2. 支持mp3、pcm、wav格式(默认mp3)
  3. 语速范围:0.8-2.0(1.0为正常语速)
  4. 音量范围:0.1-3.0(1.0为正常音量)
  5. 可通过
    --list-voices
    查看所有音色类型
  6. 不同集群支持的音色可能不同;默认集群为
    volcano_tts
  7. 非中文文本请使用「通用多语言」分类下的多语言音色