Видео введение:Машинное обучение, стоящее за поиском Hum
Навязчивая мелодия в вашей голове, обычно называемая «ушными червями», — это хорошо известное и иногда раздражающее явление: если оно есть, от него трудно избавиться. Исследование показало, что взаимодействие с оригинальной песней, будь то прослушивание или пение, отпугивало ушных червей. Но что, если вы не совсем помните название песни и можете только напевать мелодию?
Существующие методы сопоставления напевной мелодии с ее оригинальной полифонической студийной записью сталкиваются с рядом проблем. Звук музыки или студийной записи может сильно отличаться от напевной мелодии из-за текстов, бэк-вокала и инструментов. Когда кто-то напевает свою интерпретацию песни, часто высота тона, тональность, ритм или ритм могут незначительно или даже значительно отличаться из-за ошибки или дизайна. Вот почему так много существующих методов запроса путем напевания сопоставляют напевные мелодии с базой данных ранее существовавших версий песен, состоящих только из мелодий или напевов, а не идентифицируют песни напрямую. Однако этот подход часто зависит от ограниченной базы данных, которую необходимо обновлять вручную.
Запущенная в октябре Hum to Search — это новая система поиска Google, полностью основанная на машинном обучении, которая позволяет людям находить песни, используя только песни, которые они напевают. В отличие от существующих методов, этот метод создает вложение мелодии из спектрограммы песни без создания промежуточного представления. Это позволяет модели сопоставлять гудящие мелодии непосредственно с оригинальными (аккордовыми) записями, без необходимости гудения или MIDI-версий каждой дорожки или другой сложной логики, разработанной вручную для извлечения мелодии. Такой подход значительно упрощает базу данных Hum to Search, позволяя постоянно обновлять ее за счет встраивания оригинальных записей (даже самых последних версий) со всего мира.
задний план
Многие существующие системы распознавания музыки преобразуют аудиосэмплы в спектрограммы перед их обработкой, чтобы найти хорошие совпадения. Однако одна из проблем при идентификации напевных мелодий заключается в том, что напевающие мелодии обычно содержат относительно мало информации, как показано в этом примере, напевающем «Ах, друг, пока». Разницу между гудящей версией и тем же сегментом соответствующей студийной записи можно визуализировать с помощью спектрограммы следующим образом:
Учитывая изображение слева, модель должна найти звук, соответствующий изображению справа, из коллекции из более чем 50 миллионов похожих изображений (соответствующих студийным записям клипов других песен). Для этого модель должна научиться сосредотачиваться на доминирующей мелодии и игнорировать бэк-вокал, инструменты и вокальные тембры, а также отличия от фонового шума или реверберации помещения. Чтобы на глаз найти доминирующую мелодию, которая может использоваться для сопоставления двух спектрограмм, можно поискать сходства в линиях в нижней части приведенного выше графика.
Предыдущие попытки обнаружить музыку, особенно в контексте идентификации записанной музыки, играемой в таких условиях, как кафе или клубы, показывают, как машинное обучение может быть применено к этой проблеме. Приложение Now Playing, выпущенное для телефонов Pixel в 2017 году, использует глубокие нейронные сети на устройстве для идентификации песен без необходимости подключения к серверу, а Sound Search усовершенствовал эту технологию, чтобы предоставлять службы распознавания на основе сервера для более быстрого и точного поиска более 100 миллионов песен. Следующая задача состоит в том, чтобы использовать знания, полученные из этих версий, для выявления напевной или спетой музыки из такой же большой библиотеки песен.
Настройка машинного обучения
Первым шагом в разработке Hum to Search было изменение моделей распознавания музыки, используемых в Now Playing и Sound Search, для обработки записей гудения. В принципе, многие такие поисковые системы (например, системы распознавания изображений) работают аналогичным образом. Нейронная сеть обучается с использованием пар входных данных (здесь пары гудящего или поющего звука с записанным звуком), генерируя вложение для каждого входа, которое позже будет использоваться для сопоставления с гудящей мелодией.
Чтобы добиться распознавания гудения, сеть должна генерировать вложения так, чтобы аудиопары, содержащие одну и ту же мелодию, были близки друг к другу, даже если они имеют разное инструментальное сопровождение и певческие голоса. Пары аудио, содержащие разные мелодии, должны быть далеко друг от друга. Во время обучения в сеть подаются такие звуковые пары, пока она не научится использовать это свойство для создания вложений.
Затем обученная модель может генерировать встраивания мелодий, аналогичные эталонной записи песни. Поиск подходящей песни — это вопрос поиска похожих вложений в базе данных эталонных записей, рассчитанных на основе аудиозаписи популярной музыки.
тренировочные данные
Поскольку для обучения модели требуются пары песен (записанные и спетые), первая задача состоит в том, чтобы получить достаточно обучающих данных. Наш первоначальный набор данных состоит в основном из поющих музыкальных клипов (которые редко содержат напевание). Чтобы сделать модель более надежной, мы усиливаем звук во время обучения, например, случайным образом изменяя высоту или ритм пения. Полученная модель хорошо работает для людей, которые поют, но не для людей, которые мычат или насвистывают.
Чтобы улучшить работу модели с гудящими мелодиями, мы сгенерировали дополнительные обучающие данные, имитирующие «гудящие» мелодии из существующего набора аудиоданных, используя SPICE, модель извлечения высоты тона, разработанную нашей более широкой командой в рамках проекта FreddieMeter. SPICE извлекает значения высоты тона из заданного звука, которые затем мы используем для создания мелодии, состоящей из дискретных звуковых тонов. Первая версия этой системы преобразовывала этот необработанный клип в эти тона.
Позже мы улучшили этот подход, заменив простой генератор тона нейронной сетью, которая генерирует звук, напоминающий реальную гудящую или свистящую мелодию. Например, сеть сгенерировала этот жужжащий или свистящий пример из поющего сегмента выше.
В качестве последнего шага мы сравниваем обучающие данные, смешивая и сопоставляя аудиосэмплы. Например, если бы у нас были похожие клипы от двух разных певцов, мы бы выровняли два клипа с нашей предварительной моделью и, таким образом, смогли бы показать модели дополнительные пары аудиоклипов, представляющих одну и ту же мелодию.
Улучшения машинного обучения
При обучении модели Hum to Search мы начинаем с функции потери триплетов. Было показано, что эта потеря хорошо работает в различных задачах классификации, таких как изображения и записанная музыка.Для пары звуков (точки R и P в пространстве встраивания, показанные ниже), соответствующих одной и той же мелодии, потери триплетов. происходящие из разных мелодий, будут игнорироваться. Это помогает машине улучшить свое поведение при обучении, когда она находит другую мелодию, которая слишком «легка», потому что она отошла от R и P (см. пункт E), или потому что она слишком сложна, учитывая текущий In модели. в состоянии обучения звук оказывается слишком близким к R, хотя, согласно нашим данным, он представляет собой другую мелодию (см. пункт H).
Мы обнаружили, что можем повысить точность модели, приняв во внимание эти дополнительные обучающие данные (точки H и E), т. е. сформулировав уверенность в шаблоне на серии примеров. Общая концепция: как убедиться, что модель соответствует всем требованиям. видит Можно ли правильно классифицировать данные, или вы видите примеры, которые не соответствуют их нынешнему пониманию? Основываясь на этом понятии достоверности, мы добавляем потерю, которая доводит достоверность модели до 100% для всех областей пространства вложения, тем самым повышая точность и полноту нашей модели.
Вышеупомянутые изменения, особенно наши изменения, дополнения и наложения на обучающие данные, позволяют моделям нейронных сетей, развернутым в поиске Google, распознавать поющие или напевающие мелодии. Текущая система обеспечивает высокую точность в базе данных песен, содержащей более 500 000 песен, которую мы постоянно обновляем. Корпусу этой песни еще есть куда расти, чтобы включить в него многие другие мелодии со всего мира.
Гул поиск в приложении Google
Чтобы попробовать, вы можете открыть последнюю версию приложения Google, коснуться значка микрофона и сказать «Что это за песня?» или нажать кнопку «Найти песню», и вы можете напевать, петь или насвистывать! Мы надеемся, что Hum to Search поможет вам в этом или, может быть, просто поможет вам найти и воспроизвести песни, не вводя название песни.
Инструкции по обновлению: Приоритет отдается обновлению общедоступной учетной записи WeChat «Блог дождливой ночи», а блог будет обновлен позже, а затем будет распространен на различные платформы.Если вы хотите узнать больше заранее, обратите внимание на Публичный аккаунт WeChat «Блог дождливой ночи».
Источник блога:Блог Дождливой ночи