非实时语音识别模型能将录制好的音频转换为文本,支持多语言识别、歌唱识别、噪声拒识、说话人分离等功能,适用于会议转写、通话分析、字幕生成等场景。
概述
通过异步任务对录制好的音视频文件进行批量转写。
- 支持上下文增强,通过配置上下文提高识别准确率
- 支持自定义热词,通过预设词表提升专有名词识别准确率
- 支持说话人分离、敏感词过滤、句子/词语级时间戳等可配置功能
- 支持单个时长不超过 12 小时、体积不超过 2GB 的音频文件异步转写
- 支持任意采样率,兼容 aac、wav、mp3 等多种主流音视频格式
前提条件
- 已获取与配置 API Key并将其配置到环境变量。
- 如果通过 DashScope SDK 调用,需要安装最新版SDK。
快速开始
- Qwen-Audio-3.0-ASR-Flash-Filetrans/ Fun-ASR
- Qwen-Audio-3.0-ASR-Flash/ Fun-ASR-Flash
- Qwen3-ASR-Flash-Filetrans
- Qwen3-ASR-Flash
- Paraformer
- cURL
- Python
- Java
task_id,再通过该 ID 查询任务执行结果。- 提交任务
- 获取任务执行结果
- 下载识别结果
{WorkspaceId}替换为真实的Workspace ID,各地域的配置不同。完整的识别结果会以JSON格式打印在控制台。完整结果包含转换后的文本以及文本在音视频文件中的起始、结束时间(以毫秒为单位)。
完整的识别结果会以JSON格式打印在控制台。完整结果包含转换后的文本以及文本在音视频文件中的起始、结束时间(以毫秒为单位)。
- 识别结果
进阶功能
使用OpenAI兼容API
仅Qwen3-ASR-Flash系列模型支持OpenAI兼容方式调用。OpenAI兼容方式仅允许输入公网可访问的音频文件URL,不支持输入本地音频文件绝对路径。
OpenAI Python SDK 版本应不低于1.52.0, Node.js SDK 版本应不低于 4.68.0。安装/升级命令:
asr_options非OpenAI标准参数。使用 OpenAI Python SDK 时,请通过 extra_body 传入;使用 Node.js OpenAI SDK 时,直接将 asr_options 作为请求体的顶层参数传入。
- 输入内容:音频文件URL
- 输入内容:Base64编码的音频文件
- Python SDK
- Node.js SDK
- cURL
长音频文件处理
非实时语音识别支持长音频文件异步转写,适用于会议记录、访谈整理、通话回放等场景。
限制说明:
- Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR / Qwen3-ASR-Flash-Filetrans / Paraformer:单个音频文件大小不超过 2GB,时长不超过 12 小时。
- Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash/Qwen3-ASR-Flash:单个音频文件大小不超过 10MB,时长不超过 5 分钟。对于较长音频,请使用 Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR 或Qwen3-ASR-Flash-Filetrans。
- 启用说话人分离时:建议音频时长不超过 2 小时,否则可能导致识别失败或超时。详见说话人分离。
- 提交转写任务,获取
task_id。 - 通过轮询接口查询任务状态(或使用 SDK 的等待方法阻塞等待)。
- 任务完成后从返回的 URL 下载识别结果 JSON。
流式输出
Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash/Qwen3-ASR-Flash 支持流式输出:边识别边返回中间结果,适用于需要实时反馈进度的场景。
Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR、Qwen3-ASR-Flash-Filetrans、Paraformer 等异步转写模型不支持流式输出,需通过任务轮询获取最终结果(详见长音频文件处理)。
启用方式:
- DashScope Python SDK:设置
stream参数为True。 - DashScope Java SDK:通过
streamCall接口调用。 - DashScope HTTP:在 Header 中设置
X-DashScope-SSE为enable。 - OpenAI 兼容 SDK:设置
stream参数为True。
使用热词提升准确率
支持通过热词提升特定领域专有名词(人名、地名、产品名等)的识别准确率。详细的创建和使用方法,请参见提升识别准确率。
不同 SDK 暴露上述参数的命名习惯不同(如字典 key、对象属性、方法等),完整字段对照请参见各 SDK 的 API 参考。
使用上下文增强提升准确率
支持上下文增强功能,可将对话历史传入 ASR 模型,显著提升专有词汇的转写准确率。详细的使用方法和效果示例,请参见上下文增强。
说话人分离
说话人分离可自动识别音频中不同说话人,并在转写结果中为每个句子标注说话人标签,适用于多人会议、访谈录音等场景。
支持范围:Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR 和 Paraformer 系列模型。
启用方式:在 API 请求参数中设置 diarization_enabled 为 true。识别结果中每个句子会包含 speaker_id 字段,标识不同说话人。
返回结构示例(节选):
敏感词过滤
敏感词过滤可对识别结果中的敏感词执行替换或移除,适用于客服质检、内容合规、字幕审核等场景。
支持范围:Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR 与 Paraformer 系列模型。
默认行为:未传入 special_word_filter 参数时,系统启用内置的阿里云百炼敏感词表,匹配的词语会被替换为等长的 *。
自定义配置:special_word_filter 是 JSON 对象,包含三个子字段:
filter_with_signed.word_list:字符串数组,列出需要被替换为等长*的敏感词。例如["测试"],「帮我测试一下」会变成「帮我**一下」。filter_with_empty.word_list:字符串数组,列出需要从结果中完全移除的敏感词。例如["开始"],「比赛这就要开始了吗」会变成「比赛这就要了吗」。system_reserved_filter:布尔值,默认true。是否同时启用系统预置敏感词表(与自定义词表叠加生效)。
情感识别
Qwen3-ASR-Flash-Filetrans 与Qwen3-ASR-Flash 系列模型固定开启情感识别,无需额外配置。识别结果中会附带说话人的情绪标签,取值为 7 类细粒度情绪:surprised(惊讶)、neutral(平静)、happy(愉快)、sad(悲伤)、disgusted(厌恶)、angry(愤怒)、fearful(恐惧)。
字段路径(因接口而异):
- OpenAI 兼容接口(Qwen3-ASR-Flash 实时转写):嵌套在
choices[].delta.annotations[].emotion(流式输出)或choices[].message.annotations[].emotion(非流式)。 - DashScope 同步调用接口(Qwen3-ASR-Flash):嵌套在
output.choices[].message.annotations[].emotion。 - DashScope 异步任务接口(Qwen3-ASR-Flash-Filetrans 录音文件转写):嵌套在
transcripts[].sentences[].emotion,与时间戳、说话人等字段并列在每个句子对象中。
获取时间戳
非实时语音识别支持在转写结果中输出时间戳,便于字幕生成、关键词高亮、音视频剪辑等场景。Qwen-Audio-3.0-ASR-Flash-Filetrans、Qwen-Audio-3.0-ASR-Flash、Fun-ASR、Fun-ASR-Flash、Qwen3-ASR-Flash-Filetrans、Paraformer 均支持,但各模型的时间戳默认行为和控制方式不同:
- Qwen-Audio-3.0-ASR-Flash-Filetrans/Qwen-Audio-3.0-ASR-Flash/Fun-ASR/Fun-ASR-Flash/Paraformer:时间戳功能固定开启,不可关闭。
- Qwen3-ASR-Flash-Filetrans:仅 DashScope 异步调用方式支持时间戳,时间戳功能固定开启。可通过请求参数
enable_words控制时间戳级别:设为false(默认)返回句级时间戳,设为true返回字级时间戳。字级别时间戳仅支持以下语种:中文、英语、日语、韩语、德语、法语、西班牙语、意大利语、葡萄牙语、俄语,其他语种可能无法保证准确性。
- 句级:
sentences[].begin_time与sentences[].end_time,标识每个句子在音频中的起止时刻。 - 字级:
sentences[].words[]数组,每个元素包含begin_time、end_time与text(该字/词文本)。
应用于生产环境
将非实时语音识别应用于生产环境时,以下最佳实践有助于提升识别效果和系统稳定性。
高并发场景:使用回调替代轮询
异步转写任务(Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR、Qwen3-ASR-Flash-Filetrans、Paraformer)通过 POST /api/v1/services/audio/asr/transcription 提交后,通常做法是周期性调用查询接口 GET /api/v1/tasks/{task_id} 获取结果。该查询接口默认 20 QPS、最高可扩容至 100 QPS,在高并发批量场景下,频繁轮询易触发限流。
通过事件总线 EventBridge 配置回调通知,任务完成时阿里云百炼会自动推送 dashscope:System:AsyncTaskFinish 事件至您配置的目标(HTTP/HTTPS 端点或 RocketMQ Topic),消费端收到事件后无需再调用查询接口,从而规避因频繁轮询而被限流的风险。详情请参见配置 EventBridge 回调通知。
适用模型
- 适用模型:Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR、Qwen3-ASR-Flash-Filetrans、Paraformer(均为异步转写任务)。
- 不适用:Qwen3-ASR-Flash(同步/流式调用,不属异步任务范畴)。
回调消息内容
三种模型的回调消息体中 data.contain_result 均为 true,data.output_result 直接携带 transcription_url,消费端收到回调后即可获取识别结果,无需再调用 GET /api/v1/tasks/{task_id}。但三个模型的结果字段路径与结构不同,详见下表。
data.output_result.output 不再含 results/result,而是含 code 与 message 字段,需先判断 data.task_status 再取结果。模型 | 提交参数 | 结果字段路径(基于回调 Body) | usage 字段 |
|---|---|---|---|
Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR |
|
|
|
Paraformer |
| 同 Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR: |
|
Qwen3-ASR-Flash-Filetrans |
|
|
|
注意事项
安全(HTTP/HTTPS 投递方式):生产环境必须校验回调请求头中的 X-Eventbridge-Signature* 系列字段后再消费,否则任意外部 IP 都可伪造 AsyncTaskFinish 事件,注入虚假识别结果。建议同时为接收端设置至少 5 秒的接收超时。RocketMQ 投递方式无消息级签名,安全性由 RocketMQ 鉴权机制保证。
投递延迟:从任务结束(end_time)到投递目标(HTTP/HTTPS 端点或 RocketMQ Topic)收到消息,通常约 1–90 秒,具体延迟受 EventBridge 实时负载影响。
幂等性:同一事件可能因重试而被投递多次。消费端需实现幂等处理,建议以 CloudEvents data.id 或 data.task_id 作为去重键。
生产环境建议
- 文件托管:将音频文件上传至阿里云 OSS,通过 URL 方式调用,避免使用本地文件上传(本地文件调用上限 100 QPS,不支持扩容)。
- 异步轮询:长音频转写采用异步模式,建议设置合理的轮询间隔(如 2~5 秒),避免频繁查询消耗配额。如需突破 20–100 QPS 查询上限,可改用事件回调通知,详见高并发场景:使用回调替代轮询。
- 错误处理:实现完善的重试机制;网络超时或服务端临时错误(5xx)按指数退避策略重试。
- 降噪处理:噪声较大的音频建议先用 FFmpeg 等工具预处理后再提交识别。
- 模型选择:根据音频时长选择合适的模型。5 分钟以内的短音频使用Qwen3-ASR-Flash,超过 5 分钟的长音频使用 Qwen-Audio-3.0-ASR-Flash-Filetrans、Fun-ASR 或Qwen3-ASR-Flash-Filetrans。
支持的模型与地域
- 华北2(北京)
- 新加坡
- 美国(弗吉尼亚)
- Qwen-Audio-3.0-ASR-Flash-Filetrans:qwen-audio-3.0-asr-flash-filetrans
- Qwen-Audio-3.0-ASR-Flash:qwen-audio-3.0-asr-flash
- Fun-ASR:fun-asr(稳定版,当前等同fun-asr-2025-11-07)、fun-asr-2025-11-07(快照版)、fun-asr-2025-08-25(快照版)、fun-asr-mtl(稳定版,当前等同fun-asr-mtl-2025-08-25)、fun-asr-mtl-2025-08-25(快照版)
- Fun-ASR-Flash:fun-asr-flash-2026-06-15
- Qwen3-ASR-Flash-Filetrans:qwen3-asr-flash-filetrans(稳定版,当前等同qwen3-asr-flash-filetrans-2025-11-17)、qwen3-asr-flash-filetrans-2025-11-17(快照版)
- Qwen3-ASR-Flash:qwen3-asr-flash(稳定版,当前等同qwen3-asr-flash-2025-09-08)、qwen3-asr-flash-2026-02-10(最新快照版)、qwen3-asr-flash-2025-09-08(快照版)
- Paraformer:paraformer-v2、paraformer-8k-v2、paraformer-v1、paraformer-8k-v1、paraformer-mtl-v1
API参考
- 非实时语音识别-Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR API参考
- 非实时语音识别-Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash API参考
- 非实时语音识别-Qwen-ASR API参考
- 非实时语音识别-Paraformer API参考
常见问题
Q:如何为API提供公网可访问的音频URL?
推荐使用阿里云对象存储OSS,它提供了高可用、高可靠的存储服务,并且可以方便地生成公网访问URL。
在公网环境下验证生成的 URL 可正常访问:可在浏览器或通过 curl 命令访问该 URL,确保音频文件能够成功下载或播放(HTTP状态码为200)。
Q:如何检查音频格式是否符合要求?
可以使用开源工具ffprobe快速获取音频的详细信息:
Q:如何处理音频以满足模型要求?
可以使用开源工具FFmpeg对音频进行裁剪或格式转换:
- 音频裁剪:从长音频中截取片段
- 格式转换 例如,将任意音频转换为16kHz、16-bit、单声道WAV文件
Q:如何提升识别准确率?
以下因素影响识别准确率,请逐项排查并针对性优化。
主要影响因素:
- 声音质量:录音设备品质、采样率及环境噪声直接影响音频清晰度,高质量音频输入是准确识别的基础
- 说话人特征:音调、语速、口音和方言差异(尤其少见方言或重口音)增加识别难度
- 语言和词汇:多语言混合、专业术语或俚语增加识别难度,可通过配置热词优化特定领域术语的准确率
- 优化音频质量:使用高性能麦克风,按推荐采样率录音,尽量减少环境噪声与回声
- 适配说话人:对于口音较重或方言明显的音频,选用支持对应方言的模型
- 配置热词:为专业术语、专有名词等设置热词