rk3588使用npu加速运行whisper语音识别模型

rk3588运行whisper模型有三种方法:1.使用纯cpu运行原始pytorch模型;2.将whisper模型转成onnx格式,再转成rknn格式使用npu运行;3.利用npu提供的矩阵运算功能,结合cpu一起运行原始pytorch模型。方法1做不到实时,方法2有rockchip官方仓库。方法3是这篇教程介绍的,方法3比方法2更快,同时功能更完整,比如tiny和small模型都可以运行。
我们在https://github.com/usefulsensors/useful-transformers基础上,通过修复bug,增加运行参数和prompt控制输出字体格式,实现了多语言模型的实时准确推理,whisper tiny和base模型rtf<0.1, small模型rtf<0.5。

一、优化修改后的开源代码库

二、代码运行说明

通过 git clone 克隆代码后,准备好 Python 环境,然后执行 transcrible_wav.py完成语音识别。

  1. 克隆源代码:
git clone http://git.bwbot.org/publish/useful-transformers.git
  1. 准备python运行环境:
    我们在 RK3588 上使用的是 Ubuntu22.04 Desktop,默认的 Python 版本是 3.10。为了避免破坏系统环境,我们使用 virtualenv 来配置需要的 Python 运行环境。
sudo apt install python3-virtualenv

#进入上面git clone下来的文件夹根目录
cd useful-transformers

#创建虚拟环境
virtualenv --system-site-packages -p /usr/bin/python3 venv

#激活虚拟环境
source venv/bin/activate

#开始在虚拟环境中安装pybind11
pip install -i https://mirror.baidu.com/pypi/simple pybind11

#在虚拟环境中编译安装useful-transformers包,注意指令中的文件路径要改成自己的实际路径
export pybind11_DIR=/home/xiaoqiang/npu/useful-transformers/venv/lib/python3.10/site-packages/pybind11/share/cmake/pybind11
./venv/bin/pip install  ../useful-transformers  -i https://pypi.mirrors.ustc.edu.cn/simple

3.环境配置完成,开始运行whisper:

taskset -c 4-7 ./venv/bin/python -m useful_transformers.transcribe_wav ./wav/chinese.wav tiny zh

运行指令格式如下,modelname可以为tiny、base、small、tiny.en、base.en、small.en或者自己微调的模型。languge可以为en或zh,分别代表英文和中文。

taskset -c 4-7 python -m useful_transformers.transcribe_wav <wav_file> modelname languge

自己微调的模型可以用torch_state_dict_to_npz.py 文件来转换。

三、运行结果

在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值