weixin_72661020/speech-conformer-aishell1
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

speech-conformer-aishell1

1. 简介

本文档记录 iic/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch 在昇腾 NPU(Ascend910)环境的快速部署与验证结果。

Conformer (funasr) 语音识别模型(Conformer 编码器 + CTC/Attention 解码器),基于 funasr 框架,支持中文语音识别。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/iic/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch

参考文档:

  • https://github.com/alibaba-damo-academy/FunASR
  • https://modelscope.cn/models/iic/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch

2. 验证环境

组件版本
torch2.5.1
torch_npu2.5.1
funasr1.3.1
librosa>=0.10.0
CANN8.5.RC1
  • NPU:Ascend910(单卡)
  • 采样率:16kHz
  • 输入格式:WAV / ndarray
  • 推理框架:funasr AutoModel

3. 快速部署

3.1 环境准备

pip install funasr librosa soundfile

3.2 推理代码

import librosa
from funasr import AutoModel

model = AutoModel(model="iic/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch", device="npu:0")
print("funasr 模型已加载到 NPU")

# 加载音频并识别
waveform, sr = librosa.load("/path/to/audio.wav", sr=16000, mono=True)
result = model.generate(input=waveform)
print(f"识别结果: {result[0].get('text', '')}")

4. Smoke 验证

python3 inference.py

验证结果:

  • funasr 模型成功加载到 NPU
  • 输出识别文本
  • 推理过程无报错

5. 性能参考

测试条件:FP32 / 测试音频 2.43s / warmup=1 / timed=3 runs,Ascend910 单卡。

指标数值
平均推理时间5.69s
实时因子(RTF)2.34
测试音频时长2.43s

该 Conformer 模型较小(encoder 256-dim,12 blocks),NPU kernel launch 开销相对显著。 可通过亲和算子替换(参考 ascend-affinity-operator 技能)提升性能。

6. 精度评测

NPU 与 CPU 输出对比,使用同一条中文音频分别在 CPU 和 NPU 上推理,比较识别文本和编码器 logits 一致性。

指标数值
CPU 识别文本每一天都要快乐喔
NPU 识别文本每一天都要快乐喔
文本一致性完全一致
编码器 logits 最大相对误差0.05 %
结论PASS

精度要求:NPU 与 CPU 识别文本完全一致,编码器输出 logits 相对误差 < 1%。

7. 注意事项

  • funasr 的 model.generate() 支持传入文件路径、numpy ndarray 或 torch Tensor
  • 该模型使用 librosa 加载音频(无需 ffmpeg),也可传入文件路径让 funasr 自动处理
  • ASR 模型的 beam search 解码结果在 NPU vs CPU 间完全一致,保证部署效果等价
  • 小模型在 NPU 上因 kernel launch 开销可能比 CPU 慢,可通过算子融合优化改善