本模型是基于 WeNet 框架训练的 U2++ Conformer 端到端语音识别模型,使用 Wenetspeech 中文普通话大数据集训练。模型导出为 ONNX 格式。
| 属性 | 说明 |
|---|---|
| 原始框架 | PyTorch (WeNet) |
| 导出格式 | ONNX (opset 13) |
| 适配框架 | PyTorch + onnx2torch |
| NPU 推理 | torch_npu |
输入:chunk [1,T,80], offset [1], required_cache_size [1], att_cache [12,8,?,128], cnn_cache [12,1,512,14], att_mask [1,1,T']
输出:encoder_out [1,T',512], ctc_probs [1,T',5538]
pip install torch torchaudio torch_npu
pip install onnx onnx2torch onnxruntime soundfile numpy modelscope# CPU
python3 inference.py --device cpu
# NPU
python3 inference.py --device npu
# 精度对比
python3 compare_cpu_npu.py| 音频 | CPU 推理结果 | NPU 推理结果 | 匹配 |
|---|---|---|---|
| 0.wav | 正 是 因 为 存 在 绝 对 正 义 ... | 正 是 因 为 存 在 绝 对 正 义 ... | ✓ |
| 1.wav | 是 因 说 第 二 种 叫 外 欧 下 | 是 因 说 第 二 种 叫 外 欧 下 | ✓ |
| 2.wav | 讲 有 博 被 拍 到 大 着 女 儿 出 游 | 讲 有 博 被 拍 到 大 着 女 儿 出 游 | ✓ |
| 3.wav | 周 往 君 就 落 实 控 匠 | 周 往 君 就 落 实 控 匠 | ✓ |
| 4.wav | 每 当 新 年 的 综 孙 敲 响 ... | 每 当 新 年 的 综 孙 敲 响 ... | ✓ |
| 音频 | 余弦相似度 | 平均相对误差 | 结论 |
|---|---|---|---|
| 0.wav | 1.000000 | 0.156% | PASS |
| 1.wav | 1.000000 | 0.219% | PASS |
| 2.wav | 1.000000 | 0.151% | PASS |
| 3.wav | 1.000000 | 0.201% | PASS |
| 4.wav | 1.000000 | 0.231% | PASS |
| 音频 | 余弦相似度 | 平均相对误差 | 结论 |
|---|---|---|---|
| 0.wav | 1.000000 | 0.005% | PASS |
| 1.wav | 1.000000 | 0.004% | PASS |
| 2.wav | 1.000000 | 0.005% | PASS |
| 3.wav | 1.000000 | 0.005% | PASS |
| 4.wav | 1.000000 | 0.006% | PASS |
结论:NPU 与 CPU 推理结果误差 < 1%,所有测试通过。
| 音频 | CPU | NPU | 加速比 |
|---|---|---|---|
| 0.wav | 9.049s | 8.275s | 1.09x |
| 1.wav | 7.741s | 6.969s | 1.11x |
| 2.wav | 7.435s | 7.113s | 1.05x |
| 3.wav | 7.556s | 6.999s | 1.08x |
| 4.wav | 13.016s | 7.112s | 1.83x |

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。