test_framework

POST /test_framework/v1/personalities/clone_voice/

Changed on

Clone a voice from an uploaded audio sample and return its provider voice id.

multipart/form-data: file (the sample), provider ("11labs" or "cartesia"), and optionally name, description, language (Cartesia only — ElevenLabs infers language from the audio).

The returned voice_id is what a personality's voice_id field expects. The clone lands on our shared platform provider account, which is what lets the bot synthesise with it later using only its own keys. Nothing is persisted here: the caller owns the id from this point on.

Request

  • Base URL
    https://api.cekura.ai
  • URL
    https://api.cekura.ai/test_framework/v1/personalities/clone_voice/
  • Auth
    • API key in header X-CEKURA-API-KEY
    • or HTTP bearer
    • or HTTP bearer

Request body

idinteger
projectinteger

Project that will own the personality. Optional when using a project-scoped API key (it is inferred from the key); required otherwise. Example: 1

namestring required

Name of the personality Example: "Customer Service"

promptstring

Prompt of the personality Example: "You are a friendly and helpful customer service agent who is always willing to help"

language'af' | 'ar' | 'bn' | 'bg' | 'zh' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fi' | 'fr' | 'de' | 'el' | 'gu' | 'hi' | 'he' | 'hu' | 'id' | 'it' | 'ja' | 'kn' | 'kk' | 'ko' | 'ms' | 'ml' | 'mr' | 'multi' | 'no' | 'pl' | 'pa' | 'pt' | 'ro' | 'ru' | 'sk' | 'es' | 'sv' | 'th' | 'tr' | 'tl' | 'ta' | 'te' | 'uk' | 'uz' | 'vi'

Language of the personality

  • af - Afrikaans
  • ar - Arabic
  • bn - Bengali
  • bg - Bulgarian
  • zh - Chinese Simplified
  • cs - Czech
  • da - Danish
  • nl - Dutch
  • en - English
  • et - Estonian
  • fi - Finnish
  • fr - French
  • de - German
  • el - Greek
  • gu - Gujarati
  • hi - Hindi
  • he - Hebrew
  • hu - Hungarian
  • id - Indonesian
  • it - Italian
  • ja - Japanese
  • kn - Kannada
  • kk - Kazakh
  • ko - Korean
  • ms - Malay
  • ml - Malayalam
  • mr - Marathi
  • multi - Multilingual
  • no - Norwegian
  • pl - Polish
  • pa - Punjabi
  • pt - Portuguese
  • ro - Romanian
  • ru - Russian
  • sk - Slovak
  • es - Spanish
  • sv - Swedish
  • th - Thai
  • tr - Turkish
  • tl - Tagalog
  • ta - Tamil
  • te - Telugu
  • uk - Ukrainian
  • uz - Uzbek
  • vi - Vietnamese
accentstring

Read-only label describing the accent of this personality's voice, as reported by the voice provider. It is derived from voice_id and cannot be set directly: speech is synthesised from voice_id alone, so changing the accent of a personality means choosing a different voice. Empty when the provider publishes no accent for the voice.

background_noisestring required

Background noise

voice_modelstring required

Voice model name

voice_idstring

Voice ID Example: "TX3LPaxmHKxFdv7VOQHJ"

interruption_levelstring

Interruption level

speednumber

Speed of the voice

start_speaking_plannumber

Wait seconds before the bot starts speaking (float >= 0). Ignored if interruption_level is also set in the same request (preset takes precedence). Example: 0.7

voice_volumestring nullable

Speech volume of the testing agent (0.01 to 2.0, default 1.0). Works on every voice provider — it is amplitude scaling applied after synthesis, so it reaches far quieter levels than generation_config.volume, which is a Cartesia-native parameter limited to Cartesia's own 0.5-2.0. Setting this clears any generation_config.volume so the ratio is never applied twice. Send null to remove it. Example: 0.05 for a barely-audible caller.

effective_voice_volumestring

Read-only. The volume the call will actually play at: voice_volume if set, else a legacy generation_config.volume, else 1.0. Use this to populate a volume control.

patronus_settingsunknown
provider_agent_idstring

Provider agent ID Example: "assistant_123"

end_call_enabledboolean

Whether the end call is enabled

provider'11labs' | 'cartesia'

Provider of the voice

  • 11labs - Elevenlabs
  • cartesia - Cartesia

Response

idinteger
projectinteger

Project that will own the personality. Optional when using a project-scoped API key (it is inferred from the key); required otherwise. Example: 1

namestring required

Name of the personality Example: "Customer Service"

promptstring

Prompt of the personality Example: "You are a friendly and helpful customer service agent who is always willing to help"

language'af' | 'ar' | 'bn' | 'bg' | 'zh' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fi' | 'fr' | 'de' | 'el' | 'gu' | 'hi' | 'he' | 'hu' | 'id' | 'it' | 'ja' | 'kn' | 'kk' | 'ko' | 'ms' | 'ml' | 'mr' | 'multi' | 'no' | 'pl' | 'pa' | 'pt' | 'ro' | 'ru' | 'sk' | 'es' | 'sv' | 'th' | 'tr' | 'tl' | 'ta' | 'te' | 'uk' | 'uz' | 'vi'

Language of the personality

  • af - Afrikaans
  • ar - Arabic
  • bn - Bengali
  • bg - Bulgarian
  • zh - Chinese Simplified
  • cs - Czech
  • da - Danish
  • nl - Dutch
  • en - English
  • et - Estonian
  • fi - Finnish
  • fr - French
  • de - German
  • el - Greek
  • gu - Gujarati
  • hi - Hindi
  • he - Hebrew
  • hu - Hungarian
  • id - Indonesian
  • it - Italian
  • ja - Japanese
  • kn - Kannada
  • kk - Kazakh
  • ko - Korean
  • ms - Malay
  • ml - Malayalam
  • mr - Marathi
  • multi - Multilingual
  • no - Norwegian
  • pl - Polish
  • pa - Punjabi
  • pt - Portuguese
  • ro - Romanian
  • ru - Russian
  • sk - Slovak
  • es - Spanish
  • sv - Swedish
  • th - Thai
  • tr - Turkish
  • tl - Tagalog
  • ta - Tamil
  • te - Telugu
  • uk - Ukrainian
  • uz - Uzbek
  • vi - Vietnamese
accentstring

Read-only label describing the accent of this personality's voice, as reported by the voice provider. It is derived from voice_id and cannot be set directly: speech is synthesised from voice_id alone, so changing the accent of a personality means choosing a different voice. Empty when the provider publishes no accent for the voice.

background_noisestring required

Background noise

voice_modelstring required

Voice model name

voice_idstring

Voice ID Example: "TX3LPaxmHKxFdv7VOQHJ"

interruption_levelstring

Interruption level

speednumber

Speed of the voice

start_speaking_plannumber

Wait seconds before the bot starts speaking (float >= 0). Ignored if interruption_level is also set in the same request (preset takes precedence). Example: 0.7

voice_volumestring nullable

Speech volume of the testing agent (0.01 to 2.0, default 1.0). Works on every voice provider — it is amplitude scaling applied after synthesis, so it reaches far quieter levels than generation_config.volume, which is a Cartesia-native parameter limited to Cartesia's own 0.5-2.0. Setting this clears any generation_config.volume so the ratio is never applied twice. Send null to remove it. Example: 0.05 for a barely-audible caller.

effective_voice_volumestring

Read-only. The volume the call will actually play at: voice_volume if set, else a legacy generation_config.volume, else 1.0. Use this to populate a volume control.

patronus_settingsunknown
provider_agent_idstring

Provider agent ID Example: "assistant_123"

end_call_enabledboolean

Whether the end call is enabled

provider'11labs' | 'cartesia'

Provider of the voice

  • 11labs - Elevenlabs
  • cartesia - Cartesia

Changes