Ttscn
Multi-platform Chinese & multilingual TTS text-to-speech via Edge/Doubao/CosyVoice/Qwen3/StepFun/GLM-TTS/Azure/Tencent/Baidu/MiniMax/Xunfei plus ElevenLabs/OpenAI/Google/Atlas Cloud — 15 backends, word-level timestamps, [PAUSE:x] pause markers, pinyin pronunciation overrides
- Skill ID
- agents365-ai/365-skills/ttscn
- Publisher
- agents365-ai
- Repository
- 365-skills
- Installs
- 0
- Files
- 28
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
agents365-ai/365-skills/ttscnInstalls these files- SKILL.md
- data/providers.json
- docs/providers.html
- docs/providers.md
- scripts/backends/__init__.py
- scripts/backends/atlas.py
- scripts/backends/azure.py
- scripts/backends/baidu.py
- scripts/backends/cosyvoice.py
- scripts/backends/doubao.py
- scripts/backends/edge.py
- scripts/backends/elevenlabs.py
- scripts/backends/google.py
- scripts/backends/minimax.py
- scripts/backends/openai.py
- scripts/backends/qwen.py
- scripts/backends/stepfun.py
- scripts/backends/tencent.py
- scripts/backends/xunfei.py
- scripts/backends/zhipu.py
- scripts/build_docs.py
- scripts/clone.py
- scripts/idempotency.py
- scripts/markers.py
- scripts/output.py
- scripts/phonemes.py
- scripts/tts.py
- tests/test_atlas_backend.py
What this skill tells the agent
ttscn — Multi-Platform Chinese TTS Skill
Overview
Generate natural speech audio from text. 15 backends — 11 China-friendly clouds plus 4 international or unified APIs (ElevenLabs / OpenAI / Google / Atlas Cloud).
| # | Backend | Cost | Key strength |
|---|---|---|---|
| 1 | Edge TTS (default) | Free | No API key, works everywhere |
| 2 | Doubao (ByteDance) | ~1 RMB/10K | Best Chinese naturalness (9/10) |
| 3 | CosyVoice (Alibaba) | ~0.2 RMB/1K | Fast streaming, flexible |
| 4 | Qwen3-TTS (Alibaba) | ~1 RMB/10K | 10 languages, instruction control |
| 5 | StepFun (阶跃星辰) | Low cost | OpenAI-compatible, ~10s cloning |
| 6 | GLM-TTS (Zhipu) | Low cost | Emotion control, simple REST |
| 7 | Azure (Microsoft) | ~1 USD/M chars | Enterprise SSML, eastasia |
| 8 | Tencent Cloud | 0.75 RMB/10K | Lowest cost, 380+ voices |
| 9 | Baidu AI | Flexible | 30+ voices, emotion + dialects |
| 10 | MiniMax | ~$0.10/1K | Best quality, 300+ voices, cloning |
| 11 | iFlytek Xunfei | ~2 RMB/10K | MOS 4.8, 500+ voices, pro grade |
| 12 | ElevenLabs | Paid tiers (from $5/mo) | Top voice quality, instant cloning |
| 13 | OpenAI TTS | ~$15-30/M chars | 6 voices, multilingual, simple REST |
| 14 | Google Cloud TTS | ~$16/M chars (free tier) | 220+ voices, 40+ languages |
| 15 | Atlas Cloud TTS | Per-model pricing | Unified async API, multilingual voices |
New in 1.4–1.6: word-level timestamps (edge/azure/doubao/minimax/cosyvoice — best-effort, degrades to no boundaries), [PAUSE:x] + sound-tag markers (all platforms), --phonemes pronunciation overrides (azure/minimax). New in 1.7: --json flag (JSON envelope independent of --format), idempotency hits report cached: true and re-synthesize if the cached audio was deleted, --input f out.wav positional fixed, chunker never splits inside [PAUSE:x]. New in 1.8: MiniMax defaults to speech-2.8-hd (sound tags voiced out of the box), CosyVoice v3.5-flash supported (custom/cloned voices only — presets need cosyvoice-v3-flash). New in 1.9: Qwen3-TTS (DashScope, reuses DASHSCOPE_API_KEY), StepFun (reuses STEP_API_KEY), GLM-TTS (reuses ZHIPUAI_API_KEY) and Atlas Cloud TTS (asynchronous generation, bounded polling, credential-free media download, multilingual voice presets) backends — 15 backends total.
Cross-platform: Windows, macOS, Linux
All paths in this document are relative to this skill's root directory (the directory containing this SKILL.md) — resolve them against it.
When to Use This Skill
Automatically activate this skill when:
- User wants to convert Chinese text to speech audio
- Generating voice narration or voiceover for videos
- Creating audiobook or podcast audio from text
- User asks to compare TTS providers, choose a TTS backend, or see what voices are available
- User asks about TTS pricing, features, or which provider supports cloning/SSML/dialects
- User mentions any of: TTS, text-to-speech, 语音合成, 文字转语音, Edge TTS, Doubao TTS, CosyVoice, 火山引擎, 阿里云语音, Azure TTS, 腾讯云TTS, 百度语音, MiniMax, 讯飞语音, ElevenLabs, OpenAI TTS, Google Cloud TTS, Atlas Cloud TTS
- User needs word-level timestamps/subtitles, pause control, or fixing mispronounced Chinese characters (多音字)
- Any task where Chinese text-to-speech would be helpful
Provider Comparison Page
When the user wants to browse, compare, or choose a TTS provider, ALWAYS open the local HTML comparison page in their browser FIRST — it's a visual, filterable table that is much faster to scan than reading text output.
# Cross-platform (path relative to this skill's directory)
python3 -m webbrowser docs/providers.html
# …or the platform-native opener: open (macOS) / xdg-open (Linux) / start (Windows)The comparison page includes:
- Filterable table — filter by free, SSML, voice cloning, streaming, dialects, multilingual
- Per-provider detail panels — cost, max chars/duration, clone method, emotion, languages
- Voice cards — recommended voices with style descriptions and best-use labels
- API key links — direct links to each provider's console for key acquisition
This page is auto-generated from data/providers.json (the single source of truth for all provider/voice data). Run python3 scripts/build_docs.py to regenerate it after editing the JSON. The same data is queryable on the CLI via python3 scripts/tts.py schema backends|voices (see Schema Introspection).
After opening the page, ask the user which backend and voice they'd like to use, then proceed to Step 2.
Workflow
Step 0 — Show the comparison page (when comparing/choosing)
If the user is browsing, comparing providers, or unsure which backend to use, open docs/providers.html as shown above. Let them explore, then ask which backend + voice they want.
Step 1 — Understand the request
Clarify what the user needs:
- Text: inline text or a file? Short or long-form?
- Voice style: male/female, young/mature, warm/energetic? (see voice guide below)
- Speed: normal, faster (+10-20%), slower (-10-20%)?
- Format: WAV (lossless) or MP3 (compressed)?
Step 2 — Pick a backend & voice
Choose based on the use case (see Backend Selection Guide). Default to Edge TTS with zh-CN-XiaoxiaoNeural (female, warm, standard) if unsure. Mention your choice.
Step 3 — Synthesize
Run scripts/tts.py with the text and chosen options.
Step 4 — Report
Confirm: output path, file size, audio duration.
Backend Selection Guide
Quick Pick
| Use case | Backend | Voice | Why |
|---|---|---|---|
| Default / general | edge | zh-CN-XiaoxiaoNeural | Free, no setup |
| Short video / Douyin | doubao | BV001_streaming | Native short-video style |
| Audiobook / long-form | cosyvoice | longxiaochun_v3 | Fast synthesis, natural |
| Enterprise / SSML | azure | zh-CN-XiaoxiaoNeural | Rich prosody control |
| Bulk / lowest cost | tencent | 101001 | 0.75 RMB/10K chars |
| Emotion / dialects | baidu | 3 or 4 | Emotion synthesis, Cantonese |
| Best quality / cloning | minimax | female-shaonv | speech-2.8-hd, voice design |
| Education / pro | xunfei | xiaoyan | MOS 4.8, 500+ voices |
| Male narration | edge | zh-CN-YunxiNeural | Energetic male voice |
| Documentary | azure | zh-CN-YunyangNeural | Deep, professional male |
| Children's content | edge | zh-CN-XiaomengNeural | Bright, youthful female |
| Cost-sensitive | edge | zh-CN-XiaoxiaoNeural | Completely free |
| English, top quality | elevenlabs | 21m00Tcm4TlvDq8ikWAM (Rachel) | Best-in-class English voices |
| English, simple/cheap | openai | alloy | tts-1-hd, one env var |
| English, enterprise | en-US-Neural2-F | 220+ voices, free tier | |
| Multilingual / instruct | qwen | Cherry | 10 languages, natural-language style control, reuses your DASHSCOPE key |
| Marketing / fast | stepfun | cixingnansheng | OpenAI-compatible, reuses your STEP key |
| Simple / emotion | zhipu | tongtong | Minimal REST, reuses your ZHIPUAI key |
Full capability & voice data
The complete capability matrix (cost, max chars/duration per chunk, SSML, cloning method + cost, emotion, dialects, languages, streaming, setup difficulty) and the per-backend voice lists live in one place: data/providers.json. View them via:
- The comparison page (
docs/providers.html) — best for humans python3 scripts/tts.py schema backends --full— full capability fields per backendpython3 scripts/tts.py schema voices— every voice preset with style descriptionspython3 scripts/tts.py --list— human-readable terminal summary
Do not maintain copies of these tables elsewhere — regenerate from the JSON.
Voice Cloning (clone command)
Create a custom voice from reference audio, store it under a name, then use
More from agents365-ai
Use this skill in a project
Open any RiverX project, search the Skills panel for agents365-ai/365-skills/ttscn, and install it in one click.
