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