C/C++ port of OpenAI's Whisper speech recognition model for fast, offline, dependency-free speech-to-text on CPU and GPU.
k2-fsa/sherpa-onnx
Offline speech toolkit using onnxruntime for speech recognition, text-to-speech, VAD, diarization and more, across many platforms and languages.
- Stars
- 15,398
- Forks
- 1,802
- Open issues
- 647
- Last commit
- 9 hours ago
What is it?
sherpa-onnx is a toolkit for running speech models locally without an internet connection. It covers speech-to-text (both streaming and non-streaming), text-to-speech, speaker diarization, speaker identification and verification, spoken language identification, audio tagging, voice activity detection, keyword spotting, punctuation, speech enhancement and source separation. Models are run through onnxruntime, and the project is part of the next-generation Kaldi ecosystem.
The same engine targets a wide range of hardware, including x86 and ARM servers, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V boards and several NPUs such as Rockchip RKNN, Qualcomm QNN, Ascend and Axera. It also builds for WebAssembly, Flutter and Tauri, and offers a WebSocket server and client.
Bindings are provided for C++, C, Python, Go, C#, Java, Kotlin, JavaScript, Swift, Rust, Dart and Pascal, so developers can embed offline speech features in apps, embedded devices or backend services.
Key features
- 01Offline speech recognition in both streaming and non-streaming modes
- 02Text-to-speech, speaker diarization, and VAD in one toolkit
- 03Runs on onnxruntime across x86, ARM, RISC-V, and several NPUs
- 04Ships a WebSocket server and client for network use
- 05Bindings for 12 programming languages plus WebAssembly
Use cases
- Adding offline voice input or subtitles to a mobile or desktop app
- Running speech recognition on a Raspberry Pi or other embedded board
- Building a self-hosted speech service exposed over WebSocket
- Embedding keyword spotting or wake words in a device
Quick start
- 1
Try it in a browser using the Hugging Face spaces listed in the README
Topics
FAQ
- What is sherpa-onnx?
- Offline speech toolkit using onnxruntime for speech recognition, text-to-speech, VAD, diarization and more, across many platforms and languages. sherpa-onnx is a toolkit for running speech models locally without an internet connection. It covers speech-to-text (both streaming and non-streaming), text-to-speech, speaker diarization, speaker identification and verification, spoken language identification, audio tagging, voice activity detection, keyword spotting, punctuation, speech enhancement and source separation. Models are run through onnxruntime, and the project is part of the next-generation Kaldi ecosystem.
- Is sherpa-onnx free to use? What license does it have?
- sherpa-onnx is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is sherpa-onnx still maintained?
- Actively maintained. The last commit to sherpa-onnx was on Oct 20, 2026.
- What can I use sherpa-onnx for?
- Adding offline voice input or subtitles to a mobile or desktop app Running speech recognition on a Raspberry Pi or other embedded board Building a self-hosted speech service exposed over WebSocket Embedding keyword spotting or wake words in a device
- How do I install sherpa-onnx?
- Try it in a browser using the Hugging Face spaces listed in the README
- Where can I get sherpa-onnx?
- The source code and installation instructions are on GitHub: https://github.com/k2-fsa/sherpa-onnx
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An agent framework that connects digital humans (2.5D, 3D, mobile, PC, web) and LLMs (OpenAI-compatible, DeepSeek) to business systems.
Open source on-device toolkit for speech-to-text, intent recognition and text-to-speech, aimed at real-time voice agents and apps.
Linux desktop and Sailfish OS app for note taking, reading and translating with offline speech-to-text, text-to-speech and machine translation.
Open-source voice AI family from Microsoft, with long-form speech recognition (ASR), multi-speaker text-to-speech (TTS), and real-time streaming TTS models.
An Android and iOS app from Google AI Edge for trying open-source LLMs and on-device GenAI use cases offline on your phone.