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