Class: Vapi::ElevenLabsVoice

Inherits:
Object
  • Object
show all
Defined in:
lib/vapi_server_sdk/types/eleven_labs_voice.rb

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(voice_id:, filler_injection_enabled: OMIT, stability: OMIT, similarity_boost: OMIT, style: OMIT, use_speaker_boost: OMIT, optimize_streaming_latency: OMIT, enable_ssml_parsing: OMIT, model: OMIT, language: OMIT, chunk_plan: OMIT, additional_properties: nil) ⇒ Vapi::ElevenLabsVoice

Parameters:

  • filler_injection_enabled (Boolean) (defaults to: OMIT)

    This determines whether fillers are injected into the model output before inputting it into the voice provider. Default ‘false` because you can achieve better results with prompting the model.

  • voice_id (Vapi::ElevenLabsVoiceId)

    This is the provider-specific ID that will be used. Ensure the Voice is present in your 11Labs Voice Library.

  • stability (Float) (defaults to: OMIT)

    Defines the stability for voice settings.

  • similarity_boost (Float) (defaults to: OMIT)

    Defines the similarity boost for voice settings.

  • style (Float) (defaults to: OMIT)

    Defines the style for voice settings.

  • use_speaker_boost (Boolean) (defaults to: OMIT)

    Defines the use speaker boost for voice settings.

  • optimize_streaming_latency (Float) (defaults to: OMIT)

    Defines the optimize streaming latency for voice settings. Defaults to 3.

  • enable_ssml_parsing (Boolean) (defaults to: OMIT)

    This enables the use of elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. @default false

  • model (Vapi::ElevenLabsVoiceModel) (defaults to: OMIT)

    This is the model that will be used. Defaults to ‘eleven_turbo_v2’ if not specified.

  • language (String) (defaults to: OMIT)

    This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided.

  • chunk_plan (Vapi::ChunkPlan) (defaults to: OMIT)

    This is the plan for chunking the model output before it is sent to the voice provider.

  • additional_properties (OpenStruct) (defaults to: nil)

    Additional properties unmapped to the current class definition



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 74

def initialize(voice_id:, filler_injection_enabled: OMIT, stability: OMIT, similarity_boost: OMIT, style: OMIT,
               use_speaker_boost: OMIT, optimize_streaming_latency: OMIT, enable_ssml_parsing: OMIT, model: OMIT, language: OMIT, chunk_plan: OMIT, additional_properties: nil)
  @filler_injection_enabled = filler_injection_enabled if filler_injection_enabled != OMIT
  @voice_id = voice_id
  @stability = stability if stability != OMIT
  @similarity_boost = similarity_boost if similarity_boost != OMIT
  @style = style if style != OMIT
  @use_speaker_boost = use_speaker_boost if use_speaker_boost != OMIT
  @optimize_streaming_latency = optimize_streaming_latency if optimize_streaming_latency != OMIT
  @enable_ssml_parsing = enable_ssml_parsing if enable_ssml_parsing != OMIT
  @model = model if model != OMIT
  @language = language if language != OMIT
  @chunk_plan = chunk_plan if chunk_plan != OMIT
  @additional_properties = additional_properties
  @_field_set = {
    "fillerInjectionEnabled": filler_injection_enabled,
    "voiceId": voice_id,
    "stability": stability,
    "similarityBoost": similarity_boost,
    "style": style,
    "useSpeakerBoost": use_speaker_boost,
    "optimizeStreamingLatency": optimize_streaming_latency,
    "enableSsmlParsing": enable_ssml_parsing,
    "model": model,
    "language": language,
    "chunkPlan": chunk_plan
  }.reject do |_k, v|
    v == OMIT
  end
end

Instance Attribute Details

#additional_propertiesOpenStruct (readonly)

Returns Additional properties unmapped to the current class definition.

Returns:

  • (OpenStruct)

    Additional properties unmapped to the current class definition



44
45
46
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 44

def additional_properties
  @additional_properties
end

#chunk_planVapi::ChunkPlan (readonly)

Returns This is the plan for chunking the model output before it is sent to the voice provider.

Returns:

  • (Vapi::ChunkPlan)

    This is the plan for chunking the model output before it is sent to the voice provider.



42
43
44
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 42

def chunk_plan
  @chunk_plan
end

#enable_ssml_parsingBoolean (readonly)

Returns This enables the use of elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Defaults to false to save latency. @default false.

Returns:



32
33
34
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 32

def enable_ssml_parsing
  @enable_ssml_parsing
end

#filler_injection_enabledBoolean (readonly)

Returns This determines whether fillers are injected into the model output before inputting it into the voice provider. Default ‘false` because you can achieve better results with prompting the model.

Returns:

  • (Boolean)

    This determines whether fillers are injected into the model output before inputting it into the voice provider. Default ‘false` because you can achieve better results with prompting the model.



14
15
16
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 14

def filler_injection_enabled
  @filler_injection_enabled
end

#languageString (readonly)

This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided.

Returns:

  • (String)

    This is the language (ISO 639-1) that is enforced for the model. Currently only Turbo v2.5 supports language enforcement. For other models, an error will be returned if language code is provided.



39
40
41
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 39

def language
  @language
end

#modelVapi::ElevenLabsVoiceModel (readonly)

Returns This is the model that will be used. Defaults to ‘eleven_turbo_v2’ if not specified.

Returns:



35
36
37
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 35

def model
  @model
end

#optimize_streaming_latencyFloat (readonly)

Returns Defines the optimize streaming latency for voice settings. Defaults to 3.

Returns:

  • (Float)

    Defines the optimize streaming latency for voice settings. Defaults to 3.



27
28
29
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 27

def optimize_streaming_latency
  @optimize_streaming_latency
end

#similarity_boostFloat (readonly)

Returns Defines the similarity boost for voice settings.

Returns:

  • (Float)

    Defines the similarity boost for voice settings.



21
22
23
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 21

def similarity_boost
  @similarity_boost
end

#stabilityFloat (readonly)

Returns Defines the stability for voice settings.

Returns:

  • (Float)

    Defines the stability for voice settings.



19
20
21
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 19

def stability
  @stability
end

#styleFloat (readonly)

Returns Defines the style for voice settings.

Returns:

  • (Float)

    Defines the style for voice settings.



23
24
25
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 23

def style
  @style
end

#use_speaker_boostBoolean (readonly)

Returns Defines the use speaker boost for voice settings.

Returns:

  • (Boolean)

    Defines the use speaker boost for voice settings.



25
26
27
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 25

def use_speaker_boost
  @use_speaker_boost
end

#voice_idVapi::ElevenLabsVoiceId (readonly)

Returns This is the provider-specific ID that will be used. Ensure the Voice is present in your 11Labs Voice Library.

Returns:

  • (Vapi::ElevenLabsVoiceId)

    This is the provider-specific ID that will be used. Ensure the Voice is present in your 11Labs Voice Library.



17
18
19
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 17

def voice_id
  @voice_id
end

Class Method Details

.from_json(json_object:) ⇒ Vapi::ElevenLabsVoice

Deserialize a JSON object to an instance of ElevenLabsVoice

Parameters:

  • json_object (String)

Returns:



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 109

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  filler_injection_enabled = parsed_json["fillerInjectionEnabled"]
  if parsed_json["voiceId"].nil?
    voice_id = nil
  else
    voice_id = parsed_json["voiceId"].to_json
    voice_id = Vapi::ElevenLabsVoiceId.from_json(json_object: voice_id)
  end
  stability = parsed_json["stability"]
  similarity_boost = parsed_json["similarityBoost"]
  style = parsed_json["style"]
  use_speaker_boost = parsed_json["useSpeakerBoost"]
  optimize_streaming_latency = parsed_json["optimizeStreamingLatency"]
  enable_ssml_parsing = parsed_json["enableSsmlParsing"]
  model = parsed_json["model"]
  language = parsed_json["language"]
  if parsed_json["chunkPlan"].nil?
    chunk_plan = nil
  else
    chunk_plan = parsed_json["chunkPlan"].to_json
    chunk_plan = Vapi::ChunkPlan.from_json(json_object: chunk_plan)
  end
  new(
    filler_injection_enabled: filler_injection_enabled,
    voice_id: voice_id,
    stability: stability,
    similarity_boost: similarity_boost,
    style: style,
    use_speaker_boost: use_speaker_boost,
    optimize_streaming_latency: optimize_streaming_latency,
    enable_ssml_parsing: enable_ssml_parsing,
    model: model,
    language: language,
    chunk_plan: chunk_plan,
    additional_properties: struct
  )
end

.validate_raw(obj:) ⇒ Void

Leveraged for Union-type generation, validate_raw attempts to parse the given

hash and check each fields type against the current object's property
definitions.

Parameters:

  • obj (Object)

Returns:

  • (Void)


162
163
164
165
166
167
168
169
170
171
172
173
174
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 162

def self.validate_raw(obj:)
  obj.filler_injection_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.filler_injection_enabled is not the expected type, validation failed.")
  Vapi::ElevenLabsVoiceId.validate_raw(obj: obj.voice_id)
  obj.stability&.is_a?(Float) != false || raise("Passed value for field obj.stability is not the expected type, validation failed.")
  obj.similarity_boost&.is_a?(Float) != false || raise("Passed value for field obj.similarity_boost is not the expected type, validation failed.")
  obj.style&.is_a?(Float) != false || raise("Passed value for field obj.style is not the expected type, validation failed.")
  obj.use_speaker_boost&.is_a?(Boolean) != false || raise("Passed value for field obj.use_speaker_boost is not the expected type, validation failed.")
  obj.optimize_streaming_latency&.is_a?(Float) != false || raise("Passed value for field obj.optimize_streaming_latency is not the expected type, validation failed.")
  obj.enable_ssml_parsing&.is_a?(Boolean) != false || raise("Passed value for field obj.enable_ssml_parsing is not the expected type, validation failed.")
  obj.model&.is_a?(Vapi::ElevenLabsVoiceModel) != false || raise("Passed value for field obj.model is not the expected type, validation failed.")
  obj.language&.is_a?(String) != false || raise("Passed value for field obj.language is not the expected type, validation failed.")
  obj.chunk_plan.nil? || Vapi::ChunkPlan.validate_raw(obj: obj.chunk_plan)
end

Instance Method Details

#to_json(*_args) ⇒ String

Serialize an instance of ElevenLabsVoice to a JSON object

Returns:

  • (String)


152
153
154
# File 'lib/vapi_server_sdk/types/eleven_labs_voice.rb', line 152

def to_json(*_args)
  @_field_set&.to_json
end