Remove (approximate) guitar from audio using Demucs, with a simple local web UI.
This project works by separating stems with Demucs and then remixing the non-guitar stems (drums + bass + vocals).
- Python 3.12 recommended
ffmpegavailable in PATHpipxfor installing Demucs
cd /path/to/GuitarKaraoke
bash setup.sh
python3 web_app.pyOpen http://localhost:8000.
Build:
docker build -t guitarkaraoke:latest .Run:
docker run --rm -p 8000:8000 \
-e PORT=8000 \
-e GUNICORN_WORKERS=1 \
-e GUNICORN_THREADS=2 \
-e GUNICORN_TIMEOUT=1800 \
-v "$(pwd)/uploads:/app/uploads" \
-v "$(pwd)/outputs:/app/outputs" \
guitarkaraoke:latestpython3 remove_guitar.py /path/to/input.mp3 /path/to/output.mp3
python3 remove_guitar.py /path/to/input.mp3 /path/to/output.mp3 --other-level 0.5Demucs produces stems like drums.wav, bass.wav, vocals.wav, and other.wav.
We mix drums+bass+vocals to reduce guitar presence.
- This is an approximation. If guitar is baked into vocals or other stems, it will remain.
- Large files can take a while to process, depending on CPU.
Apache-2.0. See LICENSE.