模型介绍
本模型是基于 WeNet 框架训练的 U2++ Conformer 端到端英语语音识别模型,使用 Gigaspeech 数据集训练。模型导出为 ONNX 格式。
- 任务类型:自动语音识别 (ASR)
- 模型架构:U2++ Conformer (12 层 Encoder, 512-dim, 8 heads)
- 输入:80 维 FBank 特征
- 输出:英文文本(4999 个 tokens + 特殊标记)
原始模型地址
模型框架
| 属性 | 说明 |
|---|
| 原始框架 | 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.wav | AFTER EARLY NIGHTFALL... | AFTER EARLY NIGHTFALL... | ✓ |
| 1.wav | GOD AS A DIRECT... | GOD AS A DIRECT... | ✓ |
| 8k.wav | YET THESE THOUGHTS... | YET THESE THOUGHTS... | ✓ |
CPU/NPU 精度测试结果
编码器输出
| 音频 | 余弦相似度 | 平均相对误差 | 结论 |
|---|
| 0.wav | 1.000000 | 0.092% | PASS |
| 1.wav | 1.000000 | 0.124% | PASS |
| 8k.wav | 1.000000 | 0.086% | PASS |
CTC 概率
| 音频 | 余弦相似度 | 平均相对误差 | 结论 |
|---|
| 0.wav | 1.000000 | 0.002% | PASS |
| 1.wav | 1.000000 | 0.002% | PASS |
| 8k.wav | 1.000000 | 0.003% | PASS |
结论:NPU 与 CPU 推理结果误差 < 1%。
性能测试
| 音频 | CPU | NPU | 加速比 |
|---|
| 0.wav | 7.902s | 8.236s | 0.96x |
| 1.wav | 9.105s | 7.034s | 1.29x |
| 8k.wav | 7.528s | 7.060s | 1.07x |
模拟终端输出截图

推理成功证据
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu
推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。
模型标签
- #+NPU
- #+语音
- #+语音识别
- #+ASR
- #+WeNet
- #+Conformer
- #+昇腾
- #+Gigaspeech
- #+英语语音识别
- #+ONNX