pymicro-vad
Self-contained voice activity detector
What it is and what it does
pymicro-vad is a lightweight, self-contained voice activity detector built on machine learning architecture from microWakeWord. It takes small chunks of audio (10ms at a time) and returns a probability score indicating whether that chunk contains speech or silence. The detector is designed to run locally without external dependencies or network calls, making it suitable for embedded systems, edge devices, or applications where low latency and offline operation are important.
You feed it raw 16-bit mono PCM audio at 16kHz sample rate, 160 samples per call (exactly 10ms), and it returns a speech probability. Scores below zero indicate the detector needs more audio to make a decision, scores above your chosen threshold indicate speech, and scores in between indicate silence. The package ships with pre-compiled wheels for common Linux platforms, though building from source requires python3-dev and build-essential.
Use it for:
- Real-time speech detection in voice assistant applications to trigger wake-word detection only when speech is present.
- Audio preprocessing in transcription pipelines to skip silence and reduce processing of non-speech segments.
- Endpoint detection in voice recording applications to automatically stop recording when silence is detected.
- Edge device deployment where a lightweight, offline VAD is needed without cloud dependencies.
- Audio stream filtering in IoT devices or embedded systems with limited computational resources.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A self-contained voice activity detector that processes 10ms chunks of 16-bit mono PCM audio at 16kHz and returns a speech probability score to classify audio as speech or silence.
Yes, if you need a lightweight, offline voice activity detector for real-time audio processing. The package is actively maintained, has no known vulnerabilities, uses a permissive license, and provides pre-built wheels for common platforms. The main constraint is the strict audio format requirement (10ms chunks of 16-bit mono PCM at 16kHz), which you must handle yourself.
Install
pymicro-vad on PyPI
pip
pip install pymicro-vaduv
uv add pymicro-vadpoetry
poetry add pymicro-vadInstalling pymicro-vad
Before you install
Medium install friction due to compiled wheels; the package provides pre-built binaries for x86_64 and aarch64 on manylinux platforms. Actively maintained with a recent release.
License in practice
Licensed under Apache (permissive), so you can use it freely in commercial and open-source projects without copyleft obligations.
Quickstart
pip install pymicro-vad
from pymicro_vad import MicroVad
vad = MicroVad()
threshold = 0.5
# Process 10ms chunks of 16-bit mono PCM @16kHz
while audio := get_10ms_of_audio():
speech_prob = vad.process_10ms(audio)
if speech_prob > threshold:
print("Speech detected")
Requires Python 3.9+; audio input must be exactly 160 samples (10ms at 16kHz) of 16-bit mono PCM data per call.
Verify before relying
- Whether the model weights are included in the wheel or downloaded separately on first use.
- Latency and CPU overhead of processing 10ms chunks in real-time scenarios.
- Accuracy of speech detection across different acoustic environments and speaker profiles.
Package facts
| License | Apache (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 46 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 119,537/month — #12,068 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pymicro_vad-2.1.0-cp39-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; pymicro_vad-2.1.0-cp39-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
webrtcvadProvides a Python interface to Google's WebRTC…
permissive · top 15,000 on PyPI
webrtcvad-wheelsDetects voiced versus unvoiced segments in…
permissive · top 15,000 on PyPI
pyrnnoisePython bindings for RNNoise that perform…
unclear · top 15,000 on PyPI
silero-vadSilero VAD detects speech activity in audio…
permissive · top 5,000 on PyPI
pvporcupinePorcupine is a lightweight wake word detection…
permissive · top 15,000 on PyPI
realtimesttRealtimeSTT converts speech from microphone or…
permissive · top 15,000 on PyPI
openwakewordopenWakeWord detects wake words and phrases in…
permissive · top 15,000 on PyPI
aic-sdkPython bindings for ai-coustics audio…
permissive · top 15,000 on PyPI
whisper-timestampedAdds word-level timestamps and confidence…
copyleft · top 15,000 on PyPI
livekit-plugins-turn-detectorDetects end-of-turn in voice conversations for…
permissive · top 5,000 on PyPI