ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

sherpa-onnx RK3566 流式语音识别实战:3 大 RKNN 版本兼容性坑与完整部署指南

sherpa-onnx RK3566 流式语音识别实战:3 大 RKNN 版本兼容性坑与完整部署指南 sherpa-onnx RK3566 流式语音识别实战3 大 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-onnxsherpa-onnx 是一个基于 ONNX Runtime 的本地语音识别框架。本文记录 zipformer 流式模型在 RK3566 开发板上经 RKNN 提供方跑通的部署路径并整理 RKNN 运行时 2.1.0 / 2.2.0 / 2.3.2 三个版本的兼容性坑位。 结论先行可直接跑通的最小配置我们实测三个 RKNN 版本后RK3566 流式语音识别能稳定运行的条件只有四条运行时版本RKNN 2.2.0。2.1.0 与 2.3.2 均存在兼容问题具体现象见后文对照表。模型形态RKNN 目前仅支持流式识别模型离线模型offline ASR无法走 RKNN 加载离线二进制会直接加载失败。识别模型sherpa-onnx 官方预训练的 zipformer 双语中英流式模型转成 rknn 格式后为encoder.rknn/decoder.rknn/joiner.rknn三件套外加tokens.txt词表。运行命令以--providerrknn显式指定提供方并用三个参数分别指向 encoder / decoder / joiner完整命令见下文。部署全流程环境搭建、板端编译与一键运行1. RKNN 2.2.0 环境搭建先在开发板安装 RKNN 运行时只装 2.2.0跳过 2.1.0 和 2.3.2。这一步是整个 RKNN 部署中最容易翻车的环节版本选错后文所有报错都会复现。2. 板端编译 sherpa-onnxsherpa-onnx 需要在板子上直接编译以适配 RK3566 的目标架构交叉编译的通用产物并不保证可用。拉取源码后按常规 CMake 流程构建git clone https://gitcode.com/GitHub_Trending/sh/sherpa-onnx cd sherpa-onnx mkdir build cd build cmake .. make -j编译相关的基础设施可参考仓库内的 cmake/onnxruntime.cmake 与根目录 CMakeLists.txt框架更新日志见 CHANGELOG.md。3. 准备模型与词表将 zipformer 双语流式模型的 encoder、decoder、joiner 分别转换为.rknn文件并准备配套的tokens.txt。三者与词表放在同一目录后续按文件名引用。4. 流式 ASR 一键运行命令把模型换成 RKNN 格式、提供方换成rknn其余与桌面端用法一致sherpa-onnx \ --providerrknn \ --encoderencoder.rknn \ --decoderdecoder.rknn \ --joinerjoiner.rknn \ --tokenstokens.txt \ test.wav如果需要在代码层集成而非命令行可对照 c-api-examples/streaming-zipformer-c-api.c 与 cxx-api-examples/streaming-zipformer-cxx-api.cc 两个流式参考示例核心解码逻辑位于 sherpa-onnx/csrc/。⚠️ 报错速查RK3566 上的三类典型故障原文分散在多轮测试里的故障信息合并成一张 ASR 段错误排查用的对照表现象触发版本 / 场景原因规避方式段错误SegfaultGDB 定位在 RKNN 运行时内部函数RKNN 2.3.2运行时库与模型之间的兼容性问题降级到 RKNN 2.2.0控制台报Meet unsupported input dtype for gatherRKNN 2.1.0该版本对 Gather 操作的数据类型支持不完善升级到 RKNN 2.2.0模型加载失败离线模型 任意 RKNN 版本RKNN 仅支持流式模型离线模型要求加载完整 ONNX 文件而sherpa-onnx-vad-alsa-offline-asr等离线二进制拿不到对应文件改用流式识别模型与对应的流式二进制排查顺序建议先确认版本是 2.2.0再确认模型是流式最后才怀疑参数拼写。调优与延伸核心绑定RK3566 不支持 NPU 核心绑定此项优化在 RK3588 等平台才需要考虑在本板上可以跳过。线程数num_threads参数按板子实际 CPU 核心数调整流式模型三件套会分别占用推理线程。chunk 大小调整流式识别的 chunk 大小可在延迟与准确率之间取舍端侧交互场景优先压低延迟。流式参考实现也可对照 Python 侧的 python-api-examples/online-decode-files.py 理解数据流。写在最后sherpa-onnx 在 RK3566 上的 RKNN 部署路径已验证可行瓶颈基本集中在运行时版本与模型形态的匹配上而非代码层面。随着 RKNN 后续版本的更新离线模型支持与算子覆盖预计会继续补齐建议关注 CHANGELOG.md 与 README.md 的更新说明及时复测新版本表现。【免费下载链接】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),仅供参考
返回列表