SKILL.md
Voice Activity Detection (VAD)
Overview
Voice Activity Detection identifies which parts of an audio signal contain speech versus silence or background noise. This is a critical first step in speaker diarization pipelines.
When to Use
- Preprocessing audio before speaker diarization
- Filtering out silence and noise
- Segmenting audio into speech chunks
- Improving diarization accuracy by focusing on speech regions
Available VAD Tools
1. Silero VAD (Recommended for Short Segments)
Best for: Short audio segments, real-time applications, better detection of brief speech
import torch
# Load Silero VAD model
model, utils = torch.hub.load(
repo_or_dir='snakers4/silero-vad',
model='silero_vad',
force_reload=False,
onnx=False
)
get_speech_timestamps = utils[0]
# Run VAD
speech_timestamps = get_speech_timestamps(
waveform[0], # mono audio waveform
model,
threshold=0.6, # speech probability threshold
min_speech_duration_ms=350, # minimum speech segment length
min_silence_duration_ms=400, # minimum silence between segments
sampling_rate=sample_rate
)
# Convert to boundaries format
boundaries = [[ts['start'] / sample_rate, ts['end'] / sample_rate]
for ts in speech_timestamps]
Advantages:
- Better at detecting short speech segments
- Lower false alarm rate
- Optimized for real-time processing
2. SpeechBrain VAD
Best for: General-purpose VAD, longer audio files
from speechbrain.inference.VAD import VAD
VAD_model = VAD.from_hparams(
source="speechbrain/vad-crdnn-libriparty",
savedir="/tmp/speechbrain_vad"
)
# Get speech segments
boundaries = VAD_model.get_speech_segments(audio_path)
