--- license: mit tags: - audio - voice-activity-detection - vad - speech - explainable-ai - noisy-audio datasets: - danavery/urbansound8K language: - en --- # 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 ```text 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 ```bash 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: ```bash python3 -m src.explainer data/clean_speech/speech_001.wav ``` Try your own audio after local models are saved: ```bash python3 -m src.explainer path/to/your_audio.wav ``` Run benchmark: ```bash python3 -m src.benchmark ``` ## Example Output ```text 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