Capability
Voice Cloning
Create a reusable private voice clone from one consented reference recording. The request queues a clone task; poll the completed task to obtain its saved voice ID for later generation flows.
Dedicated route only
Voice cloning uses POST /v1/voice-clones. It is intentionally not exposed through POST /v1/generations or a compat route because the API creates an auditable consent record before queueing the worker task.
Quickstart
POST/v1/voice-clonescreate a reusable voice clone
curl -X POST https://apiv2.soundverse.ai/v1/voice-clones \
-H "Authorization: Bearer sksoundverse_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: voice-clone-req-001" \
-d '{
"reference_file_id": "018f0000-0000-7000-8000-000000000001",
"name": "Lead vocalist reference",
"description": "Approved reference recording for internal demos",
"version": "v5",
"license": "royalty_free",
"consent": true,
"rights_attestation": "We have consent from the speaker and rights to use this recording for voice cloning."
}'The reference_file_id must be an active uploaded audio file owned by the authenticated enterprise account. For best results, use a clean 15–30 second mp3 or m4a recording of one speaker, with little or no music, reverb, or background noise. The API accepts reference files up to 15 MiB.
Read the saved voice ID after completion
The create response is {"task_id": "...", "status": "queued", "consent_id": "..."}. Poll GET /v1/generations/{task_id}; once completed, read the saved Soundverse vocal_id from output.metadata_json. Parse that JSON and copy itssv_voice_... value into the next song or singing request—never use the provider voice ID.
The clone task creates a reusable voice record, not an audio download. Audio generated with that saved voice is later available in the same account’s Soundverse Library. Use GET /v1/files/{file_id}/download for API-only download. Enterprise API outputs are hidden from public/profile surfaces by default.
Use the saved voice in generation
Voice cloning creates a reusable sv_voice_... ID; it does not create a separate inference endpoint. After the clone task completes, pass that saved vocal_id to an existing song or singing generation request.
POST/v{5,6,7}/generate/singingsing using the saved voice
POST/v{5,6,7}/generate/songgenerate a song using the saved voice
curl -X POST https://apiv2.soundverse.ai/v7/generate/song \
-H "Authorization: Bearer sksoundverse_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: song-with-cloned-voice-001" \
-d '{
"prompt": "warm cinematic pop with piano and strings",
"lyrics": "Walking through the city lights, I hear the morning call.",
"vocal_id": "sv_voice_..."
}'The example sends the cloned voice to POST /v7/generate/song. To make a vocal-only result, use the same vocal_id with POST /v7/generate/singing and replaceprompt with styleOfMusic.
The saved voice must belong to the API-key owner and have active consent. Send the Soundversesv_voice_... value only—never a provider voice ID. Saved voices work with prompt-based and reference-song generation, but not with melody_url. See Singing Generation and Song Generation for complete request and result details.
Request fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| reference_file_id | uuid | Yes | — | Owner-scoped uploaded audio file to clone from. Must be mp3/m4a and 15 MiB or smaller; a clean 15–30 second solo-speaker recording is recommended. |
| name | string | No | null | Optional display name for the saved voice. Maximum 255 characters. |
| description | string | No | null | Optional description stored with the saved voice. Maximum 1024 characters. |
| version | "v5" | "v6" | "v7" | No | "v5" | Voice clone model version. v6 and v7 may require a higher plan. |
| license | license tier | No | "royalty_free" | License tier to price and attach to the queued clone task. |
| consent | true | Yes | — | Must be true. Confirms the referenced speaker consented to this clone. |
| rights_attestation | string | Yes | — | Recorded statement that the caller has the necessary voice and recording rights. Maximum 2048 characters. |
Consent records
GET/v1/voice-clone-consents/{consent_id}read consent state
POST/v1/voice-clone-consents/{consent_id}/revokeblock future use
A successful create response includes consent_id. Store it with your own audit trail. Revocation blocks future worker verification and saved-voice resolution for that consent. Provider-side erasure is not claimed by this endpoint.
Use one unique UUID/GUID Idempotency-Key for each new clone. Reuse that key only to retry the identical request; it returns the same consent-backed task only when the request still matches the original consent record.
Pricing
$12.00 USD per voice clone. The price is flat across v5, v6, v7, and all license tiers.
| Version | Price |
|---|---|
| v5 / v6 / v7 | $12.00 |
USD flat price per clone, regardless of license tier.