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 即为专门针对高并发、强实时对话场景打造的旗帜级轻量高效模型。


核心特性与优势:

  1. 极低延迟(首包 300ms 级别)
  • 实时交互能力:采用双轨建模与高效编码技术,首包延迟(First-Packet Latency)降低至 300ms 级别(特定流式单线程优化下可达 100ms 左右)。
  • 流式生成:输入少量字符即可快速吐出首个语音数据包,极大地缩短了语音助手或 AI 智能体的响应等待时间。
  1. Freestyle 自然语言指令控制
  • 指令驱动(Instruct-driven):支持通过自然语言指令控制声音风格、情感、语气、语速、音高与说话模式。
  • 细粒度标签控制:支持在文本中插入控制类标签(如情感、呼吸声、特定表达语气等),无需复杂的参数微调即可实现极具拟真感的人声表现。
  1. 多语言与丰富方言支持
  • 多语言覆盖:支持中文、英文(英音/美音/多种口音)、法文、德文、俄文、意大利文、西班牙文、葡萄牙文、日文、韩文等 10+ 种主流语言。
  • 方言能力:原生支持多种中国方言,包括粤语、四川话、闽南语、吴语、北京话、天津话、陕西话、南京话等。
  1. 高鲁棒性与复杂文本处理
  • 能稳定解析和朗读带有拼音标注(如 pin1 yin1)、特殊符号、生僻字词及混排格式的复杂文本,避免错读或卡顿。

典型应用场景:

  • 实时语音对话 AI / 数字人:为大语言模型(LLM)对话助手提供超低延迟的“嘴巴”。
  • 智能客服与车载语音:要求快速响应、高表达力和支持多方言口音的交互环境。
  • 有声书与实时播报:借助丰富的控制标签快速生成高自然度的文本朗读。

API 接口地址:

https://wcode.net/api/gpt/v1/audio/speech

此 API 接口兼容 OpenAI 的 Text-to-Speech 接口规范,可直接使用 OpenAI 的 SDK 来调用。仅需替换以下配置即可:

  1. base_url 替换为 https://wcode.net/api/gpt/v1
  2. api_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)

  • 参数:model

  • 必选string

语音合成模型 ID。调用时使用模型详情页的模型 ID。

input(输入文本)

  • 参数:input

  • 必选string

需要进行语音合成的文本内容。

bit_rate(比特率)

  • 参数:bit_rate

  • 可选,integer,6 到 510

  • 默认:32

指定 Opus 编码的比特率(kbps)。

仅当 response_formatopus 时生效。

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 技术支持工程师:

(沟通需求✅ → 确认技术方案✅ → 沟通费用与工期✅ → 开发&测试✅ → 验收交付✅ → 维护升级✅)

最受关注模型

DeepSeek V4 Pro

文本生成、深度思考

DeepSeek V4 Flash

文本生成、深度思考

XiaoMi MiMo V2.5 Pro

文本生成、深度思考

Tencent Hunyuan Hy3 Preview

文本生成、深度思考

XiaoMi MiMo V2.5

文本生成、深度思考

最新发布模型

Qwen Audio 3.0 TTS Flash

语音合成

Qwen3.7 Text Embedding

文本向量化

Qwen Audio 3.0 TTS Plus

语音合成

Kimi K3

文本生成、深度思考、工具调用

KAT Coder Pro V2.5

文本生成、代码补全

向量化模型

Qwen3.7 Text Embedding

文本向量化

GLM Embedding 3

文本向量化

Qwen3 Embedding 8B

文本嵌入、文本向量化

Doubao Embedding Large Text 250515

文本向量化

Qwen Text Embedding V4

文本向量化

语音识别模型

MiMo V2.5 ASR

音频识别

Fun ASR Flash

语音识别、方言识别

Qwen3 ASR Flash

语音识别

GLM ASR 2512

语音识别

语音合成模型

Qwen Audio 3.0 TTS Plus

语音合成

Qwen Audio 3.0 TTS Flash

语音合成

CosyVoice V3 Plus

语音合成

CosyVoice V3 Flash

语音合成

GLM TTS

语音合成