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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
48 комментариев
Написать комментарий...
Дмитрий Кузнецов

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

Ответить
Развернуть ветку
Поиск Музыки
Автор

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

Ответить
Развернуть ветку
Невероятный Блондин

Лол.
Это точно нейросеть?

Ответить
Развернуть ветку
Поиск Музыки
Автор

Да, я заметил, по Rammstein - Du Hast он неважно отработал, я проверил, что у меня в базе по индастриал металлу и этот жанр требует доработки, в следующей версии надеюсь пофиксю. Ещё возможно треков мало и он берёт по каким-то другим схожим признакам, где-то за что-то цепляется, единственное он хорошо зарекомендовал этот трек

Ответить
Развернуть ветку
Кирилл Вечкасов - Маркетолог

Да, одинаковый стиль у них же.
Странно, что не круга вам предложили...

Ответить
Развернуть ветку
Поиск Музыки
Автор

Попробуйте, пожалуйста, этот трек, здесь он вроде не ошибся :)

Ответить
Развернуть ветку
Невероятный Блондин

Что-то я перехотел после такого ))

Обычно сайты стараются гарантировать безопасность, а у тебя наоборот.

Конечно понято что это копипаста, но всё же ))

Ответить
Развернуть ветку
Корректный Интеллект

По моему нормальный поисковик сразу должен выдавать песню Рамштайн, это же основы ранжирования информации, а у вас черти что

Ответить
Развернуть ветку
PCT URL

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

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

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

Ответить
Развернуть ветку
Alexander Belousov

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

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

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

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Поиск Музыки
Автор

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

Ответить
Развернуть ветку
Aleksandr Ostrenko

Да, не совсем понятно, что "поиск" это именно поиск этой песни в базе, а не похожих. А т.к. свежих песен в базе видимо нет, то первой строкой нужный результат не выдаёт и потому кажется, что либо всё подряд того же исполнителя, либо упоминание слов из названия.

Ответить
Развернуть ветку
Alexander Belousov

А чего вы сразу не показываете, а прячете за лишними переходами? Тут конечно напрашивается авторизация через Spotify, Яндекс.музыку и тд, чтобы подцепить мою библиотеку и сразу выдать рекомендации, без того, чтобы вбивать всю музыку вручную )

Ответить
Развернуть ветку
Поиск Музыки
Автор

Возможно сделать аналог кнопки "Мне повезёт", просто часто может быть так, что название трека похоже, и иногода встречаются разные версии одного и того же трека, да и поиск может быть просто по исполнителю. По поводу подключения библиотеки пользователя, к сожалению у Яндекс Музыки нет своего API, а работа со Spotify ещё только в планах.

Ответить
Развернуть ветку
Про обман потребителей

Запрос: Позови меня тихо по имени,
ответ - Владимир Пресняков - Стюардесса по имени Жанна.

Как работает у яндекс музыки их "волна" не знаю, но она не выдает мне музыку, которая прям совсем "фу".

Ответить
Развернуть ветку
Поиск Музыки
Автор

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

Ответить
Развернуть ветку
Яндекс Музыка

Здравствуйте!

Загляните, пожалуйста, к нам в личные сообщения любой соцсети с вашим логином и ссылкой этот комментарий — ya.cc/t/veRNvSziSTWp3

Будем разбираться.

Ответить
Развернуть ветку
Поиск Музыки
Автор

Всё в порядке, разобрались :)

Ответить
Развернуть ветку
Про обман потребителей

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

Ответить
Развернуть ветку
Невероятный Блондин

Забавная попытка, но лучше автоплея в Apple Music пока еще ничего не придумано.

Невероятно хорошо подбирает.

Ответить
Развернуть ветку
Вадим Кулибаба

Сервис приятно удивил: https://twelody.com/track/igorrr-tendon-66597020
Не, думал что через анализ аудио можно достичь эффекта сопоставимого с коллаборативкой. Хотя потом вспомнил что первые версии рек-ых алгоритмов (Pandora) тоже были основаны на похожести именно по звучанию - и они резко выделялись хотя бы тем, что рекии "другие". Это очень интересный и перспективный подход. Если конечно это не "чит" какой-то, типа сграбить похожих и уже на них крутить нейронку

Ответить
Развернуть ветку
Артур Саркисов

А чем сервис выигрывает у Spotify, Apple Music, Яндекс.Музыки?

Ответить
Развернуть ветку
zx80

анекдот напомнили:
идут 2 пацана, один говорит другому: знаешь, чем отличаются менты от говна?
А сзади как раз миллиционер идет и все это слышит.
Он хватает пацана за плечо , и спрашивает строго:
- ну? так чем ?!
- ничем дяденька, ничем!

Ответить
Развернуть ветку
Поиск Музыки
Автор

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

Ответить
Развернуть ветку
Дмитрий Александрович

Вспомнился хороший сериал про точно такой же сервис.
"Крысолов" тот сервис (не сериал) назывался :)
Кто смотрел?

Ответить
Развернуть ветку
Поиск Музыки
Автор

Вы "Кремниевую долину" имеете ввиду? Если да, то я смотрел этот сериал и вдохновлялся, для меня это было как в реальности :)

Ответить
Развернуть ветку
Дмитрий Александрович

Да, я именно про это)
Но финал там не особо вдохновляющий...

Ответить
Развернуть ветку
Євгеній Дерикот

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

Ответить
Развернуть ветку
Поиск Музыки
Автор

Спасибо за предложение! На будущее у меня есть в планах сотрудничать со Spotify и др., но там есть свои нюансы, и чтобы соединить мою базу с их базой мне предстоит воспользоваться ещё одним сервисом навроде Shazam и это не дешёвое удовольствие, нужны несколько тысяч долларов, которых пока к сожалению нет.

Ответить
Развернуть ветку
Євгеній Дерикот
Ответить
Развернуть ветку
zx80

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

Так вот, допустим ТЕХНИЧЕСКИ Вам удастся реализовать Вашу задумку.
Что Вы будете с этим счастьем делать дальше?
Хотите ли Вы это монетизировать, или Вас вполне устроит проект для души?

Потому что "сотрудничать со Спотифай/Шазам итп" - звучит красиво, но оторвано от реальности.
Риск того, что Вам это удастся - крайне мал ((

Ответить
Развернуть ветку
Поиск Музыки
Автор

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

Ответить
Развернуть ветку
zx80

в Вашем примере ( скриншот) показан поиск на "Du hast"
и результаты - эта же вещь, но разынх исполнителей.
Если я правильно понял, Вы хотели сделать поиск именно ПОХОЖИХ
( но РАЗНЫХ) произведений?

//насчет монетизации - не думаю, что стОит делать сайт и монетизировать ЕГО ( напр за счет баннеров)
( отчасти и потому, что продвигать сайт будет не просто(
М быть лучше сделать не сайт - а Апп..

Также, на мой взгляд ( длительный опыт наступания на разные грабли), возможно стОит озаботиться тем, чтобы сделать хороший движок/алгоритм.
Если в сам деле будет работать и таки да будет кому-то нужен ( публике),
в таком случае неважно количество пользователей ( и нет смысла этим запариваться)
- в такой обертке это уже ПРОДАВАЕМЫЙ продукт, и таки да можно идти к Стратегам ( тот же Спотифай), продавать им,
а уже они сами будут запариваться его раскруткой ( у них и ресурсов для этого больше)

Ответить
Развернуть ветку
Невероятный Блондин

Можешь назвать пару примеров, по которым не понравилась работа Шазам?

Ответить
Развернуть ветку
zx80

nop
я ведь их так и не нашел )
То что популярное - он находит +/-
Я искал не совсем прям раритеты, но 70-80 годы

Ответить
Развернуть ветку
zx80

вспомнил
1 из случаев
- искал один трек из "Мария- Антуанетта"
Шазам не нашел ( звук- с телека)
пришлось заходить на IMDB и искать там по спису треков

Ответить
Развернуть ветку
Невероятный Блондин

О, зачетный саундтрек.

Странно, а какой трек не распознал? Может слишком громко врубил? ))

Ответить
Развернуть ветку
Champ

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

Ответить
Развернуть ветку
DataBig Mobile Apps

Если не секрет, сколько ушло времени на обучение нейросети? И на чем обучали?

Ответить
Развернуть ветку
Поиск Музыки
Автор

Когда архитектура была выбрана, то её обучение происходило неделю, у меня всего лишь 1060 с 3Гб памяти. Но скоро я планирую приобрести более мощную видеокарту и в этот раз обучать собираюсь подольше, т.к. примеры выбираются случайно, а база большая и может быть так, что какие-то примеры не попадают в обучение, поэтому чем дольше тем больший охват.

Ответить
Развернуть ветку
DataBig Mobile Apps

А что в качестве архитектуры выбрали? Персептрон или сверхточные сети?

Ответить
Развернуть ветку
Поиск Музыки
Автор

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

Ответить
Развернуть ветку
DataBig Mobile Apps

Интересно было бы почитать)

Ответить
Развернуть ветку
Корректный Интеллект

Вот в ВК есть кнопочка (волшебная палочка) которая ищет похожие песни, чем ваш сервис выделяется?

Ответить
Развернуть ветку
Поиск Музыки
Автор

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

Ответить
Развернуть ветку
Александр

сайт не работает

Ответить
Развернуть ветку
45 комментариев
Раскрывать всегда