This MVP adds a local web app to split an ad audio clip into:
- Speech / Vocals
- Background Music / Noise
It includes:
- A FastAPI backend upload endpoint that runs
audio_separator.separator.Separator - A React + Vite frontend with stacked labeled waveforms and audio players
mvp/backend/app.py- API servermvp/backend/requirements.txt- backend web dependenciesmvp/frontend/- React UI
From the repository root:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e "./audio-seperator[cpu]"
python -m pip install -r mvp/backend/requirements.txt
uvicorn mvp.backend.app:app --reload --port 8002If your virtual environment already exists for this repository, just activate it and run the last two commands.
Backend endpoints:
GET /api/healthPOST /api/separate(multipart form withfile, optionalmodel_filename)GET /outputs/...static output audio files
In a second terminal:
cd mvp/frontend
npm install
npm run devOpen the URL printed by Vite (typically http://localhost:5173).
- Supported input formats include:
.wav,.mp3,.flac,.m4a,.mp4,.ogg,.opus,.aiff,.ac3. - The first separation request may take longer because model files are downloaded and the model is loaded.
- The backend caches loaded model instances by
model_filenameto make later requests faster. - The MVP default model is
UVR_MDXNET_Main.onnxfor faster turnaround in ad splitting workflows. - The frontend model picker includes a
Super Fastoption (UVR_MDXNET_KARA_2.onnx) for quickest iteration.