NOVA-VAD

NOVA-VAD is a lightweight, explainable Voice Activity Detector for noisy real-world audio.

It predicts SPEECH or NO SPEECH and returns a confidence score plus the top audio features that influenced the decision.

GitHub: https://github.com/monishmal3375/nova-vad

X: https://x.com/Nova_vad

Why It Exists

Voice activity detection is the first quality gate for ASR, diarization, call transcription, robotics, edge audio, and realtime voice agents.

Bad VAD can cause:

  • clipped speech
  • false speech segments
  • wasted compute
  • noisy transcripts
  • worse realtime agent behavior

NOVA-VAD is built around a practical wedge: noisy-audio performance, lightweight deployment, and explainable decisions.

Current Benchmark

Tested on 100 held-out noisy-audio files from UrbanSound8K categories such as traffic, sirens, jackhammers, AC units, and construction noise.

These results describe this benchmark setup only.

Model Accuracy Precision Recall F1 Lightweight Explainable
WebRTC VAD 58.0% 57.69% 60.0% 58.82% yes no
Pyannote VAD 62.0% 57.32% 94.0% 71.21% no no
Silero VAD 87.0% 86.27% 88.0% 87.13% no no
NOVA-VAD 93.0% 97.78% 88.0% 92.63% yes yes

Note: the full benchmark environment installs heavier baseline libraries so the repo can compare against them. The NOVA-VAD classifier itself is a feature-based scikit-learn ensemble.

How It Works

raw audio -> denoiser -> 150+ audio features -> ensemble classifier -> prediction + explanation

Feature families include:

  • MFCCs and deltas
  • zero crossing rate
  • RMS energy patterns
  • spectral flux
  • spectral centroid and rolloff
  • harmonic/percussive ratio
  • tempo/rhythm
  • mel spectrogram statistics
  • silence ratio

The current model uses a Random Forest + Gradient Boosting ensemble.

Quick Start

git clone https://github.com/monishmal3375/nova-vad.git
cd nova-vad
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 download_data.py
python3 -m src.pipeline

Explain one prediction:

python3 -m src.explainer data/clean_speech/speech_001.wav

Try your own audio after local models are saved:

python3 -m src.explainer path/to/your_audio.wav

Run benchmark:

python3 -m src.benchmark

Example Output

NOVA-VAD EXPLANATION
File:        speech_001.wav
Prediction:  SPEECH
Confidence:  93.47%

Why this decision was made:
MFCC Delta 1 std      (10.63%) -> HIGH spectral change rate, dynamic audio like speech
MFCC Delta 2 std      ( 6.14%) -> HIGH acceleration, rapidly changing audio
Silence ratio          ( 5.92%) -> mix of speech and pauses
Spectral centroid std  ( 4.27%) -> shifting frequency center
Mel mean               ( 3.50%) -> normal speech level

Limitations

  • The benchmark is scoped to the current noisy-audio test setup.
  • More datasets and real production audio are needed.
  • Streaming support exists but is still being improved.
  • The project is early and packaging is not finished yet.
  • Do not use private call recordings or sensitive speech data without permission.

Contribute

The most useful contributions are hard noisy-audio cases, benchmark results, packaging help, and streaming improvements.

Open an issue or PR on GitHub:

https://github.com/monishmal3375/nova-vad

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

Dataset used to train monishmal0204/nova-vad