PolUVR is a Python-based audio separation tool that leverages advanced machine learning models to separate audio tracks into distinct stems, such as vocals, instrumental, drums, bass, and more. Built as a fork of the python-audio-separator, PolUVR offers enhanced usability, hardware acceleration, and a user-friendly Gradio interface.
- Audio Separation: Extract vocals, instrumental, drums, bass, and other stems.
- Hardware Acceleration: Supports CUDA (Nvidia GPUs) and CoreML (Apple Silicon).
- Cross-Platform: Works on Linux, macOS, and Windows.
- Gradio Interface: Easy-to-use web interface for audio separation.
PolUVR supports multiple hardware acceleration options for optimal performance. To verify successful configuration, run:
PolUVR --env_info
Command | Expected Log Message |
---|---|
pip install "PolUVR[gpu]" |
ONNXruntime has CUDAExecutionProvider available, enabling acceleration |
pip install "PolUVR[cpu]" |
ONNXruntime has CoreMLExecutionProvider available, enabling acceleration |
pip install "PolUVR[cpu]" |
No hardware acceleration enabled |
PolUVR relies on FFmpeg for audio processing. To check if FFmpeg is installed, run:
PolUVR --env_info
The log should show: FFmpeg installed
If FFmpeg is missing, install it using the following commands:
OS | Command |
---|---|
Debian/Ubuntu | apt-get update; apt-get install -y ffmpeg |
macOS | brew update; brew install ffmpeg |
Windows | Follow this guide: Install FFmpeg on Windows |
If you cloned the repository, you can install FFmpeg with:
PolUVR-ffmpeg
While installing PolUVR
with the [gpu]
extra should suffice, sometimes PyTorch and ONNX Runtime with CUDA support require manual intervention. If you encounter issues, follow these steps:
pip uninstall torch onnxruntime
pip cache purge
pip install --force-reinstall torch torchvision torchaudio
pip install --force-reinstall onnxruntime-gpu
For the latest PyTorch version, use the command recommended by the PyTorch installation wizard.
If you need to install multiple CUDA versions (e.g., CUDA 11 alongside CUDA 12), use:
apt update; apt install nvidia-cuda-toolkit
If you encounter errors like Failed to load library
or cannot open shared object file
, resolve them by running:
python -m pip install ort-nightly-gpu --index-url=https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ort-cuda-12-nightly/pypi/simple/
To launch the Gradio interface, use:
PolUVR-app [--share] [--open]
Parameter | Description |
---|---|
--share |
Opens public access to the interface (useful for servers, Google Colab, etc.). |
--open |
Automatically opens the interface in a new browser tab. |
As soon as one of the following messages appears:
Running on local URL: http://127.0.0.1:7860
Running on public URL: https://28425b3eb261b9ddc6.gradio.live
you can click on the link to open the WebUI.
- Python >= 3.10
- Libraries: torch, onnx, onnxruntime, numpy, librosa, requests, six, tqdm, pydub
- Python 3.10 or newer
- Conda (recommended: Miniforge)
git clone https://github.com/Bebra777228/PolUVR.git
cd PolUVR
conda env create
conda activate PolUVR-dev
poetry install
For extra dependencies, use:
poetry install --extras "cpu"
or
poetry install --extras "gpu"
PolUVR-app --open
conda deactivate
Contributions are welcome! Fork the repository, make your changes, and submit a pull request. For major changes, please open an issue first to discuss what you would like to add.
This project is a fork of the original python-audio-separator repository. Special thanks to the contributors of the original project for their foundational work.