Разделение на дорожки · Исследование

Как мы учим компьютер слышать каждый инструмент в песне

Beatloo · 7 минут чтения

Загрузите готовую песню в инструмент Beatloo «Разделение на дорожки» — и получите её по частям: вокал, барабаны, бас, гитару, пианино и всё остальное. В этой статье рассказываем, как мы обучаем ИИ-модель, которая это делает, — без кода и без формул.

Если коротко: модель хороша ровно настолько, насколько хороши примеры, на которых она учится. Поэтому вместо того чтобы собирать музыку из интернета, мы создаём собственные обучающие песни, в которых точно знаем, что играет каждый инструмент.

На той же идее построен наш MIDI-экстрактор. А в конце — честный список того, что модели пока даётся с трудом.

Что делает разделение на дорожки

Готовая песня немного похожа на смузи: после блендера клубнику обратно уже не достать. Разделение на дорожки пытается сделать именно это — прослушать микс и восстановить каждый инструмент на отдельной дорожке, которую называют стемом.

Beatloo раскладывает песню на дорожки, до шести штук:

Сначала модель слушает и возвращает только те дорожки, которые действительно нашла. Песня без гитары не вернётся с пустой гитарной дорожкой.

Продюсеры используют дорожки для ремиксов и переработки сэмплов, чтобы разучить партию в соло, сделать акапеллу или минус и получить более чистый MIDI: отдельный инструмент конвертируется в «Аудио в MIDI» гораздо лучше, чем полный микс.

На входе микс, на выходе — дорожка на каждый инструмент

Модель слышит всю песню и восстанавливает каждый найденный инструмент

Модель ВокалБарабаныБасПианиноМикс
Рисунок 1. Иллюстрация. Модель возвращает только те инструменты, которые нашла в песне.

Как учится модель

ИИ-модель изначально не знает, как звучит малый барабан или бас-гитара. Она учится на примерах — примерно как тренируют слух: услышать микс, угадать, как звучали бы одни барабаны, сравнить догадку с правильным ответом и учесть ошибку. И так миллионы раз.

Каждый обучающий пример состоит из двух частей: полный микс — это вопрос, а каждый инструмент, записанный отдельно, — ответ. Чем лучше и разнообразнее ответы, тем лучше становится модель.

Картинка звука

Модель слушает не так, как мы. Она смотрит на картинку звука — спектрограмму: время идёт слева направо, высота — снизу вверх, а яркость показывает, насколько громко звучит каждая высота в каждый момент.

Для каждого инструмента модель учится рисовать поверх этой картинки трафарет: вот эти яркие пятна — бас, а эти короткие вспышки — хэты. Вырежьте картинку по трафарету, превратите обратно в звук — и получится дорожка.

Модель учится рисовать трафарет для каждого инструмента

Слева — микс как картинка звука. Справа — то, что модель оставляет для баса и для барабанов

Микс
Трафарет баса
Трафарет барабанов
Рисунок 2. Иллюстрация. Время идёт слева направо, высота — снизу вверх. Бас — это длинные низкие ноты, барабаны — короткие вспышки сразу на многих высотах.

Откуда берутся обучающие песни

Чтобы учиться, модели нужны песни, в которых каждый инструмент доступен отдельно. Настоящие многодорожечные записи редки и дороги, а большинство из них не лицензированы для обучения. В самом известном исследовательском наборе, MUSDB18, всего 150 песен — так мало, что большая модель начинает их запоминать, а не учиться слушать.

Поэтому мы делаем собственные песни. Раз каждую партию создаём мы сами, у нас всегда есть идеальный ответ:

01Пишем партииБарабанные грувы, басовые линии, аккорды и мелодии в разных жанрах, темпах и тональностях.
02Играем каждую партиюКаждую партию отдельно исполняет реалистичный инструмент из нашей проверенной библиотеки.
03ПроверяемКаждая партия проходит автоматические проверки, прежде чем попасть в обучение.
04СводимГромкость, панорама, эквалайзер, компрессия, реверберация и перегруз — в случайных сочетаниях.
05ОбучаемМодель слышит микс, а её результат сравнивают с чистыми партиями.
Рисунок 3. Как делается одна обучающая песня.

Реалистичные инструменты

Партии играет та же библиотека проверенных тембров, которую мы собрали для MIDI-экстрактора: тысячи пресетов синтезаторов, каждый проверен на то, что он играет ровно те ноты, которые ему дали. В статье про MIDI-экстрактор рассказано, как мы отобрали 2 856 из 10 052.

Сведение как у звукорежиссёра

Чистое демо и громкий плотный мастер звучат очень по-разному, а модель должна справляться с обоими. Поэтому каждая песня сводится со случайными настройками: одни партии громче, другие тише, левее или правее, с разным количеством реверберации, компрессии и перегруза. Что бы ни случилось с миксом, чистая версия каждой партии остаётся ответом.

Вокал

Синтезаторы не поют, поэтому вокал — единственная дорожка, которую мы не можем сгенерировать. Для вокала мы используем [лицензированные записи живых певцов — укажите источник], сведённые с нашими сгенерированными аккомпанементами тем же способом.

В итоге у каждой обучающей песни есть идеальный ответ, а каждый звук в ней — наш или лицензированный. Никакой музыки, собранной из интернета.

Проверка каждой дорожки

Неверный ответ учит неверному. Если в ответе «бас» тайком есть немного бочки, модель решит, что бочка — это часть баса. Поэтому прежде чем песня попадёт в обучение, каждая партия проверяется автоматически:

Кроме того, мы сами смотрим и слушаем. В каждой новой порции песен мы выбираем случайные, сравниваем картинку микса с картинками дорожек и проверяем, что ничего не пропало и не оказалось не на своём месте. Песни, не прошедшие проверку, мы выбрасываем, а не исправляем вручную.

Как мы понимаем, что это работает

Мы проверяем модель на песнях, которых она никогда не слышала: новые аранжировки, новые тембры и настоящие записи, которых не было в обучении.

Главная оценка измеряется в децибелах и называется SDR. Проще говоря, она показывает, насколько нужный инструмент громче остатков всего остального. Чем больше, тем лучше: каждые плюс 3 дБ означают, что остатки звучат примерно вдвое тише.

Цифры не расскажут, как звучит дорожка, поэтому мы также проводим слепые тесты с продюсерами: они слышат две версии одной дорожки и выбирают более чистую, не зная, какая модель сделала какую.

Полные результаты, включая сравнение с открытыми моделями, мы опубликуем к запуску разделения на дорожки.

Где пока трудно

Некоторые песни сложны для любой такой модели, включая нашу:

Именно таких случаев мы теперь генерируем больше для обучения.

Что дальше

Разделение на дорожки скоро появится в инструментах Beatloo. Загружаете песню — получаете найденные дорожки и можете сразу отправить любую в «Аудио в MIDI».

А пока попробуйте Аудио в MIDI: загрузите любой MP3 и получите его ноты в MIDI с темпом и тональностью.

Попробовать «Аудио в MIDI»Другие статьи