Pull any song apart.
Stem by stem.
Audio Splitter uses BS-RoFormer — one of the most accurate AI stem separation models available — to cleanly separate any audio file into vocals, drums, bass, and other instruments. Upload a track, get back isolated stems. Ready for remixing, sampling, karaoke, transcription, or study.
Four clean stems from any audio file.
BS-RoFormer separates audio by identifying each instrument's frequency signature and isolating it. The result is four independent files — each stem contains only that element, with minimal bleed from the others.
Professional-grade separation. Simple to deploy.
Upload. Process. Download.
Integrate stem separation into your own tools.
A simple two-step API: submit a job, poll until complete, download the stems.
-F "[email protected]"
# → {"job_id": "abc-123", "status": "queued", "poll_url": "/api/v1/jobs/abc-123"}
# → {"status": "completed", "stems": {
# "vocals": "/api/v1/jobs/abc-123/stems/vocals",
# "drums": "/api/v1/jobs/abc-123/stems/drums",
# "bass": "/api/v1/jobs/abc-123/stems/bass",
# "other": "/api/v1/jobs/abc-123/stems/other"
# }}
-o vocals.wav
Any workflow that starts with an audio file.
Common questions.
Older models like Spleeter (2019) and early Demucs versions use spectrogram-based or waveform CNN approaches that struggle with two well-known artifacts: phasing (the separated stems sound thin or hollow when summed back, because phase information is lost in the frequency domain) and high-end roll-off (transient detail and air in the upper frequencies gets smeared or removed). BS-RoFormer uses a Band-Split transformer architecture that processes audio in fine-grained frequency subbands, preserving phase coherence and transient detail far more accurately. In practice this means vocals retain their natural breath and sibilance, drum transients stay sharp, and the "Other" stem doesn't bleed as badly into the vocals. On standard benchmarks (MUSDB18-HQ), BS-RoFormer achieves SDR scores of ~13+ dB for vocals — meaningfully higher than Demucs v4 (~9 dB) and significantly higher than Spleeter (~6 dB). Quality still varies with the input, but the gap is consistently large on professional recordings.
On a modern CPU, expect roughly 3–15 minutes per 3-minute track — so 1–5× real-time. With an NVIDIA GPU and CUDA, this drops to near-real-time or faster. Specific recommendations: an RTX 3060 or better processes most tracks in under a minute; an RTX 4090 handles a 5-minute track in roughly 15–20 seconds. To enable GPU acceleration, install the CUDA variant of the Python dependency: pip install audio-separator[gpu] (requires CUDA 11.8+ and a compatible NVIDIA driver). The CPU install (audio-separator[cpu]) works without any GPU and is the right starting point for testing. The API is fully asynchronous regardless — you submit the job and poll for completion, so there are no timeouts or dropped connections for long tracks.
Requires Node.js (server) and Python 3.8+ with the audio-separator package. From the ZumiLabs repository:
cd apps/audio-splitter
npm run setup # installs Python audio-separator[cpu]
npm start # → server at http://localhost:3400
Also needs ~500MB disk space for the BS-RoFormer model weights (downloaded automatically on first run) and scratch space for audio processing.
Yes. Audio Splitter is self-hosted — your files are processed on your own machine and never sent to any external service. ZumiLabs has no access to your audio. Files are stored temporarily in the working directory during processing and can be cleaned up automatically after job completion.