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