Patent Document

RELATED APPLICATIONS  
       [0001]     This patent claims the benefit of U.S. Provisional Application Serial 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  
       [0002]     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  
       [0003]     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  
       [0004]      FIG. 1  is a schematic illustration of an example system to meter content exposure using closed caption information.  
         [0005]      FIG. 2  illustrates an example manner of implementing the example content exposure meter of  FIG. 1 .  
         [0006]      FIG. 3  is an example histogram of most probable TV channels presented and/or consumed during a given period of time.  
         [0007]      FIG. 4  is an example table of audience measurement codes and hints data.  
         [0008]      FIG. 5  illustrates an example manner of implementing the example processing server of  FIG. 1 .  
         [0009]      FIG. 6  is a flowchart representative of an example process that may be executed to implement the example content exposure meter of  FIG. 1 .  
         [0010]      FIG. 7  is a flowchart representative of an example process that may be executed to implement the example processing server of  FIG. 1 .  
         [0011]      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  
       [0012]      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.  
         [0013]     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.  
         [0014]     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 .  
         [0015]     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 .  
         [0016]     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 .  
         [0017]     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.  
         [0018]     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.  
         [0019]     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  170 A. In the example of  FIG. 1 , the hints  170 A 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  170 A 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)  170 B) from the audio data  155 . The audience measurement data  170 B is provided together with the content exposure hints  170 A to the processing server  175 . An example table used by the content exposure meter  150  to provide the hints  170 A and audience measurement data  170 B to the processing server  175  is discussed below in connection with  FIG. 4 . Additionally or alternatively, the hints  170 A and audience measurement data  170 B may be formatted as an XML file. The audio measurement data  170 B 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  170 B.  
         [0020]     To facilitate the creation of hints  170 A 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.  
         [0021]     In the illustrated example of  FIG. 1 , the hints  170 A and audience measurement data (e.g., codes and/or signatures)  170 B 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  170 A and audience measurement data  170 B 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  170 A and audience measurement data  170 B 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 .  
         [0022]     The example processing server  175  of  FIG. 1  utilizes the hints  170 A and audience measurement data  170 B 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  170 A to more efficiently compare the audience measurement data (e.g., codes and/or signatures)  170 B 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  170 A, the example processing server  175  can limit the amount of audience measurement data that must be compared and, thus, process content exposure metering information  170 B 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 .  
         [0023]     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).  
         [0024]      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.  
         [0025]     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.  
         [0026]     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 .  
         [0027]     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  170 A for the current time interval. However, any number of hints  170 A could be provided to the processing server  175 .  
         [0028]      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  170 A associated with the time interval  325  currently being processed.  
         [0029]     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  170 A may be available for a given time interval.  
         [0030]     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.  
         [0031]     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 .  
         [0032]     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)  170 B together with the hints information  170 A to the processing server  175 .  
         [0033]     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  170 B to the processing server  175 , which generates the hints information  170 A at the processing server  175 . As described more fully below in connection with  FIG. 5 , the processing server  175  uses the generated hints information  170 A and the audience measurement data  170 B 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.  
         [0034]      FIG. 4  is an example hints and tuning information table having a plurality of entries  405  that each correspond to one of the hints  170 A 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.  
         [0035]      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.  
         [0036]     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 .  
         [0037]     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.  
         [0038]     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  170 A and audience measurement data  170 B 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  170 A 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  170 B collected from the example media device  105 . A match between the audience measurement data  170 B 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 .  
         [0039]     Using the hints  170 A, 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  170 B collected by the content exposure meter  150 . As a result, the content measurement data  170 B 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 .  
         [0040]     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.  
         [0041]     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  170 B to the processing server  175 . Based on the received closed caption information  222 , the processing server  175  generates the hints information  170 A 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  170 A 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.  
         [0042]      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.  
         [0043]     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.  
         [0044]     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 .  
         [0045]     The example process of  FIG. 7  begins with a content matcher (e.g., the example content matcher  525  of  FIG. 5 ) reading the hints  170 A and audience measurement data  170 B 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  170 B (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.  
         [0046]     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.  
         [0047]     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 expousre.  
         [0048]     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.  
         [0049]     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 .  
         [0050]     At block  755 , if more hints  170 A and audience measurement data  170 B for more intervals is available (block  755 ), control returns to block  705  to process the next time interval. If not more hints  170 A and audience measurement data  170 B is available (block  755 ), control exits from the example machine accessible instructions of  FIG. 7 .  
         [0051]      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.  
         [0052]     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 .  
         [0053]     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 .  
         [0054]     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.  
         [0055]     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  170 B and/or the hints  170 A from the content exposure meter  150  to the processing server  175 .  
         [0056]     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.

Technology Category: h