sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型


更多内容:XiaoJ的知识星球


目录

  • 1.构建sherpa-ncnn
  • 2.运行
    • [2.1 运行sherpa-ncnn](#2.1 运行sherpa-ncnn)
    • [2.2 运行sherpa-ncnn-alsa](#2.2 运行sherpa-ncnn-alsa)

1.构建sherpa-ncnn

x86构建:

Shell 复制代码
git clone https://github.com/k2-fsa/sherpa-ncnn
cd sherpa-ncnn
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j6

32-bit ARM构建:

Shell 复制代码
git clone https://github.com/k2-fsa/sherpa-ncnn
cd sherpa-ncnn
mkdir build
cd build
cmake \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_C_FLAGS="-march=armv7-a -mfloat-abi=hard -mfpu=neon" \
  -DCMAKE_CXX_FLAGS="-march=armv7-a -mfloat-abi=hard -mfpu=neon" \
  ..
make -j6

64-bit ARM构建:

Shell 复制代码
git clone https://github.com/k2-fsa/sherpa-ncnn
cd sherpa-ncnn
mkdir build
cd build
cmake \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_C_FLAGS="-march=armv8-a" \
  -DCMAKE_CXX_FLAGS="-march=armv8-a" \
  ..
make -j6

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

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

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

.

2.运行

请阅读 预训练模型 了解有关生成的二进制文件的用法。

2.1 运行sherpa-ncnn

单个语音文件解码测试

Shell 复制代码
./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:改进集束搜索算法

2.2 运行sherpa-ncnn-alsa

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

Shell 复制代码
./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:改进集束搜索算法

测试输出:

Shell 复制代码
[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...

.


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

相关推荐
wuk9982 分钟前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
独行soc3 小时前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试
BD_Marathon3 小时前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat
uncle_ll3 小时前
李宏毅NLP-8-语音模型
人工智能·自然语言处理·语音识别·语音模型·lm
饥饿的半导体3 小时前
Linux快速入门
linux·运维
BD_Marathon3 小时前
Ubuntu:Tomcat里面的catalina.sh
linux·ubuntu·tomcat
BD_Marathon3 小时前
设置LInux环境变量的方法和区别_Ubuntu/Centos
linux·ubuntu·centos
Me4神秘4 小时前
Linux国产与国外进度对垒
linux·服务器·安全
zhaowangji4 小时前
ubuntu 20.04 安装中文输入法 (sougou pin yin)
linux·ubuntu
两斤半4 小时前
Debian TTY环境乱码
linux·debian