k2-fsa/sherpa-onnx
多媒体与设计在桌面、移动端与嵌入式设备上离线运行语音识别、语音合成与音频处理。
sherpa-onnx 是一个采用 Apache-2.0 协议的 C++ 语音处理工具包,基于新一代 Kaldi 与 onnxruntime,强调本地离线运行。它覆盖流式与非流式语音识别、语音合成、说话人日志、说话人识别与验证、语音增强、音源分离、VAD、关键词唤醒等任务,无需联网 README。适合希望把语音能力直接嵌入应用或设备、而不是调用云端语音 API 的开发者。
工作方式的变化
应用不再把音频上传到托管服务,而是加载本地 ONNX 模型,在用户设备上完成推理。仓库明确说明这些功能都在本地运行,并列出 x86、ARM32/ARM64、RISC-V、Android、WearOS、iOS、HarmonyOS、NodeJS、WebAssembly、Raspberry Pi 以及 RKNN、QNN、Ascend、Axera、OpenVINO 等多种 NPU 目标 README。绑定覆盖 12 种语言,从 C++、Python 到 Java、Kotlin、Swift、C#、Go、Rust、Dart、Pascal,此外还有 WebAssembly 路径。
以 Voltip 听写应用为例:按住快捷键说话,流式 Zipformer 模型给出实时预览,Silero VAD 负责裁剪静音并把长录音按停顿切分,最后用 SenseVoice 或 Paraformer 识别并把文本插入当前应用 Voltip。类似组合也出现在字幕工具 SmartSub SmartSub 和为听障用户提供字幕的应用中 Loud Caption。
两个值得关注的机制
- 流式与离线模型并存。 流式 transducer/paraformer/CTC 模型在音频到达时持续输出部分结果;非流式模型一次性转写整段语音。README 对两类模型分别给出索引页面,模型选择应跟随交互方式 README。
- 流水线组合。 VAD、关键词唤醒、说话人嵌入和 ASR 可以在同一进程内串联;bot-reborn 项目就在一个浏览器 WebAssembly 构建中同时运行 VAD 与唤醒词检测,只把真实语音送去识别 bot-reborn。
试用与前置条件
README 提供了多个 Hugging Face 在线演示和预编译 Android APK,可以直接在浏览器或手机上体验识别、合成、说话人日志和字幕生成,无需自行编译 README。开发应用则需要目标平台对应的 SDK 或语言包,以及匹配的模型文件;README 特别说明 iOS 上的 Flutter 示例需要从源码构建,其他平台则有预编译应用。
兼容性按平台、架构和框架分别以表格列出,因此第一步应核对目标平台是否在矩阵中,而不是假设一个构建适用于所有设备。README 没有给出准确率基准或延迟数据,设备端资源占用需要针对所选模型和硬件自行测量。
本文由 AI 根据项目 README 生成,更新于 2026年10月31日,以项目官方文档为准。