webrtcvad
Python interface to the Google WebRTC Voice Activity Detector (VAD)
What it is and what it does
webrtcvad is a Python binding to Google's WebRTC Voice Activity Detector, a classifier that determines whether short audio frames contain speech or silence. It accepts 16-bit mono PCM audio at fixed sample rates (8000, 16000, or 32000 Hz) in frames of 10, 20, or 30 milliseconds, and returns a boolean indicating whether speech is present. The detector supports aggressiveness levels (0–3) to tune sensitivity.
The package is used in speech recognition pipelines, telephony systems, and audio preprocessing workflows where you need to filter out silence or identify speech segments before further processing. It wraps a mature, well-regarded algorithm from the WebRTC project, but the Python wrapper itself has not been updated since 2017-01-07, creating uncertainty about compatibility with modern Python toolchains and whether better-maintained alternatives now exist.
Use it for:
- Preprocessing audio streams for automatic speech recognition by filtering out silence before sending to a speech-to-text service.
- Segmenting recorded phone calls or voice messages to extract only the voiced portions for analysis or transcription.
- Real-time voice activity detection in VoIP or conferencing applications to trigger recording or transmission only when speech is detected.
- Training or evaluating speech detection models by labeling audio data as voiced or unvoiced at the frame level.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a Python interface to Google's WebRTC Voice Activity Detector, classifying audio frames as voiced or unvoiced for speech recognition and telephony applications.
Yes, with conditions. The underlying WebRTC VAD algorithm is mature and well-regarded. However, high install friction (compiled extension), dormancy since 2017-01-07, and uncertainty about modern Python compatibility mean you should verify it builds on your target platform and consider whether a more recently maintained alternative better suits your needs before committing.
Install
webrtcvad on PyPI
pip
pip install webrtcvaduv
uv add webrtcvadpoetry
poetry add webrtcvadInstalling webrtcvad
Before you install
High install friction due to compiled C extension dependency (webrtcvad-2.0.10.tar.gz). The package is dormant—last release was 2017-01-07, over 3506 days ago—with no recent maintenance activity, though the repository remains active with 2497 stars.
License in practice
MIT license (permissive) imposes no significant restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install webrtcvad
import webrtcvad
vad = webrtcvad.Vad(1)
sample_rate = 16000
frame = b'\x00\x00' * (sample_rate * 10 // 1000)
result = vad.is_speech(frame, sample_rate)
Requires 16-bit mono PCM audio at 8000, 16000, or 32000 Hz; frame duration must be 10, 20, or 30 ms. Compilation of C extension may require build tools and development headers.
Verify before relying
- Whether the package builds successfully on modern Python versions despite classifiers only listing up to 3.5.
- Whether pre-built wheels are available to avoid compilation friction on common platforms.
- Current real-world accuracy and performance compared to more recently maintained VAD alternatives.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 3,506 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 480,417/month — #6,430 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: webrtcvad-2.0.10.tar.gz
Keywords: speechrecognition, asr, voiceactivitydetection, vad, webrtc
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
pymicro-vadA self-contained voice activity detector that…
permissive · top 15,000 on PyPI
silero-vadSilero VAD detects speech activity in audio…
permissive · top 5,000 on PyPI
webrtcvad-wheelsDetects voiced versus unvoiced segments in…
permissive · top 15,000 on PyPI
python_speech_featuresExtracts speech features from audio signals for…
permissive · top 15,000 on PyPI
realtimesttRealtimeSTT converts speech from microphone or…
permissive · top 15,000 on PyPI
aic-sdkPython bindings for ai-coustics audio…
permissive · top 15,000 on PyPI
streamlit-webrtcAdds real-time video and audio streaming over…
permissive · top 15,000 on PyPI
pyrnnoisePython bindings for RNNoise that perform…
unclear · top 15,000 on PyPI
pytgcallsEnables Python bots to join Telegram voice…
copyleft · top 5,000 on PyPI
voip-utilsProvides Voice over IP utilities for Home…
permissive · top 15,000 on PyPI