Комментарии 87
Часто задача заканчивается или на уровне «найти зашумленный кусок» или вообще по точному совпадению (не считая перекодирования).
С нашими аудио записями, когда пользователю льют просто невообразимое разнообразие всевозможных вариантов, все несколько сложнее.
Ну и вопросы масштабирования realtime поиска по всему объему записей…
Мне интересно почему до сих пор при загрузке трека с текстом песен в ID3 тэгах он не попадает автоматически в соотвествующее поле на сайте?
Конечно, это не какой-то прорыв, не rocket science. Однако крайне приятно осознавать, что кому-то везёт, и он на работе может делать такие решения (пускай, и свой велосипед).
А ещё приятно, что в статье упомянут поиск LCS. На это место статьи можно сразу слать всех людей, кто утверждает, что алгоритмы не нужны, всё уже давно написано, а олимпиадное программирование никогда не пригодится.
Прочитал на одном дыхании. Как будто вернулся в свой университет.
Что если некий трек заблокирован по требованию правообладателя, а отпечаток трека который я хочу загрузить волшебным образом с ним совпал, смогу ли я загрузить его?
Но все примеры, какие я сейчас могу вспомнить, связаны с жалобами про «авторские» записи под минусовку чужой песни :) От того, что поверх минуса наложена какая-то речь, фоновая музыка своего владельца не меняет.
Дело даже не в авторских правах, есть и другие проблемы тогда. Вот пишете, что используете отпечаток для отображения обложки, текста, рекомендаций. Получается, что они могут бы неправильными, т.е. относиться к другой песне имеющей тот же отпечаток.
Только вот поиск по аудио у вас до сих пор невероятно тупой. Достаточно одной буквой ошибиться, чтобы он не понимал чего от него хотят:
Ну привык человек что гугл и яндекс поправяют запрос.
А вообще, это вполне нормальная ситуация, у меня в коллекции больше 2к треков, я не в состоянии точно запомнить названия всех. И да, внезапно, людям свойственно ошибаться.
Переходить — нет конечно, каждому ЯП свои задачи.
Если трек обрезать спереди на 5 секунд и сзади на 5 секунд, то найдет ли соответствие с оригиналом?
Как давно начали использовать его (golang)? И в каких сервисах используется?
С 2014 для всяких пушей, вот этих отпечатков, сбора access логов, голосовых сообщений, умных проксей, кое-какого api… в общем, это отдельная тема :)
Если трек обрезать спереди на 5 секунд и сзади на 5 секунд, то найдет ли соответствие с оригиналом?
Конечно. Оно выдерживает значительно более сильные искажения.
P.S. Очень хотелось бы подробнее узнать конечно же про golang в вк :) Но если это отдельная тема, то будет ли еще что нибудь про то как его использовали в проекте, и конечно же исходники?
Ну, в теории, можно сделать отдельный пост про то, что есть на Go, если будет спрос на такую довольно специфическую тему)
Просто выложить исходники не достаточно. Они еще должны быть востребованы, как решающие какую-то распространенную задачу. С теми проектами, гду у нас сейчас Go, с этим не очень хорошо.
По поводу ускорения и замедления трека, при каком макс. коэффициенте растяжения / сжатия ваш алгоритм продолжает работать? Вот тут достаточно интересный подход.
И самый интересный вопрос, на сколько устойчив ваш алгоритм к тому, что кто-нибудь сделает хитрое преобразования трека, при котором восприятие его не изменится, но при этом алгоритм сфейлится?
при каком макс. коэффициенте растяжения / сжатия ваш алгоритм продолжает работать
Сколько зададим в параметрах работы
кто-нибудь сделает хитрое преобразования трека
Зависит от «хитроты». Не возможно добиться 100% корректной работы на любой неизвестной выборке и без ложно-положительных срабатываний.
С искажением времени вы справились. А что если изменить тональность?
аудиосигнал в виде массива значений, описывающих зависимость амплитуды от времени.
На приведённой картинке точно не амплитуда, так как амплитуда не может быть отрицательной.
В нашей реализации используется пакет GO-DSP (Digital Signal Processing), а именно github.com/mjibson/go-dsp/fft — собственно FFT и github.com/mjibson/go-dsp/window — для оконной функции Ханна.
Ссылки на репозитории не рабочие.
А так статья очень даже интересная.
И еще один вопрос, если позволите! Сами понимаете, когда появляется один из разработчиков вк, нужно успеть спросить все!
Объясните пожалуйста, или отрепостите кому-нибудь кто может объяснить, если это возможно. ПОЧЕМУ в 2017 году я, как пользователь вк, который кажется в оном уже более 10 лет, до сих пор не могу увидеть все мои написанные комментарии в одном месте? Когда у вк был какой-то юбилей, то количество написанных комментариев даже показывалось. У меня их было что-то вроде 10к. Т.е. у вас явно вся эта информация по пользователю хранится, но почему же она не выводится нигде в интерфейсе пользователя??? Кроме того, я чутка мониторю вашу официальную страницу, которую «просматривают разработчики», и там тоже частенько такой вопрос поднимается на доработку/изменение. Я вот, даже с точки здравого смысла, никак не пойму, почему я, написатель собственных комментариев, даже спустя 10 лет, не могу их централизованно увидеть? Я же их автор, ну почему я не могу их посмотреть? При этом, у вас там публиковались какие-то лайф-хаки, которые позволяли в группе искать чужие комментарии. Мне просто со стороны, это кажется каким-то эпичным маразмом :) Ну т.е. официальные люди из вк пишут на официальной странице как можно поискать чужие комментарии в группе, но как поискать свои вообще везде — это табу! С чем это связано? Я так полагаю, инфа 100% — не с технической реализацией? А с чем тогда? Вот можно как-то это вопрос просветить настолько возможно, насколько это допустимо? Я нигде ответа не нашел.
Спасибо!
Кстати, если вы знаете вменяемый способ поиска своих комментов в конкретной группе — был бы вам премного благодарен. Я, после прочтения официального мана, сейчас юзаю мной изобретенный лайф-хак: добавляю некий хвост в каждое свое сообщение, индентификатор меня, (типа ооо_1), и по нему ищу в группе. Только так, я могу видеть все свои комменты в группе. Может я изобрел колесо, фик его знает, но другой способ мне не известен. Но сами понимаете, другие участники группы, часто спрашивают: 000_1 — это что за фигня, парень?
Что же тут непонятного?
Вдруг вы лет 10 назад написали комментарий, оскорбляющий чувства выдуманных существ?
Летающего Макаронного Монстра, к примеру.
Если у вас будет список всех ваших комментариев, то вы сможете утаить еретические мысли от Святой Макаронной Инквизиции, а без списка даже и не вспомните, что что-то такое писали.
А вот SELECT * FROM ... WHERE userName = ...
помнит всё.
пс. вообще не пользуюсь vk, но интересно
И вопрос, что считать ложно-положительным: концертная запись и должна матчиться (с меньшей степенью, но должна).
Ложно положительное — это именно разные записи, которые взяли и совпали. Мне такие примеры сейчас не известны, все хорошо.
- не дублировать в поиске один трек под разными названиями;
- предлагать прослушать любимую композицию в более высоком качестве;
- добавлять обложки и текст ко всем вариантам песни;
- усовершенствовать механизм рекомендаций;
- улучшить работу с жалобами владельцев контента.
Но не форсированно заменять вашу песню на другую.
Это может послужить человечеству.
И мой комментарий из предыдущей темы, который остался без ответа.
Есть альбом: https://vk.com/album296339984_212813665 Его автор удалила свою страницу. Ссылку нашёл в какой-то теме, где прикрепили часть фотографий из него. Остальные просмотреть не могу. Залейте, пожалуйста, весь альбом архивом на файлообменник.
2. Как определить какая песня является оригинальной (эталонной), а остальные копии? Например, если в базе ВК есть 1 уникальная песня в двух экземплярах, которые отливаются только продолжительностью звучания (одна со скоростью X, а другая ускоренная на 5%). Если я правильно понял содержание статьи, хэши у них будут разные, но при этом алгоритм определит, что одна песня является дублем другой.
3. Хэш каждой песни сравнивается с каждой песней в БД?
Благодарю за статью.
Да какая разница. После того, как был выкинут точный поиск всё это потеряло смысл. Поиск музыки превратился в фигню для тех, кто не знает чего хочет — тупо впаривает наиболее популярные.
Архитектура и алгоритмы индексации аудиозаписей ВКонтакте