UniASR 是达摩院推出的统一语音识别模型,支持多种语言和采样率。本仓库适配的是 中文 8kHz Online 版本,采用 PyTorch 框架,支持流式语音识别。
| 依赖 | 版本 |
|---|---|
| Python | >= 3.8 |
| funasr | == 1.3.1 |
| PyTorch | >= 2.0 |
| torch_npu | >= 2.0 |
在华为昇腾 Ascend910B NPU 上完成适配,主要工作:
funasr.AutoModel API,指定 device="npu:0" 或 device="cpu"disable_update=True 参数,避免加载时重新下载模型load_utils.py 中 torchaudio 兼容性问题# 安装依赖
pip install funasr==1.3.1 torch torch_npu soundfile
# 验证 NPU 可用
python3 -c "import torch; print(torch.npu.is_available())"# NPU 推理
python inference.py --audio example/asr_example.wav --device npu:0
# CPU 推理对比
python inference.py --audio example/asr_example.wav --device cpu
# Benchmark (10轮)
python inference.py --audio example/asr_example.wav --device npu:0 --benchmark 10
# CPU/NPU 精度对比
python compare_cpu_npu.py \
--model "iic/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online" \
--audio example/asr_example.wav| 设备 | 推理耗时 | 识别结果 |
|---|---|---|
| CPU (Intel Xeon) | 2.599s | 欢迎大家来体验达摩院推出的语音识别模型 |
| NPU (Ascend910B) | 1.393s | 欢迎大家来体验达摩院推出的语音识别模型 |
使用 compare_cpu_npu.py 脚本,先以 CPU 设备运行推理,再以 NPU 设备运行推理,对比输出文本并计算 CER(字错误率)。
python compare_cpu_npu.py \
--model "iic/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online" \
--audio example/asr_example.wav| 指标 | 值 |
|---|---|
| CPU 输出文本 | 欢迎大家来体验达摩院推出的语音识别模型 |
| NPU 输出文本 | 欢迎大家来体验达摩院推出的语音识别模型 |
| 文本完全一致 | ✅ 是 |
| 编辑距离 | 0 |
| CER (字错误率) | 0.0000% |
| 准确率 | 100.0000% |
结论: NPU 与 CPU 推理误差 < 1%。CER = 0.0000%,输出文本完全一致。
| 指标 | CPU | NPU |
|---|---|---|
| 模型加载耗时 | 2.8s | 3.5s |
| 单次推理耗时 | 2.599s | 1.393s |
| NPU 加速比 | 1.0x | 1.87x |
=================================================================
UniASR CPU vs NPU 精度对比
=================================================================
模型: iic/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online
音频: example/asr_example.wav
[1/4] CPU 推理...
加载模型 (cpu)... 2.8s
推理 (cpu)... 2.599s
CPU 结果: "欢迎大家来体验达摩院推出的语音识别模型"
[2/4] NPU 推理...
加载模型 (npu)... 3.5s
推理 (npu)... 1.393s
NPU 结果: "欢迎大家来体验达摩院推出的语音识别模型"
[3/4] 精度对比...
CPU 输出文本: "欢迎大家来体验达摩院推出的语音识别模型"
NPU 输出文本: "欢迎大家来体验达摩院推出的语音识别模型"
文本完全一致: ✅ 是
CER (字错误率): 0.0000%
准确率 (1-CER): 100.0000%
✅ 结论: NPU 与 CPU 推理误差 < 1% (CER=0.0000%)
[4/4] 性能对比...
模型加载耗时 (s): CPU 2.8s NPU 3.5s
单次推理耗时 (s): CPU 2.599s NPU 1.393s
NPU 加速比: 1.87x
=================================================================本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。
@@ 分隔符),属于正常现象模型版权归 ModelScope / 达摩院所有,本仓库仅提供适配脚本。