Spleeter

Spleeter: a fast and efficient music source separation tool with pre-trained models - Published in JOSS (2020)

https://github.com/deezer/spleeter

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    2 of 20 committers (10.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

audio-processing bass deep-learning deezer drums model pretrained-models python tensorflow vocals

Scientific Fields

Engineering Computer Science - 60% confidence
Last synced: 4 months ago · JSON representation

Repository

Deezer source separation library including pretrained models.

Basic Info
Statistics
  • Stars: 27,328
  • Watchers: 397
  • Forks: 2,995
  • Open Issues: 270
  • Releases: 2
Topics
audio-processing bass deep-learning deezer drums model pretrained-models python tensorflow vocals
Created about 6 years ago · Last pushed 9 months ago
Metadata Files
Readme Changelog Contributing License Codeowners

README.md

Github actions PyPI - Python Version PyPI version Conda Docker Pulls Open In Colab Gitter chat status

:warning: 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.

About

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.

Projects and Softwares using Spleeter

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:

🆕 Spleeter is a baseline in the ongoing Music Demixing Challenge!

Spleeter Pro (Commercial version)

Check out our commercial version : Spleeter Pro. Benefit from our expertise for precise audio separation, faster processing speeds, and dedicated professional support.

Quick start

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:

```bash

install dependencies using conda

conda install -c conda-forge ffmpeg libsndfile

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 ```

:warning: Note that we no longer recommend using conda for installing spleeter.

⚠️ There are known issues with Apple M1 chips, mostly due to TensorFlow compatibility. Until these are fixed, you can use this workaround.

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

Development and Testing

This project is managed using Poetry, to run test suite you can execute the following set of commands:

```bash

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/ ```

Reference

If you use Spleeter in your work, please cite:

BibTeX @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} }

License

The code of Spleeter is MIT-licensed.

Disclaimer

If you plan to use Spleeter on copyrighted material, make sure you get proper authorization from right owners beforehand.

Troubleshooting

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

Windows users

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.

Contributing

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.

Note

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

Owner

  • Name: Deezer
  • Login: deezer
  • Kind: organization
  • Email: deezerdevs@deezer.com
  • Location: Paris

JOSS Publication

Spleeter: a fast and efficient music source separation tool with pre-trained models
Published
June 24, 2020
Volume 5, Issue 50, Page 2154
Authors
Romain Hennequin ORCID
Deezer Research, Paris
Anis Khlif
Deezer Research, Paris
Felix Voituret
Deezer Research, Paris
Manuel Moussallam ORCID
Deezer Research, Paris
Editor
Yuan Tang ORCID
Tags
musical signal processing source separation vocal isolation

GitHub Events

Total
  • Issues event: 25
  • Watch event: 1,559
  • Issue comment event: 67
  • Member event: 3
  • Push event: 4
  • Pull request review event: 2
  • Pull request event: 9
  • Fork event: 184
Last Year
  • Issues event: 25
  • Watch event: 1,560
  • Issue comment event: 67
  • Member event: 3
  • Push event: 4
  • Pull request review event: 2
  • Pull request event: 9
  • Fork event: 186

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 479
  • Total Committers: 20
  • Avg Commits per committer: 23.95
  • Development Distribution Score (DDS): 0.649
Past Year
  • Commits: 7
  • Committers: 3
  • Avg Commits per committer: 2.333
  • Development Distribution Score (DDS): 0.429
Top Committers
Name Email Commits
Félix Voituret f****t@d****m 168
Faylixe f****t@g****m 110
romi1502 r****n@d****m 63
mmoussallam m****m@d****m 49
Dorian Desblancs d****s@m****a 37
akhlif a****f@d****m 15
Moussallam m****m@g****m 14
Aurélien Hérault ah@d****m 5
varnaudo v****o@d****m 4
Marshall Scorcio m****o@g****m 2
Yusuke Goto u****o@g****m 2
Fabian-Robert Stöter f****r@i****r 2
Ali Akbar a****a@g****m 1
Martin Chloride i@m****e 1
Rob Moore r****8@g****m 1
jtagcat g****7@j****t 1
antoine@antoine-latitude7410 a****e@d****m 1
johnwmillr j****r@g****m 1
romi1502 e****l@a****m 1
valrus i****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 175
  • Total pull requests: 47
  • Average time to close issues: 26 days
  • Average time to close pull requests: 6 months
  • Total issue authors: 163
  • Total pull request authors: 29
  • Average comments per issue: 2.95
  • Average comments per pull request: 0.45
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 10
Past Year
  • Issues: 30
  • Pull requests: 11
  • Average time to close issues: 9 minutes
  • Average time to close pull requests: about 18 hours
  • Issue authors: 29
  • Pull request authors: 7
  • Average comments per issue: 0.53
  • Average comments per pull request: 0.18
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • schweini (2)
  • bartman081523 (2)
  • MohammedMehdiTBER (2)
  • DavidDoukhan (2)
  • hassan8971 (2)
  • rikdijkstra (2)
  • LoboMetalurgico (2)
  • s2t2 (2)
  • suraj143rosy (2)
  • all-the-good-ones-are-gone (2)
  • mathpopo (2)
  • abosaqer (1)
  • xiota (1)
  • ssumitk14 (1)
  • Feliipe93 (1)
Pull Request Authors
  • dependabot[bot] (10)
  • d-dawg78 (5)
  • karlhayek (2)
  • antoinegob92 (2)
  • ivanmilevtues (2)
  • introinifederico (2)
  • Adkr1989 (2)
  • AniketP04 (2)
  • alex-ilyichov (2)
  • marcan (2)
  • ValerioArnaudo (2)
  • ensonic (2)
  • realytcracker (2)
  • chuttam (1)
  • mmoussallam (1)
Top Labels
Issue Labels
question (74) bug (71) invalid (70) enhancement (18) feature (18) RTMP (2) windows (2) model (2) training (2) ffmpeg (1) evaluation (1) wontfix (1) next release (1)
Pull Request Labels
dependencies (10) bug (1)

Packages

  • Total packages: 6
  • Total downloads:
    • pypi 28,467 last-month
  • Total docker downloads: 198
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 95
    (may contain duplicates)
  • Total versions: 64
  • Total maintainers: 1
pypi.org: spleeter

The Deezer source separation library with pretrained models based on tensorflow.

  • Versions: 27
  • Dependent Packages: 2
  • Dependent Repositories: 87
  • Downloads: 28,439 Last month
  • Docker Downloads: 198
Rankings
Stargazers count: 0.1%
Forks count: 0.2%
Dependent repos count: 1.6%
Average: 1.8%
Downloads: 2.2%
Dependent packages count: 3.2%
Docker downloads count: 3.7%
Maintainers (1)
Last synced: 4 months ago
proxy.golang.org: github.com/deezer/spleeter
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Stargazers count: 0.1%
Forks count: 0.1%
Average: 3.6%
Dependent repos count: 4.7%
Dependent packages count: 9.6%
Last synced: 4 months ago
proxy.golang.org: github.com/Deezer/spleeter
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 0.1%
Forks count: 0.1%
Average: 4.1%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 4 months ago
pypi.org: spleeter-gpu

The Deezer source separation library with pretrained models based on tensorflow.

  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 5
  • Downloads: 28 Last month
Rankings
Stargazers count: 0.1%
Forks count: 0.2%
Dependent repos count: 6.6%
Average: 10.0%
Dependent packages count: 10.1%
Downloads: 32.7%
Maintainers (1)
Last synced: 4 months ago
conda-forge.org: spleeter
  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 2
Rankings
Stargazers count: 1.5%
Forks count: 2.2%
Average: 18.9%
Dependent repos count: 20.2%
Dependent packages count: 51.6%
Last synced: 4 months ago
conda-forge.org: spleeter-gpu
  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.5%
Forks count: 2.1%
Average: 22.2%
Dependent repos count: 34.0%
Dependent packages count: 51.2%
Last synced: 4 months ago