| 配套 | 版本 | 环境准备指导 |
|---|---|---|
| CANN | 8.2.RC1 | 快速安装CANN |
| Python | 3.10.12 | - |
| torch | 2.7.1+cpu | - |
| torch_npu | 2.7.1.dev20250724 | - |
执行如下命令:
apt update
apt install jq
pip insatll peft==0.17.0
pip install torchvision==0.22.1+cpu
pip install torchaudio==2.7.1+cpu
pip install vllm==0.10.0
pip install vllm-ascend==0.10.0rc1如果torch版本被动升级,如下命令重新安装:
pip install torch==2.7.1+cpu --no-deps以最小化安装并启用 transformers 后端支持:
运行
pip install -U qwen-asrQwen3-ASR 系列包括 Qwen3-ASR-1.7B 和 Qwen3-ASR-0.6B,支持 52 种语言和方言的语言识别与语音识别(ASR)。两者均利用大规模语音训练数据以及其基础模型 Qwen3-Omni 强大的音频理解能力。实验表明,1.7B 版本在开源 ASR 模型中达到业界领先水平,并可与最强的商业闭源 API 相媲美。

以下是 Qwen3-ASR 模型的介绍及下载信息,请根据需求选择并下载合适的模型。
| 模型 | 支持的语言 | 支持的方言 | 推理模式 | 音频类型 |
|---|---|---|---|---|
| Qwen3-ASR-1.7B & Qwen3-ASR-0.6B | 中文 (zh)、英文 (en)、粤语 (yue)、阿拉伯语 (ar)、德语 (de)、法语 (fr)、西班牙语 (es)、葡萄牙语 (pt)、印尼语 (id)、意大利语 (it)、韩语 (ko)、俄语 (ru)、泰语 (th)、越南语 (vi)、日语 (ja)、土耳其语 (tr)、印地语 (hi)、马来语 (ms)、荷兰语 (nl)、瑞典语 (sv)、丹麦语 (da)、芬兰语 (fi)、波兰语 (pl)、捷克语 (cs)、菲律宾语 (fil)、波斯语 (fa)、希腊语 (el)、匈牙利语 (hu)、马其顿语 (mk)、罗马尼亚语 (ro) | 安徽、东北、福建、甘肃、贵州、河北、河南、湖北、湖南、江西、宁夏、山东、陕西、山西、四川、天津、云南、浙江、粤语(香港口音)、粤语(广东口音)、吴语、闽南语 | 离线 / 流式 | 语音、歌声、带背景音乐的歌曲 |
我将以Qwen3-ASR-1.7B为例,来讲解相关的推理部署。
pip install modelscope
modelscope download --model Qwen/Qwen3-ASR-1.7B --local_dir ./Qwen3-ASR-1.7B
modelscope download --model Qwen/Qwen3-ForcedAligner-0.6B --local_dir ./Qwen3-ForcedAligner-0.6B创建脚本
vim inference.py脚本如下:
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"./Qwen3-ASR-1.7B",
dtype=torch.bfloat16,
device_map="npu:0",
# attn_implementation="flash_attention_2",
max_inference_batch_size=32, # Batch size limit for inference. -1 means unlimited. Smaller values can help avoid OOM.
max_new_tokens=256, # Maximum number of tokens to generate. Set a larger value for long audio input.
)
results = model.transcribe(
audio="https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_en.wav",
language=None, # set "English" to force the language
)
print(results[0].language)
print(results[0].text)然后运行
python inference.py如果希望返回时间戳,需要传入forced_aligner及其初始化参数。以下是带时间戳输出的批量推理示例:
创建脚本
vim inference_timetag.py脚本如下:
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"./Qwen3-ASR-1.7B",
dtype=torch.bfloat16,
device_map="npu:0",
# attn_implementation="flash_attention_2",
max_inference_batch_size=32, # Batch size limit for inference. -1 means unlimited. Smaller values can help avoid OOM.
max_new_tokens=256, # Maximum number of tokens to generate. Set a larger value for long audio input.
forced_aligner="./Qwen3-ForcedAligner-0.6B",
forced_aligner_kwargs=dict(
dtype=torch.bfloat16,
device_map="npu:0",
# attn_implementation="flash_attention_2",
),
)
results = model.transcribe(
audio=[
"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_zh.wav",
"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_en.wav",
],
language=["Chinese", "English"], # can also be set to None for automatic language detection
return_time_stamps=True,
)
for r in results:
print(r.language, r.text, r.time_stamps[0])然后运行
python inference_timetag.py推荐使用 FlashAttention 2 来减少显存占用并加速推理速度,尤其适用于长输入和大批量场景。
pip install -U flash-attn --no-build-isolation安装好后,可以把脚本的flash_attention_2打开,可以参考如下的脚本:
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"./Qwen3-ASR-1.7B",
dtype=torch.bfloat16,
device_map="npu:0",
attn_implementation="flash_attention_2",
max_inference_batch_size=32, # Batch size limit for inference. -1 means unlimited. Smaller values can help avoid OOM.
max_new_tokens=256, # Maximum number of tokens to generate. Set a larger value for long audio input.
)
results = model.transcribe(
audio="https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_en.wav",
language=None, # set "English" to force the language
)
print(results[0].language)
print(results[0].text)