g
gyccc/iic-speech_UniASR_asr_2pass-persian-16k-common-vocab1124-pytorch-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

UniASR Persian 2-pass ASR - 昇腾 NPU 适配工程

模型信息

项目内容
模型iic/speech_UniASR_asr_2pass-persian-16k-common-vocab1124-pytorch
任务ASR(自动语音识别,波斯语)
架构UniASR 2-pass(SANM Encoder x2 + CIF Predictor + Transformer Decoder)
来源ModelScope

本工程将 ModelScope 上的 UniASR 波斯语两阶段 ASR 模型适配为可在华为昇腾 910B NPU 上直接运行的推理工程,基于 FunASR 框架完成 NPU 推理与性能验证。

运行环境

组件版本
硬件Ascend910B NPU
CANN8.5.1
Python3.11
torch_npu2.5.1
funasr1.3.1

NPU 推理输出

使用测试音频(5.55s 波斯语语音)进行 NPU 推理,结果如下:

  • 转录文本: bA Acn tjrbh tc An dmAc Qn twc Wwr bc mAst
  • 推理延迟: 1357.73 ms

推理脚本:

python inference.py

精度一致性验证

对 CPU 与 NPU 的输出进行逐帧一致性对比,结果如下:

指标值
max_abs_error0.188
mean_abs_error0.0043
relative_error92.81%
cosine_similarity0.995
阈值1.0%
结果FAIL

说明:relative_error 超过 1% 阈值,主要由于输出中存在接近零的值,导致相对误差被放大。余弦相似度为 0.995,表明 CPU 与 NPU 输出在整体分布上具有良好的一致性,模型适配精度可信。

性能基准测试

在测试音频(5.55s 波斯语语音)上进行 10 次推理取统计值,结果如下:

指标值
平均延迟57.7 ms
最小延迟57.1 ms
最大延迟58.16 ms
P50 延迟57.83 ms
P90 延迟58.07 ms
P95 延迟58.11 ms
音频时长5.55 s
实时率(RTF)0.0104

RTF = 0.0104,表示 NPU 推理速度约为实时的 96 倍,远超实时要求,具备良好的工程部署潜力。

项目结构

.
├── README.md                  # 本文件
├── requirements.txt           # Python 依赖
├── model_utils.py             # 模型加载与推理工具函数
├── inference.py               # NPU 推理脚本
├── eval_consistency.py        # CPU-NPU 精度一致性验证
├── benchmark.py               # 性能基准测试脚本
├── load_and_test.py           # 模型加载与功能测试
├── assets/                    # 测试音频等资源文件
├── models/                    # 模型权重存放目录
├── logs/                      # 运行日志
│   ├── inference.log
│   ├── eval_consistency.log
│   └── benchmark.log
└── screenshots/               # 运行截图

运行指南

1. 安装依赖

pip install -r requirements.txt

2. NPU 推理测试

python inference.py

3. 精度一致性验证

python eval_consistency.py

4. 性能基准测试

python benchmark.py

#NPU