Что такое музыкальный поиск? Это сложность процесс, способный на запрос «кирпичи», выдать вам в результате поиска не стройматериалы, а музыкальную группу. Точно так же как найти исполнителя, по словам песни, или порекомендовать песню, опираясь на вкус пользователя. Этим ее способности не ограничиваются, к примеру, напев песню она может вам ее найти, или осуществить поиск по песни, звучащей в кафе. Но как она это делает, и с какими трудностями приходится сталкиваться попробуем разобраться ниже.
Начнем с текстового музыкального поиска
На сегодняшний день в сети находятся миллионы музыкальных треков из различных баз, где они хранятся. Используя музыкальный поиск вы оперируете с привычными вам объектами:
- исполнитель
- альбом
- трек
Но как система отличает музыкальные запросы?
В самом начале по ключевым словам: «исполнитель», «слушать», «кто поет». Могут использоваться и размытые значения: «скачать», «онлайн». Но при этом даже с простым запросом возникает проблема многозадачности.
Для примера подойдет отечественный исполнитель «Агата Кристи» и «Пилот». При введении этого запроса система не сможет сразу выдать нужный результат, поэтому в выдаче у нас будут несколько результатов вертикальных поисков, в том числе писательница Агата Кристи и профессия пилота.
Кроме того сложность состоит в искажении названия исполнителя, альбома, трека. Поэтому многие лингвистические программы не справляются.
Также проблемы возникают из-за схожести имени или названия. Например: «Jimmy Page» и «Jimmy Reed»Существует проблема региональности. Не редко имена исполнителей из разных регионов совпадают, поэтому система считывает из какого региона пришел запрос, и выдает наиболее популярный в этом регионе. Например «Zara» из Турции или России.
Путаница возникает и с треками, часто исполнители записывают кавер-версии уже известных песен. Причем не редки случаи когда кавер становится популярнее, «Кино-видели ночь» и «Zdob si Zdub-видели ночь».
Полезная функция находить треки по цитате из текста. Это возможно осуществить, зная всего одну строку. Но нужно учитывать, что общие фразы могут совпадать с другими исполнителями. И результатом поиска могут стать несколько треков.
Чтобы решить эту проблему система должна учитывать:
- историю запросов пользователя
- жанр
- популярность трека. Насколько часто происходит клик по ссылки трека.
Проблема перевода
Нередко в разных странах название группы и исполнителя пишутся по-другому. Поэтому базе нужно учитывать все варианты написания, для облегчения поиска пользователя. Например:
- Владимир Высоцкий
- Vladimir Vysotsky
- Уладзімір Высоцкі
Анализ аудиосигнала
Кроме метаданных треков и текстов песен в поиске используются данные, полученные при анализе аудио сигнала. Что позволяет решить ряд задач: распознавание музыки по фрагменту, распознавание по напеванию, поиск нечетких дубликатов, поиск кавер-версий, выделение мелодии из полифонического сигнала, классификация музыки, автотегирование, поиск похожих треков.
Цифровой аудиосигнал представлен в виде изображения звуковых волн:
При повышение детализации изображения, легко заметить точки, проставленные через равные промежутки. По ним производится замер амплитуды колебания звуковой волны:
Узость интервалов между точками, определяет частоту дискредитации сигнала. Чем уже интервал, тем шире диапазон который можно закодировать.
Здесь мы видим прямую зависимость амплитуды от времени, которая контролирует громкость звука.
Но для получения желаемого нами результата необходимо использовать два преобразования
- преобразование Фурье
- оконное преобразование Фурье
Классификация признаков
После всех преобразований мы получаем:
Цвет показывает величину мощности сигнала на заданной частоте.
Представленные спектрограммы часто используются в музыкальном поиске. Но из всех признаков спектрограмм нам нужны лишь некоторые.
Классифицированные по временному масштабу:
- Frame-level – признаки, относящиеся к одному столбцу матрицы
- Segment-level – признаки, объединяющие несколько фреймов
- Global-level – признаки, описывающие весь трек целиком
Классифицированные по уровню представления:
- Low-level
- Middle-level
- High-level
Описываемый процесс чрезвычайно трудоемкий, и требует работы многих процессов и операций: от простой фильтрации ключевых слов, до анализа звуковых волн, с последующим их разложением, что на выходе позволяет получить удивительный результат, от поиска композиции до автоматического определения музыкального стиля.