Как стать автором
Обновить

Комментарии 39

Это очень круто.
Развитие идеи, которое даст более широкое применение. Все мы прекрасно знаем, что разные песни хочется слушать под какое-то определенное настроение. Медленные рок-баллады или динамичный панк.
Если модифицировать программу вот так:
1) пользователь выбирает самые яркие представители того или иного настроения
2) программа ищет уже не к одной песни, а сразу к пачке (что повышает точность выходного материала) похожие песни
3) проставляет id3-теги, на радость программам, вроде MediaMonkey
… то будет реально крутая штука для меломанов.
НЛО прилетело и опубликовало эту надпись здесь
Проблема в том, что казалось бы, наиболее близкими «по духу» должны быть вещи с того же альбома того же исполнителя, но поскольку программа пока не справляется с их выявлением это значит что точность поиска нужно увеличивать.
Проблема в том, что казалось бы, наиболее близкими «по духу» должны быть вещи с того же альбома того же исполнителя

ИМХО, совсем не обязательно. Очень часто, когда есть определённое настроение (внимательно читать, расслабиться или, например, работать), выдёргиваю в плейлист на 2-3 композиции из разных альбомов, разных групп и перемешиваю. Ваша программа поможет делать это автоматом :)
Уже можно задавать в качестве образца пачку песен.
Мне очень понравилось. Запустил исходники, посмотрел, вопрос такой — а есть ли многопоточность? Скажем, пытались ли распараллеливать?
Пока многопоточности нет, но думаю что это позволит ускорить формирование БД. Есть только опасения за блокировки при одновременной записи в БД, не знаю как SQLite с этим справляется.
Скачал бинарники. После задания директории с музыкальной коллекцией и нажатия на кнопку gather stats не происходит ничего. Программа зависает в состоянии not responding. Подождал минут 20 и закрыл ее таск менеджером.
Приношу свои извинения. Программа действительно получилась пока больше как proof-of-concept, но мне очень хотелось поскорее поделиться результатами :)
Вам спасибо за попытку. Пока что пользуюсь для данной цели плагином под foobar, который ищет похожести на основе их базы данных. Буду очень рад, когда Ваша программа заработает, ибо тону в террабайте с любовью отобранной за 20 лет музыки.
Насчёт «тону в терабайте» — аналогично, потому и затеял проект.
А вообще, если вы указали в качестве корня весь диск (C или D или ещё какой-то), то поиск всех mp3 может занять ощутимое время. Попробуйте дождаться. Впрочем, возможно будет лучше дождаться следующей версии ;)
Это надо в отдельный поток вынести. Пусть сам трудится — тогда основной UI зависать не будет…
На гитхабе отсутсвует папка Properties
На самом деле программа очень сырая. Вся логика в Form1.cs :)
Напишите во Вконтакте. Вас возьмут на работу и предоставят 100500 серверных мощностей, а мы сможем подбирать себе композиции по умному алгоритму :)
Вы правы, для пользователей вконтакте это была бы полезная функция, вопрос в том как эту функцию встроить в бизнес-план ВК. Не думаю что Дуров и ко. большие филантропы.
это называется sound fingerprint. Кому интересно могут погуглить проекты на эту тему.
Совершенно верно. Даже у Youtube есть функция мэтчинга использованных саундтреков, но при плотном изучении литературы по теме, я выяснил что исследователи ставили задачу больше как «Классифицировать композицию по настроению весёлая/грустная/агрессивная/вялая», а в плане поиска именно близких к образцу элементов — практически ничего нет.
Можете поделиться ссылками? По факту им гораздо важнее определять наличие лицензионного контента, например, на мое подобранное на слух и по нотам исполнение Jim Brickman повесили предупреждение «Matched third party content» и показывают рекламу именно на этом видео, прибыль видно идет правообладателю. То есть они как раз нашли похожую запись, при том что естественно все отличается и темп и инструменты и т.д.
Много интересного находится гуглением в лоб. Собственно, все эти доки я и вычитывал.
Насчёт поиска по подобранному на слух — вполне возможно, я ведь далеко не первый кто пришёл к мысли поиска подобных композиций, просто в ютубе ребята настроили поиск на выявление мелодий, а не настроения.
Можно ли модифицировать программу для поиска оригиналов каверов/ремиксов/etc?

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

Вышла бы ультимативная разгадывалка Touhou-треков.
Насколько я понимаю термин «кавер», то от исходной композиции там может практически ничего не остаться. Сравните например «Whiskey in a Jar» в исполнении Metallica и какого-нибудь ирландского народного коллектива. Мелодия общая, но это будет совсем «не в духе».
Полагаю, для распознования каверов нужно распозновать текст и сравнивать по нему. Довольно сложная задача.
Каверы в общем случае не имеют ничего общего с текстом песни. Треки могут быть и инструментальными.

Я имел в виду что-то вроде:
оригинал: www.youtube.com/watch?v=iRLA5CEk8aI

джазовый кавер: www.youtube.com/watch?v=Siyk2z2ePec
трансовый кввер: www.youtube.com/watch?v=W8nIUxQfpWA
метал-кавер: www.youtube.com/watch?v=9yAietFgFxE
Это не довольно сложная задача, а очень сложная задача или вообще невозможная на текущий момент :)
Хорошее начинание)
Вот только хотелось бы поддержки форматов помимо mp3.
Работаю в этом направлении.
Такую бы программу, ориентированную на электронную музыку, для поиска подходящих под настроение треков.
Эмбиент как часть электронной музыки уже сейчас ищется по настроение прекрасно.
Насчёт техно/хауса/дабстепа/что там сейчас ещё модно — надо пробовать, у меня их выборка нерепрезентативна.
Что-то у меня программа даже и не заработала (как заранее скопиленная, так и из исходников)

pastebin.com/LvAZiMjT

Похоже, что программа пытается из пустой базы получить данные
Это очень странно. Сначала составляется список mp3-файлов по указанному вами пути, затем дропаются все нужные таблицы и затем идёт создание их заново.
После каких действий возникла ошибка? Если можно — давайте в ЛС перейдём, чтобы не засорять комментарии. Спасибо.
Да кажется проблема решена. Интерфейс, конечно, не совсем очевидный. Не догадался во вкладку create database зайти)
Поскольку ещё никто не написал, посоветую похожий проект — Pandora Internet Radio, www.pandora.com хоть там подборка музыки ведётся и не по автоматическому анализу, а по тегам, которые добровольцы сидели и подбирали для огромного количество трэков. Однако результаты — феноменальные. Отчасти потому что в тегах они используют не только малоописывающие факты типа года записи или номера трэка на пластинке, а вещи типа «минимальное использование саскофона», «основной инструмент бас-гитара», «частое изменение темпа» или даже «тональность Em» и т.д. И все эти факторы умно подбираются так что действительно находится огромное количество по-настоящему похожих трэков.

К сожалению, пару лет назад в штатах запретили вещание в других странах (потому что сервис не только подбирает музыку, а ещё и сразу проигрывает её), поэтому чтобы послушать вам понадобится vpn, vps или даже tor с правильно сконфигурированым exit nodом.

Было бы интересно посмотреть во что может вылиться ваш проект, но пока честно говоря не очень верится что в ближайшие годы полностью автоматический алгоритм сможет переплюнуть пандору, там столько человечно-субъективных тегов…
В любом случае, желаю удачи вашему проекту.
Спасибо вам.
Про Пандору наслышан, это действительно отличный проект, сильной стороной которого является участие человека в классификации.
Но во-первых, это будет база Пандоры, а не ваша собственная, нажитая годами и облюбованная :) И потом, не думаю, что у Пандоры сколь-нибудь достойно представлена андеграундная музыка.
Из трех проектов, с похожей функциональностью (jango, last.fm, pandora) последняя на голову выше конкурентов по качеству подбора. Желаю вам добиться тех же высот.
Спасибо!
Думаю тренированный эксперт ещё очень долго будет лучше любого машинного алгоритма. Только эксперта надо найти, нанять и кормить платить ему зарплату :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации