$npx -y skills add QwenCloud/qwencloud-ai --skill qwencloud-audio-tts[QwenCloud] Synthesize speech from text with Qwen TTS models. TRIGGER when: user wants to convert text to speech, create voiceovers, generate audio narration, read text aloud, build TTS applications, mentions speech synthesis/voice generation/audio output from text, or explicitly
| 1 | > **Agent setup**: If your agent doesn't auto-load skills (e.g. Claude Code), |
| 2 | > see [agent-compatibility.md](references/agent-compatibility.md) once per session. |
| 3 | |
| 4 | # Qwen Audio TTS (Text-to-Speech) |
| 5 | |
| 6 | Synthesize natural speech from text using Qwen TTS models. |
| 7 | This skill is part of **qwencloud/qwencloud-ai**. |
| 8 | |
| 9 | ## Skill directory |
| 10 | |
| 11 | Use this skill's internal files to execute and learn. Load reference files on demand when the default path fails or you need details. |
| 12 | |
| 13 | | Location | Purpose | |
| 14 | |----------|---------| |
| 15 | | `scripts/tts.py` | Qwen TTS (HTTP API) — qwen3-tts-flash, qwen3-tts-instruct-flash | |
| 16 | | `scripts/tts_cosyvoice.py` | CosyVoice (WebSocket API) — requires `dashscope` SDK | |
| 17 | | `references/cosyvoice-guide.md` | CosyVoice setup, voices, examples, errors | |
| 18 | | `references/execution-guide.md` | Fallback: curl (standard, instruct, streaming), code generation | |
| 19 | | `references/prompt-guide.md` | Text formatting for speech, instructions templates, voice selection | |
| 20 | | `references/api-guide.md` | API supplement | |
| 21 | | `references/sources.md` | Official documentation URLs | |
| 22 | | `references/agent-compatibility.md` | Agent self-check: register skills in project config for agents that don't auto-load | |
| 23 | |
| 24 | ## Security |
| 25 | |
| 26 | **NEVER output any API key or credential in plaintext.** Always use variable references (`$DASHSCOPE_API_KEY` in shell, `os.environ["DASHSCOPE_API_KEY"]` in Python). Any check or detection of credentials must be **non-plaintext**: report only status (e.g. "set" / "not set", "valid" / "invalid"), never the value. Never display contents of `.env` or config files that may contain secrets. |
| 27 | |
| 28 | **When the API key is not configured, NEVER ask the user to provide it directly.** Instead, help create a `.env` file with a placeholder (`DASHSCOPE_API_KEY=sk-your-key-here`) and instruct the user to replace it with their actual key from the [QwenCloud Console](https://home.qwencloud.com/api-keys). Only write the actual key value if the user explicitly requests it. |
| 29 | |
| 30 | ## Key Compatibility |
| 31 | |
| 32 | Scripts require a **standard QwenCloud API key** (`sk-...`). Coding Plan keys (`sk-sp-...`) cannot be used — TTS models are not available on Coding Plan, and Coding Plan does not support the native QwenCloud API. The script detects `sk-sp-` keys at startup and prints a warning. If qwencloud-ops-auth is installed, see its `references/codingplan.md` for full details. |
| 33 | |
| 34 | ## Model Selection |
| 35 | |
| 36 | ### Qwen TTS (HTTP API) — use `scripts/tts.py` |
| 37 | |
| 38 | | Model | Use Case | Notes | |
| 39 | |-------|----------|-------| |
| 40 | | `qwen3-tts-flash` | **Recommended** (standard) — fast, multi-language | Cost-effective, widely available | |
| 41 | | `qwen3-tts-instruct-flash` | Instruction-guided style control | Tone/emotion via instructions | |
| 42 | |
| 43 | ### CosyVoice (WebSocket API) — use `scripts/tts_cosyvoice.py` |
| 44 | |
| 45 | | Model | Use Case | |
| 46 | |-------|----------| |
| 47 | | `cosyvoice-v3-flash` | High quality, fast | |
| 48 | | `cosyvoice-v3-plus` | Highest quality | |
| 49 | |
| 50 | > **Note**: CosyVoice requires `dashscope` SDK and uses different voices. See [cosyvoice-guide.md](references/cosyvoice-guide.md). |
| 51 | |
| 52 | 1. **User specified a model** → use the appropriate script: |
| 53 | - `qwen3-tts-*` → `scripts/tts.py` |
| 54 | - `cosyvoice-*` → `scripts/tts_cosyvoice.py` |
| 55 | 2. **Consult the qwencloud-model-selector skill** when model choice depends on capability, scenario, or pricing. |
| 56 | 3. **No signal, clear task** → `qwen3-tts-flash` via `tts.py` (default for standard tasks). |
| 57 | |
| 58 | > **⚠️ Important**: The model list above is a **point-in-time snapshot** and may be outdated. Model availability |
| 59 | > changes frequently. **Always check the [official model list](https://www.qwencloud.com/models) |
| 60 | > for the authoritative, up-to-date catalog before making model decisions.** |
| 61 | |
| 62 | > **Model details**: For more information about a specific model, direct the user to its detail page: `https://www.qwencloud.com/models/<model-name>` (replace `<model-name>` with the exact model ID, e.g. `qwen3-tts-flash` → https://www.qwencloud.com/models/qwen3-tts-flash). NEVER modify or guess the model name in the URL. |
| 63 | |
| 64 | > **Dynamic model queries**: If the **qwencloud-model-selector** skill or **QwenCloud CLI** (`qwencloud models info <model>`) is available, use it for real-time model data. CLI requires authentication — see the **qwencloud-usage** skill for login flow. |
| 65 | |
| 66 | ## Available Voices |
| 67 | |
| 68 | | Voice | Description | Script | |
| 69 | |-------|-------------|--------| |
| 70 | | Cherry, Ethan, Serena | Qwen TTS system vo |