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