Skip to main content

Module streaming

Module streaming 

Source
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§

StreamingPipeline
Stateful streaming diarization pipeline.

Enums§

StreamingError
Errors from streaming pipeline operations.