audio-separator
Easy to use audio stem separation, using various models from UVR trained primarily by @Anjok07
What it is and what it does
Audio Separator is a Python package that uses pre-trained deep learning models to decompose audio files into separate stems—such as vocals, drums, bass, and other instruments. It wraps models from Ultimate Vocal Remover (UVR) trained by @Anjok07, making them accessible both as a command-line tool and as a library for batch processing or integration into larger audio workflows. The package supports multiple model architectures (MDX-Net, VR Arch, Demucs, MDXC/RoFormer) and can run on CPU or accelerated hardware (NVIDIA CUDA, Apple Silicon CoreML, or experimental Windows DirectML).
The most common use case is separating a song into instrumental and vocal stems for karaoke production, but the underlying models support more granular decomposition into drums, bass, piano, guitar, and other sources. The package also handles audio preprocessing and format conversion via FFmpeg, making it straightforward to process diverse input files. With 22 runtime dependencies including torch, librosa, and ONNX tooling, it trades installation complexity for a complete, batteries-included audio processing pipeline.
Use it for:
- Generate karaoke tracks by separating vocals from instrumental stems in music files.
- Extract individual instrument stems (drums, bass, guitar) from recordings for remixing or music production.
- Denoise or remove echo/reverb from audio recordings using specialized UVR models.
- Batch process large music libraries to create stem versions for archival or reuse.
- Integrate stem separation into a larger audio analysis or music information retrieval pipeline.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Separates audio files into multiple stems (vocals, instruments, drums, bass, etc.) using pre-trained deep learning models, available as a CLI tool or Python library.
Yes, if you need audio stem separation and can accommodate the dependency footprint. The package is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and offers both CLI and library interfaces. Install friction is low despite 22 dependencies. The main gotcha is the separate FFmpeg system requirement and the need to choose an appropriate hardware acceleration path (CUDA, CoreML, CPU, or experimental DirectML). Recommended for music production, karaoke generation, and audio research workflows.
Install
audio-separator on PyPI
pip
pip install audio-separatoruv
uv add audio-separatorpoetry
poetry add audio-separatorInstalling audio-separator
Before you install
Low friction install with a pure-Python wheel. Requires torch and 22 runtime dependencies including audio libraries (librosa, soundfile, pydub) and ONNX tooling. Active maintenance with recent releases.
License in practice
MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license but face no copyleft obligations.
Quickstart
pip install audio-separator
from audio_separator.separator import Separator
separator = Separator(model_name="bs_roformer")
separator.separate("input.wav")
Requires FFmpeg to be installed separately on the system; torch and ONNX runtime must be available; GPU acceleration (CUDA 11.8 or 12.2, CoreML, or DirectML) is optional but recommended for performance.
Verify before relying
- Whether the package handles all common audio formats (WAV, MP3, FLAC, M4A) as claimed in the description.
- Performance characteristics and typical separation quality across different model architectures (MDX-Net, VR Arch, Demucs, MDXC).
- Memory requirements for inference on typical consumer hardware.
- Compatibility and stability of DirectML acceleration on AMD and Intel GPUs.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 22 — audioop-lts, beartype, diffq, diffq-fixed, einops, julius, librosa, ml_collections, numpy, onnx-weekly, onnx2torch-py313, pydub, pyyaml, requests, resampy, rotary-embedding-torch, samplerate, scipy, six, soundfile, torch, tqdm |
| Maintenance | actively maintained — 25 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 363,613/month — #7,219 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: audio_separator-0.44.5-py3-none-any.whl
Keywords: audio, sound, karaoke
Tags
More Sound/Audio packages
Reads and writes audio files in formats like…
permissive · top 1,000 on PyPI
pydubPydub provides a high-level Python interface…
permissive · top 5,000 on PyPI
mutagenMutagen reads and writes audio metadata (tags)…
copyleft · top 5,000 on PyPI
torchaudioProvides PyTorch-based audio processing,…
permissive · top 5,000 on PyPI
moviepyMoviePy is a Python library for video editing…
permissive · top 5,000 on PyPI
tinytagReads metadata (artist, title, duration,…
permissive · top 5,000 on PyPI
demucsDemucs separates music into individual…
permissive · top 15,000 on PyPI
openunmixSeparates music into individual stems (vocals,…
permissive · top 15,000 on PyPI
asteroid-filterbanksProvides PyTorch-based filterbank…
permissive · top 5,000 on PyPI
rembgRemoves image backgrounds using deep learning…
permissive · top 5,000 on PyPI
audiofileReads and writes audio files across formats…
permissive · top 15,000 on PyPI
panns-inferenceProvides pretrained neural network models for…
permissive · top 15,000 on PyPI
resemble-perthEmbeds imperceptible watermarks into audio…
permissive · top 15,000 on PyPI
snacSNAC compresses audio into discrete…
unclear · top 15,000 on PyPI
torchcodecTorchCodec decodes and encodes videos, audio,…
unclear · top 5,000 on PyPI