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: Provider,
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<Language>,
24 #[serde(rename = "smartFormat", skip_serializing_if = "Option::is_none")]
26 pub smart_format: Option<bool>,
27 #[serde(rename = "codeSwitchingEnabled", skip_serializing_if = "Option::is_none")]
29 pub code_switching_enabled: Option<bool>,
30 #[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
32 pub mip_opt_out: Option<bool>,
33 #[serde(rename = "numerals", skip_serializing_if = "Option::is_none")]
35 pub numerals: Option<bool>,
36 #[serde(rename = "confidenceThreshold", skip_serializing_if = "Option::is_none")]
38 pub confidence_threshold: Option<f64>,
39 #[serde(rename = "keywords", skip_serializing_if = "Option::is_none")]
41 pub keywords: Option<Vec<String>>,
42 #[serde(rename = "keyterm", skip_serializing_if = "Option::is_none")]
44 pub keyterm: Option<Vec<String>>,
45 #[serde(rename = "endpointing", skip_serializing_if = "Option::is_none")]
47 pub endpointing: Option<f64>,
48 #[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
50 pub fallback_plan: Option<models::FallbackTranscriberPlan>,
51}
52
53impl DeepgramTranscriber {
54 pub fn new(provider: Provider) -> DeepgramTranscriber {
55 DeepgramTranscriber {
56 provider,
57 model: None,
58 language: None,
59 smart_format: None,
60 code_switching_enabled: None,
61 mip_opt_out: None,
62 numerals: None,
63 confidence_threshold: None,
64 keywords: None,
65 keyterm: None,
66 endpointing: None,
67 fallback_plan: None,
68 }
69 }
70}
71#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
73pub enum Provider {
74 #[serde(rename = "deepgram")]
75 Deepgram,
76}
77
78impl Default for Provider {
79 fn default() -> Provider {
80 Self::Deepgram
81 }
82}
83#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
85pub enum Language {
86 #[serde(rename = "bg")]
87 Bg,
88 #[serde(rename = "ca")]
89 Ca,
90 #[serde(rename = "cs")]
91 Cs,
92 #[serde(rename = "da")]
93 Da,
94 #[serde(rename = "da-DK")]
95 DaDk,
96 #[serde(rename = "de")]
97 De,
98 #[serde(rename = "de-CH")]
99 DeCh,
100 #[serde(rename = "el")]
101 El,
102 #[serde(rename = "en")]
103 En,
104 #[serde(rename = "en-AU")]
105 EnAu,
106 #[serde(rename = "en-GB")]
107 EnGb,
108 #[serde(rename = "en-IN")]
109 EnIn,
110 #[serde(rename = "en-NZ")]
111 EnNz,
112 #[serde(rename = "en-US")]
113 EnUs,
114 #[serde(rename = "es")]
115 Es,
116 #[serde(rename = "es-419")]
117 Es419,
118 #[serde(rename = "es-LATAM")]
119 EsLatam,
120 #[serde(rename = "et")]
121 Et,
122 #[serde(rename = "fi")]
123 Fi,
124 #[serde(rename = "fr")]
125 Fr,
126 #[serde(rename = "fr-CA")]
127 FrCa,
128 #[serde(rename = "hi")]
129 Hi,
130 #[serde(rename = "hi-Latn")]
131 HiLatn,
132 #[serde(rename = "hu")]
133 Hu,
134 #[serde(rename = "id")]
135 Id,
136 #[serde(rename = "it")]
137 It,
138 #[serde(rename = "ja")]
139 Ja,
140 #[serde(rename = "ko")]
141 Ko,
142 #[serde(rename = "ko-KR")]
143 KoKr,
144 #[serde(rename = "lt")]
145 Lt,
146 #[serde(rename = "lv")]
147 Lv,
148 #[serde(rename = "ms")]
149 Ms,
150 #[serde(rename = "multi")]
151 Multi,
152 #[serde(rename = "nl")]
153 Nl,
154 #[serde(rename = "nl-BE")]
155 NlBe,
156 #[serde(rename = "no")]
157 No,
158 #[serde(rename = "pl")]
159 Pl,
160 #[serde(rename = "pt")]
161 Pt,
162 #[serde(rename = "pt-BR")]
163 PtBr,
164 #[serde(rename = "ro")]
165 Ro,
166 #[serde(rename = "ru")]
167 Ru,
168 #[serde(rename = "sk")]
169 Sk,
170 #[serde(rename = "sv")]
171 Sv,
172 #[serde(rename = "sv-SE")]
173 SvSe,
174 #[serde(rename = "ta")]
175 Ta,
176 #[serde(rename = "taq")]
177 Taq,
178 #[serde(rename = "th")]
179 Th,
180 #[serde(rename = "th-TH")]
181 ThTh,
182 #[serde(rename = "tr")]
183 Tr,
184 #[serde(rename = "uk")]
185 Uk,
186 #[serde(rename = "vi")]
187 Vi,
188 #[serde(rename = "zh")]
189 Zh,
190 #[serde(rename = "zh-CN")]
191 ZhCn,
192 #[serde(rename = "zh-HK")]
193 ZhHk,
194 #[serde(rename = "zh-Hans")]
195 ZhHans,
196 #[serde(rename = "zh-Hant")]
197 ZhHant,
198 #[serde(rename = "zh-TW")]
199 ZhTw,
200}
201
202impl Default for Language {
203 fn default() -> Language {
204 Self::Bg
205 }
206}
207