1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct FallbackDeepgramTranscriber {
16 #[serde(rename = "provider")]
18 pub provider: ProviderTrue,
19 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
20 pub model: Option<models::DeepgramTranscriberModel>,
21 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
23 pub language: Option<LanguageTrue>,
24 #[serde(rename = "smartFormat", skip_serializing_if = "Option::is_none")]
26 pub smart_format: Option<bool>,
27 #[serde(
29 rename = "codeSwitchingEnabled",
30 skip_serializing_if = "Option::is_none"
31 )]
32 pub code_switching_enabled: Option<bool>,
33 #[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
35 pub mip_opt_out: Option<bool>,
36 #[serde(rename = "numerals", skip_serializing_if = "Option::is_none")]
38 pub numerals: Option<bool>,
39 #[serde(
41 rename = "confidenceThreshold",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub confidence_threshold: Option<f64>,
45 #[serde(rename = "keywords", skip_serializing_if = "Option::is_none")]
47 pub keywords: Option<Vec<String>>,
48 #[serde(rename = "keyterm", skip_serializing_if = "Option::is_none")]
50 pub keyterm: Option<Vec<String>>,
51 #[serde(rename = "endpointing", skip_serializing_if = "Option::is_none")]
53 pub endpointing: Option<f64>,
54}
55
56impl FallbackDeepgramTranscriber {
57 pub fn new(provider: ProviderTrue) -> FallbackDeepgramTranscriber {
58 FallbackDeepgramTranscriber {
59 provider,
60 model: None,
61 language: None,
62 smart_format: None,
63 code_switching_enabled: None,
64 mip_opt_out: None,
65 numerals: None,
66 confidence_threshold: None,
67 keywords: None,
68 keyterm: None,
69 endpointing: None,
70 }
71 }
72}
73#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
75pub enum ProviderTrue {
76 #[serde(rename = "deepgram")]
77 Deepgram,
78}
79
80impl Default for ProviderTrue {
81 fn default() -> ProviderTrue {
82 Self::Deepgram
83 }
84}
85#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
87pub enum LanguageTrue {
88 #[serde(rename = "ar")]
89 Ar,
90 #[serde(rename = "az")]
91 Az,
92 #[serde(rename = "ba")]
93 Ba,
94 #[serde(rename = "bg")]
95 Bg,
96 #[serde(rename = "br")]
97 Br,
98 #[serde(rename = "ca")]
99 Ca,
100 #[serde(rename = "cs")]
101 Cs,
102 #[serde(rename = "da")]
103 Da,
104 #[serde(rename = "da-DK")]
105 DaDk,
106 #[serde(rename = "de")]
107 De,
108 #[serde(rename = "de-CH")]
109 DeCh,
110 #[serde(rename = "el")]
111 El,
112 #[serde(rename = "en")]
113 En,
114 #[serde(rename = "en-AU")]
115 EnAu,
116 #[serde(rename = "en-GB")]
117 EnGb,
118 #[serde(rename = "en-IN")]
119 EnIn,
120 #[serde(rename = "en-NZ")]
121 EnNz,
122 #[serde(rename = "en-US")]
123 EnUs,
124 #[serde(rename = "es")]
125 Es,
126 #[serde(rename = "es-419")]
127 Es419,
128 #[serde(rename = "es-LATAM")]
129 EsLatam,
130 #[serde(rename = "et")]
131 Et,
132 #[serde(rename = "eu")]
133 Eu,
134 #[serde(rename = "fi")]
135 Fi,
136 #[serde(rename = "fr")]
137 Fr,
138 #[serde(rename = "fr-CA")]
139 FrCa,
140 #[serde(rename = "ha")]
141 Ha,
142 #[serde(rename = "haw")]
143 Haw,
144 #[serde(rename = "he")]
145 He,
146 #[serde(rename = "hi")]
147 Hi,
148 #[serde(rename = "hi-Latn")]
149 HiLatn,
150 #[serde(rename = "hu")]
151 Hu,
152 #[serde(rename = "id")]
153 Id,
154 #[serde(rename = "is")]
155 Is,
156 #[serde(rename = "it")]
157 It,
158 #[serde(rename = "ja")]
159 Ja,
160 #[serde(rename = "jw")]
161 Jw,
162 #[serde(rename = "kn")]
163 Kn,
164 #[serde(rename = "ko")]
165 Ko,
166 #[serde(rename = "ko-KR")]
167 KoKr,
168 #[serde(rename = "ln")]
169 Ln,
170 #[serde(rename = "lt")]
171 Lt,
172 #[serde(rename = "lv")]
173 Lv,
174 #[serde(rename = "mk")]
175 Mk,
176 #[serde(rename = "ms")]
177 Ms,
178 #[serde(rename = "multi")]
179 Multi,
180 #[serde(rename = "nl")]
181 Nl,
182 #[serde(rename = "nl-BE")]
183 NlBe,
184 #[serde(rename = "no")]
185 No,
186 #[serde(rename = "pl")]
187 Pl,
188 #[serde(rename = "pt")]
189 Pt,
190 #[serde(rename = "pt-BR")]
191 PtBr,
192 #[serde(rename = "ro")]
193 Ro,
194 #[serde(rename = "ru")]
195 Ru,
196 #[serde(rename = "sk")]
197 Sk,
198 #[serde(rename = "sl")]
199 Sl,
200 #[serde(rename = "sn")]
201 Sn,
202 #[serde(rename = "so")]
203 So,
204 #[serde(rename = "sr")]
205 Sr,
206 #[serde(rename = "su")]
207 Su,
208 #[serde(rename = "sv")]
209 Sv,
210 #[serde(rename = "sv-SE")]
211 SvSe,
212 #[serde(rename = "ta")]
213 Ta,
214 #[serde(rename = "taq")]
215 Taq,
216 #[serde(rename = "th")]
217 Th,
218 #[serde(rename = "th-TH")]
219 ThTh,
220 #[serde(rename = "tr")]
221 Tr,
222 #[serde(rename = "tt")]
223 Tt,
224 #[serde(rename = "uk")]
225 Uk,
226 #[serde(rename = "ur")]
227 Ur,
228 #[serde(rename = "vi")]
229 Vi,
230 #[serde(rename = "yo")]
231 Yo,
232 #[serde(rename = "zh")]
233 Zh,
234 #[serde(rename = "zh-CN")]
235 ZhCn,
236 #[serde(rename = "zh-HK")]
237 ZhHk,
238 #[serde(rename = "zh-Hans")]
239 ZhHans,
240 #[serde(rename = "zh-Hant")]
241 ZhHant,
242 #[serde(rename = "zh-TW")]
243 ZhTw,
244}
245
246impl Default for LanguageTrue {
247 fn default() -> LanguageTrue {
248 Self::Ar
249 }
250}