سؤال

I am working on an audio fingerprinting system and have gone through some papers and research recently and this page in particular: c# AudioFingerprinting and Locality Sensitive Hashing

I have now got a series of fingerprints for every 32ms of audio. What I want to do is hash these individual fingerprints (and not a sequence of them together) using LSH or some other similarity preserving method. From what I have understood about LSH, it works on multidimensional vectors and produces binary strings which can then be compared in the Hamming space.

My problem here is that the fingerprints that I have are not multidimensional. They are just single long integers. How do I hash these using LSH? Is there any method to hash (in a similarity preserving manner) single dimensional scalars?

هل كانت مفيدة؟

المحلول

Got late in replying, but here is the thing, it was quite simple indeed but don't know how I missed it.

LSH will use random projection vectors to project a vector or a scalar to a different dimensional space while preserving similarity. Check a good answer here https://stackoverflow.com/a/12967538/858467

So all I had to do is create a random projection matrix of order [n x 1] and then multiply it with the scalar [1 x 1] or a vector of scalar [1 x m] to get the projections [n x 1] or [n x m]. Thereafter thresholding it to get the binary vectors seems to do it.

Although this is I believe the correct believe way to do it (have done it the same way previously too,) I can't seem to get good binary vectors with this as of now. I will probably post another question when I get some more depth into the problem.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top