Open-source speech recognition toolkit for offline and streaming ASR, with VAD, punctuation, speaker labels and OpenAI-compatible serving.
k2-fsa/sherpa
A PyTorch-based speech-to-text inference framework for deploying pre-trained transducer and CTC end-to-end ASR models, with C++ and Python APIs.
- Stars
- 1,011
- Forks
- 152
- Open issues
- 110
- Last commit
- 15 hours ago
What is it?
sherpa is an inference framework for speech recognition built on PyTorch. It focuses exclusively on end-to-end models, namely transducer-based and CTC-based architectures, and is aimed at deployment: running pre-trained models to transcribe speech rather than training them.
The project provides both C++ and Python APIs. It is part of the next-gen Kaldi ecosystem, and training or fine-tuning is handled by the separate icefall project. A WebSocket-based server is included for serving recognition over the network.
For deployments that should not depend on PyTorch, the same authors maintain sherpa-onnx and sherpa-ncnn, which also target iOS, Android and embedded systems.
Key features
- 01Supports transducer- and CTC-based end-to-end speech recognition models.
- 02Provides both C++ and Python APIs.
- 03Includes a WebSocket server for network-based transcription.
- 04Built on PyTorch for running pre-trained models.
Use cases
- Deploying a pre-trained speech recognition model as a streaming service over WebSocket.
- Adding offline or online speech-to-text to a Python or C++ application.
- Comparing a PyTorch-based deployment path against the ONNX or ncnn variants from the same project family.
Quick start
- 1
Open the documentation for installation and usage instructions
- 2
Or try it in the browser without installing anything
Things to know
- It focuses only on transducer and CTC end-to-end models, not other model types.
- It is for deployment and inference only; training or fine-tuning requires the separate icefall project.
Topics
FAQ
- What is sherpa?
- A PyTorch-based speech-to-text inference framework for deploying pre-trained transducer and CTC end-to-end ASR models, with C++ and Python APIs. sherpa is an inference framework for speech recognition built on PyTorch. It focuses exclusively on end-to-end models, namely transducer-based and CTC-based architectures, and is aimed at deployment: running pre-trained models to transcribe speech rather than training them.
- Is sherpa free to use? What license does it have?
- sherpa is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is sherpa still maintained?
- Actively maintained. The last commit to sherpa was on Oct 20, 2026.
- What can I use sherpa for?
- Deploying a pre-trained speech recognition model as a streaming service over WebSocket. Adding offline or online speech-to-text to a Python or C++ application. Comparing a PyTorch-based deployment path against the ONNX or ncnn variants from the same project family.
- How do I install sherpa?
- Open the documentation for installation and usage instructions Or try it in the browser without installing anything
- Where can I get sherpa?
- The source code and installation instructions are on GitHub: https://github.com/k2-fsa/sherpa
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
General-purpose speech recognition model that transcribes, translates and identifies the language of audio across many languages.
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.
NVIDIA's open-source toolkit for building, fine-tuning and deploying speech AI models, covering speech recognition (ASR), text-to-speech (TTS) and speech LLMs.
An end-to-end open source platform for building and deploying machine learning models, with Python and C++ APIs.
Model-definition framework for state-of-the-art text, vision, audio and multimodal machine learning models, for inference and training.