use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AssemblyAiTranscriber {
#[serde(rename = "provider")]
pub provider: ProviderTrue,
#[serde(rename = "language", skip_serializing_if = "Option::is_none")]
pub language: Option<LanguageTrue>,
#[serde(
rename = "confidenceThreshold",
skip_serializing_if = "Option::is_none"
)]
pub confidence_threshold: Option<f64>,
#[serde(
rename = "enableUniversalStreamingApi",
skip_serializing_if = "Option::is_none"
)]
pub enable_universal_streaming_api: Option<bool>,
#[serde(rename = "formatTurns", skip_serializing_if = "Option::is_none")]
pub format_turns: Option<bool>,
#[serde(
rename = "endOfTurnConfidenceThreshold",
skip_serializing_if = "Option::is_none"
)]
pub end_of_turn_confidence_threshold: Option<f64>,
#[serde(
rename = "minEndOfTurnSilenceWhenConfident",
skip_serializing_if = "Option::is_none"
)]
pub min_end_of_turn_silence_when_confident: Option<f64>,
#[serde(
rename = "wordFinalizationMaxWaitTime",
skip_serializing_if = "Option::is_none"
)]
pub word_finalization_max_wait_time: Option<f64>,
#[serde(rename = "maxTurnSilence", skip_serializing_if = "Option::is_none")]
pub max_turn_silence: Option<f64>,
#[serde(rename = "realtimeUrl", skip_serializing_if = "Option::is_none")]
pub realtime_url: Option<String>,
#[serde(rename = "wordBoost", skip_serializing_if = "Option::is_none")]
pub word_boost: Option<Vec<String>>,
#[serde(
rename = "endUtteranceSilenceThreshold",
skip_serializing_if = "Option::is_none"
)]
pub end_utterance_silence_threshold: Option<f64>,
#[serde(
rename = "disablePartialTranscripts",
skip_serializing_if = "Option::is_none"
)]
pub disable_partial_transcripts: Option<bool>,
#[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
pub fallback_plan: Option<models::FallbackTranscriberPlan>,
}
impl AssemblyAiTranscriber {
pub fn new(provider: ProviderTrue) -> AssemblyAiTranscriber {
AssemblyAiTranscriber {
provider,
language: None,
confidence_threshold: None,
enable_universal_streaming_api: None,
format_turns: None,
end_of_turn_confidence_threshold: None,
min_end_of_turn_silence_when_confident: None,
word_finalization_max_wait_time: None,
max_turn_silence: None,
realtime_url: None,
word_boost: None,
end_utterance_silence_threshold: None,
disable_partial_transcripts: None,
fallback_plan: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProviderTrue {
#[serde(rename = "assembly-ai")]
AssemblyAi,
}
impl Default for ProviderTrue {
fn default() -> ProviderTrue {
Self::AssemblyAi
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum LanguageTrue {
#[serde(rename = "en")]
En,
}
impl Default for LanguageTrue {
fn default() -> LanguageTrue {
Self::En
}
}