Чувствително към местоположението хеширане на аудио отпечатъци

Работя върху система за аудио пръстови отпечатъци и наскоро прегледах някои документи и изследвания и по-специално тази страница: c# AudioFingerprinting и хеширане, чувствително към местоположение

Сега имам поредица от пръстови отпечатъци за всеки 32 ms аудио. Това, което искам да направя, е да хеширам тези отделни пръстови отпечатъци (а не последователност от тях заедно), използвайки LSH или някакъв друг метод за запазване на сходството. От това, което разбрах за LSH, той работи върху многомерни вектори и произвежда двоични низове, които след това могат да бъдат сравнени в пространството на Хеминг.

Моят проблем тук е, че пръстовите отпечатъци, които имам, не са многоизмерни. Те са само единични дълги цели числа. Как да ги хеширам с помощта на LSH? Има ли някакъв метод за хеширане (по начин, запазващ подобието) на едномерни скалари?


person Arnolin    schedule 21.12.2012    source източник


Отговори (1)


Закъснях с отговора, но това е нещото, наистина беше доста просто, но не знам как съм го пропуснал.

LSH ще използва произволни проекционни вектори, за да проектира вектор или скалар в различно пространство с различни измерения, като същевременно запазва сходството. Вижте добър отговор тук https://stackoverflow.com/a/12967538/858467

Така че всичко, което трябваше да направя, е да създам произволна проекционна матрица от порядък [n x 1] и след това да я умножа със скалара [1 x 1] или вектор от скалара [1 x m], за да получа проекциите [n x 1] или [n x m ]. След това праговото му определяне, за да се получат двоичните вектори, изглежда го прави.

Въпреки че вярвам, че това е правилният вярвам начин да го направя (правил съм го по същия начин и преди), изглежда не мога да получа добри двоични вектори с това от сега. Вероятно ще пусна друг въпрос, когато навляза малко по-дълбоко в проблема.

person Arnolin    schedule 03.01.2013