System and method for adding pitch shift resistance to an audio fingerprint
View Patent ↗Systems and techniques for adding pitch shift resistance to an audio fingerprint are presented. In particular, an audio track for a media file is received. A first audio fingerprint for the audio track with a first pitch shift and an Nth audio fingerprint for the audio track with an Mth pitch shift are generated, where N is an integer greater than or equal to two and M is an integer greater than or equal to two. A combined audio fingerprint is generated from at least the first audio fingerprint and the Nth audio fingerprint.
1. A system, comprising:
a memory storing computer executable components; and
a processor configured to execute the following computer executable components stored in the memory:
a media component configured to receive an audio track for a media file;
a fingerprint component configured to generate a first audio fingerprint for the audio track with a first pitch shift and an Nth audio fingerprint for the audio track with an Mth pitch shift, wherein the first audio fingerprint comprises a sequence of first sub-fingerprints and the Nth audio fingerprint comprises a sequence of Nth sub-fingerprints, and wherein N is greater than or equal to two and M is greater than or equal to two;
a combination component configured to generate a combined audio fingerprint from at least the first audio fingerprint and the Nth audio fingerprint, wherein the combination component selects a corresponding sub-fingerprint value from the sequence of first sub-fingerprints or the sequence of Nth sub-fingerprints for a sub-fingerprint byte position of the combined audio fingerprint based on a locality sensitive hash; and
an audio matching component configured to employ the combined audio fingerprint to match the audio track to at least one other audio track from a set of other audio tracks.
2. The system of claim 1 , wherein the combination component randomly is further configured to select the corresponding sub-fingerprint value from the sequence of first sub-fingerprints or the sequence of Nth sub-fingerprints using a random number generator.
3. The system of claim 1 , wherein the combination component is further configured to divide each sub-fingerprint byte position of the sequence of first sub-fingerprints and the sequence of Nth sub-fingerprints into a plurality of groups.
4. The system of claim 3 , wherein each group of the plurality of groups includes a plurality of byte values.
5. The system of claim 4 , wherein the combination component is further configured to select the plurality of byte values from the sequence of first sub-fingerprints or the sequence of Nth sub-fingerprints for each group of the combined audio fingerprint.
6. The system of claim 1 , wherein the sequence of first sub-fingerprints and the sequence of Nth sub-fingerprints are equally sized encoded portions of the audio track.
7. The system of claim 1 , wherein the sequence of first sub-fingerprints and the sequence of Nth sub-fingerprints are generated based at least in part on a hash of a spectrogram window.
8. The system of claim 1 , wherein the fingerprint component is further configured to generate the first audio fingerprint for the audio track with the first pitch shift, a second audio fingerprint for the audio track with a second pitch shift and a third audio fingerprint for the audio track with a third pitch shift.
9. The system of claim 8 , wherein the second audio fingerprint comprises an original pitch of the audio track.
10. The system of claim 9 , wherein the first audio fingerprint comprises a higher pitch than the original pitch of the audio track and the third audio fingerprint comprises a lower pitch than the original pitch of the audio track.
11. The system of claim 1 , wherein the media file is a video file.
12. A method, comprising:
employing a processor that facilitates execution of computer executable instructions stored on a non-transitory computer readable medium to implement operations, comprising:
receiving, by a system including a processor, an audio track for a media file;
generating, by the system, a first audio fingerprint for the audio track with a first pitch shift;
generating, by the system, an Nth audio fingerprint for the audio track with an Mth pitch shift, wherein N is an integer greater than or equal to 2 and M is an integer greater than or equal to 2; and
dividing, by the system, the first audio fingerprint into a sequence of first sub-fingerprints;
dividing, by the system, the Nth audio fingerprint into a sequence of Nth sub-fingerprints;
generating, by the system, a combined audio fingerprint from at least the first audio fingerprint and the Nth audio fingerprint, including selecting a corresponding sub-fingerprint value from the sequence of first sub-fingerprints or the sequence of Nth sub-fingerprints for a sub-fingerprint byte position of the combined audio fingerprint based on a locality sensitive hash; and
employing the combined audio fingerprint to match the audio track to at least one other audio track from a set of other audio tracks.
13. The method of claim 12 , wherein the selecting includes randomly selecting the corresponding sub-fingerprint value from the sequence of first sub-fingerprints or the sequence of Nth sub-fingerprints using a random number generator.
14. A non-transitory computer-readable medium having instructions stored thereon that, in response to execution, cause a system including a processor to perform operations comprising:
receiving an audio track for a media file;
generating a first audio fingerprint for the audio track with a first pitch shift;
generating an Nth audio fingerprint for the audio track with an Mth pitch shift, wherein N is an integer greater than or equal to 2 and M is an integer greater than or equal to 2;
dividing the first audio fingerprint into a sequence of first sub-fingerprints;
dividing the Nth audio fingerprint into a sequence of Nth sub-fingerprints;
generating a combined audio fingerprint from at least the first audio fingerprint and the Nth audio fingerprint, including selecting a corresponding sub-fingerprint value from the sequence of first sub-fingerprints or the sequence of Nth sub-fingerprints for a sub-fingerprint byte position of the combined audio fingerprint based on a locality sensitive hash; and
employing the combined audio fingerprint to match the audio track to at least one other audio track from a set of other audio tracks.