本仓库是 iic/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-online 在华为昇腾 Ascend910 NPU 上的适配版本。
UniASR 是达摩院推出的多语言统一语音识别模型,采用双通道(2-pass)解码架构,兼顾实时性与精度。本模型专为 西班牙语(Spanish) 语音识别设计。
| 特性 | 说明 |
|---|---|
| 架构 | UniASR 2-pass (CTC + Attention) |
| 语言 | 西班牙语(Spanish) |
| 采样率 | 16kHz |
| 原始框架 | TensorFlow1 (自动转换为PyTorch) |
| 词汇表 | 3445 tokens |
| 组件 | 版本要求 |
|---|---|
| Python | 3.8+ |
| torch | >=2.0.0 |
| torch_npu | 匹配 torch 版本 |
| funasr | >=1.3.0 |
| Ascend NPU | 910 / 910B |
本模型基于 funasr AutoModel 进行适配,无需修改模型源代码。适配要点:
device="npu:0" 参数将模型加载到 NPUpip install funasr torch torch_npu soundfile numpy librosa将 16kHz 单声道 WAV 音频文件放在当前目录,命名为 asr_example.wav。
python inference.py --device npu:0python inference.py --device cpupython compare_cpu_npu.py使用测试音频(3.00s,16kHz,西班牙语(Spanish))在 Ascend910 NPU vs x86 CPU 上进行测试。
| 平台 | 识别结果 |
|---|---|
| NPU (Ascend910) | em |
| CPU | em |
NPU 与 CPU 推理结果完全一致(100% 匹配)
| 指标 | NPU (Ascend910) | CPU (x86) |
|---|---|---|
| 推理时间 | 1.245s | 1.163s |
| RTF | 0.4150 | 0.3877 |
| 音频时长 | 3.00s | 3.00s |
| 指标 | 值 |
|---|---|
| CPU 输出 | "em" |
| NPU 输出 | "em" |
| 完全一致 | 是 |
| 误差率 | 0.0000% |
| 结论 | NPU 与 CPU 推理结果误差 < 1% |
| 适配项 | 状态 |
|---|---|
| 模型加载 (NPU) | 成功 |
| 前向传播 | 正常 |
| 解码输出 | 正常 |
| 精度对齐 | 100% |
├── inference.py # NPU/CPU 推理脚本
├── compare_cpu_npu.py # CPU vs NPU 精度对比脚本
├── requirements.txt # 依赖列表
└── README.md # 本文档本仓库仅包含适配脚本和文档,模型权重版权归 ModelScope / 达摩院所有。

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