vapi_client/models/
fallback_open_ai_voice.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct FallbackOpenAiVoice {
16 #[serde(rename = "provider")]
18 pub provider: Provider,
19 #[serde(rename = "voiceId")]
21 pub voice_id: VoiceId,
22 #[serde(rename = "speed", skip_serializing_if = "Option::is_none")]
24 pub speed: Option<f64>,
25 #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
27 pub chunk_plan: Option<Box<models::ChunkPlan>>,
28}
29
30impl FallbackOpenAiVoice {
31 pub fn new(provider: Provider, voice_id: VoiceId) -> FallbackOpenAiVoice {
32 FallbackOpenAiVoice {
33 provider,
34 voice_id,
35 speed: None,
36 chunk_plan: None,
37 }
38 }
39}
40#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
42pub enum Provider {
43 #[serde(rename = "openai")]
44 Openai,
45}
46
47impl Default for Provider {
48 fn default() -> Provider {
49 Self::Openai
50 }
51}
52#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
54pub enum VoiceId {
55 #[serde(rename = "alloy")]
56 Alloy,
57 #[serde(rename = "echo")]
58 Echo,
59 #[serde(rename = "fable")]
60 Fable,
61 #[serde(rename = "onyx")]
62 Onyx,
63 #[serde(rename = "nova")]
64 Nova,
65 #[serde(rename = "shimmer")]
66 Shimmer,
67 #[serde(rename = "ash")]
68 Ash,
69 #[serde(rename = "ballad")]
70 Ballad,
71 #[serde(rename = "coral")]
72 Coral,
73 #[serde(rename = "sage")]
74 Sage,
75 #[serde(rename = "verse")]
76 Verse,
77}
78
79impl Default for VoiceId {
80 fn default() -> VoiceId {
81 Self::Alloy
82 }
83}
84