qwencloud-audio-tts
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAgent setup: If your agent doesn't auto-load skills (e.g. Claude Code), see agent-compatibility.md once per session.
Agent 设置: 如果你的Agent不会自动加载技能(例如Claude Code), 每次会话首次使用时请查看 agent-compatibility.md。
Qwen Audio TTS (Text-to-Speech)
Qwen Audio TTS (文本转语音)
Synthesize natural speech from text using Qwen TTS models.
This skill is part of qwencloud/qwencloud-ai.
使用Qwen TTS模型将文本合成为自然语音。
本技能属于 qwencloud/qwencloud-ai 套件的一部分。
Skill directory
技能目录
Use this skill's internal files to execute and learn. Load reference files on demand when the default path fails or you need details.
| Location | Purpose |
|---|---|
| Qwen TTS (HTTP API) — qwen3-tts-flash, qwen3-tts-instruct-flash |
| CosyVoice (WebSocket API) — requires |
| CosyVoice setup, voices, examples, errors |
| Fallback: curl (standard, instruct, streaming), code generation |
| Text formatting for speech, instructions templates, voice selection |
| API supplement |
| Official documentation URLs |
| Agent self-check: register skills in project config for agents that don't auto-load |
使用此技能的内部文件执行操作和查阅说明。当默认路径失效或你需要详细信息时,按需加载参考文件。
| 位置 | 用途 |
|---|---|
| Qwen TTS (HTTP API) — 支持qwen3-tts-flash、qwen3-tts-instruct-flash模型 |
| CosyVoice (WebSocket API) — 需要 |
| CosyVoice配置、音色、示例、错误排查 |
| 备用方案:curl(标准、指令版、流式)、代码生成 |
| 语音合成文本格式、指令模板、音色选择 |
| API补充说明 |
| 官方文档链接 |
| Agent自检:为不会自动加载技能的Agent在项目配置中注册技能 |
Security
安全说明
NEVER output any API key or credential in plaintext. Always use variable references ( in shell, 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 or config files that may contain secrets.
$DASHSCOPE_API_KEYos.environ["DASHSCOPE_API_KEY"].envWhen the API key is not configured, NEVER ask the user to provide it directly. Instead, help create a file with a placeholder () and instruct the user to replace it with their actual key from the QwenCloud Console. Only write the actual key value if the user explicitly requests it.
.envDASHSCOPE_API_KEY=sk-your-key-here绝对不要明文输出任何API密钥或凭证。 请始终使用变量引用(Shell中用,Python中用)。任何凭证检查或检测都必须非明文:仅返回状态(例如"已设置"/"未设置"、"有效"/"无效"),绝不返回具体值。永远不要展示可能包含密钥的或配置文件内容。
$DASHSCOPE_API_KEYos.environ["DASHSCOPE_API_KEY"].env当API密钥未配置时,绝对不要直接要求用户提供密钥。 而是帮助创建带占位符的文件(),并指导用户将占位符替换为他们从QwenCloud控制台获取的实际密钥。仅当用户显式要求时才写入实际密钥值。
.envDASHSCOPE_API_KEY=sk-your-key-hereKey Compatibility
密钥兼容性
Scripts require a standard QwenCloud API key (). Coding Plan keys () cannot be used — TTS models are not available on Coding Plan, and Coding Plan does not support the native QwenCloud API. The script detects keys at startup and prints a warning. If qwencloud-ops-auth is installed, see its for full details.
sk-...sk-sp-...sk-sp-references/codingplan.md脚本需要标准QwenCloud API密钥(格式)。编码方案密钥()无法使用——编码方案不支持TTS模型,也不支持原生QwenCloud API。脚本启动时会检测前缀的密钥并输出警告。如果安装了qwencloud-ops-auth技能,可查看其获取完整说明。
sk-...sk-sp-...sk-sp-references/codingplan.mdModel Selection
模型选择
Qwen TTS (HTTP API) — use scripts/tts.py
scripts/tts.pyQwen TTS (HTTP API) — 使用scripts/tts.py
scripts/tts.py| Model | Use Case | Notes |
|---|---|---|
| Recommended (standard) — fast, multi-language | Cost-effective, widely available |
| Instruction-guided style control | Tone/emotion via instructions |
| 模型 | 适用场景 | 说明 |
|---|---|---|
| 推荐通用款——速度快、支持多语言 | 性价比高、覆盖区域广 |
| 指令引导的风格控制 | 通过指令调整语气/情绪 |
CosyVoice (WebSocket API) — use scripts/tts_cosyvoice.py
scripts/tts_cosyvoice.pyCosyVoice (WebSocket API) — 使用scripts/tts_cosyvoice.py
scripts/tts_cosyvoice.py| Model | Use Case |
|---|---|
| High quality, fast |
| Highest quality |
Note: CosyVoice requiresSDK and uses different voices. See cosyvoice-guide.md.dashscope
- User specified a model → use the appropriate script:
- →
qwen3-tts-*scripts/tts.py - →
cosyvoice-*scripts/tts_cosyvoice.py
- Consult the qwencloud-model-selector skill when model choice depends on capability, scenario, or pricing.
- No signal, clear task → via
qwen3-tts-flash(default for standard tasks).tts.py
⚠️ Important: The model list above is a point-in-time snapshot and may be outdated. Model availability changes frequently. Always check the official model list for the authoritative, up-to-date catalog before making model decisions.
| 模型 | 适用场景 |
|---|---|
| 高质量、快速度 |
| 最高质量 |
注意: CosyVoice需要SDK,且使用不同的音色库。请查看 cosyvoice-guide.md。dashscope
- 用户指定了模型 → 使用对应脚本:
- →
qwen3-tts-*scripts/tts.py - →
cosyvoice-*scripts/tts_cosyvoice.py
- 当模型选择取决于能力、场景或定价时,可调用qwencloud-model-selector技能辅助选择。
- 无明确指定需求、任务清晰 → 默认使用调用
tts.py(通用任务默认选项)。qwen3-tts-flash
⚠️ 重要提示: 上述模型列表是当前时间点的快照,可能已过时。模型可用性会频繁更新。在确定模型选择前,请务必查阅官方模型列表获取权威、最新的目录。
Available Voices
可用音色
| Voice | Description | Script |
|---|---|---|
| Cherry, Ethan, Serena | Qwen TTS system voices | |
| longanyang, longanhuan, longhuhu_v3 | CosyVoice verified voices | |
Full lists: api-guide.md (Qwen TTS) · cosyvoice-guide.md (CosyVoice)
| 音色 | 描述 | 对应脚本 |
|---|---|---|
| Cherry、Ethan、Serena | Qwen TTS系统音色 | |
| longanyang、longanhuan、longhuhu_v3 | CosyVoice官方认证音色 | |
完整列表: api-guide.md(Qwen TTS)· cosyvoice-guide.md(CosyVoice)
Execution
执行说明
⚠️ Multiple artifacts: When generating multiple files in a single session, you MUST append a numeric suffix to each filename (e.g.,out_1.wav) to prevent overwrites.out_2.wav
⚠️ 多文件生成注意: 单个会话中生成多个文件时,你必须为每个文件名添加数字后缀(例如、out_1.wav),避免覆盖原有文件。out_2.wav
Qwen TTS (HTTP API) — tts.py
tts.pyQwen TTS (HTTP API) — tts.py
tts.pyPrerequisites
前置要求
- API Key: Check that (or
DASHSCOPE_API_KEY) is set using a non-plaintext check only (e.g. in shell:QWEN_API_KEY; report only "set" or "not set", never the key value). If not set: run the qwencloud-ops-auth skill if available; otherwise guide the user to obtain a key from QwenCloud Console and set it via[ -n "$DASHSCOPE_API_KEY" ]file (.envin project root or current directory) or environment variable. The script searches forecho 'DASHSCOPE_API_KEY=sk-your-key-here' >> .envin the current working directory and the project root. Skills may be installed independently — do not assume qwencloud-ops-auth is present..env - Python 3.9+ (stdlib only, no pip install needed)
- API密钥: 仅通过非明文方式检查(或
DASHSCOPE_API_KEY)是否已设置(例如Shell中执行QWEN_API_KEY;仅返回"已设置"或"未设置",绝不返回密钥值)。如果未设置:如果有qwencloud-ops-auth技能则调用它;否则指导用户从QwenCloud控制台获取密钥,并通过[ -n "$DASHSCOPE_API_KEY" ]文件(项目根目录或当前目录执行.env)或环境变量设置。脚本会在当前工作目录和项目根目录搜索echo 'DASHSCOPE_API_KEY=sk-your-key-here' >> .env文件。技能可能独立安装——不要默认qwencloud-ops-auth已安装。.env - Python 3.9+(仅需标准库,无需pip安装依赖)
Environment Check
环境检查
Before first execution, verify Python is available:
bash
python3 --version # must be 3.9+If is not found, try or . If Python is unavailable or below 3.9, skip to Path 2 (curl) in execution-guide.md.
python3python --versionpy -3 --version首次执行前,验证Python可用:
bash
python3 --version # 必须为3.9及以上版本如果找不到,尝试或。如果Python不可用或版本低于3.9,跳转至execution-guide.md中的路径2(curl)。
python3python --versionpy -3 --versionDefault: Run Script
默认方式:运行脚本
Script path: Scripts are in the subdirectory of this skill's directory (the directory containing this SKILL.md). You MUST first locate this skill's installation directory, then ALWAYS use the full absolute path to execute scripts. Do NOT assume scripts are in the current working directory. Do NOT use to switch directories before execution.
scripts/cdExecution note: Run all scripts in the foreground — wait for stdout; do not background.
Discovery: Run first to see all available arguments.
python3 <this-skill-dir>/scripts/tts.py --helpbash
python3 <this-skill-dir>/scripts/tts.py \
--request '{"text":"Hello, this is a test.","voice":"Cherry"}' \
--output output/qwencloud-audio-tts/ \
--print-response| Argument | Description |
|---|---|
| JSON request body |
| Load request from file |
| Save audio and response JSON to directory |
| Print response to stdout |
| Override model |
| Override voice |
脚本路径: 脚本位于本技能目录(包含此SKILL.md的目录)的子目录下。你必须先定位此技能的安装目录,然后始终使用完整绝对路径执行脚本。 不要假设脚本在当前工作目录下。执行前不要使用切换目录。
scripts/cd执行注意: 所有脚本都在前台运行——等待标准输出,不要后台运行。
参数查询: 先执行查看所有可用参数。
python3 <本技能目录>/scripts/tts.py --helpbash
python3 <本技能目录>/scripts/tts.py \
--request '{"text":"Hello, this is a test.","voice":"Cherry"}' \
--output output/qwencloud-audio-tts/ \
--print-response| 参数 | 描述 |
|---|---|
| JSON请求体 |
| 从文件加载请求内容 |
| 将音频和响应JSON保存到指定目录 |
| 将响应打印到标准输出 |
| 覆盖默认模型 |
| 覆盖默认音色 |
Verify Result
结果验证
- Exit code + output contains valid JSON with
0field → successoutput.audio - Non-zero exit, HTTP error, empty response, or error JSON → fail
- Post-execution check: Verify the output audio file exists and has non-zero size ()
ls -la <output_dir> - MANDATORY — stderr signal check: After confirming the result, scan the command's stderr output for or
[ACTION_REQUIRED]. If either signal is present, you MUST follow the instructions in Update Check below before responding to the user.[UPDATE_AVAILABLE]
- 退出码+ 输出包含带
0字段的有效JSON → 成功output.audio - 非零退出码、HTTP错误、空响应或错误JSON → 失败
- 执行后检查: 验证输出音频文件存在且大小非零(执行)
ls -la <输出目录> - 强制要求——错误输出信号检查: 确认结果后,扫描命令的标准错误输出是否有或
[ACTION_REQUIRED]。如果存在任一信号,你必须先按照下方更新检查(执行后强制要求)的说明操作,再回复用户。[UPDATE_AVAILABLE]
On Failure
失败处理
If the script fails, match the error output against the diagnostic table below to determine the resolution. If no match, read execution-guide.md for alternative paths: curl commands (Path 2 — standard, instruct, streaming), code generation (Path 3), and autonomous resolution (Path 5).
If Python is not available at all → skip directly to Path 2 (curl) in execution-guide.md.
如果脚本运行失败,将错误输出与下方诊断表匹配以确定解决方案。如果没有匹配项,查看execution-guide.md获取替代方案:curl命令(路径2——标准、指令版、流式)、代码生成(路径3)、自主解决(路径5)。
如果完全没有可用的Python环境 → 直接跳转至execution-guide.md中的路径2(curl)。
CosyVoice — tts_cosyvoice.py
tts_cosyvoice.pyCosyVoice — tts_cosyvoice.py
tts_cosyvoice.pyCosyVoice requires SDK. Quick start:
dashscopebash
pip install dashscope>=1.24.6
python3 <this-skill-dir>/scripts/tts_cosyvoice.py --text "Hello"Full guide: cosyvoice-guide.md (setup, voices, examples, errors)
| Error Pattern | Diagnosis | Resolution |
|---|---|---|
| Python not on PATH | Try |
| Script version check failed | Upgrade Python to 3.9+ |
| Python < 3.9 | Upgrade Python to 3.9+ |
| Missing API key | Obtain key from QwenCloud Console; add to |
| Invalid or mismatched key | Run qwencloud-ops-auth (non-plaintext check only); verify key is valid |
| SSL cert issue (proxy/corporate) | macOS: run |
| Network unreachable | Check internet; set |
| Rate limited | Wait and retry with backoff |
| Server error | Retry with backoff |
| Can't write output | Use |
CosyVoice需要 SDK。快速开始:
dashscopebash
pip install dashscope>=1.24.6
python3 <本技能目录>/scripts/tts_cosyvoice.py --text "Hello"完整指南: cosyvoice-guide.md(配置、音色、示例、错误排查)
| 错误特征 | 诊断 | 解决方案 |
|---|---|---|
| Python不在PATH中 | 尝试 |
| 脚本版本检查失败 | 将Python升级到3.9及以上版本 |
类型提示附近出现 | Python版本低于3.9 | 将Python升级到3.9及以上版本 |
| 缺失API密钥 | 从QwenCloud控制台获取密钥;添加到 |
| 密钥无效或不匹配 | 调用qwencloud-ops-auth(仅做非明文检查);验证密钥有效性 |
| SSL证书问题(代理/企业网络) | macOS:运行 |
| 网络不可达 | 检查网络连接;如果使用代理则设置 |
| 请求频率受限 | 等待后使用指数退避策略重试 |
| 服务端错误 | 等待后使用指数退避策略重试 |
| 无法写入输出 | 使用 |
Quick Reference
快速参考
Request Fields
请求字段
| Field | Type | Description |
|---|---|---|
| string | Required — text to synthesize (max 600 chars) |
| string | Required — voice ID (e.g. |
| string | Model ID (default: |
| string | |
| string | Tone/style instructions (instruct model only) |
| bool | Enable streaming (Base64 chunks) |
| 字段 | 类型 | 描述 |
|---|---|---|
| string | 必填——待合成文本(最多600字符) |
| string | 必填——音色ID(例如 |
| string | 模型ID(默认: |
| string | |
| string | 语气/风格指令(仅指令版模型支持) |
| bool | 启用流式输出(Base64分片) |
Response Fields
响应字段
| Field | Description |
|---|---|
| URL of generated audio (valid 24h) |
| Format (e.g. wav) |
| Sample rate (e.g. 24000) |
| Character usage |
| 字段 | 描述 |
|---|---|
| 生成音频的URL(24小时内有效) |
| 格式(例如wav) |
| 采样率(例如24000) |
| 字符使用量 |
Important Notes
重要说明
- text: Max 600 characters per request.
- instructions: Only works with .
qwen3-tts-instruct-flash - language_type: for mixed language; specify for better pronunciation.
Auto - audio_url: Valid for 24 hours — download promptly.
- Real-time/streaming TTS: For WebSocket-based real-time TTS (CosyVoice, qwen3-tts-flash-realtime), a WebSocket client is required. This skill covers the HTTP-based non-real-time API. For real-time streaming use cases, refer to the official docs in sources.md.
- text: 单次请求最多600字符。
- instructions: 仅支持模型。
qwen3-tts-instruct-flash - language_type: 混合语言使用;指定语言可获得更好的发音效果。
Auto - audio_url: 24小时内有效——请及时下载。
- 实时/流式TTS: 基于WebSocket的实时TTS(CosyVoice、qwen3-tts-flash-realtime)需要WebSocket客户端。本技能覆盖基于HTTP的非实时API。实时流式使用场景请参考sources.md中的官方文档。
Cross-Skill Chaining
跨技能联动
When passing generated audio to another skill (e.g., video-gen audio overlay):
- Pass directly — scripts detect URL prefixes and pass through without re-upload
audio_url - Use only for local playback or non-API operations
audio_file
将生成的音频传递给其他技能时(例如视频生成的音频叠加):
- 直接传递——脚本会自动识别URL前缀,无需重新上传
audio_url - 仅在本地播放或非API操作时使用
audio_file
Error Handling
错误处理
| Error | Cause | Action |
|---|---|---|
| Invalid or missing API key | Run qwencloud-ops-auth if available; else prompt user to set key (non-plaintext check only) |
| Invalid parameters (missing text/voice) | Validate request body |
| Rate limit or server error | Retry with backoff |
| 错误 | 原因 | 处理方式 |
|---|---|---|
| API密钥无效或缺失 | 如果有qwencloud-ops-auth则调用它;否则提示用户设置密钥(仅做非明文检查) |
| 参数无效(缺失text/voice字段) | 校验请求体 |
| 频率限制或服务端错误 | 指数退避后重试 |
Output Location
输出位置
Prefer the current working directory. Default subdirectory: .
./output/qwencloud-audio-tts/Write prohibition: NEVER write output files into this skill's installation directory or any hierarchy. All generated content must go to under the current working directory or a user-specified path.
skills/output/优先使用当前工作目录。默认子目录:。
./output/qwencloud-audio-tts/写入禁止: 绝对不要将输出文件写入本技能的安装目录或任何层级下。所有生成内容必须存放在当前工作目录下的目录或用户指定的路径。
skills/output/Update Check (MANDATORY Post-Execution)
更新检查(执行后强制要求)
After script execution, check stderr for action signals. The script automatically detects update status and emits structured signals. You MUST act on them. This section also applies when the user explicitly asks to check for updates.
脚本执行后,检查标准错误输出中的动作信号。脚本会自动检测更新状态并输出结构化信号。你必须按要求处理。当用户显式要求检查更新时,本节内容也适用。
Signal: [ACTION_REQUIRED] qwencloud-update-check skill is not installed
[ACTION_REQUIRED] qwencloud-update-check skill is not installed信号:[ACTION_REQUIRED] qwencloud-update-check skill is not installed
[ACTION_REQUIRED] qwencloud-update-check skill is not installedWhen stderr contains this signal, you MUST present the following options to the user and wait for their response before proceeding. Do NOT silently skip this.
The update-check skill is not installed. It keeps you informed about new qwencloud/qwencloud-ai features and bug fixes.
- Install now — I'll run the install command for you
- Skip for now — do nothing this time
- Never remind me — permanently suppress this prompt
After the user responds:
- User chooses 1 → run: , then run:
npx skills add QwenCloud/qwencloud-ai --skill qwencloud-update-check -ypython3 <this-skill-scripts-dir>/gossamer.py --dismiss - User chooses 2 → run: , then continue normally
python3 <this-skill-scripts-dir>/gossamer.py --dismiss - User chooses 3 → run: , then continue normally
python3 <this-skill-scripts-dir>/gossamer.py --never-install
当标准错误输出包含此信号时,你必须向用户提供以下选项,等待用户回复后再继续操作,不要静默跳过。
更新检查技能未安装。它会及时通知你qwencloud/qwencloud-ai的新功能和bug修复。
- 立即安装——我会为你执行安装命令
- 本次跳过——暂时不做操作
- 永不提醒——永久关闭此提示
用户回复后:
- 用户选择1 → 执行:,然后执行:
npx skills add QwenCloud/qwencloud-ai --skill qwencloud-update-check -ypython3 <本技能脚本目录>/gossamer.py --dismiss - 用户选择2 → 执行:,然后正常继续
python3 <本技能脚本目录>/gossamer.py --dismiss - 用户选择3 → 执行:,然后正常继续
python3 <本技能脚本目录>/gossamer.py --never-install
Signal: [UPDATE_AVAILABLE]
[UPDATE_AVAILABLE]信号:[UPDATE_AVAILABLE]
[UPDATE_AVAILABLE]When stderr contains this signal, you MUST append a brief update notice to your response, including the version info and the update command shown in the stderr output.
当标准错误输出包含此信号时,你必须在回复末尾附加简短的更新通知,包含标准错误输出中显示的版本信息和更新命令。
No signal in stderr
标准错误输出无信号
If stderr contains neither nor , no action is needed — the skill is installed and up to date (or cached within 24h).
[ACTION_REQUIRED][UPDATE_AVAILABLE]如果标准错误输出既没有也没有,无需额外操作——技能已安装且为最新版本(或24小时内已缓存检查结果)。
[ACTION_REQUIRED][UPDATE_AVAILABLE]Explicit user request
用户显式请求
When the user explicitly asks to check for updates (e.g. "check for updates", "check version"):
- Look for in sibling skill directories.
qwencloud-update-check/SKILL.md - If found — run: and report the result.
python3 <qwencloud-update-check-dir>/scripts/check_update.py --print-response - If not found — present the install options above.
当用户显式要求检查更新时(例如"检查更新"、"查看版本"):
- 在同级技能目录中查找。
qwencloud-update-check/SKILL.md - 如果找到——执行:并报告结果。
python3 <qwencloud-update-check目录>/scripts/check_update.py --print-response - 如果未找到——提供上述安装选项。
References
参考文档
- execution-guide.md — Fallback paths (curl standard/instruct/streaming, code generation, autonomous)
- api-guide.md — API supplementary guide
- sources.md — Official documentation URLs
- execution-guide.md — 备用方案(curl标准/指令/流式、代码生成、自主解决)
- api-guide.md — API补充指南
- sources.md — 官方文档链接