Silero VAD for BirdNET-Go

Unmodified re-host of the Silero VAD weights (release v6.2.1, commit 7e30209), packaged with an interface spec and checksums for use as a privacy filter in BirdNET-Go: detecting human speech in soundscape recordings so those windows can be discarded or anonymized before storage.

Silero VAD is a small streaming voice activity detector. It emits a per-window speech probability and never transcribes, so it is a good fit for a privacy gate: it answers "is someone speaking" without ever recording what was said.

Why this model for BirdNET-Go

  • Tiny (1.3 to 2.3 MB) and MIT licensed, no telemetry or keys.
  • Runs on onnxruntime, which BirdNET-Go already links for the Perch v2 and BirdNET v3.0 models, so it adds no new runtime dependency.
  • Negligible CPU cost: under 1 ms per 30 ms window on a single thread.

Files

File Role Size Opset / IR Sample rates
silero_vad.onnx primary, recommended 2.3 MB 16 / 8 16 k + 8 k
silero_vad_16k_op15.onnx compact, 16 k only 1.3 MB 15 / 8 16 k
silero_vad_op18_ifless.onnx mobile / delegate builds 2.8 MB 18 / 10 16 k + 8 k
silero_vad.jit TorchScript reference 2.3 MB n/a 16 k + 8 k

For BirdNET-Go on CPU use silero_vad.onnx. The op18_ifless variant removes almost all If control-flow nodes for hardware delegates (NNAPI, CoreML) that cannot run subgraphs, but its IR 10 needs onnxruntime >= 1.17. metadata.json carries per-file sizes, sha256, opset, and IR version in machine-readable form.

Interface

Stateful streaming model. Reset state to zeros per independent stream, feed one fixed window at a time, and thread the returned state forward.

Inputs

  • input float32 [1, samples] mono PCM in [-1, 1]; samples = 512 at 16 kHz or 256 at 8 kHz (a 32 ms window).
  • state float32 [2, 1, 128] LSTM state; zeros to start, then the previous stateN.
  • sr int64 scalar, 16000 or 8000.

Outputs

  • output float32 [1, 1] speech probability in [0, 1].
  • stateN float32 [2, 1, 128] state to carry into the next call.

BirdNET-Go runs audio at 48 kHz. Resample to 16 kHz and feed exact 512-sample windows. Off-spec window sizes may execute but yield unreliable scores, so use the trained sizes only.

Thresholding

Higher probability means more likely speech. Upstream default is 0.5. Wire the probability onto BirdNET-Go's existing PrivacyFilter.Confidence setting and bias conservative (a lower threshold) for a privacy gate, so borderline speech is filtered rather than leaked.

Caveat: some bird vocalizations have speech-like harmonic structure and can raise the score. Field-test false-positive behavior against real soundscapes before trusting this as a privacy gate.

Verification

All three ONNX files pass onnx.checker (full check) and an onnxruntime CPUExecutionProvider smoke test (onnx 1.22.0, onnxruntime 1.27.0). See SHA256SUMS for integrity and metadata.json for the full review.

License and attribution

MIT, unchanged from upstream. All credit to the Silero Team. The original weights and code are at https://github.com/snakers4/silero-vad. This repository only re-hosts the released artifacts with integration metadata; the model itself is not modified.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support