Создание бесконечного плохого парня

Машинное обучение для анализа кавер-версий

Infinite Bad Guy объединяет тысячи каверов на YouTube Bad Guy by Billie Eilish в опыт, который позволяет зрителю перепрыгивать с одной обложки на другую, всегда вовремя и не пропуская ни одной доли, руководствуясь сходствами и различиями в каждой. представление.

Google Creative Lab пригласила IYOIYO внести свой вклад в конвейер анализа аудио и видео, включая новый алгоритм согласования музыки, который сопоставляет ритмы кавер-версий с оригинальной песней. Эту работу возглавил Кайл Макдональд и включила небольшая команда разработчиков и специалистов по маркировке данных.

Краудсорсинговые музыкальные видеоклипы имеют долгую историю: первая волна, отреагировавшая на рост социальных сетей в 2009–2010 годах, выпустила 日 々 の 音色 (Hibi no neiro) от SOUR с Масаши Кавамурой, Больше значит меньше от C-mon и Кипски с Moniker и Ain't No Grave Джонни Кэша с Крисом Милком. В 2010 году творческий краудсорсинг осуществлялся сверху вниз, с точными указаниями, которые вели толпу в единое целое. Но Infinite Bad Guy имеет больше общего с выровненными вручную каверами художницы Молли Сода Me Singing Stay by Rihanna (2018). В 2020 году краудсорсинг будет восходящим, и машинное обучение обнаружит наши общие черты в массовом масштабе.

Задание

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

  1. Оцените выравнивание на бит между обложкой и оригиналом.
  2. Визуально классифицируйте видео.
  3. Определите наиболее визуально похожие видео.

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

Аудио выравнивание

Каждая кавер-версия уникальна. Но с точки зрения аудиоанализа существует несколько широких категорий с определенными проблемами согласования. Упорядочены от «самого простого» к «самому сложному»:

  1. Копии оригинала. Сюда входят танцевальные каверы, тренировки, лирические видео и другие визуальные каверы.
  2. Обложки с цифровыми инструментальными минусовками. Существует лишь несколько популярных инструментальных и караоке-каверов на Bad Guy, и они часто используются в качестве минусовки для семьи струнных музыкантов, скрипачей или вокальных каверов.
  3. Полнополосные каверы, которые обычно не записываются на клик-трек и могут значительно различаться по структуре песен. Например, это ирландское регги-трио или эта металлическая обложка (хотя металлические обложки обычно имеют безупречный ритм).
  4. Ремиксы и пародии, которые ссылаются на очень короткую часть исходного трека или радикально преобразуют исходный трек. Сюда входят пародии с многомиллионным просмотром, такие как Собака Гейб и Сэмплинг с Таносом, а также Ремикс Tiësto.
  5. Чисто акустические сольные каверы, которые имеют те же проблемы, что и полнофункциональные каверы, но с меньшим количеством музыкальных индикаторов, полезных для автоматического анализа. Например, эти каверы на кларнет, на гитаре в ванне в обезьяньем комбинезоне или на любой из многих каверов на укулеле.

Около 1 из 4 обложек относятся к первым двум категориям, и их можно очень точно выровнять с помощью простой техники, потому что есть только одно важное число: смещение между исходной дорожкой и копией (или инструментальной минусовкой). Это смещение можно определить, проверив косинусное сходство при разных смещениях: это означает, что нужно взять спектрограмму (визуальную сигнатуру звука) обложки и оригинала спектрограммы и сдвинуть одну за другой, пока они не выровняются. лучше всего.

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

Динамическое искажение времени и распознавание аккордов

Динамическое искажение времени (DTW) - это алгоритм перехода для выравнивания двух последовательностей, которые различаются по скорости, продолжительности или смещению (см. Также Serra et al из 2008 и Yesiler et al 2019). Вот как выглядит использование DTW для выравнивания звуковых характеристик между обложкой и оригиналом:

Тонкую белую линию можно прочитать как начало в самом верхнем левом углу. Он на короткое время идет прямо вниз, что означает, что между оригиналом (по оси Y) и обложкой (по оси X) нет соответствующего участка. Это потому, что в оригинале есть краткая секция разговорного слова, но многие каверы начинаются с первой доли. Затем линия продолжается по диагонали 45 градусов, вдоль «впадины» или пути с наименьшей стоимостью через матрицу расстояний. Диагональ в 45 градусов указывает на то, что две песни имеют одинаковый темп.

У динамического деформирования времени есть две основные проблемы, которые сделали его не идеальным. Во-первых, DTW не может обрабатывать повторение. Если обложка повторяет часть оригинала, DTW не может «вернуться». Если мы запустим DTW другим способом, выровняв оригинал по обложке, а не наоборот, то «повторение» будет отображаться как «удаление». DTW может справиться с этим, но если в обложке есть и удаление, и повторение, то мы застряли (и то и другое встречается часто).

DTW также может быть очень интенсивным с точки зрения вычислений, но даже после его оптимизации мы столкнулись с более серьезной проблемой: какие функции использовать при определении расстояния между двумя моментами? Некоторые алгоритмы идентификации кавер-версий используют аккорды; мы также могли бы попытаться извлечь мелодическую линию или некоторые другие звуковые функции. Настройка этих функций может очень хорошо работать для одного набора обложек, а затем полностью не работать для других обложек. Например, необработанная спектрограмма прекрасно работает для почти копий, но не работает на обложках в разных тональностях или каверах без аналогичного ритма.

Поскольку существующие алгоритмы выравнивания и идентификации кавер-версий сильно зависят от распознавания аккордов, мы опробовали его следующим образом. В лучшем случае мы увидим последовательность аккордов, как показано ниже: длительный период без музыки, затем Amin, Dmin7, E7, а затем повторение (где X указывает неизвестные аккорды).

Хотя это одна из 5% обложек, которых нет в Gmin, мы можем легко перенести это на исходный ключ Gmin, а затем определить соответствующие изменения раздела. Но этот метод не работает по нескольким важным причинам. Самая большая причина становится очевидной, когда мы смотрим на результаты распознавания аккордов для исходной песни.

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

Новый подход

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

  1. Эффективное определение точности алгоритма выравнивания. Эвристические методы дают быстрые результаты и могут быть легко настроены, но без меток достоверности каждый из этих результатов должен проверяться вручную.
  2. Обработка обложек более чем 1 из 7, которые повторяют раздел, или многих других обложек, где DTW или выравнивание смещения не удалось.

Мы перешли от эвристики, разработанной вручную, к рассмотрению выравнивания как задачи машинного обучения. Мы построили набор данных выровненных покрытий и обучили рекуррентную нейронную сеть (RNN) решать задачу классификации биений. Эвристические решения помогли запустить это, создав набор иногда точных меток. Это превратило создание набора данных в задание по проверке, а не в задание по маркировке.

Создание набора данных

Мы создали интерфейс для очень быстрой проверки правильности или неправильности меток смены раздела: щелчок по меткам или переход по ним табуляции мгновенно воспроизводил этот раздел, затем обложка была помечена как хорошая, плохая или не кавер (обычно несвязанная песня с похожее название ). У каждого раздела было кодовое название, например ws для стиха, начинающегося Белая рубашка теперь красная…, и br для стиха, начинающегося Ушибы на обоих коленях… ². В среднем мы выполняли около 100 проверок в час и собрали более 5000 подтвержденных результатов. Это помогло нам узнать, что эвристические алгоритмы верны только в половине случаев. Подтвержденные прогнозы дали нам отправную точку для обучения RNN.

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

В то время как выравнивание со смещением и DTW обеспечивают плотный набор меток (с метками смены раздела, проверенными как прокси), метки ручной смены раздела должны были быть преобразованы в плотные метки. Мы использовали некоторые эвристические методы, такие как знание структуры песни и согласованности темпа, для оценки интерполированных плотных маркеров. Лишь несколько разделов значительно усложняют эту эвристику, например, несколько пауз в песне («да»), которые иногда дополняются фермой.

Рекуррентное выравнивание нейронной сети

С набором тысяч помеченных вручную, автоматически помеченных и проверенных сопоставлений кавер-версий мы смогли обучить RNN. Входными данными в RNN является матрица n x m: n доли кавера и m звуковые характеристики. Результатом является матрица n x k: n покрывающих долей, при этом каждая доля обеспечивает распределение вероятности по k оригинальные биты. Мы рассматривали «Плохого парня» как имеющего k = 420 ударов:

РНС внедрена в Керас. Поиск по архитектуре дал очень простую сеть как оптимальную: один двунаправленный слой LSTM шириной 1024, за которым следовала пакетная нормализация, очень высокий уровень отсева (0,8) и плотный слой с выходом softmax. Другие архитектуры RNN с дополнительным шумом, разными отсевами, большим или меньшим количеством слоев, большим или меньшим количеством единиц - все дали аналогичную точность проверки около 80%, что позволяет предположить, что архитектура не была основным узким местом для точности. Во время обучения ввод выглядит так:

А после обучения результат выглядит так:

RNN в основном изучает временную согласованность: каверы не часто переходят от одного раздела к другому или переставляют биты (за исключением этого кавера, который меняет местами 2 и 4 доли). Но чтобы обеспечить дополнительную гарантию временной согласованности, мы применяем диагональный медианный фильтр перед тем, как делать прогноз с наибольшей вероятностью.

Последний конвейер начинается с алгоритма выравнивания на основе смещения, и если он подходит, мы используем это решение. В противном случае мы возвращаемся к выравниванию RNN для более сложных обложек. Выравнивание RNN начинается с отслеживания ударов³, которое предоставляет временные метки для всех ударов в треке. После отслеживания ударов мы извлекаем спектрограмму с постоянным Q-преобразованием и особенности цветности из каждого фрагмента кавер-битов и используем RNN для создания исходных прогнозов ударов. Наш набор для проверки состоял из 100 каверов, которые представляли контент, которому мы хотели уделить приоритетное внимание: особенно акустические и вокальные каверы, а не электронные ремиксы и короткие пародии. Ниже оранжевая линия представляет истинное выравнивание, а синяя - прогнозируемое выравнивание.

Большинство покрытий можно было решить с помощью алгоритма выравнивания смещения (белый фон), хотя иногда это приводило к неправильной маркировке коротких повторов или неправильным смещениям для очень повторяющихся покрытий. Выравнивание RNN (серый фон) идет безумно при прогнозировании битов до или после кавера (например, музыкальное вступление / завершение без кавера), но эти предсказания также обычно имеют очень низкую достоверность и могут быть определены пороговыми значениями и отброшены.

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

Окончательный RNN дает около 83% точности проверки при идентификации исходной доли для данной доли кавер-версии. Около 60% каверов содержат более 90% ударов правильно. Основным ограничением системы является то, что трекер ударов librosa отслеживает только 88% ударов с точностью выше 1/16 ноты (около ± 110 мс). Это означает, что 12% ударов из трекера ударов могут быть некорректно классифицированы, потому что границы доли неточны.

Задаваясь вопросом, можно ли улучшить эту точность с помощью более совершенных функций, мы попробовали вложения YAMNet и вложения контрастное прогнозирующее кодирование (CPC). YAMNet был обучен на очень большом корпусе AudioSet corpus и точно предсказывает звуковые категории в более чем 500 классах, но встраивание было не более точным, чем наша базовая линия цветности + CQT. Точно так же CPC, обученный на 15k немаркированных обложках, не дал нам больше точности. Мы также попробовали профили классов высоты тона гармоники (используемые в некоторых работах по идентификации обложек) и гармонический CQT, которые оба работали аналогично базовой линии. Это говорит о том, что ограничение точности может быть связано с набором данных или отслеживанием биений. Одно изменение, которое действительно немного помогло, - это улучшенная цветность с разделением гармоник и медианной фильтрацией.

Одна из самых сложных задач, которую не решает наша архитектура, - это решить, является ли конкретная часть песни кавером или нет. Кто-то, играющий казу, может быть частью вступительной музыки канала, или это может быть кавер на песню «Bad Guy», или это может быть смесь казу из «Bad Guy» и «Plants vs Zombies», и мы слушаем Часть «Растения против зомби». Единственный способ узнать это - проанализировать трек в целом, и это нюанс, который двунаправленная RNN не всегда может уловить.

Для будущей работы мы будем исследовать:

  1. Новые неконтролируемые алгоритмы (включая новые версии CPC).
  2. Замена трекинга ударов фрагментами фиксированного размера по 100 мс.
  3. Сглаживание меток для более непрерывного прогнозирования времени.

Визуальный анализ

Классификация изображений и видео с самого начала была более подходящей для подхода машинного обучения. В конце концов, большая часть нашей работы по визуальному анализу была заменена существующими инструментами в Google. Но этим процессом стоит поделиться как исследование того, как выглядит создание такой системы с нуля и какие видео существуют на YouTube.

Мы начали с создания онтологии и небольшого набора данных, описывающего 200 обложек видео. Огромная сетка флажков в общей электронной таблице.

Наша первая онтология была основана на определении нескольких основных категорий:

  • Есть несколько ремейков по кадрам и ремейков, вдохновленных эстетикой. Этот металлический кавер, этот индонезийский кавер, братский парень, кавер Otomatone и множество композитных версий. Это одни из самых тщательно продуманных обложек видео, но также их труднее всего отличить от повторной загрузки исходного видео. Мы хотели убедиться, что поймали как можно больше из них.
  • Танцевальные видео. Первоначально мы обучили сеть распознавать их и обсудили использование оценки позы в качестве входных данных для классификатора, но в конечном итоге обнаружили, что у Google есть лучший внутренний алгоритм обнаружения танцев.
  • Видео с неподвижной графикой или текстами в сочетании с караоке-треком или записи экрана цифровых аудио рабочих станций для обучающих программ по созданию музыки. Мы определили их, чтобы помочь нам расставить приоритеты над обложками над инструментами и учебными пособиями.

Для всех остальных видео мы назвали кадрирование кадра (близкое / среднее / широкое) и инструменты (группа / струны / клавиши / духовые / барабаны / пэды). Нашего первого прохода из 200 видеороликов было достаточно, чтобы познакомить нас с разнообразием обложек и проверить нашу онтологию, но установка флажков в электронной таблице выполняется очень медленно и не может привести нас к масштабу данных, необходимых для обучения классификатора. . Поэтому мы создали еще один инструмент маркировки, основанный на визуальном сходстве⁴.

Маркировка

Чтобы более эффективно маркировать большее количество видео, мы создали инструмент, который группирует видео на основе визуального сходства и предоставляет набор кнопок для добавления тегов к каждому видео. Видео представлены в виде серии из девяти равномерно расположенных кадров в фотопленке. Видео вверху используется в качестве справочного видео, а следующие 10 видео являются наиболее визуально похожими видео. После завершения одной страницы другое справочное видео извлекается из очереди немаркированных видео. Когда видео было помечено, оно не появляется позже ни в одном списке визуально похожих видео. Мы использовали iPad Pro, чтобы таким образом быстро пометить тысячи видеороликов со скоростью около 500 видеороликов в час.

Мы построили интерфейс маркировки видео менее чем на 100 строках Python, используя Jupyter Lab с ipywidgets. Самая важная часть интерфейса - алгоритм визуального сходства.

Визуальное сходство

Чтобы измерить сходство между видео, мы начали с подачи каждого кадра каждого видео через сеть классификации изображений MobileNetV2. Это дало нам матрицу значений n x m для каждого видео, где n - количество кадров, а m - количество выходных объектов из сети⁵. Например, трехминутное видео со скоростью 30 кадров в секунду даст характеристики 5400 кадров x 1280. Эту матрицу значений нельзя сравнивать напрямую между двумя видео, потому что n различается. Мы попробовали несколько подходов к получению сводки этой матрицы: взятие среднего значения по всем функциям с течением времени, максимального значения, стандартного отклонения или некоторой их комбинации. Они работали для заблокированных видео, но ни один из этих подходов не улавливал сходства для видео, в которых было много правок и движения камеры (например, римейки). Поэтому мы разработали собственный вектор функций, который сбалансировал все различные аспекты сходства, которые мы хотели уловить.

  1. Выберите небольшие k равномерно распределенных векторов признаков из исходной матрицы n x m. Это фиксирует «сводку» снимков в видео и является наиболее полезным для определения римейков и копий оригинала.
  2. Возьмите среднее абсолютное значение внутрикадровых различий для всех кадров. Мы называем это «действием», и оно фиксирует наличие краткосрочных изменений, таких как перемещение камеры и резка.
  3. Возьмите максимум абсолютного значения внутрикадровых различий только для выбранных k кадров. Мы называем это «разнообразием», и оно примерно описывает, сколько видов кадров присутствует в видео и что они захватывают.

Код выглядит так:

Это дает нам размерный вектор 1280x9 + 1280 + 1280 = 14080 в качестве отпечатка пальца, представляющего каждое видео. Эти отпечатки пальцев можно сравнить с евклидовым расстоянием, чтобы найти визуально похожие видео. Глядя на график UMAP, наложенный на некоторые основные метки истинности, можно увидеть, что это представление может быть сгруппировано таким образом, чтобы улавливать интересующие нас метки:

Собрав достаточное количество этикеток, мы построили очень простую плотную сеть для прогнозирования этикеток по отпечаткам пальцев. В процессе производства наш пользовательский классификатор сосредоточился на очень небольшом подмножестве наших оригинальных этикеток: точные копии, римейки, видео для спальни и блокноты в стиле MPC. Остальные лейблы обрабатывались либо существующими инструментами в Google, либо существующими сетями CinemaNet. Google определяет танцевальные видео, тексты песен, инструменты и т. Д., А CinemaNet определяет кадрирование кадра, ракурсы, освещение и текстуру. Для классификатора CinemaNet мы сообщаем как среднее значение этого класса для всего видео, так и стандартное отклонение, которое дает некоторое представление о том, присутствует ли функция для всего видео или только для его части.

Заключение

Несколько замечаний, которые иначе не вошли в эту статью:

  • В librosa есть прекрасный пример лапласовской сегментации, своего рода структурного анализа, предназначенного для автоматической идентификации частей песни на основе локального сходства и повторяемости. Он не может обеспечить плотного выравнивания, но если бы мы обнаружили его раньше, мы могли бы использовать его для внесения предложений по изменению раздела для ручной проверки - и, возможно, в качестве проверки достоверности при плотном выравнивании. Некоторые каверы, которые по звучанию не похожи ни на какие другие каверы, по-прежнему самоподобны и похожи по структуре.
  • Используя тот же подход, что и Pattern Radio, мы попытались использовать UMAP с HDBSCAN для кластеризации ударов. Это был один из самых многообещающих экспериментов, и его можно было бы изучить как этап предварительной обработки для другого низкоразмерного анализа.
  • Когда размер изображений изменяется без сглаживания, сверточная сеть, обученная на изображениях с антиалиасингом, может работать плохо. Желательно исправить это во время обучения, если это возможно, потому что это может быть трудно идентифицировать во время интеграции для производства.

Самое большое изменение, которое мы внесем в следующий раз, - это с самого начала создание набора данных для визуального и звукового анализа. Эвристика заманчива при экспериментальной творческой работе, но когда есть цель, важно четко определить и измерить прогресс в достижении этой цели.

Нашей самой большой проблемой было найти комплексное решение, которое повысило бы качество прогнозируемых этикеток и выравнивание для всех обложек видео. Любой отдельный вид видео или обложки может иметь «трюк» для повышения производительности, но природа и красота каверов в том, что всегда будет следующая версия, которая полностью превзойдет все ожидания.

- iyoiyo.studio

Кредиты

Спасибо

Большое спасибо Furkan Yesiler, Dan Ellis и Parag Mital за советы по алгоритму выравнивания звука. Спасибо командам Google Creative Lab и Plan8 за отличное сотрудничество в этом проекте. Особенно Джею Чену, Джонасу Джонгеяну, Энтони Трипальди, Раджу Куппусами, Мэтью Рэю и Райану Бёрку из Google и Рикарду Линдстрему из Plan8. И, конечно же, этот проект был бы невозможен без Билли и Финнеаса и всех невероятных творческих людей, которые загружали обложки: спасибо.

Бонус

Невозможно послушать тысячи каверов и не выбрать фаворитов. Обложек с тысячами и миллионами заслуженных просмотров предостаточно. Есть гладкий джазовый ремикс 80-х, кавер на арфе Арианны Уортен, лофи-ремикс и невозможно французский кавер Помма, но многие другие остались незамеченными.

Сноски

  1. Есть шестая категория, в которую входят каверы, которые не соответствуют этой парадигме бит за битом, из которых мы нашли только пару примеров, включая этот медленный джазовый кавер в 3/4.
  2. Да, мы по-прежнему использовали те же лейблы даже для каверов без слов и для каверов на версию Джастина Бибера, где он поет« золотые зубы вместо синяков ».
  3. Лучшее решение с открытым исходным кодом для отслеживания битов - это madmom, но из-за ограничения его некоммерческого использования мы интегрировали отслеживание ритмов от librosa.
  4. На ранней итерации этой работы мы рассматривали возможность использования одного только сходства в качестве ориентира для опыта, но в конечном итоге решили, что подход, интерпретируемый пользователем, более убедителен.
  5. Для сходства изображений часто более полезно использовать выходные данные предпоследнего слоя в качестве «вложения», а не окончательные вероятности классификации, потому что вероятности окончательной классификации теряют часть выразительности сетевого анализа.