vapi_client/models/
fallback_play_ht_voice.rs

1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct FallbackPlayHtVoice {
17    /// This is the voice provider that will be used.
18    #[serde(rename = "provider")]
19    pub provider: Provider,
20    #[serde(rename = "voiceId")]
21    pub voice_id: models::PlayHtVoiceVoiceId,
22    /// This is the speed multiplier that will be used.
23    #[serde(rename = "speed", skip_serializing_if = "Option::is_none")]
24    pub speed: Option<f64>,
25    /// A floating point number between 0, exclusive, and 2, inclusive. If equal to null or not provided, the model's default temperature will be used. The temperature parameter controls variance. Lower temperatures result in more predictable results, higher temperatures allow each run to vary more, so the voice may sound less like the baseline voice.
26    #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
27    pub temperature: Option<f64>,
28    /// An emotion to be applied to the speech.
29    #[serde(rename = "emotion", skip_serializing_if = "Option::is_none")]
30    pub emotion: Option<Emotion>,
31    /// A number between 1 and 6. Use lower numbers to reduce how unique your chosen voice will be compared to other voices.
32    #[serde(rename = "voiceGuidance", skip_serializing_if = "Option::is_none")]
33    pub voice_guidance: Option<f64>,
34    /// A number between 1 and 30. Use lower numbers to to reduce how strong your chosen emotion will be. Higher numbers will create a very emotional performance.
35    #[serde(rename = "styleGuidance", skip_serializing_if = "Option::is_none")]
36    pub style_guidance: Option<f64>,
37    /// A number between 1 and 2. This number influences how closely the generated speech adheres to the input text. Use lower values to create more fluid speech, but with a higher chance of deviating from the input text. Higher numbers will make the generated speech more accurate to the input text, ensuring that the words spoken align closely with the provided text.
38    #[serde(rename = "textGuidance", skip_serializing_if = "Option::is_none")]
39    pub text_guidance: Option<f64>,
40    /// Playht voice model/engine to use.
41    #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
42    pub model: Option<Model>,
43    /// The language to use for the speech.
44    #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
45    pub language: Option<Language>,
46    /// This is the plan for chunking the model output before it is sent to the voice provider.
47    #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
48    pub chunk_plan: Option<models::ChunkPlan>,
49}
50
51impl FallbackPlayHtVoice {
52    pub fn new(provider: Provider, voice_id: models::PlayHtVoiceVoiceId) -> FallbackPlayHtVoice {
53        FallbackPlayHtVoice {
54            provider,
55            voice_id,
56            speed: None,
57            temperature: None,
58            emotion: None,
59            voice_guidance: None,
60            style_guidance: None,
61            text_guidance: None,
62            model: None,
63            language: None,
64            chunk_plan: None,
65        }
66    }
67}
68/// This is the voice provider that will be used.
69#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
70pub enum Provider {
71    #[serde(rename = "playht")]
72    Playht,
73}
74
75impl Default for Provider {
76    fn default() -> Provider {
77        Self::Playht
78    }
79}
80/// An emotion to be applied to the speech.
81#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
82pub enum Emotion {
83    #[serde(rename = "female_happy")]
84    FemaleHappy,
85    #[serde(rename = "female_sad")]
86    FemaleSad,
87    #[serde(rename = "female_angry")]
88    FemaleAngry,
89    #[serde(rename = "female_fearful")]
90    FemaleFearful,
91    #[serde(rename = "female_disgust")]
92    FemaleDisgust,
93    #[serde(rename = "female_surprised")]
94    FemaleSurprised,
95    #[serde(rename = "male_happy")]
96    MaleHappy,
97    #[serde(rename = "male_sad")]
98    MaleSad,
99    #[serde(rename = "male_angry")]
100    MaleAngry,
101    #[serde(rename = "male_fearful")]
102    MaleFearful,
103    #[serde(rename = "male_disgust")]
104    MaleDisgust,
105    #[serde(rename = "male_surprised")]
106    MaleSurprised,
107}
108
109impl Default for Emotion {
110    fn default() -> Emotion {
111        Self::FemaleHappy
112    }
113}
114/// Playht voice model/engine to use.
115#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
116pub enum Model {
117    #[serde(rename = "PlayHT2.0")]
118    PlayHt2Period0,
119    #[serde(rename = "PlayHT2.0-turbo")]
120    PlayHt2Period0Turbo,
121    #[serde(rename = "Play3.0-mini")]
122    Play3Period0Mini,
123    #[serde(rename = "PlayDialog")]
124    PlayDialog,
125}
126
127impl Default for Model {
128    fn default() -> Model {
129        Self::PlayHt2Period0
130    }
131}
132/// The language to use for the speech.
133#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
134pub enum Language {
135    #[serde(rename = "afrikaans")]
136    Afrikaans,
137    #[serde(rename = "albanian")]
138    Albanian,
139    #[serde(rename = "amharic")]
140    Amharic,
141    #[serde(rename = "arabic")]
142    Arabic,
143    #[serde(rename = "bengali")]
144    Bengali,
145    #[serde(rename = "bulgarian")]
146    Bulgarian,
147    #[serde(rename = "catalan")]
148    Catalan,
149    #[serde(rename = "croatian")]
150    Croatian,
151    #[serde(rename = "czech")]
152    Czech,
153    #[serde(rename = "danish")]
154    Danish,
155    #[serde(rename = "dutch")]
156    Dutch,
157    #[serde(rename = "english")]
158    English,
159    #[serde(rename = "french")]
160    French,
161    #[serde(rename = "galician")]
162    Galician,
163    #[serde(rename = "german")]
164    German,
165    #[serde(rename = "greek")]
166    Greek,
167    #[serde(rename = "hebrew")]
168    Hebrew,
169    #[serde(rename = "hindi")]
170    Hindi,
171    #[serde(rename = "hungarian")]
172    Hungarian,
173    #[serde(rename = "indonesian")]
174    Indonesian,
175    #[serde(rename = "italian")]
176    Italian,
177    #[serde(rename = "japanese")]
178    Japanese,
179    #[serde(rename = "korean")]
180    Korean,
181    #[serde(rename = "malay")]
182    Malay,
183    #[serde(rename = "mandarin")]
184    Mandarin,
185    #[serde(rename = "polish")]
186    Polish,
187    #[serde(rename = "portuguese")]
188    Portuguese,
189    #[serde(rename = "russian")]
190    Russian,
191    #[serde(rename = "serbian")]
192    Serbian,
193    #[serde(rename = "spanish")]
194    Spanish,
195    #[serde(rename = "swedish")]
196    Swedish,
197    #[serde(rename = "tagalog")]
198    Tagalog,
199    #[serde(rename = "thai")]
200    Thai,
201    #[serde(rename = "turkish")]
202    Turkish,
203    #[serde(rename = "ukrainian")]
204    Ukrainian,
205    #[serde(rename = "urdu")]
206    Urdu,
207    #[serde(rename = "xhosa")]
208    Xhosa,
209}
210
211impl Default for Language {
212    fn default() -> Language {
213        Self::Afrikaans
214    }
215}