资讯动态

sherpa-onnx 离线语音识别实战指南:从设备端到树莓派与 NPU 的完整部署拆解

发布时间:2026/10/13 6:04:54 来源:尧图企业网站定制
sherpa-onnx 离线语音识别实战指南从设备端到树莓派与 NPU 的完整部署拆解【免费下载链接】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 是把离线语音识别、文字转语音、说话人识别等一整套能力搬到设备本地的推理框架基于 ONNX Runtime 运行无需联网。项目定位一句话讲清它是什么sherpa-onnx 是一个跨平台语音推理框架解决的核心问题是在断网、弱网或隐私敏感的设备上本地完成语音相关任务。它用 C 写核心通过 ONNX Runtime 做推理因此同一个模型文件可以在手机、开发板、服务器之间迁移。你不需要为每种设备单独训练模型只需要下载一份模型再选对应的运行后端即可。当前主版本为 1.13.8功能覆盖识别、合成、增强、声源分离与检测五大类。能力清单按你要做的事来分与其按技术栈罗列不如按你拿它干什么来分。四类典型任务每类都能独立启用。语音转文字识别分两种形态流式边说边出结果适合实时字幕和非流式整段音频一次转写精度更高适合文件处理。支持的模型家族包括 Zipformer、Paraformer、Whisper、SenseVoice、Moonshine、NeMo 等覆盖中英日韩及多种中文方言。文字转语音合成支持 Piper、VITS、Matcha、Kokoro、Kitten 等 TTS 引擎可从文本生成 wav 音频也支持指定说话人 ID 与语速。同一套 Flutter 代码在 Ubuntu 桌面完成中文文本转语音全程本地推理。音频理解与检测VAD语音活动检测用 silero-vad 切出有人说话的片段是识别链路的前置。说话人识别 / 分离 / 验证判断是谁在说或把多人对话拆开。语种识别判断输入是哪种语言。关键词 spotting本地唤醒词检测不依赖云。音频处理语音增强GTcrn、DPDFNet 模型降噪。声源分离spleeter、UVR 把人声与背景分离。标点恢复给转写结果补标点。上手路径先跑起来再谈原理最快的验证路径是 Python 包。不需要编译装包后直接调 API。pip install sherpa-onnx python3 python-api-examples/offline-decode-files.py \ --tokens ./tokens.txt --paraformer ./paraformer.onnx test.wav这段命令说明一件事识别的最小闭环只有三步——装包、指定模型文件、丢一个音频。仓库自带的python-api-examples/里每类任务都有一个可运行脚本照着对应脚本填模型路径即可。用代码直接控制时非流式识别长这样import sherpa_onnx recognizer sherpa_onnx.OfflineRecognizer.from_sense_voice( model./model.int8.onnx, tokens./tokens.txt, num_threads2, ) stream recognizer.create_stream() stream.accept_waveform(16000, samples) recognizer.decode_stream(stream) print(stream.result)这段代码说明 sherpa-onnx 的统一调用范式建识别器 → 建流 → 喂音频 → 解码 → 读结果。无论换 Whisper 还是 Paraformer都是改建识别器那一步的工厂方法后面的流式流程不变。macOS 上的 TTS 示例界面直接给出 RTF实时率指标便于评估性能。关键机制它是怎么做到的三个设计点决定了它的跨平台与易用性。第一模型统一为 ONNX 格式。各模型家族被转成.onnxONNX Runtime 负责执行。这意味着模型和运行环境解耦——你换平台时不用重新导出模型只需换对应的 Runtime 后端CPU、CUDA、CoreML 等。第二识别器用工厂方法屏蔽模型差异。从上面的代码能看到from_sense_voice、from_whisper、from_transducer等入口。每个模型家族有自己的参数Whisper 要 encoder/decoderParaformer 只要单文件但对外暴露的都是create_stream/decode_stream这套接口。你不用关心内部结构只需选对工厂方法。第三VAD 非流式 ASR 的组合。真实语音是连续且带静音的。项目提供了vad-with-non-streaming-asr.py这类组合脚本先用 silero-vad 找出有语音的片段再对每段做高精度非流式识别。这是麦克风实时转写最常见的落地形态。选型对照不同设备怎么选平台覆盖很宽关键在按硬件挑后端。下表按设备给出建议起点。设备类型典型代表建议后端说明手机 / 平板Android、iOS、HarmonyOSNNAPI / CoreML走移动端 API 或 Flutter/Tauri 包开发板 / 边缘树莓派、RV1126、RK3588、VisionFive 2CPU轻量模型 int8 量化NPU 加速RK、Qualcomm、Ascend、Axera、Intel对应 NPU 后端专用加速功耗更低桌面 / 服务器x86_64、Jetson OrinCPU / CUDA / OpenVINO多线程或 GPU 提吞吐浏览器 / NodeWebAssembly、NodeJSWASM / JS 绑定端侧免安装运行它支持的语言有 12 种C、C、Python、JavaScript、Java、C#、Kotlin、Swift、Go、Dart、Rust、Pascal另加 WebAssembly。移动端通常走 Java/Kotlin/Swift 或 Flutter 包桌面服务走 Python/C嵌入式走 C/C。编译为 WebAssembly 后识别可跑在浏览器里支持文件上传与麦克风实时录音。调优与排坑常见问题与容易踩的坑性能与排障是落地时最花时间的部分。项目未公开的指标一律以官方基准为准这里给的是方向。问题现象常见原因调整方向实时率RTF偏高、跟不上语速模型偏大或线程不足换 int8 量化模型num_threads对齐核心数内存占用高模型多、实例多按需延迟加载int8 量化中文识别夹杂英文/口音偏差模型语言不匹配选对应语种模型SenseVoice 支持多方言流式结果不稳、跳字解码参数或 LM 未配调decoding-method、hotwords偏置Flutter 里模型加载失败沙箱读不到文件模型作为 asset运行时拷到可写目录几条实操建议先压模型再谈调参——优先选.int8.onnx版本num_threads别盲目拉满线程过多反而增加调度开销专业术语识别差时用--hotwords-file加偏置词表比换模型更省事采样率要对齐默认 16kHz前端不一致会导致整条链路偏移。行动收尾落地 checklist按顺序走能少走弯路。明确任务类型流式还是非流式是否要 VAD、TTS、说话人分离选定语言绑定移动端选 Java/Kotlin/Swift服务选 Python/C端侧选 C/C下载对应模型包.onnxtokens.txt优先 int8 版本用仓库python-api-examples/里的脚本先跑通一个任务按设备挑后端CPU / NPU / GPU跑基准脚本确认实时率达标流式场景配 VAD识别差时加热词偏置移动端把模型放进 asset运行时拷贝到可写目录代码获取git clone https://gitcode.com/GitHub_Trending/sh/sherpa-onnx从仓库根目录读README.md找到对应功能的模型下载说明配合python-api-examples/和c-api-examples/里的脚本即可在本地跑通第一条语音链路。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑