Claude-skill-registry doubao-open-tts

Text-to-Speech using Doubao (Volcano Engine) API. Use when converting text to natural-sounding speech, generating audio files from text, listing available TTS voices, or synthesizing speech with customizable speed/volume parameters.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/doubao-open-tts" ~/.claude/skills/majiayu000-claude-skill-registry-doubao-open-tts && rm -rf "$T"
manifest: skills/data/doubao-open-tts/SKILL.md
source content

Doubao Open TTS

Text-to-Speech (TTS) service using Doubao (Volcano Engine) API V1 interface to convert text into natural-sounding speech.

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

Installation

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

Configuration

Method 1: Environment Variables

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

Method 2: .env File

Copy

.env.example.txt
to
.env
and fill in your credentials:

cp .env.example.txt .env
# Edit the .env file with your credentials

Usage

Command Line

# 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}")

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

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

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

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

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

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

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

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

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

Output

The generated audio file will be saved to the specified output path (default:

output.mp3
in current directory).

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