sherpa-onnx 完整解析:5 分钟跑通本地离线语音识别与语音合成
sherpa-onnx 完整解析5 分钟跑通本地离线语音识别与语音合成【免费下载链接】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给 App 加语音输入、做语音助手设备大多数人第一反应是接云端语音服务接入快但音频必须出网。这带来三个麻烦——隐私敏感场景企业内网、会议录音不敢用长期运行的设备要按量付费弱网或无网环境直接失效。如果希望离线语音识别完全跑在设备本地可选方案并不多sherpa-onnx 是其中落地案例最多、语言覆盖最广的一个。sherpa-onnx 是基于 next-gen Kaldi ONNX Runtime 的开源语音 AI 推理框架把语音转文字ASR、文字转语音TTS、说话人分离、语音增强、声源分离、语音活动检测VAD这些能力打包成可离线运行的引擎。核心卖点是一份模型、到处跑同一个 ONNX 模型文件可以在树莓派、RK3588 开发板、Android/iOS 手机或 x86 服务器上运行官方提供 C、C、Python、Go、Rust、Java、Kotlin、Swift、C#、Dart、JavaScript、Pascal 共 12 种语言的 API还支持 WebAssembly。sherpa-onnx 是什么一个完全离线的语音 AI 推理引擎一句话说清sherpa-onnx 是模型 运行时 多语言接口的工具包把主流开源语音模型转成 ONNX 格式再提供统一的推理接口。它解决的问题可以归纳为三点离线运行时不访问网络模型就是本地文件提前下载好即可模型统一它不自己训练模型而是统一接入 Whisper、Paraformer、SenseVoice、Zipformer、NeMo、WeNetCTC / transducer、silero VAD 等现成开源模型跨平台C 核心做薄各语言绑定做薄。README 中的平台清单覆盖 Linux、macOS、Windows、Android、iOS、HarmonyOS、Raspberry Pi、Jetson、RV1126、VisionFive 2 等并支持 RKNN、Qualcomm QNN、Ascend、Axera、Intel OpenVINO 等 NPU。原理拆解为什么一份模型能在手机和服务器上跑sherpa-onnx 的架构关键在分层。C 核心位于 sherpa-onnx/csrc/负责特征提取FBank、ONNX Runtime 推理和词表解码Python、Go、Rust、Java 等语言绑定都是薄封装。Python 的调用链是Python API → pybind11 → C 核心 → ONNX Runtime所以在任何平台上同一份业务逻辑不用改。有两个设计细节值得理解。第一模型只是文件 tokens.txt。OfflineRecognizer的工厂方法from_whisper()、from_paraformer()、from_transducer()只是参数组合不同内部流程一致读音频 → 提取 fbank 特征默认feature_dim80、sample_rate16000→ 过 ONNX 模型 → 用greedy_search或 beam search 把 token 解码成文字。这意味着从 Whisper 换到 Paraformer改的只是构造函数那一行。第二推理后端可切换。--provider参数可选 cpu、cuda、coreml 等。以 OPENVINO.md 里的 Intel NPU 方案为例计算重的 encoder 交给 OpenVINO 的 NPU 执行而 decoder/joiner 这类小模型留在 CPU避免小算子反复调度到 NPU 的开销——这是典型的端侧拆分思路。上图是仓库 python-api-examples/web/ 里的浏览器演示核心编译成 WebAssembly 后直接在浏览器里完成识别不需要服务端。快速上手pip install 和最小识别示例Python 用户上手成本最低pip install sherpa-onnx即可仓库根目录的 setup.py 就是发布包的来源。识别模型需要单独下载model.onnx和tokens.txtREADME 里按 ASR、TTS、VAD 分类给了模型清单。最小非流式离线识别示例import sherpa_onnx recognizer sherpa_onnx.OfflineRecognizer.from_paraformer( paraformer/path/to/paraformer.onnx, tokens/path/to/tokens.txt, num_threads2, sample_rate16000, feature_dim80, ) stream recognizer.create_stream() stream.accept_waveform(16000, samples) # float32 数组取值范围 [-1, 1] recognizer.decode_streams([stream]) print(stream.result.text)两个容易忽略的细节官方示例 python-api-examples/offline-decode-files.py 中wav 文件采样率不必是 16 kHz库内部会自动重采样麦克风输入同理官方 mic 示例故意用 48 kHz 采集交给库转换。另外示例脚本会打印 RTF耗时/音频时长RTF 小于 1 说明跑得比实时快TTS 演示截图里 RTF 0.305 即合成 1 秒音频只需 0.305 秒。 深度特性流式识别、VAD 切分、热词偏置流式识别online ASR。流式 transducer 模型分 encoder/decoder/joiner 三件套创建 stream 后每来一小块音频就喂一次。核心循环如下stream recognizer.create_stream() while True: samples read_mic_chunk(0.1) # 每次读 100ms 音频 stream.accept_waveform(16000, samples) while recognizer.is_ready(stream): recognizer.decode_stream(stream) print(recognizer.get_result(stream), end\r)VAD 非流式 ASR 组合。这是长音频转写最常用的架构先让 silero-vad 把连续音频切成语音段再逐段丢给 Paraformer / Whisper。对应示例是 python-api-examples/vad-with-non-streaming-asr.py仓库里 android/ 下的 SherpaOnnxVadAsr 演示 App 也是同一套流程可以直接对照 App 层怎么写。热词偏置与 TTS。ASR 支持--hotwords-file每行一个词加--hotwords-score默认 1.5来提升专有名词、行业术语的召回率TTS 侧则覆盖 VITS、Piper、Matcha、Kokoro、ZipVoice零样本声音克隆等多个模型族官方示例同样打印 RTF方便你判断能否满足实时性要求。以上特性的完整代码都能在 c-api-examples/、flutter-examples/ 等目录找到基本每种功能都有 C/C 和脚本语言两版对照。落地与边界适合谁不适合谁适合的场景隐私敏感音频不出设备、嵌入式与边缘设备模型普遍提供 INT8 量化版本ARM32/64、RISC-V 都有预构建 APK/Flutter 演示、以及需要 ASR VAD TTS 唤醒词由同一个 SDK 统一承载的产品。需要清醒的地方它提供的是推理引擎不是开箱即用的云语音服务。你仍要自己选型——Whisper、Paraformer、SenseVoice 在中英文上的表现各有取舍模型权重也要自己下载这部分才是真正的工作量大头。服务化能力连接管理、并发、计费要自己搭仓库提供了 WebSocket server/client 示例可参考。GPU/NPU 加速依赖特定编译的 onnxruntime例如 OpenVINO EP 需要带该 provider 的 onnxruntime 构建细节见 OPENVINO.md新手从 CPU 路径起步最稳。收尾如果你要落地本地离线语音识别与 TTS建议先用 Python API 配 Whisper 或 Paraformer 的 INT8 模型验证效果跑通后再考虑 C 集成或移动端移植。仓库地址https://gitcode.com/GitHub_Trending/sh/sherpa-onnx clone 下来后按 python-api-examples/ → c-api-examples/ → OPENVINO.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),仅供参考

相关新闻

TqSdk 与 vn.py 差异全解析:从 vn.py 迁移到天勤量化的架构、策略范式与实战对照指南

TqSdk 与 vn.py 差异全解析:从 vn.py 迁移到天勤量化的架构、策略范式与实战对照指南

金融科技 【免费下载链接】tqsdk-python 天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易 项目地址: https://gitcode.com/gh_mirrors/tq/tqsdk-python 点击查看 免费下载 本文面向已有 vn.py 使用经验的量化开发者,系统梳理 TqSdk(天…

2026/10/13 1:51:15 阅读更多 →
CMake报错编译器无法编译测试程序?一份完整的排查修复指南

CMake报错编译器无法编译测试程序?一份完整的排查修复指南

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

2026/10/13 1:51:15 阅读更多 →
koa2-note 实战:使用 koa-static 中间件为 Koa2 应用托管静态资源

koa2-note 实战:使用 koa-static 中间件为 Koa2 应用托管静态资源

文档教程后端 【免费下载链接】koa2-note 《Koa2进阶学习笔记》已完结🎄🎄🎄 项目地址: https://gitcode.com/gh_mirrors/ko/koa2-note 点击查看 免费下载 本文基于《Koa2进阶学习笔记》开源仓库中的 note/static/middleware.md …

2026/10/13 1:51:15 阅读更多 →

最新新闻

SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0学生信息管理系统实战

SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0学生信息管理系统实战

接手过一个学生信息管理系统的小项目,技术栈正好是SpringBoot2 Vue3 MyBatis-Plus MySQL8.0,标题里这套组合一眼看去很常见,但真正从零落地的时候,细节远比想象中多。当初团队里有人建议用老掉牙的JSP那套,也有人建…

2026/10/13 2:34:32 阅读更多 →
SpringBoot+Vue私房菜定制上门服务系统开发实战解析

SpringBoot+Vue私房菜定制上门服务系统开发实战解析

一个 SpringBoot Vue 的私房菜定制上门服务系统,光看标题可能觉得就是一个普通的管理系统,但真正动手做过的人会知道,这类“定制 上门 多角色”的业务模型,远比表面看起来复杂。它不是简单的 CRUD 堆砌,订单状态的流…

2026/10/13 2:34:32 阅读更多 →
ModernZ键盘快捷键绑定教程:input.conf中script-binding与script-message完全指南

ModernZ键盘快捷键绑定教程:input.conf中script-binding与script-message完全指南

音视频UI组件 【免费下载链接】ModernZ A sleek and modern OSC for mpv. This project is a fork of ModernX that enhances functionality by adding more features while preserving the core standards of mpvs OSC. 项目地址: https://gitcode.com/gh_mirrors/…

2026/10/13 2:34:32 阅读更多 →
数据结构第一章重难点全梳理:逻辑结构、存储结构与复杂度分析

数据结构第一章重难点全梳理:逻辑结构、存储结构与复杂度分析

很多人在学一门新课程时,最容易忽略的偏偏是第一张。第一张通常看起来“全是概念、没有代码”,感觉像是空话,于是翻两页就过去了,等后面真正写程序、做算法题时才发现什么都对不上。这次我把自己重新整理的《数据结构》第一章笔记…

2026/10/13 2:34:32 阅读更多 →
修仙AI小镇xianxia-AI-town:大模型驱动的修仙模拟器,NPC与玩家为何能平权?完整解读

修仙AI小镇xianxia-AI-town:大模型驱动的修仙模拟器,NPC与玩家为何能平权?完整解读

【免费下载链接】xianxia-AI-town-AI- 大模型驱动的npc决策,npc和玩家平权 项目地址: https://gitcode.com/gh_mirrors/xi/xianxia-AI-town-AI- 点击查看 免费下载 修仙AI小镇(xianxia-AI-town)是一款大模型驱动的修仙模拟游戏&a…

2026/10/13 2:34:32 阅读更多 →
SpringBoot+Vue学生成绩分析与可视化平台全解析

SpringBoot+Vue学生成绩分析与可视化平台全解析

每年毕业季我都能在技术社区里看到大量和“成绩管理系统”相关的提问,这个题目属于那种“看起来老套、实则非常能打”的典型选题。特别是把Java、Vue、SpringBoot这三个词绑在一起的时候,它考查的已经不只是“会写增删改查”,而是完整的前后端…

2026/10/13 2:33:32 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/12 18:11:17 阅读更多 →