panhg/SenseVoiceSmall_Hakka
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

SenseVoiceSmall_Hakka - 昇腾 NPU 适配版

基于阿里巴巴 FunASR SenseVoiceSmall 模型微调的客家话方言语音识别 (ASR) 模型,已完成昇腾 Ascend 910 NPU 适配。

模型简介

本模型基于 iic/SenseVoiceSmall 进行微调,使用 2231 条客家话数据集(梅州客家话、惠州客家话、粤西客家话)训练,能够将客家话语音识别为简体中文文本。

环境要求

组件版本
CANN8.5.1
PyTorch2.9.0
torch_npu2.9.0
FunASR1.3.1
Python3.11+
soundfile0.13+

快速开始

安装依赖

pip install funasr torch_npu soundfile numpy

模型下载

pip install modelscope
modelscope download --model lukeewin01/SenseVoiceSmall_Hakka

推理示例

import numpy as np
import soundfile as sf
from funasr import AutoModel

# 加载模型到 NPU
model = AutoModel(
    model="lukeewin01/SenseVoiceSmall_Hakka",
    disable_update=True,
    device="npu:0",
    ncpu=4,
)

# 加载音频
audio, sr = sf.read("test.wav", dtype="int16")
audio = audio.astype(np.float32) / 32768.0

# 推理
result = model.generate(
    input=audio,
    batch_size_s=0,
    beam_size=5,
    use_itn=True,
    language="zh",
)
print(result[0]["text"])

命令行推理

python inference.py --input test.wav --device npu:0 --language zh
python inference.py --input /path/to/audio_dir/ --device npu:0

昇腾 NPU 适配说明

适配方案

本模型通过以下方式完成昇腾 NPU 适配:

  1. 设备映射:将模型通过 FunASR 的 device 参数直接加载到 npu:0,依赖 torch_npu 提供的 NPU 设备后端
  2. 音频加载优化:使用 soundfile 替代 torchaudio/ffmpeg 进行音频文件加载,规避依赖缺失问题
  3. FP32 推理:模型以 FP32 精度在 NPU 上运行,保证精度无损

关键技术点

  • PyTorch 模型通过 torch_npu 自动将算子调度到 Ascend NPU
  • FunASR 框架原生支持 device 参数,可直接指定 npu:0/npu:1
  • 音频预处理(fbank 特征提取)在 CPU 上完成,编码器前向推理在 NPU 上执行

性能评测

测试环境

  • NPU: Ascend 910 × 2, HBM 64GB, CANN 8.5.1
  • CPU: ARM AArch64
  • 模型大小: 892.9 MB (encoder: 50 blocks, 512 hidden dim, 4 attention heads)

性能对比

指标CPUNPU (Ascend 910)
平均推理时间1.0895s0.1164s
RTF (实时率)0.19420.0207
加速比1.00x9.36x

精度验证

验证项结果
CPU vs NPU 输出一致性100% (完全一致)
字符错误率 (CER)0.00%
精度阈值< 1%
验证结论PASS

多文件测试结果 (NPU)

文件时长NPU 时间RTF识别结果
0.wav5.6s0.157s0.028对我做了介绍那么我想说的是呢大家如果对我的研究感兴趣呢。
1.wav5.2s0.140s0.027重点想谈三个问题。首先呢就是这一轮全球金融动荡的表现。
2.wav4.5s0.146s0.032深入的分析这一次全球金融动荡背后的根源。
3.wav3.1s0.135s0.044一个人这个这个人是A。
4.wav6.3s0.125s0.020写路的老师们必须要在这个班级前面坐着是。
5.wav1.8s0.121s0.066价格太高了。

文件结构

SenseVoiceSmall_Hakka_NPU/
├── inference.py          # NPU 推理脚本
├── eval_benchmark.py     # 精度/性能评测脚本
├── eval_results.json     # 评测结果 (JSON)
├── benchmark_log.txt     # 运行日志
├── README.md             # 本文件
└── model/                # 模型文件 (可选软链接)

许可证

本项目基于 Apache 2.0 许可证发布。原始 SenseVoiceSmall 模型版权归阿里巴巴所有。

引用

@misc{SenseVoiceSmall_Hakka_NPU,
  author = {Ascend Model Adaptation},
  title = {SenseVoiceSmall_Hakka - Hakka Dialect ASR on Ascend NPU},
  year = {2026},
  publisher = {ModelScope},
  url = {https://modelscope.cn/models/lukeewin01/SenseVoiceSmall_Hakka},
}

联系

  • 原始模型作者: lukeewin01
  • 昇腾适配: Ascend SACT