RealtimeSTT
A Python speech-to-text library transcribes audio locally, with live text updates, wake word activation and an optional self-hosted server.
RealtimeSTT is a Python library for developers building voice assistants, dictation tools and apps that turn live audio into text. It can show text while someone speaks and produce a final transcript when they finish.
- Live transcription: Receive text updates during speech and a completed transcript afterward, with a choice of recognition engines.
- Speech detection and wake words: Detect speech with WebRTC VAD or Silero VAD, and activate listening through Porcupine or OpenWakeWord.
- Microphone and streamed audio: Transcribe microphone input or audio supplied by an application, file or stream, with callbacks for text and recording events.
- Self-hosted speech API: Use the optional FastAPI server to provide authenticated HTTP and WebSocket transcription, with separate sessions for clients and a browser streaming reference app.
The library runs locally on Windows, macOS and Linux. Its default recognition engine is faster-whisper, which is also the recommended CUDA GPU backend. For CPU streaming on Linux x86-64, the recommended sherpa-onnx pairing uses Nemotron for live text and Parakeet for final transcripts. Kroko-ONNX is another supported local streaming engine.
RealtimeSTT is free and open source under the MIT license. Optional engines require their own dependencies and models; engine and model licenses can differ from the library's MIT license, including Kroko/Banafo's commercial model options.