vapi_client/models/
vapi_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 VapiVoice {
16    /// This is the voice provider that will be used.
17    #[serde(rename = "provider")]
18    pub provider: Provider,
19    /// The voices provided by Vapi
20    #[serde(rename = "voiceId")]
21    pub voice_id: VoiceId,
22    /// This is the speed multiplier that will be used.  @default 1
23    #[serde(rename = "speed", skip_serializing_if = "Option::is_none")]
24    pub speed: Option<f64>,
25    /// This is the language code (ISO 639-1) that will be used.  @default 'en-US'
26    #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
27    pub language: Option<Language>,
28    /// This is the plan for chunking the model output before it is sent to the voice provider.
29    #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
30    pub chunk_plan: Option<models::ChunkPlan>,
31    /// This is the plan for voice provider fallbacks in the event that the primary voice provider fails.
32    #[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
33    pub fallback_plan: Option<models::FallbackPlan>,
34}
35
36impl VapiVoice {
37    pub fn new(provider: Provider, voice_id: VoiceId) -> VapiVoice {
38        VapiVoice {
39            provider,
40            voice_id,
41            speed: None,
42            language: None,
43            chunk_plan: None,
44            fallback_plan: None,
45        }
46    }
47}
48/// This is the voice provider that will be used.
49#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum Provider {
51    #[serde(rename = "vapi")]
52    Vapi,
53}
54
55impl Default for Provider {
56    fn default() -> Provider {
57        Self::Vapi
58    }
59}
60/// The voices provided by Vapi
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
62pub enum VoiceId {
63    #[serde(rename = "Elliot")]
64    Elliot,
65    #[serde(rename = "Rohan")]
66    Rohan,
67    #[serde(rename = "Lily")]
68    Lily,
69    #[serde(rename = "Savannah")]
70    Savannah,
71    #[serde(rename = "Hana")]
72    Hana,
73    #[serde(rename = "Neha")]
74    Neha,
75    #[serde(rename = "Cole")]
76    Cole,
77    #[serde(rename = "Harry")]
78    Harry,
79    #[serde(rename = "Paige")]
80    Paige,
81    #[serde(rename = "Spencer")]
82    Spencer,
83}
84
85impl Default for VoiceId {
86    fn default() -> VoiceId {
87        Self::Elliot
88    }
89}
90/// This is the language code (ISO 639-1) that will be used.  @default 'en-US'
91#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
92pub enum Language {
93    #[serde(rename = "en-US")]
94    EnUs,
95    #[serde(rename = "en-GB")]
96    EnGb,
97    #[serde(rename = "en-AU")]
98    EnAu,
99    #[serde(rename = "en-CA")]
100    EnCa,
101    #[serde(rename = "ja")]
102    Ja,
103    #[serde(rename = "zh")]
104    Zh,
105    #[serde(rename = "de")]
106    De,
107    #[serde(rename = "hi")]
108    Hi,
109    #[serde(rename = "fr-FR")]
110    FrFr,
111    #[serde(rename = "fr-CA")]
112    FrCa,
113    #[serde(rename = "ko")]
114    Ko,
115    #[serde(rename = "pt-BR")]
116    PtBr,
117    #[serde(rename = "pt-PT")]
118    PtPt,
119    #[serde(rename = "it")]
120    It,
121    #[serde(rename = "es-ES")]
122    EsEs,
123    #[serde(rename = "es-MX")]
124    EsMx,
125    #[serde(rename = "id")]
126    Id,
127    #[serde(rename = "nl")]
128    Nl,
129    #[serde(rename = "tr")]
130    Tr,
131    #[serde(rename = "fil")]
132    Fil,
133    #[serde(rename = "pl")]
134    Pl,
135    #[serde(rename = "sv")]
136    Sv,
137    #[serde(rename = "bg")]
138    Bg,
139    #[serde(rename = "ro")]
140    Ro,
141    #[serde(rename = "ar-SA")]
142    ArSa,
143    #[serde(rename = "ar-AE")]
144    ArAe,
145    #[serde(rename = "cs")]
146    Cs,
147    #[serde(rename = "el")]
148    El,
149    #[serde(rename = "fi")]
150    Fi,
151    #[serde(rename = "hr")]
152    Hr,
153    #[serde(rename = "ms")]
154    Ms,
155    #[serde(rename = "sk")]
156    Sk,
157    #[serde(rename = "da")]
158    Da,
159    #[serde(rename = "ta")]
160    Ta,
161    #[serde(rename = "uk")]
162    Uk,
163    #[serde(rename = "ru")]
164    Ru,
165    #[serde(rename = "hu")]
166    Hu,
167    #[serde(rename = "no")]
168    No,
169    #[serde(rename = "vi")]
170    Vi,
171}
172
173impl Default for Language {
174    fn default() -> Language {
175        Self::EnUs
176    }
177}
178