Capability
Song Translation
Translate a full song into another language. Soundverse transcribes the uploaded track, translates its lyrics into the target language, regenerates the vocals in that language while preserving the original singer's character and gender, layers the new vocals over the original instrumental, and renders one finished master file. The result is added to your Soundverse Library.
Dedicated route only
Song translation uses POST /v1/song-translations. It runs a fixed multi-step pipeline; there is no generic tool_id for it.
Quickstart
POST/v1/song-translationstranslate a song into another language
curl -X POST https://apiv2.soundverse.ai/v1/song-translations \
-H "Authorization: Bearer sksoundverse_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: song-translation-001" \
-d '{
"song_file_id": "018f0000-0000-7000-8000-000000000002",
"target_language": "Spanish",
"syllable_matched": true,
"song_style": "pop ballad, emotional, female vocals",
"license": "royalty_free"
}'The song_file_id must be an active uploaded audio file owned by the authenticated enterprise account. Song translation accepts source audio up to 60 MiB.
Getting a song_file_id
Upload the song first via POST /v1/files — either {"source_url": "..."} if you already host the file, or a multipart/form-data file part to upload bytes directly. Both return a file_id owned by your account, ready to pass here.
Request fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| song_file_id | uuid | Yes | — | Owner-scoped uploaded audio file — the original song to translate. Maximum 60 MiB. |
| target_language | string | Yes | — | Language to translate the song into, as a human-readable name (for example "Spanish", "Hindi", "Japanese"). |
| syllable_matched | boolean | No | true | When true, each translated line keeps a syllable count close to the original so it still fits the melody. When false, the lyrics are translated literally. |
| song_style | string | Yes | — | The song’s style: genre, mood, and the singer’s voice/gender (for example "pop ballad, emotional, female vocals"). Used to regenerate the vocals in the target language while preserving the original singer’s character. |
| license | license tier | No | "royalty_free" | License tier to price and attach to every step of the pipeline. |
How it works
Each request runs six steps in order:
- Transcribe the uploaded song’s lyrics.
- Translate the lyrics into
target_language. - Separate the original song into vocal and instrumental stems.
- Regenerate the vocals singing the translated lyrics, guided by
song_style, preserving the original singer’s character and gender. - Layer the new vocals over the original instrumental.
- Render the mix into one finished master file.
Progress streams over GET /v1/generations/{task_id}/stream as each step starts and finishes.
Results and playback
Poll GET /v1/generations/{task_id} until the task is completed. The finished translated song is added to the authenticated account’s Soundverse Library. Enterprise API outputs are hidden from public/profile surfaces by default.
For API-only download, resolve the output’s file_id with GET /v1/files/{file_id}/url and use the returned short-lived signed URL.
Use the Library for playback or download
Open Soundverse Library using the same account as the API key. The Library creates an authorized, temporary playback/download link for the result.
Pricing
Song translation is priced pass-through: you are billed for each step the pipeline runs, at that step’s enterprise rate, in the license tier you requested. The pipeline itself adds no separate fee. Your billing ledger shows one entry per step.
Because the total depends on the source song (length, whether a transcription cache hit applies), there is no fixed per-request price. The steps that carry the cost are lyric transcription, lyric translation, stem separation, vocal regeneration, mixing, and the final render to master.