- Code licence versus model licence
- These are engines, not apps
- Ten tools, grouped by what you run
- The ten projects, one line each
- What you run, side by side
- Questions to settle before you self-host speech recognition
- Honest advice on where to start
- When a hosted service makes more sense
- Frequently asked questions
Open source speech to text tools let you transcribe audio on your own machine or server, but they're engines and toolkits, not finished apps, so you'll want some technical comfort or a developer. Check the licence on the models you load as well as the code, because the two don't always match.
The licence badge on a speech recognition project usually covers the code. It doesn't always cover the models or helper files the code downloads, and those are what turn audio into text.
That's the decision this page starts from, before features. Below are ten open source tools grouped by what you run: an engine, a wrapper or server, an on-device runtime, or a training toolkit. They're in no particular order, with no accuracy league table, because no benchmark here was checked independently.
Code licence versus model licence
Most projects here are MIT, Apache 2.0 or BSD for their code, which are permissive licences you can build into a product. The models are a separate question. One on-device toolkit on this list is MIT for its code and most models, but its older non-streaming models for Arabic, Japanese, Korean, Mandarin, Spanish, Ukrainian and Vietnamese sit under a non-commercial community licence. One alignment add-on is BSD-2-Clause, yet its speaker labels need a Hugging Face token and acceptance of a separate model agreement. And a big training toolkit is Apache 2.0, while its individual pretrained models carry their own terms.
So read the model licence for the exact language and feature you plan to ship, not just the repository badge. If you only transcribe your own meetings, this rarely bites. If you're building a product, it decides what you can sell.
These are engines, not apps
None of these is a desktop app you double-click and dictate into. You install them from a terminal, choose a model and feed them audio, or you run a server and call it from your own software. If that sounds like more than you want, a hosted service or desktop app is the better fit, and our guide to AI transcription software covers those.
Ten tools, grouped by what you run
Engines you run on your own machine
whisper.cpp runs Whisper models in C and C++ without a Python stack. faster-whisper reimplements Whisper on CTranslate2 and claims up to four times the speed of the original at the same accuracy (the project's claim). OpenAI Whisper is the reference model itself, with code and weights under MIT. Vosk is an offline toolkit with small models, a streaming API and bindings for many languages.
Add-ons and servers that wrap an engine
WhisperX adds word-level timestamps and speaker labels on top of Whisper. Speaches runs as a self-hosted server with an OpenAI-compatible API, so tools built for that API can point at your own machine; it's moving more slowly than the others, with its last commit in Apr 2026.
On-device runtimes for apps and agents
sherpa-onnx brings recognition, diarization, keyword spotting and voice activity detection together through ONNX Runtime, offline. Moonshine is built for real-time voice agents, with streaming models that run on the device.
Toolkits for training your own models
SpeechBrain is a PyTorch toolkit with tutorials and recipes for building speech models. NVIDIA NeMo is a GPU-oriented toolkit for building and fine-tuning speech AI, under Apache 2.0, with each pretrained model's terms to check separately.
The ten projects, one line each
faster-whisper
Best for: Python developers who want Whisper models running faster and in less memory on the CTranslate2 engine, with 8-bit quantization, per the project's own claim.
Moonshine
Best for: Builders of real-time voice agents who want streaming speech-to-text that runs on-device, with no account or API keys, as the project describes it.
NVIDIA NeMo
Best for: Machine learning teams with GPUs who want to build and fine-tune their own speech recognition models under an Apache 2.0 toolkit.
OpenAI Whisper
Best for: Developers wanting the general-purpose reference model for multilingual transcription, translation and language identification, with code and weights both under MIT.
sherpa-onnx
Best for: App makers needing offline speech recognition alongside diarization, keyword spotting and voice activity detection through ONNX Runtime, without an internet connection.
Speaches
Best for: Teams wanting a self-hosted server with an OpenAI-compatible API for streaming transcription and translation, so existing SDKs can point at their own machine.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
SpeechBrain
Best for: Researchers and developers building speech recognition and related models in PyTorch, using its tutorials and recipes.
Vosk
Best for: Developers working in Python, Java, Node.js, C#, C++, Rust or Go who want small offline models with a streaming API.
whisper.cpp
Best for: Desktop and embedded projects that want Whisper speech recognition running locally in C and C++, with no Python stack to install.
WhisperX
Best for: Transcription projects needing word-level timestamps and multi-speaker labels on top of Whisper, through forced alignment and pyannote-audio.
What you run, side by side
| Tool | What you run | Good for |
|---|---|---|
| faster-whisper | Python Whisper engine | Whisper models in less memory on CTranslate2 |
| Moonshine | On-device streaming models | Real-time voice agents with on-device models |
| NVIDIA NeMo | GPU training toolkit | Building and fine-tuning speech AI models |
| OpenAI Whisper | Reference model | Multilingual transcription, translation and language detection |
| sherpa-onnx | Multi-platform ONNX runtime | Offline recognition, diarization and keyword spotting |
| Speaches | Self-hosted API server | An OpenAI-style transcription API on your own server |
| SpeechBrain | Research and training toolkit | PyTorch recipes for building speech models |
| Vosk | Offline streaming toolkit | Small offline models with a streaming API |
| whisper.cpp | Local C/C++ engine | Running Whisper locally without a Python stack |
| WhisperX | Timestamps and speakers | Word-level timestamps and speaker labels |
Questions to settle before you self-host speech recognition
- Which languages do you need? Check the model you'd load covers them, and check that model's licence, not just the code's.
- Batch or live? Transcribing recordings overnight and captioning a live call need different tools and different hardware.
- Do you need speaker labels? Diarization often depends on extra models with their own agreements.
- Where will audio be stored? Running locally keeps recordings off third-party servers, but you're responsible for securing them. Data protection rules vary by country, so check with your regulator.
- Is the project active? Look at the last commit date on the repository before building on it.
- Who maintains it? A self-hosted engine needs someone to update models and dependencies.
Honest advice on where to start
If you're a developer who wants to transcribe your own recordings, start with one of the ready-to-run engines on your own machine and a mid-sized model, and only add timestamps, speaker labels or a server once the basic transcripts are good enough for your use. If you're building a product, read every model licence before you write a line of code. And if you're training your own models, you'll already know whether you need a research toolkit or a GPU one.
When a hosted service makes more sense
Self-hosting suits people who want audio kept in-house, have repeat volume or need to build speech into their own software. If you transcribe the odd interview or meeting, a hosted app will save you set-up and upkeep. For pulling transcripts from video, our list of YouTube transcript generators covers a simpler route.
Do you make a speech to text engine, model or toolkit? Tool makers can ask to be considered for a featured place on this list.
Want your tool on this list? Featured spots and reviews here are paid partnerships. Here's how to partner with me.
Frequently asked questions
Is open source speech to text free to use?
The code is free to use under its licence, but running it takes effort and hardware. You install it, pick models, keep dependencies updated and secure the audio yourself.
Does an MIT or Apache licence cover the speech models too?
Not always. Some projects license their code permissively while certain models sit under different terms, including non-commercial ones. Check the licence for the exact model you load.
Can I run speech to text offline?
Yes. Several engines and runtimes here run entirely on your own machine or device with no internet connection once the models are downloaded.
How do I get speaker labels in an open source transcript?
You need a diarization step on top of transcription. Some add-ons provide it, but they may require extra model downloads, a token and acceptance of a separate model agreement.
Can I use an open source server instead of a hosted transcription API?
Yes. A self-hosted server with an OpenAI-compatible API lets software written for that API point at your own machine instead, though you take on the hosting and upkeep.
Do I need a GPU for open source speech recognition?
Not always. Some engines are built to run on ordinary CPUs and small devices, while training and fine-tuning toolkits generally expect GPUs. Match the tool to the hardware you have.


