Deezer опубликовали библиотеку на Python Spleeter. Spleeter состоит из предобученных нейросетевых моделей, которые разделяют музыкальную запись на 2, 4 или 5 дорожек. Модели в библиотеке реализованы на TensorFlow. Deezer — это музыкальный стриминговый сервис.
Задача разделения трека на дорожки
Задача разделения трека звучит следующим образом: имея набор дорожек, которые склеены в одну запись, необходимо восстановить отдельные дорожки. Решение этой задачи применимо для ремиксов, образовательных целей, предобработки аудиозаписей. Основным соревнованием по разделению трека на дорожки является SiSEC MUS 2018. Одним из преимуществ Spleeter является скорость. Если запускать GPU версию моделей, входные данные будут обрабатываться быстрее в 100 раз, чем в оригинальных моделях.
Функционал библиотеки
Spleeter позволяет обучать модели для разделения аудиодорожек на музыкальной записи. Для обучения моделей необходимо иметь датасет с разделенными дорожками. Библиотека работает в трех режимах:
- Вокал / инструментальная часть;
- Вокал / басы / барабаны / другое;
- Вокал / басы / барабаны / пианино / другое
Модели для разделения записей на 2 и 4 дорожки работают сравнимо с state-of-the-art подходами на датасете musdb. Spleeter можно использовать напрямую из командной строки. Помимо этого, доступна библиотека на Python, которая позволяет вписать инструмент в пайплайн обучения. Установить библиотеку можно с помощью Conda и pip или использовать через Docker.
At full capacity he says that Spleeter is able to process tracks at 100 times real-time, making it “a good option to process large datasets”. It is able to split tracks into two parts (vocals and other sounds), four parts (vocals, bass, drums and others sounds), or five parts (vocals, bass, drums, piano and other sounds).
Компания решила опубликовать Spleeter, потому что на текущий момент ресурсы для исследования музыкальных аудиозаписей ограничены. Большинство существующих датасетов и инструментов имеют ограниченный доступ или проблемы с авторскими правами. Это замедляет прогресс в решении задачи. Spleeter доступен в репозитории на GitHub.