Qwen3 ASR Flash API 接口、参数 & 代码示例
qwen/qwen3-asr-flash
Qwen3-ASR-Flash 是阿里巴巴通义千问团队推出的一款高性能语音识别(ASR,Automatic Speech Recognition)模型服务。它基于强大的 Qwen3-Omni 多模态大模型底座,并经过了数千万小时多模态语音数据的精细训练,旨在提供极其快速、精准且具备大模型理解能力的语音转文字体验。
- 模型 ID
- qwen/qwen3-asr-flash
- 模型系列
- Qwen
- 更新日期
- 模型能力
- 语音识别
- 模型价格(每分钟)
- ¥ 0.02
Qwen3 ASR Flash 模型介绍:
Qwen3-ASR-Flash 是阿里巴巴通义千问团队推出的一款高性能语音识别(ASR,Automatic Speech Recognition)模型服务。它基于强大的 Qwen3-Omni 多模态大模型底座,并经过了数千万小时多模态语音数据的精细训练,旨在提供极其快速、精准且具备大模型理解能力的语音转文字体验。依托强大的基座模型、海量的文本与多模态数据、千万小时音频数据,Qwen3-ASR-Flash 实现了高精度的语音识别功能,能够自动判断语种并准确识别多个语种的语音,在复杂的音频环境下能够保证精确转录。
核心技术特征和优势:
- 强大的多语言与方言支持
该模型能够在一个统一的模型内完美处理 11 种语言 及其各种口音,并且支持全自动语种检测。在多语言混合的音频中,无需手动切换或配置配置:
- 中文: 不仅精通普通话,还对粤语、四川话、闽南话、吴语等主要方言有极强的识别能力。
- 英语: 完美兼容美式英语、英式英语及各类地方口音。
- 其他外语: 日语、韩语、俄语、法语、德语、西班牙语、意大利语、葡萄牙语、阿拉伯语。
- 独创的“文本热词/提示词”注入(Prompted ASR)
这是 Qwen3-ASR-Flash 最具颠覆性的创新之一。用户可以以任何格式向模型输入“上下文文本提示(Text Context)”。
- 纠偏与定制: 你可以输入专有名词、行业术语、人名或特定业务背景。模型会结合这些提示进行智能推理,极大提升生僻词或行业黑话的识别准确率。
- 极强的复杂声学环境抗干扰能力
得益于海量数据的洗礼,该模型在恶劣的音频条件下表现极度稳健:
- 歌声识别: 它是市面上少数擅长“歌词转文字”的模型,即使在有强烈背景音乐的歌曲中也能精准剥离并识别歌词。
- 环境噪声与远场: 对嘈杂环境、远场录音、多人混杂交谈具有极高的容错率。
- 智能过滤: 能自动识别并过滤掉静音、呼吸声、叹气等非言语噪声。
API 接口地址:
https://wcode.net/api/gpt/v1/audio/transcriptions
此 API 接口兼容 OpenAI 的 Speech-to-Text 接口规范,可直接使用 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
方式一:上传本地音频文件(multipart/form-data):
curl --request POST 'https://wcode.net/api/gpt/v1/audio/transcriptions' \
--header 'Authorization: Bearer API_KEY' \
--form 'file=@/path/to/audio.mp3' \
--form 'model=qwen/qwen3-asr-flash'
方式二:公网音频 URL(application/json):
curl --request POST 'https://wcode.net/api/gpt/v1/audio/transcriptions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
"model": "qwen/qwen3-asr-flash",
"file_url": "https://example.com/audio.mp3"
}'
方式三:Base64 编码音频(application/json):
curl --request POST 'https://wcode.net/api/gpt/v1/audio/transcriptions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
"model": "qwen/qwen3-asr-flash",
"file_base64": "<BASE64_ENCODED_AUDIO>",
"file_format": "mp3"
}'
import Foundation
let url = URL(string: "https://wcode.net/api/gpt/v1/audio/transcriptions")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer API_KEY", forHTTPHeaderField: "Authorization") // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
let boundary = UUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
var body = Data()
body.append("--\(boundary)
".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"model\"
".data(using: .utf8)!)
body.append("qwen/qwen3-asr-flash
".data(using: .utf8)!)
body.append("--\(boundary)
".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"file\"; filename=\"audio.mp3\"
".data(using: .utf8)!)
body.append("Content-Type: audio/mpeg
".data(using: .utf8)!)
body.append(try! Data(contentsOf: URL(fileURLWithPath: "/path/to/audio.mp3")))
body.append("
--\(boundary)--
".data(using: .utf8)!)
request.httpBody = body
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}
task.resume()
import 'package:http/http.dart' as http;
import 'dart:io';
Future<void> main() async {
var request = http.MultipartRequest(
'POST',
Uri.parse('https://wcode.net/api/gpt/v1/audio/transcriptions'),
);
request.headers['Authorization'] = 'Bearer API_KEY'; // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
request.fields['model'] = 'qwen/qwen3-asr-flash';
request.files.add(await http.MultipartFile.fromPath('file', '/path/to/audio.mp3'));
var streamedResponse = await request.send();
var response = await http.Response.fromStream(streamedResponse);
print(response.body);
}
require 'uri'
require 'net/http'
url = URI("https://wcode.net/api/gpt/v1/audio/transcriptions")
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
form_data = [
['model', 'qwen/qwen3-asr-flash'],
['file', File.open('/path/to/audio.mp3')]
]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body
use reqwest::multipart;
#[tokio::main]
pub async fn main() {
let url = "https://wcode.net/api/gpt/v1/audio/transcriptions";
let file_part = multipart::Part::bytes(std::fs::read("/path/to/audio.mp3").unwrap())
.file_name("audio.mp3")
.mime_str("audio/mpeg")
.unwrap();
let form = multipart::Form::new()
.text("model", "qwen/qwen3-asr-flash")
.part("file", file_part);
let client = reqwest::Client::new();
let response = client.post(url)
.header("Authorization", "Bearer API_KEY") // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
.multipart(form)
.send()
.await
.unwrap();
println!("{}", response.text().await.unwrap());
}
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/transcriptions");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer API_KEY"); // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_mime *mime = curl_mime_init(hnd);
curl_mimepart *part = curl_mime_addpart(mime);
curl_mime_name(part, "model");
curl_mime_data(part, "qwen/qwen3-asr-flash", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "file");
curl_mime_filedata(part, "/path/to/audio.mp3");
curl_easy_setopt(hnd, CURLOPT_MIMEPOST, mime);
CURLcode ret = curl_easy_perform(hnd);
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
url := "https://wcode.net/api/gpt/v1/audio/transcriptions"
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
_ = writer.WriteField("model", "qwen/qwen3-asr-flash")
file, _ := os.Open("/path/to/audio.mp3")
defer file.Close()
part, _ := writer.CreateFormFile("file", "audio.mp3")
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Authorization", "Bearer API_KEY") // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
req.Header.Set("Content-Type", writer.FormDataContentType())
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
respBody, _ := io.ReadAll(res.Body)
fmt.Println(string(respBody))
}
using System.Net.Http.Headers;
var client = new HttpClient();
using var form = new MultipartFormDataContent();
form.Add(new StringContent("qwen/qwen3-asr-flash"), "model");
form.Add(new ByteArrayContent(await File.ReadAllBytesAsync("/path/to/audio.mp3")), "file", "audio.mp3");
var request = new HttpRequestMessage(HttpMethod.Post, "https://wcode.net/api/gpt/v1/audio/transcriptions");
request.Headers.Add("Authorization", "Bearer API_KEY"); // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
request.Content = form;
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
var client = new RestClient("https://wcode.net/api/gpt/v1/audio/transcriptions");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer API_KEY"); // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
request.AddParameter("model", "qwen/qwen3-asr-flash");
request.AddFile("file", "/path/to/audio.mp3", "audio/mpeg");
var response = client.Execute(request);
Console.WriteLine(response.Content);
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let data = new FormData();
data.append('model', 'qwen/qwen3-asr-flash');
data.append('file', fs.createReadStream('/path/to/audio.mp3'));
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://wcode.net/api/gpt/v1/audio/transcriptions',
headers: {
'Authorization': 'Bearer API_KEY', // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
...data.getHeaders()
},
data : data
};
axios.request(config).then((response) => {
console.log(JSON.stringify(response.data));
}).catch((error) => {
console.log(error);
});
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("model", "qwen/qwen3-asr-flash")
.addFormDataPart("file", "audio.mp3",
RequestBody.create(MediaType.parse("audio/mpeg"), new File("/path/to/audio.mp3")))
.build();
Request request = new Request.Builder()
.url("https://wcode.net/api/gpt/v1/audio/transcriptions")
.post(requestBody)
.addHeader("Authorization", "Bearer API_KEY") // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
.build();
Response response = client.newCall(request).execute();
$client = new \GuzzleHttp\Client();
$response = $client->post('https://wcode.net/api/gpt/v1/audio/transcriptions', [
'headers' => [
'Authorization' => 'Bearer API_KEY', // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
],
'multipart' => [
['name' => 'model', 'contents' => 'qwen/qwen3-asr-flash'],
['name' => 'file', 'contents' => fopen('/path/to/audio.mp3', 'r')],
],
]);
echo $response->getBody();
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://wcode.net/api/gpt/v1/audio/transcriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 5,
CURLOPT_TIMEOUT => 300,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => [
'model' => 'qwen/qwen3-asr-flash',
'file' => new CURLFile('/path/to/audio.mp3', 'audio/mpeg', 'audio.mp3'),
],
CURLOPT_HTTPHEADER => [
"Authorization: Bearer API_KEY", // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
],
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
echo "cURL Error #:" . $error;
} else {
echo $response;
}
import requests
import json
url = "https://wcode.net/api/gpt/v1/audio/transcriptions"
headers = {
"Authorization": "Bearer API_KEY", # TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://platform.wcode.net
}
data = {
"model": "qwen/qwen3-asr-flash",
}
with open("/path/to/audio.mp3", "rb") as audio_file:
response = requests.post(url, headers=headers, files={"file": audio_file}, data=data)
print(json.dumps(response.json(), indent=4, ensure_ascii=False))
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
)
with open("/path/to/audio.mp3", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="qwen/qwen3-asr-flash",
file=audio_file,
)
print(transcription.text)
请求参数:
- model(模型 ID)
- stream(流式响应)
- file_format(音频格式)
- language(语言)
- file_url(音频 URL)
- enable_itn(逆文本归一化)
- file_base64(音频 Base64)
- response_format(响应格式)
- file(音频文件)
重要提示:由于模型架构不同,部分参数可能仅适用于特定的模型。
model(模型 ID)
-
参数:
model -
必选,string
语音识别模型 ID。调用时使用模型详情页的模型 ID。
stream(流式响应)
-
参数:
stream -
可选,boolean
-
取值范围:
true|false -
默认:
false
是否以流式方式返回识别结果。
当前接口暂不支持流式响应;请勿设置 stream: true,否则将返回错误。
file_format(音频格式)
-
参数:
file_format -
可选,string
指定音频的格式扩展名。
language(语言)
-
参数:
language -
可选,string
指定音频的主要语言,有助于提升识别准确率。
ISO-639-1 语言代码(例如:en、zh)
file_url(音频 URL)
-
参数:
file_url -
可选,string
待识别的公网音频文件 URL。(备注:file、file_url、file_base64 三选一,使用任一方式传入音频文件均可)
enable_itn(逆文本归一化)
-
参数:
enable_itn -
可选,boolean
-
默认:
false
是否开启 ITN(Inverse Text Normalization),将识别结果中的数字、日期等转为书面形式。
该功能仅适用于中文和英文音频。开启后,语音识别结果中的中文数字(如"一百二十三")或英文数字(如"one hundred")将自动转换为阿拉伯数字(如"123")。
file_base64(音频 Base64)
-
参数:
file_base64 -
可选,string
待识别的音频文件的 Base64 编码内容。(备注:file、file_url、file_base64 三选一,使用任一方式传入音频文件均可)
response_format(响应格式)
-
参数:
response_format -
可选,string
-
取值范围:
json|text -
默认:
json
指定接口响应的内容格式。
默认为 json,响应体含 text 与 usage 字段;设为 text 时仅返回识别结果的纯文本。
file(音频文件)
-
参数:
file -
可选,file
待识别的本地音频文件,通过 multipart/form-data 上传。(备注:file、file_url、file_base64 三选一,使用任一方式传入音频文件均可)
以上文档为标准版 API 接口文档,可直接用于项目开发和系统调用。如果标准版 API 接口无法满足您的需求,需要定制开发 API 接口,请联系我们的 IT 技术支持工程师:
(沟通需求✅ → 确认技术方案✅ → 沟通费用与工期✅ → 开发&测试✅ → 验收交付✅ → 维护升级✅)
![]()