Ai Music Api · Separate Vocals
Audio model, from $0.063 per job.
Audio
ai-music-api/separate-vocalsUse with POST /v1/jobs.
Price
| Settings | Price |
|---|---|
| separate, vocal | $0.063 per job |
| advanced, split | $0.125 per job |
| multi, separation, stem, stemname, without | $0.313 per job |
Input fields
| Field | Type or options | Default |
|---|---|---|
type | separate_vocal split_stem split_stem_advanced | "separate_vocal" |
stem_name | Lead Vocal Drum Kit Kick Snare Risers Bass Backing Vocals Piano Electric Guitar Percussion String Section Synth Acoustic Guitar Sound Effects Synth Pad Synth Bass Guitar Brass Section Organ Electronic Drum Kit Lead Electric Guitar Synth Keys Rhythm Electric Guitar Electric Piano Upright Bass Keyboards Distorted Electric Guitar Synth Strings Synth Lead Woodwinds Rhythm Acoustic Guitar Flute Harp Tambourine Trumpet Arpeggiator Accordion Fiddle Pedal Steel Guitar Synth Voice Violin Digital Piano Synth Brass Mandolin Choir Banjo Bells Clarinet Tenor Saxophone Trombone Shaker French Horn Glockenspiel Electric Bass Cello Timpani Harmonica Marimba Vibraphone Lap Steel Guitar Saxophone Orchestra Horns Cymbals Hand Clap Oboe Celesta Congas Drone Alto Saxophone Double Bass Ukulele Harpsichord Baritone Saxophone Xylophone Tuba Bass Guitar Whistle Lead Guitar Rhodes 808 Bongos Bassoon Cowbell Viola Sitar Steel Drums Piccolo Theremin Bagpipes Hi-Hat Music Box Melodica Tabla Koto Djembe Taiko Didgeridoo |
Files are public https links. Safety filters are always on.
Example
curl https://pinerouter.ai/v1/jobs \
-H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
-d '{"model":"ai-music-api/separate-vocals","input":{"type":"separate_vocal"}}'Then poll GET /v1/jobs/<id> until data.status is succeeded (links in data.outputs), or pass webhook_url to be called when it finishes; see Jobs.
import time, requests
BASE, H = "https://pinerouter.ai", {"Authorization": "Bearer YOUR_API_KEY"}
job = requests.post(f"{BASE}/v1/jobs", headers=H, json={"model":"ai-music-api/separate-vocals","input":{"type":"separate_vocal"}}).json()["data"]
while job["status"] not in ("succeeded", "failed"):
time.sleep(5)
job = requests.get(f"{BASE}/v1/jobs/{job['id']}", headers=H).json()["data"]
print(job["outputs"] or job.get("error"))