【具身智能】本地实时语音识别kaldi在正点原子RK3588上部署
纸上得来终觉浅,终知此事要躬行
费曼学习法:确定目标,以教代学,不断反馈和总结
1. 安装
官网上描述有3种安装方法:从预构建wheels下载安装、直接在目标板安装和通过交叉编译工具编译安装。
预构建wheels安装
首先登陆rk3588终端查看安装的python版
root@ATK-DLRK3588:/# python --version
Python 3.10.5
下载对应python版本的whl文件,由于我的arm 64位开发板对应的python版本为3.10,所以下载sherpa_onnx-1.11.2-cp310-cp310-linux_aarch64.whl安装包。如果使用网页下载速度太慢,建议在链接上右击使用迅雷下载。
下载连接: https://k2-fsa.github.io/sherpa/onnx/rk-npu-cn.html
登录开发板,新建文件夹/userdata/caldi
cd /userdata
mkdir caldi
在adb所在文件夹,按住shift键右击,打开powershell窗口,输入如下命令复制文件到开发板的caldi目录。如果adb命令执行失败,将adb所在目录添加到环境变量的path变量里。
adb push sherpa_onnx-1.11.2-cp310-cp310-linux_aarch64.whl /userdata/caldi
进入到/userdata/caldi目录,进行安装
pip install sherpa_onnx-1.11.2-cp310-cp310-linux_aarch64.whl
警告先不用管
检查sherpa-onnx是否安装成功
2. 识别文件
在Ubuntu上下载识别文件
由于需要VPN,经常下载到一半失败,建议通过迅雷下载
解压压缩包
复制到开发板上
登录开发板,进入目录/userdata/caldi,使用如下命令进行语音文件转文本测试
sherpa-onnx \
--provider=rknn \
--encoder=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/encoder.rknn \
--decoder=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/decoder.rknn \
--joiner=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/joiner.rknn \
--tokens=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/tokens.txt \
./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/test_wavs/4.wav
显示如下代表成功
如果出现RKNN报错,需要重新安装librknnrt.so,经测试2.2.0版本是可以用的。
librknnrt.so 下载地址https://github.com/airockchip/rknn-toolkit2/blob/master/rknpu2/runtime/Linux/librknn_api/aarch64/librknnrt.so
下载整个仓库会耗费大量时间,可以用GitHub directory downloader下载单独文件。
3. 实时语音识别
首先获取麦克风设备的名称,使用命令 arecord -l
使用card 0,device 0,USB 摄像头上的麦克风
sherpa-onnx-alsa \
--provider=rknn \
--encoder=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/encoder.rknn \
--decoder=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/decoder.rknn \
--joiner=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/joiner.rknn \
--tokens=./sherpa-onnx-rk3588-streaming-zipformer-small-bilingual-zh-en-2023-02-16/tokens.txt \
plughw:0,0
输出如下,代表成功
参考链接:
实时语音识别Kaldi官网
111. 新一代Kaldi + RK NPU: 本地实时语音识别之rk3588_哔哩哔哩_bilibili