当前位置: 首页 > java >正文

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


更多内容:XiaoJ的知识星球


目录

  • 1.构建sherpa-ncnn
  • 2.运行
    • 2.1 运行sherpa-ncnn
    • 2.2 运行sherpa-ncnn-alsa


1.构建sherpa-ncnn

x86构建:

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构建:

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构建:

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

单个语音文件解码测试

./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说话测试。

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

.


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

http://www.xdnf.cn/news/2006.html

相关文章:

  • BIOS主板(非UEFI)安装fedora42的方法
  • ClickHouse 中`MergeTree` 和 `ReplicatedMergeTree`表引擎区别
  • 谈谈接口和抽象类有什么区别?
  • 从“干瞪眼“到精准唤醒:Java线程通信的打怪升级之路
  • Unity3D Lua集成技术指南
  • kubesphere 单节点启动 etcd 报错
  • 3、LangChain基础:LangChain Chat Model
  • 从FP32到BF16,再到混合精度的全景解析
  • 高等数学第二章---导数与微分(2.1~2.3)
  • 多模态大语言模型arxiv论文略读(四十)
  • 语音合成之五语音合成中的“一对多”问题主流模型解决方案分析
  • Synopsys 逻辑综合的整体架构概览
  • vscode 打开csv乱码
  • 4.5/Q1,GBD数据库最新文章解读
  • Dubbo负载均衡策略深度解析
  • 洛谷 B3647:【模板】Floyd 算法
  • 筑牢数字防线:商城系统安全的多维守护策略
  • 《解锁LLMs from scratch:开启大语言模型的探索之旅》
  • Electron Forge【实战】阿里百炼大模型 —— AI 聊天
  • BGP网络协议
  • 数据可视化平台产品介绍及功能特色
  • .NET 10 中的新增功能
  • 力扣347:前K个高频元素
  • 文章记单词 | 第43篇(六级)
  • Kafka和flume整合
  • cJSON中#define cJSON_IsReference 256 和 #define cJSON_StringIsConst 512这定义的大小是?
  • CSS常见布局
  • 逐行解析性能奥秘:借助 `line_profiler` 深入优化热点函数
  • MySQL 从入门到精通:第二篇 - 数据类型、约束与索引
  • 【华为HCIP | 华为数通工程师】821—多选解析—第十六页