news 2026/9/12 4:21:13

RK3566 上跑通 sherpa-onnx 流式语音识别:RKNN 部署实战复盘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RK3566 上跑通 sherpa-onnx 流式语音识别:RKNN 部署实战复盘

RK3566 上跑通 sherpa-onnx 流式语音识别:RKNN 部署实战复盘

【免费下载链接】sherpa-onnxSpeech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages项目地址: https://gitcode.com/GitHub_Trending/sh/sherpa-onnx

先给结论:RK3566 板子上,sherpa-onnx(一个构建在 ONNX Runtime 之上的开源语音工具集,支持识别、合成、说话人分离等)搭配 RKNN 2.2.0 运行时(瑞芯微 NPU 的推理后端,模型需先转成 .rknn 格式)+ 中英双语流式 zipformer 预训练模型,用下面这条命令可以稳定出结果:

sherpa-onnx \ --provider=rknn \ --encoder=encoder.rknn \ --decoder=decoder.rknn \ --joiner=joiner.rknn \ --tokens=tokens.txt \ test.wav

我们实测中踩了三个坑,换对版本和模型类型后全部消失。下面是完整复盘。

📋 RKNN 版本怎么选:一张表说清

三个候选版本的兼容性我们逐一验证过,结果如下:

项目配置结论
硬件RK3566 开发板NPU 可用,但不支持核心绑定
框架sherpa-onnx(基于 ONNX Runtime)需在板端现场编译
模型sherpa-onnx 官方中英双语流式 zipformer 预训练模型转成 encoder/decoder/joiner 三个 .rknn + tokens.txt
RKNN 2.1.0报 "Meet unsupported input dtype for gather"弃用
RKNN 2.2.0全程稳定✅ 当前唯一推荐
RKNN 2.3.2段错误(程序意外访问非法内存导致崩溃)弃用

🔧 板端部署三步走

  1. 取模型:下载 sherpa-onnx 提供的流式 zipformer 中英双语预训练模型,转成 RKNN 格式,得到encoder.rknndecoder.rknnjoiner.rknn三个文件和tokens.txt词表。仓库的转换脚本可参考 scripts/paraformer/rknn/ 下的流程。
  2. 板端编译:不要直接用 PC 交叉产物,建议在板子上按目标架构直接编译 sherpa-onnx,避免动态库与板子环境不匹配——这一步常被忽略,却是最容易出诡异错误的环节。
  3. 运行验证:把一段测试音频拷进板子,执行开头那条命令。能持续打印识别文本即部署成功。

⚠️ 故障排查对照表

现象原因处置
段错误,GDB 断点在 RKNN 运行时内部函数2.3.2 运行时与模型不兼容降级到 2.2.0
"Meet unsupported input dtype for gather"2.1.0 对 Gather 算子(按索引取值的基础操作)的输入类型支持不全升级到 2.2.0
换用离线模型二进制(如 sherpa-onnx-vad-alsa-offline-asr)后加载失败RKNN 目前只吃流式模型;离线模型依赖完整 ONNX 文件,.rknn 格式覆盖不了只选流式识别入口跑 RKNN

第三行单独提醒一句:选模型前先确认它是流式还是离线,这两者的工具链不能混用,否则会白白浪费排查时间。

🚀 调优与外推

  • 线程数num_threads按板子实际 CPU 核数设置,多给不会更快,反而加重调度开销。
  • chunk 大小:流式识别按块送音频,调大 chunk 准确率略升但延迟变高,反之亦然,按业务场景取平衡点。
  • 核心绑定:RK3566 不支持 NPU 核心绑定,先别折腾;如果之后迁移到 RK3588 这类高阶平台,这项优化值得做。

最后说两句

sherpa-onnx 在 RK3566 上用 RKNN 跑流式语音识别这条路是通的,前提就两条:版本锁 2.2.0、模型只用流式。RKNN 运行时后续版本大概率会补齐算子支持并解锁更多模型,值得定期看一眼更新说明,说不定下一次升级就能换成新版。

【免费下载链接】sherpa-onnxSpeech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages项目地址: https://gitcode.com/GitHub_Trending/sh/sherpa-onnx

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 4:20:40

RetroArch 界面中文切换教程:3 步把满屏英文改成中文菜单

RetroArch 界面中文切换教程:3 步把满屏英文改成中文菜单 【免费下载链接】RetroArch Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3. 项目地址: https://gitcode.com/GitHub_Trending/re/RetroArch 刚装好 RetroArch 点开一…

作者头像 李华
网站建设 2026/9/12 4:20:17

机械思维驱动React应用开发:跨界设计实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 4:18:32

MQ幂等性实战:重复消息产生的原理与四大去重方案

凌晨一点被电话叫醒,线上报了一个"用户收到两条扣款通知"的问题。拉完流水之后定位到原因:订单表里同一个支付回调事件被消费端处理了两遍,第一遍正常入账,第二遍又把金额累加了一次。这不是网络抖动,也不是…

作者头像 李华