1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct FallbackGladiaTranscriber {
16 #[serde(rename = "provider")]
18 pub provider: Provider,
19 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
20 pub model: Option<models::GladiaTranscriberModel>,
21 #[serde(rename = "languageBehaviour", skip_serializing_if = "Option::is_none")]
22 pub language_behaviour: Option<models::GladiaTranscriberLanguageBehaviour>,
23 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
25 pub language: Option<Language>,
26 #[serde(rename = "transcriptionHint", skip_serializing_if = "Option::is_none")]
28 pub transcription_hint: Option<String>,
29 #[serde(rename = "prosody", skip_serializing_if = "Option::is_none")]
31 pub prosody: Option<bool>,
32 #[serde(rename = "audioEnhancer", skip_serializing_if = "Option::is_none")]
34 pub audio_enhancer: Option<bool>,
35 #[serde(rename = "confidenceThreshold", skip_serializing_if = "Option::is_none")]
37 pub confidence_threshold: Option<f64>,
38}
39
40impl FallbackGladiaTranscriber {
41 pub fn new(provider: Provider) -> FallbackGladiaTranscriber {
42 FallbackGladiaTranscriber {
43 provider,
44 model: None,
45 language_behaviour: None,
46 language: None,
47 transcription_hint: None,
48 prosody: None,
49 audio_enhancer: None,
50 confidence_threshold: None,
51 }
52 }
53}
54#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
56pub enum Provider {
57 #[serde(rename = "gladia")]
58 Gladia,
59}
60
61impl Default for Provider {
62 fn default() -> Provider {
63 Self::Gladia
64 }
65}
66#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
68pub enum Language {
69 #[serde(rename = "af")]
70 Af,
71 #[serde(rename = "sq")]
72 Sq,
73 #[serde(rename = "am")]
74 Am,
75 #[serde(rename = "ar")]
76 Ar,
77 #[serde(rename = "hy")]
78 Hy,
79 #[serde(rename = "as")]
80 As,
81 #[serde(rename = "az")]
82 Az,
83 #[serde(rename = "ba")]
84 Ba,
85 #[serde(rename = "eu")]
86 Eu,
87 #[serde(rename = "be")]
88 Be,
89 #[serde(rename = "bn")]
90 Bn,
91 #[serde(rename = "bs")]
92 Bs,
93 #[serde(rename = "br")]
94 Br,
95 #[serde(rename = "bg")]
96 Bg,
97 #[serde(rename = "ca")]
98 Ca,
99 #[serde(rename = "zh")]
100 Zh,
101 #[serde(rename = "hr")]
102 Hr,
103 #[serde(rename = "cs")]
104 Cs,
105 #[serde(rename = "da")]
106 Da,
107 #[serde(rename = "nl")]
108 Nl,
109 #[serde(rename = "en")]
110 En,
111 #[serde(rename = "et")]
112 Et,
113 #[serde(rename = "fo")]
114 Fo,
115 #[serde(rename = "fi")]
116 Fi,
117 #[serde(rename = "fr")]
118 Fr,
119 #[serde(rename = "gl")]
120 Gl,
121 #[serde(rename = "ka")]
122 Ka,
123 #[serde(rename = "de")]
124 De,
125 #[serde(rename = "el")]
126 El,
127 #[serde(rename = "gu")]
128 Gu,
129 #[serde(rename = "ht")]
130 Ht,
131 #[serde(rename = "ha")]
132 Ha,
133 #[serde(rename = "haw")]
134 Haw,
135 #[serde(rename = "he")]
136 He,
137 #[serde(rename = "hi")]
138 Hi,
139 #[serde(rename = "hu")]
140 Hu,
141 #[serde(rename = "is")]
142 Is,
143 #[serde(rename = "id")]
144 Id,
145 #[serde(rename = "it")]
146 It,
147 #[serde(rename = "ja")]
148 Ja,
149 #[serde(rename = "jv")]
150 Jv,
151 #[serde(rename = "kn")]
152 Kn,
153 #[serde(rename = "kk")]
154 Kk,
155 #[serde(rename = "km")]
156 Km,
157 #[serde(rename = "ko")]
158 Ko,
159 #[serde(rename = "lo")]
160 Lo,
161 #[serde(rename = "la")]
162 La,
163 #[serde(rename = "lv")]
164 Lv,
165 #[serde(rename = "ln")]
166 Ln,
167 #[serde(rename = "lt")]
168 Lt,
169 #[serde(rename = "lb")]
170 Lb,
171 #[serde(rename = "mk")]
172 Mk,
173 #[serde(rename = "mg")]
174 Mg,
175 #[serde(rename = "ms")]
176 Ms,
177 #[serde(rename = "ml")]
178 Ml,
179 #[serde(rename = "mt")]
180 Mt,
181 #[serde(rename = "mi")]
182 Mi,
183 #[serde(rename = "mr")]
184 Mr,
185 #[serde(rename = "mn")]
186 Mn,
187 #[serde(rename = "my")]
188 My,
189 #[serde(rename = "ne")]
190 Ne,
191 #[serde(rename = "no")]
192 No,
193 #[serde(rename = "nn")]
194 Nn,
195 #[serde(rename = "oc")]
196 Oc,
197 #[serde(rename = "ps")]
198 Ps,
199 #[serde(rename = "fa")]
200 Fa,
201 #[serde(rename = "pl")]
202 Pl,
203 #[serde(rename = "pt")]
204 Pt,
205 #[serde(rename = "pa")]
206 Pa,
207 #[serde(rename = "ro")]
208 Ro,
209 #[serde(rename = "ru")]
210 Ru,
211 #[serde(rename = "sa")]
212 Sa,
213 #[serde(rename = "sr")]
214 Sr,
215 #[serde(rename = "sn")]
216 Sn,
217 #[serde(rename = "sd")]
218 Sd,
219 #[serde(rename = "si")]
220 Si,
221 #[serde(rename = "sk")]
222 Sk,
223 #[serde(rename = "sl")]
224 Sl,
225 #[serde(rename = "so")]
226 So,
227 #[serde(rename = "es")]
228 Es,
229 #[serde(rename = "su")]
230 Su,
231 #[serde(rename = "sw")]
232 Sw,
233 #[serde(rename = "sv")]
234 Sv,
235 #[serde(rename = "tl")]
236 Tl,
237 #[serde(rename = "tg")]
238 Tg,
239 #[serde(rename = "ta")]
240 Ta,
241 #[serde(rename = "tt")]
242 Tt,
243 #[serde(rename = "te")]
244 Te,
245 #[serde(rename = "th")]
246 Th,
247 #[serde(rename = "bo")]
248 Bo,
249 #[serde(rename = "tr")]
250 Tr,
251 #[serde(rename = "tk")]
252 Tk,
253 #[serde(rename = "uk")]
254 Uk,
255 #[serde(rename = "ur")]
256 Ur,
257 #[serde(rename = "uz")]
258 Uz,
259 #[serde(rename = "vi")]
260 Vi,
261 #[serde(rename = "cy")]
262 Cy,
263 #[serde(rename = "yi")]
264 Yi,
265 #[serde(rename = "yo")]
266 Yo,
267}
268
269impl Default for Language {
270 fn default() -> Language {
271 Self::Af
272 }
273}
274