One recorder, ten speech engines, all the audio glue included
RealtimeSTT wraps the messy plumbing of voice activity detection, audio chunking, and engine swapping behind a single Python recorder class.

What it does
RealtimeSTT is a Python library that turns live microphone or streamed audio into text through a single AudioToTextRecorder class. It handles voice activity detection, resampling, and real-time transcription loops so you don’t have to wire audio capture to speech recognition yourself. The target use cases are voice assistants, dictation tools, and browser streaming prototypes that need live text with minimal boilerplate.
The interesting bit The library does not lock you into one model. It supports a broad roster of engines—faster-whisper by default, but also Kroko-ONNX, Moonshine, sherpa-onnx, and several others—letting you swap backends without rewriting your audio pipeline. It also bakes in optional wake-word activation via Porcupine or OpenWakeWord, turning it from a simple transcriber into a hands-free trigger system.
Key highlights
- Pluggable engine stack: faster-whisper, whisper.cpp, Kroko-ONNX, Moonshine, and more, selectable at initialization.
- Built-in VAD using WebRTC or Silero, plus optional wake-word detection.
- Accepts live microphone input or external 16-bit mono PCM chunks from files, websockets, or other processes.
- Includes a FastAPI browser streaming server example with multi-user session isolation (available via source checkout only).
- Exposes event callbacks for recording state, VAD, realtime partial text, and transcription completion.
Caveats
- Uses multiprocessing for model work, so scripts need an
if __name__ == "__main__"guard—especially on Windows. - The FastAPI reference server is not shipped in the PyPI wheel; you need a source checkout to use it.
- Needs system-level PortAudio headers on Linux and macOS.
Verdict A solid fit for developers prototyping voice assistants or dictation tools who want to test multiple STT engines without rebuilding audio pipelines. Less useful if you already have a mature audio stack and only need a thin transcription API.
Frequently asked
- What is KoljaB/RealtimeSTT?
- RealtimeSTT wraps the messy plumbing of voice activity detection, audio chunking, and engine swapping behind a single Python recorder class.
- Is RealtimeSTT open source?
- Yes — KoljaB/RealtimeSTT is open source, released under the MIT license.
- What language is RealtimeSTT written in?
- KoljaB/RealtimeSTT is primarily written in Python.
- How popular is RealtimeSTT?
- KoljaB/RealtimeSTT has 10.2k stars on GitHub.
- Where can I find RealtimeSTT?
- KoljaB/RealtimeSTT is on GitHub at https://github.com/KoljaB/RealtimeSTT.