vosk
Offline open source speech recognition API based on Kaldi and Vosk
What it is and what it does
Vosk is a Python binding for an offline speech recognition engine based on Kaldi. It transcribes audio to text without sending data to external servers, making it suitable for privacy-sensitive applications, embedded systems, and environments without reliable internet. The package wraps compiled Kaldi models and provides a streaming API that processes audio chunks in real time, returning partial and final transcriptions as they become available.
The toolkit supports 20+ languages and dialects with relatively small model files (around 50 Mb each). It's designed to scale from resource-constrained devices like Raspberry Pi to larger deployments, and includes features like reconfigurable vocabulary and speaker identification. Common use cases include chatbot backends, smart home voice control, video subtitle generation, and lecture transcription.
Use it for:
- Build a voice-controlled chatbot or virtual assistant that processes audio locally without cloud dependency
- Generate subtitles for video or audio recordings by transcribing speech to text offline
- Add voice commands to a Raspberry Pi or embedded Linux device for IoT applications
- Transcribe interviews or lectures with privacy guarantees and no per-minute API costs
- Implement speaker identification or custom vocabulary matching in voice-driven workflows
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Vosk provides offline speech recognition for 20+ languages, enabling real-time transcription via a streaming API without requiring cloud services or internet connectivity.
Yes, if you need offline speech recognition and can tolerate medium install friction and model file management. The permissive license, active maintenance, and lack of known vulnerabilities make it a solid choice for privacy-focused or bandwidth-constrained deployments. Not recommended if you require state-of-the-art accuracy or support for languages beyond the 20+ listed.
Install
vosk on PyPI
pip
pip install voskuv
uv add voskpoetry
poetry add voskInstalling vosk
Before you install
Medium install friction due to platform-specific wheels and compiled dependencies via cffi. Active maintenance with recent commits and strong community engagement (15056 GitHub stars), though the latest release was 2022-12-14.
License in practice
Licensed under Apache Software License (permissive), allowing commercial and private use with minimal restrictions—suitable for most production and proprietary projects.
Quickstart
pip install vosk
import vosk
from vosk import Model, KaldiRecognizer
model = Model(lang="en-us")
recognizer = KaldiRecognizer(model, samplerate)
Requires a Vosk model file (approximately 50 Mb per language) to be downloaded separately and available on disk; audio input source must be configured.
Verify before relying
- Whether models for all 20+ languages are actively maintained and available for download
- Performance characteristics (latency, accuracy) compared to cloud-based alternatives
- Exact sample rate and audio format requirements for the streaming API
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 5 — cffi, requests, tqdm, srt, websockets |
| Maintenance | actively maintained — 1,339 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 677,961/month — #5,379 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: vosk-0.3.45-py3-none-linux_armv7l.whl; vosk-0.3.45-py3-none-manylinux2014_aarch64.whl; vosk-0.3.45-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl; vosk-0.3.45-py3-none-win_amd64.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
SpeechRecognitionPerforms speech recognition and transcription…
permissive · top 5,000 on PyPI
openai-whisperWhisper performs multilingual speech…
permissive · top 5,000 on PyPI
qwen-asrQwen3-ASR provides speech recognition and…
permissive · top 15,000 on PyPI
sherpa-onnxSherpa-onnx runs speech recognition,…
permissive · top 15,000 on PyPI
deepgram-sdkOfficial Python SDK for Deepgram's speech…
permissive · top 5,000 on PyPI
livekit-plugins-sonioxIntegrates Soniox speech-to-text and…
permissive · top 15,000 on PyPI
qwen-ttsQwen-TTS generates speech from text using…
permissive · top 15,000 on PyPI
pocketsphinxPocketSphinx provides Python bindings for…
permissive · top 15,000 on PyPI
sherpa-onnx-coresherpa-onnx-core provides pre-built ONNX…
permissive · top 15,000 on PyPI
vokativConverts Czech given names and surnames into…
permissive · top 15,000 on PyPI