Qwen非实时语音识别(异步接口)
更新时间 2026-09-06 17:30:50
最近更新时间: 2026-09-06 17:30:50
本文介绍阿里Qwen非实时语音识别(异步)调用API。
支持的模型
| 模型 | 说明 |
|---|---|
| qwen‑audio‑3.0‑asr‑flash‑filetrans | 千问 3 音频文件转写,支持即时热词、上下文增强,最多设置 4 个语言提示 |
| fun‑asr | Fun‑ASR 稳定版,等价fun‑asr‑2025‑11‑07,语言提示仅支持 1 种语种 |
调用流程
接口采用异步任务模式,分两步执行:
step1:调用创建任务接口,成功返回task_id
step2:调用查询任务接口查询对应task_id,直到task_status值为SUCCEEDED,获取生成视频url
创建任务接口详情
http调用
请求方式:POST
请求路径:https://ai.ctaigw.cn/v1/services/audio/asr/transcription
请求头
| 参数 | 必填 | 说明 |
|---|---|---|
| Content‑Type | 是 | 固定application/json |
| Authorization | 是 | Bearer ${YOUR_APP_KEY} |
| X‑DashScope‑Async | 是 | 必须enable |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称 |
| input | object | 是 | 输入对象 |
| input.file_urls | array[string] | 是 | 音视频文件转写的URL列表,支持HTTP / HTTPS协议,单次请求仅支持1个URL。 |
| input.context | array[object] | 否 | 消息列表 |
| context[].role | string | 是 | 消息角色。取值范围: - user:前几轮的识别结果或领域相关的词表。 - assistant:前几轮大语言模型的回复内容。 |
| context[].content | array[object] | 是 | 内容数组 |
| content[].type | string | 是 | 内容类型。取值范围: - input_text(可选,上下文):前几轮用户语音的识别结果或领域相关的词表(role为user),需同时传入text字段。 - text(可选,上下文):前几轮大语言模型的回复内容(role为assistant),需同时传入text字段。 |
| content[].text | string | 条件必选 | 当type为input_text时,填入前几轮用户语音的识别结果或领域相关的词表;当type为text时,填入前几轮大语言模型的回复内容。文本按字符数计算,每个字符计为 1。 |
| parameters | object | 否 | 请求参数对象 |
| parameters.vocabulary_id | string | 否 | 预编译热词列表 ID,复用热词表 |
| parameters.vocabulary | object | 否 | 即时热词,仅 qwen‑audio‑3.0‑asr‑flash‑filetrans 支持;key 热词,value 权重 [1‑5] 或 50 超级热词;超级热词最多 50 个 |
| parameters.channel_id | array[int] | 否 | 识别音轨索引,从 0 开始;多音轨每一个音轨独立计费;默认[0] |
| parameters.diarization_enabled | boolean | 否 | 是否开启说话人分离,默认 false;仅单声道音频;开启建议音频≤2 小时 |
| parameters.speaker_count | integer | 否 | 说话人参考数量,2‑100,仅开启分离后生效,仅辅助算法,不保证严格输出该人数 |
| parameters.language_hints | array[string] | 否 | 语种提示码:zh/en/ja/ko/vi/th/id 等;Qwen 系列最多 4 个;Fun‑ASR 仅生效第一个 |
| parameters.special_word_filter | string | 否 | 敏感词过滤配置 |
响应参数
| 参数 | 类型 | 说明 |
|---|---|---|
| request_id | string | 请求唯一标识,用于问题排查溯源 |
| output | object | 任务输出主体 |
| output.task_id | string | 查询的任务 ID |
| output.task_status | string | 任务状态 - PENDING:任务排队中 - RUNNING:任务处理中 - SUCCEEDED:任务执行成功 - FAILED:任务执行失败 - CANCELED:任务已取消 - UNKNOWN:任务不存在或状态未知 |
查询任务接口详情
http调用
请求方式:GET
请求路径:https://ai.ctaigw.cn/v1/tasks/{task_id}
Path 路径参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| task_id | string | 是 | 创建异步任务接口返回的任务 ID |
请求头
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Authorization | string | 是 | 身份认证,格式:Bearer ${YOUR_APP_KEY} |
响应参数
| 返回字段 | 类型 | 说明 |
|---|---|---|
| request_id | string | 本次查询请求 ID |
| output.task_id | string | 任务 ID |
| output.task_status | string | 任务总状态:PENDING/SUCCEEDED/FAILED; 只要有一个子任务成功总状态就是 SUCCEEDED,需要看 subtask_status 判断每个文件结果 |
| output.submit_time | string | 任务提交时间 |
| output.scheduled_time | string | 调度执行时间 |
| output.end_time | string | 任务结束时间 |
| output.results | array[object] | 子任务结果数组,一个音频对应一个子任务 |
| results[].file_url | string | 原始音频 url |
| results[].subtask_status | string | 子任务状态 SUCCEEDED/FAILED |
| results[].transcription_url | string | 识别结果 JSON 下载地址 |
| output.task_metrics | object | 统计 |
| output.task_metrics.TOTAL | int | 子任务总数 |
| output.task_metrics.SUCCEEDED | int | 成功数 |
| output.task_metrics.FAILED | int | 失败数 |
| usage.duration | int | 计费语音时长(秒) |
请求/响应示例
创建任务请求示例
请求
curl --location 'https://ai.ctaigw.cn/v1/services/audio/asr/transcription' \
--header "Authorization: Bearer ${YOUR_APP_KEY}" \
--header "Content-Type: application/json" \
--header "X-DashScope-Async: enable" \
--data '{
"model": "qwen-audio-3.0-asr-flash-filetrans",
"input": {
"file_urls": [
"{YOUR_AUDIO_URL}"
]
},
"parameters": {
"channel_id": [0]
}
}'正常响应
{
"output": {
"task_status": "PENDING",
"task_id": "xxxx‑xxxx‑xxxx‑xxxx"
},
"request_id": "00d06a841873c0a83bfaf1fae0184625"
}异常响应
{
"error": {
"type:": "Invalid_request",
"code": "missing_parameter",
"message": "Missing required parameters"
}
}查询任务请求示例
请求
curl -X GET https://ai.ctaigw.cn/v1/tasks/{task_id} \
--header "Authorization: Bearer ${YOUR_APP_KEY}"正常响应
{
"request_id": "00d06a841873c0a83bfaf1fae0184625",
"output": {
"task_id": "xxxx‑xxxx‑xxxx‑xxxx",
"task_status": "SUCCEEDED",
"submit_time": "2026-08-26 12:10:05.001",
"scheduled_time": "2026-08-26 12:10:05.201",
"end_time": "2026-08-26 12:10:25.001",
"results": [
{
"file_url": "{YOUR_AUDIO_URL}",
"transcription_url": "https://aaaa.ctyun.cn/001.json",
"subtask_status": "SUCCEEDED"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"duration": 9
}
}