IP Library Patent Application 15134071
Patent Application
App. No. 15/134,071

DIGITAL FINGERPRINT INDEXING

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 None
App. No.
15/134,071
Abstract

A machine accesses audio data that may be included in a media item, and the audio data includes multiple segments. The machine detects a silent segment among non-silent segments of the audio data. The machine generates sub-fingerprints of the non-silent segments by hashing the non-silent segments with a same fingerprinting algorithm, but the machine generates a sub-fingerprint of the silent segment based on a predetermined non-zero value that represents fingerprinted silence. With these sub-fingerprints generated, the machine generates a fingerprint of the audio data, of the media item, or of both, by storing the generated sub-fingerprints mapped to locations of their corresponding segments in the audio data. The machine then indexes the fingerprint by indexing the sub-fingerprints of the non-silent segments, without indexing the sub-fingerprint of the silent segment.

Claims (96)

1 . A method comprising:

accessing, by one or more hardware processors, audio data included in a media item, the audio data including segments, the segments including a silent segment and non-silent segments;

identifying, by the one or more hardware processors, the silent segment based on a comparison of a sound level of the silent segment to a reference sound level;

for each of the segments, generating, by the one or more hardware processors, a sub-fingerprint of the segment, the generated sub-fingerprint of the silent segment including a predetermined non-zero value that indicates fingerprinted silence;

generating, by the one or more hardware processors, a fingerprint of the audio data, the fingerprint including the sub-fingerprints of the non-silent segments of the audio data and the sub-fingerprint of the silent segment of the audio data;

indexing, by the one or more hardware processors, the fingerprint of the audio data by indexing the sub-fingerprints of the non-silent segments of the audio data without indexing the sub-fingerprint of the silent segment of the audio data; and

storing, by the one or more hardware processors, the indexed fingerprint of the audio data in a database.

2 . The method of claim 1 , wherein:

the indexing of the fingerprint of the audio data indexes only the generated sub-fingerprints of the non-silent segments and omits the generated sub-fingerprint of the silent segment from the indexing.

3 . The method of claim 1 , wherein:

the generating of the sub-fingerprints of the non-silent segments is based on a hashing algorithm; and

the generating of the sub-fingerprint of the silent segment includes:

hashing the silent segment with the hashing algorithm used to hash the non-silent segments, the hashing of the silent segment resulting in an output value; and

replacing the output value from the hashing of the silent segment with the predetermined non-zero value that indicates fingerprinted silence.

4 . The method of claim 3 , wherein:

the replacing of the output value with the predetermined non-zero value replaces the output value with one or more repetitions of a predetermined string of non-zero digits, the predetermined string of non-zero digits representing fingerprinted silence.

5 . The method of claim 4 , wherein:

the replacing of the output value with the predetermined non-zero value includes run-length encoding the one or more repetitions of the predetermined string of non-zero digits.

6 . The method of claim 1 , wherein:

the indexed fingerprint of the audio data is a reference fingerprint of a reference media item; and the method further comprises:

comparing the reference fingerprint to a query fingerprint of a query media item by comparing one or more sub-fingerprints of only the non-silent segments to one or more sub-fingerprints generated from the query media item; and

determining that the reference fingerprint matches the query fingerprint based on the comparing of the one or more sub-fingerprints of only the non-silent segments to the one or more sub-fingerprints generated from the query media item.

7 . The method of claim 6 , wherein:

the comparing of the reference fingerprint to the query fingerprint omits any comparisons of the sub-fingerprint of the silent segment to any sub-fingerprints generated from the query media item.

8 . The method of claim 1 , wherein:

the audio data included in the media item is reference audio data included in a reference media item, the silent segment is a reference silent segment, the non-silent segments are reference non-silent segments, the indexed fingerprint is a reference fingerprint of the reference media item, the sub-fingerprint of the silent segment is a reference sub-fingerprint of the reference silent segment, and the sub-fingerprints of the non-silent segments are reference sub-fingerprints of the reference non-silent segments; and the method further comprises:

receiving a query fingerprint of query audio data included in a query media item to be identified;

accessing the database in which the reference sub-fingerprints of the reference non-silent segments are indexed and in which the reference sub-fingerprint of the reference silent segment is not indexed;

selecting, from the database, the reference fingerprint as a candidate fingerprint for comparison to the query fingerprint; and

identifying the query media item based on a comparison of the selected reference fingerprint to the received query fingerprint.

9 . The method of claim 8 , wherein:

the receiving of the query fingerprint includes receiving a query sub-fingerprint of a query silent segment of the query audio data; and

the identifying of the query media item includes comparing the reference sub-fingerprint of the reference silent segment to the query sub-fingerprint of the query silent segment.

10 . The method of claim 9 , wherein:

the receiving of the query fingerprint includes receiving query sub-fingerprints of query non-silent segments of the query audio data;

the method further comprises:

comparing one or more of the reference sub-fingerprints of the reference non-silent segments to one or more of the query sub-fingerprints of the query non-silent segments; and

failing to find a match between the one or more of the reference sub-fingerprints of the reference non-silent segments and the one or more of the query sub-fingerprints of the query non-silent segments; and

in the identifying of the query media item, the comparing of the reference sub-fingerprint of the reference silent segment to the query sub-fingerprint of the query silent segment is in response to the failing to find the match.

11 . The method of claim 8 , wherein:

the receiving of the query fingerprint includes receiving a query sub-fingerprint of a query silent segment of the query audio data and receiving query sub-fingerprints of query non-silent segments of the query audio data;

the method further comprises:

calculating a percentage of query silent segments in the query audio data; and

determining that the percentage of query silent segments transgresses a predetermined threshold percentage of silent segments; and

the identifying of the query media item is based on the calculated percentage of query silent segments transgressing the predetermined threshold percentage of silent segments.

12 . The method of claim 11 , wherein:

the predetermined threshold percentage of query silent segments is a maximum percentage of silent segments; and

in response to the calculated percentage of query silent segments exceeding the maximum percentage, the identifying of the query media item includes comparing the calculated percentage of query silent segments to a reference percentage of reference silent segments in the reference audio data.

13 . The method of claim 11 , wherein:

the predetermined threshold percentage of query silent segments is a maximum percentage of silent segments; and

in response to the calculated percentage of query silent segments exceeding the maximum percentage, the identifying of the query media item includes determining that a reference sub-fingerprint among the reference sub-fingerprints of the reference non-silent segments matches a query sub-fingerprint among the query sub-fingerprints of the query non-silent segments.

14 . The method of claim 11 , wherein:

the predetermined threshold percentage of query silent segments is a minimum percentage of silent segments; and

in response to the calculated percentage of query silent segments failing to exceed the minimum percentage, the identifying of the query media item includes determining that the calculated percentage of query silent segments matches a reference percentage of reference silent segments in the reference audio data.

15 . The method of claim 11 , wherein:

the predetermined threshold percentage of query silent segments is a minimum percentage of silent segments; and

in response to the calculated percentage of query silent segments failing to exceed the minimum percentage, the identifying of the query media item includes determining that a reference sub-fingerprint among the reference sub-fingerprints of the reference non-silent segments matches a query sub-fingerprint among the query sub-fingerprints of the query non-silent segments.

16 . The method of claim 1 , wherein:

the identifying of the silent segment is based on a threshold loudness and includes determining the threshold loudness by calculating a predetermined percentage of an average loudness of the segments of the audio data.

17 . The method of claim 1 , wherein:

the generating of the fingerprint of the audio data includes mapping each of the generated sub-fingerprints to a different corresponding location of a different corresponding segment of the audio data.

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

accessing audio data included in a media item, the audio data including segments of the audio data, the segments including a silent segment and non-silent segments;

identifying the silent segment based on a comparison of a sound level of the silent segment to a reference sound level;

for each of the segments, generating a sub-fingerprint of the segment, the generated sub-fingerprint of the silent segment including a predetermined non-zero value that indicates fingerprinted silence;

generating a fingerprint of the audio data, the fingerprint including the sub-fingerprints of the non-silent segments of the audio data and the sub-fingerprint of the silent segment of the audio data;

indexing the fingerprint of the audio data by indexing the sub-fingerprints of the non-silent segments of the audio data without indexing the sub-fingerprint of the silent segment of the audio data; and

storing the indexed fingerprint of the audio data in a database.

19 . A system comprising:

one or more hardware processors; and

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

accessing audio data included in a media item, the audio data including segments of the audio data, the segments including a silent segment and non-silent segments;

identifying the silent segment based on a comparison of a sound level of the silent segment to a reference sound level;

for each of the segments, generating a sub-fingerprint of the segment, the generated sub-fingerprint of the silent segment including a predetermined non-zero value that indicates fingerprinted silence;

generating a fingerprint of the audio data, the fingerprint including the sub-fingerprints of the non-silent segments of the audio data and the sub-fingerprint of the silent segment of the audio data;

indexing the fingerprint of the audio data by indexing the sub-fingerprints of the non-silent segments of the audio data without indexing the sub-fingerprint of the silent segment of the audio data; and

storing the indexed fingerprint of the audio data in a database.

20 . The system of claim 19 , wherein:

the indexing of the fingerprint of the audio data indexes only the generated sub-fingerprints of the non-silent segments and omits the generated sub-fingerprint of the silent segment from the indexing.

21 . A method comprising:

generating, by one or more hardware processors, a query fingerprint of query audio data included in a query media item to be identified, the generated query fingerprint including a query sub-fingerprint of a query silent segment of the query audio data and query sub-fingerprints of query non-silent segments of the query audio data;

querying, by the one or more hardware processors, a database that stores a plurality of reference fingerprints of a plurality of reference media items, a reference fingerprint among the plurality of reference fingerprints identifying a reference media item, the database including an index in which reference sub-fingerprints of reference non-silent segments of reference audio data of the reference media item are indexed and in which a reference sub-fingerprint of a reference silent segment of the reference audio data is not indexed;

selecting, by the one or more hardware processors, the reference fingerprint as a candidate fingerprint for comparison to the query fingerprint, the selecting being based on the index in which the reference sub-fingerprints of the reference non-silent segments are indexed and in which the reference sub-fingerprint of the reference silent segment is not indexed; and

identifying, by the one or more hardware processors, the query media item based on a comparison of the selected reference fingerprint to the received query fingerprint.

22 . A system comprising:

one or more hardware processors; and

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

generating a query fingerprint of query audio data included in a query media item to be identified, the generated query fingerprint including a query sub-fingerprint of a query silent segment of the query audio data and query sub-fingerprints of query non-silent segments of the query audio data;

querying a database that stores a plurality of reference fingerprints of a plurality of reference media items, a reference fingerprint among the plurality of reference fingerprints identifying a reference media item, the database including an index in which reference sub-fingerprints of reference non-silent segments of reference audio data of the reference media item are indexed and in which a reference sub-fingerprint of a reference silent segment of the reference audio data is not indexed;

selecting the reference fingerprint as a candidate fingerprint for comparison to the query fingerprint, the selecting being based on the index in which the reference sub-fingerprints of the reference non-silent segments are indexed and in which the reference sub-fingerprint of the reference silent segment is not indexed; and

identifying the query media item based on a comparison of the selected reference fingerprint to the received query fingerprint.

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

generating a query fingerprint of query audio data included in a query media item to be identified, the generated query fingerprint including a query sub-fingerprint of a query silent segment of the query audio data and query sub-fingerprints of query non-silent segments of the query audio data;

querying a database that stores a plurality of reference fingerprints of a plurality of reference media items, a reference fingerprint among the plurality of reference fingerprints identifying a reference media item, the database including an index in which reference sub-fingerprints of reference non-silent segments of reference audio data of the reference media item are indexed and in which a reference sub-fingerprint of a reference silent segment of the reference audio data is not indexed;

selecting the reference fingerprint as a candidate fingerprint for comparison to the query fingerprint, the selecting being based on the index in which the reference sub-fingerprints of the reference non-silent segments are indexed and in which the reference sub-fingerprint of the reference silent segment is not indexed; and

identifying the query media item based on a comparison of the selected reference fingerprint to the received query fingerprint.

Assignments (5)
RELEASE (REEL 042262 / FRAME 0601) Recorded Oct 13, 2022
From: CITIBANK, N.A.
To: GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC
Reel/Frame 061748/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 →
NOTICE AND CONFIRMATION OF GRANT OF SECURITY INTEREST IN PATENTS Recorded May 11, 2016
From: GRACENOTE, INC.; TRIBUNE BROADCASTING COMPANY, LLC; TRIBUNE MEDIA COMPANY
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038679/0458 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2016
From: SCOTT, JEFFREY; CREMER, MARKUS K.; COOVER, ROBERT
To: GRACENOTE, INC.
Reel/Frame 038335/0700 →