跳转到主要内容
Qwen-ASR

非实时语音识别(Qwen-ASR)API参考

本文介绍 Qwen-ASR 模型的输入与输出参数。可通过OpenAI 兼容或DashScope协议调用 API。

模型接入方式

不同模型支持的接入方式不同,请根据下表选择正确的方式进行集成。
模型接入方式
千问3-ASR-Flash-Filetrans仅支持DashScope异步调用方式
千问3-ASR-FlashOpenAI 兼容和DashScope同步调用两种方式

OpenAI 兼容

URL

HTTP请求地址:POST https://maas.qianwenaiapi.com/compatible-mode/v1/chat/completions SDK调用配置的base_url:https://maas.qianwenaiapi.com/compatible-mode/v1

请求参数

调用示例

  • 输入内容:音频文件URL
  • 输入内容:Base64编码的音频文件
  • Python SDK
  • Node.js SDK
  • cURL
from openai import OpenAI
import os

try:
    client = OpenAI(
        # 若没有配置环境变量,请用千问AI平台API Key将下行替换为:api_key = "sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        base_url="https://maas.qianwenaiapi.com/compatible-mode/v1",
    )

    stream_enabled = False  # 是否开启流式输出
    completion = client.chat.completions.create(
        model="qwen3-asr-flash",
        messages=[
            {
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ],
                "role": "user"
            }
        ],
        stream=stream_enabled,
        # stream设为False时,不能设置stream_options参数
        # stream_options={"include_usage": True},
        extra_body={
            "asr_options": {
                # "language": "zh",
                "enable_itn": False
            }
        }
    )
    if stream_enabled:
        full_content = ""
        print("流式输出内容为:")
        for chunk in completion:
            # 如果stream_options.include_usage为True,则最后一个chunk的choices字段为空列表,需要跳过(可以通过chunk.usage获取 Token 使用量)
            print(chunk)
            if chunk.choices and chunk.choices[0].delta.content:
                full_content += chunk.choices[0].delta.content
        print(f"完整内容为:{full_content}")
    else:
        print(f"非流式输出内容为:{completion.choices[0].message.content}")
except Exception as e:
    print(f"错误信息:{e}")
参数类型说明
modelstring(必选) 模型名称。仅适用于千问3-ASR-Flash模型。
messagesarray(必选) 消息列表。
System Message(object)
(可选) 用于为语音识别提供上下文(Context),如背景文本和实体词表等参考信息,不支持设置模型角色等传统系统提示词。如果设置系统消息,请放在messages列表的第一位。
User Message(object)
(必选) 用户发送给模型的消息。
System Message
参数类型说明
messages.rolestring(必选) 固定为system。
User Message
参数类型说明
messages.contentarray(必选) 用户消息的内容。仅允许设置一组消息。
messages.content.typestring(必选) 固定为input_audio,代表输入的是音频。
messages.content.input_audioobject(必选) 待识别音频对象。
messages.content.input_audio.datastring(必选) 待识别音频。具体用法请参见调用示例。 千问3-ASR-Flash模型在OpenAI兼容模式下支持两种输入形式:Base64编码的文件和公网可访问的待识别文件URL。 使用SDK时,若录音文件存储在阿里云OSS,不支持使用以 oss://为前缀的临时 URL。 使用RESTful API时,若录音文件存储在阿里云OSS,支持使用以 oss://为前缀的临时 URL。但需注意: 提示: - 临时 URL 有效期48小时,过期后无法使用,请勿用于生产环境。
  • 文件上传凭证接口限流为 100 QPS 且不支持扩容,请勿用于生产环境、高并发及压测场景。
  • 生产环境建议使用阿里云OSS 等稳定存储,确保文件长期可用并规避限流问题。
messages.rolestring(必选) 用户消息的角色,固定为user。
参数类型说明
asr_optionsobject(可选) 用来指定某些功能是否启用。 > asr_options非OpenAI标准参数,若使用OpenAI SDK,请通过extra_body传入。
asr_options.languagestring(可选)无默认值 若已知音频的语种,可通过该参数指定待识别语种,以提升识别准确率。 只能指定一个语种。 若音频语种不确定,或包含多种语种(例如中英日韩混合),请勿指定该参数。
  • zh:中文(普通话、四川话、闽南语、吴语)
  • yue:粤语
  • en:英文
  • ja:日语
  • de:德语
  • ko:韩语
  • ru:俄语
  • fr:法语
  • pt:葡萄牙语
  • ar:阿拉伯语
  • it:意大利语
  • es:西班牙语
  • hi:印地语
  • id:印尼语
  • th:泰语
  • tr:土耳其语
  • uk:乌克兰语
  • vi:越南语
  • cs:捷克语
  • da:丹麦语
  • fil:菲律宾语
  • fi:芬兰语
  • is:冰岛语
  • ms:马来语
  • no:挪威语
  • pl:波兰语
  • sv:瑞典语
asr_options.enable_itnboolean(可选)默认值为false 是否启用ITN(Inverse Text Normalization,逆文本标准化)。该功能仅适用于中文和英文音频。 开启后,语音识别结果中的中文数字(如"一百二十三")或英文数字(如"one hundred")将自动转换为阿拉伯数字(如"123")。 参数值:
  • true:开启;
  • false:关闭。
streamboolean(可选)默认值为false 是否以流式输出方式回复。相关文档:流式输出 可选值:
  • false:模型生成全部内容后一次性返回;
  • true:边生成边输出,每生成一部分内容即返回一个数据块(chunk)。需实时逐个读取这些块以拼接完整回复。
推荐设置为true,可提升阅读体验并降低超时风险。
stream_optionsobject(可选) 流式输出的配置项,仅在 stream 为 true 时生效。
stream_options.include_usageboolean(可选)默认值为false 是否在响应的最后一个数据块包含Token消耗信息。 可选值:
  • true:包含;
  • false:不包含。
> 流式输出时,Token 消耗信息仅可出现在响应的最后一个数据块。

响应参数

{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "message": {
                "annotations": [
                    {
                        "emotion": "neutral",
                        "language": "zh",
                        "type": "audio_info"
                    }
                ],
                "content": "欢迎使用阿里云。",
                "role": "assistant"
            }
        }
    ],
    "created": 1767683986,
    "id": "chatcmpl-487abe5f-d4f2-9363-a877-xxxxxxx",
    "model": "qwen3-asr-flash",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 12,
        "completion_tokens_details": {
            "text_tokens": 12
        },
        "prompt_tokens": 42,
        "prompt_tokens_details": {
            "audio_tokens": 42,
            "text_tokens": 0
        },
        "seconds": 1,
        "total_tokens": 54
    }
}
参数类型说明
idstring本次调用的唯一标识符。
choicesarray模型的输出信息。
choices.finish_reasonstring有三种情况:
  • 正在生成时为null;
  • 因模型输出自然结束,或触发输入参数中的stop条件而结束时为stop;
  • 因生成长度过长而结束为length。
choices.indexinteger当前对象在choices数组中的索引。
choices.messageobject模型输出的消息对象。
choices.message.rolestring输出消息的角色,固定为assistant。
choices.message.contentarray语音识别结果。
choices.message.annotationsarray输出标注信息(如语种)
choices.message.annotations.languagestring被识别音频的语种。当请求参数language已指定语种时,该值与所指定的参数一致。
  • zh:中文(普通话、四川话、闽南语、吴语)
  • yue:粤语
  • en:英文
  • ja:日语
  • de:德语
  • ko:韩语
  • ru:俄语
  • fr:法语
  • pt:葡萄牙语
  • ar:阿拉伯语
  • it:意大利语
  • es:西班牙语
  • hi:印地语
  • id:印尼语
  • th:泰语
  • tr:土耳其语
  • uk:乌克兰语
  • vi:越南语
  • cs:捷克语
  • da:丹麦语
  • fil:菲律宾语
  • fi:芬兰语
  • is:冰岛语
  • ms:马来语
  • no:挪威语
  • pl:波兰语
  • sv:瑞典语
choices.message.annotations.typestring固定为audio_info,表示音频信息。
choices.message.annotations.emotionstring被识别音频的情感。支持的情感如下:
  • surprised:惊讶
  • neutral:平静
  • happy:愉快
  • sad:悲伤
  • disgusted:厌恶
  • angry:愤怒
  • fearful:恐惧
createdinteger请求创建时的 Unix 时间戳(秒)。
modelstring本次请求使用的模型。
objectstring始终为chat.completion。
usageobject本次请求的Token消耗信息。
usage.completion_tokensinteger模型输出的 Token 数。
usage.completion_tokens_detailsobject模型输出的 Token 细粒度详情。
usage.completion_tokens_details.text_tokensinteger模型输出文本的Token数。
usage.prompt_tokensobject输入的Token数。
usage.prompt_tokens_detailsobject输入的 Token 细粒度详情。
usage.prompt_tokens_details.audio_tokensinteger输入音频长度(Token)。音频转换Token规则:每秒音频转换为25个Token,不足1秒按1秒计算。
usage.prompt_tokens_details.text_tokensinteger无需关注该参数。
usage.secondsinteger音频时长(秒)。
usage.total_tokensinteger输入和输出总Token数(total_tokens = completion_tokens + prompt_tokens)。

DashScope同步调用

URL

HTTP请求地址:POST https://maas.qianwenaiapi.com/api/v1/services/aigc/multimodal-generation/generation SDK调用配置的base_url:https://maas.qianwenaiapi.com/api/v1

请求参数

modelstring(必选)模型名称。仅适用于千问3-ASR-Flash模型。messagesarray(必选)消息列表。
通过HTTP调用时,请将messages放入 input 对象中。

消息类型

System Messageobject(可选)用于为语音识别提供上下文(Context),如背景文本和实体词表等参考信息,不支持设置模型角色等传统系统提示词。如果设置系统消息,请放在messages列表的第一位。仅千问3-ASR-Flash支持该参数。
rolestring(必选)固定为system。
User Messageobject(必选)用户发送给模型的消息。
contentarray(必选)用户消息的内容。仅允许设置一组消息。

属性

audiostring(必选)待识别音频。具体用法请参见调用示例。千问3-ASR-Flash模型在DashScope调用方式下支持三种输入形式:Base64编码的文件、本地文件绝对路径、公网可访问的待识别文件URL。使用SDK时,若录音文件存储在阿里云OSS,不支持使用以 oss://为前缀的临时 URL。使用RESTful API时,若录音文件存储在阿里云OSS,支持使用以 oss://为前缀的临时 URL。但需注意:
  • 临时 URL 有效期48小时,过期后无法使用,请勿用于生产环境。
  • 文件上传凭证接口限流为 100 QPS 且不支持扩容,请勿用于生产环境、高并发及压测场景。
  • 生产环境建议使用阿里云OSS 等稳定存储,确保文件长期可用并规避限流问题。
rolestring(必选)用户消息的角色,固定为user。
asr_optionsobject(可选)用来指定某些功能是否启用。仅千问3-ASR-Flash支持该参数。

属性

language string(可选)无默认值若已知音频的语种,可通过该参数指定待识别语种,以提升识别准确率。只能指定一个语种。若音频语种不确定,或包含多种语种(例如中英日韩混合),请勿指定该参数。
  • zh:中文(普通话、四川话、闽南语、吴语)
  • yue:粤语
  • en:英文
  • ja:日语
  • de:德语
  • ko:韩语
  • ru:俄语
  • fr:法语
  • pt:葡萄牙语
  • ar:阿拉伯语
  • it:意大利语
  • es:西班牙语
  • hi:印地语
  • id:印尼语
  • th:泰语
  • tr:土耳其语
  • uk:乌克兰语
  • vi:越南语
  • cs:捷克语
  • da:丹麦语
  • fil:菲律宾语
  • fi:芬兰语
  • is:冰岛语
  • ms:马来语
  • no:挪威语
  • pl:波兰语
  • sv:瑞典语
enable_itnboolean(可选)默认值为false是否启用ITN(Inverse Text Normalization,逆文本标准化)。该功能仅适用于中文和英文音频。开启后,语音识别结果中的中文数字(如"一百二十三")或英文数字(如"one hundred")将自动转换为阿拉伯数字(如"123")。参数值:
  • true:开启;
  • false:关闭。

调用示例

Qwen3-ASR-Flash 支持最长 5 分钟录音,输入支持公网音频文件 URL 或本地文件上传,可流式返回识别结果。
  • 输入内容:音频文件URL
  • 输入内容:Base64编码的音频文件
  • 输入内容:本地音频文件绝对路径
  • 流式输出
curl -X POST "https://maas.qianwenaiapi.com/api/v1/services/aigc/multimodal-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3-asr-flash",
    "input": {
        "messages": [
            {
                "content": [
                    {
                        "audio": "{YOUR_AUDIO_URL}"
                    }
                ],
                "role": "user"
            }
        ]
    },
    "parameters": {
        "asr_options": {
            "enable_itn": false
        }
    }
}'

响应参数

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "annotations": [
                        {
                            "language": "zh",
                            "type": "audio_info",
                            "emotion": "neutral"
                        }
                    ],
                    "content": [
                        {
                            "text": "欢迎使用阿里云。"
                        }
                    ],
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "input_tokens_details": {
            "text_tokens": 0
        },
        "output_tokens_details": {
            "text_tokens": 6
        },
        "seconds": 1
    },
    "request_id": "568e2bf0-d6f2-97f8-9f15-a57b11dc6977"
}
参数类型说明
request_idstring本次调用的唯一标识符。 > Java SDK返回参数为requestId。
outputobject调用结果信息。
output.choicesarray模型的输出信息。当result_format为message时返回choices参数。
output.choices.finish_reasonstring有三种情况:
  • 正在生成时为null;
  • 因模型输出自然结束,或触发输入参数中的stop条件而结束时为stop;
  • 因生成长度过长而结束为length。
output.choices.messageobject模型输出的消息对象。
output.choices.message.rolestring输出消息的角色,固定为assistant。
output.choices.message.contentarray输出消息的内容。
output.choices.message.content.textstring语音识别结果。
output.choices.message.annotationsarray输出标注信息(如语种)
output.choices.message.annotations.languagestring被识别音频的语种。当请求参数language已指定语种时,该值与所指定的参数一致。
  • zh:中文(普通话、四川话、闽南语、吴语)
  • yue:粤语
  • en:英文
  • ja:日语
  • de:德语
  • ko:韩语
  • ru:俄语
  • fr:法语
  • pt:葡萄牙语
  • ar:阿拉伯语
  • it:意大利语
  • es:西班牙语
  • hi:印地语
  • id:印尼语
  • th:泰语
  • tr:土耳其语
  • uk:乌克兰语
  • vi:越南语
  • cs:捷克语
  • da:丹麦语
  • fil:菲律宾语
  • fi:芬兰语
  • is:冰岛语
  • ms:马来语
  • no:挪威语
  • pl:波兰语
  • sv:瑞典语
output.choices.message.annotations.typestring固定为audio_info,表示音频信息。
output.choices.message.annotations.emotionstring被识别音频的情感。支持的情感如下:
  • surprised:惊讶
  • neutral:平静
  • happy:愉快
  • sad:悲伤
  • disgusted:厌恶
  • angry:愤怒
  • fearful:恐惧
usageobject本次请求的Token消耗信息。
usage.input_tokens_detailsobject千问3-ASR-Flash输入内容长度(Token)。
usage.input_tokens_details.text_tokensinteger无需关注该参数。
usage.output_tokens_detailsobject千问3-ASR-Flash输出内容长度(Token)。
usage.output_tokens_details.text_tokensinteger千问3-ASR-Flash输出的识别结果文本长度(Token)。
usage.secondsinteger千问3-ASR-Flash音频时长(秒)。

DashScope异步调用

流程说明

与OpenAI兼容模式或DashScope同步调用(均为一次请求、立即返回结果)不同,异步调用专为处理长音频文件或耗时较长的任务设计,该模式采用“提交-轮询”的两步式流程,避免了因长时间等待而导致的请求超时:
  1. 第一步:提交任务
    • 客户端发起一个异步处理请求。
    • 服务器验证请求后,不会立即执行任务,而是返回一个唯一的 task_id,表示任务已成功创建。
  2. 第二步:获取结果
    • 客户端使用获取到的 task_id,通过轮询方式反复调用结果查询接口。
    • 当任务处理完成后,结果查询接口将返回最终的识别结果。
您可以根据集成环境选择使用SDK或直接调用RESTful API。
  • 使用 SDK(示例代码请参见调用示例,请求参数请参见提交任务的请求参数请求参数,返回结果请参见异步调用识别结果说明) SDK封装了底层的API调用细节,提供了更便捷的编程体验。
    1. 提交任务:调用 async_call() (Python) 或 asyncCall() (Java) 方法提交任务。此方法将返回一个包含 task_id 的任务对象。
    2. 获取结果:使用上一步返回的任务对象或 task_id,调用 fetch() 方法获取结果。SDK内部会自动处理轮询逻辑,直到任务完成或超时。
    1. 使用 RESTful API
    直接调用HTTP接口提供了最大的灵活性。
    1. 提交任务,如果请求成功,响应参数响应参数中将包含一个 task_id。
    2. 使用上一步获取的 task_id,获取任务执行结果。

完整示例

  • HTTP
  • Java SDK
  • Python SDK
  • 下载识别结果
Java
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import okhttp3.*;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

public class Main {
    private static final String API_URL_SUBMIT = "https://maas.qianwenaiapi.com/api/v1/services/audio/asr/transcription";
    private static final String API_URL_QUERY = "https://maas.qianwenaiapi.com/api/v1/tasks/";
    private static final Gson gson = new Gson();

    public static void main(String[] args) {
        // 若没有配置环境变量,请用千问AI平台API Key将下行替换为:String apiKey = "sk-xxx"
        String apiKey = System.getenv("DASHSCOPE_API_KEY");

        OkHttpClient client = new OkHttpClient();

        // 1. 提交任务
        String payloadJson = """
                {
                    "model": "qwen3-asr-flash-filetrans",
                    "input": {
                        "file_url": "{YOUR_AUDIO_URL}"
                    },
                    "parameters": {
                        "channel_id": [0],
                        "enable_itn": false,
                        "enable_words": true
                    }
                }
                """;

        RequestBody body = RequestBody.create(payloadJson, MediaType.get("application/json; charset=utf-8"));
        Request submitRequest = new Request.Builder()
                .url(API_URL_SUBMIT)
                .addHeader("Authorization", "Bearer " + apiKey)
                .addHeader("Content-Type", "application/json")
                .addHeader("X-DashScope-Async", "enable")
                .post(body)
                .build();

        String taskId = null;

        try (Response response = client.newCall(submitRequest).execute()) {
            if (response.isSuccessful() && response.body() != null) {
                String respBody = response.body().string();
                ApiResponse apiResp = gson.fromJson(respBody, ApiResponse.class);
                if (apiResp.output != null) {
                    taskId = apiResp.output.taskId;
                    System.out.println("任务已提交,task_id: " + taskId);
                } else {
                    System.out.println("提交返回内容: " + respBody);
                    return;
                }
            } else {
                System.out.println("任务提交失败! HTTP code: " + response.code());
                if (response.body() != null) {
                    System.out.println(response.body().string());
                }
                return;
            }
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }

        // 2. 轮询任务状态
        boolean finished = false;
        while (!finished) {
            try {
                TimeUnit.SECONDS.sleep(2);  // 等待 2 秒再查询
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
                return;
            }

            String queryUrl = API_URL_QUERY + taskId;
            Request queryRequest = new Request.Builder()
                    .url(queryUrl)
                    .addHeader("Authorization", "Bearer " + apiKey)
                    .addHeader("Content-Type", "application/json")
                    .get()
                    .build();

            try (Response response = client.newCall(queryRequest).execute()) {
                if (response.body() != null) {
                    String queryResponse = response.body().string();
                    ApiResponse apiResp = gson.fromJson(queryResponse, ApiResponse.class);

                    if (apiResp.output != null && apiResp.output.taskStatus != null) {
                        String status = apiResp.output.taskStatus;
                        System.out.println("当前任务状态: " + status);
                        if ("SUCCEEDED".equalsIgnoreCase(status)
                                || "FAILED".equalsIgnoreCase(status)
                                || "UNKNOWN".equalsIgnoreCase(status)) {
                            finished = true;
                            System.out.println("任务完成,最终结果: ");
                            System.out.println(queryResponse);
                        }
                    } else {
                        System.out.println("查询返回内容: " + queryResponse);
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }
        }
    }

    static class ApiResponse {
        @SerializedName("request_id")
        String requestId;
        Output output;
    }

    static class Output {
        @SerializedName("task_id")
        String taskId;
        @SerializedName("task_status")
        String taskStatus;
    }
}

提交任务

URL

HTTP请求地址:POST https://maas.qianwenaiapi.com/api/v1/services/audio/asr/transcription SDK调用配置的base_url:https://maas.qianwenaiapi.com/api/v1

请求参数

  • cURL
  • Java
  • Python
# ======= 重要提示 =======
# === 执行时请删除该注释 ===

curl --location --request POST 'https://maas.qianwenaiapi.com/api/v1/services/audio/asr/transcription' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-Async: enable" \
--data '{
    "model": "qwen3-asr-flash-filetrans",
    "input": {
        "file_url": "{YOUR_AUDIO_URL}"
    },
    "parameters": {
        "channel_id":[
            0
        ],
        "enable_itn": false
    }
}'
参数类型说明
modelstring(必选) 模型名称。仅适用于千问3-ASR-Flash-Filetrans模型。
inputobject(必选)
input.file_urlstring(必选) 待识别音频文件URL,URL必须公网可访问。 使用SDK时,若录音文件存储在阿里云OSS,不支持使用以 oss://为前缀的临时 URL。 使用RESTful API时,若录音文件存储在阿里云OSS,支持使用以 oss://为前缀的临时 URL。但需注意: 提示: - 临时 URL 有效期48小时,过期后无法使用,请勿用于生产环境。
  • 文件上传凭证接口限流为 100 QPS 且不支持扩容,请勿用于生产环境、高并发及压测场景。
  • 生产环境建议使用阿里云OSS 等稳定存储,确保文件长期可用并规避限流问题。
parametersobject(可选)
parameters.languagestring(可选)无默认值 若已知音频的语种,可通过该参数指定待识别语种,以提升识别准确率。 只能指定一个语种。 若音频语种不确定,或包含多种语种(例如中英日韩混合),请勿指定该参数。
  • zh:中文(普通话、四川话、闽南语、吴语)
  • yue:粤语
  • en:英文
  • ja:日语
  • de:德语
  • ko:韩语
  • ru:俄语
  • fr:法语
  • pt:葡萄牙语
  • ar:阿拉伯语
  • it:意大利语
  • es:西班牙语
  • hi:印地语
  • id:印尼语
  • th:泰语
  • tr:土耳其语
  • uk:乌克兰语
  • vi:越南语
  • cs:捷克语
  • da:丹麦语
  • fil:菲律宾语
  • fi:芬兰语
  • is:冰岛语
  • ms:马来语
  • no:挪威语
  • pl:波兰语
  • sv:瑞典语
parameters.enable_itnboolean(可选)默认值为false 是否启用ITN(Inverse Text Normalization,逆文本标准化)。该功能仅适用于中文和英文音频。 开启后,语音识别结果中的中文数字(如"一百二十三")或英文数字(如"one hundred")将自动转换为阿拉伯数字(如"123")。 参数值:
  • true:开启;
  • false:关闭。
parameters.enable_wordsboolean(可选)默认值为false 控制是否返回字级别时间戳:
  • false:返回句级时间戳
  • true:返回字级时间戳
字级别时间戳仅支持以下语种:中文、英语、日语、韩语、德语、法语、西班牙语、意大利语、葡萄牙语、俄语,其他语种可能无法保证准确性 同时,该参数还影响断句规则:
  • false:基于 VAD(语音活动检测)断句
  • true:基于 VAD + 标点符号断句
parameters.channel_idarray(可选)默认值为[0] 指定在多音轨音频文件中需要识别的音轨索引,索引从 0 开始。例如,[0] 表示识别第一个音轨,[0, 1] 表示同时识别第一和第二个音轨。如果省略此参数,则默认处理第一个音轨。 提示: 指定的每一个音轨都将独立计费。例如,为单个文件请求 [0, 1] 会产生两笔独立的费用。

响应参数

{
    "request_id": "92e3decd-0c69-47a8-************",
    "output": {
        "task_id": "8fab76d0-0eed-4d20-************",
        "task_status": "PENDING"
    }
}
参数类型说明
request_idstring本次调用的唯一标识符。
outputobject调用结果信息。
output.task_idstring任务ID。该ID在查询语音识别任务接口中作为请求参数传入。
output.task_statusstring任务状态:
  • PENDING:任务排队中
  • RUNNING:任务处理中
  • SUCCEEDED:任务执行成功
  • FAILED:任务执行失败
  • UNKNOWN:任务不存在或状态未知

获取任务执行结果

URL

HTTP请求地址:GET https://maas.qianwenaiapi.com/api/v1/tasks/{task_id} SDK调用配置的base_url:https://maas.qianwenaiapi.com/api/v1

请求参数

  • cURL
  • Java
  • Python
# ======= 重要提示 =======
# === 执行时请删除该注释 ===

curl --location --request GET 'https://maas.qianwenaiapi.com/api/v1/tasks/{task_id}' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json"
参数类型说明
task_idstring(必选) 任务ID。将提交任务返回结果中的task_id作为参数传入,查询语音识别结果。

响应参数

{
    "request_id": "6769df07-2768-4fb0-ad59-************",
    "output": {
        "task_id": "9be1700a-0f8e-4778-be74-************",
        "task_status": "RUNNING",
        "submit_time": "2025-10-27 14:19:31.150",
        "scheduled_time": "2025-10-27 14:19:31.233",
        "task_metrics": {
            "TOTAL": 1,
            "SUCCEEDED": 0,
            "FAILED": 0
        }
    }
}
参数类型说明
request_idstring本次调用的唯一标识符。
outputobject调用结果信息。
output.task_idstring任务ID。该ID在查询语音识别任务接口中作为请求参数传入。
output.task_statusstring任务状态:
  • PENDING:任务排队中
  • RUNNING:任务处理中
  • SUCCEEDED:任务执行成功
  • FAILED:任务执行失败
  • UNKNOWN:任务不存在或状态未知
output.resultobject语音识别结果。
output.result.transcription_urlstring识别结果文件的下载 URL,链接有效期为 24 小时。过期后无法查询任务,也无法通过先前的 URL 下载结果。
识别结果以 JSON 文件保存,可通过该链接下载文件,或直接使用 HTTP 请求读取文件内容。
详情参见异步调用识别结果说明。
output.submit_timestring任务提交时间。
output.schedule_timestring任务调度时间,即开始执行时间。
output.end_timestring任务结束时间。
output.task_metricsobject任务指标,包含子任务状态的统计信息。
output.task_metrics.TOTALinteger子任务总数。
output.task_metrics.SUCCEEDEDinteger子任务成功数。
output.task_metrics.FAILEDinteger子任务失败数。
output.codestring错误码,仅在任务失败时返回。
output.messagestring错误信息,仅任务失败时返回。
output.usageobject本次请求的Token消耗信息。
output.usage.secondsinteger千问3-ASR-Flash音频时长(秒)。

异步调用识别结果说明

{
    "file_url": "https://***.mp3",
    "audio_info": {
        "format": "mp3",
        "sample_rate": 22050
    },
    "transcripts": [
        {
            "channel_id": 0,
            "text": "欢迎使用阿里云。",
            "sentences": [
                {
                    "sentence_id": 0,
                    "begin_time": 0,
                    "end_time": 1440,
                    "language": "zh",
                    "emotion": "neutral",
                    "text": "欢迎使用阿里云。",
                    "words": [
                        {
                            "begin_time": 0,
                            "end_time": 160,
                            "text": "欢",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 160,
                            "end_time": 320,
                            "text": "迎",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 320,
                            "end_time": 640,
                            "text": "使",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 640,
                            "end_time": 720,
                            "text": "用",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 880,
                            "end_time": 960,
                            "text": "阿",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 1040,
                            "end_time": 1120,
                            "text": "里",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 1120,
                            "end_time": 1440,
                            "text": "云",
                            "punctuation": "。"
                        }
                    ]
                }
            ]
        }
    ]
}
参数类型说明
file_urlstring被识别的音频文件URL。
audio_infoobject被识别音频文件相关信息。
audio_info.formatstring音频格式。
audio_info.sample_rateinteger音频采样率。
transcriptsarray完整的识别结果列表,每个元素对应一条音轨的识别内容。
transcripts.channel_idinteger音轨索引,以0为起始。
transcripts.textstring识别结果文本。
transcripts.sentencesobject句子级别的识别结果列表。
transcripts.sentences.begin_timeinteger句子开始时间戳(毫秒)。
transcripts.sentences.end_timeinteger句子结束时间戳(毫秒)。
transcripts.sentences.textstring识别结果文本。
transcripts.sentences.sentence_idinteger句子索引,以0为起始。
transcripts.sentences.languagestring被识别音频的语种。当请求参数language已指定语种时,该值与所指定的参数一致。
  • zh:中文(普通话、四川话、闽南语、吴语)
  • yue:粤语
  • en:英文
  • ja:日语
  • de:德语
  • ko:韩语
  • ru:俄语
  • fr:法语
  • pt:葡萄牙语
  • ar:阿拉伯语
  • it:意大利语
  • es:西班牙语
  • hi:印地语
  • id:印尼语
  • th:泰语
  • tr:土耳其语
  • uk:乌克兰语
  • vi:越南语
  • cs:捷克语
  • da:丹麦语
  • fil:菲律宾语
  • fi:芬兰语
  • is:冰岛语
  • ms:马来语
  • no:挪威语
  • pl:波兰语
  • sv:瑞典语
transcripts.sentences.emotionstring被识别音频的情感。支持的情感如下:
  • surprised:惊讶
  • neutral:平静
  • happy:愉快
  • sad:悲伤
  • disgusted:厌恶
  • angry:愤怒
  • fearful:恐惧
transcripts.sentences.wordsobject词级别的识别结果列表。当请求参数enable_words设为true时展示该结果。
transcripts.sentences.words.begin_timeinteger开始时间戳(毫秒)。
transcripts.sentences.words.end_timeinteger结束时间戳(毫秒)。
transcripts.sentences.words.textstring识别结果文本。
transcripts.sentences.words.punctuationstring标点符号。