use std::path::PathBuf;
use serde::{Deserialize, Serialize};
use super::{
AlignmentConfig, AsrConfig, DiarizationConfig, OutputConfig, TranslationConfig, VadConfig,
};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NativeWhisperxConfig {
pub input: InputSource,
#[serde(default)]
pub asr: AsrConfig,
#[serde(default)]
pub translation: TranslationConfig,
#[serde(default)]
pub vad: VadConfig,
#[serde(default)]
pub alignment: AlignmentConfig,
#[serde(default)]
pub diarization: DiarizationConfig,
#[serde(default)]
pub output: OutputConfig,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", tag = "kind")]
pub enum InputSource {
Path {
path: PathBuf,
},
Samples {
samples: Vec<f32>,
sample_rate: u32,
channels: u16,
#[serde(default)]
source: Option<String>,
},
}