Identifying and storing a target information unit contained in a received information stream
Claim Score by NHIP
Abstract
In one embodiment of the present invention, a system for identifying and storing a target information unit, contained in a received information stream including multiple information units, according to a stored tag file corresponding to the target information unit, includes one or more stored tag files. Each tag file corresponds to a target information unit having a predetermined length and includes a first set of attributes associated with the corresponding target information unit. The system further includes a processor that accesses a digitized data stream representing the received information stream and extracts a second set of one or more attributes from a portion of the digitized data stream. The processor compares the second set of one or more attributes extracted from the portion of the digitized data stream with the first set of one or more attributes in a stored tag file and determines, according to the comparison, whether the portion of the digitized data stream includes the target information unit corresponding to the stored tag file. If so, the processor stores the portion of the digitized data stream including the target information unit, the stored portion having a length substantially equivalent to the predetermined length of the target information unit as specified in the stored tag file for the target information unit.

Term
Term ended
Projected expiry passed 22 January 2023, 3.7 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
29 claims: 3 independent, 26 dependent
- 1A system for identifying and storing a target information unit, contained in a received information stream comprising a plurality of information units, according to a stored tag file corresponding to the target information unit, comprising:one or more stored tag files, each tag file corresponding to a target information unit having a predetermined length, each tag file comprising a first set of attributes associated with the corresponding target information unit;and a processor operable to: access a digitized data stream representing the received information stream;extract a second set of one or more attributes from a portion of the digitized data stream;compare the second set of one or more attributes extracted from the portion of the digitized data stream with the first set of one or more attributes in a stored tag file;determine, according to the comparison of the first and second sets of attributes, whether the portion of the digitized data stream comprises the target information unit corresponding to the stored tag file;and if the portion of the digitized data stream comprises the target information unit, store the portion of the digitized data stream comprising the target information unit, the stored portion of the digitized data stream having a length substantially equivalent to the predetermined length of the target information unit as specified in the stored tag file for the target information unit.
- 15Broadest claimClaim Score 37, narrow(NHIP)A method for identifying and storing a target information unit, contained in a received information stream comprising a plurality of information units, according to a stored tag file corresponding to the target information unit, comprising:accessing one or more stored tag files, each tag file corresponding to a target information unit having a predetermined length, each tag file comprising a first set of attributes associated with the corresponding target information unit;accessing a digitized data stream representing the received information stream;extracting a second set of one or more attributes from a portion of the digitized data stream;comparing the second set of one or more attributes extracted from the portion of the digitized data stream with the first set of one or more attributes in a stored tag file;determining, according to the comparison of the first and second sets of attributes, whether the portion of the digitized data stream comprises the target information unit corresponding to the stored tag file;and if the portion of the digitized data stream comprises the target information unit, storing the portion of the digitized data stream comprising the target information unit, the stored portion of the digitized data stream having a length substantially equivalent to the predetermined length of the target information unit as specified in the stored tag file for the target information unit.
- 29A system for identifying and storing a target song, contained in a broadcast radio signal comprising a plurality of songs, according to a stored tag file corresponding to the target song, comprising:one or more stored tag files, each tag file corresponding to a target song having a predetermined length, each tag file having been obtained from a source external to the system and downloaded for storage using one or more server systems, each tag file comprising a target value associated with a target segment of the corresponding target song, the target value having been generated according to a control algorithm performed on data representing the target segment associated with the target value, the target value further associated with a time value registering the target segment associated with the target value to the beginning of the target song;and a processor operable to: access a digitized data stream representing the received broadcast radio signal, the digitized data stream comprising a plurality of consecutive test segments, each test segment having an identical predetermined length;generate, for each consecutive test segment, a test value for the test segment by performing the control algorithm on the test segment;compare the test value for each consecutive test segment with the target value;determine, according to the comparison of the test value for a test segment with the target value, whether a portion of the digitized data stream comprising the test segment the target song;and if the portion of the digitized data stream comprising the test segment comprises the target song, identifying the beginning of the target song within the digitized data stream according to the time value associated with the target value, identifying the end of the target song within the digitized data stream according to the predetermined length of the target song based on the identified beginning of the target song within the digitized data stream, and storing the portion of the digitized data stream between the identified beginning and identified end of the target song within the digitized data stream, the stored portion of the digitized data stream having a length substantially equivalent to the predetermined length of the target song.
Independent claims3
49 paragraphs in 5 sections, as filed
TECHNICAL FIELD OF THE INVENTION
[0001] This invention relates generally to communications and data processing, and more particularly to identifying and storing a target information unit contained in a received information stream.
BACKGROUND OF THE INVENTION
[0002] Persons encounter information in various forms and in various units on a regular basis. Songs, television programs, and movies are examples of information units persons frequently encounter. A person may desire to record one or more such information units for later playback. For example, a person may record a song broadcast from a radio station for later playback. Personally recording a song, however, often requires a person to monitor the radio airwaves until the desired song is played and, once the person identifies the desired song as the one currently being played, to attempt to record as much of the song as possible. This process may be time consuming, may result in a person missing the first few seconds of the song before beginning to record the song, and may result in the song being missed because the person can typically monitor only one radio station at a time. These and other deficiencies have made previous techniques for identifying and storing information units, such as songs, inadequate for many persons.
SUMMARY OF THE INVENTION
[0003] According to the present invention, disadvantages and problems associated with previous recording systems may be reduced or eliminated.
[0004] In one embodiment of the present invention, a system for identifying and storing a target information unit, contained in a received information stream including multiple information units, according to a stored tag file corresponding to the target information unit, includes one or more stored tag files. Each tag file corresponds to a target information unit having a predetermined length and includes a first set of attributes associated with the corresponding target information unit. The system further includes a processor that accesses a digitized data stream representing the received information stream and extracts a second set of one or more attributes from a portion of the digitized data stream. The processor compares the second set of one or attributes extracted from the portion of the digitized data stream with the first set of one or more attributes in a stored tag file and determines, according to the comparison, whether the portion of the digitized data stream includes the target information unit corresponding to the stored tag file. If so, the processor stores the portion of the digitized data stream including the target information unit, the stored portion having a length substantially equivalent to the predetermined length of the target information unit as specified in the stored tag file for the target information unit.
[0005] Particular embodiments of the present invention may provide one or more technical advantages. For example, certain embodiments may allow a user to store within a user device one or more tag files each representing a corresponding target information unit the user desires to store. The device may monitor one or more broadcast radio signals, for example, for desired songs corresponding to the stored tag files, recording a song contained in a broadcast radio signal if the song is determined to correspond to a stored tag file based on a comparison of attributes extracted from the radio signal with attributes in the stored tag file. This may allow a user to record one or more songs contained in one or more broadcast radio signals without requiring the user to listen to the various radio signals and personally attempt to record desired songs. This may also prevent a user from missing a desired song because it is on a radio station the user is not monitoring or missing the first few seconds of the song before beginning to record it. In certain embodiments, users may be able to share tag files with other users using a server system, expanding the number of available tag files without requiring each user to personally construct all the tag files of interest to the user or maintain all such tag files at an associated user device. Users logged in or otherwise linked to the server system may be able to share tag files in a way that allows a user to access the server system, view tag files available for selection at that time, select a tag file, and download the selected tag file to an associated user device from the server system or, through the server system, from another user device at which the selected tag file is stored. In certain embodiments, the user device can play back the target information units identified and stored at the user device as desired.
[0006] Systems and methods incorporating one or more of these or other technical advantages may be well suited for modem communications and data processing environments. Certain embodiments of the present invention may provide all, some, or none of the above advantages. Certain embodiments may provide one or more other technical advantages that may be readily apparent to those skilled in the art from the figures, descriptions, and claims included herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following descriptions, taken in conjunction with the accompanying drawings in which:
[0008]FIG. 1 illustrates an example communications environment including user devices and information streams;
[0009]FIG. 2 illustrates an example system associated with a user device and supporting identification and storage of one or more target information units contained in one or more received information streams; FIG. 3 illustrates example tag files for which the corresponding target information units are songs;
[0010]FIG. 4 illustrates an example method for identifying and storing one or more target information units contained in one or more received information streams; and
[0011]FIG. 5 illustrates an example method for sharing and downloading one or more tag files using a server system.
DESCRIPTION OF EXAMPLE EMBODIMENTS
[0012]FIG. 1 illustrates an example communications environment <b>10</b> including user devices <b>12</b> and information streams <b>14</b>. System <b>10</b> includes one or more user devices <b>12</b> that, in general, can each identify and store one or more target information units contained in one or more received information streams <b>14</b>. Each information stream <b>14</b> typically includes multiple information units, any one or more of which may be target information units desired by associated users. Each target information unit has predetermined length and may be identified and stored according to a tag file corresponding to the target information unit and including a first set of attributes associated with the target information unit. In general, a user device <b>12</b> accesses a digitized data stream representing a received information stream <b>14</b>, extracts a second set of one or more attributes from a portion of the digitized data stream, and compares the second set of one or more attributes extracted from the portion of the digitized data stream with the first set of one or more attributes in the stored tag file. According to the comparison, user device <b>12</b> determines whether the portion of the digitized data stream includes the target information unit. If so, user device <b>12</b> stores the portion of the digitized data stream including the target information unit, the stored portion of the digitized data stream having a length substantially equivalent to the predetermined length of the target information unit.
[0013] User devices <b>12</b> may include Motion Picture Expert Group (MPEG) Audio Layer <b>3</b> (MP3) players, computers, televisions, stereos, or any other suitable devices capable of identifying and storing a target information unit contained in a received information stream <b>14</b>. Received information streams <b>14</b> may include one or more of the following: (1) a broadcast radio signal (including an amplitude modulation (AM) signal, frequency modulation (FM) signal, an Internet radio broadcast, or any other suitable broadcast radio signal); (2) a broadcast television signal (including a satellite signal, digital cable signal, or any other suitable broadcast television signal); (3) an audio signal (including a Wave (WAV) file, REAL AUDIO (RA) file, or any other suitable audio signal); (4) a video signal (including an MPEG file, audio/video interleaved (AVI) file, REAL VIDEO (RV) file, or any other suitable video signal); (5) or any other type of suitable signal for containing a target information unit to be identified and stored according to the present invention. Furthermore, received information stream <b>14</b> may include an analog signal, such as with the AM or FM broadcast radio signal for example, or a digital signal, such as with a broadcast Internet radio signal for example.
[0014] In the specific case where user device <b>12</b> includes an MP3 player, for example, received information stream <b>14</b> may be a broadcast radio signal such as an analog radio signal. In this example, the information units within received information stream <b>14</b> may be songs, and the target information unit desired by a user associated with user device <b>12</b> may be a desired song. A tag file corresponding to a desired song and stored at user device <b>12</b> may include a first set of measurable attributes of the song, for example: (1) the playing time or other predetermined length of the song; (2) one or more values for one or more target segments of the song, each value generated by applying a Fourier transform, wavelet transform, or other operation to the corresponding target segment; (3) one or more sequences of specific frequencies, corresponding to notes, within each of one or more target segments of the song; (4) average tempo within one or more target segments of the song; (5) any other suitable frequency, tempo, or other characteristics of each of one or more target segments of the song; and (6) any other information suitable for identifying the song, when compared with similar information in a second set of measurable attributes extracted from a portion of a digitized data stream representing a received information stream <b>14</b>, and storing the song once it has been identified. User device <b>12</b> may store multiple tag files. Each tag file may correspond to a different song, or multiple tag files may correspond to the same song, according to particular needs. Tag files are described in more detail below with reference to FIG. 3.
[0015] The MP3 player in this example may “listen” to the broadcast radio signal, extracting a second set of measurable attributes from each consecutive segment of the signal it “hears” and comparing the extracted second set of attributes for each consecutive segment with first sets of attributes contained in one or more tag files stored at user device <b>12</b>. For example, each consecutive segment of the signal may correspond to a time window having a fixed length (e.g., five seconds). If the MP3 player determines that the broadcast radio signal to which it is “listening” includes the song corresponding to the tag file, then the MP3 player determines the portion of the broadcast radio signal corresponding to the song and stores that portion of the broadcast radio signal for later playback. Although identifying and storing a song is described as a particular example, the present invention contemplates identifying and storing any suitable target information unit that may be included in a received information stream <b>14</b>.
[0016] As another example, user device <b>12</b> may include a television, and received information stream <b>14</b> may be a broadcast television signal such as a digital cable television signal. In this example, the information units within received information stream <b>14</b> may be television programs, and the target information unit desired by a user associated with user device <b>12</b> may be a particular television program. A tag file corresponding to a desired television program and stored at user device <b>12</b> may include a first set of measurable attributes of the television program, for example: (1) the playing time or other predetermined length of the television program; (2) one or more values for each of one or more target segments of the television program, each value generated by applying a Fourier transform, wavelet transform, or other operation to the corresponding target segment; (3) one or more sequences of specific frequencies, corresponding to notes, within each of one or more target segments of the television program; (4) average tempo of one or more target segments of the television program; (5) any other suitable frequency, tempo, or other characteristic; and (6) any other information suitable for identifying the television program, when compared with similar information in a second set of measurable attributes extracted from a portion of a digitized data stream representing a received information stream <b>14</b>, and storing the television program once it has been identified. User device <b>12</b> may store multiple tag files. Each tag file may correspond to a different television program, or multiple tag files may correspond to the same television program, according to particular needs.
[0017] The television in this example may “listen” to the broadcast television signal, extracting a second set of measurable attributes from each consecutive segment of the signal it “hears” and comparing the extracted second set of attributes for each consecutive segment with first sets of attributes contained in one or more tag files stored at user device <b>12</b>. For example, each consecutive segment of the signal may correspond to a time window having a fixed length (e.g., five seconds). If the television determines that the broadcast television signal to which it is “listening” includes the television program corresponding to the tag file, then the television determines the portion of the broadcast television signal corresponding to the television program and stores that portion of the broadcast television signal for later playback.
[0018] In one embodiment, system <b>10</b> may include a server system <b>16</b> through which one or more tag files external to user devices <b>12</b> may be obtained for storage at user devices <b>12</b>. One or more tag files external to a user device <b>12</b> may be stored at server system <b>16</b>, such that user device <b>12</b> may obtain a tag file by downloading it from server system <b>16</b>. In addition or as an alternative, one or more tag files external to a user device <b>12</b> may be stored external to server system <b>16</b>, at other user devices <b>12</b> associated with other users for example, such that user device <b>12</b> may obtain a tag file via server system <b>16</b> from another user device <b>12</b> linked at least temporarily to server system <b>16</b>. For example, in an embodiment of system <b>10</b> including multiple user devices <b>12</b> and in which user devices <b>12</b> include computers, each user device <b>12</b> may store one or more tag files and users logged in or otherwise linked to server system <b>16</b> may share tag files in a manner that allows a user to access server system <b>16</b>, view tag files available for selection at that time, select a tag file, and download the selected tag file through server system <b>16</b> from the user device <b>12</b> at which the selected tag file is stored.
[0019] Allowing users to obtain tag files using server system <b>16</b> may be advantageous because it may allow users to share already constructed tag files. As a result, a user may not be required to personally construct each tag file for each target information unit a user desires. For example, if the target information units are songs, a user may obtain the tag file for one or more songs without personally generating and entering the necessary attributes for each corresponding tag file. As another advantage, sharing tag files may provide users a greater selection of tag files, increasing the opportunity to obtain desired target information units. Furthermore, sharing tag files may allow a user to browse a selection of tag files corresponding to a particular target information unit to obtain the tag file having the highest quality. A user may also be able to download desired tag files (either from other user devices <b>12</b> using server system <b>16</b> or directly from server system <b>16</b>), use the tag file to obtain the desired target information unit, and then discard the tag file to free up associated storage space on user device <b>12</b>.
[0020] Server system <b>16</b> may operate on one or more computers at one or more locations. Server system <b>16</b> may include one or more partitions on one or more existing servers or one or more separate servers within the infrastructure of one or more enterprises, such as Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), mail, or other Internet-enabled servers. Each user device <b>12</b> may be coupled to server system <b>16</b> using one or more computer buses, local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), portions of a global computer network such as the Internet, or any other suitable wireline, optical, wireless, or other links.
[0021]FIG. 2 illustrates an example system <b>18</b> associated with a user device <b>12</b> and supporting identification and storage of one or more target information units contained in one or more received information streams <b>14</b>. In one embodiment, system <b>18</b> may include one or more receivers <b>20</b>, one or more buffers <b>22</b>, one or more Digital Signal Processors (DSPs) or other processors <b>24</b>, one or more stored tag files <b>26</b>, and one or more stored target information units <b>28</b>. Each user device <b>12</b> includes a system <b>18</b>, typically in addition to one or more other components depending on the nature of user device <b>12</b>. For example, in addition to system <b>18</b>, user device <b>12</b> may include components necessary to select and play back to the user a stored target information unit <b>28</b>.
[0022] Receiver <b>20</b> receives an information stream <b>14</b> and stores a digitized data stream <b>30</b> representing the received information stream <b>14</b> in buffer <b>22</b>. For example, receiver <b>20</b> may receive a digital broadcast radio signal information stream <b>14</b>, such as an Internet radio broadcast, and store a digitized data stream <b>30</b> representing the received digital signal in buffer <b>22</b>. The received digital signal may be stored directly in buffer <b>22</b> as digitized data stream <b>30</b> or may be processed in any suitable manner to yield digitized data stream <b>30</b>. As another example, receiver <b>20</b> may receive an analog broadcast radio signal information stream <b>14</b>, such as an AM or FM radio signal. To process the received analog signal for storage in buffer <b>22</b> as digitized data stream <b>30</b>, receiver <b>20</b> may include an encoder/decoder (CODEC) device <b>30</b>, which may be any device operable decode received information streams <b>14</b> for processing according to the present invention. For example, CODEC device <b>32</b> may be operable to convert a received analog signal to a digital format. As another example, CODEC device <b>32</b> may be an MPEG CODEC device operable to decode a received MPEG file and provide associated decompression of the digital data. Although a single receiver <b>20</b> is described for a single information stream <b>14</b>, the present invention contemplates system <b>18</b> including multiple receivers <b>20</b>, each operable to receive one or more information streams <b>14</b>.
[0023] Buffer <b>22</b> may include any suitable memory allocated to temporarily store a digitized data stream <b>30</b> received from receiver <b>20</b>. The size of buffer <b>22</b> may be selected according to any appropriate factors, and may be fixed or dynamic. For example, in one embodiment, buffer <b>22</b> may be at least the length of the longest target information unit corresponding to any stored tag file. Buffer <b>22</b> may be structured as a first in/first out (FIFO) buffer, a last in/first out (LIFO) buffer, a memory cache, or any other appropriate structure. For example, buffer <b>22</b> may store incoming digitized data stream <b>30</b> to the tail end of buffer <b>22</b> and processor <b>24</b> may read from the head of buffer <b>22</b> for processing purposes. Buffer <b>22</b> may be implemented using dynamic random access memory (DRAM), static random access memory (SRAM), nonvolatile memory, or any other suitable memory type. Although a single buffer <b>22</b> is described for a single digitized data stream <b>30</b>, the present invention contemplates multiple buffers <b>22</b> for multiple digitized data streams <b>30</b>, for example, one for each information stream <b>14</b>.
[0024] As described above, one or more tag files <b>26</b> each represent a collection of measurable attributes corresponding to one or more target information units. Although described as files, tag files <b>26</b> may include any suitable data arrangement, and use of the term “file” herein is meant to encompass all such arrangements. FIG. 3 illustrates example tag files <b>26</b> for which the corresponding target information units are songs. Tag files <b>26</b> may also or alternatively include information for identifying and storing one or more television programs, video units, audio units, or any other suitable target information units. In the illustrated embodiment, each tag file <b>26</b> includes measurable attributes for a particular corresponding song to be identified in a received information stream <b>14</b> and stored for later playback. In another embodiment, a single tag file <b>26</b> may include measurable attributes for multiple corresponding target information units (e.g., songs). For example, a single tag file <b>26</b> may include measurable attributes for identifying all songs on a particular album. Although this description focuses primarily on tag files <b>26</b> each including measurable attributes for a single corresponding target information unit, the present invention contemplates tag files <b>26</b> including measurable attributes for multiple corresponding target information units according to particular needs.
[0025] One or more measurable attributes in tag file <b>26</b> may provide a quantitative tag by which processor <b>24</b> may identify the corresponding target information unit. For example, tag file <b>26</b><i>a </i>in FIG. 3 includes a duration <b>40</b>, which represents the total playing time (four minutes five seconds) of the song desired to be identified and stored. Tag file <b>26</b> may also include one or more target values <b>42</b> each corresponding to a target segment of the target information unit, where each target segment has a predetermined length and where the target information unit includes one or more such target segments. The lengths of target segments may be uniform across all target information units or may vary according to particular needs and considerations. As just one example, each target value <b>42</b> may represent a measurable attribute of a five-second segment of a song. In one embodiment, certain target values <b>42</b> may be generated by applying a control algorithm or other operation to the corresponding target segment of the target information unit. For example, a control algorithm may be applied to a time sequence of amplitude values A{t} that represent a song to generate a much shorter sequence of values that help identify the song. The algorithm may be a sampling of a Fourier transform A{f} of A{t}. Alternatively, the control algorithm may be based on a discrete wavelet transform in which the song is divided into one or more time segments A {t;t<sub>i</sub>} and each of the one or more time segments is further decomposed into discrete frequency components A {f<sub>j</sub>,t<sub>i</sub>}. As another example, a target value <b>42</b> may represent a sequence of frequencies of the corresponding target segment of the target information unit. Where the target information unit is a song, the sequence of frequencies may correspond to a sequence of notes within the song. Although particular target values <b>42</b> are discussed as examples, the present invention contemplates any suitable target values <b>42</b> according to particular needs.
[0026] In one embodiment, tag file <b>26</b> may be constructed such that each target value <b>42</b> is associated with a time value <b>44</b> registering the target value <b>42</b> with respect to the beginning of the target information unit such that it is known over what target segment of the target information unit the control algorithm or other operation was applied. For example, first target value <b>42</b><i>a </i>for tag file <b>26</b><i>a </i>(“Value 1.1”) might be generated according to a wavelet transform performed on the first five seconds of the corresponding song (“Song <b>1</b>”). Second target value <b>42</b><i>b </i>for tag file <b>26</b><i>a </i>(“Value 1.2”) might be generated according to a wavelet transform performed on seconds five through ten, thirty through thirty-five, or any other five-second interval of the corresponding song (“Song <b>1</b>”). Other target values <b>42</b> may represent sequences of frequencies; average tempo; any other suitable frequency, tempo, or other characteristic; or any other measurable attribute suitable for identifying the target information unit when compared with similar information in a second set of measurable attributes extracted from a portion of digitized data stream <b>30</b> representing the received information stream <b>14</b>. The present invention contemplates storing in tag file <b>26</b>, and identifying a target information unit according to, any number of target values <b>42</b>.
[0027] A tag file <b>26</b> may be generated in any manner but is typically generated by a user according to a set of predefined guidelines for tag file construction, which may be mandatory or merely recommended. It may be preferable to establish certain mandatory requirements for information included in tag files <b>26</b>, for example, to help ensure uniformity of operation of user device <b>12</b> and sharing of tag files <b>26</b> among users. For example, duration <b>40</b> of the target information unit (e.g., song duration) may be a required field in tag files <b>26</b>. This may be necessary to allow system <b>18</b> to determine the location within digitized data stream <b>30</b> of the portion of digitized data stream <b>30</b> including an identified target information unit. As another example, certain target values <b>42</b> may be required fields in tag files <b>26</b> and certain mandatory requirements regarding target values <b>42</b>, such as the order of target values <b>42</b>, may be enforced. First target value <b>42</b><i>a </i>may be required to be a value generated according to a particular wavelet transform performed on a particular predetermined segment of the song (e.g., the first five seconds). Second target value <b>42</b><i>b </i>may be required to be a value representing a sequence of specific frequencies, the average tempo, or any other characteristics of the same predetermined segment of the song. Third target value <b>42</b><i>c </i>may be required to be a value generated according to the particular wavelet transform performed on another particular predetermined segment of the song (e.g., seconds five through ten, thirty through thirty-five, or any other five-second interval). A fourth target value <b>42</b><i>d </i>may be required to be a value representing a sequence of specific frequencies, the average tempo, or any other characteristics of the other predetermined segment of the song. Although particular examples are provided for purposes of illustration, those skilled in the art will appreciate that any appropriate target values <b>42</b> may be stored in tag files <b>26</b> and used to identify corresponding target information units according to particular needs.
[0028] Tag files <b>26</b> may include target values <b>42</b> for multiple segments (e.g., two) of a target information unit to increase the accuracy of the comparison of the second set of one or more attributes extracted from the portion of the digitized data stream with the first set of one or more attributes in tag file <b>26</b>. It may be further desirable to separate the segments of the song upon which the multiple target values <b>42</b> are based to further increase the accuracy of the comparison. This may be beneficial because consecutive segments of a target information unit or segments of two different target information units may be substantially similar. Separating the multiple segments may increase the likelihood that distinct segments of the digitized data stream actually match segments of a target information unit. Furthermore, any one or more target values <b>42</b> may serve to identify a portion of digitized data stream <b>30</b> that may include the target information unit, and any one or more target values <b>42</b> may server to verify that the portion of digitized data stream <b>30</b> identified actually includes the target information unit.
[0029] Returning to FIG. 2, processor <b>24</b> may be any suitable DSP or other processor capable of identifying a target information unit in a received information stream <b>14</b>, according to one or more stored tag files <b>26</b>, and storing the target information unit once identified. In one embodiment, processor <b>24</b> accesses buffer <b>22</b> at predetermined intervals to extract a second set of attributes from each consecutive segment of digitized data stream <b>30</b>. The predetermined intervals at which processor <b>24</b> accesses buffer <b>22</b> may have any suitable length. For example, processor <b>24</b> may access buffer <b>22</b> every five seconds to extract a second set of attributes for each five-second segment of digitized data stream <b>30</b>. For example, as described above with reference to FIG. 3, the second set of attributes extracted for a segment of digitized data stream <b>30</b> may include a first test value generated by performing a control algorithm such as the wavelet transform on the segment. As another example, the second set of attributes extracted for a segment of digitized data stream <b>30</b> may include one or more other test values representing one or more sequences of frequencies within the segment, the average tempo of the segment, or any other suitable measurable attributes of the segment. In one embodiment, at least one and preferably all attributes extracted from segments of digitized data stream <b>30</b> correspond to the attributes included in tag files <b>26</b>.
[0030] Processor <b>22</b> accesses the first set of attributes in a stored tag file <b>26</b>, compares the second set of attributes extracted for a segment of digitized data stream <b>30</b> with the first set of attributes, and determines according to the comparison whether the segment of digitized data stream <b>30</b> corresponds to the target information unit for tag file <b>26</b>. To perform the comparison, processor <b>24</b> accesses one or more first target values <b>42</b><i>a </i>in one or more tag files <b>26</b> and compares the first test value for the segment of digitized data stream <b>30</b> with the one or more first target values <b>42</b><i>a </i>in the one or more tag files <b>26</b>. Processor <b>24</b> may compare the first test value with a single first target value <b>42</b><i>a </i>for a single tag file <b>26</b>, with multiple first target values <b>42</b><i>a </i>for multiple tag files <b>26</b>, or with all first target values <b>42</b><i>a </i>for all tag files <b>26</b>. As discussed above, target values <b>42</b> in tag files <b>26</b> may be required fields arranged in a specified order according to rules designed to help ensure that comparisons of test values with target values <b>42</b> are meaningful. According to the comparison, processor <b>24</b> determines whether the first test value matches the one or more first target values <b>42</b><i>a</i>. As used herein, the term “match” is meant to encompass any suitable level of consistency, which may but need not necessarily amount to an exact match.
[0031] In one embodiment, as described above, processor <b>24</b> may perform multiple operations on the segment of digitized data stream <b>30</b>. For example, processor <b>24</b> may, in addition to performing a control algorithm such as a wavelet transform on the segment, generate a second target value representing a sequence of frequencies within the segment, the average tempo of the segment, or any other suitable measurable attribute of the segment. This may result in multiple test values for the segment of digitized data stream <b>30</b> to be compared with multiple corresponding target values <b>42</b> of the same target segment. As discussed above, a match between a test value for a segment of digitized data stream <b>30</b> and a target value <b>42</b> in a tag file <b>26</b> may involve any suitable level of consistency. Furthermore, processor <b>24</b> may use any suitable standard for determining whether multiple test values match multiple target values <b>42</b> in a tag file <b>26</b>. For example only and not by way of limitation, if three test values for the segment are compared with three target values <b>42</b> in a tag file <b>26</b>, processor <b>24</b> may require any two of the three sets of values to match. Increasing the number of test values and target values <b>42</b> compared may increase the accuracy of the identification of a target information unit in digitized data stream <b>30</b>, but may also increase processing time. Those skilled in the art will appreciate the tradeoffs between accuracy of identification and processing time and strike an appropriate balance according to particular needs.
[0032] In one embodiment, if processor <b>24</b> determines that one or more test values for a segment of digitized data stream <b>30</b> match one or more corresponding target values <b>42</b>, processor <b>24</b> may attempt to verify the identification of the target information unit. Verification is not required, but may increase the probability that this determination made by processor <b>24</b> is correct. To perform the verification, processor <b>24</b> may access a second or any other subsequent segment of digitized data stream <b>30</b>, separated from the first segment of digitized data stream <b>30</b> by zero or more of the predetermined intervals defining the lengths of the segments. The number of intervals separating the first and second segments within digitized data stream <b>30</b> may affect the likelihood that the verification is meaningful. For example, it is less likely that test values for multiple segments of digitized data stream <b>30</b> will match target values for the same multiple segments if digitized data stream <b>30</b> is not the target information unit. Processor <b>24</b> may extract the second set of attributes from the second segment of digitized data stream <b>30</b> in substantially the same manner as described above for the first segment. Furthermore, processor <b>24</b> may perform the comparison and resulting determination of a match in substantially the same manner as described above for the first segment. Processor <b>24</b> may perform any number of verifications, as is appropriate. It may be preferable for processor <b>24</b> to perform the verification(s) according to predefined requirements and guidelines to help ensure uniformity of operation of user device <b>12</b> and sharing of tag files <b>26</b> among users.
[0033] In one embodiment, if processor <b>24</b> successfully determines a match (possibly after verification) between a portion of digitized data stream <b>30</b> and a target information unit, processor <b>24</b> uses the first time value <b>44</b> registering the first target segment to the predetermined length of the target information unit to determine the start time of the portion of digitized data stream <b>30</b> including the target information unit. For example, the first target segment of the target information unit used to determine one or more target values <b>42</b> may always be the first five seconds of the target information unit. The first time value <b>44</b> would in this case indicate the target information unit begins at the beginning of the first target segment. Thus, according to first time value <b>44</b>, processor <b>24</b> would in this case determine the beginning of the segment of digitized data stream <b>30</b> that processor <b>24</b> determined to match the first segment of the target information unit as the start of the portion of digitized data stream <b>30</b> including the target information unit. As another example, the first target segment of the target information unit used to determine one or more target values <b>42</b> may always be seconds thirty through thirty-five of the target information unit. The first time value <b>44</b> would in this case indicate the target information unit begins thirty seconds before the first target segment. Thus, according to first time value <b>44</b>, processor <b>24</b> would in this case determine thirty seconds before the beginning of the segment of the target information unit as the start of the portion of digitized data stream <b>30</b> including the target information unit. Processor <b>24</b> may determine the end time for the portion of digitized data stream <b>30</b> including the target information unit by adding duration <b>40</b> to the determined start time of the portion of digitized data stream <b>30</b> including the target information unit. Processor <b>24</b> may then, using the calculated start time and end time, store the portion of digitized data stream <b>30</b> including the target information unit as a stored target information unit <b>28</b>.
[0034] Each stored target information unit <b>28</b> includes a portion of a digitized data stream <b>30</b> determined by processor <b>24</b> to include a target information unit corresponding to a stored tag file <b>26</b>. For example, in the specific case where user device <b>12</b> includes an MP3 player and previously received information streams <b>14</b> have included broadcast radio signals, each stored target information unit <b>28</b> may include a song contained in a broadcast radio signal that processor <b>32</b> has determined to correspond to a stored tag file <b>26</b>. As another example, in the specific case where user device <b>12</b> includes a television and previously received information streams <b>14</b> have included broadcast television signals, each stored target information unit <b>28</b> may include a television program contained in a broadcast television signal that processor <b>32</b> has determined to correspond to a stored tag file <b>26</b>. Memory allocated for storing target information units <b>28</b> may have any appropriate size. Factors such as cost of memory, size of system <b>18</b> and user device <b>12</b>, and other suitable factors may be considered when determining the memory to allocate for storing target information units <b>28</b>.
[0035] In operation of system <b>18</b>, receiver <b>20</b> receives received information stream <b>14</b>. As discussed above, received information stream <b>14</b> may include one or more of a broadcast radio signal, a broadcast television signal, an audio signal, a video signal, or any other suitable signal for containing a target information unit to be identified and stored according to the present invention. Furthermore, received information stream <b>14</b> may include an analog or digital signal. If received information stream <b>14</b> is a digitized data stream, receiver <b>20</b> may communicate information stream <b>14</b> as digitized data stream <b>30</b> to buffer <b>22</b>. If received information stream <b>14</b> is an analog signal, receiver <b>20</b> may use CODEC device <b>32</b> to convert received information stream <b>14</b> to a digital format, communicating the resulting digitized data stream <b>30</b> representing information stream <b>14</b> to buffer <b>22</b>. Providing this functionality allows system <b>18</b> to process both analog and digital received information streams <b>14</b>.
[0036] At predetermined intervals, processor <b>24</b> accesses buffer <b>22</b> to extract a second set of attributes from each consecutive segment of digitized data stream <b>30</b>. Processor <b>24</b> may perform a control algorithm such as a wavelet transform on the accessed segment of digitized data stream <b>30</b> to generate a first test value. Processor <b>24</b> may access one or more first target values <b>42</b><i>a </i>in one or more tag files <b>26</b> and may compare the first test value for the segment of digitized data stream <b>30</b> with the one or more first target values <b>42</b><i>a </i>in the one or more tag files <b>26</b>. As discussed above, target values <b>42</b> in tag files <b>26</b> may be required fields arranged in a specified order according to rules designed to help ensure that comparisons of test values with target values <b>42</b> are meaningful. According to the comparison, processor <b>24</b> determines whether the first test value matches one or more of the first target values <b>42</b><i>a. </i>
[0037] In one embodiment as described above, processor <b>24</b> may perform multiple operations on the segment of digitized data stream <b>30</b>, resulting in multiple test values for the segment of digitized data stream <b>30</b> to be compared with multiple corresponding target values <b>42</b> of the same test segment. As discussed above, processor <b>24</b> may use any suitable standard for determining whether multiple test values for the segment of digitized data stream <b>30</b> match multiple target values <b>42</b> in a tag file <b>26</b>. Increasing the number of test values and target values <b>42</b> compared may increase the accuracy of the identification of a target information unit in digitized data stream <b>30</b>, but may also increase processing time.
[0038] In one embodiment, if processor <b>24</b> determines that one or more test values for a segment of digital data stream <b>30</b> match one or more corresponding target values <b>42</b>, processor <b>24</b> may attempt to verify the identification of the target information unit. Verification is not required, but may increase the probability that this determination made by processor <b>24</b> is correct. To perform verification, processor <b>24</b> may access a second or any other subsequent segment of digitized data stream <b>30</b>, separated from the first segment of digitized data stream <b>30</b> by zero or more of the predetermined intervals defining the lengths of the segments. Processor <b>24</b> may extract the second set of attributes from the second segment of digitized data stream <b>30</b> in substantially the same manner as described above for the first segment. Furthermore, processor <b>24</b> may perform the comparison and resulting determination of a match in substantially the same manner as described above for the first segment. Processor <b>24</b> may perform any number of verifications, as is appropriate and preferably according to predefined requirements and guidelines.
[0039] If processor <b>24</b> successfully determines a match (possibly after verification) between a portion of digitized data stream <b>30</b> and a target information unit, processor <b>24</b> uses first time value <b>44</b> registering the first target segment to the predetermined length of the target information unit to determine the start time of the portion of digitized data stream <b>30</b> including the target information unit. Processor <b>24</b> may determine the end time for the portion of digitized data stream <b>30</b> including the target information unit by adding duration <b>40</b> to the determined start time of the portion of digitized data stream <b>30</b> including the target information unit. Processor <b>24</b> may then, using the determined start time and end time, store the portion of digitized data stream <b>30</b> including the target information unit as a stored target information unit <b>28</b>.
[0040] Although identifying and storing one target information unit is described, in one embodiment system <b>18</b> operates substantially continuously to monitor information stream <b>14</b> to attempt to identify and store multiple target information units. Furthermore, where appropriate according to the implementation of system <b>18</b>, system <b>18</b> may monitor multiple information streams <b>14</b>. For example, if user device <b>12</b> includes an MP3 player and each information stream <b>14</b> includes a broadcast radio signal, user device <b>12</b> may monitor multiple radio frequencies to identify and store desired songs specified in one or more tag files <b>26</b>. This capability may increase the probability that, and speed in which, each of the one or more target information units in each of the one or more tag files stored at user device <b>12</b> are identified and stored.
[0041] Particular embodiments of the present invention may provide one or more technical advantages. For example, certain embodiments may allow a user to store within a user device one or more tag files each representing a corresponding target information unit the user desires to store. The device may monitor one or more broadcast radio signals, for example, for desired songs corresponding to the stored tag files, recording a song contained in a broadcast radio signal if the song is determined to correspond to a stored tag file based on a comparison of attributes extracted from the radio signal with attributes in the stored tag file. This may allow a user to record one or more songs contained in one or more broadcast radio signals without requiring the user to listen to the various radio signals and personally attempt to record desired songs. This may also prevent a user from missing a desired song because it is on a radio station the user is not monitoring or missing the first few seconds of the song before beginning to record it. In certain embodiments, users may be able to share tag files with other users using a server system, expanding the number of available tag files without requiring each user to personally construct all the tag files of interest to the user or maintain all such tag files at an associated user device. Users logged in or otherwise linked to the server system may be able to share tag files in a way that allows a user to access the server system, view tag files available for selection at that time, select a tag file, and download the selected tag file to an associated user device from the server system or, through the server system, from another user device at which the selected tag file is stored. In certain embodiments, the user device can play back the target information units identified and stored at the user device as desired.
[0042]FIG. 4 illustrates an example method for identifying and storing one or more target information units contained in one or more received information streams <b>14</b>. At step <b>100</b>, receiver <b>20</b> receives received information stream <b>14</b>. At step <b>102</b>, if received information stream <b>14</b> is a digitized data stream, receiver <b>20</b> skips to step <b>106</b> and communicates information stream <b>14</b> as digitized data stream <b>30</b> to buffer <b>22</b>. If received information stream <b>14</b> is an analog signal, receiver <b>20</b> uses CODEC device <b>32</b> to convert received information stream <b>14</b> to a digital format at step <b>104</b>. Receiver <b>20</b> communicates the resulting digitized data stream <b>30</b> representing information stream <b>14</b> to buffer <b>22</b> at step <b>106</b>.
[0043] At step <b>108</b>, processor <b>24</b> accesses buffer <b>22</b> at predetermined intervals to extract a second set of attributes from each consecutive segment of digitized data stream <b>30</b>. At step <b>110</b>, processor <b>24</b> may perform a control algorithm such as a wavelet transform on the accessed segment of digitized data stream <b>30</b> to generate a first test value. At step <b>112</b>, processor <b>24</b> accesses one or more first target values <b>42</b><i>a </i>in one or more tag files <b>26</b> and compares the first test value for the segment of digitized data stream <b>30</b> with the one or more first target values <b>42</b><i>a </i>in the one or more tag files <b>26</b> at step <b>114</b>. As discussed above, target values <b>42</b> in tag files <b>26</b> may be required fields arranged in a specified order according to rules designed to help ensure that comparisons of test values with target values <b>42</b> are meaningful. According to the comparison, processor <b>24</b> determines whether the first test value matches one or more of the first target values <b>42</b><i>a </i>at step <b>116</b>.
[0044] In one embodiment as described above, processor <b>24</b> may perform multiple operations on the segment of digitized data stream <b>30</b>, resulting in multiple test values for the segment of digitized data stream <b>30</b> to be compared with multiple corresponding target values <b>42</b> of the same test segment. As discussed above, processor <b>24</b> may use any suitable standard for determining whether multiple test values for the segment of digitized data stream <b>30</b> match multiple target values <b>42</b> in a tag file <b>26</b>. Increasing the number of test values and target values <b>42</b> compared may increase the accuracy of the identification of a target information unit in digitized data stream <b>30</b>, but may also increase processing time.
[0045] At step <b>118</b>, if processor <b>24</b> determines that one or more test values for a segment of digitized data stream <b>30</b> match one or more corresponding target values <b>42</b>, processor <b>24</b> may attempt to verify the identification of the target information unit. Verification is not required, but may increase the probability that this determination made by processor <b>24</b> is correct. To perform verification, processor <b>24</b> may access a second or any other subsequent segment of digitized data stream <b>30</b> by zero or more of the predetermined intervals defining the lengths of the segments. Processor <b>24</b> may extract the second set of attributes from the second segment of digitized data stream <b>30</b> in substantially the same manner as described above for the first segment. Furthermore, processor <b>24</b> may perform the comparison and resulting determination of a match in substantially the same manner as described above for the first segment. Processor <b>24</b> may perform any number of verifications, as is appropriate and preferably according to predefined requirements and guidelines.
[0046] At step <b>120</b>, if processor <b>24</b> successfully determines a match (possibly after verification) between a portion of digitized data stream <b>30</b> and a target information unit, processor <b>24</b> uses first time value <b>44</b> registering the first segment to the predetermined length of the target information unit to determine the start time of the portion of digitized data stream <b>30</b> including the target information unit. At step <b>122</b>, processor <b>24</b> determines the end time for the portion of digitized data stream <b>30</b> including the target information unit by adding duration <b>40</b> to the determined start time of the portion of digitized data stream <b>30</b> including the target information unit. Using the determined start time and end time, processor <b>24</b> stores the portion of digitized data stream <b>30</b> including the target information unit as a stored target information unit <b>28</b> at step <b>124</b>.
[0047] Although identifying and storing one target information unit is described, in one embodiment system <b>18</b> operates substantially continuously to monitor information stream <b>14</b> to attempt to identify and store multiple target information units. Furthermore, where appropriate according to the implementation of system <b>18</b>, system <b>18</b> may monitor multiple information streams <b>14</b>. For example, if user device <b>12</b> includes an MP3 player and each information stream <b>14</b> includes a broadcast radio signal, user device <b>12</b> may monitor multiple radio frequencies to identify and store songs specified in one or more tag files <b>26</b>. This capability may increase the probability that, and speed in which, each of the one or more target information units in each of the one or more tag files stored at user device <b>12</b> are identified and stored.
[0048]FIG. 5 illustrates an example method for sharing and downloading one or more tag files using server system <b>16</b>. At step <b>200</b>, a user associated with a user device <b>12</b> connects to server system <b>16</b>. The user may decide to download one or more tag files <b>26</b> at step <b>202</b>. As described above with reference to FIG. 1, in one embodiment, one or more tag files <b>26</b> may be stored at server system <b>16</b>. In addition, or as an alternative, one or more tag files <b>26</b> may be stored external to server system <b>16</b>, at other user devices <b>12</b> associated with other users for example, such that the user may obtain one or more tag files <b>26</b> via server system <b>16</b> from another user device <b>12</b> linked at least temporarily to server system <b>16</b>. If the user decides to download one or more tag files <b>26</b> at step <b>202</b>, the user selects one or more tag files <b>26</b> to download at step <b>204</b>. The user downloads the one or more selected tag files <b>26</b> to associated user device <b>12</b> using server system <b>16</b> at step <b>206</b>. The user may decide to share one or more tag files <b>26</b> stored at the associated user device <b>12</b> at step <b>208</b>. If the user decides to share one or more tag files <b>26</b>, the user makes tag files <b>26</b> accessible to one or more other users using server system <b>16</b> at step <b>210</b>. After the user has downloaded one or more tag files <b>26</b>, shared one or more tag files <b>26</b>, or both as desired, the method ends.
[0049] Although the present invention has been described with several embodiments, diverse changes, substitutions, variations, alterations, and modifications may be suggested to one skilled in the art, and it is intended that the invention encompass all such changes, substitutions, variations, alterations, and modifications as fall within the spirit and scope of the appended claims.
Contents5
4 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8656253B2 | Cited by | United States of America | Search report |
| US2012311395A1 | Cited by | United States of America | Pre-grant |
| US7516104B1 | Cited by | United States of America | Search report |
| US2006103507A1 | Cited by | United States of America | Pre-grant |
| US8458098B1 | Cited by | United States of America | Applicant |
| US8965939B2 | Cited by | United States of America | Search report |
| US2019324110A1 | Cited by | United States of America | Search report |
| US2019324110A1 | Cited by | United States of America | Search report |
| US7536151B2 | Cited by | United States of America | Search report |
| US10739436B2 | Cited by | United States of America | Search report |
| US2016006839A1 | Cited by | United States of America | Pre-grant |
| US2014164877A1 | Cited by | United States of America | Pre-grant |
| US2002120925A1 | Cites | United States of America | Pre-grant |
| US6614987B1 | Cites | United States of America | Pre-grant |
| US6766062B1 | Cites | United States of America | Pre-grant |
| US6801667B1 | Cites | United States of America | Pre-grant |
1 member in 1 office
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 36097002 | United States of America | P | |
| 34863703 | United States of America | A | |
| 60360970 | – | – | – |
| US20020360970P | – | – | – |
| US20030348637 | – | – | – |
Members1
| Document | Office | Kind | |
|---|---|---|---|
| US2003191851A1 | United States of America | A1 |
2 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2003191851
- Publication, EPODOC
- US2003191851
- Application
- 10348637
- Application, DOCDB
- 34863703
- Application, EPODOC
- US20030348637
Titles
- English
- Identifying and storing a target information unit contained in a received information stream
Classification
- CPC, 6
- H04H60/27
- H04H60/58
- H04H60/65
- H04L29/06
- H04L67/306
- H04L69/329
- IPC, 5
- H04H60 27
- H04H60 58
- H04H60 65
- H04L29 06
- H04L29 08
- USPC, 1
- 709231000