openunmix
PyTorch-based music source separation toolkit
What it is and what it does
Open-Unmix is a PyTorch-based toolkit for music source separation that decomposes mixed audio into individual instrumental stems using pre-trained deep neural networks. It provides ready-to-use models trained on the MUSDB18 dataset to extract vocals, drums, bass, and other instruments from pop music, plus a speech enhancement model. The core architecture is a three-layer bidirectional LSTM that learns to predict magnitude spectrograms of target sources; the `Separator` class combines multiple source models and applies a differentiable Wiener filter to produce final waveforms.
The package is designed for researchers, audio engineers, and artists who need to isolate or analyze individual instruments in recordings. It operates on waveforms or pre-computed spectrograms, handles arbitrary audio lengths due to its recurrent architecture, and includes a command-line interface for batch processing. Installation is straightforward via pip, though the default model weights carry a non-commercial license restriction.
Use it for:
- Extract vocal tracks from songs for remixing, karaoke, or vocal analysis without manual editing.
- Isolate drum patterns or bass lines for music production, sampling, or rhythm study.
- Separate speech from background noise using the `umxse` speech enhancement model.
- Batch process music libraries to create stem versions for archival or downstream analysis.
- Research music information retrieval or develop custom source separation models using the provided architecture.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Separates music into individual stems (vocals, drums, bass, other instruments) using pre-trained deep learning models, with optional speech enhancement.
Yes, if you need music source separation and accept the non-commercial license on the default model. The package is stable, low-friction to install, and provides production-ready models with no known vulnerabilities. However, dormancy (850 days since last release) means no active maintenance or bug fixes; consider it if your use case matches the pre-trained models and you do not require ongoing support.
Install
openunmix on PyPI
pip
pip install openunmixuv
uv add openunmixpoetry
poetry add openunmixInstalling openunmix
Before you install
Low friction installation with a pure Python wheel. The package is dormant (last release 850 days ago) but stable and Production/Stable classified; no active maintenance signals, though the repository remains unarchived with 1501 stars.
License in practice
MIT license (permissive) applies to the package code. Note that the default `umxl` model weights are licensed CC BY-NC-SA 4.0 for non-commercial use only, which may restrict deployment in commercial applications.
Quickstart
pip install openunmix
import openunmix
separator = openunmix.umxl()
# Load audio and separate
waveform, sr = torchaudio.load('track.wav')
stems = separator(waveform)
Requires PyTorch 1.8+ and torchaudio; GPU acceleration optional but recommended for performance. Default model (`umxl`) weights are non-commercial use only.
Verify before relying
- Whether pre-trained model weights are automatically downloaded on first use or must be manually fetched.
- Memory and compute requirements for real-time or batch separation on typical hardware.
- Whether the package supports GPU acceleration beyond what torch and torchaudio provide.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — numpy, torchaudio, torch, tqdm |
| Maintenance | dormant — 850 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 302,651/month — #7,819 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: openunmix-1.3.0-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
asteroid-filterbanksProvides PyTorch-based filterbank…
permissive · top 5,000 on PyPI
audio-separatorSeparates audio files into multiple stems…
permissive · top 15,000 on PyPI
demucsDemucs separates music into individual…
permissive · top 15,000 on PyPI
torchaudioProvides PyTorch-based audio processing,…
permissive · top 5,000 on PyPI
laion-clapExtracts learned audio and text embeddings…
permissive · top 15,000 on PyPI
torchlibrosaProvides PyTorch implementations of librosa…
permissive · top 15,000 on PyPI
encodecEnCodec is a neural audio codec that compresses…
noncommercial · top 15,000 on PyPI
snacSNAC compresses audio into discrete…
unclear · top 15,000 on PyPI
descript-audio-codecCompresses audio into discrete codes at 8 kbps…
permissive · top 15,000 on PyPI