The following is my working M1 fork of spleeter (changes were rejected on the original repo). The major TODO here is to fix the dependencies for install, but the steps in that PR work on this branch. Between conda install weirdness that I did to get it working and the pyproject.toml
/poetry
.lock` issues, there's a bunch of stuff to sort out.
⚠️ Spleeter 2.1.0 release introduces some breaking changes, including new CLI option naming for input, and the drop of dedicated GPU package. Please read CHANGELOG for more details.
Spleeter is Deezer source separation library with pretrained models written in Python and uses Tensorflow. It makes it easy to train source separation model (assuming you have a dataset of isolated sources), and provides already trained state of the art model for performing various flavour of separation :
- Vocals (singing voice) / accompaniment separation (2 stems)
- Vocals / drums / bass / other separation (4 stems)
- Vocals / drums / bass / piano / other separation (5 stems)
2 stems and 4 stems models have high performances on the musdb dataset. Spleeter is also very fast as it can perform separation of audio files to 4 stems 100x faster than real-time when run on a GPU.
We designed Spleeter so you can use it straight from command line as well as directly in your own development pipeline as a Python library. It can be installed with pip or be used with Docker.
Since it's been released, there are multiple forks exposing Spleeter through either a Guided User Interface (GUI) or a standalone free or paying website. Please note that we do not host, maintain or directly support any of these initiatives.
That being said, many cool projects have been built on top of ours. Notably the porting to the Ableton Live ecosystem through the Spleeter 4 Max project.
Spleeter pre-trained models have also been used by professionnal audio softwares. Here's a non-exhaustive list:
- iZotope in its Music Rebalance feature within RX 8
- SpectralLayers in its Unmix feature in SpectralLayers 7
- Acon Digital within Acoustica 7
- VirtualDJ in their stem isolation feature
- Algoriddim in their NeuralMix and djayPRO app suite
🆕 Spleeter is a baseline in the ongoing Music Demixing Challenge!
Want to try it out but don't want to install anything ? We have set up a Google Colab.
Ready to dig into it ? In a few lines you can install Spleeter and separate the vocal and accompaniment parts from an example audio file.
You need first to install ffmpeg
and libsndfile
. It can be done on most platform using Conda:
# install dependencies using conda
conda install -c conda-forge ffmpeg libsndfile
# for mac users, install these additional dependencies for TensorFlow compatibility
# conda install -c apple tensorflow-deps==2.5.0 llvmlite==0.36.0 numba pandas==1.3.3
# install spleeter with pip
pip install spleeter
# download an example audio file (if you don't have wget, use another tool for downloading)
wget https://github.com/deezer/spleeter/raw/master/audio_example.mp3
# separate the example audio into two components
spleeter separate -p spleeter:2stems -o output audio_example.mp3
⚠️ Note that we no longer recommend usingconda
for installing spleeter.
You should get two separated audio files (vocals.wav
and accompaniment.wav
) in the output/audio_example
folder.
For a detailed documentation, please check the repository wiki
This project is managed using Poetry, to run test suite you can execute the following set of commands:
# Clone spleeter repository
git clone https://github.com/Deezer/spleeter && cd spleeter
# Install poetry
pip install poetry
# Install spleeter dependencies
poetry install
# Run unit test suite
poetry run pytest tests/
- Deezer Research - Source Separation Engine Story - deezer.io blog post:
- Music Source Separation tool with pre-trained models / ISMIR2019 extended abstract
If you use Spleeter in your work, please cite:
@article{spleeter2020,
doi = {10.21105/joss.02154},
url = {https://doi.org/10.21105/joss.02154},
year = {2020},
publisher = {The Open Journal},
volume = {5},
number = {50},
pages = {2154},
author = {Romain Hennequin and Anis Khlif and Felix Voituret and Manuel Moussallam},
title = {Spleeter: a fast and efficient music source separation tool with pre-trained models},
journal = {Journal of Open Source Software},
note = {Deezer Research}
}
The code of Spleeter is MIT-licensed.
If you plan to use Spleeter on copyrighted material, make sure you get proper authorization from right owners beforehand.
Spleeter is a complex piece of software and although we continously try to improve and test it you may encounter unexpected issues running it. If that's the case please check the FAQ page first as well as the list of currently open issues
It appears that sometimes the shortcut command spleeter
does not work properly on windows. This is a known issue that we will hopefully fix soon. In the meantime replace spleeter separate
by python -m spleeter separate
in command line and it should work.
If you would like to participate in the development of Spleeter you are more than welcome to do so. Don't hesitate to throw us a pull request and we'll do our best to examine it quickly. Please check out our guidelines first.
This repository include a demo audio file audio_example.mp3
which is an excerpt
from Slow Motion Dream by Steven M Bryant (c) copyright 2011 Licensed under a Creative
Commons Attribution (3.0) license
Ft: CSoul,Alex Beroza & Robert Siekawitch