This release is a pre-release and may not be stable for production use.
vadonnx
Load arbitrary Voice Activity Detection models behind a single, unified API. Every model runs through ONNX Runtime. You get one streaming and batch interface, one audio-format story, and pluggable models.
from vadonnx import load_vad
vad = load_vad("silero") # bundled, works fully offline
prob = vad.process_chunk(pcm_bytes) # streaming → float in [0, 1]
segments = vad.get_speech_segments(audio, sample_rate=16000)
# -> [SpeechSegment(start=0.32, end=2.27), SpeechSegment(start=3.27, end=4.45), ...]
Why
Every VAD ships its own loader, audio format, feature pipeline, and state handling.
vadonnx hides that behind one VADModel interface. Feed it audio (raw int16
bytes, numpy arrays, any sample rate) and get back per-frame speech probabilities or
ready-made speech segments. An IOSignature describes each
model declaratively, so a single generic engine drives most of them, and you can point
the same API at any custom .onnx file.
- Lightweight runtime: only
numpy,onnxruntime, andhuggingface_hub. - Offline by default: a small Silero model is bundled in the wheel.
- Streaming and batch:
process_chunk()for live audio,get_speech_segments()andprobabilities()for whole buffers. - Bring your own model: load any ONNX VAD by path or URL with a signature.
- Extensible: third parties register backends and models through entry points.
Install
uv pip install vadonnx # runtime (numpy + onnxruntime + huggingface_hub)
uv pip install "vadonnx[mic]" # + microphone examples
Models
| name | rate | parity vs upstream | notes |
|---|---|---|---|
silero / silero-8k / silero-op15 |
16k / 8k / 16k | MAE 0 | bundled default, raw PCM |
marblenet / marblenet-int8 |
16k | MAE 4e-4 | NVIDIA NeMo Frame-VAD, multilingual (license) |
pyannote / pyannote-int8 |
16k | MAE 0 | pyannote segmentation-3.0, windowed |
fsmn / fsmn-quant |
16k | tracks upstream | FunASR FSMN-VAD, needs vadonnx[fsmn] (license) |
speechbrain |
16k | MAE 0 | SpeechBrain CRDNN, LibriParty-trained |
ten |
16k | n/a | feature extractor provided by TEN's native library (license, not permissive) |
pulsevad / pulsevad-fp32 / pulsevad-81k |
16k | MAE 2e-4 / 1.5e-7 / 2.4e-7 | PulseVAD tiny causal CNN, 200 ms windows |
See docs/backends.md for per-model detail and the benchmark for measured comparisons across datasets, including WebRTC and energy baselines.
Models other than the bundled Silero are downloaded on first use from the
TigreGotico HuggingFace org and cached under
$XDG_DATA_HOME/vadonnx. The PulseVAD models download from a pinned commit of the
upstream GitHub repository, and a sha256 digest checks each file. See docs/backends.md for per-model detail
and parity notes.
CLI
vadonnx list # list available models
vadonnx probe silero # print a model's ONNX input/output signature
vadonnx segment speech.wav # print detected speech segments of a WAV
Documentation
- Quickstart
- Streaming
- Custom models &
IOSignature - Backends & parity notes
- Plugins
- Model conversion
- Licensing
- API reference
Related projects
- TigreGotico/phoonnx: multilingual phonemization and ONNX text-to-speech, the TTS counterpart to
vadonnx. - TigreGotico/onnx-asr: offline speech recognition on ONNX models.
License
Apache-2.0. Bundled and downloaded model weights retain their upstream licenses. See docs/licensing.md.
Release files for vadonnx 0.2.2a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vadonnx-0.2.2a1.tar.gz | 2.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vadonnx-0.2.2a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.3 MB
Release files / vadonnx-0.2.2a1.tar.gz
| Download URL | vadonnx-0.2.2a1.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77f171747cca94a6be0e025571cd31b4d40e05246d8fa7e480c07f7f357d00c7
|
|
BLAKE2b-256 checksum How to use checksums |
4b0b7113a595a3180e173842e7a5e3323a6a7c47ce36aacb4090aea4b29d94b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / vadonnx-0.2.2a1-py3-none-any.whl
| Download URL | vadonnx-0.2.2a1-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c07ac355cbb6a3a3bf10ddbb6eb893ac97b95f60e6c944692d002248e69ac1dd
|
|
BLAKE2b-256 checksum How to use checksums |
2b3fbd440f0ed0a9b41b4a1de4d8667e2d844d9ee12717f76244c03073c34d17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|