sherpa-ncnn:Linux_x86交叉编译Linux_aarch64上的sherpa-ncnn -- 语音转文本大模型


更多内容:XiaoJ的知识星球



本文介绍,在 Ubuntu x86 计算机上通过交叉编译为嵌入式 Linux(aarch64, 64 位)构建 sherpa-ncnn。

如果直接在arm板上构建 sherpa-ncnn,请参考 Linux上构建sherpa-ncnn

.

1.安装工具链

第一步:安装交叉编译的工具链。

wget https://huggingface.co/csukuangfj/sherpa-ncnn-toolchains/resolve/main/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

# For users from China
# wget https://hf-mirror.com/csukuangfj/sherpa-ncnn-toolchains/resolve/main/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

第二步:设置环境变量。

# 设置环境变量
export PATH=$YOU_DIR/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH

# 检查工具是否生效
aarch64-linux-gnu-gcc --version

.

2.模型下载

使用的模型是小模型,下载地址:Small models

对应的文档:https://k2-fsa.github.io/sherpa/ncnn/pretrained_models/zipformer-transucer-models.html#sherpa-ncnn-streaming-zipformer-small-bilingual-zh-en-2023-02-16

GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-small-bilingual-zh-en-2023-02-16
 
cd sherpa-ncnn-streaming-zipformer-small-bilingual-zh-en-2023-02-16
 
git lfs pull --include "*.bin"

将文件夹里面的.bin,.param,.txt文件拷贝到开发板上去。

.

3.构建运行sherpa-ncnn

git clone https://github.com/k2-fsa/sherpa-ncnn
cd sherpa-ncnn

./build-aarch64-linux-gnu.sh

构建后,您将获得两个二进制文件:

  • sherpa-ncnn:用于解码单个wav文件;

  • sherpa-ncnn-alsa:用于通过读取带有 ALSA 的麦克风进行实时语音识别;

将这两个可执行文件拷贝到开发板上去。

3.1 运行sherpa-ncnn

单个语音文件解码测试

./sherpa-ncnn \
./tokens.txt \
./encoder_jit_trace-pnnx.ncnn.param \
./encoder_jit_trace-pnnx.ncnn.bin \
./decoder_jit_trace-pnnx.ncnn.param \
./decoder_jit_trace-pnnx.ncnn.bin \
./joiner_jit_trace-pnnx.ncnn.param \
./joiner_jit_trace-pnnx.ncnn.bin \
./1.wav \
3 \
greedy_search

# 3:是指3个线程
# greedy_search:贪心搜索算法
# modified_beam_search:改进集束搜索算法

3.2 运行sherpa-ncnn-alsa

开发板上使用alsa架构从MIC说话测试。

./sherpa-ncnn-alsa \
./tokens.txt \
./encoder_jit_trace-pnnx.ncnn.param \
./encoder_jit_trace-pnnx.ncnn.bin \
./decoder_jit_trace-pnnx.ncnn.param \
./decoder_jit_trace-pnnx.ncnn.bin \
./joiner_jit_trace-pnnx.ncnn.param \
./joiner_jit_trace-pnnx.ncnn.bin \
"default" \
4 \
greedy_search

# "default" : 指定音频设备
#    使用命令查看:arecord -l
#    "plughw:<card,device>": 如"plughw:3,0"
# 3:是指3个线程
# greedy_search:贪心搜索算法
# modified_beam_search:改进集束搜索算法

测试输出:

[root@...:sherpa]# ./sherpa-ncnn-alsa ./tokens.txt ./encoder_
jit_trace-pnnx.ncnn.param ./encoder_jit_trace-pnnx.ncnn.bin ./decoder_jit_trace-
pnnx.ncnn.param ./decoder_jit_trace-pnnx.ncnn.bin ./joiner_jit_trace-pnnx.ncnn.p
aram ./joiner_jit_trace-pnnx.ncnn.bin "default" 4 greedy_search
...
Disable fp16 for Zipformer encoder
Don't Use GPU. has_gpu: 0, config.use_vulkan_compute: 1
Failed to set number of channels to 1. Invalid argument
Channel count is set to 2. Will use only 1 channel of it.
Current sample rate: 16000
Recording started!
Use recording device: default
0:这是一段测试^C
Caught Ctrl + C. Exiting...

.


声明:资源可能存在第三方来源,若有侵权请联系删除!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值