Open source dla Spleeter, systemu oddzielania muzyki i głosu
Dostawca transmisji strumieniowej Deezer otwarty Teksty źródłowe eksperymentalnego projektu Spleeter, który rozwija system uczenia maszynowego do oddzielania źródeł dźwięku od złożonych kompozycji audio. Program umożliwia usunięcie wokali z kompozycji i pozostawienie jedynie akompaniamentu muzycznego, manipulowanie brzmieniem poszczególnych instrumentów lub odrzucenie muzyki i pozostawienie głosu do nałożenia na inną serię dźwiękową, tworzenia miksów, karaoke lub transkrypcji. Kod projektu napisany jest w języku Python przy użyciu silnika Tensorflow i dystrybuowane przez na licencji MIT.
Do załadunku oferowany wytrenowane już modele do oddzielania wokalu (jeden głos) od akompaniamentu, a także do podziału na 4 i 5 strumieni obejmujących wokal, perkusję, bas, fortepian i resztę dźwięku. Spleeter może być używany zarówno jako biblioteka Pythona, jak i samodzielne narzędzie wiersza poleceń. W najprostszym przypadku na podstawie pliku źródłowego Utworzony dwa, cztery lub pięć plików z elementami głosu i akompaniamentu (vocals.wav, perkusja.wav, bass.wav, fortepian.wav, other.wav).
Przy podziale na 2 i 4 wątki Spleeter zapewnia bardzo wysoką wydajność, przykładowo przy wykorzystaniu procesora graficznego podzielenie pliku audio na 4 wątki zajmuje 100 razy mniej czasu niż czas trwania oryginalnej kompozycji. W systemie z kartą graficzną NVIDIA GeForce GTX 1080 i 32-rdzeniowym procesorem Intel Xeon Gold 6134 zbiór testów musDB, który trwał trzy godziny i 27 minut, został przetworzony w 90 sekund.
Na porównanie w przypadku Open-Unmix narzędzie do separacji Spleetera jest o około 35% szybsze w testach na procesorze, obsługuje pliki MP3 i generuje zauważalnie lepsze wyniki (pojedyncze głosy w Open-Unmix pozostawiają ślady niektórych narzędzi, co prawdopodobnie wynika z faktu, że modele Open-Unmix są szkolone na kolekcji zaledwie 150 kompozycji).