1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PlayHtVoice {
16 #[serde(rename = "cachingEnabled", skip_serializing_if = "Option::is_none")]
18 pub caching_enabled: Option<bool>,
19 #[serde(rename = "provider")]
21 pub provider: ProviderTrue,
22 #[serde(rename = "voiceId")]
23 pub voice_id: models::PlayHtVoiceVoiceId,
24 #[serde(rename = "speed", skip_serializing_if = "Option::is_none")]
26 pub speed: Option<f64>,
27 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
29 pub temperature: Option<f64>,
30 #[serde(rename = "emotion", skip_serializing_if = "Option::is_none")]
32 pub emotion: Option<EmotionTrue>,
33 #[serde(rename = "voiceGuidance", skip_serializing_if = "Option::is_none")]
35 pub voice_guidance: Option<f64>,
36 #[serde(rename = "styleGuidance", skip_serializing_if = "Option::is_none")]
38 pub style_guidance: Option<f64>,
39 #[serde(rename = "textGuidance", skip_serializing_if = "Option::is_none")]
41 pub text_guidance: Option<f64>,
42 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
44 pub model: Option<ModelTrue>,
45 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
47 pub language: Option<LanguageTrue>,
48 #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
50 pub chunk_plan: Option<models::ChunkPlan>,
51 #[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
53 pub fallback_plan: Option<models::FallbackPlan>,
54}
55
56impl PlayHtVoice {
57 pub fn new(provider: ProviderTrue, voice_id: models::PlayHtVoiceVoiceId) -> PlayHtVoice {
58 PlayHtVoice {
59 caching_enabled: None,
60 provider,
61 voice_id,
62 speed: None,
63 temperature: None,
64 emotion: None,
65 voice_guidance: None,
66 style_guidance: None,
67 text_guidance: None,
68 model: None,
69 language: None,
70 chunk_plan: None,
71 fallback_plan: None,
72 }
73 }
74}
75#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
77pub enum ProviderTrue {
78 #[serde(rename = "playht")]
79 Playht,
80}
81
82impl Default for ProviderTrue {
83 fn default() -> ProviderTrue {
84 Self::Playht
85 }
86}
87#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
89pub enum EmotionTrue {
90 #[serde(rename = "female_happy")]
91 FemaleHappy,
92 #[serde(rename = "female_sad")]
93 FemaleSad,
94 #[serde(rename = "female_angry")]
95 FemaleAngry,
96 #[serde(rename = "female_fearful")]
97 FemaleFearful,
98 #[serde(rename = "female_disgust")]
99 FemaleDisgust,
100 #[serde(rename = "female_surprised")]
101 FemaleSurprised,
102 #[serde(rename = "male_happy")]
103 MaleHappy,
104 #[serde(rename = "male_sad")]
105 MaleSad,
106 #[serde(rename = "male_angry")]
107 MaleAngry,
108 #[serde(rename = "male_fearful")]
109 MaleFearful,
110 #[serde(rename = "male_disgust")]
111 MaleDisgust,
112 #[serde(rename = "male_surprised")]
113 MaleSurprised,
114}
115
116impl Default for EmotionTrue {
117 fn default() -> EmotionTrue {
118 Self::FemaleHappy
119 }
120}
121#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
123pub enum ModelTrue {
124 #[serde(rename = "PlayHT2.0")]
125 PlayHt2Period0,
126 #[serde(rename = "PlayHT2.0-turbo")]
127 PlayHt2Period0Turbo,
128 #[serde(rename = "Play3.0-mini")]
129 Play3Period0Mini,
130 #[serde(rename = "PlayDialog")]
131 PlayDialog,
132}
133
134impl Default for ModelTrue {
135 fn default() -> ModelTrue {
136 Self::PlayHt2Period0
137 }
138}
139#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
141pub enum LanguageTrue {
142 #[serde(rename = "afrikaans")]
143 Afrikaans,
144 #[serde(rename = "albanian")]
145 Albanian,
146 #[serde(rename = "amharic")]
147 Amharic,
148 #[serde(rename = "arabic")]
149 Arabic,
150 #[serde(rename = "bengali")]
151 Bengali,
152 #[serde(rename = "bulgarian")]
153 Bulgarian,
154 #[serde(rename = "catalan")]
155 Catalan,
156 #[serde(rename = "croatian")]
157 Croatian,
158 #[serde(rename = "czech")]
159 Czech,
160 #[serde(rename = "danish")]
161 Danish,
162 #[serde(rename = "dutch")]
163 Dutch,
164 #[serde(rename = "english")]
165 English,
166 #[serde(rename = "french")]
167 French,
168 #[serde(rename = "galician")]
169 Galician,
170 #[serde(rename = "german")]
171 German,
172 #[serde(rename = "greek")]
173 Greek,
174 #[serde(rename = "hebrew")]
175 Hebrew,
176 #[serde(rename = "hindi")]
177 Hindi,
178 #[serde(rename = "hungarian")]
179 Hungarian,
180 #[serde(rename = "indonesian")]
181 Indonesian,
182 #[serde(rename = "italian")]
183 Italian,
184 #[serde(rename = "japanese")]
185 Japanese,
186 #[serde(rename = "korean")]
187 Korean,
188 #[serde(rename = "malay")]
189 Malay,
190 #[serde(rename = "mandarin")]
191 Mandarin,
192 #[serde(rename = "polish")]
193 Polish,
194 #[serde(rename = "portuguese")]
195 Portuguese,
196 #[serde(rename = "russian")]
197 Russian,
198 #[serde(rename = "serbian")]
199 Serbian,
200 #[serde(rename = "spanish")]
201 Spanish,
202 #[serde(rename = "swedish")]
203 Swedish,
204 #[serde(rename = "tagalog")]
205 Tagalog,
206 #[serde(rename = "thai")]
207 Thai,
208 #[serde(rename = "turkish")]
209 Turkish,
210 #[serde(rename = "ukrainian")]
211 Ukrainian,
212 #[serde(rename = "urdu")]
213 Urdu,
214 #[serde(rename = "xhosa")]
215 Xhosa,
216}
217
218impl Default for LanguageTrue {
219 fn default() -> LanguageTrue {
220 Self::Afrikaans
221 }
222}