录音文件识别(Qwen-ASR)API参考

本文介绍 Qwen-ASR 模型的输入与输出参数。

用户指南:模型介绍和选型请参见录音文件识别-通义千问

中国大陆(北京):POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

国际(新加坡):POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

请求体

Qwen3-ASR

cURL

# ======= 重要提示 =======
# 以下为北京地域url,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# 新加坡地域和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
# === 执行时请删除该注释 ===

curl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Authorization: Bearer $DASHSCOPE_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen3-asr-flash",
    "input": {
        "messages": [
            {
                "content": [
                    {
                        "text": ""
                    }
                ],
                "role": "system"
            },
            {
                "content": [
                    {
                        "audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
                    }
                ],
                "role": "user"
            }
        ]
    },
    "parameters": {
        "asr_options": {
            "enable_itn": true
        }
    }
}'

Java

import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;

public class Main {
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage userMessage = MultiModalMessage.builder()
                .role(Role.USER.getValue())
                .content(Arrays.asList(
                        Collections.singletonMap("audio", "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3")))
                .build();

        MultiModalMessage sysMessage = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
                // 此处用于配置定制化识别的Context
                .content(Arrays.asList(Collections.singletonMap("text", "")))
                .build();

        Map<String, Object> asrOptions = new HashMap<>();
        asrOptions.put("enable_itn", true);
        // asrOptions.put("language", "zh"); // 可选,若已知音频的语种,可通过该参数指定待识别语种,以提升识别准确率
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
                // 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen3-asr-flash")
                .message(userMessage)
                .message(sysMessage)
                .parameter("asr_options", asrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }
    public static void main(String[] args) {
        try {
            // 以下为北京地域url,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1
            Constants.baseHttpApiUrl = "https://dashscope.aliyuncs.com/api/v1";
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

Python

import os
import dashscope

# 以下为北京地域url,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'

messages = [
    {
        "role": "system",
        "content": [
            # 此处用于配置定制化识别的Context
            {"text": ""},
        ]
    },
    {
        "role": "user",
        "content": [
            {"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"},
        ]
    }
]
response = dashscope.MultiModalConversation.call(
    # 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
    # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key = "sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3-asr-flash",
    messages=messages,
    result_format="message",
    asr_options={
        # "language": "zh", # 可选,若已知音频的语种,可通过该参数指定待识别语种,以提升识别准确率
        "enable_itn":True
    }
)
print(response)

Qwen-Audio-ASR

cURL

curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
    "model": "qwen-audio-asr",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"}
                ]
            }
        ]
    }
}'

Java

import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage userMessage = MultiModalMessage.builder()
                .role(Role.USER.getValue())
                .content(Arrays.asList(
                        Collections.singletonMap("audio", "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3")))
                .build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                .model("qwen-audio-asr")
                .message(userMessage)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }
    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

Python

import dashscope

messages = [
    {
        "role": "user",
        "content": [
            {"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"},
        ]
    }
]
response = dashscope.MultiModalConversation.call(
    model="qwen-audio-asr",
    messages=messages,
    result_format="message")
print(response)

model string (必选)

模型名称。

messages array (必选)

消息列表。

通过HTTP调用时,请将messages 放入 input 对象中。

消息类型

System Message object(可选)

模型的目标或角色。如果设置系统消息,请放在messages列表的第一位。

Qwen3-ASR支持该参数,Qwen-Audio-ASR不支持。

属性

content array(必选)

消息内容。

属性

text string

指定上下文(Context)。Qwen3-ASR支持用户在语音识别的同时,提供背景文本、实体词表等参考信息(Context),从而获得定制化的识别结果。

长度限制:不超过10000 Token。

具体介绍请参见上下文增强

role string (必选)

固定为system

User Message object(必选)

用户发送给模型的消息。

属性

content array (必选)

用户消息的内容。

属性

audio string(必选)

待识别音频文件。可以是公网可访问的音频文件URL,也可以是本地音频文件绝对路径(具体用法请参见快速开始)。

使用SDK时,若录音文件存储在阿里云OSS,不支持使用以 oss://为前缀的临时 URL。

使用RESTful API时,若录音文件存储在阿里云OSS,支持使用以 oss://为前缀的临时 URL。但需注意:

重要
  • 临时 URL 有效期48小时,过期后无法使用,请勿用于生产环境。

  • 文件上传凭证接口限流为 100 QPS 且不支持扩容,请勿用于生产环境、高并发及压测场景。

  • 生产环境建议使用阿里云OSS 等稳定存储,确保文件长期可用并规避限流问题。

role string (必选)

用户消息的角色,固定为user

asr_options object (可选)

用来指定某些功能是否启用。

Qwen3-ASR支持该参数,Qwen-Audio-ASR 不支持。

属性

language string(可选)无默认值

若已知音频的语种,可通过该参数指定待识别语种,以提升识别准确率。

只能指定一个语种。

若音频语种不确定,或包含多种语种(例如中英日韩混合),请勿指定该参数。

参数值:

  • zh:中文(普通话、四川话、闽南语、吴语)

  • yue:粤语

  • en:英文

  • ja:日语

  • de:德语

  • ko:韩语

  • ru:俄语

  • fr:法语

  • pt:葡萄牙语

  • ar:阿拉伯语

  • it:意大利语

  • es:西班牙语

  • hi:印地语

  • id:印尼语

  • th:泰语

  • tr:土耳其语

  • uk:乌克兰语

  • vi:越南语

enable_itn boolean(可选)默认值为false

是否启用ITN(Inverse Text Normalization,逆文本标准化)。该功能仅适用于中文和英文音频。

参数值:

  • true:开启;

  • false:关闭。

返回体

Qwen3-ASR

{
    "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"
}

Qwen-Audio-ASR

{
    "status_code": 200,
    "request_id": "802e87ff-1875-99cd-96c0-16a50338836a",
    "code": "",
    "message": "",
    "output": {
        "text": null,
        "finish_reason": null,
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "text": "欢迎使用阿里云"
                        }
                    ]
                }
            }
        ]
    },
    "usage": {
        "input_tokens": 74,
        "output_tokens": 7,
        "audio_tokens": 46
    }
}

request_id string

本次调用的唯一标识符。

Java SDK返回参数为requestId。

output object

调用结果信息。

属性

choices array

模型的输出信息。当result_formatmessage时返回choices参数。

属性

finish_reason string

有三种情况:

  • 正在生成时为null;

  • 因模型输出自然结束,或触发输入参数中的stop条件而结束时为stop;

  • 因生成长度过长而结束为length。

message object

模型输出的消息对象。

属性

role string

输出消息的角色,固定为assistant。

content array

输出消息的内容。

属性

text string

语音识别结果。

annotations array

输出标注信息(如语种)

属性

language string

被识别音频的语种。当请求参数language已指定语种时,该值与所指定的参数一致。

可能的值如下:

  • zh:中文(普通话、四川话、闽南语、吴语)

  • yue:粤语

  • en:英文

  • ja:日语

  • de:德语

  • ko:韩语

  • ru:俄语

  • fr:法语

  • pt:葡萄牙语

  • ar:阿拉伯语

  • it:意大利语

  • es:西班牙语

  • hi:印地语

  • id:印尼语

  • th:泰语

  • tr:土耳其语

  • uk:乌克兰语

  • vi:越南语

type string

固定为audio_info,表示音频信息。

emotion string

被识别音频的情感。支持的情感如下:

  • surprised:惊讶

  • neutral:平静

  • happy:愉快

  • sad:悲伤

  • disgusted:厌恶

  • angry:愤怒

  • fearful:恐惧

usage object

本次请求使用的Token信息。

属性

input_tokens_details integer

Qwen3-ASR输入内容长度(Token)。

属性

text_tokens integer

Qwen3-ASR使用上下文增强功能时输入的文本长度(Token),上限为10000 Token。

output_tokens_details integer

Qwen3-ASR输出内容长度(Token)。

属性

text_tokens integer

Qwen3-ASR输出的识别结果文本长度(Token)。

seconds integer

Qwen3-ASR音频时长(秒)。

input_tokens integer

Qwen-Audio-ASR输入音频长度(Token)。音频转换Token规则:每秒音频转换为25Token,不足1秒按1秒计算。

output_tokens integer

Qwen-Audio-ASR输出的识别结果文本长度(Token)。

audio_tokens integer

Qwen-Audio-ASR输出的音频长度(Token)。音频转换Token规则:每秒音频转换为25Token,不足1秒按1秒计算。