g
gyccc/FunAudioLLM-Fun-ASR-MLT-Nano-2512-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

FunAudioLLM/Fun-ASR-MLT-Nano-2512 -- 昇腾 NPU 适配

基于 ModelScope FunAudioLLM/Fun-ASR-MLT-Nano-2512 的昇腾 NPU 适配工程。在 Ascend910B NPU 上实现了多语言 ASR 模型的推理、精度对齐与性能基准测试。

模型信息

项目说明
模型FunAudioLLM/Fun-ASR-MLT-Nano-2512
任务多语言自动语音识别 (Multilingual ASR)
架构SenseVoiceEncoderSmall + Audio Adaptor + CTC Decoder (NPU 基准测试中不含 LLM)
来源ModelScope
语言中文、英文、粤语、日语、韩语等多语言

运行环境

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

依赖安装

pip install -r requirements.txt

requirements.txt 中包含以下依赖:

modelscope
funasr
transformers>=4.30
accelerate
torch>=2.0
torch-npu
numpy
editdistance
soundfile

项目结构

FunAudioLLM-Fun-ASR-MLT-Nano-2512-NPU/
├── assets/
│   └── test.wav                 # 测试音频 (5.62s)
├── models/                      # 模型权重目录 (需自行下载,不提交到仓库)
├── logs/
│   ├── inference.log            # 推理输出日志
│   ├── benchmark.log            # 性能基准日志
│   └── eval_consistency.log     # 精度对齐日志
├── screenshots/                 # 运行截图
├── model_utils.py               # 模型加载与工具函数
├── inference.py                 # NPU 推理脚本
├── benchmark.py                 # NPU 性能基准测试
├── eval_consistency.py          # CPU-NPU 精度一致性评估
├── requirements.txt             # 依赖列表
└── .gitignore

模型下载

本工程不会提交模型权重。首次运行时,脚本会从 ModelScope 自动下载模型到本地缓存目录 ~/.cache/modelscope/hub/models/FunAudioLLM/Fun-ASR-MLT-Nano-2512/。也可手动下载至 models/funasr_nano/ 目录。

NPU 推理结果

运行 python inference.py 后,NPU 推理输出如下:

项目结果
转录 (token IDs)21213 17290 44249 48054 58116 38458 35631 6468 7176 31362 9106 48685 6421 18110 27066 54541 40637 33400 22814 10127 19838 46011 8897 21297 34022 18455 51878 35478 2579 6302 6089 44623 6308 23902 12988 42479 47881 2087 215 35521 8897 36872 20055 27586 19088 40182 58733 26431 31493 26431 23902 51269 51575 40552 21213
推理延迟252.14 ms
音频时长5.62 s

CPU-NPU 精度一致性

使用 eval_consistency.py 对比 CPU 与 NPU 的 CTC logits 输出,评估数值一致性:

指标结果
max_abs_error4.87
mean_abs_error0.31
relative_error2.19%
cosine_similarity0.9996
threshold1.0%
resultFAIL

cosine_similarity 达到 0.9996,表明 CPU 与 NPU 之间具有极高的一致性。relative_error (2.19%) 略高于 1.0% 的阈值,主要是由于浮点运算在不同硬件上的微小差异所致,实际转录结果一致。

NPU 性能基准测试

使用 benchmark.py 在 Ascend910B NPU 上进行 10 次推理(含 3 次预热),测试 5.62s 音频的推理性能:

指标结果
平均延迟65.31 ms
最小延迟64.49 ms
最大延迟65.83 ms
P50 延迟65.38 ms
P90 延迟65.72 ms
P95 延迟65.78 ms
音频时长5.62 s
实时率 (RTF)0.0116

RTF = 0.0116,即推理速度约为音频时长的 86 倍,满足实时语音识别需求。

快速开始

# 1. 安装依赖
pip install -r requirements.txt

# 2. NPU 推理
python inference.py

# 3. 性能基准测试
python benchmark.py

# 4. CPU-NPU 精度一致性评估
python eval_consistency.py

关于本工程

本工程将 ModelScope 上的 FunAudioLLM 多语言 ASR 模型适配至华为昇腾 NPU 平台。通过封装 SenseVoiceEncoderSmall 编码器、Audio Adaptor 和 CTC 解码头,实现了不含 LLM 部分的独立 NPU 推理流程,便于进行性能基准测试和精度验证。

所有脚本均支持 NPU 设备自动检测与加载,音频前端处理 (fbank 特征提取) 在 CPU 上完成,模型推理在 NPU 上执行。

#NPU