WO2010074697A2 - Constructing album data using discrete track data from multiple sources - Google Patents

Constructing album data using discrete track data from multiple sources Download PDF

Info

Publication number
WO2010074697A2
WO2010074697A2 PCT/US2009/006041 US2009006041W WO2010074697A2 WO 2010074697 A2 WO2010074697 A2 WO 2010074697A2 US 2009006041 W US2009006041 W US 2009006041W WO 2010074697 A2 WO2010074697 A2 WO 2010074697A2
Authority
WO
WIPO (PCT)
Prior art keywords
tracks
album
data
track
matching
Prior art date
Application number
PCT/US2009/006041
Other languages
French (fr)
Other versions
WO2010074697A3 (en
Inventor
Jens Nicholas Wessling
Robert Dennis Kahlbaum
Original Assignee
Rovi Technologies Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rovi Technologies Corporation filed Critical Rovi Technologies Corporation
Priority to EP09835369A priority Critical patent/EP2374081A4/en
Priority to JP2011542105A priority patent/JP2012512484A/en
Publication of WO2010074697A2 publication Critical patent/WO2010074697A2/en
Publication of WO2010074697A3 publication Critical patent/WO2010074697A3/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]

Definitions

  • the present invention relates to constructing album data. More particularly, the present invention relates to constructing album data using discrete data from multiple sources.
  • the album identifier is computed upon detection of a disc in the CD player of the user's computer and sent to a remote server hosting a Web site containing information about the albums.
  • the server uses the identifier as a key to lookup a single matching record in an albums database and outputs the album information stored in that matching record.
  • Conventions do not account for the following: users ripping tracks to hard disk and then later ripping the song back to CD, causing changes in album structure; users changing metadata of a track; and record companies changing the names of tracks for different albums. These occurrences could easily add up to cause a conventional system to be unable to produce reliable album data for a user.
  • the result may be an identifier being computed that does not match any identifier stored in the albums database, which in turn might prevent retrieval of the appropriate album data.
  • inventive embodiments fill these needs by providing a method and a system for constructing album data using discrete track data from multiple sources. It should be appreciated that these embodiments may be implemented in numerous ways, including as a method, a process, an apparatus, a system or a device. The inventive embodiments are summarized below. [07] In one embodiment, a method is provided for constructing album data.
  • the method comprises the following: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
  • a system for constructing album data.
  • the system is configured for the following: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
  • a computer readable medium carrying one or more instructions for constructing album data.
  • the one or more instructions when executed by one or more processors, cause the one or more processors to perform the following steps: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
  • the invention encompasses other embodiments configured as set forth above and with other features and alternatives. BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a system for constructing album data using discrete track data from multiple sources, in accordance with some embodiments;
  • FIG. 2 is a block diagram of a system for using album data constructed using discrete track data from multiple sources, in accordance with some embodiments;
  • FIG. 3 is a flowchart of a method for constructing album data using discrete track data from multiple sources, in accordance with some embodiments.
  • FIG. 4 is a flowchart of a method for using the album data constructed using discrete track data from multiple sources, in accordance with some embodiments.
  • album means a collection of tracks.
  • An album is typically originally published by an established entity, such as a record label (i.e., record company, such as Warner or Universal).
  • CD technology has also been adapted and expanded to include data storage CD-ROM, write-once audio and data storage
  • CD-R rewritable media CD-RW
  • SACD Super Audio CD
  • Computer i.e., "user computer” or “client” or “server” may refer to a single computer or to a system of interacting computers.
  • a computer is a combination of a hardware system, a software operating system and perhaps one or more software application programs.
  • Examples of a computer include without limitation a laptop computer, a palmtop computer, a smart phone, a cell phone, a mobile phone, an mp3 player, digital audio recorder, digital video recorder, an IBM-type personal computer (PC) having an operating system such as Microsoft Windows ® , an Apple ® computer having an operating system such as MAC-OS, hardware having a JAVA-OS operating system, and a Sun Microsystems Workstation having a UNIX operating system.
  • PC personal computer
  • an operating system such as Microsoft Windows ®
  • an Apple ® computer having an operating system such as MAC-OS
  • hardware having a JAVA-OS operating system
  • Sun Microsystems Workstation having a UNIX operating system.
  • Device means hardware, software or a combination thereof.
  • a device may sometimes be referred to as an apparatus. Each device is configured to carry out one or more steps of the method of constructing album data using discrete track data from multiple sources.
  • “Song” means a musical composition.
  • a song is typically recorded onto a track by a record label (i.e., record company).
  • a song may have many different versions, for example, a radio version and an extended version.
  • “Table of Contents” means the list of tracks, the track start times and the track end times.
  • the TOC data consists of a string of concatenated track start times for every track on a CD.
  • the track start times are typically expressed as six-digit hexadecimal values.
  • TOC data is stored on a CD using a format specified in the "Red Book” (Compact Disc Digital Audio System Description,
  • Track means a data block storing at least a portion of a song.
  • Track and “song” usually mean the same thing, but not necessarily.
  • track number 2 of two identical CDs is the same song and the same track.
  • a radio version and an extended version may be considered to be the same song; however, these two different versions would be on different tracks.
  • Track data typically includes without limitation metadata and a fingerprint.
  • Track number is the number in the metadata associated with a particular track. For example, if an album has 9 tracks, the tracks are numbered from 1 to 9 with a track number metadata field for each track.
  • Web browser means any software program which can display text, graphics, or both, from Web pages on Web sites. Examples of a Web browser include without limitation Mozilla Firefox ® and Microsoft Explorer ® .
  • Web page means any documents written in mark-up language including without limitation HTML (hypertext mark-up language) or VRML (virtual reality modeling language), dynamic HTML, XML (extended mark-up language) or related computer languages thereof, as well as to any collection of such documents reachable through one specific Internet address or at one specific Web site, or any document obtainable through a particular URL (Uniform Resource
  • Web server is a Yahoo ® Web server.
  • "Web site" means at least one Web page, and more commonly a plurality of Web pages, virtually connected to form a coherent group.
  • Each client device 110 has hardware and/or software that is configured to communicate with the application server 115 to retrieve and send information relating to the recordings.
  • a client device 110 may have an operating system with a graphical user interface (GUI) to access the Internet and is preferably equipped with graphical World Wide Web (Web) browser software, such as Mozilla Firefox ® , operable to read and send Hypertext Markup Language (HTML) forms from and to a Hypertext Transport Protocol (HTTP) server on the Web.
  • GUI graphical user interface
  • Web World Wide Web
  • Browser software such as Mozilla Firefox ®
  • HTML Hypertext Markup Language
  • Client CD players may have built-in interfaces that enable them to communicate with the application server 115 via the network 105, either directly or through a computer.
  • a CD player may have a data interface (e.g., an IDE interface or a USB interface) that enables the CD player to send and receive data from a computer, which in turn is coupled to the network 105.
  • the application server 115 includes hardware and software for communicating with the clients 110.
  • the application server 1 15 may have HTTP compliant software, an operating system and common gateway interface (CGI) software for interfacing with clients 110 via the network 105.
  • the application server 115 and clients 110 may run proprietary software that enables them to communicate via the network 105.
  • the application server 115 may be connected to a local area network (LAN), which in turn may be connected to the network 105; the application server 115 may be coupled to multiple Web servers; and the system 100 may include a database (or system of databases) arranged in a different configuration than the databases depicted here.
  • LAN local area network
  • the system 100 may include a database (or system of databases) arranged in a different configuration than the databases depicted here.
  • the application server 115 may have gathered this track data (i.e., metadata) during a fingerprinting process that the application server 115 provides as a service to users.
  • the client device 110 accesses the application server 115 when the user instructs the client device 110 to obtain a fingerprint on a particular track.
  • the application server 115 gathers from the client device 110 metadata of tracks.
  • the application server 115 may receive metadata of individual tracks even if the individual tracks are stored outside of the context of an album.
  • the application server 115 does not have to inform the user that the application server 115 is gathering track data from the client device 110.
  • the gathering of track data is part of the fingerprinting service and may run as a backend process.
  • the backend process runs on the side of the application server 115 and is configured not to be noticeable by the user.
  • the application server 115 may gather track data from a client device 110 anytime the client device 110 accesses the application server 115 for any other reason.
  • the application server 115 stores, among other things, the gathered fingerprints and metadata in the tracks database 125; alternatively, the application server 115 stores the fingerprints in some other database.
  • the gathered metadata may include album data to which the application server 115 did not previously have access. Such newly acquired album data is a bonus because the new album data provides valuable information that the application server 115 may use for further processing.
  • the application server 115 may also have metadata previously stored.
  • a purpose of the system 100 is to construct album data using the track data after the application server 115 has access to a sufficient amount of track data, including fingerprints and metadata in the tracks database 125. It is inadequate to identity album data of a track using a fingerprint only.
  • a track i.e., data block storing at least a portion of a song
  • the song i.e., musical composition
  • the song that is in the track may happen to have another slightly different version, or the exact same version, that is part of a different album (e.g., a "Greatest Hits" album).
  • it is inadequate to rely on only the metadata of one track to determine if that one track belongs to a particular album.
  • the metadata may be wrong. For example, a user may have accessed the metadata and changed the album name or artist name, etc. Accordingly, the system must perform additional processing in order to associate that track with the appropriate album.
  • the application server 115 collects each of the fingerprints associated with each of these tracks.
  • the fingerprint provides an independent piece of track identification and is unaffected by metadata.
  • a fingerprint precisely identifies a track, which is associated with metadata.
  • the application server 115 may then group together a single user's tracks that have the same album title according to their metadata. The application server 115 does this grouping for each individual user's track data.
  • the application server 115 searches for matching fingerprints across all fingerprints inputted that come from an album with a similar title. In other words, for all users, the application server 115 matches tracks that have substantially the same fingerprint and substantially the same album title.
  • each track may have a varying number of matched fingerprints and album titles when the system sums matches from across all users. For example, a particular track may have a sum of 50 matched fingerprints and album titles from across all users, while another particular track may have a sum of 23 matched fingerprints and album titles from across all users.
  • the application server 115 may then group tracks that match according to an original album title in the metadata. Accordingly, the system 100 now has a reasonable grouping of every instance, within the system 100, of any track of a particular album. At this point, the system 100 likely has groupings for many different albums.
  • the application server 115 then mines across all the track data from all client devices 110, and from previously stored track data, to generate a juxtaposition of track data.
  • the "juxtaposition of track data” means the placement together of all the gathered track data in an organized manner for comparison purposes to generate album data.
  • the juxtaposition of the track data is the result of the mining process, which is described further below.
  • the application server 115 uses the juxtaposition of track data obtained from the mining to generate a description of each album. All the track data that needs to be mined should, at this point, be stored in the tracks database 125 offline, hi other words, the application server 115 preferably does not have to re-access any of the client devices 110; however, such re-accessing of client devices 110 may take place in an alternative embodiment.
  • Mining across all the track data includes reading each matching fingerprint and determining the track data from across every matching track of every album.
  • the system here is determining matching fingerprints and then reading the track data of each track of the matching fingerprints, in that sequence. Accordingly, the matching fingerprints will not necessarily have matching album data in the metadata associated with the matching fingerprints. This is possible, for example, if a record label (i.e., record company) releases a song for a regular album and then later releases the same song for a greatest hits album. Likewise, the matching fingerprints will not necessarily have matching song names in the metadata associated with the matching fingerprints; this discrepancy happens quite often in classical music, for example.
  • Mining across all track data further includes reading (1 ) the number of tracks each client device had, (2) the maximum track each client device had for each album and (3) the track count values (when present) from each track to determine how many albums match among client devices and what data each album had.
  • the "number of tracks each client device had” means the number of tracks that each particular user had fingerprinted within a particular set of tracks having a similar title; most users are likely to fingerprint an entire album. Accordingly, the total number of tracks on the official album is likely to be a common number that the system 1 OO comes across.
  • the "maximum track each user had” means the highest track number that a particular user happened to fingerprint; each track is associated with a track number metadata field.
  • a "track count value” means metadata indicating the total number of tracks for an album. If the system can obtain this total number (the track count value), the system may not have to perform indirect comparing operations for determining the total number of tracks.
  • the application server 115 may then generate album data based on the juxtaposition of track data obtained from all the mining. Generating album data includes constructing one or more TOCs for the one or more albums.
  • the application server 115 is combining information obtained from the prior processes, discussed above, to formulate a best guess of the TOC for each album in consideration.
  • the application server 115 preferably has a multitude of data from which to generate a TOC that is likely the best representation of a TOC for a particular album. For example, the application server may have identified that 45 client devices indicated Marvin Gaye's "What's Going On" album has 9 total tracks, while only 3 client devices indicated 8 total tracks; the application server will likely use the number 9 as the total number of tracks for that album.
  • the application server 115 also has the appropriate fingerprints and other matching metadata for each album considered. Accordingly, the application server 115 may construct a reliable TOC for each album based on the data analysis operations described above.
  • the application server 115 accesses the tracks database 125 to determine if any album data obtained from these processes is already stored in the albums database 120. If the album data is not stored in the albums database 120, then the application server 115 adds the album data to the albums database 120. These additions should be easy because, at this point, the system 100 likely has immediate offline access to all the necessary information to make the particular album.
  • the albums database 120 now includes a reliable collection of TOCs for all the albums of the system 100.
  • the albums database 120 may also include pointers to associated tracks, metadata and fingerprints stored in the tracks database 125. Other configurations exist as well.
  • FIG. 2 is a block diagram of a system 200 for using album data constructed using discrete track data from multiple sources, in accordance with some embodiments.
  • This system 200 may be implemented by using a user computer 210 that may, but does not have to, operate according to the client- server configuration discussed with reference to FIG. 1.
  • the user computer 210 may be coupled to the network 105; however, the coupling to the network 105 is optional.
  • the user computer 210 may perform processes of the system 200 offline.
  • All software and data necessary for using the album data may be stored on a local storage device associated with the user computer 210.
  • the user computer 210 may have a local albums database 215, containing a complete set or a subset of the information available in the corresponding albums database 120 coupled to the application server 115.
  • the user computer 210 may load the local albums database 215 with albums data from a CD-ROM (not shown).
  • the local albums database 215 may be on the hard disk of the user computer 210.
  • the user computer 210 may download the albums data to the local albums database 215 from the albums database 120 via the network 105.
  • Other configurations exist as well.
  • the user computer 210 may also have a local tracks database 215, containing the user's own tracks data or a subset of the tracks data available in the tracks database 125, which is coupled to the application server 115.
  • the tracks database 220 may include tracks, metadata and fingerprints.
  • the user computer 210 may, for example, rip tracks from a CD and convert the tracks to mp3 format. Alternatively, the user computer 210 may download tracks from various Web sites via the network 105.
  • the user computer 210 may also initiate a fingerprinting process on tracks by accessing a fingerprinting service provided by the application server 115. Alternatively, the user computer 210 may have a local fingerprinting application for generating fingerprints locally. Other configurations exist as well.
  • the user computer 210 may access the albums database 120 via the network 105 or may download at least a portion of the albums data from the albums database 120 to the local albums database 215.
  • the user computer 210 may then provide reliable TOC information according to the user's input. For example, the user may select a track from the local tracks dataset 220 while the user computer 210 is offline; the user computer 210 may provide the relevant TOC information automatically by accessing the local albums database 215; and/or the user computer 210 may retrieve the TOC information from the local albums database 215 upon the user's request.
  • FIG. 3 is a flowchart of a method 300 for constructing album data using discrete track data from multiple sources, in accordance with some embodiments.
  • the steps of the method 300 may be carried out by the application server 1 15 of FIG. 1.
  • the method 300 starts in a step 305 where the system identifies a new set of tracks, from each client device, having a similar album title. The method 300 then moves to a step 310 where the system collects a fingerprint for each track of each set of tracks. Next, in a step 315, the system searches across all tracks for tracks having a matching fingerprint and a matching album title. Then, in a step 320, the system groups the searched tracks that match according to an original album title in the metadata. The method then proceeds to a step 325 where the system mines all grouped track data to generate a juxtaposition of track data from the multiple sources. Moving to a step 330, the system uses the juxtaposition of track data to generate album data.
  • the generation of album data includes constructing one or more TOCs for the one or more albums.
  • a decision operation 335 the system determines if any album data obtained from these processes is already in the albums database. If any of the obtained album data is not already in the albums database, then the method 300 moves to a step 340 where the system adds that album data to the albums database; and the method 300 then moves to a decision operation 345. However, if all the obtained album data is already in the albums database, then the method 300 moves to a decision operation 345.
  • FIG. 4 is a flowchart of a method 400 for using the album data constructed using discrete track data from multiple sources, in accordance with some embodiments, hi some embodiments, the steps of the method 400 may be carried out by the user computer 210 of FIG. 2.
  • the method 400 starts in a step 405 where the system downloads album data from the albums database. The system may store this downloaded album data on a local albums database. The method 400 then moves to a step 410 where the system selects a particular track, for example, to playback on the user computer.
  • the system retrieves album data related to the particular track.
  • the user computer may retrieve the album data from the local albums database or from the main albums database that is networked to the user computer.
  • the system may display the album data on the user computer.
  • a decision operation 425 the system determines if another track has been selected. If another track has been selected, the method 400 returns to the step 415 and continues. However, if another track has not been selected, then the method 400 concludes.
  • An implementation may include a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to control, or cause, a computer to perform any of the processes of the implementation.
  • the storage medium can include without limitation any type of disk including floppy disks, mini disks (MD's), optical disks, DVDs, CD-ROMs, micro-drives, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any type of media or device suitable for storing instructions and/or data.
  • disks including floppy disks, mini disks (MD's), optical disks, DVDs, CD-ROMs, micro-drives, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any type of media or device suitable
  • some implementations include software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the particular embodiment.
  • Such software may include without limitation device drivers, operating systems, and user applications.
  • Such computer readable media further includes software for performing aspects of the invention, as described above.
  • Embodiments of the present system generate album data by juxtaposing track data from multiple sources, including multiple client devices. These implementations gather and compare track data from many sources.
  • the resulting album data is highly likely to be an accurate representation of the original album data of the original albums.
  • the resulting album identifiers are high likely to be accurate identifiers for the album data.
  • the resulting album data is highly reliable.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Processing Or Creating Images (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

A method and a system are provided for constructing album data using discrete track data from multiple sources. In one example, the system identifies one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices. The system then searches across the one or more set of tracks for tracks having a matching fingerprint and a matching album title. The system groups tracks that match according to an original album title in metadata to obtain grouped tracks. The system mines across the grouped tracks to generate a juxtaposition of track data from the one or more client devices. The system then generates album data for one or more albums based on the juxtaposition of track data.

Description

CONSTRUCTING ALBUM DATA USING DISCRETE TRACK DATA FROM MULTIPLE SOURCES
FIELD OF THE INVENTION
[01] The present invention relates to constructing album data. More particularly, the present invention relates to constructing album data using discrete data from multiple sources. BACKGROUND
[02] Methods exist for reading table of contents data from compact discs (CDs) and using the data to lookup information in databases. U.S. Pat. Nos. 6,230,192 and 6,330,593 (the '192 and '593 patents) provide conventional examples of such methods. The ' 192 and the '593 patents relate generally to delivering supplemental entertainment content to a user listening to a musical recording. The content is accessed using a Web browser. Using conventional techniques, an identifier is computed for the album being played. The identifier may be determined based on the number and lengths of tracks on the album. The identifier is used to retrieve, from a database, information relating to the recordings played by the user. SUMMARY
[03] hi conventional systems, the album identifier is computed upon detection of a disc in the CD player of the user's computer and sent to a remote server hosting a Web site containing information about the albums. The server uses the identifier as a key to lookup a single matching record in an albums database and outputs the album information stored in that matching record. [04] Unfortunately, there are disadvantages of these conventional systems. For example, conventional systems do not account for the following: users ripping tracks to hard disk and then later ripping the song back to CD, causing changes in album structure; users changing metadata of a track; and record companies changing the names of tracks for different albums. These occurrences could easily add up to cause a conventional system to be unable to produce reliable album data for a user. The result may be an identifier being computed that does not match any identifier stored in the albums database, which in turn might prevent retrieval of the appropriate album data.
[05] Accordingly, these conventional approaches suffer from a number of disadvantages. These methods are predicated on computing a single identifier for a recording and looking up information in a database containing potentially several matching records.
[06] What is needed is an improved method having features for addressing the problems mentioned above and new features not yet discussed. Broadly speaking, the inventive embodiments provided here fill these needs by providing a method and a system for constructing album data using discrete track data from multiple sources. It should be appreciated that these embodiments may be implemented in numerous ways, including as a method, a process, an apparatus, a system or a device. The inventive embodiments are summarized below. [07] In one embodiment, a method is provided for constructing album data. The method comprises the following: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
[08] hi another embodiment, a system is provided for constructing album data. The system is configured for the following: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
[09] In still another embodiment, a computer readable medium carrying one or more instructions for constructing album data is provided. The one or more instructions, when executed by one or more processors, cause the one or more processors to perform the following steps: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data. [10] The invention encompasses other embodiments configured as set forth above and with other features and alternatives. BRIEF DESCRIPTION OF THE DRAWINGS
[11] The inventive embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements.
[12] FIG. 1 is a block diagram of a system for constructing album data using discrete track data from multiple sources, in accordance with some embodiments; [13] FIG. 2 is a block diagram of a system for using album data constructed using discrete track data from multiple sources, in accordance with some embodiments;
[14] FIG. 3 is a flowchart of a method for constructing album data using discrete track data from multiple sources, in accordance with some embodiments; and [15] FIG. 4 is a flowchart of a method for using the album data constructed using discrete track data from multiple sources, in accordance with some embodiments.
DETAILED DESCRIPTION
[16] An invention is disclosed for a method and a system for constructing album data using discrete track data from multiple sources. Numerous specific details are set forth in order to provide a thorough understanding of various embodiments. It will be understood, however, to one skilled in the art, that the embodiments may be practiced with other specific details.
Definitions
[17] Some terms are defined below for clarity purposes. These terms are not rigidly restricted to these definitions. These terms and other terms may also be defined by their use in the context of this description.
[18] "Album" means a collection of tracks. An album is typically originally published by an established entity, such as a record label (i.e., record company, such as Warner or Universal).
[19] "Album data" (i.e., "album level data") is data related to a particular album. Album data typically includes without limitation the TOC for the particular album.
[20] "Compact Disc" (CD) is an optical disc used to store digital data, originally developed for storing digital audio. Standard CDs have a diameter of
120 mm and can hold up to 80 minutes of audio. There is also the Mini CD, with diameters ranging from 60 to 80 mm; they are sometimes used for CD singles, storing up to 24 minutes of audio. CD technology has also been adapted and expanded to include data storage CD-ROM, write-once audio and data storage
CD-R, rewritable media CD-RW, Super Audio CD (SACD), Video Compact
Discs (VCD), Super Video Compact Discs (SVCD), Photo CD, Picture CD, CD- i, and Enhanced CD. [21] "Computer" (i.e., "user computer" or "client" or "server") may refer to a single computer or to a system of interacting computers. A computer is a combination of a hardware system, a software operating system and perhaps one or more software application programs. Examples of a computer include without limitation a laptop computer, a palmtop computer, a smart phone, a cell phone, a mobile phone, an mp3 player, digital audio recorder, digital video recorder, an IBM-type personal computer (PC) having an operating system such as Microsoft Windows®, an Apple® computer having an operating system such as MAC-OS, hardware having a JAVA-OS operating system, and a Sun Microsystems Workstation having a UNIX operating system.
[22] "Device" means hardware, software or a combination thereof. A device may sometimes be referred to as an apparatus. Each device is configured to carry out one or more steps of the method of constructing album data using discrete track data from multiple sources.
[23] "Fingerprint" (i.e., "audio fingerprint" or "acoustic fingerprint") is a digital measure of certain acoustic properties that is deterministically generated from an audio signal that can be used to identify an audio sample and/or quickly locate similar items in an audio database. "Fingerprinting" is the process of generating a fingerprint. Practical uses of audio fingerprinting include identifying songs, records, melodies, tunes, or advertisements; radio broadcast and peer to peer network monitoring; sound effect library management; video file identification; and much more. A fingerprint is an independent piece of data that is not affected by metadata. The company Macrovision® has databases that store over 25 million unique fingerprints for various audio samples, including without limitation music tracks of albums. U.S. Pat. No. 7,277,766 (the '766 patent), entitled "Method and System for Analyzing Digital Audio Files", provides an example of an apparatus for fingerprinting an audio waveform. U.S. Publication No. 2006/0149533 (the '360 patent application), entitled "Methods and Apparatus for Identifying Media Objects", provides an example of an apparatus for generating an audio fingerprint of an audio recording.
[24] "Metadata" generally means data that describes data. More particularly, metadata means data that describes the contents of a digital audio recording. Such metadata may include, for example, song name, artist information (e.g., name, birth date, discography, etc.), album information (e.g., album title, review, track listing, sound samples, etc.), relational information (e.g., similar artists and albums, genre, etc.), and other types of supplemental information. Conventional CDs do not typically contain metadata. Metadata is attached to a particular song after, for example, the song has been ripped, converted to another digital audio format (e.g., mp3) and stored on a hard drive. Future or other disc technology, besides conventional CDs, may include metadata.
[25] "Network" means a connection between any two or more computers, which permits the transmission of data. A network may be any combination of networks, including without limitation the Internet, a local area network, a wide area network, a wireless network and a cellular network. [26] "Set of tracks" typically means a group of tracks having similar album titles.
[27] "Similar album titles" (i.e., "common album titles") means album titles that are reasonably alike and that are not necessarily perfect matches. For example, "What's Going On" and "what is going on" may be considered to be similar album titles.
[28] "Song" means a musical composition. A song is typically recorded onto a track by a record label (i.e., record company). A song may have many different versions, for example, a radio version and an extended version. [29] "Table of Contents" (TOC) means the list of tracks, the track start times and the track end times. The TOC data consists of a string of concatenated track start times for every track on a CD. The track start times are typically expressed as six-digit hexadecimal values. TOC data is stored on a CD using a format specified in the "Red Book" (Compact Disc Digital Audio System Description,
Philips Corporation, May 1999), which provides the standards for digital audio
CDs. TOC data is typically used to identify a CD. U.S. Pat. No. 7,359,900 (the
'900 patent), entitled "Digital Audio Track Set Recognition System", provides an example of a method of using TOC data to identify a CD.
[30] "Track" means a data block storing at least a portion of a song. "Track" and "song" usually mean the same thing, but not necessarily. For example, track number 2 of two identical CDs is the same song and the same track. In contrast, a radio version and an extended version may be considered to be the same song; however, these two different versions would be on different tracks.
[31] "Track data" (i.e., "track level data") is data related to a particular track.
Track data typically includes without limitation metadata and a fingerprint.
[32] "Track number" is the number in the metadata associated with a particular track. For example, if an album has 9 tracks, the tracks are numbered from 1 to 9 with a track number metadata field for each track.
[33] "Web browser" means any software program which can display text, graphics, or both, from Web pages on Web sites. Examples of a Web browser include without limitation Mozilla Firefox® and Microsoft Explorer®.
[34] "Web page" means any documents written in mark-up language including without limitation HTML (hypertext mark-up language) or VRML (virtual reality modeling language), dynamic HTML, XML (extended mark-up language) or related computer languages thereof, as well as to any collection of such documents reachable through one specific Internet address or at one specific Web site, or any document obtainable through a particular URL (Uniform Resource
Locator).
[35] "Web server" refers to a computer or other electronic device which is capable of serving at least one Web page to a Web browser. An example of a
Web server is a Yahoo® Web server. [36] "Web site" means at least one Web page, and more commonly a plurality of Web pages, virtually connected to form a coherent group.
[37] For the implementations of the present system, a software application could be written in substantially any suitable programming language, which could easily be selected by one of ordinary skill in the art. The programming language chosen should be compatible with the computer by which the software application is to be executed and, in particular, with the operating system of that computer. Examples of suitable programming languages include without limitation Object Pascal, C, C++, CGI, Java and Java Scripts. Further, the functions of some embodiments, when described as a series of steps for a method, could be implemented as a series of software instructions for being operated by a processor, such that the embodiments could be implemented as software, hardware, or a combination thereof. Computer readable media are discussed in more detail in a separate section below.
Architecture Overview
[38] The present system involves reading tracks and constructing fingerprints from a collection of audio files (e.g., an album that has been digitized and stored on a user computer using an audio player). The system, over a time period (e.g., minutes, hours or days), constructs multiple fingerprints and gathers metadata from many different user computers. The system builds and uses a database that stores a multitude of audio fingerprints for a multitude of different tracks; the system builds and uses a database that stores track data; and the system builds and uses a database that stores album data. The fingerprints, the track data and the album data are typically not preexisting in the databases and are built using gathered information, as discussed further below. Based on relationships between the multiple track readings, the metadata and the fingerprints, the system updates and refines the stored album data using methods described in more detail below. [39] FIG. 1 is a block diagram of a system 100 for constructing album data using discrete track data from multiple sources, in accordance with some embodiments. A network 105 is coupled to an application server 115. The application server 115 is coupled to (or includes) an albums database 120 and a tracks database 125. The albums database 120 may store, among other things, album data of digital audio recordings. The tracks database 125 may store, among other things, metadata and fingerprints of various audio tracks. The network 105 is also coupled to a number of client devices 110, Client 1 through Client n, that are configured to store digital audio recordings and associated metadata. The client devices may be for example a personal computer (Client 1), a component CD player (Client 2), or another player device (Client ή), such as an mp3 player or a personal digital assistant. Other possibilities for client devices 110 exist as well.
[40] Each client device 110 has hardware and/or software that is configured to communicate with the application server 115 to retrieve and send information relating to the recordings. For example, a client device 110 may have an operating system with a graphical user interface (GUI) to access the Internet and is preferably equipped with graphical World Wide Web (Web) browser software, such as Mozilla Firefox®, operable to read and send Hypertext Markup Language (HTML) forms from and to a Hypertext Transport Protocol (HTTP) server on the Web. Client CD players may have built-in interfaces that enable them to communicate with the application server 115 via the network 105, either directly or through a computer. For example, a CD player may have a data interface (e.g., an IDE interface or a USB interface) that enables the CD player to send and receive data from a computer, which in turn is coupled to the network 105. [41] Likewise, the application server 115 includes hardware and software for communicating with the clients 110. For example, the application server 1 15 may have HTTP compliant software, an operating system and common gateway interface (CGI) software for interfacing with clients 110 via the network 105. Alternatively, the application server 115 and clients 110 may run proprietary software that enables them to communicate via the network 105.
[42] It will be readily appreciated that the schematic of FIG. 1 is for explanatory purposes, and that numerous variations are clearly possible. For example, the application server 115 may be connected to a local area network (LAN), which in turn may be connected to the network 105; the application server 115 may be coupled to multiple Web servers; and the system 100 may include a database (or system of databases) arranged in a different configuration than the databases depicted here.
Constructing Album Data
[43] Generating album data from track data involves analyzing a juxtaposition of individual audio track data from various sources and generating the album data based on the juxtaposition. Referring to FIG. 1 , the application server 115 identifies one or more set of tracks, each set of tracks having a similar album title from a single client device 110 (i.e., source). To identify this similar album title, the application server 115 analyzes the metadata associated with each track of the set of tracks from one particular client device 110. The metadata of certain tracks may include, for example, the album title "What's Going On" and the artist "Marvin Gaye"; the application server 115 will identify these tracks showing this album title and take this set of tracks into consideration for further processing. [44] The application server 115 may have gathered this track data (i.e., metadata) during a fingerprinting process that the application server 115 provides as a service to users. The client device 110 accesses the application server 115 when the user instructs the client device 110 to obtain a fingerprint on a particular track. During the ensuing fingerprinting process, the application server 115 gathers from the client device 110 metadata of tracks. The application server 115 may receive metadata of individual tracks even if the individual tracks are stored outside of the context of an album. The application server 115 does not have to inform the user that the application server 115 is gathering track data from the client device 110. The gathering of track data is part of the fingerprinting service and may run as a backend process. The backend process runs on the side of the application server 115 and is configured not to be noticeable by the user. Alternatively, the application server 115 may gather track data from a client device 110 anytime the client device 110 accesses the application server 115 for any other reason.
[45] Accordingly, a given user typically initiates a fingerprinting process on selected tracks. Many other users also carry out such fingerprinting via their own client devices 110. Over a time period (e.g., minutes, hours or days), the application server 115 gathers a multitude of information related to the individual tracks being fingerprinted.
[46] The application server 115 stores, among other things, the gathered fingerprints and metadata in the tracks database 125; alternatively, the application server 115 stores the fingerprints in some other database. The gathered metadata may include album data to which the application server 115 did not previously have access. Such newly acquired album data is a bonus because the new album data provides valuable information that the application server 115 may use for further processing. The application server 115 may also have metadata previously stored.
[47] A purpose of the system 100 is to construct album data using the track data after the application server 115 has access to a sufficient amount of track data, including fingerprints and metadata in the tracks database 125. It is inadequate to identity album data of a track using a fingerprint only. A track (i.e., data block storing at least a portion of a song) cannot be reliably matched to an album based on the track's identification alone. The song (i.e., musical composition) that is in the track may happen to have another slightly different version, or the exact same version, that is part of a different album (e.g., a "Greatest Hits" album). Likewise, it is inadequate to rely on only the metadata of one track to determine if that one track belongs to a particular album. The metadata may be wrong. For example, a user may have accessed the metadata and changed the album name or artist name, etc. Accordingly, the system must perform additional processing in order to associate that track with the appropriate album.
[48] After considering all the tracks that have a similar album title according to the metadata, the application server 115 collects each of the fingerprints associated with each of these tracks. The fingerprint provides an independent piece of track identification and is unaffected by metadata. A fingerprint precisely identifies a track, which is associated with metadata. The application server 115, as described above, may then group together a single user's tracks that have the same album title according to their metadata. The application server 115 does this grouping for each individual user's track data. [49] The application server 115 then searches for matching fingerprints across all fingerprints inputted that come from an album with a similar title. In other words, for all users, the application server 115 matches tracks that have substantially the same fingerprint and substantially the same album title. The album title is obtained from the metadata of each track. So, each track may have a varying number of matched fingerprints and album titles when the system sums matches from across all users. For example, a particular track may have a sum of 50 matched fingerprints and album titles from across all users, while another particular track may have a sum of 23 matched fingerprints and album titles from across all users.
[50] The application server 115 may then group tracks that match according to an original album title in the metadata. Accordingly, the system 100 now has a reasonable grouping of every instance, within the system 100, of any track of a particular album. At this point, the system 100 likely has groupings for many different albums.
[51] The application server 115 then mines across all the track data from all client devices 110, and from previously stored track data, to generate a juxtaposition of track data. The "juxtaposition of track data" means the placement together of all the gathered track data in an organized manner for comparison purposes to generate album data. The juxtaposition of the track data is the result of the mining process, which is described further below. The application server 115 uses the juxtaposition of track data obtained from the mining to generate a description of each album. All the track data that needs to be mined should, at this point, be stored in the tracks database 125 offline, hi other words, the application server 115 preferably does not have to re-access any of the client devices 110; however, such re-accessing of client devices 110 may take place in an alternative embodiment.
[52] Mining across all the track data includes reading each matching fingerprint and determining the track data from across every matching track of every album. The system here is determining matching fingerprints and then reading the track data of each track of the matching fingerprints, in that sequence. Accordingly, the matching fingerprints will not necessarily have matching album data in the metadata associated with the matching fingerprints. This is possible, for example, if a record label (i.e., record company) releases a song for a regular album and then later releases the same song for a greatest hits album. Likewise, the matching fingerprints will not necessarily have matching song names in the metadata associated with the matching fingerprints; this discrepancy happens quite often in classical music, for example.
[53] Mining across all track data further includes reading (1 ) the number of tracks each client device had, (2) the maximum track each client device had for each album and (3) the track count values (when present) from each track to determine how many albums match among client devices and what data each album had. The "number of tracks each client device had" means the number of tracks that each particular user had fingerprinted within a particular set of tracks having a similar title; most users are likely to fingerprint an entire album. Accordingly, the total number of tracks on the official album is likely to be a common number that the system 1 OO comes across. The "maximum track each user had" means the highest track number that a particular user happened to fingerprint; each track is associated with a track number metadata field. Accordingly, if a user fingerprinted only the last three tracks of an album, the system is able to store the correct last track number for that album. A "track count value" means metadata indicating the total number of tracks for an album. If the system can obtain this total number (the track count value), the system may not have to perform indirect comparing operations for determining the total number of tracks.
[54] The application server 115 may then generate album data based on the juxtaposition of track data obtained from all the mining. Generating album data includes constructing one or more TOCs for the one or more albums. The application server 115 is combining information obtained from the prior processes, discussed above, to formulate a best guess of the TOC for each album in consideration. At this point, the application server 115 preferably has a multitude of data from which to generate a TOC that is likely the best representation of a TOC for a particular album. For example, the application server may have identified that 45 client devices indicated Marvin Gaye's "What's Going On" album has 9 total tracks, while only 3 client devices indicated 8 total tracks; the application server will likely use the number 9 as the total number of tracks for that album. The application server 115 also has the appropriate fingerprints and other matching metadata for each album considered. Accordingly, the application server 115 may construct a reliable TOC for each album based on the data analysis operations described above.
[55] For each album in consideration, the application server 115 accesses the tracks database 125 to determine if any album data obtained from these processes is already stored in the albums database 120. If the album data is not stored in the albums database 120, then the application server 115 adds the album data to the albums database 120. These additions should be easy because, at this point, the system 100 likely has immediate offline access to all the necessary information to make the particular album. The albums database 120 now includes a reliable collection of TOCs for all the albums of the system 100. The albums database 120 may also include pointers to associated tracks, metadata and fingerprints stored in the tracks database 125. Other configurations exist as well.
Using Album Data
[56] FIG. 2 is a block diagram of a system 200 for using album data constructed using discrete track data from multiple sources, in accordance with some embodiments. This system 200 may be implemented by using a user computer 210 that may, but does not have to, operate according to the client- server configuration discussed with reference to FIG. 1. For example, the user computer 210 may be coupled to the network 105; however, the coupling to the network 105 is optional. In some instances, the user computer 210 may perform processes of the system 200 offline.
[57] All software and data necessary for using the album data may be stored on a local storage device associated with the user computer 210. For example, the user computer 210 may have a local albums database 215, containing a complete set or a subset of the information available in the corresponding albums database 120 coupled to the application server 115. The user computer 210 may load the local albums database 215 with albums data from a CD-ROM (not shown). The local albums database 215 may be on the hard disk of the user computer 210. Alternatively, the user computer 210 may download the albums data to the local albums database 215 from the albums database 120 via the network 105. Other configurations exist as well.
[58] The user computer 210 may also have a local tracks database 215, containing the user's own tracks data or a subset of the tracks data available in the tracks database 125, which is coupled to the application server 115. The tracks database 220 may include tracks, metadata and fingerprints. The user computer 210 may, for example, rip tracks from a CD and convert the tracks to mp3 format. Alternatively, the user computer 210 may download tracks from various Web sites via the network 105. The user computer 210 may also initiate a fingerprinting process on tracks by accessing a fingerprinting service provided by the application server 115. Alternatively, the user computer 210 may have a local fingerprinting application for generating fingerprints locally. Other configurations exist as well.
[59] Accordingly, the user computer 210 may access the albums database 120 via the network 105 or may download at least a portion of the albums data from the albums database 120 to the local albums database 215. The user computer 210 may then provide reliable TOC information according to the user's input. For example, the user may select a track from the local tracks dataset 220 while the user computer 210 is offline; the user computer 210 may provide the relevant TOC information automatically by accessing the local albums database 215; and/or the user computer 210 may retrieve the TOC information from the local albums database 215 upon the user's request. In another example, the user may select a track from the local tracks dataset 220 while the user computer 210 is coupled to the network 105; the application server 115 may provide the relevant TOC information automatically by accessing the albums database 120; and/or the user computer 210 may retrieve the TOC information from the albums database 125 upon the user's request. In still another example, the user may select a track from the tracks dataset 125 while the user computer 210 is coupled to the network 105; the application server 115 may provide the relevant TOC information automatically by accessing the albums database 120; and/or the user computer 210 may retrieve the TOC information from the albums database 125 upon the user's request.
Method Overview
[60] FIG. 3 is a flowchart of a method 300 for constructing album data using discrete track data from multiple sources, in accordance with some embodiments. In some embodiments, the steps of the method 300 may be carried out by the application server 1 15 of FIG. 1.
[61] The method 300 starts in a step 305 where the system identifies a new set of tracks, from each client device, having a similar album title. The method 300 then moves to a step 310 where the system collects a fingerprint for each track of each set of tracks. Next, in a step 315, the system searches across all tracks for tracks having a matching fingerprint and a matching album title. Then, in a step 320, the system groups the searched tracks that match according to an original album title in the metadata. The method then proceeds to a step 325 where the system mines all grouped track data to generate a juxtaposition of track data from the multiple sources. Moving to a step 330, the system uses the juxtaposition of track data to generate album data. The generation of album data includes constructing one or more TOCs for the one or more albums. [62] In a decision operation 335, the system determines if any album data obtained from these processes is already in the albums database. If any of the obtained album data is not already in the albums database, then the method 300 moves to a step 340 where the system adds that album data to the albums database; and the method 300 then moves to a decision operation 345. However, if all the obtained album data is already in the albums database, then the method 300 moves to a decision operation 345.
[63] In the decision operation 345, the system determines if more album data is to be constructed. If more album data is to be constructed, then the method 300 returns to the step 305 and continues. However, if no more album data is to be constructed, then the method 300 concludes.
[64] FIG. 4 is a flowchart of a method 400 for using the album data constructed using discrete track data from multiple sources, in accordance with some embodiments, hi some embodiments, the steps of the method 400 may be carried out by the user computer 210 of FIG. 2. [65] The method 400 starts in a step 405 where the system downloads album data from the albums database. The system may store this downloaded album data on a local albums database. The method 400 then moves to a step 410 where the system selects a particular track, for example, to playback on the user computer. Next, in a step 415, the system retrieves album data related to the particular track. The user computer may retrieve the album data from the local albums database or from the main albums database that is networked to the user computer. Moving to a step 420, the system may display the album data on the user computer.
[66] In a decision operation 425, the system determines if another track has been selected. If another track has been selected, the method 400 returns to the step 415 and continues. However, if another track has not been selected, then the method 400 concludes.
[67] Note that these methods may include other details and steps that are not discussed in these method overviews. Other details and steps are discussed above with reference to the appropriate figures and may be a part of a present method, depending on the embodiment.
Computer Readable Medium Implementation
[68] Portions of some embodiments may be conveniently implemented by using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art.
[69] Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art. [70] An implementation may include a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to control, or cause, a computer to perform any of the processes of the implementation. The storage medium can include without limitation any type of disk including floppy disks, mini disks (MD's), optical disks, DVDs, CD-ROMs, micro-drives, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any type of media or device suitable for storing instructions and/or data.
[71 ] Stored on any one of the computer readable medium (media), some implementations include software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the particular embodiment. Such software may include without limitation device drivers, operating systems, and user applications. Ultimately, such computer readable media further includes software for performing aspects of the invention, as described above.
[72] Included in the programming (software) of the general/specialized computer or microprocessor are software modules for implementing the teachings of the invention, including without limitation identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices, searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title, grouping tracks that match according to an original album title in metadata to obtain grouped tracks, mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices, and generating album data for one or more albums based on the juxtaposition of track data, according to the processes described above.
Advantages
[73] Embodiments of the present system generate album data by juxtaposing track data from multiple sources, including multiple client devices. These implementations gather and compare track data from many sources. The resulting album data is highly likely to be an accurate representation of the original album data of the original albums. Also, the resulting album identifiers are high likely to be accurate identifiers for the album data. Thus, the resulting album data is highly reliable.
[74] In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

CLAIMSWhat is claimed is:
1. A method for constructing album data, the method comprising: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
2. The method of Claim 1, wherein the generating album data comprises constructing one or more table of contents for the one or more albums.
3. The method of Claim 1 , further comprising at least one of: determining that particular album data of the one or more albums is not in an albums database; and adding the particular album data to the albums database.
4. The method of Claim 1, wherein identifying the one or more set of tracks is followed by collecting a fingerprint for each track of the one or more set of tracks, wherein the fingerprint provides an independent piece of track identification and is unaffected by metadata.
5. The method of Claim 1 , wherein the mining across the grouped tracks comprises at least one of: determining matching fingerprints; and reading the track data of each track of the matching fingerprints.
6. The method of Claim 5, wherein particular matching fingerprints do not have matching album data in metadata associated with the particular matching fingerprints.
7. The method of Claim 5, wherein particular matching fingerprints do not have matching song names in metadata associated with the matching fingerprints.
8. The method of Claim 1 , wherein the mining across all track data comprises at least one of: reading a number of tracks that each client device had fingerprinted, wherein a client device is a device that provided a set of tracks; reading a maximum track that each client device had for each album; and reading track count values from each track to determine how many albums match among client devices.
9. The method of Claim 1, wherein the mining across the grouped tracks is performed offline without accessing any of the one or more client devices that provided a set of tracks.
10. The method of Claim 1 , further comprising sending at least some of the album data to a user computer, wherein the user computer is configured for using the album data to provide reliable album data for a selected track.
11. A system for constructing album data, wherein the system is configured for: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
12. The system of Claim 11, wherein the generating album data comprises constructing one or more table of contents for the one or more albums.
13. The system of Claim 11, wherein the system is further configured for at least one of: determining that particular album data of the one or more albums is not in an albums database; and adding the particular album data to the albums database.
14. The system of Claim 11, wherein the system is configured for following the identifying the one or more set of tracks with collecting a fingerprint for each track of the one or more set of tracks, wherein the fingerprint provides an independent piece of track identification and is unaffected by metadata.
15. The system of Claim 11 , wherein the mining across the grouped tracks comprises at least one of: determining matching fingerprints; and reading the track data of each track of the matching fingerprints.
16. The system of Claim 15, wherein particular matching fingerprints do not have matching album data in metadata associated with the particular matching fingerprints.
17. The system of Claim 15, wherein particular matching fingerprints do not have matching song names in metadata associated with the matching fingerprints.
18. The system of Claim 11 , wherein the mining across all track data comprises at least one of: reading a number of tracks that each client device had fingerprinted, wherein a client device is a device that provided a set of tracks; reading a maximum track that each client device had for each album; and reading track count values from each track to determine how many albums match among client devices.
19. The system of Claim 11, wherein the system is configured for performing the mining across the grouped tracks offline without accessing any of the one or more client devices that provided a set of tracks.
20. The system of Claim 11 , wherein the system if further configured for sending at least some of the album data to a user computer, wherein the user computer is configured for using the album data to provide reliable album data for a selected track.
21. A computer readable medium carrying one or more instructions for constructing album data, wherein the one or more instructions, when executed by one or more processors, cause the one or more processors to perform the steps of: identifying one or more set of tracks having a similar album title, wherein the one or more set of tracks are obtained from one or more client devices; searching across the one or more set of tracks for tracks having a matching fingerprint and a matching album title; grouping tracks that match according to an original album title in metadata to obtain grouped tracks; mining across the grouped tracks to generate a juxtaposition of track data from the one or more client devices; and generating album data for one or more albums based on the juxtaposition of track data.
PCT/US2009/006041 2008-12-15 2009-11-10 Constructing album data using discrete track data from multiple sources WO2010074697A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP09835369A EP2374081A4 (en) 2008-12-15 2009-11-10 Constructing album data using discrete track data from multiple sources
JP2011542105A JP2012512484A (en) 2008-12-15 2009-11-10 Build album data using discrete track data from multiple sources

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/316,706 US8751494B2 (en) 2008-12-15 2008-12-15 Constructing album data using discrete track data from multiple sources
US12/316,706 2008-12-15

Publications (2)

Publication Number Publication Date
WO2010074697A2 true WO2010074697A2 (en) 2010-07-01
WO2010074697A3 WO2010074697A3 (en) 2010-08-19

Family

ID=42241773

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/006041 WO2010074697A2 (en) 2008-12-15 2009-11-10 Constructing album data using discrete track data from multiple sources

Country Status (4)

Country Link
US (1) US8751494B2 (en)
EP (1) EP2374081A4 (en)
JP (1) JP2012512484A (en)
WO (1) WO2010074697A2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100228736A1 (en) * 2009-02-20 2010-09-09 All Media Guide, Llc Recognizing a disc
GB0906004D0 (en) * 2009-04-07 2009-05-20 Omnifone Ltd MusicStation desktop
US8359315B2 (en) * 2009-06-11 2013-01-22 Rovi Technologies Corporation Generating a representative sub-signature of a cluster of signatures by using weighted sampling
US20110072117A1 (en) * 2009-09-23 2011-03-24 Rovi Technologies Corporation Generating a Synthetic Table of Contents for a Volume by Using Statistical Analysis
US8321394B2 (en) * 2009-11-10 2012-11-27 Rovi Technologies Corporation Matching a fingerprint
US8584198B2 (en) 2010-11-12 2013-11-12 Google Inc. Syndication including melody recognition and opt out
US8584197B2 (en) 2010-11-12 2013-11-12 Google Inc. Media rights management using melody identification
US10140372B2 (en) 2012-09-12 2018-11-27 Gracenote, Inc. User profile based on clustering tiered descriptors
US9344759B2 (en) * 2013-03-05 2016-05-17 Google Inc. Associating audio tracks of an album with video content
US9542488B2 (en) 2013-08-02 2017-01-10 Google Inc. Associating audio tracks with video content

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751672A (en) * 1995-07-26 1998-05-12 Sony Corporation Compact disc changer utilizing disc database
US5987525A (en) * 1997-04-15 1999-11-16 Cddb, Inc. Network delivery of interactive entertainment synchronized to playback of audio recordings
US8010988B2 (en) * 2000-09-14 2011-08-30 Cox Ingemar J Using features extracted from an audio and/or video work to obtain information about the work
US7277766B1 (en) * 2000-10-24 2007-10-02 Moodlogic, Inc. Method and system for analyzing digital audio files
US7359889B2 (en) * 2001-03-02 2008-04-15 Landmark Digital Services Llc Method and apparatus for automatically creating database for use in automated media recognition system
US20020133499A1 (en) * 2001-03-13 2002-09-19 Sean Ward System and method for acoustic fingerprinting
US6973451B2 (en) * 2003-02-21 2005-12-06 Sony Corporation Medium content identification
US7359900B2 (en) * 2003-07-29 2008-04-15 All Media Guide, Llc Digital audio track set recognition system
US7451078B2 (en) * 2004-12-30 2008-11-11 All Media Guide, Llc Methods and apparatus for identifying media objects
US20070106405A1 (en) * 2005-08-19 2007-05-10 Gracenote, Inc. Method and system to provide reference data for identification of digital content
US7949649B2 (en) * 2007-04-10 2011-05-24 The Echo Nest Corporation Automatically acquiring acoustic and cultural information about music
US8073854B2 (en) * 2007-04-10 2011-12-06 The Echo Nest Corporation Determining the similarity of music using cultural and acoustic information
US20100124335A1 (en) * 2008-11-19 2010-05-20 All Media Guide, Llc Scoring a match of two audio tracks sets using track time probability distribution
US8209313B2 (en) * 2009-01-28 2012-06-26 Rovi Technologies Corporation Structuring and searching data in a hierarchical confidence-based configuration
US20100228704A1 (en) * 2009-02-20 2010-09-09 All Media Guide, Llc Recognizing a disc
US20100228736A1 (en) * 2009-02-20 2010-09-09 All Media Guide, Llc Recognizing a disc
US8620967B2 (en) * 2009-06-11 2013-12-31 Rovi Technologies Corporation Managing metadata for occurrences of a recording
US8359315B2 (en) * 2009-06-11 2013-01-22 Rovi Technologies Corporation Generating a representative sub-signature of a cluster of signatures by using weighted sampling
US20110072117A1 (en) * 2009-09-23 2011-03-24 Rovi Technologies Corporation Generating a Synthetic Table of Contents for a Volume by Using Statistical Analysis
US8321394B2 (en) * 2009-11-10 2012-11-27 Rovi Technologies Corporation Matching a fingerprint
US8239412B2 (en) * 2010-05-05 2012-08-07 Rovi Technologies Corporation Recommending a media item by using audio content from a seed media item
US20110307492A1 (en) * 2010-06-15 2011-12-15 Rovi Technologies Corporation Multi-region cluster representation of tables of contents for a volume

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of EP2374081A4 *

Also Published As

Publication number Publication date
EP2374081A2 (en) 2011-10-12
WO2010074697A3 (en) 2010-08-19
US20100153393A1 (en) 2010-06-17
US8751494B2 (en) 2014-06-10
EP2374081A4 (en) 2013-01-16
JP2012512484A (en) 2012-05-31

Similar Documents

Publication Publication Date Title
US8751494B2 (en) Constructing album data using discrete track data from multiple sources
US8620967B2 (en) Managing metadata for occurrences of a recording
US20100124335A1 (en) Scoring a match of two audio tracks sets using track time probability distribution
US7877408B2 (en) Digital audio track set recognition system
US8321394B2 (en) Matching a fingerprint
US8359315B2 (en) Generating a representative sub-signature of a cluster of signatures by using weighted sampling
US8352259B2 (en) Methods and apparatus for audio recognition
US8209313B2 (en) Structuring and searching data in a hierarchical confidence-based configuration
US7451078B2 (en) Methods and apparatus for identifying media objects
US7650563B2 (en) Aggregating metadata for media content from multiple devices
US8280889B2 (en) Automatically acquiring acoustic information about music
JP5543983B2 (en) Disc recognition
US20110072117A1 (en) Generating a Synthetic Table of Contents for a Volume by Using Statistical Analysis
KR20100018841A (en) Apparatus and method of generating key-word using playlist

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09835369

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2011542105

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009835369

Country of ref document: EP