• Stars
    star
    25,759
  • Rank 800 (Top 0.02 %)
  • Language
    Python
  • License
    MIT License
  • Created about 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Deezer source separation library including pretrained models.

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

⚠️ 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!

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:

# 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

⚠️ 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:

# 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:

@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

More Repositories

1

linear_graph_autoencoders

Source code from the NeurIPS 2019 workshop article "Keep It Simple: Graph Autoencoders Without Graph Convolutional Networks" (G. Salha, R. Hennequin, M. Vazirgiannis) + k-core framework implementation from IJCAI 2019 article "A Degeneracy Framework for Scalable Graph Autoencoders" (G. Salha, R. Hennequin, V.A. Tran, M. Vazirgiannis)
Python
132
star
2

javascript-samples

Samples for the Deezer Javascript SDK
JavaScript
71
star
3

KustomExport

EXPERIMENTAL : A JS facade generator for KotlinJS / KMP
Kotlin
67
star
4

w2v_reco_hyperparameters_matter

Repository to reproduce results of "Word2vec applied to Recommendation: Hyperparameters Matter" by H. Caselles-Dupré, F. Lesaint and J. Royo-Letelier. The paper will be published on the 12th ACM Conference on Recommender Systems, Vancouver, Canada, 2nd-7th October 2018
Python
53
star
5

carousel_bandits

Source code and data from the RecSys 2020 article "Carousel Personalization in Music Streaming Apps with Contextual Bandits" by W. Bendada, G. Salha and T. Bontempelli
Python
53
star
6

weslang

A language detection Web Service
Java
52
star
7

html-linter

HTML5 Linter based on Google Style Guide
Python
51
star
8

semi_perso_user_cold_start

Source code from the KDD 2021 article "A Semi-Personalized System for User Cold Start Recommendation on Music Streaming Apps" by L. Briand, G. Salha-Galvan, W. Bendada, M. Morlon and V.A. Tran
Python
47
star
9

gravity_graph_autoencoders

Source code from the CIKM 2019 article "Gravity-Inspired Graph Autoencoders for Directed Link Prediction" by G. Salha, S. Limnios, R. Hennequin, V.A. Tran and M. Vazirgiannis
Python
43
star
10

android-sample

Sample application using Deezer Android SDK
Java
40
star
11

deezer_mood_detection_dataset

A dataset of Valence/Arousal detection with deezer Id and MSD Id as input
33
star
12

cover_song_detection

Tools to run experiments around large scale cover detection.
Python
27
star
13

MusicGenreTranslation

Python code for reproducing music genre translation experiments presented in the paper Leveraging knowledge bases and parallel annotations for music genre translation ISMIR 2019.
Python
27
star
14

fastgae

Source code from the article "FastGAE: Scalable Graph Autoencoders with Stochastic Subgraph Decoding" by G. Salha, R. Hennequin, J.B. Remy, M. Moussallam and M. Vazirgiannis (2020)
Python
26
star
15

zeroNoteSamba

Repository for the IEEE/ACM TASLP 2023 Paper "Zero-Note Samba: Self-Supervised Beat Tracking".
Python
24
star
16

sigir23-mojito

Source code from the SIGIR 2023 article "Attention Mixtures for Time-Aware Sequential Recommendation" by V.A. Tran, G. Salha-Galvan, B. Sguerra, and R. Hennequin
Python
24
star
17

similar_artists_ranking

Cold Start Similar Artists Ranking with Gravity-Inspired Graph Autoencoders (RecSys 2021)
Python
19
star
18

sigir2019-2stagesampling

Improving Collaborative Metric Learning for Recommendation by a 2-stage negative sampling strategy.
Python
16
star
19

playntell

Code to reproduce the experiments presented in the article "Data-Efficient Playlist Captioning With Musical and Linguistic Knowledge" (EMNLP 2022)
Python
15
star
20

interpretable_nn_attribution

Source code from our RecSys 2020 paper: "Making neural network interpretable with attribution: application to implicit signals prediction" (D. Afchar, R. Hennequin)
Jupyter Notebook
14
star
21

musicFPaugment

Code for reproducting the paper Music Augmentation and Denoising For Peak-Based Audio Fingerprinting
Python
14
star
22

MultilingualLyricsToAudioAlignment

DALI datasets split used to train models presented in the paper Multilingual lyrics-to-audio alignment (ISMIR 2020).
13
star
23

deezer.github.io

Research team website
SCSS
10
star
24

MultilingualMusicGenreEmbedding

Python code to reproduce the experiments presented in the paper Multilingual Music Genre Embeddings for Effective Cross-Lingual Music Item Annotation (ISMIR 2020).
Python
10
star
25

elasticmsd

Transfer the Million Song Dataset (MSD) in an Elasticsearch index
Python
9
star
26

code-snippets

Code snippets of Deezer SDK / API
JavaScript
8
star
27

template-remover

Template remover
Python
8
star
28

muzeeglot

Web interface application to visualize multilingual music genre embeddings and generated cross-lingual music genre annotations for Wikipedia music entities (artists, bands, albums, tracks).
Python
8
star
29

podcast-topic-modeling

Code to reproduce the experiments presented in the article Topic Modeling on Podcast Short-Text Metadata (ECIR 2022)
Python
8
star
30

APC-RTA

Python
7
star
31

iOS-sdk-samples

Samples applications using Deezer iOS SDK in Objective-C & Swift
HTML
7
star
32

music-ner-eacl2023

Code and data to reproduce the experiments presented in the article "A Human Subject Study of Named Entity Recognition (NER) in Conversational Music Recommendation Queries" (EACL 2023)
Python
7
star
33

deezer-chromaprint

A stand-alone, x86 and x64 compatible, Windows version, of the chromaprint audio library.
C++
6
star
34

recsys21-hlr

Hierarchical Latent Relation Modeling for Collaborative Metric Learning
Python
6
star
35

functional_attribution

Code of our accepted ICML 2021 paper "Towards Rigorous Interpretations: a Formalisation of Feature Attribution" (D. Afchar, R. Hennequin, V. Guigue)
Python
6
star
36

CrossCulturalMusicGenrePerception

Python code to reproduce the experiments presented in the article Modeling the Music Genre Perception across Language-Bound Cultures, presented at the EMNLP 2020 conference.
Python
6
star
37

Counsel

A collection of advices, ready to use via AOP
Java
5
star
38

multi-view-ssl-benchmark

Repository for the ICASSP 2024 paper "An Experimental Comparison Of Multi-view Self-supervised Methods For Music Tagging".
Python
5
star
39

GroROTI

G(r)oROTI is a selfhosted Return On Time Invested web application written in Go
Go
5
star
40

deepfake-detector

Code repository of our research paper "Detecting music deepfakes is easy but actually hard" D. Afchar, G. Meseguer Brocal, R. Hennequin
4
star
41

net-ner-probing

This repository contains the code and data to reproduce the experiments from the article Probing Pre-trained Auto-regressive Language Models for Named Entity Typing and Recognition presented at LREC 2022.
Python
4
star
42

WindowsPhoneToastNotifications

An InApp notifications system for Windows Phone Silverlight applications.
C#
4
star
43

GraceNote2Deezer

An Android sample application, using both GraceNote and Deezer SDK to match your music with Deezer's catalog
4
star
44

Android-Aspectj-Plugin

A Gradle plugin which enables AspectJ for Android builds
Groovy
4
star
45

spiky_svd

Code repository of our RecSys 2023 paper "Of Spiky SVDs and Music Recommendation" - D. Afchar, R. Hennequin, V. Guigue (2023)
Python
4
star
46

concept_hierarchy

Source code of our ISMIR 2022 paper "Learning Unsupervised Hierarchies of Audio Concepts" by D. Afchar, R. Hennequin and V. Guigue (2022)
Jupyter Notebook
4
star
47

SingingLanguageIdentification

Datasets splits for reproducing paper Singing Language Identification Using a Deep Phonotactic Approach (ICASSP 2021).
3
star
48

java-diff-merge-tool

A smart tool to provide diff/merge resolution for Java files
Java
3
star
49

ex2vec

Python
3
star
50

CordovaDeezerSample

Sample for the Deezer Cordova Plugin
JavaScript
3
star
51

terragrunt-example

HCL
3
star
52

CordovaDeezerPlugin

A Plugin for cordova to embed JS apps within Android
Java
3
star
53

audio_based_disambiguation_of_music_genre_tags

Supporting data for the paper: R. Hennequin, J. Royo Letelier, M. Moussallam "Audio Based Disambiguation Of Music Genre Tags", ISMIR 2018
3
star
54

Search-Intent-Exploration

2
star
55

pauzee_taln23

Pauses Prediction in text reading.
Python
2
star
56

Disambiguating-Music-Artists-at-Scale-with-Audio-Metric-Learning

1
star
57

web-samples

1
star
58

aads_french

Code and data to reproduce the experiments presented in "Automatic Annotation of Direct Speech in Written French Narratives" (ACL 2023)
Python
1
star
59

rust-ectoken

Token Generator for Edgecast Token-Based Authentication from Verizon Digital Media Services
Rust
1
star
60

recsys24-pisa

Code for reproducting experiments of the PISA paper published at RecSys 2024
1
star
61

stone

Repository for the ISMIR 2024 Paper "STONE: Self-supervised Tonality Estimator".
1
star
62

new-releases-ecir2024

This repository will contain resources related to the ECIR 2024 Industry Talk titled "Let’s Get It Started: Fostering the Discoverability of New Releases on Deezer" by Léa Briand et al.
1
star