Sherpa(Next Gen Kaldi)部署在Rockchip的不同SOC上

项目介绍

公司的多款产品需要部署模型来实现离线自动语音识别(ASR),经过与同时期相同类型技术(Whisper)的对比,发现Sherpa的更符合快速原型(prototyping)的要求。

Sherpa推理端都已经开源,而且可以同时支持多种语言推理,多种平台已被测试过性能指标优越,因此最终选择了基于Sherpa进行二次开发的方案。

我的角色是模型部署工程师,我的核心工作在于 方案制定/方案实施/方案自测/方案优化的一条龙迭代式开发工作

本作品集展示了我在公司所使用的所有SOC上完成的部署和优化成果。

有部分模块在开发时会输出说明文档/标准流程文档/,旨在帮助自己在面对人工智能这种与过往完全不同的范式开发时,可以更快抓到这项工作的本质,对一些难理解的概念可以进一步内化。


项目列表 (Project List)

第一章:系统架构与集成 — 在RK3588s上构建高性能 sherpa-onnx 服务

  • 核心问题: “如何从一个开源的Sherpa-ONNX SDK,构建一个完整的生产环境下可稳定推理的系统?”
  • 内容简介: 本章聚焦于项目的V1.0阶段,以RK3588s平台为目标,详细阐述了如何围绕一个核心AI SDK,从零开始设计客户端/服务器架构、将核心功能模块化封装为可复用库,并解决了高并发服务中的线程安全、资源管理和优雅停机等关键工程问题。
  • 阅读项目详情 »

第二章:平台移植与问题排查 — 向RV1126平台的适配与 sherpa-ncnn 方案实现

  • 核心问题: “Sherpa-NCNN的资料比Sherpa-ONNX少,ncnn模型也少,如何让RV1126可以实现ASR呢?”
  • 内容简介: 本章记录了项目V2.0阶段的完整调试过程。在将系统移植到RV1126平台时,原定的NPU方案(sherpa-onnx)因SDK版本不兼容而中止。报告详细复盘了转向纯CPU方案(sherpa-ncnn)后,如何解决一系列交叉编译难题,并最终定位和解决了因Debug模式导致的严重性能问题的全过程。
  • 阅读项目详情 »

第三章:自主模型转换 — 为RV1126bp实现NPU加速

  • 核心问题: “RV1126B是新的SOC,Sherpa官方暂未发布rknn模型,因此,先转换rknn,然后实测CPU推理和NPU推理的RTF,择优部署。”
  • 内容简介: 鉴于V2.0在RV1126上已确认CPU性能不足,项目V3.0针对具备新一代NPU的RV1126bp平台,直接挑战NPU方案。本章深度剖析了decoder模型因包含动态控制流算子而导致RKNN转换失败的根本原因,并展示了如何通过系统性的技术探索,最终确定并实施了“固定尺寸 -> onnx-simplifier专业简化 -> RKNN转换”的有效流程,成功为该平台实现了模型转换。
  • 阅读项目详情 »

第五章. 嵌入式平台 (RV1126B) 流式 ASR 模型 (Zipformer) INT8 端到端量化与部署

  • 核心问题: “RV1126B的rknn性能是否还能压榨呢?如何寻找数据集,进行量化,并最终测试推理准确度。”
  • 内容简介: 这个阶段是提升Zipformer模型性能的第二站。将 FP32 精度的流式 Zipformer ASR ONNX 模型,转换为 INT8 精度的 RKNN 模型,并在 sherpa-onnx C++ 推理框架中完成部署与验证,以满足低延迟和低功耗的运行要求。
  • 阅读项目详情 »