sherpa-onnx:离线语音识别、TTS 与说话人处理的一体化上手指南
2026/9/12 8:36:41 网站建设 项目流程

sherpa-onnx:离线语音识别、TTS 与说话人处理的一体化上手指南

【免费下载链接】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 基于 next-gen Kaldi 和 onnxruntime,在本地完成语音识别(ASR)、文本转语音(TTS)、说话人分离与识别、语音增强、源分离、VAD 等任务,全程无需联网。项目覆盖 Android、iOS、HarmonyOS、Raspberry Pi、RISC-V、RK/Ascend/Axera NPU 到 x86_64 服务器等多种环境,并提供 12 种语言的绑定。如果你正在为 App、桌面工具或嵌入式产品寻找本地化语音能力,它是值得优先评估的选项之一。

适合哪些场景与开发者

  • 移动端 App 开发者:仓库内置 Flutter、Tauri、Android、iOS(Swift/SwiftUI)、HarmonyOS 多套示例,例如 flutter-examples/ 和 android/。
  • 桌面与 Web 开发者:Python、Node.js(含 WASM)、C/C++、Go、Rust 等语言均有示例,可快速搭起识别或合成服务。
  • 嵌入式与 NPU 开发者:支持 Rockchip、高通、Ascend、Axera 等 NPU,适合边缘设备。
  • 产品形态:实时字幕、离线语音助手、会议录音转写、语音播报、通话降噪等。

新手不必从零造轮子:每种语言的示例目录本身就是可运行的教程。

快速开始:装包、验证、跑通第一个示例

第 1 步,用 pip 安装 Python 绑定:

pip install sherpa-onnx

第 2 步,确认环境正常:

python -c "import sherpa_onnx; print(sherpa_onnx.version)"

第 3 步,准备模型。sherpa-onnx 本身不包含语音模型,需按所用功能下载对应的 onnx 模型文件(识别、合成、VAD 各自独立)。

第 4 步,按语言选择示例起步:Python 看 python-api-examples/,C 语言看 c-api-examples/,跨平台 App 看 flutter-examples/。以麦克风实时识别为例,可参考 python-api-examples/speech-recognition-from-microphone.py。

四大核心能力模块

  • 语音识别:同时支持流式(边说边出字,适合实时字幕)与非流式(整段识别,准确率通常更高),底层可选 zipformer、sense-voice、whisper、paraformer、whisper-ctc 等多种模型。
  • TTS:支持 VITS、Piper、Kokoro、Matcha、Kitten 及零样本方案 PocketTTS、ZipVoice 等,可生成多说话人语音并控制语速。
  • VAD 与信号处理:内置 silero VAD,可配合识别做端点检测;另有 GTCRN、DPDFNet 语音增强,以及 Spleeter、UVR 源分离;还包括关键词唤醒、音频事件标注、语种识别、标点恢复。
  • 说话人相关:说话人识别、验证、说话人分离(diarization),可用于"这段录音里有谁、各自说了什么"。

各能力均有对应示例,如 c-api-examples/vad-sense-voice-c-api.c、c-api-examples/kokoro-tts-zh-en-c-api.c。

平台与语言覆盖速览

维度覆盖情况参考位置
操作系统Linux、macOS、Windows、Android、iOS、HarmonyOS、WearOS、Node.js、WebAssemblyREADME.md
架构x64、x86、arm64、arm32、riscv64同上
NPURKNN、QNN、Ascend、Axera同上
语言C++、C、Python、JS、Java、C#、Kotlin、Swift、Go、Dart、Rust、Pascaljava-api-examples/、kotlin-api-examples/ 等

选型与性能建议

  • 先定模式再选模型:实时场景(字幕、助手)选流式模型;文件转写、离线处理选非流式模型。两者接口不同,不要混用。
  • 识别前加 VAD:对长音频先做 VAD 切分再送识别,可显著减少无效计算,仓库内vad-with-non-streaming-asr系列示例展示了这一组合模式。
  • 移动端控制线程数:在手机、嵌入式设备上把推理线程数调到 1~2 档,观察内存与发热后再微调。
  • TTS 按需选引擎:简单播报用 VITS/Piper 类轻量模型即可;需要多说话人、音色克隆再上 Kokoro 或 ZipVoice 零样本方案。
  • 模型与采样率对齐:16 kHz 与 8 kHz 的增强/识别模型不通用,选模型前先确认音频采样率。

新手常见坑

  • 模型缺失或采样率不符:sherpa-onnx 只带推理引擎,不带模型;音频与模型采样率不一致是识别结果异常的第一嫌疑。
  • 流式与非流式 API 不同:流式接口按帧喂音频,非流式按整段文件处理,示例代码不能直接互换。
  • 移动端沙箱:Flutter 示例中模型需打包为 assets 并运行时拷贝到可写目录,详见 flutter-examples/README.md。
  • 语言与标点:中文、英文、日文等多语种有对应模型;识别结果需要标点时可再叠加离线/在线标点恢复。

下一步

  • 实时识别:从 python-api-examples/speech-recognition-from-microphone.py 跑起第一条链路。
  • 文件转写:看 python-api-examples/offline-decode-files.py。
  • 做 App:按语言进入 flutter-examples/、android/ 或 ios-swiftui/,每个目录都有可直接编译的演示工程。
  • 需要服务化:参考 python-api-examples/non_streaming_server.py 的 WebSocket 方案。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询