Category: provider
Model Studio Qwen TTS
Validation
mkdir -p output/aliyun-qwen-tts
python -m py_compile skills/ai/audio/aliyun-qwen-tts/scripts/generate_tts.py && echo "py_compile_ok" > output/aliyun-qwen-tts/validate.txt
Pass criteria: command exits 0 and output/aliyun-qwen-tts/validate.txt is generated.
Output And Evidence
- Save generated audio links, sample audio files, and request payloads to
output/aliyun-qwen-tts/.
- Keep one validation log per execution.
Critical model names
Use one of the recommended models:
qwen3-tts-flash
qwen3-tts-instruct-flash
qwen3-tts-instruct-flash-2026-01-26
Prerequisites
- Install SDK (recommended in a venv to avoid PEP 668 limits):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install dashscope
- Set
DASHSCOPE_API_KEY in your environment, or add dashscope_api_key to ~/.alibabacloud/credentials (env takes precedence).
Normalized interface (tts.generate)
Request
text (string, required)
voice (string, required)
language_type (string, optional; default Auto)
instruction (string, optional; recommended for instruct models)
stream (bool, optional; default false)
Response
audio_url (string, when stream=false)
audio_base64_pcm (string, when stream=true)
sample_rate (int, 24000)
format (string, wav or pcm depending on mode)
Quick start (Python + DashScope SDK)
import os
import dashscope
# Prefer env var for auth: export DASHSCOPE_API_KEY=...
# Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].
# Beijing region; for Singapore use: https://dashscope-intl.aliyuncs.com/api/v1
dashscope.base_http_api_url = "https://dashscope.aliyuncs.com/api/v1"
text = "Hello, this is a short voice line."
response = dashscope.MultiModalConversation.call(
model="qwen3-tts-instruct-flash",
api_key=os.getenv("DASHSCOPE_API_KEY"),
text=text,
voice="Cherry",
language_type="English",
instruction="Warm and calm tone, slightly slower pace.",
stream=False,
)
audio_url = response.output.audio.url
print(audio_url)
Streaming notes
stream=True returns Base64-encoded PCM chunks at 24kHz.
- Decode chunks and play or concatenate to a pcm buffer.
- The response contains
finish_reason == "stop" when the stream ends.
Operational guidance
- Keep requests concise; split long text into multiple calls if you hit size or timeout errors.
- Use
language_type consistent with the text to improve pronunciation.
- Use
instruction only when you need explicit style/tone control.
- Cache by
(text, voice, language_type) to avoid repeat costs.
Output location
- Default output:
output/aliyun-qwen-tts/audio/
- Override base dir with
OUTPUT_DIR.
Workflow
- Confirm user intent, region, identifiers, and whether the operation is read-only or mutating.
- Run one minimal read-only query first to verify connectivity and permissions.
- Execute the target operation with explicit parameters and bounded scope.
- Verify results and save output/evidence files.
References
references/api_reference.md for parameter mapping and streaming example.
Realtime mode is provided by skills/ai/audio/aliyun-qwen-tts-realtime/.
Voice cloning/design are provided by skills/ai/audio/aliyun-qwen-tts-voice-clone/ and skills/ai/audio/aliyun-qwen-tts-voice-design/.
Source list: references/sources.md
1---2name: aliyun-qwen-tts3description: Use when generating human-like speech audio with Model Studio DashScope Qwen TTS models (qwen3-tts-flash, qwen3-tts-instruct-flash). Use when converting text to speech, producing voice lines for short drama/news videos, or documenting TTS request/response fields for DashScope.4---5
6Category: provider
7
8# Model Studio Qwen TTS
9
10## Validation
11
12```bash
13mkdir -p output/aliyun-qwen-tts
14python -m py_compile skills/ai/audio/aliyun-qwen-tts/scripts/generate_tts.py && echo "py_compile_ok" > output/aliyun-qwen-tts/validate.txt
15```
16
17Pass criteria: command exits 0 and `output/aliyun-qwen-tts/validate.txt` is generated.
18
19## Output And Evidence
20
21- Save generated audio links, sample audio files, and request payloads to `output/aliyun-qwen-tts/`.
22- Keep one validation log per execution.
23
24## Critical model names
25
26Use one of the recommended models:
27- `qwen3-tts-flash`
28- `qwen3-tts-instruct-flash`
29- `qwen3-tts-instruct-flash-2026-01-26`
30
31## Prerequisites
32
33- Install SDK (recommended in a venv to avoid PEP 668 limits):
34
35```bash
36python3 -m venv .venv
37. .venv/bin/activate
38python -m pip install dashscope
39```
40- Set `DASHSCOPE_API_KEY` in your environment, or add `dashscope_api_key` to `~/.alibabacloud/credentials` (env takes precedence).
41
42## Normalized interface (tts.generate)
43
44### Request
45- `text` (string, required)
46- `voice` (string, required)
47- `language_type` (string, optional; default `Auto`)
48- `instruction` (string, optional; recommended for instruct models)
49- `stream` (bool, optional; default false)
50
51### Response
52- `audio_url` (string, when stream=false)
53- `audio_base64_pcm` (string, when stream=true)
54- `sample_rate` (int, 24000)
55- `format` (string, wav or pcm depending on mode)
56
57## Quick start (Python + DashScope SDK)
58
59```python
60import os
61import dashscope
62
63# Prefer env var for auth: export DASHSCOPE_API_KEY=...
64# Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].
65# Beijing region; for Singapore use: https://dashscope-intl.aliyuncs.com/api/v1
66dashscope.base_http_api_url = "https://dashscope.aliyuncs.com/api/v1"
67
68text = "Hello, this is a short voice line."
69response = dashscope.MultiModalConversation.call(
70 model="qwen3-tts-instruct-flash",
71 api_key=os.getenv("DASHSCOPE_API_KEY"),
72 text=text,
73 voice="Cherry",
74 language_type="English",
75 instruction="Warm and calm tone, slightly slower pace.",
76 stream=False,
77)
78
79audio_url = response.output.audio.url
80print(audio_url)
81```
82
83## Streaming notes
84
85- `stream=True` returns Base64-encoded PCM chunks at 24kHz.
86- Decode chunks and play or concatenate to a pcm buffer.
87- The response contains `finish_reason == "stop"` when the stream ends.
88
89## Operational guidance
90
91- Keep requests concise; split long text into multiple calls if you hit size or timeout errors.
92- Use `language_type` consistent with the text to improve pronunciation.
93- Use `instruction` only when you need explicit style/tone control.
94- Cache by `(text, voice, language_type)` to avoid repeat costs.
95
96## Output location
97
98- Default output: `output/aliyun-qwen-tts/audio/`
99- Override base dir with `OUTPUT_DIR`.
100
101## Workflow
102
1031) Confirm user intent, region, identifiers, and whether the operation is read-only or mutating.
1042) Run one minimal read-only query first to verify connectivity and permissions.
1053) Execute the target operation with explicit parameters and bounded scope.
1064) Verify results and save output/evidence files.
107
108## References
109
110- `references/api_reference.md` for parameter mapping and streaming example.
111- Realtime mode is provided by `skills/ai/audio/aliyun-qwen-tts-realtime/`.
112- Voice cloning/design are provided by `skills/ai/audio/aliyun-qwen-tts-voice-clone/` and `skills/ai/audio/aliyun-qwen-tts-voice-design/`.
113
114- Source list: `references/sources.md`