doubao-tts
Skill584 starsChanged 59 days agoMITView on GitHub
Use Doubao Text-to-Speech (Volcengine TTS) to convert text into audio files. When a user mentions "Doubao TTS," "Doubao Text-to-Speech," "doubao tts," "Volcengine TTS," "volcengine tts," "speech synthesis," "text-to-speech," "TTS," "generate audio," "read text aloud," or any scenario requiring the Doubao/Volcengine Text-to-Speech API, this skill must be triggered.
- Reads credentials
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Use the Volcengine Doubao Text-to-Speech V3 HTTP SSE unidirectional streaming API to convert text into audio files.
- Distinctive: line 15
Create an application or use an existing one
- Distinctive: line 35
Check whether they are configured:
- Very specific: line 42
If they are not configured, tell the user to set them (prefer API Key): Set DOUBAO_TTS_API_KEY | [Set
- Very specific: line 50
Call the script: /var/minis/skills/doubao-tts/scripts/tts.py
- Very specific: line 144
Check whether environment variables are configured (first DOUBAO_TTS_API_KEY, then DOUBAO_TTS_APPID + DOUBAO_TTS_TOKEN)
- Very specific: line 145
Call the tts.py script to generate an audio file in /var/minis/workspace/
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Doubao TTS Skill (V3)
Use the Volcengine Doubao Text-to-Speech V3 HTTP SSE unidirectional streaming API to convert text into audio files.
Get an API Key (Recommended, New Console)
- Log in to the Volcengine Console
- Go to Doubao Voice → Text-to-Speech Large Model → Application Management
- Create an application or use an existing one
- On the API Key Management page, get the API Key → corresponding to
DOUBAO_TTS_API_KEY
If you have not enabled the service yet, enable it first on the Text-to-Speech Large Model page.
Legacy Console (AppID + Token)
At the bottom of the application details page in the legacy console, you can find:
- APP ID →
DOUBAO_TTS_APPID - Access Token →
DOUBAO_TTS_TOKEN
Environment Variables
| Variable Name | Description | Recommended |
DOUBAO_TTS_API_KEY | API Key (new console, X-Api-Key) | ✅ |
DOUBAO_TTS_APPID | AppID (legacy console, X-Api-App-Id) | |
DOUBAO_TTS_TOKEN | Access Token (legacy console, X-Api-Access-Key) | |
DOUBAO_TTS_RESOURCE_ID | Resource ID; leave blank to use the default seed-tts-2.0 |
Check whether they are configured:
[ -n "$DOUBAO_TTS_API_KEY" ] && echo "API_KEY: set" || echo "API_KEY: not set"
[ -n "$DOUBAO_TTS_APPID" ] && echo "APPID: set" || echo "APPID: not set"
[ -n "$DOUBAO_TTS_TOKEN" ] && echo "TOKEN: set" || echo "TOKEN: not set"If they are not configured, tell the user to set them (prefer API Key): Set DOUBAO_TTS_API_KEY | Set DOUBAO_TTS_RESOURCE_ID
Legacy console (AppID + Token): Set DOUBAO_TTS_APPID | Set DOUBAO_TTS_TOKEN
Usage
Call the script: /var/minis/skills/doubao-tts/scripts/tts.py
# Basic usage
uv run --script --cache-dir /root/.cache/uv \
/var/minis/skills/doubao-tts/scripts/tts.py \
--text "Hello, and welcome to Doubao Text-to-Speech." \
--output /var/minis/workspace/output.mp3
# Specify voice and speech rate
uv run --script --cache-dir /root/.cache/uv \
/var/minis/skills/doubao-tts/scripts/tts.py \
--text "The weather is really nice today." \
--speaker zh_female_cancan_uranus_bigtts \
--speech-rate 10 \
--output /var/minis/workspace/output.mp3
# English
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.mp3API Description
- Endpoint:
https://openspeech.bytedance.com/api/v3/tts/unidirectional/sse(SSE streaming) - Authentication (choose one):
- New console: Header
X-Api-Key(API Key) - Legacy console: Header
X-Api-App-Id+X-Api-Access-Key(AppID + Token)
- New console: Header
- Resource ID: Specifies the model version to call (see the table below)
- Usage response: The script includes
X-Control-Require-Usage-Tokens-Return: text_wordsby default, which returns the number of billable characters (text_words) when synthesis ends
| Resource ID | Description |
seed-tts-1.0 | Doubao Text-to-Speech Model 1.0 character version (default, compatible with all BV*_streaming voices) |
seed-tts-1.0-concurr | Doubao Text-to-Speech Model 1.0 concurrency version |
seed-tts-2.0 | Doubao Text-to-Speech Model 2.0 (supports only 2.0 voices) |
Parameters
| Parameter | Description |
--text | Text to synthesize (required) |
--output | Output file path (required) |
--api-key | API Key (new console, takes precedence over APPID/TOKEN) |
--appid | AppID (legacy console) |
--token | Access Token (legacy console) |
--speaker | Voice, default zh_female_shuangkuaisisi_uranus_bigtts (Shuangkuai Sisi 2.0) |
--encoding | Format: mp3/pcm/ogg_opus, default mp3 |
--speech-rate | Speech rate [-50, 100], where 0 is the default and 100 is 2x speed |
--loudness | Volume [-50, 100], where 0 is the default |
--sample-rate | Sample rate, default 24000 |
--emotion | Emotion, such as happy/sad/angry/narrator |
--emotion-scale | Emotion intensity [1, 5] (used with --emotion) |
--resource-id | Resource ID (overrides the environment variable) |
--json | Output result in JSON format |
Quick Reference for Common Voices
Doubao Text-to-Speech Model 2.0 (seed-tts-2.0, recommended)
| speaker | Name | Scenario |
zh_female_shuangkuaisisi_uranus_bigtts | Shuangkuai Sisi 2.0 ⭐ Default | General |
zh_female_cancan_uranus_bigtts | Zhixing Cancan 2.0 | Role-playing |
zh_female_tianmeixiaoyuan_uranus_bigtts | Tianmei Xiaoyuan 2.0 | General |
zh_female_vv_uranus_bigtts | Vivi 2.0 | General, Chinese/Japanese/Indonesian/Mexican Spanish, Sichuan/Shaanxi/Northeastern dialects |
zh_female_xiaohe_uranus_bigtts | Xiaohe 2.0 | General |
zh_male_m191_uranus_bigtts | Yunzhou 2.0 | General |
zh_male_taocheng_uranus_bigtts | Xiaotian 2.0 | General |
zh_female_kefunvsheng_uranus_bigtts | Nuanyang Female Voice 2.0 | Customer service |
en_female_dacey_uranus_bigtts | Dacey | Multilingual (English) |
en_male_tim_uranus_bigtts | Tim | Multilingual (English) |
Doubao Text-to-Speech Model 1.0 (seed-tts-1.0, requires changing --resource-id)
| speaker | Name | Scenario |
BV700_streaming | Cancan | General, supports 22 emotions |
BV001_streaming | General Female Voice | General |
BV002_streaming | General Male Voice | General |
BV701_streaming | Qingcang | Audiobook |
BV503_streaming | Energetic Female Voice-Ariana | English |
⚠️ 1.0 and 2.0 voices cannot be mixed.
seed-tts-2.0supports only voices ending in*_uranus_bigtts.
Common Emotion Values
pleased (pleased) / sorry (sorry) / happy (happy) / sad (sad) / angry (angry) / scare (scared) / surprise (surprised) / hate (disgust) / tear (tearful voice) / narrator (narrator) / storytelling (storytelling)
Complete Workflow
- Check whether environment variables are configured (first
DOUBAO_TTS_API_KEY, thenDOUBAO_TTS_APPID+DOUBAO_TTS_TOKEN) - Call the
tts.pyscript to generate an audio file in/var/minis/workspace/ - Return it to the user as a
minis://workspace/xxx.mp3link, which they can click to play directly.
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- lsongdev/skills★ 092% same
Wrote their own version · 7
- calesthio/OpenMontage★ 74ksame name
- xvirobotics/metabot★ 999same name
- LinHao-city/StoryMind★ 10same name
- WiseWong6/wise-skills★ 10same name
- agentrix-ai/skills★ 1same name
- Gopyr/gopyr-skills-hub★ 0same name
- lizliz404/agent-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- android-devSkill
- android-ui-automationSkill
- apple-remindersSkill
- appstoreprice-hubSkill
- asc-cliSkill
- bilibili-hubSkill
- Clash 控制器Skill
- cloudflare-dnsSkill
- codex-imageSkill
- codex-on-ishSkill
- contact-vcard-extractorSkill
- coredevice-toolkitSkill
- deepseek-usageSkill
- douyin-downloaderSkill
- evidence-chain-builderSkill
- exa-searchSkill
- free-ttsSkill
- fucai3d-latestSkill
- generative-ui-minisSkill
- github-sync-helperSkill
- health-sleep-analysisSkill
- health-training-checkinSkill
- hyperframes-cliSkill
- hyperframesSkill
- ios-devSkill
- korea-stockSkill
- maimai-hubSkill
- memos-apiSkill
- nano-bananaSkill
- notion-hubSkill
- openstreetmap-markerSkill
- pdf-converterSkill
- production-agent-publicSkill
- qbt-hubSkill
- quark-hubSkill
- reverse-dcfSkill
- self-improving-agentSkill
- shortcuts-builderSkill
- shortcut-share-fileSkill
- spotify-hubSkill
- stock-fund-flowSkill
- stock-priceSkill
- tavily-searchSkill
- tg-hubSkill
- todoocardSkill
- twitter-downloaderSkill
- twitter-x-hubSkill
- us-stockSkill
- web-content-extractorSkill
- web-searchSkill
- weibo-hubSkill
- whenpeakSkill
- xianyu-hubSkill
- xiaohongshu-hubSkill
- youtube-downloaderSkill
- ytmusic-hubSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

