Repolode
k2-fsa

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. 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