news 2026/9/12 15:55:56

sherpa-onnx 新手完整教程:10 分钟搭建一套免联网的离线语音识别与合成系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
sherpa-onnx 新手完整教程:10 分钟搭建一套免联网的离线语音识别与合成系统

sherpa-onnx 新手完整教程:10 分钟搭建一套免联网的离线语音识别与合成系统

【免费下载链接】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

如果你想在设备本地就能完成语音转文字和文字转语音,sherpa-onnx 是个值得认真看看的选择。它基于新一代 Kaldi 和 onnxruntime,把识别、合成、说话人分析整条语音流水线都搬到了你的设备上,全程不需要联网。下面带你从"为什么需要它"讲到"怎么跑起来",最后聊聊能落地到哪些真实场景。

为什么"离线"语音识别值得自己搭一套

调用云端语音 API 的三个痛点

先说三个很常见的困扰:

  • 隐私问题:会议录音、医患对话这类音频,上传到第三方服务器并不合适;
  • 网络依赖:地下室、产线、车载环境经常断网,云端 API 一断就瘫痪;
  • 成本与延迟:按调用量计费,而且网络往返带来可感知的延迟,实时字幕体验会打折扣。

把模型跑在自己设备上,这三件事一次解决。sherpa-onnx 的卖点就是"本地推理":音频进来,文字出来,数据不出设备。

一个库覆盖的语音能力比你想的多

很多人以为语音项目只做"语音转文字",其实 sherpa-onnx 本地支持的能力远不止这个:

  • 流式与非流式语音识别(ASR);
  • 文本转语音(TTS),包括零样本声音克隆;
  • 语音端点检测(VAD)、关键词唤醒(KWS);
  • 说话人分离、说话人识别、语音增强与源分离。

也就是说,一个"离线语音识别与合成"项目,它可以同时当识别引擎、合成引擎和 VAD 工具用。核心实现放在 sherpa-onnx/csrc/,对外暴露的 C 接口在 sherpa-onnx/c-api/,这是它能在 12 种语言间复用的根基。

三步跑通第一条离线语音

两条命令装好 Python 包

前提只有一条:装好 Python 和 pip。官方包在 PyPI 上,直接装:

pip install sherpa-onnx sounddevice

sherpa-onnx是推理库本身,sounddevice是麦克风示例用来采集音频的。装完不用配任何环境变量,import 即用。

下载模型,启动识别

识别效果取决于模型。sherpa-onnx 提供大量预训练模型(Whisper、Paraformer、SenseVoice、Zipformer 等都有 ONNX 版本),从官方文档列表里挑一个下载解压即可,典型目录里包含encoder.onnxdecoder.onnxtokens.txt这类文件。仓库的 python-api-examples/ 下有几十个现成脚本,麦克风实时识别这个可以这样跑:

python python-api-examples/speech-recognition-from-microphone.py \ --tokens=./tokens.txt --encoder=./encoder.onnx \ --decoder=./decoder.onnx --joiner=./joiner.onnx

跑起来对着麦克风说话,终端会滚动打印识别出的文字。如果只想先看看网页版效果,python-api-examples/里的http_server.py能起一个本地 Web 页面,上传文件或现场录音都能识别:

页面里 Home、Upload、Record 三个入口,分别对应本地演示、文件识别和实时录音识别,全部在 localhost 完成,不经过外网。

它最适合落地到哪些场景

实时字幕、语音助手和智能音箱

流式识别 + VAD 的组合是实时场景的标配:麦克风持续输入,VAD 判断"人开始说了",流式模型边说边出字。仓库里的 two-pass-speech-recognition-from-microphone.py 演示了"流式先出草稿、非流式再精修"的两遍识别,准确率与延迟兼得,很适合做会议字幕或语音输入。唤醒词方面,KWS 能力让小爱音箱这类设备可以自定义"嘿 XX"唤醒语。

生成字幕和批量处理录音文件

离线(非流式)模型适合"一整段音频 → 完整文本"的任务。generate-subtitles.py可以直接从音频文件生成字幕,offline-decode-files.py批量转写录音。TTS 这边同样能出活:仓库内置的 Flutter 示例在桌面端就能输入文字、合成语音并试听:

语音增强(GTCRN、DPDFNet)和源分离(Spleeter、UVR)模型也能接在同一套框架里,嘈杂环境下的转写、人声伴奏分离都可以本地完成。

扩展到你自己的 App:生态与多语言接入

12 种语言挑一个接口

sherpa-onnx 用 C/C++ 写核心,然后在各语言上做了薄封装,你写什么语言就用什么接口:Python、C++、C、Go、Java、Kotlin、C#、Swift、Rust、Dart、JavaScript、Pascal,还支持 WebAssembly。仓库里每种语言都配了可运行的示例目录,比如 c-api-examples/、go-api-examples/、kotlin-api-examples/、rust-api-examples/,对着抄改就能上手。Android、iOS、HarmonyOS 的完整工程分别在 android/ 和 ios-swiftui/,可以直接克隆跑起来。

Flutter、Tauri 等跨平台框架一站式接入

跨平台框架它也给封装好了:flutter/ 目录提供 Flutter 插件,一套代码同时覆盖 Android、iOS、桌面和 Web;tauri-examples/ 演示 Tauri 桌面应用集成。跑起来的效果大概是这样,Windows 上输入中文,生成 5 秒多的音频只花 1.2 秒,RTF 0.23:

更大的图景是:社区已经基于它做出 Linux 语音输入、Electron 直播互动工具、ESP32 智能音箱后端、桌面读屏等大量衍生项目,README 里有一份"Projects using sherpa-onnx"清单可以参考。

模型选哪款、平台怎么交叉编译,官方文档和 README.md 里的预训练模型列表都按语言、流式/非流式分好了类——建议先拿 Python 示例验证模型效果,再决定往哪个语言栈移植。

【免费下载链接】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 15:55:36

WTK6900HC语音芯片在油烟机中的本地化语音控制实战

1. 为什么油烟机值得加语音控制?——从厨房真实痛点出发我第一次在客户家调试完这套WTK6900HC语音模块时,用户正单手端着刚出锅的炒虾仁,另一只手还沾着油渍,对着油烟机喊了句“关机”,机器应声停转。她松了口气说&…

作者头像 李华
网站建设 2026/9/12 15:54:58

Java运算符详解:从基础到进阶全掌握

目录 1.什么是运算符 2.算术运算符 1.基本四则运算符:加减乘除模( - * / %) 2.增量运算符( - * /) 3.自增自减运算符 -- 3.关系运算符 4.逻辑运算符 5.位运算符 1.按位与& 2.按位或 | 3.按位取反 ~ 4.按位异或^ …

作者头像 李华