# Patent

## Title
Methods and apparatus to meter content exposure using closed caption information

## Abstract

Methods and apparatus to meter content exposure using closed caption information are disclosed. An example method comprises developing a keyword database of terms based on program guide descriptive of programs for a given time period, generating one or more values representative of likelihoods that one or more respective media content was presented based on a comparison of closed caption text and the keyword database, collecting audience measurement data, and employing the one or more likelihood values to identify a set of reference data for comparison to the audience measurement data to identify presented content.

## Background
RELATED APPLICATIONS
This patent claims the benefit of U.S. Provisional Application Ser. No. 60/804,893, entitled “Methods and Apparatus to Meter Content Consumption Using Closed Caption and Program Guide Information,” filed on Jun. 15, 2006, which is hereby incorporated by reference in its entirety.


FIELD OF THE DISCLOSURE
This disclosure relates generally to the metering of content exposure and, more particularly, to methods and apparatus to meter content exposure using closed caption information.
BACKGROUND
Exposure to media content may be metered by collecting, identifying and/or extracting audience measurement codes embedded within content being presented. Such audience measurement codes are commonly inserted, embedded and/or otherwise placed into content by content providers, such as television and/or radio broadcasters, to facilitate identification of content. Alternatively or additionally, exposure to content may be measured by collecting signatures representative of the content. By comparing one or more audience measurement codes and/or signatures collected during content presentation with a database of known audience measurement codes and/or signatures, the exposure of particular pieces of content to one or more persons, respondents and/or households may be measured.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic illustration of an example system to meter content exposure using closed caption information.
FIG. 2 illustrates an example manner of implementing the example content exposure meter of FIG. 1.
FIG. 3 is an example histogram of most probable TV channels presented and/or consumed during a given period of time.
FIG. 4 is an example table of audience measurement codes and hints data.
FIG. 5 illustrates an example manner of implementing the example processing server of FIG. 1.
FIG. 6 is a flowchart representative of an example process that may be executed to implement the example content exposure meter of FIG. 1.
FIG. 7 is a flowchart representative of an example process that may be executed to implement the example processing server of FIG. 1.
FIG. 8 is a schematic illustration of an example processor platform that may be used and/or programmed to execute the example processes of FIGS. 6 and/or 7 to implement the example content exposure meter and/or the example processing server of FIG. 1.



DETAILED DESCRIPTION
FIG. 1 illustrates an example system constructed in accordance with the teachings of the invention to meter content exposure using closed caption information. The example system of FIG. 1 meters a) content being presented and/or consumed at the time that the content is broadcast and/or b) content not being presented and/or consumed at the time that the content is broadcast (e.g., the system meters content being presented and/or consumed that was earlier recorded at the time of broadcast and is now being presented at a later time (i.e., time shifted viewing)). To meter content exposure, the example system of FIG. 1 uses closed caption information and/or content identifiers. As used herein, a “content identifier” is any type of data and/or information associated with, embedded with, inferable from and/or injected into a piece of content, and which may be used to identify that piece of content. Audience measurement codes (e.g., audio codes, audio watermarks, video watermarks, vertical blanking interval (VBI) codes, image watermarks and/or any other watermarks embedded in content by content providers such as television and/or radio broadcasters to facilitate identification of content), public or private identifiers in bit streams, closed captioning information, metadata, signatures, or any other type(s) of data can serve as content identifiers. A content identifier is generally not noticeable to the audience during playback, but this is not necessarily so. For content currently being broadcast, the example system of FIG. 1 utilizes audience measurement codes and/or signatures (e.g., audio, video, image and/or otherwise) to identify the content being presented and/or consumed. In particular, the collected audience measurement codes and/or signatures may be compared with a database of audience measurement codes and/or signatures that represents known content to facilitate identification of the content being presented. Likewise, for previously recorded content, the example system may also utilize audience measurement codes and/or signatures to identify the presented media content.
Since audience measurement codes and/or signatures determined from previously recorded content may be substantially time-shifted with respect to a reference database of audience measurement codes and/or signatures, the matching of audience measurement codes and/or signatures with the database to determine what content is being presented and/or consumed may become difficult and/or time consuming. As such, the example system of FIG. 1 utilizes closed caption information to identify, at the time that content is presented and/or consumed, the most likely content being presented. This likely content information is then used, as described below, during matching of audience measurement codes and/or signatures determined from the previously recorded content with the database of audience measurement codes and/or signatures. In particular, the likely content information can enable comparison of extracted and/or determined audience measurement codes and/or signatures with a smaller subset of the audience measurement code database. Closed caption information and/or likely presented and/or consumed content information may also be utilized for metering currently broadcasting content.
To receive, play, view, record, and/or decode any type(s) of content, the example system of FIG. 1 includes any type of media device 105 such as, for example, a set top box (STB), a digital video recorder (DVR), a video cassette recorder (VCR), a personal computer (PC), a game console, a television, a media player, etc. Example content includes television (TV) programs, movies, videos, commercials, advertisements, audio, video, games, etc. In the example system of FIG. 1, the example media device 105 receives content via any type(s) of sources such as, for example: a satellite receiver and/or antenna 110; a radio frequency (RF) input signal 115 received via any type(s) of cable TV signal(s) and/or terrestrial broadcast(s); any type of data communication network such as the Internet 120; any type(s) of data and/or media store(s) 125 such as, for example, a hard disk drive (HDD), a VCR cassette, a digital versatile disc (DVD), a compact disc (CD), a flash memory device, etc. In the example system of FIG. 1, the content (regardless of its source) may include closed caption information and/or data. Alternatively or additionally, the closed caption information and/or data may be provided and/or received separately from the content itself. Such separately received closed caption information and/or data may be synchronized to the content by the media device 105 and/or a content exposure meter 150.
To provide and/or broadcast content, the example system of FIG. 1 includes any type(s) and/or number of content provider(s) 130 such as, for example, television stations, satellite broadcasters, movie studios, etc. In the illustrated example of FIG. 1, the content provider(s) 130 deliver and/or otherwise provide the content to the example media device 105 via a satellite broadcast using a satellite transmitter 135 and a satellite and/or satellite relay 140, a terrestrial broadcast, a cable TV broadcast, the Internet 120, and/or media store(s) 125.
To meter exposure to and/or consumption of content, the example system of FIG. 1 includes the content exposure meter 150. The example content exposure meter 150 of FIG. 1 receives audio data 155 and/or video data 160 from the example media device 105. The example content exposure meter 150 also receives any type(s) of content guide information and/or data 165. The content guide data 165 may be broadcast and/or delivered to, or downloaded and/or otherwise received by, the content exposure meter 150 via the Internet 120, the satellite input, the RF input 115, the media device 105 and/or the media store(s) 125. In some examples, content guide data 165 is an eXtensible Markup Language (XML) file containing, for example, TV programming information (e.g., a TV guide listing) for any number of days and/or customized for the geographical location (e.g., zip or postal code) of the content exposure meter 150. The example content exposure meter 150 of FIG. 1 may be, for example: (a) a PC, (b) may be implemented by, within and/or otherwise be associated with the example media device 105, and/or (c) be an XML data collection server as described in PCT Patent Application Serial No. PCT/US2004/000818 which is hereby incorporated by reference in its entirety. An example manner of implementing the example content exposure meter 150 is discussed below in connection with FIG. 2. An example process that may be carried out to implement the example content exposure meter 150 is discussed below in connection with FIG. 6.
As described below in connection with FIGS. 2, 3 and 6, the example content exposure meter 150 of FIG. 1 uses the content guide data 165 and/or data derived from the content guide data 165, and closed caption information obtained from, for example, the video data 160 to identify, for example, one or more TV programs and/or movies that are likely being presented (e.g., viewed) at and/or via the media device 105. As described below, to enable metering of content exposure, the example content exposure meter 150 of FIG. 1 collects and/or generates audience measurement codes and/or signatures that may be used to identify content being presented. In cases when content is presented and/or consumed out of synchronization with the time of content broadcast (e.g., the content being presented and/or consumed was earlier recorded at the time of broadcast and is currently being played back at and/or via the media device 105), the example content exposure meter 150 utilizes closed caption information and content guide information (e.g., electronic program guide (EPG) information) to identify which content, out of a set of potential content candidates, represents the content that was most probably presented to the panelist/user/household member. The example content exposure meter 150 may also use closed caption information to identify which currently broadcasting content is being presented and/or consumed. When content is stored and/or recorded, for example, at and/or via the media device 105, any included and/or associated closed caption information and/or data is also stored. For example, if received content contains embedded closed caption information, the closed caption information is saved by virtue of the content being recorded.
When performing content metering, the example content exposure meter 150 of FIG. 1 divides the time during which content presentation occurs in to a set of presentation time intervals (e.g., 30 seconds) and determines for each time interval the content most likely presented and/or consumed. The time intervals may be of any duration depending on the desired granularity of the metering to be performed. Additionally, the duration of the time intervals may be fixed or may vary.
For each presentation time interval, the example content exposure meter 150 of FIG. 1 provides to a processing server 175 an ordered list of content candidates that represent the pieces of content that are and/or were most probably presented. The processing server 175 may be geographically separate from the content exposure meter 150 and/or may be co-located with the example content exposure meter 150. In the example of FIG. 1, the ordered list of content candidates is provided to the processing server 175 as a list of content exposure hints 170A. In the example of FIG. 1, the hints 170A are ordered based upon the probability that the content candidate associated with each given hint is the content being presented and/or consumed during the time interval of interest and may include, for example, the three or four most probable items. The processing server 175 may receive and process content exposure hints 170A from any number of content exposure meters 150 that may be geographically disbursed. As described below in connection with FIG. 2, the example content exposure meter 150 also collects any type(s) of audience measurement codes and/or signatures (collectively audience measurement data) 170B) from the audio data 155. The audience measurement data 170B is provided together with the content exposure hints 170A to the processing server 175. An example table used by the content exposure meter 150 to provide the hints 170A and audience measurement data 170B to the processing server 175 is discussed below in connection with FIG. 4. Additionally or alternatively, the hints 170A and audience measurement data 170B may be formatted as an XML file. The audio measurement data 170B may include and/or represent video codes, video signatures, image codes, image signatures, etc. For simplicity of discussion, the following disclosure references the use of any type of codes and/or signatures as audience measurement data 170B.
To facilitate the creation of hints 170A to identify content that is presented and/or consumed out of synchronization with the time of content broadcast (e.g., previously recorded content), the example content exposure meter 150 stores and/or otherwise retains content guide data 165 (e.g., EPG data) and/or data derived from the content guide data 165 collected during previous time periods (e.g., in the last 14 days). In this way, as described below, the content exposure meter 150 can use currently collected and/or previously collected content guide data 165 and/or data derived from the currently collected and/or previously collected content guide data 165 to identify content presented (e.g., displayed, viewed and/or listened to) at and/or via the media device 105. In the illustrated example, the time period over which the content guide data 165 and/or data derived from the content guide data 165 is retained by the example content exposure meter 150 is the time period for which the example processing server 175 is programmed to compute and/or tabulate statistics regarding content exposure.
In the illustrated example of FIG. 1, the hints 170A and audience measurement data (e.g., codes and/or signatures) 170B are provided from the content exposure meter 150 to the processing server 175 on an occasional, periodic, or real time basis. Any type(s) of technique(s) for downloading and/or transferring data from the example content exposure meter 150 to the example processing server 175 can be used. For example, the hints 170A and audience measurement data 170B can be transferred via the Internet 120, a public-switched telephone network (PSTN) 180, and/or a dedicated network. Additionally or alternatively, the example content exposure meter 150 may periodically or aperiodically store the hints 170A and audience measurement data 170B on any type(s) of non-volatile storage medium (e.g., recordable compact disc (CD-R)) that can be transported (e.g., picked up, mailed, etc.) to a processing service and then loaded onto the example processing server 175.
The example processing server 175 of FIG. 1 utilizes the hints 170A and audience measurement data 170B received from the example content exposure meter 150 to determine which content was presented and/or consumed at and/or via the example media device 105 to form content exposure data for the media device 105 and/or for a collection of one or more media devices 105. For example, the processing server 175 utilizes the hints 170A to more efficiently compare the audience measurement data (e.g., codes and/or signatures) 170B collected by the content exposure meter 150 with the database of audience measurement data (e.g., codes and/or signatures) stored and/or otherwise available at the processing server 175. As discussed previously, the database of audience measurement data at the example processing server 175 ideally represents a large portion of the universe of content, thereby, increasing the likelihood of the accurate identification of any content presented and/or consumed at the example media device 105. However, the larger the size of the database, the greater the processing power required to perform a search of all the audience measurement data stored in the database to identify a match. The example processing server 175 of FIG. 1 may, for example, receive audience measurement data from the content provider(s) 130 and/or determine the audience measurement data for content 185 received at and/or by the processing server 175. Additionally, the content represented by the audience measurement data stored in the database may include content that has been broadcast and/or that will be broadcast, and/or content that has not yet been broadcast but that is otherwise available to the user via DVD, VCR, or other storage medium. Using the hints 170A, the example processing server 175 can limit the amount of audience measurement data that must be compared and, thus, process content exposure metering information 170B from a substantially larger number of content exposure meters 150. An example processing server 175 is discussed below in connection with FIG. 5. An example process that may be carried out to implement the example processing server 175 is discussed below in connection with FIG. 7.
The example processing server 175 of FIG. 1 combines the determined content exposure data for a plurality of metered media devices 105 associated with a plurality of respondents to develop meaningful content exposure statistics. For instance, the processing server 175 of the illustrated example uses the combined content exposure data to determine the overall effectiveness, reach and/or audience demographics of viewed content by processing the collected data using any type(s) of statistical method(s).
FIG. 2 illustrates an example manner of implementing the example content exposure meter 150 of FIG. 1. To process the content guide data 165, the example content exposure meter 150 of FIG. 2 includes any type of indexing engine 205. An example indexing engine 205 implements any method(s), algorithm(s) and/or technique(s) to process an XML file containing a plurality of records. Processing the XML file causes the creation of an index that identifies keyword(s) that distinguish the plurality of records represented by the XML file. Consider an example XML file that contains a TV guide listing in which each record in the XML file represents a separate TV program. Each record in the XML file contains data about the TV program such as, for example, the channel number on which the TV program is broadcast, the name associated with the channel on which the TV program is broadcast, the program name of the TV program, a description of the content of the TV program, and the time at which the TV program is to be broadcast. The example indexing engine 205 indexes the XML data to remove as much redundant information as possible while retaining keywords useful for distinguishing the listed TV programs. For example, consider a 6-6:01 PM time slot having multiple TV programs with names and/or description that include “news.” Because the term “news” is “locally common” (e.g., appears in a second program in the relevant time period), the example indexing engine 205 of FIG. 2 does not include “news” in the indexed list of keywords. However, if one of those same TV programs includes in its program information a less locally commonly used term (e.g., the name of a special guest and/or a description of a special segment), the example indexing engine 205 would include the less locally commonl term (e.g., the name of the special guest and/or one or more words from the description) in the indexed list of keywords.
To store the indexed keywords that may be developed by the indexing engine 205 or any other keyword server, the example content exposure meter 150 of FIG. 2 includes a keyword database 210. The keywords stored in the keyword database 210 are indexed to an associated channel number, channel name, program name, program information (e.g., description) and/or broadcast time information. The example keyword database 210 may use any type(s) and/or number of data structure(s) (e.g., matrices, array(s), variable(s), register(s), data table(s), etc.) to store the indexed keywords. In the illustrated example, the keyword database 210 is stored in, for example, any type(s) of memory(-ies) and/or machine accessible file(s) 215. The example keywords database 210 of FIG. 2 includes indexed keywords for a current time period (e.g., the current week) as well as any number of previous time periods. The number and duration of time periods included in the keywords database 210 depends upon how far back in time the processing server 175 computes and/or tabulates statistics regarding content exposure. For example, the processing server 175 may be configured only to consider content from the previous fourteen (14) days. The example indexing engine 205 of FIG. 2 periodically or aperiodically deletes and/or otherwise removes old keywords.
To extract and/or decode closed caption data and/or information from the video data 160, the example content exposure meter 150 of FIG. 2 includes any type of closed caption decoding engine 220. Using any type(s) of method(s), algorithm(s), circuit(s), device(s) and/or technique(s), the example closed caption decoding engine 220 of FIG. 2 decodes, for example, Line 21 of National Television System Committee (NTSC) television signals or Line 22 of Phase Alternation Line (PAL) television signals to extract closed caption text 222. In the example system of FIGS. 1 and 2, the example closed caption decoding engine 220 decodes the closed caption text 222 in real time with the review, display, viewing and/or playback of content at and/or via the media device 105. Additionally or alternatively, the video data 160 could be stored at the content exposure meter 150 and processed by the closed caption decoding engine 220 in non-real time. The example closed caption decoding engine 220 of FIG. 2 also extracts and/or decodes the time information that is associated with the closed caption data and/or information (i.e., closed caption timestamps) and that is embedded together with the closed caption data and/or information in the video data 160.
To determine the content most likely being presented and/or consumed at and/or via a media device, the example content exposure meter 150 of FIG. 2 includes a closed caption matcher 225. Using any type(s) of method(s), algorithm(s), circuit(s), device(s) and/or technique(s), the example closed caption matcher 225 of FIG. 2 compares the stream of closed caption text 222 with the indexed keywords in the keywords database 210. When a match is determined, the content corresponding to the match is recorded. Over a pre-determined time interval (e.g., 5 minutes), the example closed caption matcher 225 counts the total number of matches identified and the number of matches made for each specific content (e.g., TV program). In the example of FIG. 2, at the end of each time interval, the probability that a given content candidate is actually being presented and/or consumed is the number of matches for each content candidate divided by the total number of matches. The content candidate (e.g., TV program) having the highest probability is the most likely content currently being presented and/or consumed. In the example of FIGS. 1 and 2, the four pieces of content having the highest probability (i.e., most probably content being presented and/or consumed) are provided to the processing server 175 as hints 170A for the current time interval. However, any number of hints 170A could be provided to the processing server 175.
FIG. 3 illustrates an example histogram that represents the probability 305 (i.e., likelihood) that each of a plurality of TV programs 310 was presented and/or consumed (e.g., viewed) during each time interval 315 having a time duration of T minutes. As illustrated, each of the TV programs 310 is illustrated with a bar having a height that represents the likelihood that the TV program was being viewed during the interval 315. In the example of FIG. 3, the most likely watched channel during the interval 315 was the evening news on the “FOX” TV channel during the 6:00-6:01 PM time period on Mar. 3, 2006, as indicated with bar 320. In the illustrated examples of FIGS. 1-3, the time period is determined based on the closed caption timestamp and, thus, has a granularity that is finer than the program start time, end time and/or program duration. The granularity depends upon the granularity of the closed caption time stamps and the length of the interval 315. At the end of the interval 315, the “FOX”, “NBC”, “ABC” and “CBS” are provided as hints to the processing server 175. As the media device 105 continues to provide video data 160, the closed caption matcher 225 of FIG. 2 continues identifying and counting matches and, then at the end of each interval 325, determines the probabilities for that interval 325, and identifies to the processing server 175 the most likely four content candidates as hints 170A associated with the time interval 325 currently being processed.
Additionally or alternatively, if a sufficient set of keywords is not available, the example closed caption matcher 225 of FIG. 2 may not be able to identify the content being presented and/or consumed with certainty. For example, the example closed caption matcher 225 may only be able to identify that the TV station being watched is ABC but not distinguish which TV program is being presented and/or consumed. Likewise, the closed caption matcher 225 may be able to identify that the evening news is being presented and/or consumed, but not which TV channel. Alternatively, no hints 170A may be available for a given time interval.
To collect audio codes for the audio data 155, the example content exposure meter 150 of FIG. 2 includes any type of audio code engine 230. Using any type(s) of method(s), algorithm(s), circuit(s), device(s) and/or technique(s), the example audio code engine 230 searches, locates, extracts and/or decodes audio codes inserted into the audio data 155 by content providers, such as television and/or radio broadcasters, to facilitate identification of content. Such audio codes are commonly used in the industry for the purposes of detecting the exposure to content. However, persons of ordinary skill in the art will readily appreciate that not all content has inserted audio codes and/or signatures.
To collect and/or generate audio signatures for the audio data 155, the example content exposure meter 150 of FIG. 2 includes any type of audio signature engine 235. Using any type(s) of method(s), algorithm(s), circuit(s), device(s) and/or technique(s), the example audio signature engine 235 of FIG. 2 processes the audio data 155 to determine binary fingerprints and/or signatures that substantially and/or uniquely identify corresponding portions of the audio data 155. An example audio signature is computed by applying data compression to the audio data 155.
In the illustrated examples of FIGS. 1 and 2, the example closed caption matcher 225 provides the audience measurement data (e.g., audio codes and/or signatures and/or signatures) 170B together with the hints information 170A to the processing server 175.
While an example content exposure meter 150 has been illustrated in FIG. 2, the elements, modules, logic, memory and/or devices illustrated in FIG. 2 may be combined, re-arranged, eliminated and/or implemented in any way. For example, the example closed caption matcher 225, the example indexing engine 205, and/or the example keyword database 210 could be implemented separately from the example content exposure meter 150 (e.g., by and/or within the example processing server 175). In such examples, the content exposure meter 150 provides the closed caption information 222 and the audience measurement data 170B to the processing server 175, which generates the hints information 170A at the processing server 175. As described more fully below in connection with FIG. 5, the processing server 175 uses the generated hints information 170A and the audience measurement data 170B to identify content presented and/or consumed at and/or via a media device 105 being metered by the content exposure meter 150. Further, the example indexing engine 205, the example keywords database 210, the example memory and/or file 215, the example closed caption matcher 225, the example closed caption decoding engine 220, the example audio code engine 230, the example audio signature engine 235 and/or, more generally, the example content exposure meter 150 may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. For example, the example indexing engine 205, the example keywords database 210, the example memory and/or file 215, the example closed caption matcher 225, the example closed caption decoding engine 220, the example audio code engine 230 and/or the example audio signature engine 235 may be implemented via machine accessible instructions executed by any type of processor 150 such as, for example, a processor from the Intel®, Sun®, AMD® families of processors and/or microcontrollers. Moreover, a content exposure meter may include additional elements, modules, logic, memory and/or devices and/or may include more than one of any of the illustrated elements, modules and/or devices such as, for example, a video code engine or a video signature engine.
FIG. 4 is an example hints and tuning information table having a plurality of entries 405 that each correspond to one of the hints 170A provided by the content exposure meter 150. In the example of FIG. 4, each of the plurality of entries 405 contains a time period interval identifier 410, a content timestamp 412 that indicates when the content was presented and/or consumed, and hints information that includes one or more of: (a) a listing of the highest probability content sources (e.g., TV channels) 415, (b) a listing of the highest probability pieces of content (e.g., TV programs) 420, (c) a listing of the highest probability broadcast times 425. According to the example of FIG. 4, each of the plurality of entries 405 also contains any audience measurement data 430 (e.g., audio codes and/or audio signatures) located, extracted, decoded, identified and/or computed during the time period. The extent to which a particular timestamp entry 412 and a particular broadcast time 425 match is indicative of whether the corresponding content was presented and/or consumed live and/or was previously recorded and/or captured. While an example hints and tuning information table is illustrated in FIG. 4, persons of ordinary skill in the art will readily appreciate that any type(s) of file(s), data structure(s), table(s), etc may be used by the content exposure meter 150 to format the data prior to sending the data to the processing server 175. Also, more or fewer types of information may be included in the table.
FIG. 5 illustrates an example manner of implementing at least a portion of the example processing server 175 of FIG. 1. To determine audio codes and/or signatures for audio data 185 provided by and/or obtained from the content provider(s) 130, the example processing server 175 of FIG. 5 includes any type of audio code engine 505. Using any type(s) of method(s), algorithm(s), circuit(s), device(s) and/or technique(s), the example audio code engine 505 searches, locates, extracts and/or decodes and/or signatures audio codes and/or signatures inserted into the audio data 185 by content providers, such as television and/or radio broadcasters, to facilitate identification of content. Such audio codes are commonly used in the industry for the purposes of detecting the exposure to content. However, persons of ordinary skill in the art will readily appreciate that not all content contains audio codes. Additionally or alternatively, the content provider(s) 130 may only provide audio codes for content for which exposure and/or consumption statistics are desired.
To determine audio signatures for the audio data 185, the example processing server 175 of FIG. 5 includes any type of audio signature engine 510. Using any type(s) of method(s), algorithm(s), circuit(s), device(s) and/or technique(s), the example audio signature engine 510 of FIG. 5 processes the audio data 185 to determine binary fingerprints and/or signatures that substantially and/or uniquely identify corresponding portions of the audio data 185. An example audio signature is computed by applying data compression to the audio data 185.
In the example of FIG. 5, audience measurement data 515 (e.g., audio codes and/or audio signatures) located, decoded, extracted, identified and/or computed by the example audio code engine 505 and/or the example audio signature engine 510 and/or received from the content provider(s) 130 are stored using any type(s) and/or number of database(s) and/or data structure(s) (e.g., matrices, array(s), variable(s), register(s), data table(s), etc.) and are stored in, for example, any type(s) of memory(-ies) and/or machine accessible file(s) 520. The example audience measurement database 515 of FIG. 5 is indexed by associated channel number, channel name, program name, program information (e.g., description) and/or broadcast time information. The example audience measurement database 515 includes audio codes and/or signatures corresponding to content that is currently being broadcast, to content that was broadcast, and/or content that will be broadcast in the future. The amount of data in the database 515 may be selected based on the desired time period over which the example processing server 175 is programmed to compute and/or tabulate statistics regarding content exposure and/or consumption. For example, the example processing server 175 of FIG. 5 may be configured to only consider content that is and/or was broadcast and/or was otherwise available during the previous fourteen (14) days. However, if mounting of stored media is desired (e.g., DVDs), then the database 515 should not be limited based on time.
To identify content presented and/or consumed at and/or via a media device 105, the example processing server 175 of FIG. 5 includes a content matcher 525. The example content matcher 525 of FIG. 5 utilizes the hints 170A and audience measurement data 170B received from a content exposure meter 150 to determine which content was presented and/or consumed at and/or via the example media device 105 to form content exposure data 530 for the media device 105. In particular, the example content matcher 525 utilizes the provided hints 170A to identify a subset of the codes and/or signatures stored in the audience measurement database 515 of the processing server 175 to compare with the audience measurement data 170B collected from the example media device 105. A match between the audience measurement data 170B and a particular audio code and/or signature 515 indicates that the content corresponding to the particular audio code/signature stored in the processing server 175 is the content that was presented and/or consumed at and/or via the media device 105.
Using the hints 170A, the content matcher 525 can substantially reduce the number of audience measurement data from the database 515 that must be compared with the audience measurement data 170B collected by the content exposure meter 150. As a result, the content measurement data 170B can be processed for a substantially larger number of content exposure meters 150. An example process that may be carried out to implement the example content matcher 525 of FIG. 5 is discussed below in connection with FIG. 7.
In the example of FIG. 5, content exposure data 530 is stored using any type(s) and/or number of data structure(s) (e.g., matrices, array(s), variable(s), register(s), data table(s), etc.) and is stored in, for example, any type(s) of memory(-ies) and/or machine accessible file(s) 535. The content exposure data 530 may include content exposure data for a plurality of other metered media devices 105 associated with a plurality of respondents to develop meaningful content exposure statistics. The combined content exposure data 530 may be statistically processed to determine, for example, the overall effectiveness, reach and/or audience demographics of presented and/or consumed content.
While an example processing server 175 has been illustrated in FIG. 5, the elements, modules, logic, memory and/or devices illustrated in FIG. 5 may be combined, re-arranged, eliminated and/or implemented in any way. For example, the example closed caption matcher 225, the example indexing engine 205, and/or the example keyword database 210 of FIG. 2 could be implemented by and/or within the processing server 175. In such examples, the content exposure meter 150 provides the closed caption information 222 and the audience measurement data 170B to the processing server 175. Based on the received closed caption information 222, the processing server 175 generates the hints information 170A at the processing server 175. In some examples, the processing server 175 receives closed caption information 222 from some content exposure meters 150 and receives hints information 170A from other content exposure meters 150. Further, the example audio code engine 505, the example audio signature engine 510, the memory 520, the example content matcher 525, the example memory 535 and/or, more generally, the example processing server 175 may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. For example, the example audio code engine 505, the example audio signature engine 510, the memory 520, the example content matcher 525, the example memory 535 may be implemented via machine accessible instructions executed by any type of processor 175 such as, for example, a processor from the Intel®, Sun®, or AMD® families of processors and/or microcontrollers. Moreover, a content exposure meter may include additional elements, modules, logic, memory and/or devices and/or may include more than one of any of the illustrated elements, modules and/or devices such as, for example, a video code engine or a video signature engine.
FIGS. 6 and 7 are flowcharts representative of example processes that may be executed to implement the example content exposure meter 150 and the example processing server 175 of FIG. 1, respectively and/or, more generally, to meter content exposure using closed caption information. The example processes of FIGS. 6 and/or 7 may be executed by a processor, a controller and/or any other suitable processing device. For example, part or all of the flow diagrams of FIGS. 6 and/or 7 may be embodied in coded instructions stored on a tangible medium such as a flash memory, or RAM associated with a processor (e.g., the example central processing unit 805 discussed below in connection with FIG. 8). Alternatively, some or all of the example processes of FIGS. 6 and/or 7 may be implemented using an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), discrete logic, hardware, firmware, etc. Also, some or all of the example processes of FIGS. 6 and/or 7 may be implemented manually or as combinations of any of the foregoing techniques, for example, a combination of firmware and/or software and hardware. Further, although the example processes of FIGS. 6 and 7 are described with reference to the flowcharts of FIGS. 6 and 7, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example content exposure meter 150 and/or the example processing server 175 of FIG. 1, respectively, and/or, more generally, to meter content exposure using closed caption information and program guide data may be employed. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, sub-divided, or combined. Additionally, persons of ordinary skill in the art will appreciate that the example processes of FIGS. 6 and/or 7 may be carried out sequentially and/or carried out in parallel by, for example, separate processing threads, processors, devices, circuits, etc.
The example process of FIG. 6 begins with a closed caption matcher (e.g., the example closed caption matcher 225 of FIG. 2) obtaining and/or receiving the portion of closed caption text (i.e., word and/or words) collected during the next time interval from a closed caption decoding engine 220 (block 605). The closed caption matcher 225 then compares the closed caption text against indexed keywords in a keyword database (e.g., the keyword database 210 of FIG. 2) (block 610). If a match of at least one closed caption word with at least one indexed keyword is identified (block 615), the content corresponding to the matching keyword is identified (e.g., the example content 320 of FIG. 3) and the histogram information for the identified content is updated (block 620). If a match is not identified (block 615), the updating of the histogram is skipped.
The closed caption matcher 225 then determines if the end of the time interval currently being processed (e.g., the example interval 315 of FIG. 3) has arrived (i.e., if a boundary of the time interval 315 (i.e., an interval boundary) has occurred) (block 630). If an interval boundary has not occurred (block 630), control returns to block 605 to get the next closed caption text (block 605). If an interval boundary has occurred (block 630), the closed caption matcher 225 obtains and/or receives any audio codes and/or signatures collected from the content presented and/or consumed during the just ended time interval (block 635) and obtains and/or receives the audio signatures computed for the content presented and/or consumed during the just ended time interval (block 640). The closed caption matcher 225 then creates and/or adds a hints and audience measurement data entry (e.g., an entry 405 of FIG. 4) into the table and/or sends the hints and audience measurement data to a processing server 175.
The example process of FIG. 7 begins with a content matcher (e.g., the example content matcher 525 of FIG. 5) reading the hints 170A and audience measurement data 170B for a time interval 315 (e.g., the example entry 405 of FIG. 4) (block 705). The content matcher 525 identifies the most probable content, content stream and/or broadcast time (block 710) and determines if audio codes for the most probable content, content stream and/or broadcast time are available (block 715). Additionally or alternatively, the content matcher 525 may at block 710 utilize a content timestamp (e.g., the example timestamp 412 of FIG. 4) when selecting the most probable content, content stream and/or broadcast time. For example, the content matcher 525 may first select a content candidate that is associated with the presentation of live content (e.g., being presented while the content is being broadcast). If applicable audio codes are included in the audience measurement data 170B (block 715), the content matcher 525 compares the audio codes and/or signatures with the audio codes and/or signatures 515 corresponding to the content candidate (block 720). If there is a match (block 725), the content matcher 525 credits, tallies and/or tabulates a presentation of the content candidate (i.e., identifies the content candidate as the content that was presented and/or consumed) together with the timestamp (e.g., the example timestamp 412 of FIG. 4) in the content exposure data 530 (block 730). The timestamp indicates the time of content exposure.
If at block 715 applicable audio codes and/or signatures are not available, or if at block 725 the audio codes and/or signatures do not match, the content matcher 525 determines if audio signatures for the most probable content candidate are available (block 735). If audio signatures are not available (block 735), the content matcher 525 assumes the most probable candidate content, source and/or broadcast time was presented and/or consumed and records the exposure of the candidate content together with the timestamp (e.g., the example timestamp 412 of FIG. 4) in the content exposure data 530 (block 730). The timestamp indicates the time of content exposure.
If the audio signatures are available (block 735), the content matcher 525 compares the audio signatures with the audio signatures 515 corresponding to the content candidate (block 740). If the audio signatures match (block 745), the content matcher 525 records the match (i.e., identifies the content candidate as the content that was presented and/or consumed) together with the timestamp (e.g., the example timestamp 412 of FIG. 4) in the content exposure data 530 (block 730). The timestamp indicates the time of content exposure.
If the audio signatures do not match (block 745), the content matcher 525 determines if there are more hints (block 750). If there are no more hints (block 750), control proceeds to block 755 to determine if there are additional time intervals of hints to be processed. Additionally or alternatively, the content matcher 525 compares the audience measurement data collected from the media device 105 with all of the audience measurement data 515 stored in the database to determine if a match is identified.
If there are more hints (block 750), the content matcher 525 identifies the next most probable content candidate (block 760). Control then returns to block 715.
At block 755, if more hints 170A and audience measurement data 170B for more intervals is available (block 755), control returns to block 705 to process the next time interval. If not more hints 170A and audience measurement data 170B is available (block 755), control exits from the example machine accessible instructions of FIG. 7.
FIG. 8 is a schematic diagram of an example processor platform 800 that may be used and/or programmed to, for example, carry out the example processes of FIGS. 6 and/or 7 to implement the example content exposure meter 150 and the example processing server 175 of FIG. 1, respectively and/or, more generally, to meter content exposure using closed caption information and program guide data. For example, the processor platform 800 can be implemented by one or more general purpose microprocessors, microcontrollers, etc.
The processor platform 800 of the example of FIG. 8 includes a general purpose programmable and/or specialized processor 805. The processor 805 executes coded instructions 810 and/or 812 present in main memory of the processor 805 (e.g., within a random access memory (RAM) 815 and/or a read-only memory (ROM) 820). The processor 805 may be any type of processing unit, such as a processor and/or microcontroller from any of the Intel®, Sun®, and/or AMD® families of processors and/or microcontrollers. The processor 805 may carry out, among other things, the example processes illustrated in FIGS. 6 and/or 7.
The processor 805 is in communication with the main memory (including the RAM 815 and a ROM 820) via a bus 825. The RAM 815 may be implemented by DRAM, SDRAM, and/or any other type of RAM device. The ROM 820 may be implemented by flash memory and/or any other desired type of memory device. Access to the memories 815 and 820 is typically controlled by a memory controller (not shown) in a conventional manner. The RAM 815 may be used, for example, to store the example keywords database 210 of FIG. 2, and/or the example audience measurement database 515 and/or the example content exposure data 530 of FIG. 5.
The processor platform 800 also includes a conventional interface circuit 835. The interface circuit 835 may be implemented by any type of well-known interface standard, such as an external memory interface, serial port, general purpose input/output, etc.
One or more input devices 835 and one or more output devices 840 are connected to the interface circuit 835. The input devices 835 may be used, for example, to receive audio data 155, video data 160, content guide data 165, audio data 185, etc. The output devices 840 may be used, for example, to send the audience measurement data 170B and/or the hints 170A from the content exposure meter 150 to the processing server 175.
Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.

## Claims

1. A method comprising:
developing a keyword database of terms based on a program guide descriptive of a plurality of programs for a given time period;
generating a plurality of likelihood values for respective ones of the plurality of programs based on comparison of closed caption text associated with a presented program to the keyword database, the values representing likelihoods that the respective ones of the plurality of programs is the presented program, the likelihood values being generated without comparing the collected audience measurement data to any reference audience measurement data;
collecting an audience measurement parameter for the presented program, the audience measurement parameter useable to identify the presented program;
employing the plurality of likelihood values using a processor to select a subset of the plurality of programs to form a list of most probable presented programs, wherein the selected subset includes more than one of and less than all of the plurality of programs; and
sending the list of most probable programs and the collected audience measurement data to a collection server, the collection server to compare the collected audience measurement data to reference audience measurement data for respective ones of the most probable programs in an order selected based on the likelihood values for respective ones of the most probable programs in the list.

2. A method as defined in claim 1, wherein generating the likelihood values comprises counting matches of the closed caption text and the keyword database for respective ones of the plurality of programs.

3. A method as defined in claim 2, further comprising:
computing a sum of the one or more matches for a respective one of the plurality of programs; and
dividing each of the matches by the sum.

4. A method as defined in claim 1, wherein the program guide information comprises an eXtensible Markup Language (XML) data structure.

5. A method as defined in claim 1, wherein the collected audience measurement parameter comprises at least one of an audio code embedded in the presented program, a video code embedded in the presented program, an audio signature generated from the presented program, or a video signature generated from the presented program.

6. A method as defined in claim 5, wherein the audio code is embedded in the presented program by a broadcaster to identify the presented program.

7. A method as defined in claim 1, wherein the list further includes at least one of a most probable channel or a most probable time.

8. An apparatus comprising:
an audience measurement engine to collect an audience measurement parameter for a presented program;
an indexing engine to create a keyword database based on data descriptive of a plurality of programs; and
a closed caption matcher to:
generate likelihood values for respective ones of the plurality of programs based on comparison of closed caption text associated with the presented program to the keyword database, the values representing likelihoods that the respective ones of the plurality of programs is the presented programs, the likelihood values being generated without comparing the collected audience measurement data to any reference audience measurement data;
select a subset of the plurality of programs based on the likelihood values to form a list of most probable presented programs, the list of most probable presented programs including more than one of and fewer than all of the plurality of programs;
order the list of most probable presented programs based on respective ones of the likelihood values; and
send the ordered list of most probable programs and the collected audience measurement data to a collection server, the collection server to compare the collected audience measurement data to reference audience measurement data for respective ones of the most probable programs based on the order of the most probable programs in the list to determine an audience presentation statistic, wherein at least one of the audience measurement engine, the indexing engine or the closed caption matcher is implemented in hardware.

9. An apparatus as defined in claim 8, further comprising a closed caption decoding engine to extract the closed caption text.

10. An apparatus as defined in claim 8, wherein the audience measurement parameter comprises at least one of an audio code embedded in the presented program, a video code embedded in the presented program, an audio signature generated from the presented program, or a video signature generated from the presented program.

11. An apparatus as defined in claim 8, wherein the closed caption matcher is to generate the likelihood values by counting matches of the closed caption text and the keyword database for respective ones of the plurality of programs.

12. An apparatus as defined in claim 8, wherein the indexing engine is to generate the keyword database to remove redundant information.

13. An apparatus as defined in claim 8, wherein the list further includes at least one of a most probable channel or a most probable time.

14. A tangible article of manufacture excluding propagating signals, the article comprising a computer-readable storage medium storing machine readable instructions that, when executed, cause a machine to:
develop a keyword database of terms based on a program guide descriptive of a plurality of programs for a given time period;
collect audience measurement data for a presented program, the audience measurement data useable to identify the presented program;
generate likelihood values for respective ones of the plurality of programs based on comparison of closed caption information associated with the presented program and the keyword database, the values representing likelihoods that the respective ones of the plurality of programs is the presented program, the likelihood values being generated without comparing the collected audience measurement data to any reference audience measurement data;
select a subset of the plurality of programs based on the likelihood values to form a list of most probable presented programs, the list of most probable presented programs including more than one of and fewer than all of the plurality of programs;
order the list of most probable presented programs based on respective ones of the generated likelihood values; and
send the ordered list of most probable programs and the collected audience measurement data to a collection server, the collection server to compare the collected audience measurement data to reference audience measurement data for respective ones of the most probable programs based on the order of the most probable programs in the list to identify the presented program.

15. A tangible article of manufacture as defined in claim 14, wherein the machine accessible instructions, when executed, cause the machine to generate the likelihood values by counting matches of the closed caption text and the keyword database for respective ones of the plurality of programs.

16. A tangible article of manufacture as defined in claim 14, wherein the program guide information comprises an eXtensible Markup Language (XML) data structure.

17. A tangible article of manufacture as defined in claim 14, wherein the audience measurement data comprises at least one of an audio code, a video code, an audio signature, or a video signature.

18. A tangible article of manufacture as defined in claim 17, wherein the audio code is inserted by a broadcaster to identify the presented program.

19. A tangible article of manufacture as defined in claim 14, wherein the further includes at least one of a most probable channel or a most probable time.

20. A method comprising:
receiving from a content meter an audience measurement parameter for a presented program;
receiving from the content meter a list of most probable presented programs, programs in the list being selected and ordered based on comparisons of closed-caption text associated with the presented programs to a keyword database, the ordered list including more than one of and fewer than all of the plurality of programs; and
comparing using a processor reference audience measurement parameters for respective ones of the most probable presented programs until the presented content is identified, the reference audience measurement parameters compared in accordance with the order of the most probable presented programs in the list.

21. A method as defined in claim 20, wherein the collected audience measurement parameter comprises at least one of an audio code embedded in the presented program, a video code embedded in the presented program, an audio signature generated from the presented program, or a video signature generated from the presented program.

22. A method as defined in claim 20, wherein the ordered list further includes at least one of a most probable channel, or a most probable time.