Как я потратил более 5-ти лет и сделал сервис поиска похожей музыки

Приветствую! Эта история о новом сервисе Twelody, который с помощью искусственного ителлекта помогает искать похожую музыку.

Как я потратил более 5-ти лет и сделал сервис поиска похожей музыки

Как появилась идея

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

С чем пришлось столкнуться

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

Иногда отложить проблему - это хороший способ её решить.

Спасательный круг

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

Изучить всю музыку, серьёзно?

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

Опять проблемы

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

Проект сейчас

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

С запуском проекта возникла ситуация, что сайт нужно финансировать и рекламировать, и я благодарен создателям VC за возможность рассказать людям о моём сервисе. Буду признателен, если напишите какие впечатления произвёл на Вас мой сайт и помог ли он в Ваших поисках.

Адрес сайта: https://twelody.com

1616
48 комментариев

Ээ, а это точно нейросеть?

2
Ответить

Поисковик не использует нейронную сеть и необходимо указывать точное название композиции, возможно Вы искали это

Ответить

Честно, меньше всего хочется сарказма, но... сейчас ведь не 2002-й. Зачем этот сервис в 2022-м? Для кого? 😶

2
Ответить

я узнал о существовании нейронных сетей, в тот момент они только набирали популярность

Хотя, вот статья 2001-го года (когда нейронки пришли даже на Delphi) — в принципе, если отталкиваться от этого года, то тогда всё становится на свои места...

Ответить

Пока похоже что ищет по названию похожие, ввел название группы и песню - выдало каверы этой песни и другие песни этой группы. Но я их все и так знаю )

Но поиск даже Вконтакте выдаст примерно тоже самое. Спасибо за статью, но пока конечно непонятно как этим пользоваться, кажется будто ваш сервис так и остался в 2009 году когда похожую музыку искали на last.fm по названию группы )

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

1
Ответить

Комментарий недоступен

1
Ответить

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

Ответить