e
gcw_GSiqzzLf/wenet-u2pp-conformer-gigaspeech-onnx-offline-npu
模型介绍文件和版本Pull Requests讨论分析

WeNet U2++ Conformer Gigaspeech ASR - 昇腾 NPU 适配

模型介绍

本模型是基于 WeNet 框架训练的 U2++ Conformer 端到端英语语音识别模型,使用 Gigaspeech 数据集训练。模型导出为 ONNX 格式。

  • 任务类型:自动语音识别 (ASR)
  • 模型架构:U2++ Conformer (12 层 Encoder, 512-dim, 8 heads)
  • 输入:80 维 FBank 特征
  • 输出:英文文本(4999 个 tokens + 特殊标记)

原始模型地址

  • ModelScope: manyeyes/wenet-u2pp-conformer-gigaspeech-onnx-offline-20210728

模型框架

属性说明
原始框架PyTorch (WeNet)
导出格式ONNX (opset 13)
适配框架PyTorch + onnx2torch
NPU 推理torch_npu

输入/输出格式

输入形状说明
chunk[1, T, 80]FBank 特征
att_cache[12, 8, 0, 128]8 头注意力缓存
cnn_cache[12, 1, 512, 30]CNN 缓存
输出形状说明
output[1, T', 512]编码器输出
probs[1, T', 4999]CTC 概率

环境准备

pip install torch torchaudio torch_npu
pip install onnx onnx2torch onnxruntime soundfile numpy

推理命令

# CPU
python3 inference.py --device cpu
# NPU
python3 inference.py --device npu
# 精度对比
python3 compare_cpu_npu.py

推理结果

音频CPU 推理结果NPU 推理结果匹配
0.wavAFTER EARLY NIGHTFALL...AFTER EARLY NIGHTFALL...✓
1.wavGOD AS A DIRECT...GOD AS A DIRECT...✓
8k.wavYET THESE THOUGHTS...YET THESE THOUGHTS...✓

CPU/NPU 精度测试结果

编码器输出

音频余弦相似度平均相对误差结论
0.wav1.0000000.092%PASS
1.wav1.0000000.124%PASS
8k.wav1.0000000.086%PASS

CTC 概率

音频余弦相似度平均相对误差结论
0.wav1.0000000.002%PASS
1.wav1.0000000.002%PASS
8k.wav1.0000000.003%PASS

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

性能测试

音频CPUNPU加速比
0.wav7.902s8.236s0.96x
1.wav9.105s7.034s1.29x
8k.wav7.528s7.060s1.07x

模拟终端输出截图

终端输出截图

推理成功证据

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

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

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

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

模型标签

  • #+NPU
  • #+语音
  • #+语音识别
  • #+ASR
  • #+WeNet
  • #+Conformer
  • #+昇腾
  • #+Gigaspeech
  • #+英语语音识别
  • #+ONNX
下载使用量0