MoneyPrinterTurbo Video Generator
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
Text-to-Speech service using Doubao (Volcano Engine) API with 200+ voices, interactive voice selection, and multilingual support
$ npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills doubao-open-tts --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/doubao-api-open-tts .claude/skills/doubao-open-tts && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "doubao-open-tts" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/doubao-api-open-tts into .claude/skills/doubao-open-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doubao-open-tts", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/doubao-api-open-ttsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills doubao-open-tts --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/doubao-api-open-tts .agents/skills/doubao-open-tts && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "doubao-open-tts" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/doubao-api-open-tts into .agents/skills/doubao-open-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doubao-open-tts", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills doubao-open-tts --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/doubao-api-open-tts .cursor/skills/doubao-open-tts && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "doubao-open-tts" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/doubao-api-open-tts into .cursor/skills/doubao-open-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doubao-open-tts", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/doubao-api-open-tts--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills doubao-open-tts --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/doubao-api-open-tts .gemini/skills/doubao-open-tts && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "doubao-open-tts" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/doubao-api-open-tts into .gemini/skills/doubao-open-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doubao-open-tts", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills doubao-open-ttsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/doubao-api-open-tts .github/skills/doubao-open-tts && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "doubao-open-tts" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/doubao-api-open-tts into .github/skills/doubao-open-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doubao-open-tts", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills doubao-open-tts --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/doubao-api-open-tts .opencode/skills/doubao-open-tts && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "doubao-open-tts" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/doubao-api-open-tts into .opencode/skills/doubao-open-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doubao-open-tts", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
doubao-open-ttsText-to-Speech service using Doubao (Volcano Engine) API with 200+ voices, interactive voice selection, and multilingual support
Doubao Open Tts is an agent skill from LeoYeAI/openclaw-master-skills. Text-to-Speech service using Doubao (Volcano Engine) API with 200+ voices, interactive voice selection, and multilingual support
Its SKILL.md is about 6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `README.md`, `_meta.json` and `scripts/test_tts.py`). Compatibility notes: opencode
It sits in Media & Creative, covering Text to speech and voice. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonpipFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
console.volcengine.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VOLCANO_TTS_ACCESS_TOKENVOLCANO_TTS_SECRET_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
opencode
From compatibility in the SKILL.md frontmatter.
Doubao Open Tts loads about 6k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 1,126 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
Agent: [Saves credentials to .env file]Saves API credentials to the .env file in the SKILL directory.print("✅ Configuration saved to .env file")### Method 2: .env FileCopy `.env.example` to `.env` and fill in your credentials:cp .env.example .env# Edit the .env file with your credentialsAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,126 words, ~5,983 tokens.
.claude/skills/doubao-open-tts/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Text-to-Speech (TTS) service using Doubao (Volcano Engine) API V1 interface to convert text into natural-sounding speech.
重要提示: 当检测到没有API配置时,Agent必须立即停止并询问用户是否配置API,不允许直接使用默认音色生成音频,除非用户明确坚持使用默认音色。
When using this SKILL, the Agent should follow this workflow:
First, check if API credentials are configured:
from scripts.tts import check_api_config, setup_api_config
# Check if API is configured
config = check_api_config()
if not config:
# API not configured, MUST stop and ask user
# DO NOT proceed with default voice
print("⚠️ API credentials not found. Cannot proceed without API configuration.")
# ... ask user for credentials or if they want to use default如果API凭证缺失,Agent必须停止并询问用户: 用户可以选择配置API,或者明确坚持使用默认音色(仅当用户明确要求时才允许)。
Agent: I need API credentials to use the Doubao TTS service.
Please provide the following information:
1. App ID (APPID)
2. Access Token
3. Secret Key
You can get these from: https://console.volcengine.com/
Please enter your App ID:
User: 4269953601
Agent: Please enter your Access Token:
User: uAGE3iP8nJf3ewu-d6U1P6Jthv7i1DH7
Agent: Please enter your Secret Key:
User: Dfta36aYgcdqY-ylHoh9FQyqiERS5iTv
Agent: [Saves credentials to .env file]
✅ API configuration saved successfully!用户选择: 如果用户不想配置API但坚持使用默认音色:
User: 我不想配置API,就用默认音色吧
Agent: ⚠️ 确认使用默认音色吗?这将使用内置的默认音色生成音频。
输入 'yes' 确认使用默认音色,或提供API凭证以获得更好的体验。
User: yes
Agent: [继续执行,使用默认音色]After API is configured OR user explicitly confirmed to use default voice:
from scripts.tts import VolcanoTTS
tts = VolcanoTTS()
output = tts.synthesize("Hello world", output_file="output.mp3")check_api_config()Checks if API credentials are available. Returns config dict or None.
from scripts.tts import check_api_config
config = check_api_config()
if config:
print(f"App ID: {config['app_id']}")
print(f"Access Token: {config['access_token'][:10]}...")
print(f"Secret Key: {config['secret_key'][:10]}...")
else:
print("API not configured")setup_api_config(app_id, access_token, secret_key, voice_type=None)Saves API credentials to the .env file in the SKILL directory.
from scripts.tts import setup_api_config
# Save credentials
setup_api_config(
app_id="4269953601",
access_token="uAGE3iP8nJf3ewu-d6U1P6Jthv7i1DH7",
secret_key="Dfta36aYgcdqY-ylHoh9FQyqiERS5iTv",
voice_type="zh_female_cancan_mars_bigtts" # optional
)
print("✅ Configuration saved to .env file")from scripts.tts import check_api_config, setup_api_config, VolcanoTTS
def synthesize_with_auto_config(text, output_file="output.mp3", use_default_voice=False):
"""
Synthesize speech with automatic API configuration.
IMPORTANT: If API is not configured, this function will STOP and ask user.
It will NOT automatically use default voice unless user explicitly confirms.
"""
# Step 1: Check if API is configured
config = check_api_config()
if not config:
# Step 2: STOP and ask user - DO NOT proceed automatically
print("🔐 API Configuration Required")
print("=" * 50)
print("\n⚠️ No API credentials found. You have two options:")
print("\nOption 1: Configure API (Recommended)")
print(" Please visit https://console.volcengine.com/ to get your credentials")
print("\nOption 2: Use Default Voice")
print(" ⚠️ Only available if you explicitly confirm")
# Ask user what they want to do
choice = input("\nEnter '1' to configure API, or '2' to use default voice: ").strip()
if choice == '1':
# Configure API
print("\nRequired information:")
app_id = input("1. Enter your App ID: ").strip()
access_token = input("2. Enter your Access Token: ").strip()
secret_key = input("3. Enter your Secret Key: ").strip()
# Optional: ask for preferred voice
print("\n🎙️ Optional: Select a default voice (press Enter to use Shiny)")
voice_type = input("Voice type (or voice name): ").strip()
# Save configuration
setup_api_config(app_id, access_token, secret_key, voice_type or None)
print("\n✅ Configuration saved!")
elif choice == '2':
# User explicitly chose to use default voice
confirm = input("\n⚠️ Are you sure you want to use the default voice? (yes/no): ").strip().lower()
if confirm != 'yes':
print("❌ Cancelled. Please configure API to proceed.")
return None
use_default_voice = True
print("\n⚠️ Using default voice as requested...")
else:
print("❌ Invalid choice. Please configure API to proceed.")
return None
# Step 3: Use the service
if use_default_voice:
# Use default voice (only when user explicitly confirmed)
tts = VolcanoTTS(use_default=True)
else:
tts = VolcanoTTS()
output_path = tts.synthesize(text, output_file=output_file)
return output_path
# Use it
output = synthesize_with_auto_config("Hello, this is a test")
if output:
print(f"Audio saved to: {output}")
else:
print("Operation cancelled - API configuration required")cd skills/volcano-tts
pip install -r requirements.txtexport 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 voiceCopy .env.example to .env and fill in your credentials:
cp .env.example .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" --debugfrom 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}")The SKILL supports interactive voice selection workflow for Agent-User collaboration:
重要: 在使用以下代码之前,必须先检查API配置。如果没有配置,必须停止并询问用户。
from scripts.tts import (
get_voice_selection_prompt,
find_voice_by_name,
get_voice_info,
check_api_config,
VolcanoTTS
)
# Step 0: Check API configuration FIRST
config = check_api_config()
if not config:
print("⚠️ API credentials not found. Please configure API first.")
print("Visit: https://console.volcengine.com/")
# STOP here and ask user to configure API
# DO NOT proceed with voice selection until API is configured
# OR user explicitly confirms to use default voice
# Step 1: Get the selection prompt to show user
prompt = get_voice_selection_prompt()
print(prompt)
# Agent displays this to user and waits for response
# Step 2: User responds with their choice (e.g., "Shiny" or "灿灿")
user_input = "Shiny" # This comes from user
# Step 3: Find the voice_type from user input
voice_type, voice_name = find_voice_by_name(user_input)
if voice_type:
print(f"Selected voice: {voice_name} ({voice_type})")
# Get detailed info
info = get_voice_info(voice_type)
print(f"Category: {info['category_display']}")
# Step 4: Use the voice to synthesize (API already verified)
tts = VolcanoTTS(
app_id="your_app_id",
access_token="your_access_token",
secret_key="your_secret_key"
)
output_path = tts.synthesize(
text="Hello, this is the selected voice",
voice_type=voice_type,
output_file="output.mp3"
)
print(f"Audio saved to: {output_path}")
else:
print("Voice not found. Please select a valid voice.")
# DO NOT automatically use default - ask user insteadAgent: 🎙️ Please select a voice for text-to-speech synthesis:
Here are our recommended voices by category:
[General - Normal]
• 灿灿/Shiny [DEFAULT] (Chinese) -> voice_type: zh_female_cancan_mars_bigtts
• 快乐小东 (Chinese) -> voice_type: zh_male_xudong_conversation_wvae_bigtts
• 亲切女声 (Chinese) -> voice_type: zh_female_qinqienvsheng_moon_bigtts
[Roleplay]
• 纯真少女 (Chinese) -> voice_type: ICL_zh_female_chunzhenshaonv_e588402fb8ad_tob
• 霸道总裁 (Chinese) -> voice_type: ICL_zh_male_badaozongcai_v1_tob
• 撒娇男友 (Chinese) -> voice_type: ICL_zh_male_sajiaonanyou_tob
[Video Dubbing]
• 猴哥 (Chinese) -> voice_type: zh_male_sunwukong_mars_bigtts
• 熊二 (Chinese) -> voice_type: zh_male_xionger_mars_bigtts
• 佩奇猪 (Chinese) -> voice_type: zh_female_peiqi_mars_bigtts
💡 Tips:
• You can say the voice name (e.g., 'Shiny', '猴哥', '霸道总裁')
• Or provide the voice_type directly
• Type 'list all' to see all 200+ available voices
• Press Enter to use the default voice (Shiny) - **only if API is configured**
⚠️ **Note**: Voice selection requires API credentials. If not configured, you must configure API first or explicitly confirm to use default voice.
Which voice would you like to use?
User: I want to use 猴哥
Agent: [Calls skill with voice_type="zh_male_sunwukong_mars_bigtts"]
✅ Generated audio with voice: 猴哥The find_voice_by_name() function supports:
zh_female_cancan_mars_bigtts灿灿, 猴哥, 霸道总裁Shiny, Skye, Alvin灿灿 matches 灿灿/Shiny| Parameter | Description | Default | Options |
|---|---|---|---|
| voice_type | Voice type | zh_female_cancan_mars_bigtts | See voice list below |
| encoding | Audio format | mp3 | mp3, pcm, wav |
| sample_rate | Sample rate | 24000 | 8000, 16000, 24000 |
| speed | Speech speed | 1.0 | 0.5 - 2.0 |
| volume | Volume level | 1.0 | 0.5 - 2.0 |
| cluster | Cluster name | volcano_tts | volcano_tts |
Supported emotions: happy, sad, angry, surprised, fear, hate, excited, coldness, neutral, depressed, lovey-dovey, shy, comfort, tension, tender, storytelling, radio, magnetic, advertising, vocal-fry, ASMR, news, entertainment, dialect
| voice_type | Voice Name | Language |
|---|---|---|
| zh_male_lengkugege_emo_v2_mars_bigtts | Cold Brother (Emotion) | Chinese |
| zh_female_tianxinxiaomei_emo_v2_mars_bigtts | Sweet Xiaomei (Emotion) | Chinese |
| zh_female_gaolengyujie_emo_v2_mars_bigtts | Cold Lady (Emotion) | Chinese |
| zh_male_aojiaobazong_emo_v2_mars_bigtts | Proud CEO (Emotion) | Chinese |
| zh_male_guangzhoudege_emo_mars_bigtts | Guangzhou Brother (Emotion) | Chinese |
| zh_male_jingqiangkanye_emo_mars_bigtts | Beijing Style (Emotion) | Chinese |
| zh_female_linjuayi_emo_v2_mars_bigtts | Neighbor Aunt (Emotion) | Chinese |
| zh_male_yourougongzi_emo_v2_mars_bigtts | Gentleman (Emotion) | Chinese |
| zh_male_ruyayichen_emo_v2_mars_bigtts | Elegant Boyfriend (Emotion) | Chinese |
| zh_male_junlangnanyou_emo_v2_mars_bigtts | Handsome Boyfriend (Emotion) | Chinese |
| zh_male_beijingxiaoye_emo_v2_mars_bigtts | Beijing Guy (Emotion) | Chinese |
| zh_female_roumeinvyou_emo_v2_mars_bigtts | Gentle Girlfriend (Emotion) | Chinese |
| zh_male_yangguangqingnian_emo_v2_mars_bigtts | Sunshine Youth (Emotion) | Chinese |
| zh_female_meilinvyou_emo_v2_mars_bigtts | Charming Girlfriend (Emotion) | Chinese |
| zh_female_shuangkuaisisi_emo_v2_mars_bigtts | Cheerful Sisi (Emotion) | Chinese/American English |
| en_female_candice_emo_v2_mars_bigtts | Candice (Emotion) | American English |
| en_female_skye_emo_v2_mars_bigtts | Serena (Emotion) | American English |
| en_male_glen_emo_v2_mars_bigtts | Glen (Emotion) | American English |
| en_male_sylus_emo_v2_mars_bigtts | Sylus (Emotion) | American English |
| en_male_corey_emo_v2_mars_bigtts | Corey (Emotion) | British English |
| en_female_nadia_tips_emo_v2_mars_bigtts | Nadia (Emotion) | British English |
| zh_male_shenyeboke_emo_v2_mars_bigtts | Late Night Podcast (Emotion) | Chinese |
| voice_type | Voice Name | Language |
|---|---|---|
| zh_female_cancan_mars_bigtts | Shiny (灿灿) ⭐Default | Chinese/American English |
| zh_female_qinqienvsheng_moon_bigtts | Friendly Female | Chinese |
| zh_male_xudong_conversation_wvae_bigtts | Happy Xiaodong | Chinese |
| zh_female_shuangkuaisisi_moon_bigtts | Cheerful Sisi/Skye | Chinese/American English |
| zh_male_wennuanahu_moon_bigtts | Warm Ahu/Alvin | Chinese/American English |
| zh_male_yangguangqingnian_moon_bigtts | Sunshine Youth | Chinese |
| zh_female_linjianvhai_moon_bigtts | Girl Next Door | Chinese |
| zh_male_yuanboxiaoshu_moon_bigtts | Knowledgeable Uncle | Chinese |
| zh_female_gaolengyujie_moon_bigtts | Cold Lady | Chinese |
| zh_male_aojiaobazong_moon_bigtts | Proud CEO | Chinese |
| zh_female_meilinvyou_moon_bigtts | Charming Girlfriend | Chinese |
| zh_male_shenyeboke_moon_bigtts | Late Night Podcast | Chinese |
| zh_male_dongfanghaoran_moon_bigtts | Oriental Haoran | Chinese |
| voice_type | Voice Name | Language |
|---|---|---|
| ICL_zh_female_chunzhenshaonv_e588402fb8ad_tob | Innocent Girl | Chinese |
| ICL_zh_male_xiaonaigou_edf58cf28b8b_tob | Cute Boy | Chinese |
| ICL_zh_female_jinglingxiangdao_1beb294a9e3e_tob | Elf Guide | Chinese |
| ICL_zh_male_menyoupingxiaoge_ffed9fc2fee7_tob | Silent Guy | Chinese |
| ICL_zh_male_anrenqinzhu_cd62e63dcdab_tob | Dark Lord | Chinese |
| ICL_zh_male_badaozongcai_v1_tob | Dominant CEO | Chinese |
| ICL_zh_male_bingruogongzi_tob | Sickly Gentleman | Chinese |
| ICL_zh_female_bingjiao3_tob | Evil Queen | Chinese |
| ICL_zh_male_shuanglangshaonian_tob | Cheerful Youth | Chinese |
| ICL_zh_male_sajiaonanyou_tob | Clingy Boyfriend | Chinese |
| ICL_zh_male_wenrounanyou_tob | Gentle Boyfriend | Chinese |
| ICL_zh_male_tiancaitongzhuo_tob | Genius Deskmate | Chinese |
| ICL_zh_male_bingjiaoshaonian_tob | Yandere Youth | Chinese |
| ICL_zh_male_bingjiaonanyou_tob | Yandere Boyfriend | Chinese |
| ICL_zh_male_bingruoshaonian_tob | Sickly Youth | Chinese |
| ICL_zh_male_bingjiaogege_tob | Yandere Brother | Chinese |
| ICL_zh_female_bingjiaojiejie_tob | Yandere Sister | Chinese |
| ICL_zh_male_bingjiaodidi_tob | Yandere Brother (Young) | Chinese |
| ICL_zh_female_bingruoshaonv_tob | Sickly Girl | Chinese |
| ICL_zh_female_bingjiaomengmei_tob | Yandere Cute Girl | Chinese |
| ICL_zh_male_bingjiaobailian_tob | Yandere White Lotus | Chinese |
| voice_type | Voice Name | Language |
|---|---|---|
| zh_male_M100_conversation_wvae_bigtts | Gentleman | Chinese |
| zh_female_maomao_conversation_wvae_bigtts | Quiet Maomao | Chinese |
| zh_male_tiancaitongsheng_mars_bigtts | Child Prodigy | Chinese |
| zh_male_sunwukong_mars_bigtts | Monkey King | Chinese |
| zh_male_xionger_mars_bigtts | Bear Two | Chinese |
| zh_female_peiqi_mars_bigtts | Peppa Pig | Chinese |
| zh_female_wuzetian_mars_bigtts | Empress Wu | Chinese |
| zh_female_yingtaowanzi_mars_bigtts | Cherry Maruko | Chinese |
| zh_male_silang_mars_bigtts | Silang | Chinese |
| zh_male_jieshuonansheng_mars_bigtts | Narrator/Morgan | Chinese/American English |
| voice_type | Voice Name | Language |
|---|---|---|
| zh_male_changtianyi_mars_bigtts | Mystery Narrator | Chinese |
| zh_male_ruyaqingnian_mars_bigtts | Elegant Youth | Chinese |
| zh_male_baqiqingshu_mars_bigtts | Dominant Uncle | Chinese |
| zh_male_qingcang_mars_bigtts | Qingcang | Chinese |
| zh_female_gufengshaoyu_mars_bigtts | Ancient Style Lady | Chinese |
| zh_female_wenroushunv_mars_bigtts | Gentle Lady | Chinese |
| voice_type | Voice Name | Language |
|---|---|---|
| en_female_lauren_moon_bigtts | Lauren | American English |
| en_male_michael_moon_bigtts | Michael | American English |
| en_male_bruce_moon_bigtts | Bruce | American English |
| en_female_emily_mars_bigtts | Emily | British English |
| en_male_smith_mars_bigtts | Smith | British English |
| en_female_anna_mars_bigtts | Anna | British English |
| voice_type | Voice Name | Language |
|---|---|---|
| zh_male_hupunan_mars_bigtts | Shanghai Male | Chinese |
| zh_male_lubanqihao_mars_bigtts | Luban No.7 | Chinese |
| zh_female_yangmi_mars_bigtts | Lin Xiao | Chinese |
| zh_female_linzhiling_mars_bigtts | Sister Lingling | Chinese |
| zh_female_jiyejizi2_mars_bigtts | Kasukabe Sister | Chinese |
| zh_male_tangseng_mars_bigtts | Tang Monk | Chinese |
| zh_male_zhuangzhou_mars_bigtts | Zhuang Zhou | Chinese |
| zh_male_zhubajie_mars_bigtts | Zhu Bajie | Chinese |
| zh_female_ganmaodianyin_mars_bigtts | Sick Electronic Sister | Chinese |
| zh_female_naying_mars_bigtts | Frank Ying | Chinese |
| zh_female_leidian_mars_bigtts | Female Thor | Chinese |
| voice_type | Voice Name | Language |
|---|---|---|
| zh_female_yueyunv_mars_bigtts | Cantonese Girl | Chinese |
| zh_male_yuzhouzixuan_moon_bigtts | Henan Boy | Chinese-Henan Accent |
| zh_female_daimengchuanmei_moon_bigtts | Sichuan Girl | Chinese-Sichuan Accent |
| zh_male_guangxiyuanzhou_moon_bigtts | Guangxi Boy | Chinese-Guangxi Accent |
| zh_male_zhoujielun_emo_v2_mars_bigtts | Nunchaku Guy | Chinese-Taiwan Accent |
| zh_female_wanwanxiaohe_moon_bigtts | Taiwan Xiaohe | Chinese-Taiwan Accent |
| zh_female_wanqudashu_moon_bigtts | Bay Area Uncle | Chinese-Guangdong Accent |
| zh_male_guozhoudege_moon_bigtts | Guangzhou Brother | Chinese-Guangdong Accent |
| zh_male_haoyuxiaoge_moon_bigtts | Qingdao Boy | Chinese-Qingdao Accent |
| zh_male_beijingxiaoye_moon_bigtts | Beijing Guy | Chinese-Beijing Accent |
| zh_male_jingqiangkanye_moon_bigtts | Beijing Style/Harmony | Chinese-Beijing/American English |
| zh_female_meituojieer_moon_bigtts | Changsha Girl | Chinese-Changsha Accent |
| voice_type | Voice Name | Language |
|---|---|---|
| ICL_zh_female_lixingyuanzi_cs_tob | Rational Yuanzi | Chinese |
| ICL_zh_female_qingtiantaotao_cs_tob | Sweet Taotao | Chinese |
| ICL_zh_female_qingxixiaoxue_cs_tob | Clear Xiaoxue | Chinese |
| ICL_zh_female_qingtianmeimei_cs_tob | Sweet Meimei | Chinese |
| ICL_zh_female_kailangtingting_cs_tob | Cheerful Tingting | Chinese |
| ICL_zh_male_qingxinmumu_cs_tob | Fresh Mumu | Chinese |
| ICL_zh_male_shuanglangxiaoyang_cs_tob | Cheerful Xiaoyang | Chinese |
| ICL_zh_male_qingxinbobo_cs_tob | Fresh Bobo | Chinese |
| ICL_zh_female_wenwanshanshan_cs_tob | Gentle Shanshan | Chinese |
| ICL_zh_female_tianmeixiaoyu_cs_tob | Sweet Xiaoyu | Chinese |
| ICL_zh_female_reqingaina_cs_tob | Enthusiastic Aina | Chinese |
| ICL_zh_female_tianmeixiaoju_cs_tob | Sweet Xiaoju | Chinese |
| ICL_zh_male_chenwenmingzai_cs_tob | Steady Mingzai | Chinese |
| ICL_zh_male_qinqiexiaozhuo_cs_tob | Friendly Xiaozhuo | Chinese |
| ICL_zh_female_lingdongxinxin_cs_tob | Lively Xinxin | Chinese |
| ICL_zh_female_guaiqiaokeer_cs_tob | Good Keer | Chinese |
| ICL_zh_female_nuanxinqianqian_cs_tob | Warm Qianqian | Chinese |
| ICL_zh_female_ruanmengtuanzi_cs_tob | Soft Tuanzi | Chinese |
| ICL_zh_male_yangguangyangyang_cs_tob | Sunny Yangyang | Chinese |
| ICL_zh_female_ruanmengtangtang_cs_tob | Soft Tangtang | Chinese |
| ICL_zh_female_xiuliqianqian_cs_tob | Beautiful Qianqian | Chinese |
| ICL_zh_female_kaixinxiaohong_cs_tob | Happy Xiaohong | Chinese |
| ICL_zh_female_qingyingduoduo_cs_tob | Light Duoduo | Chinese |
| zh_female_kefunvsheng_mars_bigtts | Warm Female | Chinese |
Tip: Use
python scripts/tts.py --list-voicesto see the complete voice list
Cause: Account lacks TTS service permission
Solution:
Cause: Authentication information error
Solution:
Cause: Voice type or cluster name error
Solution:
Run test script to try multiple configurations:
python scripts/test_tts.py© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts) in skills/doubao-api-open-tts of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Doubao Open Tts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Doubao Open Tts this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~6k | Automated safety check: Notes | MIT | |
| MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo | 130k | — | ~2.1k | Automated safety check: Warn | MIT | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Openspec OnboardSAP/e-mobility-charging-stations-simulator | 227 | 25 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Blog AudioAgriciDaniel/claude-blog | 2.3k | 1 repos | ~2.2k | Automated safety check: Notes | MIT | |
| Musictadaspetra/loop | 296 | 2 repos | ~827 | Automated safety check: Pass | MIT |
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
SAP/e-mobility-charging-stations-simulator
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.
AgriciDaniel/claude-blog
Generate audio narration of blog posts using Google Gemini TTS.
tadaspetra/loop
Generate music using ElevenLabs Music API. An agent skill from tadaspetra/loop.
hoquanghai/Auto-Create-Video
Tạo video tin tức ngắn 9:16 (~60s) từ URL bài báo hoặc file .txt tiếng Việt.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Categories
Text-to-Speech service using Doubao (Volcano Engine) API with 200+ voices, interactive voice selection, and multilingual support. Doubao Open Tts is an agent skill from LeoYeAI/openclaw-master-skills.
Doubao Open Tts fits situations like: tasks that involve Text to speech and voice.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a claude-code`. Or copy the skill folder (skills/doubao-api-open-tts in LeoYeAI/openclaw-master-skills) into .claude/skills/doubao-open-tts in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a codex`. Or copy the skill folder (skills/doubao-api-open-tts in LeoYeAI/openclaw-master-skills) into .agents/skills/doubao-open-tts in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill doubao-open-tts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doubao-open-tts, .gemini/skills/doubao-open-tts, .github/skills/doubao-open-tts and .opencode/skills/doubao-open-tts in your project.
Going by SKILL.md and its folder, Doubao Open Tts needs Python for the scripts in its folder, the command-line tools its instructions call (python and pip) and credentials named VOLCANO_TTS_ACCESS_TOKEN and VOLCANO_TTS_SECRET_KEY. Our summary lists: Python 3; A credential in VOLCANO_TTS_ACCESS_TOKEN; A credential in VOLCANO_TTS_SECRET_KEY. Compatibility (from SKILL.md): opencode.
SKILL.md names 1 domain. In commands or code: console.volcengine.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Doubao Open Tts is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 6k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Doubao Open Tts: MoneyPrinterTurbo Video Generator (harry0703/MoneyPrinterTurbo, 130k stars), HyperFrames Media Use (heygen-com/hyperframes, 60k stars), Openspec Onboard (SAP/e-mobility-charging-stations-simulator, 227 stars) and Blog Audio (AgriciDaniel/claude-blog, 2.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.