IP Library Granted Patent US 8,886,531
Granted Patent B2
US 8,886,531 · App. 12/686,779 · Granted Nov 11, 2014

Apparatus and method for generating an audio fingerprint and using a two-stage query

Inventor: Brian Kenneth Vogel (Weidman, MI)
Assignee: Rovi Technologies Corporation
G10L25/48G06F17/30743G06F17/30784
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,886,531
App. No.
12/686,779
Granted
Nov 11, 2014
Kind
B2
Abstract

An audio fingerprint is generated by transforming an audio sample of a recording to a time-frequency domain and storing each time-frequency pair in a matrix array, detecting a plurality of local maxima for a predetermined number of time slices, selecting a predetermined number of largest-magnitude maxima from the plurality of local maxima detected by said detecting, and generating one or more hash values corresponding to the predetermined number of largest-magnitude maxima.

Claims (66)

1. A method comprising:

transforming a sample of a recording to a time-frequency domain and storing each time-frequency pair in a matrix array;

setting all elements of the matrix array that are below a predetermined noise floor to zero and setting all elements of the matrix array that are outside a predetermined frequency range to zero;

detecting a plurality of local maxima for a predetermined number of time slices;

selecting a predetermined number of largest-magnitude maxima from the plurality of local maxima detected by said detecting;

generating one or more hash values corresponding to the predetermined number of largest-magnitude maxima;

comparing the one or more hash values to corresponding hash values of known recordings in a first stage query to identify a set of possible matches; and

comparing the set of possible matches to a full-recording fingerprint of the sample in a second stage query, the full-recording fingerprint being a recording fingerprint of a substantial length or the entire length of a known recording.

2. The method of claim 1 , further comprising the steps of:

grouping the plurality of local maxima detected by said detecting in accordance with a time-slice interval; and

grouping a plurality of time-slices intervals, thereby defining a sub-spectrogram.

3. The method of claim 2 , further comprising the step of:

determining a predetermined number of highest magnitude local maxima within each sub-spectrogram.

4. The method of claim 3 , wherein determining of the predetermined number of highest magnitude local maxima includes:

sorting the plurality of local maxima within each sub-spectrogram in either descending or ascending magnitude; and

selecting a predetermined number of the largest-magnitude maxima.

5. The method of claim 1 , further comprising the step of:

storing each maxima in a data structure according to a time index, a frequency index and a magnitude of each maxima.

6. The method of claim 5 , further comprising the step of:

generating a hash value based on at least a portion of each maxima stored in the data structure.

7. The method of claim 1 , further comprising the step of:

performing noise filtering of the predetermined number of highest magnitude local maxima.

8. An apparatus comprising:

at least one processor configured to:

transform a sample of a recording to a time-frequency domain and storing each time-frequency pair in a matrix array;

set all elements of the matrix array that are below a predetermined noise floor to zero and set all elements of the matrix array that are outside a predetermined frequency range to zero;

detect a plurality of local maxima for a predetermined number of time slices;

select a predetermined number of largest-magnitude maxima from the plurality of local maxima detected by said detection;

generate one or more hash values corresponding to the predetermined number of largest-magnitude maxima;

compare the one or more hash values to corresponding hash values of known recordings in a first stage query to identify a set of possible matches; and

compare the set of possible matches to a full-recording fingerprint of the sample in a second stage query, the full-recording fingerprint being a recording fingerprint of a substantial length or the entire length of a known recording.

9. The apparatus of claim 8 , further comprising:

the at least one processor further configured to:

group the plurality of local maxima detected by said detecting in accordance with a time-slice interval; and

group a plurality of time-slices intervals, thereby defining a sub-spectrogram.

10. The apparatus of claim 9 , wherein the at least one processor is further configured to determine a predetermined number of highest magnitude local maxima within each sub-spectrogram.

11. The apparatus of claim 10 , wherein the predetermined number of highest magnitude local maxima are determined by:

sorting the plurality of local maxima within each sub-spectrogram in either descending or ascending magnitude; and

selecting a predetermined number if the largest-magnitude maxima.

12. The apparatus of claim 8 , further comprising:

a storage device configured to store each maxima in a data structure according to a time index, a frequency index and a magnitude of each maxima.

13. The apparatus of claim 12 , wherein the at least one processor is further configured to generate a hash value based on at least a portion of each maxima stored in the data structure.

14. The apparatus of claim 8 , further comprising:

a noise filter operable to perform noise filtering of the predetermined number of highest magnitude local maxima.

15. A non-transitory computer-readable medium having stored thereon sequences of instructions, the sequences of instructions including instructions which when executed by a computer system causes the computer system to perform:

transforming a sample of a recording to a time-frequency domain and storing each time-frequency pair in a matrix array;

setting all elements of the matrix array that are below a predetermined noise floor to zero and setting all elements of the matrix array that are outside a predetermined frequency range to zero;

detecting a plurality of local maxima for a predetermined number of time slices;

selecting a predetermined number of largest-magnitude maxima from the plurality of local maxima detected by said detecting;

generating one or more hash values corresponding to the predetermined number of largest magnitude maxima;

comparing the one or more hash values to corresponding hash values of known recordings in a first stage query to identify a set of possible matches; and

comparing the set of possible matches to a full-recording fingerprint of the sample in a second stage query, the full-recording fingerprint being a recording fingerprint of a substantial length or the entire length of a known recording.

16. The computer-readable medium of claim 15 , further having stored thereon a sequence of instructions which when executed by the computer system causes the computer system to perform:

grouping the plurality of local maxima detected by said detecting in accordance with a time-slice interval; and

grouping a plurality of time-slices intervals, thereby defining a sub-spectrogram.

17. The computer-readable medium of claim 16 , further having stored thereon a sequence of instructions which when executed by the computer system causes the computer system to perform:

determining as predetermined number of highest magnitude local maxima within each sub-spectrogram.

18. The computer-readable medium of claim 17 , wherein determining of the predetermined number of highest magnitude local maxima includes:

sorting the plurality of local maxima within each sub-spectrogram in either descending or ascending magnitude; and

selecting a predetermined number of the largest-magnitude maxima.

19. The computer-readable medium of claim 15 , further having stored thereon as sequence of instructions which when executed by the computer system causes the computer system to perform:

storing each maxima in a data structure according to it time index, a frequency index and a magnitude of each maxima.

20. The computer-readable medium of claim 19 , further having stored thereon a sequence of instructions which when executed by the computer system causes the computer system to perform:

generating a hash value based on at least a portion of each maxima stored in the data structure.

21. The computer-readable medium of claim 15 , further having stored thereon a sequence of instructions which when executed by the computer system causes the computer system to perform:

performing noise filtering of the predetermined number of highest magnitude local maxima.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 25, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: APTIV DIGITAL INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ROVI GUIDES, INC.; ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; SONIC SOLUTIONS LLC; STARSIGHT TELECAST, INC.; UNITED VIDEO PROPERTIES, INC.; VEVEO, INC.
Reel/Frame 051145/0090 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
PATENT SECURITY AGREEMENT Recorded Jul 24, 2014
From: APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ROVI GUIDES, INC.; ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; SONIC SOLUTIONS LLC; STARSIGHT TELECAST, INC.; UNITED VIDEO PROPERTIES, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 033407/0035 →
PATENT RELEASE Recorded Jul 24, 2014
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ALL MEDIA GUIDE, LLC; APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ROVI CORPORATION; ROVI GUIDES, INC.; ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; STARSIGHT TELECAST, INC.; TV GUIDE INTERNATIONAL, INC.; UNITED VIDEO PROPERTIES, INC.
Reel/Frame 033396/0001 →
SECURITY INTEREST Recorded Sep 13, 2011
From: APTIV DIGITAL, INC., A DELAWARE CORPORATION; GEMSTAR DEVELOPMENT CORPORATION, A CALIFORNIA CORPORATION; INDEX SYSTEMS INC, A BRITISH VIRGIN ISLANDS COMPANY; ROVI CORPORATION, A DELAWARE CORPORATION; ROVI GUIDES, INC., A DELAWARE CORPORATION; ROVI SOLUTIONS CORPORATION, A DELAWARE CORPORATION; ROVI TECHNOLOGIES CORPORATION, A DELAWARE CORPORATION; STARSIGHT TELECAST, INC., A CALIFORNIA CORPORATION; UNITED VIDEO PROPERTIES, INC., A DELAWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027039/0168 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2010
From: VOGEL, BRIAN KENNETH
To: ROVI TECHNOLOGIES CORPORATION
Reel/Frame 023780/0692 →
Continuity (1)
Related Publication 20110173208A1 · Jul 14, 2011