Loading file...
Loading file...
This audio app lets you split songs into separate parts like vocals, drums, bass, and other instruments using AI technology. It's really user-friendly - you can either use the desktop version with a clean interface or access it through a web API. Just drag and drop your music files, and it'll work its magic to separate everything out. The app is pretty smart too - it'll use your graphics card to speed things up if you have one, but works fine on regular computers as well. You can download each part individually or grab everything at once in a zip file. It's perfect for musicians who want to remix tracks, producers working on new beats, or anyone curious about picking apart their favorite songs to hear what's going on under the hood.
Budget
$0
Duration
2 Days
I'm pretty proud that I got both interfaces working seamlessly - you can literally drag and drop a song and watch it get separated in real-time. The task queue system turned out really solid too, so multiple people can use it at once without everything grinding to a halt. The AI separation quality honestly surprised me - hearing individual drum tracks or isolated vocals from your favorite songs never gets old.
The app splits songs into vocals, drums, bass, and everything else with pretty impressive accuracy. It handles all the common audio formats people actually use, shows you exactly what's happening as it processes, and works whether you're on Windows, Mac, or Linux. Plus it's smart about cleaning up after itself so you don't end up with gigabytes of temporary files cluttering your system.
Getting multiple AI models to work together without crashing your computer was no joke - especially when dealing with huge audio files that want to eat up all your RAM. Making sure everything worked smoothly whether someone was using the web version or desktop app took a lot of trial and error. The trickiest part was probably getting real-time updates to show users how their audio processing was going, especially when juggling multiple people's requests at once.
This project really opened my eyes to how complex audio processing can get when you throw AI into the mix. I had to get creative with managing memory so the app wouldn't freeze up on large files, and figuring out how to build something that feels native on both web and desktop was a real learning curve. The biggest lesson was probably how important good error handling is - audio files can be unpredictable, and users definitely don't want the app to just crash on them.
I'm excited about adding batch processing so you could throw a whole album at it and come back later. Custom model training would be amazing - imagine training it on specific genres or instruments. Cloud storage integration is definitely on the wishlist, and I think adding some collaborative features could make it really useful for bands or production teams working together.
Ever wanted to isolate just the vocals from your favorite song? Or maybe you're a producer who needs to pull out that perfect drum track? This tool uses AI to magically separate audio into individual parts (we call them "stems") - vocals, drums, bass, piano, and more!
Just drag, drop, and let the magic happen
Watch your audio get separated in real-time
Download exactly what you need
Clean, modern interface that's actually fun to use
No more wondering "is it done yet?"
Your stems, ready to download
Smart AI Separation - We're talking studio-quality results that'll make you wonder how it works (spoiler: lots of math and neural networks)
Super Easy to Use - Literally just drag your file in. That's it. No PhD in audio engineering required.
Watch It Work - See your audio get processed in real-time because waiting without knowing what's happening is the worst
Get What You Want - Download individual parts or grab everything at once
Plays Nice - Works with pretty much any audio format you throw at it (MP3, WAV, FLAC, you name it)
Smart Cleanup - Automatically tidies up so your hard drive doesn't hate you
Step 1: Get the code
git clone
cd audio-stem-separator
Step 2: Create your own little Python world
python -m venv venv
source venv/bin/activate # Windows folks: venv\Scripts\activate
Step 3: Install the magic
pip install -r requirements.txt
python -m app.main
Then head over to http://localhost:8000
and start separating some audio!
Start the server:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Then visit:
http://localhost:8000
for the main apphttp://localhost:8000/docs
if you want to see all the nerdy API detailsProduction mode (handles more traffic):
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
Or if you're into Docker:
docker build -t audio-stem-separator .
docker run -p 8000:8000 audio-stem-separator
You can customize how things work with these environment variables:
What | What It Does | Default |
---|---|---|
MODEL_PATH | Where to find the AI models | models/ |
UPLOAD_DIR | Where uploaded files go | uploads/ |
MAX_FILE_SIZE | Biggest file you can upload | 100MB |
GPU_ENABLED | Use your graphics card for speed | true |
Want something that feels more like a real program? We've got you covered with a desktop version that's actually pleasant to use.
Install the desktop bits:
pip install PyQt6 requests
Start the server first:
python -m app.main
Then launch the desktop app:
python desktop.py
The desktop app gives you drag-and-drop uploading, real-time progress updates, and easy downloading. It's like the web version but feels more like home.
If you prefer browsers, serve up the web interface like this:
python -m http.server 3000
Then visit http://localhost:3000 and you're good to go!
If you like diving into technical details, check out:
http://localhost:8000/docs
http://localhost:8000/redoc
How | Where | What |
---|---|---|
GET | / | "Hey, are you working?" |
POST | /upload | "Here's my audio, do your thing" |
GET | /status/{task_id} | "How's my audio coming along?" |
GET | /download/{task_id} | "Give me all the stems!" |
GET | /download/{task_id}/{stem_name} | "Just the vocals, please" |
DELETE | /cleanup/{task_id} | "Clean up after yourself" |
GET | /tasks | "Show me everything you're working on" |
GET | /queue/status | "How busy are you right now?" |
We built this with some really solid tools:
FastAPI powers the backend (it's fast and handles everything gracefully)
Custom ML models do the actual audio separation magic
Redis keeps track of the queue (optional but helpful)
Local storage keeps your files safe
CUDA support makes GPU owners very happy
We love when people contribute! Check out our Contributing Guide to see how you can help make this even more awesome.
MIT License - basically, use it however you want, just don't blame us if something goes wrong. Full details in the LICENSE file.
I checked my laptop to see if everything was working fine and if my computer can handle the load.
I made sure all files and codes are easy to read and well organized.
I completed the whole code, and started documenting my work so if you or someone else would like to use the application, they would. I added step by step instructions on how to run the application on your local machine.