ZumiLabs Audio Splitter

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.

BS-RoFormer modelREST APISelf-hostedSupports MP3, WAV, FLAC, AAC, OGG, M4A
Screenshot needed
🎵
Audio Splitter Web UI
The Audio Splitter web interface showing a completed job with the separated stems (Vocals, Drums, Bass, Other) ready to download
What to capture
Run Audio Splitter locally and open the web UI at localhost:3400
Upload an audio file, wait for separation to complete, then capture the result view
Show the 4 stem download buttons (Vocals, Drums, Bass, Other) clearly visible with file sizes
Ideally show a waveform or progress indicator too if the UI includes one. Dark theme, 1280px wide.
4
Stems per Track
6
Input Formats
200MB
Max Upload Size
Self
Hosted, Private
What You Get

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.

🎤
Vocals
The lead and backing vocals, isolated from all instrumentation
🥁
Drums
Kick, snare, hi-hat, cymbals — the full drum kit isolated
🎸
Bass
Bass guitar and sub-bass frequencies separated cleanly
🎹
Other
Everything else — guitar, piano, synths, strings, all remaining instrumentation
Screenshot needed
🎛️
Completed Separation — Stems Ready to Download
The result view after a successful separation showing all 4 stems with download links, and optionally an audio player for each one
What to capture
Run a separation job to completion and screenshot the results view
Show all 4 stem cards — Vocals, Drums, Bass, Other — with their download buttons active
If the UI includes waveform previews or playback buttons for each stem, make sure those are visible
Show the original filename and any metadata (duration, format) visible somewhere on the page
Features

Professional-grade separation. Simple to deploy.

🤖
BS-RoFormer Model
Powered by BS-RoFormer (Band-Split RoFormer), a transformer-based architecture that processes audio in fine-grained frequency subbands — preserving phase coherence and transient detail where older models like Spleeter and Demucs introduce muddy phasing and high-end roll-off. Vocals stay bright. Drum transients stay sharp.
📁
6 Input Formats
Upload MP3, WAV, FLAC, AAC, OGG, or M4A files up to 200MB. The service handles format detection and conversion internally — no pre-processing needed on your end.
Async Job Queue
Submit a file and get a job ID back immediately. Poll the job status endpoint to check progress. Download the stems when the job completes. No blocking, no timeouts, no dropped connections for long files.
🌐
Browser UI Included
Comes with a built-in web interface at the root URL. Upload a file, watch the job progress, download the stems — all without writing any code. The UI also serves as a live demonstration of the REST API.
🔌
REST API
A clean HTTP API for integrating stem separation into your own tools. Submit jobs, poll status, and download stem files — all via standard REST endpoints. Full OpenAPI spec included.
🏠
Self-Hosted
Runs on your own infrastructure. Audio files are processed locally and never sent to a third-party service. Suitable for commercial work, private recordings, and anything where sending audio to an external cloud service is a concern.
How It Works

Upload. Process. Download.

01
Upload your audio
Drag and drop or select a file in the browser UI (or POST to the API). Supports MP3, WAV, FLAC, AAC, OGG, M4A up to 200MB.
02
Job queues immediately
You receive a job ID instantly. The separation runs asynchronously in the background — no waiting on the upload page for long files.
03
BS-RoFormer separates
The model analyses the audio and separates it into Vocals, Drums, Bass, and Other. Depending on file length and hardware, this typically takes 1–5× the track duration.
04
Download your stems
When the job completes, download each stem as a separate audio file. Use them in your DAW, remix tool, or anywhere you work with audio.
Screen recording needed
📹
End-to-End Demo — Upload to Download
A screen recording (30–60 seconds) showing the full flow: drag-drop an MP3, watch the job progress indicator, then download the Vocals stem
What to record
Open the Audio Splitter UI at localhost:3400
Drag a short (30–60 second) audio file onto the upload area
Show the job progress indicator counting up or showing "processing"
Show the completion state with the 4 stem download buttons appearing
Click one download to show it saving. Keep under 60 seconds total. No audio needed in the recording.
REST API

Integrate stem separation into your own tools.

A simple two-step API: submit a job, poll until complete, download the stems.

1. Submit a job
curl -X POST http://localhost:3400/api/v1/jobs \
-F "[email protected]"

# → {"job_id": "abc-123", "status": "queued", "poll_url": "/api/v1/jobs/abc-123"}
2. Poll until complete
curl http://localhost:3400/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"
# }}
3. Download stems
curl http://localhost:3400/api/v1/jobs/abc-123/stems/vocals \
-o vocals.wav
Who Uses It

Any workflow that starts with an audio file.

🎚️
Music Producers & Remixers
Extract the vocal stem from any track to create acapellas for remixes. Pull the drum stem for drum replacement or resampling. Get the instrumental stem for official backing track versions.
🎓
Music Education
Isolate individual instruments for teaching or transcription. Play back the bass stem at reduced speed to transcribe a bass line. Use the vocal stem for singing practice with isolated phrasing.
🎤
Karaoke & Vocal Practice
Generate instrumental stems from any song for karaoke use. Or isolate the vocal stem to practice harmonies, learn a melody, or analyse a vocal performance in detail.
🎞️
Film & Video Production
Need just the music without dialogue, or just dialogue without the score? When you have a mixed audio file and need to work with individual elements, stem separation gives you clean starting points.
🔊
Audio Restoration
Isolate a stem to address issues in a specific element before remixing. Fix a clipping vocal or a muddy bass line independently without processing the full mix.
🛠️
Developer Tools
Integrate stem separation into audio processing pipelines via the REST API. Automate batch separation of a catalogue, feed into DAW workflows, or build music analysis tools on top of isolated stems.
FAQ

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:

# From the repository root
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.

Get Audio Splitter

Professional stem separation, on your own server.

Audio Splitter is available to ZumiLabs customers. Get in touch to find out more.

Self-hosted • Audio stays private • REST API included