IP Library Granted Patent US 10,129,575
Granted Patent B1
US 10,129,575 · App. 15/793,319 · Granted Nov 13, 2018

Methods and systems for determining a latency between a source and an alternative feed of the source

Inventors: Avery Li-Chun Wang (Palo Alto, CA); Ira Joseph Woodhead (San Francisco, CA); Christopher Matthew Healy (San Francisco, CA); Scott Edward Holechek (Jersey City, NJ)
Assignee: Shazam Entertainment Limited
H04N21/2407G06F17/30769H04N21/232H04N21/233
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 10,129,575
App. No.
15/793,319
Granted
Nov 13, 2018
Kind
B1
Abstract

An example method includes receiving queries from devices that include respective samples of content from a stream of content rendered by a source, receiving samples of content from a stream of content rendered by an alternative feed of the source, and for each sample of content from the alternative feed of the source, identifying respective matching queries that match to the same content as the sample of content from the alternative feed of the source. The method also includes for each respective matching query, determining a respective relative time difference between a time that the content appears in the sample of content from the alternative feed and a time that the content appears in the respective matching query, accumulating a distribution of the time differences over time, and determining a latency between the source and the alternative feed of the source.

Claims (90)

1. A method comprising:

receiving, by one or more processors, queries from devices, wherein the queries include respective samples of content from a stream of content rendered by a source;

receiving, by the one or more processors, samples of content from a stream of content rendered by an alternative feed of the source;

for each sample of content from the alternative feed of the source, identifying respective matching queries that match to the same content as the sample of content from the alternative feed of the source;

for each respective matching query, determining a respective relative time difference between a time that the content appears in the sample of content from the alternative feed and a time that the content appears in the respective matching query;

accumulating a distribution of the time differences over time; and

based on the distribution of the time differences, determining, by the one or more processors, a latency between the source and the alternative feed of the source.

2. The method of claim 1 , wherein the source includes a radio broadcast, and the alternative feed of the source includes one or more of a streaming internet feed and a streaming satellite feed corresponding to the radio broadcast.

3. The method of claim 1 , wherein accumulating the distribution of the time differences over time comprises:

generating a histogram of the time differences; and,

determining the latency between the source and the alternative feed of the source based on a peak of the histogram.

4. The method of claim 1 , wherein accumulating the distribution of the time differences over time comprises:

generating a histogram of the time differences;

de-emphasizing data points in the histogram as the data points age;

tracking a peak of the histogram over time; and

determining the latency based on the peak of the histogram.

5. The method of claim 1 , further comprising:

de-emphasizing data points in the distribution as the data points age by applying a decay to the distribution.

6. The method of claim 1 , further comprising:

removing any time differences from the distribution of the time differences that are above a threshold difference.

7. The method of claim 1 , further comprising:

accumulating the distribution of the time differences over time so as to span a plurality of different pieces of content that have different content identifications.

8. The method of claim 1 , further comprising:

determining an identification of the source of the samples of content in the queries; and

sending information indicating the identification of the source to respective devices.

9. The method of claim 8 , wherein the samples of content include associated timestamps indicating a start time at which the sample was recorded, and wherein determining the identification of the source of the samples of content in the queries comprises

comparing the associated timestamps with an alternative feed source time adjusted by the latency, wherein the alternative feed source time is a reference time point at which samples of content are received from the alternative feed of the source; and

based on the associated timestamps and the alternative feed source time being within a time window, determining that the samples of content were recorded from an original feed of a source corresponding to the source of the alternative feed.

10. The method of claim 1 , further comprising:

receiving location information from the devices indicating geographic locations of the devices; and

filtering identified matching queries based on the geographic locations of the devices matching to or being proximal to a geographic location of the source.

11. The method of claim 1 , further comprising:

determining the latency between the source and the alternative feed of the source based on a given time difference in the distribution having a largest accumulation.

12. The method of claim 1 , further comprising:

performing a content recognition of the sample of content from the stream of content rendered by the alternative feed of the source to determine a source identification of the content;

performing a content recognition of the sample of content from the queries to determine a respective query identification of the content; and

identifying the respective matching queries that match to the same content as the sample of content from the alternative feed of the source based on a comparison of the source identification of content with the respective query identification of content.

13. The method of claim 1 , further comprising:

identifying the respective matching queries that match to the same content as the sample of content from the alternative feed of the source based on a direct comparison of the sample of content from the alternative feed of the source with the samples of content from the queries.

14. The method of claim 1 , further comprising:

determining the relative time difference based on a time difference between (i) a beginning time of the content in the sample of content from the alternative feed of the source and (ii) a respective beginning time of the content in the respective matching query.

15. The method of claim 1 , wherein the samples of content include associated UTC timestamps (UTC query ) indicating a start time at which the sample was recorded and the samples of content of the alternative feed of the source also have associated UTC timestamps (UTC feed ), and wherein the time difference between the time that the content appears in the sample of content from the alternative feed and the time that the content appears in the respective matching query is ΔT content , and wherein determining the relative time difference comprises determining:

UTC query −( UTC feed +ΔT content ).

16. A non-transitory computer readable medium having stored thereon instructions, that when executed by one or more processors, cause the one or more processors to perform functions comprising:

receiving queries from devices, wherein the queries include respective samples of content from a stream of content rendered by a source;

receiving samples of content from a stream of content rendered by an alternative feed of the source;

for each sample of content from the alternative feed of the source, identifying respective matching queries that match to the same content as the sample of content from the alternative feed of the source;

for each respective matching query, determining a respective relative time difference between a time that the content appears in the sample of content from the alternative feed and a time that the content appears in the respective matching query;

accumulating a distribution of the time differences over time; and

based on the distribution of the time differences, determining a latency between the source and the alternative feed of the source.

17. The non-transitory computer readable medium of claim 16 , wherein the source includes a radio broadcast, and the alternative feed of the source includes one or more of a streaming internet feed and a streaming satellite feed corresponding to the radio broadcast.

18. The non-transitory computer readable medium of claim 16 , wherein accumulating the distribution of the time differences over time comprises generating a histogram of the time differences, and the functions further comprise:

determining the latency between the source and the alternative feed of the source based on a peak of the histogram.

19. The non-transitory computer readable medium of claim 18 , wherein determining the latency between the source and the alternative feed of the source comprises:

determining the latency to be an amount equal to a time difference for the peak of the histogram.

20. The non-transitory computer readable medium of claim 16 , wherein the functions further comprise:

receiving location information from the devices indicating geographic locations of the devices; and

filtering identified matching queries based on the geographic locations of the devices matching to or being proximal to geographic locations of the source.

21. The non-transitory computer readable medium of claim 16 , wherein the functions further comprise:

performing a content recognition of the sample of content from the stream of content rendered by the alternative feed of the source to determine a source identification of the content;

performing a content recognition of the sample of content from the queries to determine a respective query identification of the content; and

identifying the respective matching queries that match to the same content as the sample of content from the alternative feed of the source based on a comparison of the source identification of content with the respective query identification of content.

22. The non-transitory computer readable medium of claim 16 , wherein the functions further comprise:

identifying the respective matching queries that match to the same content as the sample of content from the alternative feed of the source based on a direct comparison of the sample of content from the alternative feed of the source with the samples of content from the queries.

23. The non-transitory computer readable medium of claim 16 , wherein the functions further comprise:

determining the relative time difference based on a time difference between (i) a beginning time of the content in the sample of content from the alternative feed of the source and (ii) a respective beginning time of the content in the respective matching query.

24. A system comprising:

one or more processors; and

non-transitory computer readable medium storing instructions, that when executed by the one or more processors, causes the one or more processors to perform functions comprising:

receiving queries from devices, wherein the queries include respective samples of content from a stream of content rendered by a source and associated timestamps;

receiving samples of content from a stream of content rendered by an alternative feed of the source;

for each sample of content from the alternative feed of the source, identifying respective matching queries that match to the same content as the sample of content from the alternative feed of the source;

for each respective matching query, determining a respective relative time difference between a time that the content appears in the sample of content from the alternative feed and a time that the content appears in the respective matching query;

accumulating a distribution of the time differences over time; and

based on the distribution of the time differences, determining a latency between the source and the alternative feed of the source.

25. The system of claim 24 , wherein accumulating the distribution of the time differences over time comprises generating a histogram of the time differences, and the functions further comprise:

determining the latency between the source and the alternative feed of the source based on a peak of the histogram.

26. The system of claim 25 , wherein the functions further comprise:

determining the latency to be an amount equal to a time difference for the peak of the histogram.

27. The system of claim 24 , wherein the functions further comprise:

receiving location information from the devices indicating geographic locations of the devices; and

filtering identified matching queries based on the geographic locations of the devices matching to or being proximal to a geographic location of the source.

28. The system of claim 24 , wherein the functions further comprise:

performing a content recognition of the sample of content from the stream of content rendered by the alternative feed of the source to determine a source identification of the content;

performing a content recognition of the sample of content from the queries to determine a respective query identification of the content; and

identifying the respective matching queries that match to the same content as the sample of content from the alternative feed of the source based on a comparison of the source identification of content with the respective query identification of content.

29. The system of claim 24 , wherein the functions further comprise:

identifying the respective matching queries that match to the same content as the sample of content from the alternative feed of the source based on a direct comparison of the sample of content from the alternative feed of the source with the samples of content from the queries.

30. The system of claim 24 , wherein the functions further comprise:

determining the relative time difference based on a time difference between (i) a beginning time of the content in the sample of content from the alternative feed of the source and (ii) a respective beginning time of the content in the respective matching query.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2020
From: SHAZAM INVESTMENTS LIMITED
To: APPLE INC.
Reel/Frame 053689/0704 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2017
From: WANG, AVERY LI-CHUN; WOODHEAD, IRA JOSEPH; HEALY, CHRISTOPHER MATTHEW; HOLECHEK, SCOTT EDWARD
To: SHAZAM INVESTMENTS LTD.
Reel/Frame 043958/0866 →