IP Library Granted Patent US 9,501,568
Granted Patent B2
US 9,501,568 · App. 14/980,622 · Granted Nov 22, 2016

Audio matching based on harmonogram

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,501,568
App. No.
14/980,622
Granted
Nov 22, 2016
Kind
B2
Abstract

In an example context of identifying live audio, an audio processor machine accesses audio data that represents a query sound and creates a spectrogram from the audio data. Each segment of the spectrogram represents a different time slice in the query sound. For each time slice, the audio processor machine determines one or more dominant frequencies and an aggregate energy value that represents a combination of all the energy for that dominant frequency and its harmonics. The machine creates a harmonogram by representing these aggregate energy values at these dominant frequencies in each time slice. The harmonogram thus may represent the strongest harmonic components within the query sound. The machine can identify the query sound by comparing its harmonogram to other harmonograms of other sounds and may respond to a user's submission of the query sound by providing an identifier of the query sound to the user.

Claims (84)

1. A method comprising:

accessing, using one or more processors, audio data that represents query sound to be identified;

creating, using the one or more processors, a spectrogram of the audio data, different segments of the spectrogram representing amplitudes at frequencies in different time slices of the query sound;

determining, using the one or more processors, a first most dominant frequency in a time slice of the query sound based on a segment of the spectrogram, the determining including:

calculating a first aggregate energy value of a first candidate frequency based on amplitudes of the first candidate frequency and harmonics thereof represented in the segment of the spectrogram; and

identifying the first candidate frequency as the first most dominant frequency based on the first aggregate energy value of the first candidate frequency being a first largest aggregate energy value among aggregate energy values of frequencies whose amplitudes are represented in the segment of the spectrogram;

determining, using the one or more processors, a second most dominant frequency that indicates a second strongest harmonic component of the time slice, the determining of the second most dominant frequency including:

calculating a second aggregate energy value of a second candidate frequency based on amplitudes of the second candidate frequency and harmonics thereof represented in the segment of the spectrogram; and

identifying the second candidate frequency as the second most dominant frequency based on the second aggregate energy value of the second candidate frequency being a second largest aggregate energy value among the aggregate energy values of the frequencies whose amplitudes are represented in the segment of the spectrogram;

creating, using the one or more processors, a query harmonogram of the audio data, different segments of the query harmonogram representing aggregate energy values of dominant frequencies in different time slices of the query sound, the creating of the query harmonogram including indicating the first and second aggregate energy values in a same segment of the query harmonogram; and

providing, using the one or more processors, an identifier of the query sound based on a comparison of the query harmonogram to a reference harmonogram mapped to the identifier by a database.

2. The method of claim 1 , wherein:

the creating of the query harmonogram includes indicating the first aggregate energy value of the first most dominant frequency at a logarithm of the first most dominant frequency in a segment of the query harmonogram.

3. The method of claim 1 , wherein:

the time slices of the query sound are between 10 and 30 milliseconds in duration; and

the frequencies represented in the spectrogram each represent a quarter tone.

4. The method of claim 1 , wherein:

the calculating of the first aggregate energy value of the first candidate frequency includes summing amplitudes of the first candidate frequency and the harmonics thereof.

5. The method of claim 1 , wherein:

the calculating of the first aggregate energy value of the first candidate frequency includes calculating weighted amplitudes of the first candidate frequency and the harmonics thereof and summing the weighted amplitudes.

6. The method of claim 1 , wherein:

the second most dominant frequency and its harmonics are distinct from the first most dominant frequency and its harmonics in the segment of the spectrogram; and

the calculating of the second aggregate energy value for the second candidate frequency is not based on any amplitudes of the first most dominant frequency and harmonics thereof represented in the segment of the spectrogram.

7. The method of claim 1 , further comprising:

generating a reference hash of the reference harmonogram;

indexing the reference hash among multiple reference hashes of multiple reference harmonograms within the database; and

generating a query hash of the query harmonogram based on the query harmonogram; and wherein

the providing of the identifier of the query sound is based on a determination that the query hash of the query harmonogram matches the indexed reference hash of the reference harmonogram.

8. The method of claim 1 , further comprising:

removing the first aggregate energy value of the first most dominant frequency from a segment of the query harmonogram based on a determination that a harmonic component indicated by the first aggregate energy value is shorter than a threshold minimum duration within the query sound; and

the providing of the identifier of the query sound is based on the query harmonogram with the first aggregate energy value removed.

9. The method of claim 1 , further comprising:

removing the first aggregate energy value of the first most dominant frequency from a segment of the query harmonogram based on a determination that no adjacent segments of the query harmonogram contain aggregate energy values above a threshold minimum value within a threshold tolerance around the dominant frequency; and

the providing of the identifier of the query sound is based on the query harmonogram with the first aggregate energy value removed.

10. The method of claim 1 , further comprising:

modifying the query harmonogram by modifying the first most dominant frequency indicated by the first aggregate energy value in a segment of the query harmonogram based on a neighboring aggregate energy value of a neighboring most dominant frequency in a neighboring segment of the query harmonogram; and wherein

the providing of the identifier of the query sound is based on the modified query harmonogram.

11. The method of claim 1 , further comprising:

modifying the query harmonogram by generating an additional aggregate energy value of an additional dominant frequency in the segment of the query harmonogram based on a determination that an adjacent segment of the query harmonogram contains an aggregate energy value above a minimum threshold value but with no counterpart above a threshold minimum value within a threshold tolerance around the dominant frequency; and wherein

the providing of the identifier of the query sound is based on the modified query harmonogram.

12. The method of claim 1 , further comprising:

identifying a query pattern of energy peaks in the query harmonogram based on a threshold minimum energy value; and wherein

the comparison of the query harmonogram to the reference harmonogram includes a comparison of the query pattern of energy peaks to a reference pattern of energy peaks identified in the reference harmonogram.

13. The method of claim 12 , wherein:

the identifying of the query pattern of energy peaks in the query harmonogram is further based on a threshold minimum separation between peaks.

14. The method of claim 1 , wherein:

the creating of the spectrogram of the audio data creates a first two-dimensional array of amplitudes at frequencies over the time slices of the query sound, the created spectrogram being stored in the database as a first image; and

the creating of the query harmonogram of the audio data creates a second two-dimensional array of aggregate energy values at frequencies over the time slices of the query sound, the creative query harmonogram being stored in the database as a second image.

15. The method of claim 1 , wherein:

the creating of the spectrogram of the audio data includes performing a Constant Q Transform (CQT) of the audio data.

16. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

accessing audio data that represents query sound to be identified;

creating a spectrogram of the audio data, different segments of the spectrogram representing amplitudes at frequencies in different time slices of the query sound;

determining a first most dominant frequency in a time slice of the query sound based on a segment of the spectrogram, the determining including:

calculating a first aggregate energy value of a first candidate frequency based on amplitudes of the first candidate frequency and harmonics thereof represented in the segment of the spectrogram; and

identifying the first candidate frequency as the first most dominant frequency based on the first aggregate energy value of the first candidate frequency being a first largest aggregate energy value among aggregate energy values of frequencies whose amplitudes are represented in the segment of the spectrogram;

determining a second most dominant frequency that indicates a second strongest harmonic component of the time slice, the determining of the second most dominant frequency including:

calculating a second aggregate energy value of a second candidate frequency based on amplitudes of the second candidate frequency and harmonics thereof represented in the segment of the spectrogram; and

identifying the second candidate frequency as the second most dominant frequency based on the second aggregate energy value of the second candidate frequency being a second largest aggregate energy value among the aggregate energy values of the frequencies whose amplitudes are represented in the segment of the spectrogram;

creating a query harmonogram of the audio data, different segments of the query harmonogram representing aggregate energy values of dominant frequencies in different time slices of the query sound, the creating of the query harmonogram including indicating the first and second aggregate energy values in a same segment of the query harmonogram; and

providing an identifier of the query sound based on a comparison of the query harmonogram to a reference harmonogram mapped to the identifier by a database.

17. The non-transitory machine-readable storage medium of claim 16 , wherein the operations further comprise:

generating a reference hash of the reference harmonogram;

indexing the reference hash among multiple reference hashes of multiple reference harmonograms within the database; and

generating a query hash of the query harmonogram based on the query harmonogram; and wherein

the providing of the identifier of the query sound is based on a determination that the query hash of the query harmonogram matches the indexed reference hash of the reference harmonogram.

18. A system comprising:

processors; and

a memory storing instructions that, when executed by at least one processor among the processors, causes the system to perform operations comprising:

accessing audio data that represents query sound to be identified;

creating a spectrogram of the audio data, different segments of the spectrogram representing amplitudes at frequencies in different time slices of the query sound;

determining a first most dominant frequency in a time slice of the query sound based on a segment of the spectrogram, the determining including:

calculating a first aggregate energy value of a first candidate frequency based on amplitudes of the first candidate frequency and harmonics thereof represented in the segment of the spectrogram; and

identifying the first candidate frequency as the first most dominant frequency based on the first aggregate energy value of the first candidate frequency being a first largest aggregate energy value among aggregate energy values of frequencies whose amplitudes are represented in the segment of the spectrogram;

determining a second most dominant frequency that indicates a second strongest harmonic component of the time slice, the determining of the second most dominant frequency including:

calculating a second aggregate energy value of a second candidate frequency based on amplitudes of the second candidate frequency and harmonics thereof represented in the segment of the spectrogram; and

identifying the second candidate frequency as the second most dominant frequency based on the second aggregate energy value of the second candidate frequency being a second largest aggregate energy value among the aggregate energy values of the frequencies whose amplitudes are represented in the segment of the spectrogram;

creating a query harmonogram of the audio data, different segments of the query harmonogram representing aggregate energy values of dominant frequencies in different time slices of the query sound, the creating of the query harmonogram including indicating the first and second aggregate energy values in a same segment of the query harmonogram; and

providing an identifier of the query sound based on a comparison of the query harmonogram to a reference harmonogram mapped to the identifier by a database.

19. The system of claim 18 , wherein the operations further comprise:

generating a reference hash of the reference harmonogram;

indexing the reference hash among multiple reference hashes of multiple reference harmonograms within the database; and

generating a query hash of the query harmonogram based on the query harmonogram; and wherein

the providing of the identifier of the query sound is based on a determination that the query hash of the query harmonogram matches the indexed reference hash of the reference harmonogram.

Assignments (12)
RELEASE (REEL 054066 / FRAME 0064) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063605/0001 →
RELEASE (REEL 053473 / FRAME 0001) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063603/0001 →
SECURITY INTEREST Recorded May 8, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: ARES CAPITAL CORPORATION
Reel/Frame 063574/0632 →
SECURITY INTEREST Recorded Apr 28, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: CITIBANK, N.A.
Reel/Frame 063561/0381 →
SECURITY AGREEMENT Recorded Jan 31, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 063560/0547 →
RELEASE (REEL 042262 / FRAME 0601) Recorded Oct 13, 2022
From: CITIBANK, N.A.
To: GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC
Reel/Frame 061748/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENTS LISTED ON SCHEDULE 1 RECORDED ON 6-9-2020 PREVIOUSLY RECORDED ON REEL 053473 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SUPPLEMENTAL IP SECURITY AGREEMENT. Recorded Oct 7, 2020
From: A.C. NIELSEN (ARGENTINA) S.A.; A.C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A
Reel/Frame 054066/0064 →
SUPPLEMENTAL SECURITY AGREEMENT Recorded Jun 9, 2020
From: A. C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NIELSEN UK FINANCE I, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A.
Reel/Frame 053473/0001 →
SUPPLEMENTAL SECURITY AGREEMENT Recorded Apr 13, 2017
From: GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE DIGITAL VENTURES, LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042262/0601 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Feb 8, 2017
From: JPMORGAN CHASE BANK, N.A.
To: GRACENOTE, INC.; CASTTV INC.; TRIBUNE MEDIA SERVICES, LLC; TRIBUNE DIGITAL VENTURES, LLC
Reel/Frame 041656/0804 →
SECURITY AGREEMENT Recorded Mar 1, 2016
From: GRACENOTE, INC.; TRIBUNE BROADCASTING COMPANY, LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 037960/0805 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: RAFII, ZAFAR
To: GRACENOTE, INC.
Reel/Frame 037709/0661 →