dpwe/audfprint

using .pklz against .pklz for match

Closed this issue · 6 comments

Hey, can we use a .pklz file against .pklz for querying(matching).
For example: python3 audfprint.py match --dbase ads.pklz recs.pklz --find-time-range --exact-count --max-matches 200 --min-count 50 --opfile results.out

dpwe commented

Hi Dan,
Your work is just wonderful. I have a similar question, Can we do .afpt vs .afpt match. Reason for asking this question is my query and reference item might get swapped. So i just want to preserve the fingerprint of both(query and reference). Also I see there are two ways to do the same where i can keep pickle or afpt file.
For given scenario which one would you suggest or think would be easier to implement; pickle vs pickle or afpt vs afpt?

Thanks for the help!

dpwe commented

So, an afpt (precompute) file contains the landmarks from just one track, in simple time order. A pklz (database) file is designed to describe an entire collection of files, and is an index based on the landmark values (so the related tracks can be quickly retrieved given landmarks from the query). Matching a single pair of files (e.g., one afpt against another) is in principle much simpler and need not involve the indexed structure. However, audfprint only works from the index, so to match one afpt against another, you'll need to convert one into a very sparsely-occupied database, then match against it:

audfprint new --database dbase.pklz file_one.afpt        # Create dbase.pklz
audfprint match --database dbase.pklz file_two.afpt      # Perform the match

Hope that helps.

DAn.

Thank you so much Dan.
I got the answer.

fat84 commented

hello to use for match on streaming url of audio type shoutcast . style dejavu, arccloud or echopring the echonest or spotyfy? any recomendation thanks

Hi fat84, it would be more appropriate for you to create a new issue. Also, this issue would probably be better marked as closed.