📌 概述

SenseVoice 是一款专注于高精度多语言语音识别的模型,其独特之处在于:

  • 🌍 广泛的语言覆盖:支持超过 50 种语言 的识别
  • 😊 强大的情感辨识能力:能够识别语音中的情感信息
  • 高效的推理性能:在复杂场景下表现卓越

该模型基于超过 40 万小时 的多样化语音数据训练而成,与市场上其他主流模型相比,在识别精度上实现了显著提升。


📦 版本说明

项目

GitHub 地址

https://github.com/FunAudioLLM/SenseVoice

Commit ID

de00f2b

模型名称

SenseVoice


🔧 推理环境准备

版本配套表

配套组件

版本

环境准备指导

固件与驱动

24.0.RC3

Pytorch框架推理环境准备

CANN

8.0.RC3

-

Python

3.8.20

-

PyTorch

2.1.0

-

Ascend Extension PyTorch

2.1.0.post8

-

注意:Atlas 800I A2 / Atlas 300I Pro 推理卡请以 CANN 版本选择实际固件与驱动版本。


🚀 快速上手

1. 获取源码

获取 ModelZoo 源码
git clone https://gitcode.com/ascend/ModelZoo-PyTorch.git
cd ModelZoo-PyTorch/ACL_PyTorch/built-in/audio/SenseVoice
获取 PyTorch 源码
git clone https://github.com/FunAudioLLM/SenseVoice
cd SenseVoice
git reset --hard de00f2b
mv ../requirements.txt ./
mv ../export_onnx.py ./
mv ../modify_onnx.py ./

2. 安装依赖

  1. pip3 install -r requirements.txt
    

3. 安装 msit 工具

参考 msit 安装工具中的 benchmarksurgen 组件。

4. 获取权重数据

ModelScope 获取所有权重文件,放在新建目录 SenseVoiceSmall 内。


🔄 模型推理

第一步:模型转换

1.1 导出 ONNX 模型
python3 export_onnx.py

脚本运行后会在权重目录下生成 model.onnx 文件。

1.2 修改 ONNX 模型
python3 modify_onnx.py --input_path=./SenseVoiceSmall/model.onnx --save_path=./SenseVoiceSmall/model_md.onnx

此步骤用于删除多余的 domain,生成新的 model_md.onnx 模型。

1.3 使用 ATC 工具将 ONNX 模型转为 OM 模型

配置环境变量:

source /usr/local/Ascend/ascend-toolkit/set_env.sh

执行 ATC 命令:

首先利用 npu-smi info 命令获取芯片型号,填入 soc_version 参数中。

atc --framework=5 --soc_version=Ascend${soc_version} --model ./SenseVoiceSmall/model_md.onnx --output SenseVoice --input_shape="speech:1,-1,560;speech_lengths:1;language:1;textnorm:1"

在当前目录下生成动态模型 SenseVoice_{arch}.om


第二步:开始推理验证

2.1 移动推理脚本
mv ../infer_onnx.py ./
2.2 执行推理命令
python3 infer_onnx.py --model_path=SenseVoiceSmall --om_path=SenseVoice_{arch}.om --device=0 --input="./SenseVoiceSmall/example/zh.mp3" --perform=True --loop=20
参数说明

参数

说明

model_path

模型权重路径

om_path

OM 模型路径

device

NPU 芯片 ID,默认使用 0 卡

input

输入 MP3 格式语音文件(以权重文件内的样例为例)

perform

是否执行性能测试

loop

性能测试循环次数

推理执行完成后,会打印语音文本的输出和单次推理的耗时。


💡 小贴士

  1. 芯片型号确认:使用 npu-smi info 确认当前设备的芯片型号,确保 soc_version 参数正确。
  2. 性能优化:如需进一步提升推理速度,可考虑使用批量推理或调整输入形状。
  3. 多语言支持:SenseVoice 支持 50+ 语言,可通过调整 language 参数切换识别语言。

📚 参考资料

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐