- 端侧/嵌入式语音交互:Android、iOS、树莓派、RISC-V 板子上要跑流式 ASR + VAD + 关键词检测,且不能联网。这类场景换 Python 系方案基本没法落地,交叉编译和内存占用都过不去。
- 已有 C++/C#/Java 服务需要加语音能力:它给的是库而不是服务,能直接链进现有进程,省掉再维护一个推理服务进程和进程间协议。
- 离线批量转写与评测:非流式 ASR 加说话人分离跑本地文件,不依赖外网和 API 配额,适合做数据集标注或回归评测。
- 需要 TTS 和 ASR 共用一套运行时:同一份 onnxruntime 依赖覆盖合成、识别、声纹,减少多套框架的版本冲突。
sherpa-onnx
k2-fsaApache-2.0活跃维护 有专家点评基于新一代 Kaldi 和 onnxruntime 的离线语音工具包,一套搞定语音识别、合成、说话人分离、降噪、声源分离和 VAD,可跑在嵌入式、手机和服务器上。
Speech-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
专家点评
上手难度:进阶更新于 2026-11-11离线语音全栈推理库,用 onnxruntime 顶替 Kaldi 部署链路,一套 C++ 核心供 12 种语言调用
适用场景
踩坑
- 模型不在仓库里,要自己按任务下载对应 onnx 模型并匹配版本;模型和库版本对不上时的报错通常不指向根因,第一次接入容易卡在这里。
- TTS 前端依赖有过破坏性变更(issue 里 "Remove espeak-ng and piper-phonemize dependency" 反应数最高),如果你在旧版本上接了 TTS,升级时要预留重配音素化链路的工时。
- NPU 后端不是等价替换:issue 里有 paraformer 的 QNN 推理问题,说明换到 NPU 时算子覆盖和精度问题需要单独验证,别假设 CPU 上跑通就能直接切。
同类对比
要的是开箱即用的服务端 API 而不是嵌入式库,看 whisper.cpp 生态或 FunASR 的服务化部署;纯 Python 原型验证阶段用 faster-whisper 更快出结果,等确定要上端侧再迁过来。
README 未给出安装命令README 未说明显存要求;支持 x86/x86_64、ARM32/64、RISC-V 的 CPU 运行,也支持 RK NPU、Qualcomm QNN、Ascend、Axera、Intel OpenVINO NPU,以及 NVIDIA Jetson Orin NX / Nano B01 的 CPU 与 GPU。
项目说明
由 README 自动翻译提炼离线跑语音识别、合成、说话人分离等全套语音任务的 onnxruntime 推理库
基于新一代 Kaldi 和 onnxruntime 的离线语音工具包,一套搞定语音识别、合成、说话人分离、降噪、声源分离和 VAD,可跑在嵌入式、手机和服务器上。
核心能力
- 支持流式与非流式语音识别(ASR)
- 本地运行 TTS、说话人分离与声纹识别
- 内置 VAD、语音增强、关键词检测与音源分离
- 覆盖 12 种编程语言与 WebAssembly 接口
- 适配 Android、iOS、鸿蒙、树莓派及多种 NPU
容易踩的坑
需自行下载对应模型文件才能运行;README 未说明默认端口等运行参数
- v2.0.1最新正式版2026-10-26 · 2026-10-26 15:24 UTC
What's Changed
- Fix publishing flutter packages by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4091
- Fix decoder positions of generated tokens in Canary greedy search by @ANDROIDHASSAN in https://github.com/k2-fsa/sherpa-onnx/pull/4097
- Add VoxLock target-speaker voice isolation to the speech denoisers by @arbazsiddiqui in https://github.com/k2-fsa/sherpa-onnx/pull/4085
- Adds a CLAUDE.md with build, test, lint and high-level architecture guidance for Claude Code. by @manickavela29 in https://github.com/k2-fsa/sherpa-onnx/pull/4099
- Upload VoxLock models and test data by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4101
- Add Python API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4102
- Use librosa-style fbank for streaming NeMo CTC models by @ANDROIDHASSAN in https://github.com/k2-fsa/sherpa-onnx/pull/4092
- Add OfflineRecognizer.createAsync() to the Dart API by @Cassian433 in https://github.com/k2-fsa/sherpa-onnx/pull/4070
- Keep the STFT convs of Kokoro in float32 when quantizing to int8 by @Trinorae in https://github.com/k2-fsa/sherpa-onnx/pull/4087
- Add C/CXX API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4104
- Add JavaScript (node-addon) API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4105
- Add JavaScript (WebAssembly) API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4106
- Add Java and Kotlin API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4107
- Add C# API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4108
- Fix CI failures by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4113
- Add Swift API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4109
- Add Go API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4110
- Add Dart API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4111
- Add Rust API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4112
- Add Pascal API for VoxLock by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4114
- Release v2.0.1 by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4115
New Contributors
- @arbazsiddiqui made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/4085
Full Changelog: https://github.com/k2-fsa/sherpa-onnx/compare/v2.0.0...v2.0.1
- v2.0.02026-10-23 · 2026-10-23 12:49 UTC
查看更新说明
What's Changed
- Fix releasing dart packages by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3948
- Support NeMo transducers in offline Python examples by @Nathan-Roll1 in https://github.com/k2-fsa/sherpa-onnx/pull/3952
- Add OfflineDiacritization to kotlin-api by @XDcobra in https://github.com/k2-fsa/sherpa-onnx/pull/3949
- Support modified_beam_search with hotwords for streaming NeMo transducer models by @josephomills in https://github.com/k2-fsa/sherpa-onnx/pull/3895
- Add GetEmbedding to SpeakerEmbeddingManager by @XDcobra in https://github.com/k2-fsa/sherpa-onnx/pull/3950
- fix(supertonic): allow the "na" language tag by @utrumo in https://github.com/k2-fsa/sherpa-onnx/pull/3958
- Add conversion scripts for 7M Kokoro distills (Arabic + English) by @marwanelamami in https://github.com/k2-fsa/sherpa-onnx/pull/3954
- Add wasm demo for kokoro multi lang tts by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3966
- Fix character loss for byte-level-BPE tokens in whisper/cohere recognizers by @paoloantinori in https://github.com/k2-fsa/sherpa-onnx/pull/3965
- Ship arm64 libraries in the sherpa_onnx_windows Flutter package by @Ranjan-Bhagat in https://github.com/k2-fsa/sherpa-onnx/pull/3957
- Support HLG decoding for offline CTC models in the C, CXX, JNI/Kotlin/Java and WASM APIs by @baszczewski in https://github.com/k2-fsa/sherpa-onnx/pull/3951
- Fix dart for windows arm64 by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3967
- Canary: derive lang2id from the model vocab, warn instead of silently falling back to English by @paoloantinori in https://github.com/k2-fsa/sherpa-onnx/pull/3962
- Add subtitle generation Python API example for Qwen3 ASR by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3972
- Docs: reproducible F-Droid builds of the Android library (AAR) by @paoloantinori in https://github.com/k2-fsa/sherpa-onnx/pull/3963
- Fix moonshine v2: feed the decoder encoder_attention_mask at raw audio length by @paoloantinori in https://github.com/k2-fsa/sherpa-onnx/pull/3976
- add --input-sample-rate option in online-websocket-server by @codeachange in https://github.com/k2-fsa/sherpa-onnx/pull/3977
- Add Recly to 'Projects using sherpa-onnx' by @rokrokss in https://github.com/k2-fsa/sherpa-onnx/pull/4019
- Add subtitle generation Python API example for Doubao ASR. by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4027
- Update README to include China Unicom by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4028
- Update README to include China Life by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4029
- Update README to include deepseek-harness by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4030
- jni: convert C++ exceptions in recognizer/punctuation constructors to Java exceptions by @paoloantinori in https://github.com/k2-fsa/sherpa-onnx/pull/3988
- Fix Flutter VAD+ASR examples for Qwen3 ASR by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4045
- c-api: catch C++ exceptions in SherpaOnnxCreate* and return NULL by @Cassian433 in https://github.com/k2-fsa/sherpa-onnx/pull/4044
- Pad 1s of silence on endpoint for streaming paraformer in Python examples (mirror C++ behavior, #1373) by @Virtuoso461 in https://github.com/k2-fsa/sherpa-onnx/pull/4052
- Fix offline recognizer Swift wrapper build (missing ctc_fst_decoder_config) by @kyo-zzz in https://github.com/k2-fsa/sherpa-onnx/pull/4005
- Update zip build dependency to v9 (clears RUSTSEC-2026-0367/0368/0369) by @lfgranja in https://github.com/k2-fsa/sherpa-onnx/pull/4059
- Remove espeak-ng and piper-phonemize from sherpa-onnx by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/4055
- Add Node.js addon for Windows arm64 (sherpa-onnx-win-arm64) by @eliandoran in https://github.com/k2-fsa/sherpa-onnx/pull/4054
- Fix ZipVoice heap overflow for short text at speed > 1 by @Cassian433 in https://github.com/k2-fsa/sherpa-onnx/pull/4051
- v1.13.82026-09-10 · 2026-09-10 14:00 UTC
查看更新说明
What's Changed
- Fix releasing by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3911
- Fix data race on shared PRNG in FunASR-Nano and Qwen3-ASR offline recognizers by @fra-shipper in https://github.com/k2-fsa/sherpa-onnx/pull/3912
- Support building within a termux terminal on Android devices by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3916
- Support sherpa-onnx with Python in Termux on Android by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3922
- Fix Go API tests in CI for Windows by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3932
- Add Kokoro v1.0 em_santa voice by @kroryan in https://github.com/k2-fsa/sherpa-onnx/pull/3928
- Add Nabra-82M Arabic TTS conversion scripts for Kokoro runtime by @marwanelamami in https://github.com/k2-fsa/sherpa-onnx/pull/3898
- Fix Cohere Transcribe hallucinating sentences on silent audio by @kyo-zzz in https://github.com/k2-fsa/sherpa-onnx/pull/3924
- Fix Moonshine v2 hallucinating text on silent audio by @kyo-zzz in https://github.com/k2-fsa/sherpa-onnx/pull/3923
- Fix FunASR-Nano hallucinating text on silent audio by @kyo-zzz in https://github.com/k2-fsa/sherpa-onnx/pull/3921
- Fix Canary empty transcript when the first decoded token is eos by @kyo-zzz in https://github.com/k2-fsa/sherpa-onnx/pull/3920
- Add Intel NPU support through OpenVINO by @jacob-vincent-mink in https://github.com/k2-fsa/sherpa-onnx/pull/3910
- Add per-segment confidence computation for OfflineSpeakerDiarization by @matiaslin in https://github.com/k2-fsa/sherpa-onnx/pull/3881
- Upload the nabra 82M Arabic TTS int8 model by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3933
- Add Go API for Windows arm64 by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3934
- Add Go bindings for OfflineSpeakerDiarization confidence computation by @matiaslin in https://github.com/k2-fsa/sherpa-onnx/pull/3936
- fix(nemo/qnn/parakeet-ctc): wrapper.py raises NameError on undefined
feat_dimby @Anai-Guo in https://github.com/k2-fsa/sherpa-onnx/pull/3937 - Fix CI tests by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3940
- Update onnxruntime to v1.28.2 by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3935
- Add robust download retry logic to all test scripts by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3941
- Support running Rust API examples on termux within Android by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3942
- Add confidence computation support for speaker diarization to JNI. by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3943
- fix(python-tests): UnboundLocalError instead of the intended ValueError in test_fast_clustering by @Anai-Guo in https://github.com/k2-fsa/sherpa-onnx/pull/3944
- Test using uv to install sherpa-onnx by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3946
- Release v1.13.8 by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3945
New Contributors
- @kroryan made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3928
- @marwanelamami made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3898
- @kyo-zzz made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3924
- @jacob-vincent-mink made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3910
- @Anai-Guo made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3937
Full Changelog: https://github.com/k2-fsa/sherpa-onnx/compare/v1.13.7...v1.13.8
- v1.13.72026-09-01 · 2026-09-01 05:01 UTC
查看更新说明
What's Changed
- Fix Flutter packages for iOS by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3887
- Support Windows arm64 for Rust by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3889
- Fix building APKs in CI by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3896
- Add iOS support for Rust and add hello world tauri example by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3901
- Expose num_trailing_blanks in the online recognizer result JSON by @josephomills in https://github.com/k2-fsa/sherpa-onnx/pull/3892
- Remove caret prefix from sherpa_onnx flutter dependencies by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3905
- Fix Qwen3-ASR hallucinating text on silent audio when hotwords/language are set by @fra-shipper in https://github.com/k2-fsa/sherpa-onnx/pull/3907
- Fix online punctuation model initialization when the vocabulary path contains non-ASCII characters on Windows. by @solavr in https://github.com/k2-fsa/sherpa-onnx/pull/3906
- Support batched decoding of multiple online streams in the JavaScript (node-addon) API by @josephomills in https://github.com/k2-fsa/sherpa-onnx/pull/3894
- Support per-stream runtime options (setOption/getOption/hasOption) in the JavaScript (node-addon) API for streaming ASR by @josephomills in https://github.com/k2-fsa/sherpa-onnx/pull/3891
- Align Qwen3-ASR whisper features to the centered-STFT convention (#3535) by @eolivelli in https://github.com/k2-fsa/sherpa-onnx/pull/3873
- Populate ys_probs in the online NeMo transducer greedy search decoders by @josephomills in https://github.com/k2-fsa/sherpa-onnx/pull/3893
- Release v1.13.7 by @csukuangfj in https://github.com/k2-fsa/sherpa-onnx/pull/3909
New Contributors
- @josephomills made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3892
- @fra-shipper made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3907
- @solavr made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3906
- @eolivelli made their first contribution in https://github.com/k2-fsa/sherpa-onnx/pull/3873
Full Changelog: https://github.com/k2-fsa/sherpa-onnx/compare/v1.13.6...v1.13.7
- tauri2026-08-25 · 2026-08-25 03:44 UTC
查看更新说明
Contents
Download links and usage instructions for every app: tauri-examples/app.md
Doubao ASR from files — quick notes
Generate subtitles for audio or video files: local sherpa-onnx VAD + Doubao recording-file recognition. Click a transcript segment to play it; view/export/share the transcript as SRT, timestamped TXT or plain TXT. Results are saved automatically to the Downloads folder on Android, or next to the input file on desktop — and existing results are loaded (not paid for twice).
- Get an API key: help on getting a Doubao API key
- New Volcengine accounts get 20 hours of free recognition. For more, buy hours and select the package 录音文件识别 (recording-file recognition) — not 流式语音识别 (streaming speech recognition).
- Privacy: speech is uploaded to Volcengine for recognition; it is not processed entirely on your device.
Source code: tauri-examples
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Supported functions
| Speech recognition | Speech synthesis | Source separation |
|---|---|---|
| ✔️ | ✔️ | ✔️ |
| Speaker identification | Speaker diarization | Speaker verification |
|---|---|---|
| ✔️ | ✔️ | ✔️ |
| Spoken Language identification | Audio tagging | Voice activity detection |
|---|---|---|
| ✔️ | ✔️ | ✔️ |
| Keyword spotting | Add punctuation | Speech enhancement |
|---|---|---|
| ✔️ | ✔️ | ✔️ |
Supported platforms
| Architecture | Android | iOS | Windows | macOS | linux | HarmonyOS |
|---|---|---|---|---|---|---|
| x64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| x86 | ✔️ | ✔️ | ||||
| arm64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| arm32 | ✔️ | ✔️ | ✔️ | |||
| riscv64 | ✔️ |
Supported programming languages
| 1. C++ | 2. C | 3. Python | 4. JavaScript |
|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ |
| 5. Java | 6. C# | 7. Kotlin | 8. Swift |
|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ |
| 9. Go | 10. Dart | 11. Rust | 12. Pascal |
|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ |
It also supports WebAssembly.
Supported frameworks
Flutter
| Architecture | Android | iOS | Windows | macOS | Linux | Web |
|---|---|---|---|---|---|---|
| x64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| x86 | ✔️ | ✔️ | ||||
| arm64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| arm32 | ✔️ | ✔️ |
- Pre-built Flutter demo apps: flutter releases
Tauri
| Architecture | Android | iOS | Windows | macOS | Linux |
|---|---|---|---|---|---|
| x64 | ✔️ | ✔️ | ✔️ | ✔️ | |
| x86 | ✔️ | ||||
| arm64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| arm32 | ✔️ |
- Pre-built Tauri demo apps: tauri releases
Supported NPUs
| 1. Rockchip NPU (RKNN) | 2. Qualcomm NPU (QNN) | 3. Ascend NPU |
|---|---|---|
| ✔️ | ✔️ | ✔️ |
| 4. Axera NPU | 5. Intel NPU (OpenVINO) |
|---|---|
| ✔️ | ✔️ |
Introduction
This repository supports running the following functions locally
- Speech-to-text (i.e., ASR); both streaming and non-streaming are supported
- Text-to-speech (i.e., TTS)
- Speaker diarization
- Speaker identification
- Speaker verification
- Spoken language identification
- Audio tagging
- VAD (e.g., silero-vad)
- Speech enhancement (e.g., gtcrn, DPDFNet, VoxLock)
- Keyword spotting
- Source separation (e.g., spleeter, UVR)
on the following platforms and operating systems:
- x86,
x86_64, 32-bit ARM, 64-bit ARM (arm64, aarch64), RISC-V (riscv64), RK NPU, Ascend NPU - Linux, macOS, Windows, openKylin
- Android, WearOS
- iOS
- HarmonyOS
- NodeJS
- WebAssembly
- NVIDIA Jetson Orin NX (Support running on both CPU and GPU)
- NVIDIA Jetson Nano B01 (Support running on both CPU and GPU)
- Raspberry Pi
- RV1126
- LicheePi4A
- VisionFive 2
- 旭日X3派
- 爱芯派
- RK3588
- SpacemiT-K1
- SpacemiT-K3
- etc
with the following APIs
- C++, C, Python, Go,
C# - Java, Kotlin, JavaScript
- Swift, Rust
- Dart, Object Pascal
Links for Huggingface Spaces
| Description | URL | 中国镜像 |
|---|---|---|
| Speaker diarization | Click me | 镜像 |
| Speech recognition | Click me | 镜像 |
| Speech recognition with Whisper | Click me | 镜像 |
| Speech synthesis | Click me | 镜像 |
| Generate subtitles | Click me | 镜像 |
| Audio tagging | Click me | 镜像 |
| Source separation | Click me | 镜像 |
| Spoken language identification with Whisper | Click me | 镜像 |
We also have spaces built using WebAssembly. They are listed below:
| Description | Huggingface space | ModelScope space |
|---|---|---|
| Voice activity detection with silero-vad | Click me | 地址 |
| Real-time speech recognition (Chinese + English) with Zipformer | Click me | 地址 |
| Real-time speech recognition (Chinese + English) with Paraformer | Click me | 地址 |
| Real-time speech recognition (Chinese + English + Cantonese) with Paraformer-large | Click me | 地址 |
| Real-time speech recognition (English) | Click me | 地址 |
| VAD + speech recognition (Chinese) with Zipformer CTC | Click me | 地址 |
| VAD + speech recognition (Chinese + English + Korean + Japanese + Cantonese) with SenseVoice | Click me | 地址 |
| VAD + speech recognition (English) with Whisper tiny.en | Click me | 地址 |
| VAD + speech recognition (English) with Moonshine tiny | Click me | 地址 |
| VAD + speech recognition (English) with Zipformer trained with GigaSpeech | Click me | 地址 |
| VAD + speech recognition (Chinese) with Zipformer trained with WenetSpeech | Click me | 地址 |
| VAD + speech recognition (Japanese) with Zipformer trained with ReazonSpeech | Click me | 地址 |
| VAD + speech recognition (Thai) with Zipformer trained with GigaSpeech2 | Click me | 地址 |
| VAD + speech recognition (Chinese 多种方言) with a TeleSpeech-ASR CTC model | Click me | 地址 |
| VAD + speech recognition (English + Chinese, 及多种中文方言) with Paraformer-large | Click me | 地址 |
| VAD + speech recognition (English + Chinese, 及多种中文方言) with Paraformer-small | Click me | 地址 |
| VAD + speech recognition (多语种及多种中文方言) with Dolphin-base | Click me | 地址 |
| Speech synthesis (Piper, English) | Click me | 地址 |
| Speech synthesis (Piper, German) | Click me | 地址 |
| Speech synthesis (Matcha, Chinese) | Click me | 地址 |
| Speech synthesis (Matcha, English) | Click me | 地址 |
| Speech synthesis (Matcha, Chinese+English) | Click me | 地址 |
| Speaker diarization | Click me | 地址 |
| Voice cloning with ZipVoice (Chinese+English) | Click me | 地址 |
| Voice cloning with Pocket TTS (English) | Click me | 地址 |
Links for pre-built Android APKs
| Description | URL | 中国用户 |
|---|---|---|
| Speaker diarization | Address | 点此 |
| Streaming speech recognition | Address | 点此 |
| Simulated-streaming speech recognition | Address | 点此 |
| Text-to-speech | Address | 点此 |
| Voice activity detection (VAD) | Address | 点此 |
| VAD + non-streaming speech recognition | Address | 点此 |
| Two-pass speech recognition | Address | 点此 |
| Audio tagging | Address | 点此 |
| Audio tagging (WearOS) | Address | 点此 |
| Speaker identification | Address | 点此 |
| Spoken language identification | Address | 点此 |
| Keyword spotting | Address | 点此 |
Links for pre-built Flutter APPs
Real-time speech recognition
| Description | URL | 中国用户 |
|---|---|---|
| Streaming speech recognition | Address | 点此 |
Text-to-speech
| Description | URL | 中国用户 |
|---|---|---|
| Android (arm64-v8a, armeabi-v7a, x86_64) | Address | 点此 |
| Linux (x64) | Address | 点此 |
| macOS (x64) | Address | 点此 |
| macOS (arm64) | Address | 点此 |
| Windows (x64) | Address | 点此 |
Note: You need to build from source for iOS.
Links for pre-built Lazarus APPs
Generating subtitles
| Description | URL | 中国用户 |
|---|---|---|
| Generate subtitles (生成字幕) | Address | 点此 |
Links for pre-trained models
| Description | URL |
|---|---|
| Speech recognition (speech to text, ASR) | Address |
| Text-to-speech (TTS) | Address |
| VAD | Address |
| Keyword spotting | Address |
| Audio tagging | Address |
| Speaker identification (Speaker ID) | Address |
| Spoken language identification (Language ID) | See multi-lingual Whisper ASR models from Speech recognition |
| Punctuation | Address |
| Speaker segmentation | Address |
| Speech enhancement | Address |
| Source separation | Address |
Some pre-trained ASR models (Streaming)
Please see
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/online-transducer/index.html
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/online-paraformer/index.html
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/online-ctc/index.html
for more models. The following table lists only SOME of them.
| Name | Supported Languages | Description |
|---|---|---|
| sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20 | Chinese, English | See also |
| sherpa-onnx-streaming-zipformer-small-bilingual-zh-en-2023-02-16 | Chinese, English | See also |
| sherpa-onnx-streaming-zipformer-zh-14M-2023-02-23 | Chinese | Suitable for Cortex A7 CPU. See also |
| sherpa-onnx-streaming-zipformer-en-20M-2023-02-17 | English | Suitable for Cortex A7 CPU. See also |
| sherpa-onnx-streaming-zipformer-korean-2024-06-16 | Korean | See also |
| sherpa-onnx-streaming-zipformer-fr-2023-04-14 | French | See also |
Some pre-trained ASR models (Non-Streaming)
Please see
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/offline-transducer/index.html
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/offline-paraformer/index.html
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/offline-ctc/index.html
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/telespeech/index.html
- https://k2-fsa.github.io/sherpa/onnx/pretrained_models/whisper/index.html
for more models. The following table lists only SOME of them.
| Name | Supported Languages | Description |
|---|---|---|
| sherpa-onnx-nemo-parakeet-tdt-0.6b-v2-int8 | English | It is converted from https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2 |
| Whisper tiny.en | English | See also |
| Moonshine tiny | English | See also |
| sherpa-onnx-zipformer-ctc-zh-int8-2025-07-03 | Chinese | A Zipformer CTC model |
| sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17 | Chinese, Cantonese, English, Korean, Japanese | 支持多种中文方言. See also |
| sherpa-onnx-paraformer-zh-2024-03-09 | Chinese, English | 也支持多种中文方言. See also |
| sherpa-onnx-zipformer-ja-reazonspeech-2024-08-01 | Japanese | See also |
| sherpa-onnx-nemo-transducer-giga-am-russian-2024-10-24 | Russian | See also |
| sherpa-onnx-nemo-ctc-giga-am-russian-2024-10-24 | Russian | See also |
| sherpa-onnx-zipformer-ru-2024-09-18 | Russian | See also |
| sherpa-onnx-zipformer-korean-2024-06-24 | Korean | See also |
| sherpa-onnx-zipformer-thai-2024-06-20 | Thai | See also |
| sherpa-onnx-telespeech-ctc-int8-zh-2024-06-04 | Chinese | 支持多种方言. See also |
Useful links
- Documentation: https://k2-fsa.github.io/sherpa/onnx/
- Bilibili 演示视频: https://search.bilibili.com/all?keyword=%E6%96%B0%E4%B8%80%E4%BB%A3Kaldi
How to reach us
Please see https://k2-fsa.github.io/sherpa/social-groups.html for 新一代 Kaldi 微信交流群 and QQ 交流群.
Projects using sherpa-onnx
VocaRead
iOS app for reading EPUBs, PDFs, and documents aloud. It uses sherpa-onnx to synthesize speech locally with Piper voices and can import books from OPDS catalogs.
Sherpa Voice / @siteed/sherpa-onnx.rn
React Native wrapper and demo app for validating sherpa-onnx on iOS, Android, and Web, including ASR, TTS, VAD, KWS, speaker ID, diarization, language ID, punctuation, audio tagging, and speech enhancement.
SmartVoice
SmartVoice is a local speech application for speech recognition and text-to-speech. Its
smartvoice-autovirtual model matches each request's task and language against an editable routing table, then dynamically routes it to the most suitable installed model. sherpa-onnx powers CPU inference; a web interface and HTTP API are included.
Speed of Sound
A voice-typing application for the Linux desktop (GTK4/Adwaita). It captures microphone audio, transcribes it offline using Sherpa ONNX ASR models, optionally polishes the text with an LLM, and types the result into the active window via XDG Remote Desktop Portal keyboard simulation.
VoxSherpa TTS
VoxSherpa TTS is a 100% offline Android Text-to-Speech app powered by Sherpa-ONNX. It supports Kokoro-82M, Piper, and VITS engines with multilingual support including Hindi, English, British English, Japanese, Chinese and 50+ more languages.
- Download APK (All Versions)
- Android 11+ · 100% offline · No telemetry
| Generate | Models | Library | Settings |
|---|---|---|---|
BreezeApp from MediaTek Research
BreezeAPP is a mobile AI application developed for both Android and iOS platforms. Users can download it directly from the App Store and enjoy a variety of features offline, including speech-to-text, text-to-speech, text-based chatbot interactions, and image question-answering
| 1 | 2 | 3 |
|---|---|---|
Open-LLM-VTuber
Talk to any LLM with hands-free voice interaction, voice interruption, and Live2D taking face running locally across platforms
See also https://github.com/t41372/Open-LLM-VTuber/pull/50
voiceapi
It shows how to use the ASR and TTS Python APIs with FastAPI.
腾讯会议摸鱼工具 TMSpeech
Uses streaming ASR in C# with graphical user interface.
Video demo in Chinese: 【开源】Windows实时字幕软件(网课/开会必备)
lol互动助手
It uses the JavaScript API of sherpa-onnx along with Electron
Video demo in Chinese: 爆了!炫神教你开打字挂!真正影响胜率的英雄联盟工具!英雄联盟的最后一块拼图!和游戏中的每个人无障碍沟通!
Sherpa-ONNX 语音识别服务器
A server based on nodejs providing Restful API for speech recognition.
QSmartAssistant
一个模块化,全过程可离线,低占用率的对话机器人/智能音箱
It uses QT. Both ASR and TTS are used.
Flutter-EasySpeechRecognition
It extends ./flutter-examples/streaming_asr by downloading models inside the app to reduce the size of the app.
Note: [Team B] Sherpa AI backend also uses sherpa-onnx in a Flutter APP.
sherpa-onnx-unity
sherpa-onnx in Unity. See also #1695, #1892, and #1859
xiaozhi-esp32-server
本项目为xiaozhi-esp32提供后端服务,帮助您快速搭建ESP32设备控制服务器 Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device control server.
See also
KaithemAutomation
Pure Python, GUI-focused home automation/consumer grade SCADA.
It uses TTS from sherpa-onnx. See also ✨ Speak command that uses the new globally configured TTS model.
Open-XiaoAI KWS
Enable custom wake word for XiaoAi Speakers. 让小爱音箱支持自定义唤醒词。
Video demo in Chinese: 小爱同学启动~˶╹ꇴ╹˶!
C++ WebSocket ASR Server
It provides a WebSocket server based on C++ for ASR using sherpa-onnx.
Go WebSocket Server
It provides a WebSocket server based on the Go programming language for sherpa-onnx.
Making robot Paimon, Ep10 "The AI Part 1"
It is a YouTube video, showing how the author tried to use AI so he can have a conversation with Paimon.
It uses sherpa-onnx for speech-to-text and text-to-speech.
| 1 |
|---|
TtsReader - Desktop application
A desktop text-to-speech application built using Kotlin Multiplatform.
MentraOS
Smart glasses OS, with dozens of built-in apps. Users get AI assistant, notifications, translation, screen mirror, captions, and more. Devs get to write 1 app that runs on any pair of smart glasses.
It uses sherpa-onnx for real-time speech recognition on iOS and Android devices. See also https://github.com/Mentra-Community/MentraOS/pull/861
It uses Swift for iOS and Java for Android.
flet_sherpa_onnx
Flet ASR/STT component based on sherpa-onnx. Example a chat box agent
achatbot-go
a multimodal chatbot based on go with sherpa-onnx's speech lib api.
fcitx5-vinput
Local offline voice input plugin for Fcitx5 (Linux input method framework). It uses C++ with offline ASR for speech recognition, supporting push-to-talk, command mode, and optional LLM post-processing.
Video demo in Chinese: fcitx5-vinput
Wake Word
A VS Code extension for hands-free voice-activated coding. It uses sherpa-onnx for real-time keyword spotting (KWS) to detect custom wake phrases and trigger VS Code commands by voice. Audio capture is handled by decibri, a cross-platform Node.js microphone streaming library with prebuilt native binaries.
SmartSub
SmartSub is a local-first cross-platform desktop application for the complete subtitle production pipeline: audio/video transcription, subtitle translation, proofreading, and subtitle burning/muxing.
It natively integrates sherpa-onnx to power three offline ASR engines — FunASR, Qwen3-ASR, and FireRedASR — delivering high-accuracy Chinese and multilingual speech recognition entirely on-device, with no file uploads required.
Fono
Talk to your computer. Fono is an open-source (GPL-3.0), complete voice-AI stack (speech-to-text, text-to-speech, a local LLM, wake word, speaker ID) in one small binary for the Linux, macOS, and Windows desktop. Press a key and speak: it types into any app, answers as a voice assistant, or drives a coding agent.
It uses sherpa-onnx's Supertonic TTS models for text-to-speech, with the Supertonic text frontend ported to Rust. See also #3750, which fixes dropped diacritics in the Supertonic frontend for Romanian, Czech, Polish, Hungarian, Turkish, Vietnamese, and other non-English Latin-script languages.
Domia
Domia is an open-source local AI companion you talk to, living entirely on hardware you own. Each Domia is its own character, with a distinct personality, voice, emotional state, and memory of you and its place — and it acts, not just talks: skills connect it to the real world over MCP, Home Assistant included. Domia nodes form a local peer-to-peer mesh that shares speech and reasoning compute, while room satellites bring each companion into the spaces where you live without giving up its identity. No cloud, no accounts, and no data leaving your network.
Domia runs sherpa-onnx in-process for keyword spotting, voice activity detection, streaming and offline speech recognition, and text-to-speech. Speech engines and models are selected through per-companion configuration, making it easy to match supported sherpa-onnx models to different hardware.
qwen-audio-agent
A realtime full-duplex voice runtime for AI coding agents (Claude Code, Codex, OpenCode, and other ACP agents). It uses sherpa-onnx keyword spotting with the 3M-parameter zh-en transducer model to implement a local voice wake word: the app sleeps on idle but keeps the microphone open, and the wake phrase brings the session back with no cloud calls.
Suflyor
An Android teleprompter that scrolls the script as you read it aloud. It runs two streaming Zipformer models on the phone (Russian small-ru-vosk int8 and English en-2023-06-26) and boosts the words of the script as hotwords with modified beam search. A floating window shows the text over the camera app while it records video.
- Download APK
- Website
- Android 10+ · no internet permission · GPL-3.0
Loud Caption
An open-source Flutter app for Android that turns nearby speech into large, high-contrast captions for people with hearing loss. SenseVoice ASR and Silero VAD run fully on-device through sherpa-onnx's Dart API; translation is optional and also local. No account, analytics, or cloud audio.
- Download APK
- Android 8.0+ · arm64-v8a · MIT (app code)
Recly
An open-source recorder for Galaxy Watch, Android, Apple Watch, iPhone, macOS, and Windows. Recordings go to the user's own Google Drive; there is no Recly server. The Android phone app (which also transcribes Galaxy Watch recordings) and the Windows app use sherpa-onnx for on-device transcription: Silero VAD splits each recording into speech segments, and sherpa-onnx's INT8 export of Qwen3-ASR 0.6B transcribes them. The ~1 GB model is downloaded on demand.
China Unicom 中国联通安卓 App
The Android App (version
>= 12.14.1 (2026.07.28)) usessherpa-onnxKotlin API for keyword spotting.
China Life 中国人寿 App
The Android App (version
>= 3.5.46 (2026.03.23)) usessherpa-onnxKotlin API for keyword spotting.
deepseek-harness
It uses the JavaScript npm package sherpa-onnx-node with SenseVoice for local speech recognition.
akou
An open-source (GPL-3.0-or-later) call and meeting recorder for macOS that transcribes on the machine. It records the microphone and the call audio on two channels, shows a live transcript, and lets a terminal agent such as Claude Code or Codex follow and question the call over MCP. The same core runs as a self-hosted transcription server in Docker.
It runs sherpa-onnx-node in a Bun Worker: silero-vad
splits each channel into speech segments, Parakeet TDT 0.6B v3 (OfflineRecognizer)
or streaming Nemotron (OnlineRecognizer) writes the live transcript, and TitaNet
embeddings (SpeakerEmbeddingExtractor) help tell the speakers on the call apart.
After the call, Parakeet is the fast engine of the final pass and one of the
engines of the fused pass. The larger Qwen3-ASR model runs outside sherpa-onnx, on
llama-server.
bot-reborn
A $4 toy robot driven by an old Android phone, all from one web page in Chrome. sherpa-onnx runs in the page as WebAssembly: Silero VAD decides when someone is actually talking, so only real speech is sent to STT, and an optional keyword spotter (
sherpa-onnx-kws-zipformer-zh-en-3M-2025-12-20) handles the wake word. Both run from one combined build, with the VAD symbols exported from the KWS WebAssembly target.
- Build write-up
- Live page (Chrome on Android)
Voltip
An open-source (AGPL-3.0) push-to-talk dictation app for Windows, macOS, Linux and Android: hold a hotkey, speak, and the text is inserted at the cursor in the focused app. The desktop app uses the sherpa-onnx Rust crate for on-device recognition with SenseVoice and Paraformer, a streaming Zipformer for the live preview while the user speaks, and Silero VAD to trim silence and to split recordings of up to two hours at pauses. Models are downloaded on demand.
Outmake
A free Mac app (Apple silicon, macOS 26) for running open models on the Mac itself. Its Kokoro, Kitten, Piper and Supertonic voices run on sherpa-onnx: the app downloads the osx-arm64 shared build and speaks through
sherpa-onnx-offline-tts, so those voices need no Python.