m0_74196153/Qwen3-ForcedAligner-0.6B-npu
模型介绍文件和版本Pull Requests讨论分析

Qwen3-ForcedAligner-0.6B-NPU

Qwen3-ForcedAligner-0.6B 是 Qwen3-ASR 系列中的强制对齐模型,支持对 11 种语言的音频进行字/词级别的时间戳预测(ASR 强制对齐)。本项目提供该模型在 昇腾 Ascend910 NPU 上的适配脚本、推理示例和 CPU/NPU 精度对比。

模型介绍

  • 原始模型: Qwen/Qwen3-ForcedAligner-0.6B
  • 任务类型: 自动语音识别 (ASR) + 强制对齐 (Forced Alignment)
  • 模型架构: Qwen3ASRForConditionalGeneration(Qwen3 文本解码器 + Whisper 风格音频编码器)
  • 参数量: ~6亿 (0.6B)
  • 支持语言: 中文、粤语、英语、德语、西班牙语、法语、意大利语、葡萄牙语、俄语、韩语、日语
  • 输入格式: 音频 (16kHz 单声道 PCM) + 文本
  • 输出格式: 字/词级别时间戳(起止时间,单位:秒)

NPU 适配说明

该模型本身依赖 Qwen3-ASR 框架进行推理。本项目基于官方 qwen-asr Python 包进行适配,无需修改模型代码即可在 NPU 上运行。

关键适配要点:

  1. 使用 qwen_asr.Qwen3ForcedAligner.from_pretrained() 加载模型
  2. 通过 device_map="npu:0" 指定 NPU 设备
  3. 使用 align() 方法进行强制对齐推理

环境准备

依赖安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple transformers>=4.57.0 torch soundfile numpy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple qwen-asr nagisa librosa

环境要求

  • Python >= 3.9
  • PyTorch >= 2.0.0
  • Ascend NPU (CANN + torch_npu)
  • 昇腾驱动和 CANN 工具包已安装

推理命令

生成合成音频推理(默认)

# CPU 推理
python inference.py --device cpu

# NPU 推理
python inference.py --device npu

使用自定义音频和文本

python inference.py --device npu --audio /path/to/audio.wav --text "Your transcript text." --language English

CPU/NPU 精度对比

对比方法

使用 compare_cpu_npu.py 分别在 CPU 和 NPU 上运行同一模型,对比:

  1. 模型 logits:计算 MSE、最大绝对误差、相对误差、余弦相似度、Token 一致率
  2. 输出时间戳:对比每个对齐单元的起止时间是否一致

对比结果

python compare_cpu_npu.py --text "Hello world." --language English
指标值
均方误差 (MSE)5.50e-07
最大绝对误差 (MaxAbs)5.43e-03
相对误差0.013%
余弦相似度0.99999982
Token 一致率100.00%
时间戳一致2/2 (100.0%)

结论

NPU 与 CPU 推理结果误差为 0.013%,满足 < 1% 的精度要求。 模型输出的 logits 余弦相似度接近 1.0,Token 预测完全一致,时间戳完全相同。

性能测试

设备推理耗时
CPU (Intel Xeon)2.45s
NPU (Ascend910)0.32s

NPU 推理速度约为 CPU 的 7.7 倍。

模型标签

  • #NPU
  • #昇腾
  • #语音
  • #ASR
  • #强制对齐
  • #自动语音识别
  • #Transformers
  • #PyTorch

截图

推理截图

下载使用量0