vapi_client/models/
play_ht_voice.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct PlayHtVoice {
16    /// This is the flag to toggle voice caching for the assistant.
17    #[serde(rename = "cachingEnabled", skip_serializing_if = "Option::is_none")]
18    pub caching_enabled: Option<bool>,
19    /// This is the voice provider that will be used.
20    #[serde(rename = "provider")]
21    pub provider: ProviderTrue,
22    #[serde(rename = "voiceId")]
23    pub voice_id: models::PlayHtVoiceVoiceId,
24    /// This is the speed multiplier that will be used.
25    #[serde(rename = "speed", skip_serializing_if = "Option::is_none")]
26    pub speed: Option<f64>,
27    /// 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.
28    #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
29    pub temperature: Option<f64>,
30    /// An emotion to be applied to the speech.
31    #[serde(rename = "emotion", skip_serializing_if = "Option::is_none")]
32    pub emotion: Option<EmotionTrue>,
33    /// A number between 1 and 6. Use lower numbers to reduce how unique your chosen voice will be compared to other voices.
34    #[serde(rename = "voiceGuidance", skip_serializing_if = "Option::is_none")]
35    pub voice_guidance: Option<f64>,
36    /// 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.
37    #[serde(rename = "styleGuidance", skip_serializing_if = "Option::is_none")]
38    pub style_guidance: Option<f64>,
39    /// 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.
40    #[serde(rename = "textGuidance", skip_serializing_if = "Option::is_none")]
41    pub text_guidance: Option<f64>,
42    /// Playht voice model/engine to use.
43    #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
44    pub model: Option<ModelTrue>,
45    /// The language to use for the speech.
46    #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
47    pub language: Option<LanguageTrue>,
48    /// This is the plan for chunking the model output before it is sent to the voice provider.
49    #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
50    pub chunk_plan: Option<models::ChunkPlan>,
51    /// This is the plan for voice provider fallbacks in the event that the primary voice provider fails.
52    #[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/// This is the voice provider that will be used.
76#[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/// An emotion to be applied to the speech.
88#[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/// Playht voice model/engine to use.
122#[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/// The language to use for the speech.
140#[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}