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