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;