UniASR 中文 8kHz 通用模型,词表大小 3445,基于 PyTorch 的在线流式识别模型 — 已适配华为昇腾 Ascend NPU
UniASR-zh-8k-vocab3445 是 ModelScope 社区提供的 UniASR 中文普通话语音识别模型,词表大小为 3445 字,基于 PyTorch 框架实现在线流式识别。本项目将其适配至华为昇腾 Ascend NPU,实现了与 CPU 推理完全一致的精度,并获得近 5-6 倍的推理加速。
| 属性 | 值 |
|---|---|
| 模型名称 | UniASR-zh-8k-vocab3445 |
| 模型来源 | ModelScope |
| 任务类型 | 自动语音识别 (ASR) |
| 语言 | 中文普通话 |
| 词表大小 | 3445 字 |
| 输入采样率 | 8000 Hz |
| 前处理采样率 | 16000 Hz |
| 模型架构 | SANM Encoder + FsmnDecoder SCAMA + CIF Predictor |
| 解码方式 | Beam Search (model2) |
| 框架 | PyTorch + FunASR |
| 部署平台 | 华为昇腾 Ascend NPU (910B2/910B3) |
| 推理引擎 | torch_npu |
| 适配类型 | NPU 推理适配 (无需重新训练) |
模型已完成 NPU 与 CPU 的精度对比验证,结果完全一致。
| 测试项 | NPU (Ascend 910B2) | CPU (Reference) | 对比结果 |
|---|---|---|---|
| 测试音频 | asr_example.wav (5.5s) | asr_example.wav (5.5s) | 相同音频 |
| 推理结果 | 当当当当网 | 当当当当网 | 完全一致 :white_check_mark: |
| 推理耗时 | 452ms | 2530ms | NPU 快 5.59x :rocket: |
| 实时因子 | 0.0815 | 0.4560 | NPU 更优 |
| 字错率 (CER) | — | — | 0.00% :white_check_mark: |
| 指标 | NPU (Ascend 910B2) | CPU | 提升幅度 |
|---|---|---|---|
| 推理延迟 | 452 ms | 2530 ms | -82% |
| 实时因子 (RTF) | 0.0815 | 0.4560 | 越低越好 |
| 加速比 | 5.59x | 1x (baseline) | :rocket: |
| 组件 | 规格 |
|---|---|
| NPU 设备 | Ascend 910B2 (显存 64GB) |
| 测试音频 | asr_example.wav (5.5s 中文语音) |
| 运行时 | PyTorch 2.1.0 + torch_npu + FunASR |
| Python | 3.11+ |
| 操作系统 | Linux |
| 验证项 | 结果 | 备注 |
|---|---|---|
| 精度(CER < 1%) | :white_check_mark: 通过 | CER = 0.00% |
| 性能(加速比) | :white_check_mark: 优秀 | NPU 452ms vs CPU 2530ms |
| 兼容性 | :white_check_mark: 完整 | 原始权重无需修改 |
# 使用清华 PyPI 镜像安装基础依赖
pip install funasr omegaconf soundfile librosa numpy jiwer -i https://pypi.tuna.tsinghua.edu.cn/simple# 通过 ModelScope 下载模型权重
python3 -c "from modelscope.hub.snapshot_download import snapshot_download; snapshot_download('iic/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online')"# 使用默认测试音频在 NPU 上推理
python3 inference.py
# 指定 WAV 文件
python3 inference.py --wav /path/to/your/audio.wav
# CPU 推理
python3 inference.py --device cpu============================================================
Model: UniASR-zh-8k-vocab3445
Device: npu:0
Audio: asr_example.wav (5.55s)
Time: 452ms (RTF: 0.0815)
Result: 当当当当网
============================================================# NPU vs CPU 逐字精度对比
python3 accuracy_run.py============================================================
NPU result: '当当当当网'
CPU result: '当当当当网'
CER: 0.00%
Speedup: 5.59x
Status: PASS
============================================================CER 基于 Levenshtein 距离:
python3 accuracy_run_perf.py音频 (8000 Hz) -> 重采样 (16000 Hz) -> Fbank (CPU)
-> SANM Encoder (NPU) -> CIF Predictor (NPU)
-> FsmnDecoder + Beam Search (NPU) -> 中文文本UniASR-zh-8k-vocab3445-NPU/
├── inference.py # 推理脚本
├── accuracy_run.py # 精度测试脚本
├── accuracy_run_perf.py # 性能测试脚本
├── accuracy_report.json # 精度/性能测试报告
└── README.md # 本文档pip install jiwer -i https://pypi.tuna.tsinghua.edu.cn/simple#NPU #Ascend #昇腾 #ASR #语音识别 #UniASR #modelscope #funasr #model-agent-tagged #华为昇腾 #推理加速
此模型已由 AI 自动适配至华为昇腾 NPU 平台,基于 FunASR 框架推理。精度已通过 CPU 基准对比验证,CER = 0.00% (< 1%)。
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。