# tts-skill > Multi-engine text-to-speech skill. Supports Qwen3-TTS local voice cloning, VoiceCraft online TTS, and OpenAI TTS. - Author: Tε…ˆη”Ÿεˆ†δΊ« - Repository: tabortao/tts-skill - Version: 20260129091219 - Stars: 2 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/tabortao/tts-skill - Web: https://mule.run/skillshub/@@tabortao/tts-skill~tts-skill:20260129091219 --- --- name: tts-skill description: Multi-engine text-to-speech skill. Supports Qwen3-TTS local voice cloning, VoiceCraft online TTS, and OpenAI TTS. --- # πŸŽ™οΈ TTS-Skill β€” Multi-Engine Text-to-Speech TTS-Skill provides a single entrypoint for generating speech using multiple backends, with consistent output naming and progress feedback for long-running jobs. ## Engines - **qwen3-tts**: local voice cloning with a reference audio + transcript - **edge-tts**: online voices with speed/pitch/style controls - **openai-tts**: OpenAI speech generation via API ## Command Syntax ```text /tts-skill [engine] [text] --voice [voice-keyword] [other options] ``` If you use the Python entrypoint: ```bash python tts-skill.py [engine] [text] --voice [voice-keyword] ``` ## Text Input Pass text as a positional argument, or use `--text-file` / `-f` to read from a file. Example: ```bash python tts-skill.py qwen3-tts --text-file "input\\text.txt" --voice 寒冰射手 ``` Notes: - `--text-file` supports relative and absolute paths; relative paths are resolved from your current working directory - If both positional text and `--text-file` are provided, `--text-file` takes priority - UTF-8 is recommended (UTF-8 BOM is supported); on decode error it falls back to GBK You can also call engine scripts directly: ```bash python engines/qwen3-tts-cli.py --text-file "input\\text.txt" --voice 寒冰射手 python engines/edge-tts-cli.py --text-file "input\\text.txt" --voice xiaoxiao python engines/openai-tts-cli.py --text-file "input\\text.txt" --voice alloy ``` ## Local Voice Assets (Qwen3-TTS) To add a clone voice, put a matching pair of files in `assets/`: ```text assets/Lei.wav assets/Lei.txt ``` Supported audio formats: `.wav`, `.mp3`, `.m4a`, `.flac`. Then: ```bash python tts-skill.py qwen3-tts "ζ΅‹θ―•ζ–‡ζœ¬" --voice Lei ``` ## Output If `--output` is not provided: - Output directory: `output/` - Filename pattern: `YYYYMMDD_HHMMSS_.` ## Progress & Timing (Qwen3-TTS) Qwen3-TTS jobs print a live progress bar with ETA. After completion, `tts-skill.py` prints: - total runtime - total chars and Chinese chars - average seconds per Chinese character (or per char if no Chinese) ## Project Layout ```text tts-skill/ β”œβ”€β”€ .trae/ β”‚ └── plans/ β”œβ”€β”€ assets/ β”‚ β”œβ”€β”€ Lei.txt β”‚ β”œβ”€β”€ 寒冰射手.txt β”‚ β”œβ”€β”€ εΈƒι‡ŒθŒ¨.txt β”‚ └── θ΅΅δΏ‘.txt β”œβ”€β”€ engines/ β”‚ β”œβ”€β”€ edge-tts-cli.py β”‚ β”œβ”€β”€ edge-tts.config β”‚ β”œβ”€β”€ openai-tts-cli.py β”‚ β”œβ”€β”€ openai-tts.config β”‚ β”œβ”€β”€ qwen3-tts-cli.py β”‚ └── qwen3-tts.config β”œβ”€β”€ input/ β”‚ └── text.txt β”œβ”€β”€ output/ β”œβ”€β”€ tts-skill.py β”œβ”€β”€ INSTALL.md β”œβ”€β”€ INSTALL.zh-CN.md β”œβ”€β”€ README.md β”œβ”€β”€ README.zh-CN.md β”œβ”€β”€ SKILL.md └── SKILL.zh-CN.md ``` ## Chinese Spec See [SKILL.zh-CN.md](SKILL.zh-CN.md).