Musical fingerprinting
First Claim
1. A method for identifying an unknown music sample, comprising:
- dividing a plurality of tracks from a music library into overlapping reference samples, each reference sample associated with a unique identifier;
generating a reference fingerprint for each of the reference samples, each reference fingerprint including a plurality of codes associated with a corresponding plurality of offset times;
populating and storing an inverted index from the reference fingerprints, the inverted index including, for each possible code value, a list of identifiers of reference samples having reference fingerprints that contain the respective code value;
receiving an unknown fingerprint derived from the unknown music sample, the unknown fingerprint including a plurality of codes associated with a corresponding plurality of timestamps;
using each of the codes in the unknown fingerprint to retrieve the respective list from the inverted index to build a code match histogram, the code match histogram including a list of candidate reference samples and associated scores, each score indicating a number of codes from the unknown fingerprint that match codes in the corresponding reference fingerprint; and
determining whether or not a single candidate reference sample matches the unknown music sample based on the code match histogram.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for fingerprinting an unknown music sample is disclosed. A plurality of known tracks may be segmented into reference samples. A reference fingerprint including a plurality of codes may be generated for each reference sample. An inverted index including, for each possible code value, a list of reference samples having reference fingerprints that contain the respective code value may be generated. An unknown fingerprint including a plurality of codes may be generated from the unknown music sample. A code match histogram may list candidate reference samples and associated scores, each score indicating a number of codes from the unknown fingerprint that match codes in the reference fingerprint. Time difference histograms may be generated for two or more reference samples having the highest scores. A determination may be made whether or not a single reference sample matches the unknown music sample based on a comparison of the time difference histograms.
39 Citations
21 Claims
-
1. A method for identifying an unknown music sample, comprising:
-
dividing a plurality of tracks from a music library into overlapping reference samples, each reference sample associated with a unique identifier; generating a reference fingerprint for each of the reference samples, each reference fingerprint including a plurality of codes associated with a corresponding plurality of offset times; populating and storing an inverted index from the reference fingerprints, the inverted index including, for each possible code value, a list of identifiers of reference samples having reference fingerprints that contain the respective code value; receiving an unknown fingerprint derived from the unknown music sample, the unknown fingerprint including a plurality of codes associated with a corresponding plurality of timestamps; using each of the codes in the unknown fingerprint to retrieve the respective list from the inverted index to build a code match histogram, the code match histogram including a list of candidate reference samples and associated scores, each score indicating a number of codes from the unknown fingerprint that match codes in the corresponding reference fingerprint; and determining whether or not a single candidate reference sample matches the unknown music sample based on the code match histogram. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device for identifying an unknown music sample, comprising:
-
a machine readable storage medium storing instructions that, when executed, cause the computing device to perform actions including; dividing a plurality of tracks from a music library into overlapping reference samples, each reference sample associated with a unique identifier; generating a reference fingerprint for each of the reference samples, each reference fingerprint including a plurality of codes associated with a corresponding plurality of offset times; populating and storing an inverted index from the reference fingerprints, the inverted index including, for each possible code value, a list of identifiers of reference samples having reference fingerprints that contain the respective code value; receiving an unknown fingerprint derived from the unknown music sample, the unknown fingerprint including a plurality of codes associated with a corresponding plurality of timestamps; using each of the codes in the unknown fingerprint to retrieve the respective list from the inverted index to build a code match histogram, the code match histogram including a list of candidate reference samples and associated scores, each score indicating a number of codes from the unknown fingerprint that match codes in the corresponding reference fingerprint; and determining whether or not a single candidate reference sample matches the unknown music sample based on the code match histogram. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification