IP Library Granted Patent US 9,159,327
Granted Patent B1
US 9,159,327 · App. 13/723,034 · Granted Oct 13, 2015

System and method for adding pitch shift resistance to an audio fingerprint

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,159,327
App. No.
13/723,034
Granted
Oct 13, 2015
Kind
B1
Abstract

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.

Claims (35)

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.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2012
From: POSTELNICU, GHEORGHE; SHARIFI, MATTHEW; BERNSTEIN, YANIV
To: GOOGLE INC.
Reel/Frame 029514/0193 →