Vocal Remover does one thing: it lifts the voice out of a finished mix. You give it a link to a song, it gives you an acapella. There is just one field to fill in, so it is easy to drop into a script or try once in Studio, and it is paid from the same balance as every generator.
What you can make
- Acapellas for remixes and mashups.
- Karaoke sets, when combined with the instrumental from Music Extractor.
- Clean vocals for writing down lyrics or timing them to subtitles.
- Material for studying how a singer layers harmonies.
Settings that matter
- Input: only
audio_url, a public http(s) link that opens without a login. - Defaults: the job runs with stock settings. Splitting lead from backing vocals, dereverb, engine choice, extraction strength and other output formats are not available in Kadraris yet.
- Billing basis: per started minute, so cut silence at both ends first.
- Source quality: a lossless file separates more cleanly than a heavily compressed MP3.
- Need drums and bass too: use Multistem Splitter instead.
Example job
input: audio_url = https://example.com/demo-song.flac
result: vocals only, one fileTrim the song to the verses you need before sending it.
Questions
What does Vocal Remover cost?
$0.50 per minute. The estimate arrives before processing starts, and a failed job costs nothing.
Will I get the lead and the backing singers separately?
No. The engine can split them, but Kadraris does not offer that yet, so lead and backing vocals come back together on one track.
Am I allowed to publish vocals from someone else's song?
The tool will process any audio you can link to, but releasing the result needs rights to the original recording. Read the vocal removal guide for practical tips.
Vocal Remover in your code
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vocal-remover",
"input": {
"audio_url": "https://example.com/input.mp3"
}
}'import os, time, requests
API = "https://kadraris.com/v1"
H = {"Authorization": f"Bearer {os.environ['KADRARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "vocal-remover",
"input": {
"audio_url": "https://example.com/input.mp3"
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://kadraris.com/v1";
const headers = { Authorization: `Bearer ${process.env.KADRARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "vocal-remover",
"input": {
"audio_url": "https://example.com/input.mp3"
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Input fields
| Parameter | Type | Allowed | Default |
|---|---|---|---|
audio_url * | string |
Fetch this list as JSON with GET /v1/models/vocal-remover.























