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