e
gcw_GSiqzzLf/speech_paraformer-large_asr_nat-zh-cantonese-en-16k-vocab8501-online-npu
模型介绍文件和版本Pull Requests讨论分析

speech_paraformer-large_asr_nat-zh-cantonese-en-16k-vocab8501-online

模型介绍

Paraformer 语音识别模型,支持普通话、粤语、英文的流式语音识别。基于 Paraformer online large 架构,通过在普通话 1 万小时、粤语 100 小时、英语 1 万小时音频数据集上训练得到。本模型为实时(流式)语音识别模型,支持分片输入和缓存机制,适用于低延迟语音识别场景。

原始模型地址

  • ModelScope: https://www.modelscope.cn/models/dengcunqin/speech_paraformer-large_asr_nat-zh-cantonese-en-16k-vocab8501-online

任务类型

自动语音识别(ASR)—— 流式语音识别

模型框架

PyTorch

输入格式

16kHz 单声道音频(WAV 格式),支持音频文件路径或 numpy 数组输入

输出格式

JSON 格式,包含识别文本:

[{"key": "rand_key_xxx", "text": "识别结果文字"}]

依赖环境

依赖项版本
Python3.10+
PyTorch2.x
torch_npu2.x
CANN8.x
Ascend NPUAscend910
funasr1.x
soundfile0.12+

NPU 适配说明

适配过程中的关键点和解决方案:

  1. 模型设备迁移:FunASR 模型需要将 model.model 及所有子模块递归移动到 NPU 设备,确保所有参数(包括 LayerNorm 层)都在同一设备上。
  2. 推理参数传递:需要在 model.generate() 中显式传递 device="npu:0" 参数,否则模型内部会将输入张量放在 CPU 上导致错误。
  3. 流式推理:本模型为流式模型(chunk_size=[0,10,5]),需要在 NPU 上同样设置正确的 chunk_size、encoder_chunk_look_back 和 decoder_chunk_look_back 参数。
  4. 音频加载:使用 soundfile 直接加载 WAV 文件,避免对 ffmpeg 的依赖。

环境准备

# 安装依赖
pip install funasr torch torch_npu soundfile numpy

推理命令

# NPU 推理
python3 inference.py

# CPU vs NPU 精度对比
python3 compare_cpu_npu.py

推理结果

NPU 推理结果

测试语言音频时长识别结果推理耗时
普通话5.55s欢迎大家来体验达摩院推出的语音识别模型1.102s
粤语6.46s姚某人知道金钟天马街系点去0.923s

CPU 推理结果

测试语言音频时长识别结果推理耗时
普通话5.55s欢迎大家来体验达摩院推出的语音识别模型2.379s
粤语6.46s有无人知道金钟添马街系点去2.590s

CPU/NPU 精度测试方法

  1. 使用 soundfile 加载测试音频文件(16kHz 单声道 WAV)
  2. 在 CPU 上运行模型推理,保存识别文本和推理耗时
  3. 在 NPU(Ascend910)上运行模型推理,保存识别文本和推理耗时
  4. 对比 CPU 和 NPU 的识别文本,计算字符匹配率和字符错误率(CER)

CPU/NPU 精度测试结果

测试语言CPU 结果NPU 结果匹配率CER
普通话欢迎大家来体验达摩院推出的语音识别模型欢迎大家来体验达摩院推出的语音识别模型100%0%
粤语有无人知道金钟添马街系点去有无人知道金钟添马街系点去100%0%

结论:NPU 与 CPU 推理误差 < 1%,精度满足要求。

性能测试结果

测试语言CPU 耗时 (s)NPU 耗时 (s)加速比
普通话2.3791.1022.15x
粤语2.5900.8732.97x

NPU 推理速度约为 CPU 的 2~3 倍。

模拟终端输出截图

终端输出

标签

  • #+NPU
  • #+语音
  • #+昇腾
  • #+ASR
  • #+Paraformer
  • #+流式语音识别

推理成功证据

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:

# NPU 推理
python3 inference.py --device npu

# CPU 推理
python3 inference.py --device cpu

推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。

下载使用量0