IP Library Granted Patent US 8,440,900
Granted Patent B2
US 8,440,900 · App. 13/615,061 · Granted May 14, 2013

Intervalgram representation of audio for melody recognition

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 8,440,900
App. No.
13/615,061
Granted
May 14, 2013
Kind
B2
Abstract

A system, method, and computer readable storage medium generates an audio fingerprint for an input audio clip that is robust to differences in key, instrumentation, and other performance variations. The audio fingerprint includes a sequence of intervalgrams that represent a melody in an audio clip according pitch intervals between different time points in the audio clip. The fingerprint for an input audio clip can be compared to a set of reference fingerprints in a reference database to determine a matching reference audio clip.

Claims (52)

1. A computer-implemented method for generating a reference database of audio fingerprints representative of melodies in a corresponding set of reference audio clips, the method executed by a computer system, and comprising:

receiving a reference audio clip;

generating an intervalgram representation for the reference audio clip, the intervalgram representation comprising a sequence of intervalgram blocks, each intervalgram block associated with a different time period within the reference audio clip, and each intervalgram block representing a distribution of pitch intervals occurring between different sub-periods within the time period; and

storing the intervalgram representation as the reference fingerprint in the reference database.

2. The method of claim 1 , wherein generating the intervalgram representation comprises:

receiving an audio chromagram representing the reference audio clip, the audio chromagram comprising a sequence of vectors, each vector in the audio chromagram corresponding to a different time point of the reference audio clip, and each vector representing a distribution of audio pitches at the corresponding time point of the reference audio clip;

selecting a set of different reference time points within the audio chromagram;

for each of the selected reference time points, generating a chroma block having a plurality of vectors, each of the plurality of vectors in the chroma block corresponding to a different time sub-period of the audio clip, and each vector representing a weighted average of distributions of audio pitches within the corresponding time sub-period;

for each of the selected reference time points, generating a reference vector representing a reference distribution of pitches for the selected reference time point in the audio chromagram; and

applying a circular cross-correlation of the vectors of each chroma block against the reference vector to produce the sequence of intervalgram blocks for the reference audio clip.

3. The method of claim 2 , wherein generating the chroma block comprises:

extracting a block of chroma vectors from the chromagram, the block of chroma vectors corresponding to one of the different time periods within the reference audio clip; and

averaging the chroma vectors in the block of chroma vectors across time into a number of time bins, each time bin corresponding to a different time sub-period in the chroma block.

4. The method of claim 3 , wherein averaging the chroma vectors in the block of chroma vectors comprises applying a non-uniform sub-sampling such that time bins near the reference time point are narrower than time bins at the edges of the block of chroma vectors.

5. The method of claim 2 , wherein generating the reference vector comprises computing a weighted average of a plurality of chroma vectors within a limited time range surrounding the reference time.

6. The method of claim 5 , wherein computing the weighted average of the plurality of chroma vectors comprises applying a triangle weighting function to the plurality of chroma vectors.

7. The method of claim 2 , further comprising generating the audio chromagram, wherein generating the audio chromagram comprises:

receiving a pitchogram comprising a sequence of vectors, each vector corresponding to a different time point in the reference audio clip, and each vector in the pitchogram representing a distribution of pitches at the time point in the reference audio clip; and

quantizing and wrapping the distribution of pitches in of the sequence of vectors in the pitchogram into a number of chroma bins according to a weighted smoothing function, wherein each chroma bin represents a pitch independent of octave.

8. The method of claim 1 , wherein storing the intervalgram representation as the reference fingerprint in the reference database comprises:

indexing the reference fingerprint according to features of the reference fingerprint.

9. The method of claim 1 , further comprising:

receiving an intervalgram representation for an input audio clip;

comparing the intervalgram representation for the input audio clip to the intervalgram representation for the reference audio clip;

generating a recognition result responsive to detecting a match between the intervalgram representation for the input audio clip and the intervalgram representation for the reference audio clip.

10. The method of claim 9 , further comprising storing the intervalgram representation for the input audio clip to the reference database as an additional reference fingerprint.

11. A non-transitory computer readable storage medium storing computer-executable program instructions for generating a reference database of audio fingerprints representative of melodies in a corresponding set of reference audio clip, the program instructions when executed cause a processor to perform steps of:

receiving a reference audio clip;

generating an intervalgram representation for the reference audio clip, the intervalgram representation comprising a sequence of intervalgram blocks, each intervalgram block associated with a different time period within the reference audio clip, and each intervalgram block representing a distribution of pitch intervals occurring between different sub-periods within the time period; and

storing the intervalgram representation as the reference fingerprint in the reference database.

12. The non-transitory computer-readable storage medium of claim 11 , wherein generating the intervalgram representation comprises:

receiving an audio chromagram representing the reference audio clip, the audio chromagram comprising a sequence of vectors, each vector in the audio chromagram corresponding to a different time point of the reference audio clip, and each vector representing a distribution of audio pitches at the corresponding time point of the reference audio clip;

selecting a set of different reference time points within the audio chromagram;

for each of the selected reference time points, generating a chroma block having a plurality of vectors, each of the plurality of vectors in the chroma block corresponding to a different time sub-period of the audio clip, and each vector representing a weighted average of distributions of audio pitches within the corresponding time sub-period;

for each of the selected reference time points, generating a reference vector representing a reference distribution of pitches for the selected reference time point in the audio chromagram; and

applying a circular cross-correlation of the vectors of each chroma block against the reference vector to produce the sequence of intervalgram blocks for the reference audio clip.

13. The non-transitory computer-readable storage medium of claim 12 , wherein generating the chroma block comprises:

extracting a block of chroma vectors from the chromagram, the block of chroma vectors corresponding to one of the different time periods within the reference audio clip; and

averaging the chroma vectors in the block of chroma vectors across time into a number of time bins, each time bin corresponding to a different time sub-period in the chroma block.

14. The non-transitory computer-readable storage medium of claim 13 , wherein averaging the chroma vectors in the block of chroma vectors comprises applying a non-uniform sub-sampling such that time bins near the reference time point are narrower than time bins at the edges of the block of chroma vectors.

15. The non-transitory computer-readable storage medium of claim 12 , wherein generating the reference vector comprises computing a weighted average of a plurality of chroma vectors within a limited time range surrounding the reference time.

16. The non-transitory computer-readable storage medium of claim 15 , wherein computing the weighted average of the plurality of chroma vectors comprises applying a triangle weighting function to the plurality of chroma vectors.

17. The non-transitory computer-readable storage medium of claim 12 , further comprising program instructions for generating the audio chromagram, wherein generating the audio chromagram comprises:

receiving a pitchogram comprising a sequence of vectors, each of the vectors corresponding to a different time point in the reference audio clip, and each vector in the pitchogram representing a distribution of pitches at the time point in the reference audio clip; and

quantizing and wrapping the distribution of pitches in of the sequence of vectors in the pitchogram into a number of chroma bins according to a weighted smoothing function, wherein each chroma bin represents a pitch independent of octave.

18. The non-transitory computer-readable storage medium of claim 11 , wherein storing the intervalgram representation as the reference fingerprint in the reference database comprises:

indexing the reference fingerprint according to features of the reference fingerprint.

19. The non-transitory computer-readable storage medium of claim 11 , further comprising:

receiving an intervalgram representation for an input audio clip;

comparing the intervalgram representation for the input audio clip to the intervalgram representation for the reference audio clip;

generating a recognition result responsive to detecting a match between the intervalgram representation for the input audio clip and the intervalgram representation for the reference audio clip.

20. The non-transitory computer-readable storage medium 19 , further comprising storing the intervalgram representation for the input audio clip to the reference database as an additional reference fingerprint.

Assignments (1)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →