Qwen Audio 3.0 TTS Flash API 接口、参数 & 代码示例
qwen/qwen-audio-3.0-tts-flash
Qwen Audio 3.0 TTS Flash 是面向实时交互场景优化的高性能语音合成大模型。相比前一版本,模型支持更多小语种和中文方言,提升了方言发音的正宗程度,并增强了 free-style 指令遵循能力和细粒度标签控制能力,可更灵活地控制情绪、语气、角色、语速、音量等表达方式。
- 模型 ID
- qwen/qwen-audio-3.0-tts-flash
- 模型系列
- Qwen
- 更新日期
- 模型能力
- 语音合成
- 模型价格(每千字符)
- ¥ 12
- 默认音色
- longanhuan_v3.6
- 默认音频格式
- mp3
Qwen Audio 3.0 TTS Flash 模型介绍:
Qwen Audio 3.0 TTS Flash 是阿里巴巴通义实验室(Qwen 团队)推出的新一代语音合成(Text-to-Speech, TTS)大模型。
在 Qwen-Audio-3.0-TTS 系列中,阿里云同时推出了主打高精品质生成的 Plus 版本 和主打低延迟实时交互的 Flash 版本。qwen-audio-3.0-tts-flash 即为专门针对高并发、强实时对话场景打造的旗帜级轻量高效模型。
核心特性与优势:
- 极低延迟(首包 300ms 级别)
- 实时交互能力:采用双轨建模与高效编码技术,首包延迟(First-Packet Latency)降低至 300ms 级别(特定流式单线程优化下可达 100ms 左右)。
- 流式生成:输入少量字符即可快速吐出首个语音数据包,极大地缩短了语音助手或 AI 智能体的响应等待时间。
- Freestyle 自然语言指令控制
- 指令驱动(Instruct-driven):支持通过自然语言指令控制声音风格、情感、语气、语速、音高与说话模式。
- 细粒度标签控制:支持在文本中插入控制类标签(如情感、呼吸声、特定表达语气等),无需复杂的参数微调即可实现极具拟真感的人声表现。
- 多语言与丰富方言支持
- 多语言覆盖:支持中文、英文(英音/美音/多种口音)、法文、德文、俄文、意大利文、西班牙文、葡萄牙文、日文、韩文等 10+ 种主流语言。
- 方言能力:原生支持多种中国方言,包括粤语、四川话、闽南语、吴语、北京话、天津话、陕西话、南京话等。
- 高鲁棒性与复杂文本处理
- 能稳定解析和朗读带有拼音标注(如
pin1 yin1)、特殊符号、生僻字词及混排格式的复杂文本,避免错读或卡顿。
典型应用场景:
- 实时语音对话 AI / 数字人:为大语言模型(LLM)对话助手提供超低延迟的“嘴巴”。
- 智能客服与车载语音:要求快速响应、高表达力和支持多方言口音的交互环境。
- 有声书与实时播报:借助丰富的控制标签快速生成高自然度的文本朗读。
API 接口地址:
https://wcode.net/api/gpt/v1/audio/speech
此 API 接口兼容 OpenAI 的 Text-to-Speech 接口规范,可直接使用 OpenAI 的 SDK 来调用。仅需替换以下配置即可:
base_url替换为https://wcode.net/api/gpt/v1api_key替换为从 https://platform.wcode.net 获取到的 API Key具体可参考下方的各编程语言代码示例中的 OpenAI SDK 调用示例。
请求方法:
POST
各编程语言代码示例:
# TODO: 以下代码中的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
# 响应为音频二进制,可使用 --output speech.mp3 保存文件
curl --request POST 'https://wcode.net/api/gpt/v1/audio/speech' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--output speech.mp3 \
--data '{
"model": "qwen/qwen-audio-3.0-tts-flash",
"input": "你好,今天天气怎么样。",
"voice": "longanhuan_v3.6",
"response_format": "mp3"
}'
import Foundation
let headers = [
"Authorization": "Bearer API_KEY", // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
"content-type": "application/json"
]
let parameters = [
"model": "qwen/qwen-audio-3.0-tts-flash",
"input": "你好,今天天气怎么样。",
"voice": "longanhuan_v3.6",
"response_format": "mp3"
] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://wcode.net/api/gpt/v1/audio/speech")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 60.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else if let data = data {
try? data.write(to: URL(fileURLWithPath: "speech.mp3"))
}
})
dataTask.resume()
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
Future<void> main() async {
var headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer API_KEY' // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
};
var request = http.Request('POST', Uri.parse('https://wcode.net/api/gpt/v1/audio/speech'));
request.body = json.encode({
"model": "qwen/qwen-audio-3.0-tts-flash",
"input": "你好,今天天气怎么样。",
"voice": "longanhuan_v3.6",
"response_format": "mp3"
});
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
var bytes = await response.stream.toBytes();
File('speech.mp3').writeAsBytesSync(bytes);
}
else {
print(response.reasonPhrase);
}
}
require 'uri'
require 'net/http'
url = URI("https://wcode.net/api/gpt/v1/audio/speech")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer API_KEY' # TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
request["content-type"] = 'application/json'
request.body = "{\"model\":\"qwen/qwen-audio-3.0-tts-flash\",\"input\":\"你好,今天天气怎么样。\",\"voice\":\"longanhuan_v3.6\",\"response_format\":\"mp3\"}"
response = http.request(request)
File.write("speech.mp3", response.body) if response.is_a?(Net::HTTPSuccess)
use serde_json::json;
use reqwest;
use std::fs;
#[tokio::main]
pub async fn main() {
let url = "https://wcode.net/api/gpt/v1/audio/speech";
let payload = json!({
"model": "qwen/qwen-audio-3.0-tts-flash",
"input": "你好,今天天气怎么样。",
"voice": "longanhuan_v3.6",
"response_format": "mp3"
});
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("Authorization", "Bearer API_KEY".parse().unwrap()); // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
headers.insert("content-type", "application/json".parse().unwrap());
let client = reqwest::Client::new();
let response = client.post(url)
.headers(headers)
.json(&payload)
.send()
.await
.unwrap();
let audio_bytes = response.bytes().await.unwrap();
fs::write("speech.mp3", audio_bytes).unwrap();
}
#include <stdio.h>
#include <curl/curl.h>
static size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) {
return fwrite(contents, size, nmemb, (FILE *)userp);
}
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "https://wcode.net/api/gpt/v1/audio/speech");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer API_KEY"); // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"model\":\"qwen/qwen-audio-3.0-tts-flash\",\"input\":\"你好,今天天气怎么样。\",\"voice\":\"longanhuan_v3.6\",\"response_format\":\"mp3\"}");
FILE *fp = fopen("speech.mp3", "wb");
curl_easy_setopt(hnd, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, fp);
CURLcode ret = curl_easy_perform(hnd);
fclose(fp);
curl_easy_cleanup(hnd);
curl_slist_free_all(headers);
package main
import (
"fmt"
"os"
"strings"
"net/http"
"io"
)
func main() {
url := "https://wcode.net/api/gpt/v1/audio/speech"
payload := strings.NewReader("{\"model\":\"qwen/qwen-audio-3.0-tts-flash\",\"input\":\"你好,今天天气怎么样。\",\"voice\":\"longanhuan_v3.6\",\"response_format\":\"mp3\"}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer API_KEY") // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
os.WriteFile("speech.mp3", body, 0644)
fmt.Println(res.Status)
}
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://wcode.net/api/gpt/v1/audio/speech");
request.Headers.Add("Authorization", "Bearer API_KEY"); // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
request.Content = new StringContent("{\"model\":\"qwen/qwen-audio-3.0-tts-flash\",\"input\":\"你好,今天天气怎么样。\",\"voice\":\"longanhuan_v3.6\",\"response_format\":\"mp3\"}", null, "application/json");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
await File.WriteAllBytesAsync("speech.mp3", await response.Content.ReadAsByteArrayAsync());
var client = new RestClient("https://wcode.net/api/gpt/v1/audio/speech");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer API_KEY"); // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"model\":\"qwen/qwen-audio-3.0-tts-flash\",\"input\":\"你好,今天天气怎么样。\",\"voice\":\"longanhuan_v3.6\",\"response_format\":\"mp3\"}", ParameterType.RequestBody);
var response = client.Execute(request);
if (response.IsSuccessful && response.RawBytes != null)
await File.WriteAllBytesAsync("speech.mp3", response.RawBytes);
const axios = require('axios');
const fs = require('fs');
let data = JSON.stringify({
"model": "qwen/qwen-audio-3.0-tts-flash",
"input": "你好,今天天气怎么样。",
"voice": "longanhuan_v3.6",
"response_format": "mp3"
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://wcode.net/api/gpt/v1/audio/speech',
responseType: 'arraybuffer',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer API_KEY' // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
},
data : data
};
axios.request(config).then((response) => {
fs.writeFileSync('speech.mp3', response.data);
}).catch((error) => {
console.log(error);
});
import java.nio.file.Files;
import java.nio.file.Path;
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"model\":\"qwen/qwen-audio-3.0-tts-flash\",\"input\":\"你好,今天天气怎么样。\",\"voice\":\"longanhuan_v3.6\",\"response_format\":\"mp3\"}");
Request request = new Request.Builder()
.url("https://wcode.net/api/gpt/v1/audio/speech")
.post(body)
.addHeader("Authorization", "Bearer API_KEY") // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
.addHeader("content-type", "application/json")
.build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful() && response.body() != null) {
Files.write(Path.of("speech.mp3"), response.body().bytes());
}
}
$client = new \GuzzleHttp\Client();
$headers = [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer API_KEY', // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
];
$body = '{
"model": "qwen/qwen-audio-3.0-tts-flash",
"input": "你好,今天天气怎么样。",
"voice": "longanhuan_v3.6",
"response_format": "mp3"
}';
$request = new \GuzzleHttp\Psr7\Request('POST', 'https://wcode.net/api/gpt/v1/audio/speech', $headers, $body);
$response = $client->sendAsync($request)->wait();
file_put_contents('speech.mp3', $response->getBody()->getContents());
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://wcode.net/api/gpt/v1/audio/speech",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 5,
CURLOPT_TIMEOUT => 300,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'qwen/qwen-audio-3.0-tts-flash',
'input' => '你好,今天天气怎么样。',
'voice' => 'longanhuan_v3.6',
'response_format' => 'mp3',
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer API_KEY", // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
"content-type: application/json",
],
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
echo "cURL Error #:" . $error;
} else {
file_put_contents('speech.mp3', $response);
}
import requests
url = "https://wcode.net/api/gpt/v1/audio/speech"
payload = {
"model": "qwen/qwen-audio-3.0-tts-flash",
"input": "你好,今天天气怎么样。",
"voice": "longanhuan_v3.6",
"response_format": "mp3"
}
headers = {
"Authorization": "Bearer API_KEY", # TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
with open("speech.mp3", "wb") as f:
f.write(response.content)
from openai import OpenAI
client = OpenAI(
base_url="https://wcode.net/api/gpt/v1",
api_key="API_KEY" # TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
)
response = client.audio.speech.create(
model="qwen/qwen-audio-3.0-tts-flash",
input="你好,今天天气怎么样。",
voice="longanhuan_v3.6",
response_format="mp3",
)
response.write_to_file("speech.mp3")
请求参数:
- model(模型 ID)
- input(输入文本)
- bit_rate(比特率)
- sample_rate(采样率)
- voice(音色)
- stream(流式响应)
- seed(随机种子)
- volume(音量)
- pitch(音调)
- speed(语速)
- response_format(音频格式)
重要提示:由于模型架构不同,部分参数可能仅适用于特定的模型。
model(模型 ID)
-
参数:
model -
必选,string
语音合成模型 ID。调用时使用模型详情页的模型 ID。
input(输入文本)
-
参数:
input -
必选,string
需要进行语音合成的文本内容。
bit_rate(比特率)
-
参数:
bit_rate -
可选,integer,6 到 510
-
默认:
32
指定 Opus 编码的比特率(kbps)。
仅当 response_format 为 opus 时生效。
sample_rate(采样率)
-
参数:
sample_rate -
可选,integer
-
取值范围:
8000|16000|22050|24000|44100|48000 -
默认:
22050
指定返回音频的采样率(Hz)。
voice(音色)
-
参数:
voice -
可选,string
-
默认:
longanhuan_v3.6
语音合成所使用的音色 ID。
Qwen-Audio-TTS 音色列表:https://help.aliyun.com/zh/model-studio/qwen-audio-tts-voice-list
stream(流式响应)
-
参数:
stream -
可选,boolean
-
取值范围:
true|false -
默认:
false
是否以流式方式返回音频数据。
当前接口暂不支持流式响应;请勿设置 stream: true,否则将返回错误。
seed(随机种子)
-
参数:
seed -
可选,integer,0 到 65535
-
默认:
0
控制合成结果的随机性;相同 seed 与参数组合可复现相同音频。
volume(音量)
-
参数:
volume -
可选,integer,0 到 100
-
默认:
50
控制合成语音的音量大小。
pitch(音调)
-
参数:
pitch -
可选,float,0.5 到 2.0
-
默认:
1.0
控制合成语音的音调。
speed(语速)
-
参数:
speed -
可选,float,0.5 到 2.0
-
默认:
1.0
控制合成语音的语速。
response_format(音频格式)
-
参数:
response_format -
可选,string
-
取值范围:
mp3|pcm|wav|opus -
默认:
mp3
指定返回音频的编码格式。
以上文档为标准版 API 接口文档,可直接用于项目开发和系统调用。如果标准版 API 接口无法满足您的需求,需要定制开发 API 接口,请联系我们的 IT 技术支持工程师:
(沟通需求✅ → 确认技术方案✅ → 沟通费用与工期✅ → 开发&测试✅ → 验收交付✅ → 维护升级✅)
![]()