Введение

Введение

Категория статьи: Нейронные сети

Проект: Shazam своими руками

Коротко об идеи проекта. Подход к решению задачи. Какой ожидается результат.

Всем привет!
Это первая статья из серии статей, посвященных созданию приложения "Shazam своими руками"

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

Да, приложение распознают музыкальные композиции за 2-3 секунды! Это не было бы возможным без применения нейронных сетей. Вот тут-то и проснулся у меня интерес к созданию собственного приложения Shazam! Давайте разберем как это работает.

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

Давайте сделаем так: возьмем и разделим музыкальное произведение на 2х секундные кусочки, таким образом, чтобы они имели пересечения, это будут входные данные для обучения модели (X), а каждый такой кусочек конкретной композиции будут нумероваться номером композиции (для первой композиции все кусочки будут нумероваться № 1, для второй композиции № 2 и тд.) - это будут выходные данные (y).

Далее обучим модель классифицировать данные кусочки. А, для предсказания модели будем использовать 2х секундную запись, полученную с микрофона устройства (компьютера, ноутбука или мобильного телефона).

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

Ставлю цель: обучить модель распознавать 1000 музыкальных композиций по 2х секундному кусочку!