e
gcw_GSiqzzLf/ofa_mmspeech_asr_aishell1_large_zh-npu
模型介绍文件和版本Pull Requests讨论分析

OFA-MMSpeech ASR AISHELL-1 Large (NPU适配版)

模型介绍

OFA-MMSpeech (Omni Modal Fusion of Audio and Multimodal Speech) 是达摩院推出的统一多模态语音理解模型。本仓库为 ASR AISHELL-1 Large 版本在华为昇腾 NPU 上的适配部署。

属性说明
模型名称OFA-MMSpeech ASR AISHELL-1 Large
ModelScope IDiic/ofa_mmspeech_asr_aishell1_large_zh
参数规模609M
任务类型自动语音识别 (ASR)
框架PyTorch + ModelScope
语言中文 (zh)
原始模型ModelScope 链接

NPU 适配

本仓库在华为昇腾 NPU (Ascend910) 上完成适配验证。适配要点:

  1. 模型迁移: 使用 model.npu() 和 model.model = model.model.npu() 将模型移至 NPU
  2. 输入迁移: 所有输入张量需显式调用 .npu() 移至 NPU 设备
  3. 同步等待: 使用 torch.npu.synchronize() 确保计时准确
  4. Fairseq 依赖: 使用自定义 fairseq stub 替代完整安装,实现核心算子(MultiheadAttention、SamePad、utterance_cmvn 等)
  5. torchaudio 补丁: sox_effects 因 NPU 环境限制需要 monkey-patch

环境要求

  • Python 3.8+
  • PyTorch 2.0.0+ (NPU 推理需要 torch_npu 2.9.0+)
  • ModelScope 1.35.3+
  • 华为昇腾 NPU (可选,CPU 也可运行)

输入输出格式

说明
输入16kHz 单声道 WAV 音频文件
输出中文文本 (ASR 识别结果)

使用方式

推理

python3 inference.py --audio /path/to/test.wav --device npu

参数说明:

  • --audio: 输入音频路径(16kHz 单声道 WAV)
  • --device: 运行设备,可选 cpu 或 npu,默认自动检测

CPU vs NPU 精度对比

python3 compare_cpu_npu.py --audio /path/to/test.wav

推理结果

准确率对比

指标CPUNPU一致性
识别文本甚至出现交易几乎停滞的情况甚至出现交易几乎停滞的情况✅ 完全一致
CER (字符错误率)--0.0000%

结论:NPU 与 CPU 推理结果误差 < 1%

性能对比

指标CPUNPU (首次)NPU (预热后)加速比
推理耗时14.41s9.53s0.39s~37x

说明:NPU 首次推理包含 JIT 编译开销(约 9.1s),预热后推理仅需 0.39s,相比 CPU 提速约 37 倍。

截图

推理截图

文件说明

文件说明
inference.py单模型推理脚本,支持 CPU/NPU
compare_cpu_npu.pyCPU vs NPU 精度对比脚本,含 CER 计算
requirements.txtPython 依赖
screenshot.png运行截图

参考链接

  • OFA-MMSpeech 论文
  • ModelScope OFA-ASR 文档
  • torch_npu 文档

推理成功证据

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:

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

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

推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。

下载使用量0