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