Expand description
Real-time streaming diarization pipeline.
Processes audio incrementally chunk-by-chunk with bounded latency.
Unlike the offline Pipeline, StreamingPipeline
emits SpeakerTurns as soon as each embedding window is processed.
Latency is bounded by DiarizationConfig::window_secs plus VAD look-ahead.
§Example
use polyvoice::streaming::StreamingPipeline;
use polyvoice::{EnergyVad, DummyExtractor, DiarizationConfig, VadConfig};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let vad = EnergyVad::new(-40.0, 16000, 512);
let extractor = DummyExtractor::new(256);
let mut pipeline = StreamingPipeline::new(
vad,
extractor,
DiarizationConfig::default(),
VadConfig::default(),
)?;
let chunk = vec![0.0f32; 16000];
let _turns = pipeline.feed(&chunk)?;
Ok(())
}Structs§
- Streaming
Pipeline - Stateful streaming diarization pipeline.
Enums§
- Streaming
Error - Errors from streaming pipeline operations.