Skip to main content

Module vad

Module vad 

Source
Expand description

Voice Activity Detection (VAD) with dual-metric analysis.

This module provides real-time voice activity detection using a combination of energy and spectral flux metrics with adaptive baseline tracking.

§Features

  • Dual-metric analysis: Energy + spectral flux for robust detection
  • Adaptive thresholding: Dynamic baseline tracking for varying noise conditions
  • Streaming support: Maintains state across detect() calls for continuous audio
  • Configurable sensitivity: Extensive tuning options via VadConfig
  • Metrics instrumentation: Performance and accuracy tracking via VadMetricsCollector

§Example

use std::sync::Arc;

use speech_prep::vad::{NoopVadMetricsCollector, VadConfig, VadDetector};

let config = VadConfig::default();
let metrics = Arc::new(NoopVadMetricsCollector);
let detector = VadDetector::new(config, metrics)?;

// Process audio samples
let audio_samples: Vec<f32> = vec![0.0; 16000]; // 1 second at 16kHz
let speech_segments = detector.detect(&audio_samples)?;

assert!(speech_segments.iter().all(|segment| segment.end_time >= segment.start_time));

Re-exports§

pub use config::VadConfig;
pub use detector::SpeechChunk;
pub use detector::VadDetector;
pub use metrics::AdaptiveThresholdSnapshot;
pub use metrics::NoopVadMetricsCollector;
pub use metrics::VadMetricsCollector;
pub use metrics::VadMetricsSnapshot;

Modules§

config
VAD configuration and validation.
detector
Core VAD detection engine with dual-metric analysis.
metrics
VAD metrics collection and monitoring.