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...

.


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

相关推荐
嵌入式学习和实践1 天前
虚拟机 Ubuntu 磁盘扩容完全指南:从原理到实践,一步到位
linux·ubuntu·磁盘扩容
陳10301 天前
Linux:进程间切换与调度
linux·运维·服务器
lcreek1 天前
Linux 虚拟文件系统的建立与使用全过程解析
linux·虚拟文件系统·vfs
寒秋花开曾相惜1 天前
(学习笔记)第四章 处理器体系结构
linux·网络·数据结构·笔记·学习
疏星浅月1 天前
虚拟内存三大核心作用详解
linux·c语言·arm开发·嵌入式硬件
邂逅星河浪漫1 天前
【银行内网开发-管理端】Vue管理端+Auth后台开发+Nginx配置+Linux部署(详细解析)
linux·javascript·css·vue.js·nginx·html·前后端联调
码农小钻风1 天前
利用Samba实现局域网跨平台共享文件
linux·samba·共享
LN花开富贵1 天前
【ROS】鱼香ROS2学习笔记二
linux·笔记·python·学习·嵌入式
GS8FG1 天前
Busybox生成根文件系统,并移植e2fsprogs:RK3568
linux·驱动开发
Cyber4K1 天前
【Nginx专项】基础入门篇:状态页、微更新、内容替换、读取、压缩及防盗链
linux·运维·服务器·nginx·github