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