Моя большая музыкальная коллекция (на 120 ГБ) содержит много дублирующихся песен, и я пытался брать отпечатки пальцев у дорожек в надеждах на обнаружение дубликатов. И так как я - CS, Главный, мне очень любопытно относительно того, что сделано там? Ничто, что я делаю, не имеет почти точность чего-то как Shazam или Lala.com. Как они "хешируют" дорожки? Я выполнил стандартный хеш MD5 на всех своих файлах (26 000 файлов), и я нашел сотни равных хешей на различных дорожках, так, чтобы не работал.
Я больше интересуюсь Lala.com, так как они работают с полными файлами, в отличие от Shazam, но я принимаю оба, используют подобную технику. Кто-либо может объяснить, как генерировать уникальные идентификаторы для музыки?
SELECT Top 1 sysobjects.[name], max(sysindexes.[rows]) AS TableRows,
CAST(
CASE max(sysindexes.[rows])
WHEN 0 THEN -0
ELSE LOG10(max(sysindexes.[rows]))
END
AS NUMERIC(5,2))
AS L10_TableRows
FROM sysindexes INNER JOIN sysobjects ON sysindexes.[id] = sysobjects.[id]
WHERE sysobjects.xtype = 'U'
GROUP BY sysobjects.[name]
ORDER BY max(rows) DESC
-121--882717- Симнальная бумага на звуковом отпечатке - это работа Haitsma и Kalker в 2002-03 годах. Для каждого кадра аудио он предварительно обработаны (различия в разных рамах и полосах частот), а затем хранят бинаризованную версию спектра кадра.
Эта процедура добавляет надежность. Если весь сигнал смещен во времени, он все еще работает (по меньшей мере, можно получить более низкую границу по ухудшению производительности). Это довольно устойчивое к экологическому шуму. С момента его создания было много бумаг по низкоуровневым музыкальным сходством, поэтому нет одного ответа.
У вас есть абсолютно идентичные файлы, то есть сигналы, выравниваемые временем, глубина битов одинакова, скорость дискретизации такая же? Тогда я бы подумал, что хеш, как MD5, должен работать. Но если какой-либо из этих параметров изменяется, так что хэши. В таком случае процедура, как упомянутая ранее, будет работать лучше.
Взгляните на раздел ISMIR доступны бесплатно онлайн. Веселые вещи. http://www.ismir.net/
С javascript regex
x="1,1,1,2,2,3,3,3,3,4,4,4,5"
while(/(\d),\1/.test(x))
x=x.replace(/(\d),\1/g,"$1")
1,2,3,4,5
x="a,b,b,said,said, t, u, ugly, ugly"
while(/\s*([^,]+),\s*\1(?=,|$)/.test(x))
x=x.replace(/\s*([^,]+),\s*\1(?=,|$)/g,"$1")
a,b,said, t, u,ugly
Плохо протестирован, дайте мне знать, если есть какая-либо проблема.
-121--4859844-Посмотрите на страницу Акустический отпечаток в Википедии. Он содержит ссылки на некоторые документы, а также ссылки на реализации (включая открытый исходный код fdmf ).
-121--2162203-Существует множество алгоритмов акустической дактилоскопии. Некоторые из наиболее популярных:
На самом деле libfooId является opensource, так что вы можете проверить его код в google-код!!
Взгляните на него страницу акустического пальца на Википедии. Он имеет ссылки на некоторые документы, а также ссылки на реализации (включая открытый источник FDMF ).
После некоторых исследований (хотя это вообще не является убедительным!), Я произошел через Wiki в Musicbrainz.org, который детализирует некоторые подходы, которые они используют: