1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct FallbackDeepgramTranscriber {
16 #[serde(rename = "provider")]
18 pub provider: Provider,
19 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
20 pub model: Option<models::DeepgramTranscriberModel>,
21 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
23 pub language: Option<Language>,
24 #[serde(rename = "smartFormat", skip_serializing_if = "Option::is_none")]
26 pub smart_format: Option<bool>,
27 #[serde(rename = "codeSwitchingEnabled", skip_serializing_if = "Option::is_none")]
29 pub code_switching_enabled: Option<bool>,
30 #[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
32 pub mip_opt_out: Option<bool>,
33 #[serde(rename = "numerals", skip_serializing_if = "Option::is_none")]
35 pub numerals: Option<bool>,
36 #[serde(rename = "confidenceThreshold", skip_serializing_if = "Option::is_none")]
38 pub confidence_threshold: Option<f64>,
39 #[serde(rename = "keywords", skip_serializing_if = "Option::is_none")]
41 pub keywords: Option<Vec<String>>,
42 #[serde(rename = "keyterm", skip_serializing_if = "Option::is_none")]
44 pub keyterm: Option<Vec<String>>,
45 #[serde(rename = "endpointing", skip_serializing_if = "Option::is_none")]
47 pub endpointing: Option<f64>,
48}
49
50impl FallbackDeepgramTranscriber {
51 pub fn new(provider: Provider) -> FallbackDeepgramTranscriber {
52 FallbackDeepgramTranscriber {
53 provider,
54 model: None,
55 language: None,
56 smart_format: None,
57 code_switching_enabled: None,
58 mip_opt_out: None,
59 numerals: None,
60 confidence_threshold: None,
61 keywords: None,
62 keyterm: None,
63 endpointing: None,
64 }
65 }
66}
67#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
69pub enum Provider {
70 #[serde(rename = "deepgram")]
71 Deepgram,
72}
73
74impl Default for Provider {
75 fn default() -> Provider {
76 Self::Deepgram
77 }
78}
79#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
81pub enum Language {
82 #[serde(rename = "bg")]
83 Bg,
84 #[serde(rename = "ca")]
85 Ca,
86 #[serde(rename = "cs")]
87 Cs,
88 #[serde(rename = "da")]
89 Da,
90 #[serde(rename = "da-DK")]
91 DaDk,
92 #[serde(rename = "de")]
93 De,
94 #[serde(rename = "de-CH")]
95 DeCh,
96 #[serde(rename = "el")]
97 El,
98 #[serde(rename = "en")]
99 En,
100 #[serde(rename = "en-AU")]
101 EnAu,
102 #[serde(rename = "en-GB")]
103 EnGb,
104 #[serde(rename = "en-IN")]
105 EnIn,
106 #[serde(rename = "en-NZ")]
107 EnNz,
108 #[serde(rename = "en-US")]
109 EnUs,
110 #[serde(rename = "es")]
111 Es,
112 #[serde(rename = "es-419")]
113 Es419,
114 #[serde(rename = "es-LATAM")]
115 EsLatam,
116 #[serde(rename = "et")]
117 Et,
118 #[serde(rename = "fi")]
119 Fi,
120 #[serde(rename = "fr")]
121 Fr,
122 #[serde(rename = "fr-CA")]
123 FrCa,
124 #[serde(rename = "hi")]
125 Hi,
126 #[serde(rename = "hi-Latn")]
127 HiLatn,
128 #[serde(rename = "hu")]
129 Hu,
130 #[serde(rename = "id")]
131 Id,
132 #[serde(rename = "it")]
133 It,
134 #[serde(rename = "ja")]
135 Ja,
136 #[serde(rename = "ko")]
137 Ko,
138 #[serde(rename = "ko-KR")]
139 KoKr,
140 #[serde(rename = "lt")]
141 Lt,
142 #[serde(rename = "lv")]
143 Lv,
144 #[serde(rename = "ms")]
145 Ms,
146 #[serde(rename = "multi")]
147 Multi,
148 #[serde(rename = "nl")]
149 Nl,
150 #[serde(rename = "nl-BE")]
151 NlBe,
152 #[serde(rename = "no")]
153 No,
154 #[serde(rename = "pl")]
155 Pl,
156 #[serde(rename = "pt")]
157 Pt,
158 #[serde(rename = "pt-BR")]
159 PtBr,
160 #[serde(rename = "ro")]
161 Ro,
162 #[serde(rename = "ru")]
163 Ru,
164 #[serde(rename = "sk")]
165 Sk,
166 #[serde(rename = "sv")]
167 Sv,
168 #[serde(rename = "sv-SE")]
169 SvSe,
170 #[serde(rename = "ta")]
171 Ta,
172 #[serde(rename = "taq")]
173 Taq,
174 #[serde(rename = "th")]
175 Th,
176 #[serde(rename = "th-TH")]
177 ThTh,
178 #[serde(rename = "tr")]
179 Tr,
180 #[serde(rename = "uk")]
181 Uk,
182 #[serde(rename = "vi")]
183 Vi,
184 #[serde(rename = "zh")]
185 Zh,
186 #[serde(rename = "zh-CN")]
187 ZhCn,
188 #[serde(rename = "zh-HK")]
189 ZhHk,
190 #[serde(rename = "zh-Hans")]
191 ZhHans,
192 #[serde(rename = "zh-Hant")]
193 ZhHant,
194 #[serde(rename = "zh-TW")]
195 ZhTw,
196}
197
198impl Default for Language {
199 fn default() -> Language {
200 Self::Bg
201 }
202}
203