use crate::frame::AudioFrame;
use crate::traits::Transcript;
pub enum PipelineInput {
Audio(AudioFrame),
Text(String),
Control(PipelineControl),
}
pub enum PipelineControl {
Stop,
Pause,
Resume,
}
pub enum PipelineOutput {
Audio(AudioFrame),
Transcript(Transcript),
AgentText(String),
Metrics(PipelineMetrics),
}
#[derive(Debug, Clone, Default)]
pub struct PipelineMetrics {
pub tts_latency_ms: f64,
pub stt_latency_ms: f64,
pub llm_latency_ms: f64,
pub total_audio_ms: u64,
pub vad_speech_ratio: f32,
}