vapi_client/models/
eleven_labs_voice.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ElevenLabsVoice {
16 #[serde(rename = "provider")]
18 pub provider: Provider,
19 #[serde(rename = "voiceId")]
20 pub voice_id: models::ElevenLabsVoiceVoiceId,
21 #[serde(rename = "stability", skip_serializing_if = "Option::is_none")]
23 pub stability: Option<f64>,
24 #[serde(rename = "similarityBoost", skip_serializing_if = "Option::is_none")]
26 pub similarity_boost: Option<f64>,
27 #[serde(rename = "style", skip_serializing_if = "Option::is_none")]
29 pub style: Option<f64>,
30 #[serde(rename = "useSpeakerBoost", skip_serializing_if = "Option::is_none")]
32 pub use_speaker_boost: Option<bool>,
33 #[serde(rename = "speed", skip_serializing_if = "Option::is_none")]
35 pub speed: Option<f64>,
36 #[serde(rename = "optimizeStreamingLatency", skip_serializing_if = "Option::is_none")]
38 pub optimize_streaming_latency: Option<f64>,
39 #[serde(rename = "enableSsmlParsing", skip_serializing_if = "Option::is_none")]
41 pub enable_ssml_parsing: Option<bool>,
42 #[serde(rename = "autoMode", skip_serializing_if = "Option::is_none")]
44 pub auto_mode: Option<bool>,
45 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
47 pub model: Option<Model>,
48 #[serde(rename = "chunkPlan", skip_serializing_if = "Option::is_none")]
50 pub chunk_plan: Option<models::ChunkPlan>,
51 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
53 pub language: Option<String>,
54 #[serde(rename = "fallbackPlan", skip_serializing_if = "Option::is_none")]
56 pub fallback_plan: Option<models::FallbackPlan>,
57}
58
59impl ElevenLabsVoice {
60 pub fn new(provider: Provider, voice_id: models::ElevenLabsVoiceVoiceId) -> ElevenLabsVoice {
61 ElevenLabsVoice {
62 provider,
63 voice_id,
64 stability: None,
65 similarity_boost: None,
66 style: None,
67 use_speaker_boost: None,
68 speed: None,
69 optimize_streaming_latency: None,
70 enable_ssml_parsing: None,
71 auto_mode: None,
72 model: None,
73 chunk_plan: None,
74 language: None,
75 fallback_plan: None,
76 }
77 }
78}
79#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
81pub enum Provider {
82 #[serde(rename = "11labs")]
83 Variant11labs,
84}
85
86impl Default for Provider {
87 fn default() -> Provider {
88 Self::Variant11labs
89 }
90}
91#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
93pub enum Model {
94 #[serde(rename = "eleven_multilingual_v2")]
95 ElevenMultilingualV2,
96 #[serde(rename = "eleven_turbo_v2")]
97 ElevenTurboV2,
98 #[serde(rename = "eleven_turbo_v2_5")]
99 ElevenTurboV25,
100 #[serde(rename = "eleven_flash_v2")]
101 ElevenFlashV2,
102 #[serde(rename = "eleven_flash_v2_5")]
103 ElevenFlashV25,
104 #[serde(rename = "eleven_monolingual_v1")]
105 ElevenMonolingualV1,
106}
107
108impl Default for Model {
109 fn default() -> Model {
110 Self::ElevenMultilingualV2
111 }
112}
113