g
gcw_AVRCax4T/sherpa-mnn-streaming-zipformer-bilingual-zh-en-2023-02-20
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Sherpa-ONNX 流式 Zipformer 双语(中英)语音识别 —— 昇腾 NPU 适配

模型卡片

字段值
模型sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20
任务自动语音识别(ASR)
架构流式 Zipformer Transducer(编码器 + 解码器 + 合并器)
语言中文(ZH)+ 英文(EN)
框架ONNX Runtime + torch_npu
硬件昇腾 NPU(CANN 8.5.1)
精度FP32(ONNX 模型)
采样率16000 Hz
词汇表大小6257 个 BPE 词元

标签

#NPU #Hardware/NPU #Ascend #CANN #ASR #Speech-Recognition #Zipformer #Streaming #Bilingual #Chinese #English #torch_npu #ONNX-Runtime

描述

这是 sherpa-onnx 流式 Zipformer 双语(中英文)语音识别模型 的昇腾 NPU 适配版本。

NPU 适配策略:

  • 特征提取(FFT、梅尔滤波器组):通过 torch_npu 在 昇腾 NPU 上加速
  • 模型推理(编码器/解码器/合并器):CPU 上的 ONNX Runtime
  • 异构流水线:NPU(特征提取)+ CPU(模型推理)

流式 Zipformer Transducer 以 39 帧为 chunk 处理音频,并通过缓存对 5 个编码器层进行状态管理。

快速开始

环境要求

  • 昇腾 NPU(如:昇腾 910)
  • CANN 8.5.1+
  • Python 3.11+
  • torch_npu、onnxruntime

安装

pip install torch_npu onnxruntime soundfile numpy

推理

# NPU-accelerated feature extraction (default)
python inference.py --audio input.wav

# CPU-only mode
python inference.py --audio input.wav --cpu

# Save results as JSON
python inference.py --audio input.wav --output result.json

# Benchmark mode (feature extraction only)
python inference.py

Python API

from inference import SherpaASR

asr = SherpaASR(use_npu=True)
result = asr.transcribe("audio.wav")
print(result["text"])
print(f"RTF: {result['rtf']}")

评估

运行评估套件:

python evaluate.py

评估会生成以下文件:

  • eval_results/evaluation_report.md — Markdown 报告
  • eval_results/evaluation_results.json — 完整结果 JSON 文件

结果摘要

指标数值
特征提取(NPU)3秒音频约需11毫秒
特征精度(NPU 与 CPU 对比)相对误差 < 1%
编码器延迟(CPU)3秒音频约需3.7秒
解码器延迟(CPU)3秒音频约需0.2秒
实时率(RTF)约为实时的1.3倍

模型架构

  • 编码器:带步长为2下采样的流式 Zipformer
    • 5层,含多头自注意力、卷积缓存
    • 输入:80维对数梅尔特征(块大小=39帧)
    • 输出:512维,时间分辨率为 T/2
    • 8条并行路径(平均后作为最终输出)
  • 解码器:无状态转换器解码器
    • 令牌嵌入 → Conv1D(分组=128,核=2)→ 线性投影
    • 输入:2个上下文令牌索引(INT64)
    • 输出:512维向量
  • 合并器(Joiner):线性投影 + log-softmax
    • 输入:编码器输出(512维) + 解码器输出(512维)
    • 输出:6257类别的对数概率

文件说明

文件描述
inference.py带 NPU 加速的主推理脚本
evaluate.py精度和性能评估套件
README.md本文档

环境配置

组件版本
CANN8.5.1
NPUAscend 910_9362
torch_npu2.9.0.post1
torch2.9.0+cpu
onnxruntime1.26.0
onnxruntime-cann1.24.4
sherpa-onnx1.13.2
Python3.11.14
平台Linux aarch64

许可证

本适配版本遵循原始模型的许可证。详情请参见 原始 HuggingFace 仓库。