# Spleeter

Spleeter by Deezer és una eina de separació de fonts de música de codi obert construida en Python i basada en algorismes TensorFlow pre-entrenats. Va ser publicada el 4 de novembre de 2019, amb configuracions per dividir un arxiu en dues, quatre o cinc pistes d'àudio independents des de l'interfície de línia d'ordres. El programari és d'accés lliure i gratuït, i està disponible a GitHub a través d'una llicència MIT.
El desenvolupament de l'aplicació està principalment destinat a la recuperació d'informació musical (MIR), però també pot ser utilitzada per a fins creatius i comercials amb la condició que no s'infringeixin els drets d'autor dels arxius originals.

## Característiques
### Separació de pistes

La funció principal de Spleeter consisteix a analitzar arxius de música i desconstruir-los en diverses seccions, que es guarden com arxius en format WAV al directori especificat a la línia d'ordres. Els resultats inclouen pistes dedicades a veus, acompanyaments i instruments específics, com guitarres i percussió.

#### Model de dues pistes

La configuració per defecte permet dividir l'arxiu d'entrada en dues pistes: veu i acompanyament. Un cop instal·lada la biblioteca de Spleeter i els complements necessaris, s'ha introduir la següent fórmula a la línia d'ordres, substituint el camp directori_entrada per la ruta d'accés dels arxius que es volen separar i el camp directori_sortida per la ubicació on es crearà la carpeta amb els arxius resultants, titulats vocals.wav i accompainment.wav.

#### Model de quatre pistes

Una altra opció és dividir l'arxiu d'entrada en quatre pistes: veus, percussió, baix i "altres". Per fer-ho s'ha d'introduir una fórmula similar a la predeterminada, afegint la variable -p per especificar la quantitat de pistes de sortida desitjades. Aquestes es crearan a la carpeta seleccionada sota el nom de vocals.wav, drums.wav, bass.wav i other.wav, respectivament.

#### Model de cinc pistes

El programari predeterminat també permet dividir l'arxiu d'entrada en cinc pistes: veus, percussió, baix, piano i "altres". En aquest cas també s'ha d'especificar el nombre de pistes a la variable -p, les quals s'anomenaran vocals.wav, drums.wav, bass.wav, piano.wav i other.wav, respectivament.

### Entrenament de model

Per crear un model pre-entrenat personalitzat, s'ha de descarregar una sèrie de cançons, tant íntegres com separades en pistes diferents, de la base de dades musDB, les quals han de figurar com a llistat a un arxiu CSV. També s'ha de crear o descarregar un arxiu de configuració JSON on figurin les opcions per a l'entrenament i s'especifiqui el directori de la base de dades en format CSV. Un cop s'han preparat aquests requisits, s'ha d'introduir la següent fórmula, canviant el camp arxiu_de_configuració.json per la ruta del arxiu JSON i el camp directori_base_dades per la ubicació dels arxius a analitzar.

### Avaluació de model

Finalment, per posar a prova un model personalitzat és necessari descarregar la base de dades d'àudio musDB i introduir la següent fórmula a la línia d'ordres, canviant el camp num_pistes (sense parèntesi) per la quantitat de pistes en què el model ha de separar l'arxiu i el camp directori_base_dades per la ubicació dels arxius per avaluar.

## Referències

* ↑ «Deezer Research - Spleeter» (en anglès). Deezer, 2019. [Consulta: 18 desembre 2020].
* ↑ Vincent, James. «This open-source AI tool quickly isolates the vocals in any song» (en anglès), 05-11-2019. [Consulta: 18 desembre 2020].
* ↑ «Spleeter / License» (en anglès). GitHub, 28-10-2019. [Consulta: 18 desembre 2020].
* ↑ Moussallam, Manuel. «Releasing Spleeter: Deezer R&D source separation engine» (en anglès), 03-02-2020. [Consulta: 18 desembre 2020].
* 1 2 3 4 5 6 «2. Getting started» (en anglès). GitHub, 18-02-2020. [Consulta: 18 desembre 2020].
* 1 2 «MUSDB18» (en anglès). SigSep, 09-10-2019. [Consulta: 18 desembre 2020].
* ↑ «Spleeter / base_config.json» (en anglès). GitHub, 28-10-2019. [Consulta: 18 desembre 2020].

## Enllaços externs

* Pàgina del projecte a GitHub (en anglès)
* Wiki del repositori a GitHub (en anglès)