Skip to main content

native_whisperx/config/
request.rs

1//! Top-level workflow request configuration and input source selection.
2
3use std::path::PathBuf;
4
5use serde::{Deserialize, Serialize};
6
7use super::{
8    AlignmentConfig, AsrConfig, DiarizationConfig, OutputConfig, TranslationConfig, VadConfig,
9};
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12#[serde(rename_all = "camelCase")]
13pub struct NativeWhisperxConfig {
14    pub input: InputSource,
15    #[serde(default)]
16    pub asr: AsrConfig,
17    #[serde(default)]
18    pub translation: TranslationConfig,
19    #[serde(default)]
20    pub vad: VadConfig,
21    #[serde(default)]
22    pub alignment: AlignmentConfig,
23    #[serde(default)]
24    pub diarization: DiarizationConfig,
25    #[serde(default)]
26    pub output: OutputConfig,
27}
28
29#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
30#[serde(rename_all = "camelCase", tag = "kind")]
31pub enum InputSource {
32    Path {
33        path: PathBuf,
34    },
35    Samples {
36        samples: Vec<f32>,
37        sample_rate: u32,
38        channels: u16,
39        #[serde(default)]
40        source: Option<String>,
41    },
42}