1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct FallbackDeepgramVoice {
16 #[serde(rename = "provider")]
18 pub provider: Provider,
19 #[serde(rename = "voiceId")]
21 pub voice_id: VoiceId,
22 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
24 pub model: Option<Model>,
25 #[serde(rename = "mipOptOut", skip_serializing_if = "Option::is_none")]
27 pub mip_opt_out: Option<bool>,
28 #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
30 pub chunk_plan: Option<models::ChunkPlan>,
31}
32
33impl FallbackDeepgramVoice {
34 pub fn new(provider: Provider, voice_id: VoiceId) -> FallbackDeepgramVoice {
35 FallbackDeepgramVoice {
36 provider,
37 voice_id,
38 model: None,
39 mip_opt_out: None,
40 chunk_plan: None,
41 }
42 }
43}
44#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
46pub enum Provider {
47 #[serde(rename = "deepgram")]
48 Deepgram,
49}
50
51impl Default for Provider {
52 fn default() -> Provider {
53 Self::Deepgram
54 }
55}
56#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
58pub enum VoiceId {
59 #[serde(rename = "asteria")]
60 Asteria,
61 #[serde(rename = "luna")]
62 Luna,
63 #[serde(rename = "stella")]
64 Stella,
65 #[serde(rename = "athena")]
66 Athena,
67 #[serde(rename = "hera")]
68 Hera,
69 #[serde(rename = "orion")]
70 Orion,
71 #[serde(rename = "arcas")]
72 Arcas,
73 #[serde(rename = "perseus")]
74 Perseus,
75 #[serde(rename = "angus")]
76 Angus,
77 #[serde(rename = "orpheus")]
78 Orpheus,
79 #[serde(rename = "helios")]
80 Helios,
81 #[serde(rename = "zeus")]
82 Zeus,
83 #[serde(rename = "thalia")]
84 Thalia,
85 #[serde(rename = "andromeda")]
86 Andromeda,
87 #[serde(rename = "helena")]
88 Helena,
89 #[serde(rename = "apollo")]
90 Apollo,
91 #[serde(rename = "arcas-2")]
92 Arcas2,
93 #[serde(rename = "aries")]
94 Aries,
95 #[serde(rename = "amalthea")]
96 Amalthea,
97 #[serde(rename = "andromeda-2")]
98 Andromeda2,
99 #[serde(rename = "apollo-2")]
100 Apollo2,
101 #[serde(rename = "arcas-3")]
102 Arcas3,
103 #[serde(rename = "aries-2")]
104 Aries2,
105 #[serde(rename = "asteria-2")]
106 Asteria2,
107 #[serde(rename = "athena-2")]
108 Athena2,
109 #[serde(rename = "atlas")]
110 Atlas,
111 #[serde(rename = "aurora")]
112 Aurora,
113 #[serde(rename = "callista")]
114 Callista,
115 #[serde(rename = "cora")]
116 Cora,
117 #[serde(rename = "cordelia")]
118 Cordelia,
119 #[serde(rename = "delia")]
120 Delia,
121 #[serde(rename = "draco")]
122 Draco,
123 #[serde(rename = "electra")]
124 Electra,
125 #[serde(rename = "harmonia")]
126 Harmonia,
127 #[serde(rename = "helena-2")]
128 Helena2,
129 #[serde(rename = "hera-2")]
130 Hera2,
131 #[serde(rename = "hermes")]
132 Hermes,
133 #[serde(rename = "hyperion")]
134 Hyperion,
135 #[serde(rename = "iris")]
136 Iris,
137 #[serde(rename = "janus")]
138 Janus,
139 #[serde(rename = "juno")]
140 Juno,
141 #[serde(rename = "jupiter")]
142 Jupiter,
143 #[serde(rename = "luna-2")]
144 Luna2,
145 #[serde(rename = "mars")]
146 Mars,
147 #[serde(rename = "minerva")]
148 Minerva,
149 #[serde(rename = "neptune")]
150 Neptune,
151 #[serde(rename = "odysseus")]
152 Odysseus,
153 #[serde(rename = "ophelia")]
154 Ophelia,
155 #[serde(rename = "orion-2")]
156 Orion2,
157 #[serde(rename = "orpheus-2")]
158 Orpheus2,
159 #[serde(rename = "pandora")]
160 Pandora,
161 #[serde(rename = "phoebe")]
162 Phoebe,
163 #[serde(rename = "pluto")]
164 Pluto,
165 #[serde(rename = "saturn")]
166 Saturn,
167 #[serde(rename = "selene")]
168 Selene,
169 #[serde(rename = "thalia-2")]
170 Thalia2,
171 #[serde(rename = "theia")]
172 Theia,
173 #[serde(rename = "vesta")]
174 Vesta,
175 #[serde(rename = "zeus-2")]
176 Zeus2,
177}
178
179impl Default for VoiceId {
180 fn default() -> VoiceId {
181 Self::Asteria
182 }
183}
184#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
186pub enum Model {
187 #[serde(rename = "aura")]
188 Aura,
189 #[serde(rename = "aura-2")]
190 Aura2,
191}
192
193impl Default for Model {
194 fn default() -> Model {
195 Self::Aura
196 }
197}
198