Create a cloned voice
Cloning flow step 2: clone a voice you name from the uploaded recording; cloning itself is free, and the clone fee is charged once with the first successful synthesis.
/v1/voice_clonePass the file_id from step 1 and a voice_id you choose; then put the voice_id in voice on /v1/audio/speech or voice_setting.voice_id on /v1/t2a_v2 to synthesize. Add text and model to get a preview clip: demo_audio is a download link on api.hop-base.com, valid for 6 hours; it is empty without text.
Billing: uploading and cloning are free. The clone fee is charged once, with the voice's first successful synthesis (the usage record details show an extra voice_clone_activation item); the preview is billed only as speech characters and does not count as first use. Prices are on the pricing page.
Lifecycle: a successful clone automatically deletes the source audio and the example audio, so upload again to clone again; a failed clone keeps the files so you can retry with other parameters. A voice not used for synthesis within 7 days of cloning is deleted automatically, and no clone fee is charged. Voices belong only to your account (on an enterprise account, shared by the member keys under the owner); other accounts cannot use them even if they know the voice_id.
Headers
Bearer sk-…: an API key created in the console under API keys; its group must include the requested model
Body parametersJSON
File ID returned by the step 1 upload with purpose=voice_clone; single-use
Range≥ 1
A voice name you choose, unique within your account: letters, digits, - and _, starting with a letter and not ending with - or _
Length8–256 chars
Example clip
File ID returned by an upload with purpose=prompt_audio
Range≥ 1
Exact transcript of the example clip, ending with punctuation
Preview text; when set, a preview clip is returned, billed as speech characters (does not count as first use)
Length≤ 1000 chars
Required when text is set
Valuesspeech-2.8-hdspeech-2.8-turbo
Same as the native endpoint
ValuesautoChineseChinese,YueEnglishArabicRussianSpanishFrenchPortugueseGermanTurkishDutchUkrainianVietnameseIndonesianJapaneseItalianKoreanThaiPolishRomanianGreekCzechFinnishHindiBulgarianDanishHebrewMalayPersianSlovakSwedishCroatianFilipinoHungarianNorwegianSlovenianCatalanNynorskTamilAfrikaans
Expected transcript; checked against the source audio with speech recognition
Length≤ 200 chars
Pass threshold for text_validation; official default 0.7
Range0–1
Noise reduction
Defaultfalse
Volume normalization
Defaultfalse
AIGC watermark
Defaultfalse
Returns
200Clone succeeded
Whether the input triggered sensitive content
Sensitive content type
Preview audio download link, valid for 6 hours; empty string without text
Returned only with a preview
Billed preview characters
Preview audio duration, milliseconds
{"status_code": 0, "status_msg": "success"} on success; errors do not come here but as a non-200 status code with an error object
0 on success
success on success
Errors
file_id already used or expired, invalid or taken voice_id, audio duration out of range, text_validation check failed, text too long, text without model, unknown fields, etc.missing_api_key / invalid_api_key / api_key_expired)insufficient_quota)model_not_found), or the path does not belong to the group (route_not_found)request body is too largevoice cloning is temporarily unavailable, voice registry is temporarily unavailable; please retry, etc.: retry later