US20120011138A1 - Associating and linking compact disc metadata - Google Patents
Associating and linking compact disc metadata Download PDFInfo
- Publication number
- US20120011138A1 US20120011138A1 US13/185,352 US201113185352A US2012011138A1 US 20120011138 A1 US20120011138 A1 US 20120011138A1 US 201113185352 A US201113185352 A US 201113185352A US 2012011138 A1 US2012011138 A1 US 2012011138A1
- Authority
- US
- United States
- Prior art keywords
- metadata
- record
- database
- user
- server
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/683—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/632—Query formulation
- G06F16/634—Query by example, e.g. query by humming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Definitions
- the present invention relates generally to playing, copying, and managing music files, such as those found on compact discs (CDs), and more particularly to techniques for retrieving, associating, and linking various sources of metadata for the music files.
- CDs compact discs
- audio CDs contain only digital music and a table of contents that tells the player how many tracks are present, the length of each track, and where on the disc each track starts.
- audio CDs do not carry “metadata” such as the title of the album, the artist that recorded it, and the names of the songs or tracks contained on it.
- Metadata is of value when playing, copying, and managing music files. Metadata includes descriptive information about music tracks and albums, so as to allow users to more easily identify files. For example, if a song title is available as metadata, an audio CD player can look up additional information from a web server, and can display artist name, album title, and song title while a track is being played. The user can view the contents of the CD by track name and select the tracks by name for random access playback. If a user makes a copy of a music file from a CD (a process known as “ripping”), or downloads a music file from an online source, metadata can be used as a default filename. Metadata is also useful in organizing and categorizing a collection of files, for example by artist name or musical genre; metadata can also be used as an identifier for gaining access to additional information about a song, artist, or CD.
- some music client software applications obtain metadata from external sources.
- users enter metadata manually, and the entered metadata is then associated with some unique characteristics of a CD (such as track lengths), so that the entered metadata can later be accessed whenever the CD is re-inserted in the user's computer.
- the client software can obtain metadata from a central server that is run by an application service provider (ASP).
- ASP application service provider
- Such functionality is provided, for example, by CDDB, available from Gracenote of Berkeley, Calif., or by FreeDB, available at “http://www.freedb.org”.
- the Windows Media Player client available from Microsoft Corporation of Redmond, Wash., also communicates with a CD Metadata ASP to obtain metadata.
- FIG. 1 depicts a system for obtaining metadata from a remote server according to the prior art.
- An end user of client software 102 inserts CD 101 in a connected CD drive (not shown).
- Client software 102 requests that metadata client module 104 identify CD 101 and return the metadata for use by software 102 .
- Client module 104 may derive a Disc ID from available information from CD 101 , such as table of contents (TOC).
- TOC table of contents
- Module 104 then sends the Disc ID over a network connection to a remote metadata ASP 103 .
- the request is typically sent over the Internet using Hypertext Transfer Protocol (HTTP) as a transmission protocol.
- Metadata server 105 receives the request and runs a query on metadata database 106 to find a metadata record that matches the Disc ID. Database 106 provides the metadata, which is then transmitted back to module 104 .
- Module 104 makes the data available to software 102 .
- HTTP Hypertext Transfer Protocol
- FIG. 2 depicts this method in more detail, as generally performed by metadata client 104 according to the prior art.
- Client 104 extracts 201 Disc IDs from the CD TOC data.
- Client 104 then transmits 202 the Disc IDs to metadata server 105 . If server 105 indicates 203 that matching metadata was found in database 106 , the metadata is made available 206 to client software 102 . If server 105 indicates 203 that no match was found, client 104 prompts the user 202 to enter the missing metadata. Once the user has provided the metadata, client 104 transmits 205 the metadata to server 105 , which saves the metadata in database 106 . The metadata is made available 206 to client software 102 .
- FIG. 3 depicts a server method of obtaining metadata according to the prior art.
- Server 105 receives a request 301 for metadata from client 104 over HTTP or some other protocol.
- Server 105 looks up 302 the Disc ID in metadata database 106 . If a match exists 303 , server 105 returns 304 the metadata for the match to client 104 , along with status indicating a match 304 . Otherwise, server 105 returns a status code indicating that no matches were found.
- Existing systems do not provide a mechanism for linking metadata from two or more sources.
- metadata is available from some external source, such as a commercially developed third-party database of music information
- existing systems are not generally able to integrate such external metadata with the above-described scheme.
- prior art metadata systems do not take advantage of the availability of more accurate and/or more complete information that may be available from a variety of sources.
- existing systems do not provide a mechanism for establishing links between metadata records in disparate databases, nor do they allow for management of various data sources having different levels of credibility.
- the present invention includes techniques for enhancing, associating, and linking various sources of metadata for music files, thus allowing integration of commercially generated metadata with user-entered metadata.
- the invention provides mechanisms for ensuring that metadata provided to the user is of the highest quality and accuracy available, even when the metadata comes from disparate sources having different levels of credibility. Using the techniques of the invention, redundancies among various data sources can be resolved, and inaccuracies can be corrected. The invention therefore enriches the set of album metadata that is available to the ripping and playback features when interacting with an audio CD.
- the invention utilizes professional quality metadata from a commercial database when such data is available. If such metadata is not available, the invention falls back on user-entered data.
- the invention generates and maintains a linking database allowing records from two or more metadata databases to be linked.
- the linking database also stores learned relationships among records from disparate databases, so that future queries can be serviced from the data source having the highest degree of credibility.
- the present invention provides improved techniques for identifying approximate matches, when querying metadata databases. In this manner, the present invention is able to detect matches even in the presence of slight variations in TOC data or other identifying data.
- the present invention further provides improved techniques for accepting user submissions of metadata, for categorizing user submissions according to relative credibility, and for integrating user submissions with existing metadata.
- FIG. 1 is a block diagram depicting a system for obtaining metadata from a remote server according to the prior art.
- FIG. 2 is a flowchart depicting a client method for obtaining metadata from a remote server according to the prior art.
- FIG. 3 is a flowchart depicting a server method for looking up metadata according to the prior art.
- FIG. 4 is a flowchart depicting a server method for adding metadata information to a database, according to one embodiment of the present invention.
- FIG. 5 is a block diagram depicting an improved system for linking and associating metadata from two or more sources, according to one embodiment of the present invention.
- FIG. 6 is a flowchart depicting an improved server method for vector matching according to one embodiment of the present invention.
- FIG. 7 is a flowchart depicting an improved server method for adding metadata information to a database, according to one embodiment of the present invention.
- FIG. 8 is a flowchart depicting a method for creating mappings between Disc IDs and CDs, according to one embodiment of the present invention.
- FIG. 9 is a block diagram depicting a metadata server according to one embodiment of the present invention.
- FIG. 10 is a block diagram depicting an implementation of the present invention in which several separate metadata databases are provided.
- FIG. 11 is a block diagram depicting an implementation of the present invention in which a single database contains metadata records having different levels of credibility.
- FIG. 12 is a block diagram depicting an example of a database lookup technique of the present invention, wherein at least one database is missing some information.
- FIG. 14 is a block diagram depicting a third example of a database lookup technique of the present invention, wherein at least one database is missing some information.
- FIG. 15 is a block diagram depicting a fourth example of a database lookup technique of the present invention, wherein at least one database is missing some information, and wherein an audio signature is used to formulate a query.
- FIG. 16 is a block diagram depicting a detailed system architecture according to one embodiment of the present invention.
- FIGS. 17A , 17 B, and 17 C are diagrams depicting the software structure of a metadata server according to one embodiment of the present invention.
- FIG. 19 is a flowchart depicting a method of handling metadata submission according to one embodiment of the present invention.
- FIGS. 20A and 20B are screen shots showing examples of dialog boxes for an advanced search function according to one embodiment of the present invention.
- FIG. 20C is a screen shot showing an example of a dialog box for confirming CD information according to one embodiment of the present invention.
- FIG. 20D is a screen shot showing an example of a dialog box for presenting possible matches according to one embodiment of the present invention.
- FIG. 21 is a flowchart depicting details of a method of handling metadata submission according to one embodiment of the present invention.
- FIG. 22 is a block diagram of system operation in connection audio signatures, according to one embodiment of the invention.
- the present invention is set forth in the context of a client software application, running on a personal computer, for playing music from a CD.
- the client software application communicates with a server over a network, using established network protocols.
- a server over a network, using established network protocols.
- the present invention can be implemented in other environments and contexts.
- the invention may be implemented in a CD player, consumer electronics product, personal digital assistant (PDA), cell phone, or other device.
- PDA personal digital assistant
- the invention may be implemented independently of playback of a CD.
- the system of the present invention utilizes professional quality metadata from a commercial database when such data is available. If such metadata is not available, the invention falls back on user-entered data.
- any number of databases or metadata sources are made available according to a hierarchical scheme.
- the retrieval techniques of the present invention select appropriate sources for metadata according to relative credibility, availability, and completeness of each source.
- the present invention provides mechanisms for linking records in disparate metadata sources, so that the sources can be integrated to provide more complete data in an efficient manner.
- the invention matches TOC-based queries to entries in a metadata database 106 using fixed-dimension vectors containing track length information.
- FIG. 6 there is shown a method for vector matching according to one embodiment of the present invention. Exact and/or approximate matching techniques may be used. Exact matching techniques find identical vectors. Approximate matching techniques determine differences between vectors, employing cosine matching (measuring the angle between vectors), difference matching (measuring the magnitude of the difference between vectors), or the like to determine which vectors are most closely aligned with one another.
- the system of the invention formulates a vector based on information that can be read from the CD. For example, in one embodiment, client software 102 reads TOC data from the CD, and client module 104 formulates a vector from the track lengths derived from the TOC data. In another embodiment, client module 104 transmits the TOC data to server 105 , which then formulates the vector.
- the system of the invention creates 602 a vector using information from request 601 such as TOC data.
- the vector is formulated, for example, by calculating the length of each track in frames. This may be done by subtracting the start offset of the track from the start offset of the following track. For example, in the following excerpt from a TOC-based query, where the first number denotes the number of tracks or segments on the media and the subsequent numbers represent the starting offsets (in media units) of each track or segment:
- the lengths are 24896, 15914, 14622, 19370, 15063, 24808, 16186, 11302, 15506, 15951, 22541, 21368, 13731, 9125, 12015, 7959, 14331, 17177, 13947, 16868, and 16531.
- the determined lengths are formed into a fixed-dimension vector, such as for example a 16-dimensional vector.
- a fixed-dimension vector such as for example a 16-dimensional vector.
- variable-dimension vectors could also be used.
- the system determines 603 whether any records in database 106 are associated with Disc IDs that exactly match the determined vector. In one embodiment, the system makes determination 603 using a hash table that maps the TOC vector to the database records, according to hash table techniques that are well known in the art. In one embodiment, if any matches are found, the system returns 604 the matching Disc IDs. For example, server 105 may transmit the matching Disc IDs to client module 104 . In another embodiment, server 105 retrieves metadata associated with the matching Disc IDs, and returns the metadata itself to client module 104 .
- the system looks for approximate matches.
- the system performs 606 dot product operations (or some other technique of approximate matching) on the determined vector, comparing it with vectors for Disc IDs in database 106 . If the results of any dot product operations exceed a predetermined threshold 607 , the system returns 608 the matching Disc IDs. For example, server 105 may transmit the matching Disc IDs to client module 104 . In another embodiment, if the results of any dot product operations exceed the threshold 607 , server 105 retrieves metadata associated with the matching Disc IDs, and returns the metadata itself to client module 104 .
- client module 104 requests the metadata from another source, and/or prompts the user to enter the metadata manually.
- the Disc IDs are transmitted to client module 104 .
- Client module 104 then issues one or more “Read” requests to obtain the metadata for the Disc ID(s) it received.
- the requests may be transmitted to the same metadata server 105 or to some other server (not shown).
- server 105 looks up Disc IDs but does not serve metadata itself; that task is left to other servers.
- server 105 looks up Disc IDs and also serves metadata to client modules 104 .
- server 105 serves metadata in response to the metadata request 601 , without performing the intermediary step of returning Disc IDs.
- a cosine or dot-product match is used to find vectors that are similar but not identical.
- ⁇ is the angle between A and B.
- the dot product produces the cosine of the angle between them, which is 1.0 for identical vectors, near 1.0 for similar vectors, and near 0.0 for vectors which are not similar.
- a cosine match is implemented by forming the vector for the TOC data in a query, normalizing it to unit length, and performing pairwise dot products with all normalized TOC vectors in the database.
- the maximum dot product indicates the greatest degree of similarity.
- a difference match is typically computed on un-normalized vectors.
- the difference match is computed as:
- Ai represents the ith element of vector A
- An optimization to vector matching is to perform approximate matching on only the most popular CDs first. If a cosine score above a predetermined threshold is obtained, a match is likely and the results can be returned. Otherwise, vector comparisons are performed against the balance of the database.
- Another optimization to vector matching is to retrieve the TOC vectors for all discs that have similar total lengths. This constrains the number of vector comparisons that must be performed to produce a match.
- the present invention provides mechanisms for accessing, integrating, and resolving metadata from two or more sources.
- metadata may be available from a commercial source, such as for example All Media Guide (AMG) of Ann Arbor, Mich., as well as from a database containing user-entered information.
- the commercial source may be deemed more reliable than the user-entered database.
- the system retrieves metadata from the commercial source when available, but falls back on the user-entered database when the commercial source is not able to provide the requested metadata.
- Tiers of relative credibility can be established, so that the system favors those sources that have higher credibility, and only uses lower-credibility sources when the metadata is not available elsewhere.
- some metadata databases include metadata that has been translated from one language to another.
- translated metadata is deemed less credible than metadata that is in its original language.
- the system of the present invention can be configured to favor non-translated metadata over translated metadata.
- Metadata databases 106 may include a commercial metadata database, corroborated metadata database, and uncorroborated metadata database.
- Database 106 may include metadata records from various sources that have been merged, such as commercial metadata, corroborated user-entered metadata, non-corroborated metadata, and the like.
- Each record 1101 includes a tier designation 1102 indicating its credibility level.
- Tier designation 1102 can take any form, such as for example a numeric indicator of credibility level. Metadata credibility is thus tracked on a record-by-record basis.
- server 105 tries to obtain the metadata using higher-tiered records before resorting to lower-tiered records.
- FIGS. 10 and 11 are merely exemplary.
- one or more metadata databases 106 may be missing useful pieces of information.
- commercial database 106 B contains album titles 1202 , artist information 1203 , and song titles 1204 , but is missing TOC-based Disc IDs 1201 for at least some CDs.
- TOC data was not available for some CDs when commercial database 106 B was first created.
- server 105 is not able to locate a matching record in commercial database 106 B using information derived from the TOC of CD 101 .
- the present invention provides several techniques for addressing this problem.
- One technique is to look for the desired metadata and TOC-based Disc ID another database, such as a user-entered database 106 A.
- a user-entered database 106 A Often, however, commercial database 106 B contains higher-quality metadata than does user-entered database 106 A (as shown in FIG. 12 , where database 106 A contains several typographical errors and misspellings).
- database 106 A entails a sacrifice in quality.
- the invention employs the technique illustrated by the example of FIG. 12 .
- server 105 Upon receiving a TOC-based query from client 104 , if commercial database 106 B yields no results, server 105 issues a first database query 1210 to user-entered database 106 A using the TOC-based Disc ID received from client 104 .
- first query results 1211 are received, data from those results 1211 such as album title and/or other unique data) are used to generate a second database query 1212 .
- Second database query 1212 may be based, for example, on album title and artist. Second database query 1212 is used to look up the higher-quality record in commercial database 106 B.
- Results 1213 are returned to server 105 , which can then provide the results to client 104 .
- the entire metadata record or significant portions thereof can be used as the second database query.
- the album title, artist, and the track list is used as query 1212 .
- Approximate string matching techniques are used in this query to ensure that each track in matching records matches at least approximately.
- the track lists for the album titled Abacab in database 106 A and 106 B would match.
- linking database 509 is also provided.
- Linking database 509 includes records that link items of information from different databases 106 . For example, once second query results 1213 are received by server 105 , server 105 creates a new record in database 509 including title and TOC data 1220 . Thus, in the future, server 105 can consult linking database 509 to more efficiently find missing pieces of information such as TOC data, without having to perform queries on multiple databases 106 A, 106 B, etc.
- FIG. 13 there is shown an example wherein commercial database 106 B is missing TOC-based Disc IDs 1201 , and wherein a user-entered album title 1301 is used to locate the desired record.
- client 104 prompts the user to enter album title information. Alternatively, the user could be asked to provide artist information, or to scan or type in the UPC from the album cover.
- server 105 constructs query 1302 .
- Running query 1302 on database 106 B yields query results 1303 that include metadata from the desired record. The metadata is then transmitted to client 104 .
- server 105 creates a record in linking database 509 , containing the title, or some other unique identifier of the record in database 106 B, and TOC data 1220 .
- server 105 can query linking database 509 with the TOC of CD 101 to look up the title of the album or other identifier, and then use the album title or identifier to find the desired record in database 106 B. This obviates the need for additional user input.
- server 105 has write privileges for database 106 B
- server 105 writes the missing information (such as the TOC-based Disc ID) in the appropriate record of database 106 B.
- server 105 creates a new record in an auxiliary database 106 C, copying the record from database 106 B and also adding missing information such as TOC-based Disc ID.
- future lookups for the CD can be performed on auxiliary database 106 C instead of on commercial database 106 B.
- database 106 (which can be commercial database 106 B or some other database) stores album titles 1202 , artists 1203 , and audio signatures 1504 .
- An audio signature 1504 is an identifier that can be derived from audio data such as a music file on a CD 101 .
- audio signatures 1504 for use by the present invention are derived from audio information using the music information retrieval techniques described in related U.S. patent application Ser. No. 10/167,807 for “Music Information Retrieval,” filed Jun. 11, 2002, the disclosure of which is incorporated herein by reference.
- audio signatures are derived from music files using any known technique of feature extraction or algorithmic processing on the digital files.
- database 106 is missing TOC-based Disc IDs 1201 for some records.
- One or more audio signature extracted from CD 101 is used to locate the desired record.
- client 104 automatically extracts an audio signature from CD 101 .
- server 105 constructs query 1502 .
- Running query 1502 on database 106 yields query results 1303 that include metadata from the desired record. The metadata is then transmitted to client 104 .
- server 105 creates a record in linking database 509 , containing the audio signature(s), TOC data 1220 , and album title or other unique identifier.
- server 105 can query linking database 509 with the TOC of CD 101 to look up the title of the album or other identifier, and then use the album title or other identifier to find the desired record in database 106 B. This obviates the need for additional audio signature generation or lookup.
- server 105 creates a record in linking database 509 , even when a TOC-based Disc ID is present in database 106 B.
- database 509 contains a robust set of associations between audio signatures and TOC-based Disc IDs. Such association can be useful for future queries, or for increasing the level of confidence when there is some doubt as to the accuracy of a TOC-based Disc ID.
- an audio signature can map to more than one TOC-based Disc ID; for example, if an audio signature is associated with a song that appears on more than one CD (for example, on a studio release and then on a compilation album), records in linking database 509 may link the audio signature for the song with TOC-based Disc IDs for each of the CDs on which the song appears. Such additional links may be useful, for example to provide a user with a list of CDs that contain a particular song of interest.
- results of a query are ambiguous or uncertain
- the user can be prompted to indicate which of several results is the desired result or to confirm a correct result.
- the creation of an entry in the linking database may be dependent on the confirmation by one or more users that the association is correct.
- User-entered information and/or audio signatures can also be used to resolve any ambiguity resulting from variations in TOC data. It is known that TOC data can vary from one copy to another of a particular disc; these variations can result from slight differences among pressings of the disc, or from differences in CD drives reading the discs. In many cases, the above-described vector matching techniques are able to detect approximate matches and thereby select those metadata records that are most likely to be pertinent to the inserted CD. Once those close matches have been identified, it is useful to confirm that one (or more) of the close matches is in fact the appropriate record.
- client module 104 presents the closely matching metadata record(s) to the user and prompts the user to confirm which (if any) of the records is a correct match.
- Server 105 then creates a record in linking database 509 , to associate the TOC data of the inserted CD with the confirmed record(s) in database 106 .
- the TOC data derived from the inserted CD is referred to as a “TOC variant,” since it does not exactly match the TOC data originally associated with the metadata record.
- server 105 can determine, from linking database 509 , which record(s) in database 106 is pertinent, and retrieve the record(s) without having to confirm with the user.
- database 106 includes an indicator of a credibility level with respect to a metadata record; if more than one user corroborates the association of the TOC variant with the same metadata, the credibility level of the metadata record increases.
- server 105 compares metadata from the closely-matching records with user-entered CD information. If the user-entered CD information matches the metadata in a record, that record is considered to be confirmed. Server 105 then creates a record in linking database 509 , to associate the TOC data of the inserted CD with the confirmed record(s) in database 106 . Again, the TOC of the inserted CD is considered a TOC variant, and subsequently inserted CDs having the TOC variant can be recognized without additional confirmation.
- server 105 compares audio signatures from the closely-matching records with an audio signature obtained from the inserted CD. If the audio signature obtained from the inserted CD matches the audio signatures from a closely-matching record, that record is considered to be confirmed. Server 105 then creates a record in linking database 509 , to associate the TOC data of the inserted CD with the confirmed record(s) in database 106 . Again, the TOC of the inserted CD is considered a TOC variant, and subsequently inserted CDs having the TOC variant can be recognized without additional confirmation.
- server 105 instead of creating a record in linking database 509 , if server 105 has write privileges for database 106 , it can create one or more new records in database 106 to associate the TOC variant with the metadata from the matching metadata record(s). Alternatively, server 105 can create one or more such records in an auxiliary database 106 C to associate the TOC variant with the metadata from the matching metadata record(s). Alternatively, if server 105 has write privileges for database 106 , it can add the TOC variant to existing metadata record(s) in database 106 , so that server 105 can recognize the TOC variant without reference to any other databases.
- Linking database 509 contains mappings from TOC based Disc IDs that are used in database 106 A to record identifiers in the database 106 B.
- Server 105 uses database 509 us to find data in the database 106 B, given a Disc ID for database 106 A
- Disc ID for database 106 A
- Disc Match module 507 initially populates linking database 509 . It matches user-entered metadata with the metadata in commercial database 106 B to establish the mappings. Techniques for determining these matches are described in more detail below in connection with FIG. 8 .
- the present invention is backward compatible with existing populations of client software 102 .
- the improved client module 104 of the present invention is backward compatible with existing metadata servers 105 that do not include the improved functionality set forth herein.
- the dialog boxes described below are presented as part of a user interface of client module 104 .
- client module 104 displays 2115 the matches. For example, referring also to FIG. 20D , client module 104 presents dialog box 2020 to allow the user to select among the matches. Depending on the user's action 2116 , client module 104 proceeds to step 2107 , 2104 , or 2117 . The user can select a matching listing in field 2021 , and click Select button 2022 to proceed to step 2107 as described below. If none of the listings match, the user can click on Search button 2023 to go to step 2104 as described below, or the user can click on Cancel button 2024 to dismiss dialog box 2020 and indicate 2117 that no metadata is to be associated with the inserted CD.
- client module 104 proceeds to step 2104 to initiate an artist/title search, as described below.
- client module 104 proceeds to step 2107 as described below.
- server 105 provides detailed metadata for the selected record(s) and provides the user with an opportunity to confirm the displayed metadata.
- FIG. 20C there is shown a screen shot depicting an example of a dialog box 2010 for confirming CD information according to one embodiment of the present invention.
- Metadata for the selected record is displayed, including artist 2011 , album title 2012 , genre 2013 , and track listing 2014 .
- client module 104 posts a submission 2110 , including the TOC of the inserted CD and the Disc ID, to metadata server 105 .
- Metadata server 105 is then able to link the TOC with the new or existing metadata record, as described in more detail below in connection with FIG. 7 .
- Client module 104 then proceeds to use 2112 the edited metadata.
- Cancel button 2017 to dismiss dialog box 2010 and indicate 2117 that no metadata is to be associated with the inserted CD.
- Back button 2015 returns to previous screen 2000 .
- client module 104 communicates with server 105 using HTTP over the Internet.
- Requests for metadata are made using HTTP ‘GET’ requests to a uniform resource locator (URL) associated with server 105 .
- the request includes Disc ID information, such as a listing of track lengths and other unique identifying information.
- Disc ID information such as a listing of track lengths and other unique identifying information.
- Such information can be provided in any format.
- metadata requests can be implemented using any known techniques and formats without departing from the essential characteristics of the present invention.
- the relevant data is returned in the body of an HTML response.
- the first line of the body contains a code indicating the type of return. Return codes include:
- the response contains metadata designed to help the user choose the appropriate record when multiple items are returned.
- the attributes returned are of the format:
- ⁇ index> is a number that binds attributes belonging to the same record together.
- DINDEX The unique metadata record identifier (Disc ID) that should be used in a “read” request to return the full set of metadata
- DGENRE The genre associated with the album.
- DNUMBER The disc number if this is part of a multi-disc set
- DTOTAL The total number of discs if this is a multi-disc set.
- DARTID An identifier that can be used to retrieve the album art image using a different request.
- the header line consists of the code 210 , followed by the category and disc-ID that were passed to the read request. The following names are returned:
- DISCID The Id of the returned disc . . . . The same as the argument to the READ command.
- DALBUM The album name associated with the disc.
- DYEAR The year of the first release of the album.
- DGENRE The genre associated with the disc. Examples include: Avant Garde, Bluegrass, Blues, Cajun, Celtic, Children's, Classical, Comedy, Country, Easy Listening, Electronica, Environmental, Exercise, Folk, Gay, Gospel, Holiday, Jazz, Latin, Marches, Miscellaneous, New Age, Rap/R&B, Reggae, Rock/Pop, Sound Effects, Soundtrack, Spoken Word, Vocal, Women's, World
- TTITLE ⁇ N> The track title for track ⁇ N> where ⁇ N> is from 0 to the number of tracks on the disc ⁇ 1.
- TARTIST ⁇ N> (protocol 5 only)—The artist associated with track ⁇ N> where ⁇ N> is from 0 to the number of tracks on the disc ⁇ 1. Multiple artists are separated by “/”.
- Metadata submissions are processed via an HTTP POST.
- the posted data is in the same format as the read response.
- An example of a submission post is as follows:
- server 105 provides new services and functionality to next-generation clients while maintaining backward compatibility with existing clients. To achieve this, server 105 implements and responds to existing metadata request protocols, as well as a new protocol, described below, to support the enhanced features and metadata for next-generation clients.
- server 105 Upon receiving a metadata request, server 105 attempts to use metadata from commercial database 106 B when available. If database 106 B does not contain the requested metadata, server 105 uses user-entered metadata database 106 A as a fallback. For example, for new CDs that have not yet been entered in commercial database 106 B, or for promotional discs, imports, and bootleg CDs that may never find their way into commercial database 106 B, server 105 relies on user-entered database 106 A.
- server 105 When responding to future requests, server 105 provides the corrected metadata.
- server 105 matches metadata requests from client modules 104 with records in databases 106 A and 106 B, and further associates and links records in database 106 A with records in database 106 B. In this manner, server 105 is able to identify records in both databases that refer to the same CD. Server 105 uses information from linking database 509 to perform such associating and linking.
- the following are examples of methods and implementations for matching, associating, and linking metadata requests, database 106 A records, and database 106 B records. One skilled in the art will recognize that these techniques can be applied in any context where matching, associating, and linking of two or more database records are desired.
- FIG. 7 there is shown an improved server method for adding metadata information to a database, according to one embodiment of the present invention.
- the improved method of the present invention uses user submissions to create new Disc ID to Album ID mappings, so as to resolve ambiguities and to identify potential errors in the commercial metadata.
- server 105 performs the steps of the method of FIG. 7 when a user manually enters metadata. For example, if server 105 fails to find a matching record in database 106 A or 106 B in response to a metadata query, client software 102 may prompt the user to manually enter metadata. Client module 104 then transmits the metadata to server 105 , which then performs the steps of FIG. 7 .
- Metadata server 105 receives 701 metadata, typically via HTTP over an Internet connection. Server 105 assesses the type of submission 702 . If the submission represents a correction to existing metadata, in one embodiment server 105 submits 707 the corrections for editorial review (either manual, automated, or both). Based on the results of the editorial review, the correction is applied to the appropriate database 106 A or 106 B, or it is rejected. In one embodiment, if server 105 is not able to write to commercial database 106 B, the correction may be entered in user-entered database 106 A. Subsequently, whenever that metadata record is to be retrieved, the corrected metadata is retrieved from user-entered database 106 A, in lieu of or in addition to the commercial metadata from database 106 B.
- the invention pre-populates linking database 509 so that server 105 can use commercial data where available, but fall back on user-entered data when commercial data is unavailable or inaccurate. In this manner, the invention provides more accurate information while avoiding the need to rely on users to enter a large amount of data.
- the invention uses TOC data from a provider of commercial metadata, such as AMG.
- Disc match module 507 creates a vector for the TOC data provided by AMG, maps it to the associated album ID, and stores the mapping in database 509 so that server 105 can retrieve the corresponding record from database 106 B when needed.
- the invention uses a known collection of CDs to pre-populate database 509 .
- Disc match module 507 extracts TOC data from these CDs. If commercial database 106 B includes universal product code (UPC) numbers, the CD TOC data is mapped to the commercial database using UPCs on individual disc cases. In one embodiment, a barcode reader is used to speed up the process of inputting UPC numbers.
- UPC universal product code
- FIG. 8 there is shown an example of a method for creating mappings between TOC Based Disc IDs and CDs, as performed by disc match module 507 according to one embodiment of the present invention.
- the method is shown in the context of populating linking database 509 using a collection of CDs.
- One skilled in the art will recognize, however, that the method can be adapted to populate database 509 using data from other sources.
- the user inserts CD 101 into a drive.
- a component of client software 102 extracts 801 the TOC from the disc and forms 802 a vector as described above.
- a barcode reader (not shown) scans 803 the UPC barcode on the CD package. Alternatively, the user could be prompted to enter a title, code, or other information that uniquely identifies the CD. Alternatively, the system extracts audio signatures for one or more songs on the CD.
- Disc match module 507 uses the scanned UPC, or audio signatures, or other information, to retrieve an album ID or metadata from commercial database 106 B. Module 507 then generates 806 a record associating the vector with the retrieved album ID and/or metadata. The generated record is stored in database 509 .
- metadata server 105 is implemented as an application server that accepts requests delivered via HTTP, performs the metadata lookups, and returns the data via an HTTP response.
- metadata server 105 may be implemented as an instance of Tomcat, an application server available from the Apache Software Foundation of Forest Hill, Md. The Tomcat instance is extended with Java servlets to implement the functionality of the present invention.
- Metadata is organized into memory-mapped files 905 and indexes 907 .
- Each index 907 associates a vector with an offset into a memory-mapped metadata file 905 .
- the records in metadata file 905 contain the information needed to fulfill a query request.
- indexes 907 there are multiple indexes 907 , such as for example:
- server 105 when retrieving metadata according to the techniques described above in connection with FIG. 6 , server 105 attempts to find exact vector matches in each index 907 in a specific order (for example, first scanning commercial TOC vectors mapping to commercial metadata, then scanning user-submitted TOC vectors mapping to commercial metadata, then scanning user-submitted TOC vectors mapping to user-submitted metadata). Server 105 returns the metadata for the first exact match found.
- the scanning process involves calculating the vector distance between the query vector and each vector in the database. An optional performance optimization is to skip the vector difference calculation if the total disc length in seconds as reported in the TOC data does not match within a given configuration threshold. An optional performance optimization is to skip the vector difference calculation if the number of tracks reported in the TOC data does not match. An “exact” match is a match for which the vector difference is smaller than a predetermined threshold.
- User submissions 903 are sent to a submissions database 906 for processing by a submission processing module 904 according to the techniques of FIGS. 7 and 19 .
- Metadata indexes 907 are constructed when metadata server 105 starts up. They are updated periodically as data is appended to user-entered metadata database 106 A (based on new submissions). Multiple indexes 907 are created in order to define the search order of the metadata. The indexes are created, for example, by reading the contents of the commercial metadata database 106 B and user-entered metadata database 106 A. There may be multiple files for each of these sources corresponding to different commercial providers, different languages, or different levels of credibility for user-submitted data (corroborated and uncorroborated).
- a TOC index is created by reading the metadata files and creating a TOC vector for each TOC string that is encountered in the file, and associating it with the Disc ID of the associated record.
- the index can be created as a simple list of (TOC, Disc ID) object pairs.
- a scanning/retrieval operation is then performed, consisting of iterating through the list of TOCs in the index and performing a vector comparison with the query TOC. The scanning/retrieval operation returns the Disc IDs associated with the TOCs that compare most closely to the query.
- the second type of index is a text- or word-based index that is used for artist/title text-based searches.
- This is a standard text-based information retrieval (IR) index that is well known in the art of text searching applications.
- the index consists of data structures that map the words found in the artist and album titles in metadata database 106 to the Disc IDs with which they are associated.
- a title query on the index consists of finding those Disc IDs that are associated with the most words matching the queries.
- indexes can be built based on available linking data.
- an audio signature index could be built that maps the combination of audio signature and position from which the signature was taken to Disc IDs.
- the Disc ID is an 8-digit hexadecimal number that is mapped to the metadata for a record.
- the most significant bit or bits are used to segment the ID space for multiple data sources. For example, a Disc ID having a most significant bit value of 1 might correspond to a record from commercial database 106 B, while a record where the most significant bit value is 0 might correspond to a record from user-entered database 106 A.
- the Disc ID is opaque to client module 104 and server 105 ; the data source defines the Disc IDs, and client module 104 and server 105 use them with no knowledge of how they were generated.
- Metadata file format for metadata files 106 A and 106 B.
- Any file format may be used.
- Metadata files 106 A and 106 B consists of CD metadata records.
- the format of records in files 106 A and 106 B is compatible with the CDDB1 protocol response.
- the comment header present in the XMCD files is not present in these records except for an optional revision number.
- a line consisting of only a period ‘.’ is used to separate multiple records.
- the Disc ID used in the file is not the CDDB1 ID, but rather a unique ID derived for each metadata record in a data source such that the ID space does not overlap with any other data source.
- TTITLE7 Mamblues
- TARTIST7 Bernard “Pretty” Purdie / Cal Tjader
- TTRACKID8 8558088
- TTITLE9 Haw Right Now
- FIG. 16 there is shown a block diagram of a detailed system architecture according to one embodiment of the present invention.
- client module 104 issues metadata queries, and transmits metadata submissions, to metadata server 105 .
- FIG. 16 provides additional detail as to the processing of metadata submissions once they are received by server 105 , according to one embodiment.
- server 105 Upon receipt of a metadata submission, server 105 writes the submitted metadata to log file 1601 .
- Log data collector 1604 filters and collects the log information from log file 1601 , and periodically posts the data to log consolidator 1605 .
- log consolidator 1605 consolidates events that have been processed on different servers 105 . For example, consolidator 1605 accepts events from multiple log data collector 1604 instances, orders the events by user and time, and passes the events to corroborator 1603 in a convenient form.
- Log consolidator 1605 transmits consolidated data to corroborator 1603 , which determines whether submitted metadata has been corroborated by two or more independent sources.
- Corroborator 1603 publishes corroborated information to user-entered database 106 A. If discrepancies are detected between submissions from two or more sources, corroborator 1603 identifies the discrepancies and, in one embodiment, provides a list of discrepancies to Quality Assurance (QA) tool 1606 , for presentation to an administrator.
- QA Quality Assurance
- two or more user-entered databases 106 A are provided: one for uncorroborated metadata, and one for corroborated metadata.
- one database 106 A is provided, and records are flagged to indicate whether the metadata they contain is corroborated or uncorroborated.
- server 105 favors corroborated metadata over uncorroborated metadata, so as to provide to client module 104 metadata of the highest possible level of credibility.
- Quality Assurance Tool 1606 is available to allow administrators to manually inspect and modify submission information that has been flagged for special attention.
- QA tool 1606 may provide, for example, a user interface that allows an editor to view submissions that conflict with previously stored metadata, or to examine other submissions that are flagged for manual review.
- the user interface of QA tool 1606 provides administrator controls for ignoring/deleting submissions, applying submissions to correct previously stored data, or defer action pending additional information.
- the user interface may also provide the administrator with the means to provide comments as appropriate.
- Databuild module 1607 keeps the commercial database 106 B in sync with user-entered database 106 A. Databuild module 1607 processes updates to databases 106 , and produces new metadata records for databases 106 . Providers of commercial sources of data are constantly updating their data with new and corrected entries. The format of a commercial database may vary from one commercial source to another. Databuild module 1607 processes these updates in the vendor-specific formats. In one embodiment, databuild module 1607 consolidates the data from multiple feeds such that data for the same artist or album is indexed by a single, unique identifier regardless of which source provided the data. Databuild module 1607 also republishes the commercial data in the format described above for database 106 B, that is suited for use by metadata server 105 .
- Databuild module 1607 eliminates redundant entries from the user entered database 106 A. Databuild module 1607 also merges approved corrections into databases 106 , in accordance with the methods described below in connection with FIG. 19 .
- Log data collector 1604 , log consolidator 1605 , corroborator 1603 , QA tool 1606 , and databuild module 1607 may be implemented, for example, as software components of metadata ASP 103 .
- FIGS. 17A , 17 B, and 17 C there are shown diagrams depicting the software structure of one embodiment of server 105 in more detail.
- FIG. 17A there is shown the software objects in one embodiment of server 105 , specifically an embodiment based on a Java servlet environment such as the Apache Tomcat environment.
- HttpServlet object 1701 accepts HTTP requests through the Tomcat or other servlet environment. This object is extended to handle the specific protocols described above.
- CDIIndex object 1702 manages the various types of metadata indexes 907 .
- TocDB 1705 implements a TOC-based metadata index.
- Index 1706 implements a title (word) based index.
- CDIIndex 1702 uses an add( )method to add new entries to the indexes (as it does on startup when it reads the metadata databases). CDIIndex 1702 uses find( ) to query the indexes using TOC or words as appropriates for the type of index.
- CDIDataStore 1703 encapsulates metadata databases 106 A and 106 B. Underlying this encapsulation is MappedByteBuffer object 1704 which provides access to the memory-mapped file implementation of databases 106 .
- FIGS. 17B and 17C there are shown the class inheritance relationships used in one embodiment of server 105 .
- the various types of requests handled by server 105 are encapsulated by objects 1713 , 1714 , and 1715 in FIG. 17B .
- the various types of responses generated by server 105 are encapsulated by objects 1721 , 1722 , 1723 , and 1724 in FIG. 17C .
- Server 105 produces log file 1801 from incoming submissions.
- server 105 runs on different machines.
- Each machine running a server 105 has a daemon program called snarfd 1802 which reads a log file as it is written and transmits the data over a network connection 1803 to Corroborator Server 1804 , which stores the data 1809 .
- Corroborator Server 1804 also maintains system monitoring statistics referred to as Cricket data 1810 .
- Cricket is an OpenSource software package for monitoring and graphing.
- a daemon process in.snarfcricket 1811 reads the Cricket data periodically and posts the data to Cricket server 1812 which runs Cricket 1814 and maintains graphs 1813 of the system status.
- Server 105 receives 401 a submission request from client 102 .
- Server 105 may perform 402 Quality Assurance on the submission, in order to check for completeness, spelling, case usage, and the like. If the submission passes QA 403 , the new information is stored 405 in database 106 . submissions that do not pass the QA process are discarded 404 .
- FIG. 19 there is shown a flowchart depicting a method of handling metadata submission according to another embodiment of the present invention.
- the steps of FIG. 19 are performed by corroborator 1603 ; in another embodiment, they are performed by server 105 or some other component of the system.
- the steps of FIG. 19 are performed automatically when the user enters metadata for an inserted CD.
- the steps are performed in a batch mode, after a number of submissions have been collected in log 1601 and are ready for processing.
- provisional is used to indicate a database record that has not been corroborated
- live is used to indicate a database record that has been corroborated or is part of a commercial database.
- the system of the invention performs searches on databases 106 , to find 1901 matches both by TOC-based Disc ID for the inserted CD and by text on the user-entered information.
- a text search in this case, compares the text comprising the metadata of a submission to existing entries in the databases 106 . Specifically, the comparison seeks to determine if the submission contains the same track list, independent of punctuation, capitalization, or other insignificant differences. Users can submit information in a variety of ways, whether or not they entered the data or changed it. Small changes in punctuation or capitalization are ignored. Exact matches and approximate matches are identified, and the steps of FIG. 19 are performed for each.
- the system ignores 1904 the submission as redundant. The system then proceeds 1905 to the next hit (if any).
- the system marks 1907 the submission for manual review via QA tool 1606 .
- the system then proceeds 1905 to the next hit (if any).
- the system upgrades 1910 the provisional record to live (corroborated) status. The system then proceeds 1905 to the next hit (if any).
- a submission includes only a TOC and a matching Disc ID. This is a TOC variant submission and occurs, for example, when the user accepts the result of a text search 2010 , as described above in connection with FIG. 21 .
- TOC variant submissions occur whenever a lookup succeeds (i.e., is accepted by the end user) and the lookup was a result of inexact TOC match or a non-TOC based metadata index 907 .
- the system creates 1913 a new provisional record including the user-submitted metadata of the live record.
- the system then proceeds 1905 to the next hit (if any).
- databases 106 are not updated in real time. Rather, all updates are performed on in-memory structures within consolidator 1605 (or other component), and databases 106 are periodically updated from the in-memory data.
- provisional (uncorroborated) records are not promoted to live (corroborated) status until some degree of credibility for the record has been established. This may entail receiving some predetermined number of matching submissions, or some type of additional verification.
- some users may be deemed more credible than others, based on historical accuracy and number of submissions or on other factors; a corroboration “score” may be developed for each provisional record, based on the number of corroborating submissions and/or the relative credibility of the users that provided the submissions. Score can depend on various factors, for example: whether the provisional and corroborating submissions were submitted by different users; whether the provisional and corroborating submissions came from different network (e.g. IP) addresses; whether the submissions came from users that have abused the system in the past.
- IP network
- Records may be promoted to live status when their score exceeds a threshold.
- the number of corroborating submissions necessary for promotion can be predetermined, or can be varied based on, for example, whether the submission conflicts with an existing popular entry in the database.
- Server 105 searches for and retrieves matching records in databases 106 A and 106 B.
- Client software 102 then prompts the user to confirm whether or not the retrieved records are the correct records.
- an association can be made between a TOC that was previously associated with the matching records in database 106 A and 106 B, and the user-entered information.
- Subsequent TOC searches would then return the metadata for the album directly.
- the user-entered information must be corroborated before it is made available as live metadata.
- Audio signatures for CD tracks can be associated with the album metadata in databases 106 A and 106 B.
- Server 105 can make such associations any time metadata and TOC data are or become known but audio signatures are not known in the central database.
- the audio signatures for the tracks in the search can be added to album metadata. If an album and artist name search is used to associate TOC data with metadata, then the audio signatures can be associated at the same time.
- FIG. 22 there is shown a block diagram of system operation in connection with audio signatures, according to one embodiment of the invention.
- Client module 104 issues CD lookup queries to the metadata server 105 .
- Metadata server 105 looks for query results, and in the case of a match, communicates the set of tracks available for ASi reference signature collection to ASi Inventory Manager 2202 .
- ASi Inventory Manager 2202 responds with zero, one, or more tracks for which reference signatures should be collected.
- Metadata server 105 annotates the response with an indicator to client module 104 of the track(s) for which signatures should be collected.
- Client module 104 collects the requested signatures, for example during a rip operation, and logs them, for example, using a Quality of Service (QoS) logging subsystem 2200 .
- QoS logging subsystem 2200 uploads the collected signatures to sink 2203 .
- Sink 2203 receives and stores uploaded log files 2204 .
- QoS Quality of Service
- ASi Corroborator 2205 processes logs as they are received.
- ASi Corroborator 2205 classifies the received data as either provisional or corroborated and stores the data in the appropriate database 2206 or 2207 .
- ASi Corroborator 2205 also notifies ASi Inventory Manager 2202 that a signature was received.
- ASi Inventory Manager 2202 updates its inventory of received signatures.
- ASi Analyst 2208 analyzes the collected signatures.
- ASi Analyst 2208 transforms the reference signatures from databases 2206 and 2207 into a format suitable for doing ASi retrieval, and stores the result in database 2209 .
- an audio signature may be passed as part of the request.
- Server 105 passes the signature to ASi Retrieval server 2210 to find matching tracks for the signature in database 2209 .
- Server 105 consolidates the results and returns them to client module 104 .
- results from the TOC search can be disambiguated using the audio signatures as they are associated with albums.
- tracks with non-standard tagging are encountered, if they can be identified using an audio signature, then the non-standard tags can be recorded and associated with the album. Subsequently, when data is acquired by other means when only the non-standard tag is available and the audio signature is not available, the track can still be identified accurately. In one embodiment, this association between tracks is done by semi-automated means. In some instances, only artist and track names may be available (as in the file names for tracks distributed by peer-to-peer services). If, however, a track with identical tags has previously been identified using audio signatures, then the presence of identical tags can be taken as strong evidence about the identity of the track. The result is that the current semi-automated track tag equivalencing process can be fully automated. This makes the input data for recommendation engines much more useful because the data can be referenced back to rich data sources which associate primary artists, other performers, albums, and tracks.
- the present invention also relates to an apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof.
- the particular architectures depicted above are merely exemplary of one implementation of the present invention.
- the functional elements and method steps described above are provided as illustrative examples of one technique for implementing the invention; one skilled in the art will recognize that many other implementations are possible without departing from the present invention as recited in the claims.
- the particular capitalization or naming of the modules, protocols, features, attributes, or any other aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names or formats.
- the present invention may be implemented as a method, process, user interface, computer program product, system, apparatus, or any combination thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
Abstract
Improved techniques for enhancing, associating, and linking various sources of metadata for music files, to allow integration of commercially generated metadata with user-entered metadata, and to ensure that metadata provided to the user is of the highest quality and accuracy available, even when the metadata comes from disparate sources having different levels of credibility. The invention further provides improved techniques for identifying approximate matches when querying metadata databases, and also provides improved techniques for accepting user submissions of metadata, for categorizing user submissions according to relative credibility, and for integrating user submissions with existing metadata.
Description
- The present application claims priority from U.S. Provisional Patent Application Ser. No. 60/369,890 for “Associating and Linking Album Tags, Table of Contents Data, and Other Compact Disc Data,” filed Apr. 3, 2002, the disclosure of which is incorporated herein by reference.
- The present application is related to U.S. patent application Ser. No. 10/167,807 for “Music Information Retrieval,” filed Jun. 11, 2002, the disclosure of which is incorporated herein by reference.
- 1. Field of the Invention
- The present invention relates generally to playing, copying, and managing music files, such as those found on compact discs (CDs), and more particularly to techniques for retrieving, associating, and linking various sources of metadata for the music files.
- 2. Description of the Background Art
- Most audio CDs contain only digital music and a table of contents that tells the player how many tracks are present, the length of each track, and where on the disc each track starts. In general, audio CDs do not carry “metadata” such as the title of the album, the artist that recorded it, and the names of the songs or tracks contained on it.
- Metadata is of value when playing, copying, and managing music files. Metadata includes descriptive information about music tracks and albums, so as to allow users to more easily identify files. For example, if a song title is available as metadata, an audio CD player can look up additional information from a web server, and can display artist name, album title, and song title while a track is being played. The user can view the contents of the CD by track name and select the tracks by name for random access playback. If a user makes a copy of a music file from a CD (a process known as “ripping”), or downloads a music file from an online source, metadata can be used as a default filename. Metadata is also useful in organizing and categorizing a collection of files, for example by artist name or musical genre; metadata can also be used as an identifier for gaining access to additional information about a song, artist, or CD.
- Existing music players and CD management (“ripper”) software applications that make use of available metadata include, for example:
-
- Real Jukebox, available and CD from RealNetworks, Inc. of Seattle, Wash.;
- Winamp, available from Nullsoft, Inc., a division of America Online, Inc., of Dulles, Va.;
- Easy CD Creator 5, available from Roxio, Inc. of Santa Clara, Calif.;
- KDE CD Player for Linux; and
- Toast, available from Roxio, Inc. of Santa Clara, Calif.
- Conventionally, since CDs themselves do not generally carry metadata, some music client software applications (including players and CD management software) obtain metadata from external sources. For example, in some software applications users enter metadata manually, and the entered metadata is then associated with some unique characteristics of a CD (such as track lengths), so that the entered metadata can later be accessed whenever the CD is re-inserted in the user's computer. Alternatively, the client software can obtain metadata from a central server that is run by an application service provider (ASP). Such functionality is provided, for example, by CDDB, available from Gracenote of Berkeley, Calif., or by FreeDB, available at “http://www.freedb.org”. The Windows Media Player client, available from Microsoft Corporation of Redmond, Wash., also communicates with a CD Metadata ASP to obtain metadata.
-
FIG. 1 depicts a system for obtaining metadata from a remote server according to the prior art. An end user of client software 102 (such as a music player or ripper application) insertsCD 101 in a connected CD drive (not shown).Client software 102 requests thatmetadata client module 104 identifyCD 101 and return the metadata for use bysoftware 102.Client module 104 may derive a Disc ID from available information fromCD 101, such as table of contents (TOC).Module 104 then sends the Disc ID over a network connection to a remote metadata ASP 103. The request is typically sent over the Internet using Hypertext Transfer Protocol (HTTP) as a transmission protocol.Metadata server 105 receives the request and runs a query onmetadata database 106 to find a metadata record that matches the Disc ID.Database 106 provides the metadata, which is then transmitted back tomodule 104.Module 104 makes the data available tosoftware 102. - Existing systems such as CDDB and FreeDB create the metadata database from input provided by users of the system. If, when a CD is inserted, no matching metadata is found,
software 102 prompts the user to enter the metadata manually. The user-entered metadata is then transmitted back to Metadata ASP 103 and is added todatabase 106 and associated with a new disc identifier for the inserted CD. -
FIG. 2 depicts this method in more detail, as generally performed bymetadata client 104 according to the prior art.Client 104extracts 201 Disc IDs from the CD TOC data.Client 104 then transmits 202 the Disc IDs tometadata server 105. Ifserver 105 indicates 203 that matching metadata was found indatabase 106, the metadata is made available 206 toclient software 102. Ifserver 105 indicates 203 that no match was found,client 104 prompts theuser 202 to enter the missing metadata. Once the user has provided the metadata,client 104 transmits 205 the metadata toserver 105, which saves the metadata indatabase 106. The metadata is made available 206 toclient software 102. -
FIG. 3 depicts a server method of obtaining metadata according to the prior art.Server 105 receives arequest 301 for metadata fromclient 104 over HTTP or some other protocol.Server 105 looks up 302 the Disc ID inmetadata database 106. If a match exists 303,server 105 returns 304 the metadata for the match toclient 104, along with status indicating amatch 304. Otherwise,server 105 returns a status code indicating that no matches were found. - Existing systems do not provide a mechanism for linking metadata from two or more sources. Thus, if metadata is available from some external source, such as a commercially developed third-party database of music information, existing systems are not generally able to integrate such external metadata with the above-described scheme. In general, then, prior art metadata systems do not take advantage of the availability of more accurate and/or more complete information that may be available from a variety of sources. Furthermore, existing systems do not provide a mechanism for establishing links between metadata records in disparate databases, nor do they allow for management of various data sources having different levels of credibility.
- The present invention includes techniques for enhancing, associating, and linking various sources of metadata for music files, thus allowing integration of commercially generated metadata with user-entered metadata. The invention provides mechanisms for ensuring that metadata provided to the user is of the highest quality and accuracy available, even when the metadata comes from disparate sources having different levels of credibility. Using the techniques of the invention, redundancies among various data sources can be resolved, and inaccuracies can be corrected. The invention therefore enriches the set of album metadata that is available to the ripping and playback features when interacting with an audio CD.
- In one embodiment, as described below, the invention utilizes professional quality metadata from a commercial database when such data is available. If such metadata is not available, the invention falls back on user-entered data. As described in more detail below, the invention generates and maintains a linking database allowing records from two or more metadata databases to be linked. The linking database also stores learned relationships among records from disparate databases, so that future queries can be serviced from the data source having the highest degree of credibility.
- In one embodiment, the present invention provides improved techniques for identifying approximate matches, when querying metadata databases. In this manner, the present invention is able to detect matches even in the presence of slight variations in TOC data or other identifying data.
- The present invention further provides improved techniques for accepting user submissions of metadata, for categorizing user submissions according to relative credibility, and for integrating user submissions with existing metadata.
-
FIG. 1 is a block diagram depicting a system for obtaining metadata from a remote server according to the prior art. -
FIG. 2 is a flowchart depicting a client method for obtaining metadata from a remote server according to the prior art. -
FIG. 3 is a flowchart depicting a server method for looking up metadata according to the prior art. -
FIG. 4 is a flowchart depicting a server method for adding metadata information to a database, according to one embodiment of the present invention. -
FIG. 5 is a block diagram depicting an improved system for linking and associating metadata from two or more sources, according to one embodiment of the present invention. -
FIG. 6 is a flowchart depicting an improved server method for vector matching according to one embodiment of the present invention. -
FIG. 7 is a flowchart depicting an improved server method for adding metadata information to a database, according to one embodiment of the present invention. -
FIG. 8 is a flowchart depicting a method for creating mappings between Disc IDs and CDs, according to one embodiment of the present invention. -
FIG. 9 is a block diagram depicting a metadata server according to one embodiment of the present invention. -
FIG. 10 is a block diagram depicting an implementation of the present invention in which several separate metadata databases are provided. -
FIG. 11 is a block diagram depicting an implementation of the present invention in which a single database contains metadata records having different levels of credibility. -
FIG. 12 is a block diagram depicting an example of a database lookup technique of the present invention, wherein at least one database is missing some information. -
FIG. 13 is a block diagram depicting a second example of a database lookup technique of the present invention, wherein at least one database is missing some information. -
FIG. 14 is a block diagram depicting a third example of a database lookup technique of the present invention, wherein at least one database is missing some information. -
FIG. 15 is a block diagram depicting a fourth example of a database lookup technique of the present invention, wherein at least one database is missing some information, and wherein an audio signature is used to formulate a query. -
FIG. 16 is a block diagram depicting a detailed system architecture according to one embodiment of the present invention. -
FIGS. 17A , 17B, and 17C are diagrams depicting the software structure of a metadata server according to one embodiment of the present invention. -
FIG. 18 is a block diagram depicting the operation of a log consolidator according to one embodiment of the present invention. -
FIG. 19 is a flowchart depicting a method of handling metadata submission according to one embodiment of the present invention. -
FIGS. 20A and 20B are screen shots showing examples of dialog boxes for an advanced search function according to one embodiment of the present invention. -
FIG. 20C is a screen shot showing an example of a dialog box for confirming CD information according to one embodiment of the present invention. -
FIG. 20D is a screen shot showing an example of a dialog box for presenting possible matches according to one embodiment of the present invention. -
FIG. 21 is a flowchart depicting details of a method of handling metadata submission according to one embodiment of the present invention. -
FIG. 22 is a block diagram of system operation in connection audio signatures, according to one embodiment of the invention. - The following description of system components and operation is merely exemplary of embodiments of the present invention. One skilled in the art will recognize that the various designs, implementations, and techniques described herein may be used alone or in any combination, and that many modifications and equivalent arrangements can be used. Accordingly, the following description is presented for purposes of illustration, and is not intended to limit the invention to the precise forms disclosed.
- In particular, in the following description, the present invention is set forth in the context of a client software application, running on a personal computer, for playing music from a CD. The client software application communicates with a server over a network, using established network protocols. One skilled in the art will recognize, however, that the present invention can be implemented in other environments and contexts. For example, the invention may be implemented in a CD player, consumer electronics product, personal digital assistant (PDA), cell phone, or other device. The invention may be implemented independently of playback of a CD. Furthermore, the invention is not limited to operation with CD-based music; the metadata that is retrieved, processed, and updated by the present invention can be descriptive of music, audio, video, multimedia, or any other type of data, and it can be stored on or retrieved from any medium, including without limitation tapes, discs, mini-discs, hard drives, servers, digital versatile discs (DVDs), and the like.
- In one embodiment, the system of the present invention utilizes professional quality metadata from a commercial database when such data is available. If such metadata is not available, the invention falls back on user-entered data. In alternative embodiments, any number of databases or metadata sources are made available according to a hierarchical scheme. The retrieval techniques of the present invention select appropriate sources for metadata according to relative credibility, availability, and completeness of each source. Furthermore, in one embodiment, the present invention provides mechanisms for linking records in disparate metadata sources, so that the sources can be integrated to provide more complete data in an efficient manner.
- In one embodiment, the invention matches TOC-based queries to entries in a
metadata database 106 using fixed-dimension vectors containing track length information. Referring now toFIG. 6 , there is shown a method for vector matching according to one embodiment of the present invention. Exact and/or approximate matching techniques may be used. Exact matching techniques find identical vectors. Approximate matching techniques determine differences between vectors, employing cosine matching (measuring the angle between vectors), difference matching (measuring the magnitude of the difference between vectors), or the like to determine which vectors are most closely aligned with one another. - The system of the invention formulates a vector based on information that can be read from the CD. For example, in one embodiment,
client software 102 reads TOC data from the CD, andclient module 104 formulates a vector from the track lengths derived from the TOC data. In another embodiment,client module 104 transmits the TOC data toserver 105, which then formulates the vector. - Once
metadata request 601 is received, the system of the invention creates 602 a vector using information fromrequest 601 such as TOC data. The vector is formulated, for example, by calculating the length of each track in frames. This may be done by subtracting the start offset of the track from the start offset of the following track. For example, in the following excerpt from a TOC-based query, where the first number denotes the number of tracks or segments on the media and the subsequent numbers represent the starting offsets (in media units) of each track or segment: - 16+22+150+25046+40960+55582+74952+90015+114823+131009+142311+157817+173768+196309+217677+231408+240533+252548+260 507+274838+292015+305962+322830+339361+4752,
- the lengths are 24896, 15914, 14622, 19370, 15063, 24808, 16186, 11302, 15506, 15951, 22541, 21368, 13731, 9125, 12015, 7959, 14331, 17177, 13947, 16868, and 16531.
- In one embodiment, the determined lengths are formed into a fixed-dimension vector, such as for example a 16-dimensional vector. Thus, if the disc has more than 16 tracks, any extra track lengths are discarded; if the disc has fewer than 16 tracks, the track lengths are repeated starting at the first length to fill the remaining positions in the vector. The vector for the above query would thus be: [24896 15914 14622 19370 15063 24808 16186 11302 15506 15951 22541 21368 13731 9125 12015 7959]
- Had the disc only 10 tracks, the 1st through 6th lengths would be repeated in positions 11-16: [24896 15914 14622 19370 15063 24808 16186 11302 15506 15951 24896 15914 14622 19370 15063 24808]
- One skilled in the art will recognize that variable-dimension vectors could also be used.
- Once the system has created 602 a vector, it determines 603 whether any records in
database 106 are associated with Disc IDs that exactly match the determined vector. In one embodiment, the system makesdetermination 603 using a hash table that maps the TOC vector to the database records, according to hash table techniques that are well known in the art. In one embodiment, if any matches are found, the system returns 604 the matching Disc IDs. For example,server 105 may transmit the matching Disc IDs toclient module 104. In another embodiment,server 105 retrieves metadata associated with the matching Disc IDs, and returns the metadata itself toclient module 104. - If, in 603, no exact match is found, the system looks for approximate matches. In one embodiment, the system performs 606 dot product operations (or some other technique of approximate matching) on the determined vector, comparing it with vectors for Disc IDs in
database 106. If the results of any dot product operations exceed apredetermined threshold 607, the system returns 608 the matching Disc IDs. For example,server 105 may transmit the matching Disc IDs toclient module 104. In another embodiment, if the results of any dot product operations exceed thethreshold 607,server 105 retrieves metadata associated with the matching Disc IDs, and returns the metadata itself toclient module 104. - If no dot product results exceed the threshold, the system returns 610 a “not found” message. In one embodiment, in such an event,
client module 104 requests the metadata from another source, and/or prompts the user to enter the metadata manually. - In one embodiment, once the method of
FIG. 6 returns one or more Disc IDs instep client module 104.Client module 104 then issues one or more “Read” requests to obtain the metadata for the Disc ID(s) it received. The requests may be transmitted to thesame metadata server 105 or to some other server (not shown). Accordingly, in one embodiment,server 105 looks up Disc IDs but does not serve metadata itself; that task is left to other servers. In an alternative embodiment,server 105 looks up Disc IDs and also serves metadata toclient modules 104. In yet another embodiment,server 105 serves metadata in response to themetadata request 601, without performing the intermediary step of returning Disc IDs. - The following are examples of some techniques of approximate matching that can be used in connection with the present invention, for example in
step 606 ofFIG. 6 . - A cosine or dot-product match is used to find vectors that are similar but not identical.
- Given vectors A and B
-
A·B=|A∥B|cos θ - Where θ is the angle between A and B. When A and B are normalized to unit vectors, the dot product produces the cosine of the angle between them, which is 1.0 for identical vectors, near 1.0 for similar vectors, and near 0.0 for vectors which are not similar.
- A cosine match is implemented by forming the vector for the TOC data in a query, normalizing it to unit length, and performing pairwise dot products with all normalized TOC vectors in the database. The maximum dot product indicates the greatest degree of similarity.
- A difference match is typically computed on un-normalized vectors. The difference match is computed as:
-
Σ(Ai−Bi)̂2 -
or -
Σ|Ai−Bi| - Where Ai represents the ith element of vector A, and Bi represents the ith component of vector B and the summation occurs over all dimensions of the vector (i=0 to n−1) for n-dimensional vectors.
- An optimization to vector matching is to perform approximate matching on only the most popular CDs first. If a cosine score above a predetermined threshold is obtained, a match is likely and the results can be returned. Otherwise, vector comparisons are performed against the balance of the database.
- Another optimization to vector matching is to retrieve the TOC vectors for all discs that have similar total lengths. This constrains the number of vector comparisons that must be performed to produce a match.
- In one embodiment, the present invention provides mechanisms for accessing, integrating, and resolving metadata from two or more sources. For example, metadata may be available from a commercial source, such as for example All Media Guide (AMG) of Ann Arbor, Mich., as well as from a database containing user-entered information. The commercial source may be deemed more reliable than the user-entered database. Thus, in one embodiment, the system retrieves metadata from the commercial source when available, but falls back on the user-entered database when the commercial source is not able to provide the requested metadata.
- Any number of data sources may be integrated in this manner. Tiers of relative credibility can be established, so that the system favors those sources that have higher credibility, and only uses lower-credibility sources when the metadata is not available elsewhere. For example, some metadata databases include metadata that has been translated from one language to another. In general, translated metadata is deemed less credible than metadata that is in its original language. Thus, the system of the present invention can be configured to favor non-translated metadata over translated metadata.
- As another example, when user-entered metadata has been corroborated by two or more independent sources (for example, if two or more users have entered matching metadata), it is deemed more credible than user-entered metadata that has not been corroborated.
- Referring now to
FIG. 10 , there is shown an example of an implementation of the present invention in which severalseparate metadata databases 106 are provided. Eachdatabase 106 is associated with a tier designation that denotes the relative credibility of the metadata therein. Whenclient 104 requests metadata,server 105accesses databases 106 in a tiered manner according to the techniques set forth below. For example,metadata databases 106 may include a commercial metadata database, corroborated metadata database, and uncorroborated metadata database. - Referring now to
FIG. 11 , there is shown another embodiment, wherein asingle database 106 containsmetadata records 1101 having different levels of credibility.Database 106 may include metadata records from various sources that have been merged, such as commercial metadata, corroborated user-entered metadata, non-corroborated metadata, and the like. Eachrecord 1101 includes atier designation 1102 indicating its credibility level.Tier designation 1102 can take any form, such as for example a numeric indicator of credibility level. Metadata credibility is thus tracked on a record-by-record basis. Whenclient 104 requests metadata,server 105 tries to obtain the metadata using higher-tiered records before resorting to lower-tiered records. - One skilled in the art will recognize that the invention can be practiced using any of a number of different types of physical and logical database configurations and architectures, and that the depictions of
FIGS. 10 and 11 are merely exemplary. - In some situations, one or
more metadata databases 106 may be missing useful pieces of information. For example, referring now toFIG. 12 , there is shown an example whereincommercial database 106B containsalbum titles 1202,artist information 1203, andsong titles 1204, but is missing TOC-basedDisc IDs 1201 for at least some CDs. Such omissions may occur, for example, if TOC data was not available for some CDs whencommercial database 106B was first created. Thus, when a user insertsCD 101,server 105 is not able to locate a matching record incommercial database 106B using information derived from the TOC ofCD 101. - The present invention provides several techniques for addressing this problem. One technique is to look for the desired metadata and TOC-based Disc ID another database, such as a user-entered
database 106A. Often, however,commercial database 106B contains higher-quality metadata than does user-entereddatabase 106A (as shown inFIG. 12 , wheredatabase 106A contains several typographical errors and misspellings). Thus, usingdatabase 106A entails a sacrifice in quality. - In one embodiment, therefore, the invention employs the technique illustrated by the example of
FIG. 12 . Upon receiving a TOC-based query fromclient 104, ifcommercial database 106B yields no results,server 105 issues afirst database query 1210 to user-entereddatabase 106A using the TOC-based Disc ID received fromclient 104. Once thefirst query results 1211 are received, data from thoseresults 1211 such as album title and/or other unique data) are used to generate asecond database query 1212.Second database query 1212 may be based, for example, on album title and artist.Second database query 1212 is used to look up the higher-quality record incommercial database 106B.Results 1213 are returned toserver 105, which can then provide the results toclient 104. In a variation on this embodiment, the entire metadata record or significant portions thereof can be used as the second database query. For example, the album title, artist, and the track list is used asquery 1212. Approximate string matching techniques are used in this query to ensure that each track in matching records matches at least approximately. Thus, for example, the track lists for the album titled Abacab indatabase - In one embodiment, linking
database 509 is also provided. Linkingdatabase 509 includes records that link items of information fromdifferent databases 106. For example, oncesecond query results 1213 are received byserver 105,server 105 creates a new record indatabase 509 including title andTOC data 1220. Thus, in the future,server 105 can consult linkingdatabase 509 to more efficiently find missing pieces of information such as TOC data, without having to perform queries onmultiple databases - Referring now to
FIG. 13 , there is shown an example whereincommercial database 106B is missing TOC-basedDisc IDs 1201, and wherein a user-entered album title 1301 is used to locate the desired record. In this example, when the TOC-based query yields no results,client 104 prompts the user to enter album title information. Alternatively, the user could be asked to provide artist information, or to scan or type in the UPC from the album cover. Based on the user-entered information,server 105constructs query 1302. Runningquery 1302 ondatabase 106B yields queryresults 1303 that include metadata from the desired record. The metadata is then transmitted toclient 104. - In one embodiment,
server 105 creates a record in linkingdatabase 509, containing the title, or some other unique identifier of the record indatabase 106B, andTOC data 1220. Thus, in the future, if thesame CD 101 is inserted,server 105 can query linkingdatabase 509 with the TOC ofCD 101 to look up the title of the album or other identifier, and then use the album title or identifier to find the desired record indatabase 106B. This obviates the need for additional user input. - In an alternative embodiment, wherein
server 105 has write privileges fordatabase 106B, oncequery results 1303 are retrieved,server 105 writes the missing information (such as the TOC-based Disc ID) in the appropriate record ofdatabase 106B. - In yet another embodiment, depicted in
FIG. 14 , oncequery results 1303 are retrieved,server 105 creates a new record in anauxiliary database 106C, copying the record fromdatabase 106B and also adding missing information such as TOC-based Disc ID. Thus, future lookups for the CD can be performed onauxiliary database 106C instead of oncommercial database 106B. - Referring now to
FIG. 15 , there is shown an example wherein database 106 (which can becommercial database 106B or some other database) storesalbum titles 1202,artists 1203, andaudio signatures 1504. Anaudio signature 1504 is an identifier that can be derived from audio data such as a music file on aCD 101. In one embodiment,audio signatures 1504 for use by the present invention are derived from audio information using the music information retrieval techniques described in related U.S. patent application Ser. No. 10/167,807 for “Music Information Retrieval,” filed Jun. 11, 2002, the disclosure of which is incorporated herein by reference. In another embodiment, audio signatures are derived from music files using any known technique of feature extraction or algorithmic processing on the digital files. One such technique, developed by Fraunhofer Institute IIS, Ilmenau, Germany, takes an average spectrum over some period of time and then derives spectral flatness measures in each of several bands. These spectral flatness measures are then quantized using a probabilistic quantizer into an 8-bit quantity. The result is a highly compressed representation of the original signal that has the property that alternative versions of the same signal will have similar signatures. Another audio signature technique is available in a product called TRM, available from Relatable, LLC of Alexandria, Va. - In the example of
FIG. 15 ,database 106 is missing TOC-basedDisc IDs 1201 for some records. One or more audio signature extracted fromCD 101 is used to locate the desired record. In this example, when the TOC-based query yields no results,client 104 automatically extracts an audio signature fromCD 101. Based on the audio signature(s),server 105 constructs query 1502. Running query 1502 ondatabase 106 yields queryresults 1303 that include metadata from the desired record. The metadata is then transmitted toclient 104. - In one embodiment,
server 105 creates a record in linkingdatabase 509, containing the audio signature(s),TOC data 1220, and album title or other unique identifier. Thus, in the future, if thesame CD 101 is inserted,server 105 can query linkingdatabase 509 with the TOC ofCD 101 to look up the title of the album or other identifier, and then use the album title or other identifier to find the desired record indatabase 106B. This obviates the need for additional audio signature generation or lookup. - In one embodiment,
server 105 creates a record in linkingdatabase 509, even when a TOC-based Disc ID is present indatabase 106B. Thus,database 509 contains a robust set of associations between audio signatures and TOC-based Disc IDs. Such association can be useful for future queries, or for increasing the level of confidence when there is some doubt as to the accuracy of a TOC-based Disc ID. In some cases, an audio signature can map to more than one TOC-based Disc ID; for example, if an audio signature is associated with a song that appears on more than one CD (for example, on a studio release and then on a compilation album), records in linkingdatabase 509 may link the audio signature for the song with TOC-based Disc IDs for each of the CDs on which the song appears. Such additional links may be useful, for example to provide a user with a list of CDs that contain a particular song of interest. - One skilled in the art will recognize that the above described techniques, and the block diagrams of
FIGS. 12-15 , depict the operation of the invention in terms of an example, and that such examples are not intended to limit the scope of the claims herein. In particular, although the above examples depictcommercial database 106B as missing TOC-based Disc IDs, the present invention can be applied to situations where other pieces of information are missing and/or incorrect. In addition, when TOC data is missing, other techniques for obtaining additional information may be used. For example, a scanner may read the UPC or other bar code from the CD packaging, or the user may provide some other piece of identifying information. In addition, when results of a query are ambiguous or uncertain, the user can be prompted to indicate which of several results is the desired result or to confirm a correct result. The creation of an entry in the linking database may be dependent on the confirmation by one or more users that the association is correct. One skilled in the art will recognize that additional variations are possible, without departing from the essential characteristics of the invention. - User-entered information and/or audio signatures can also be used to resolve any ambiguity resulting from variations in TOC data. It is known that TOC data can vary from one copy to another of a particular disc; these variations can result from slight differences among pressings of the disc, or from differences in CD drives reading the discs. In many cases, the above-described vector matching techniques are able to detect approximate matches and thereby select those metadata records that are most likely to be pertinent to the inserted CD. Once those close matches have been identified, it is useful to confirm that one (or more) of the close matches is in fact the appropriate record. In one embodiment, therefore, once a set of close matches in
database 106 have been found,client module 104 presents the closely matching metadata record(s) to the user and prompts the user to confirm which (if any) of the records is a correct match.Server 105 then creates a record in linkingdatabase 509, to associate the TOC data of the inserted CD with the confirmed record(s) indatabase 106. The TOC data derived from the inserted CD is referred to as a “TOC variant,” since it does not exactly match the TOC data originally associated with the metadata record. Subsequently, if the user (or another user) inserts a CD having the TOC variant,server 105 can determine, from linkingdatabase 509, which record(s) indatabase 106 is pertinent, and retrieve the record(s) without having to confirm with the user. In one embodiment,database 106 includes an indicator of a credibility level with respect to a metadata record; if more than one user corroborates the association of the TOC variant with the same metadata, the credibility level of the metadata record increases. - In an alternative embodiment, rather than prompting the user for confirmation,
server 105 compares metadata from the closely-matching records with user-entered CD information. If the user-entered CD information matches the metadata in a record, that record is considered to be confirmed.Server 105 then creates a record in linkingdatabase 509, to associate the TOC data of the inserted CD with the confirmed record(s) indatabase 106. Again, the TOC of the inserted CD is considered a TOC variant, and subsequently inserted CDs having the TOC variant can be recognized without additional confirmation. - In yet another embodiment,
server 105 compares audio signatures from the closely-matching records with an audio signature obtained from the inserted CD. If the audio signature obtained from the inserted CD matches the audio signatures from a closely-matching record, that record is considered to be confirmed.Server 105 then creates a record in linkingdatabase 509, to associate the TOC data of the inserted CD with the confirmed record(s) indatabase 106. Again, the TOC of the inserted CD is considered a TOC variant, and subsequently inserted CDs having the TOC variant can be recognized without additional confirmation. - In any of the above-described embodiments, instead of creating a record in linking
database 509, ifserver 105 has write privileges fordatabase 106, it can create one or more new records indatabase 106 to associate the TOC variant with the metadata from the matching metadata record(s). Alternatively,server 105 can create one or more such records in anauxiliary database 106C to associate the TOC variant with the metadata from the matching metadata record(s). Alternatively, ifserver 105 has write privileges fordatabase 106, it can add the TOC variant to existing metadata record(s) indatabase 106, so thatserver 105 can recognize the TOC variant without reference to any other databases. - Referring now to
FIG. 5 , there is shown a system for implementing the above-described techniques of linking and associating metadata from two or more sources, according to one embodiment of the present invention. In the exemplary system shown inFIG. 5 , the invention uses linkingdatabase 509 to link user-entered metadata stored indatabase 106A with commercial metadata stored indatabase 106B.Commercial metadata database 106B contains, for example, content that has been purchased or licensed from a source of music information, such as for example All Media Guide (AMG) of Ann Arbor, Mich. One skilled in the art will recognize that the techniques of the present invention can be applied to metadata derived from any source. - In one embodiment, the present invention is implemented using three major system components: client software 102 (including metadata client module 104);
metadata server 105; anddisc match module 507. In the following description,metadata server 105 handles incoming metadata submissions, such as user-entered metadata; however, in an alternative embodiment, a separate module (not shown) handles such submissions. - Linking
database 509 contains mappings from TOC based Disc IDs that are used indatabase 106A to record identifiers in thedatabase 106B.Server 105 usesdatabase 509 us to find data in thedatabase 106B, given a Disc ID fordatabase 106A The following in an example of a data format used to store the database in a file. In this example, records are separated by lines consisting of a single period (.). A TOC Identifier is found on lines beginning with “#0+” and a “DISCID=<some number>” denotes the record identifiers indatabase -
# 0+6+183+49120+78783+102020+167320+200438+227175+3029 DISCID=4050f0ea . #0+10+182+17072+36722+51550+70497+87785+113515+138755+155952+175835+198332+22 DISCID=00036b66 . -
Disc Match module 507 initially populates linkingdatabase 509. It matches user-entered metadata with the metadata incommercial database 106B to establish the mappings. Techniques for determining these matches are described in more detail below in connection withFIG. 8 . - In one embodiment,
client module 104 andserver 105 provide additional functionality to minimize the amount of data a user might need to enter for an unrecognized disc, as will be described in more detail below. For example, when theserver 105 indicates to theclient 104 that the disc is unrecognized, theclient module 104 prompts the user to enter the artist name and/or title of the disc. This information is sent back toserver 105, which uses it in a query against linkingdatabase 509. The results of this query are returned toclient 104, which displays them for the user. Should the user accept the results of the query, the disc TOC and the Disc ID are sent fromclient module 104 toserver 105.Disc Match module 507 creates a new association between the TOC and the Disc ID in linkingdatabase 509. -
Databases - In one embodiment, the present invention is backward compatible with existing populations of
client software 102. Furthermore, in one embodiment, theimproved client module 104 of the present invention is backward compatible with existingmetadata servers 105 that do not include the improved functionality set forth herein. In one embodiment, the dialog boxes described below are presented as part of a user interface ofclient module 104. - Referring now to
FIG. 21 , there is shown a flowchart depicting details of a method of handling metadata submission according to one embodiment of the present invention. Referring also toFIGS. 20A through 20D , there are shown screen shots of dialog boxes presented by the user interface ofclient module 104 in connection with the method ofFIG. 21 , according to one embodiment. - A user inserts a
CD 2101.Client module 104 queries 2202metadata server 105 to initiate a TOC-based search.Step 2103 determines whether multiple matches, a single match, or no matches are found. - If multiple close matches or multiple exact matches are found,
client module 104displays 2115 the matches. For example, referring also toFIG. 20D ,client module 104 presentsdialog box 2020 to allow the user to select among the matches. Depending on the user'saction 2116,client module 104 proceeds to step 2107, 2104, or 2117. The user can select a matching listing infield 2021, and clickSelect button 2022 to proceed to step 2107 as described below. If none of the listings match, the user can click onSearch button 2023 to go to step 2104 as described below, or the user can click on Cancelbutton 2024 to dismissdialog box 2020 and indicate 2117 that no metadata is to be associated with the inserted CD. - In one embodiment, if the TOC-based search yields no results,
client module 104 proceeds to step 2104 to initiate an artist/title search, as described below. - In one embodiment, if the TOC-based search yields one match,
client module 104 determines 2113 whether it is an exact match. If so,client module 104 assumes the match is correct, and uses 2114 the metadata from the matching record. If it is not an exact match,client module 104 proceeds to step 2107 as described below. - In
step 2104,client module 104 displays a dialog box, such asdialog box 2000 shown inFIGS. 20A and 20B , depicting examples ofdialog boxes 2000 forsearch function 2104 according to one embodiment of the present invention.Dialog box 2000 prompts the user to enter information inartist field 2001 and/oralbum title field 2002 as parameters for a search for matching metadata records, and shows search results (if any) inarea 2004. -
User action 2105 determines the next step. If the user enters artist and/or title information infields search button 2003 to initiate a search,client module 104queries 2106server 105 by artist and/or title, and returns to step 2104 to display results. - If, once results are displayed, the user selects one or more of the displayed search results (by highlighting the result(s) and clicking on select button 2005),
client module 104, proceeds to step 2107 as described below. - If the user clicks on Not found
button 2006 to indicate that none of the listed results are correct,client module 104 may give the user an opportunity to manually enter track information. - The user can also click on Cancel
button 2007 to dismissdialog box 2000 and indicate 2117 that no metadata is to be associated with the inserted CD. - In
step 2107,server 105 provides detailed metadata for the selected record(s) and provides the user with an opportunity to confirm the displayed metadata. Referring also toFIG. 20C , there is shown a screen shot depicting an example of adialog box 2010 for confirming CD information according to one embodiment of the present invention. Metadata for the selected record is displayed, includingartist 2011,album title 2012, genre 2013, andtrack listing 2014. - The user can edit 2109 the displayed metadata to correct any errors. If so,
client module 104 transmits 2111 the edits, along with TOC, toserver 105 for submission verification.Metadata server 105 is then able to link the TOC with the new or existing metadata record, as described in more detail below in connection withFIG. 7 .Client module 104 then proceeds to use 2112 the edited metadata. - If the user clicks the
OK button 2016 to confirm the displayed metadata as correct, without making edits,client module 104 posts asubmission 2110, including the TOC of the inserted CD and the Disc ID, tometadata server 105.Metadata server 105 is then able to link the TOC with the new or existing metadata record, as described in more detail below in connection withFIG. 7 . -
Client module 104 then proceeds to use 2112 the edited metadata. - The user can click on Cancel
button 2017 to dismissdialog box 2010 and indicate 2117 that no metadata is to be associated with the inserted CD.Back button 2015 returns toprevious screen 2000. - In one embodiment,
client module 104 communicates withserver 105 using HTTP over the Internet. Requests for metadata are made using HTTP ‘GET’ requests to a uniform resource locator (URL) associated withserver 105. The request includes Disc ID information, such as a listing of track lengths and other unique identifying information. Such information can be provided in any format. One skilled in the art will recognize that metadata requests can be implemented using any known techniques and formats without departing from the essential characteristics of the present invention. - In one embodiment, the relevant data is returned in the body of an HTML response. The first line of the body contains a code indicating the type of return. Return codes include:
-
- 200=exact matches
- 210=inexact matches
- 211=202=no match for disc
- The format for 200 and 210 codes (multiple matches) contains a single header line with the response code (and descriptive text that should be ignored) followed by multiple lines containing the query results. The list is terminated by a line containing a single ‘.’. The following is an example of a response for a single exact match:
-
200 Found exact matches, list follows (until terminating ‘.′) DINDEX0=404782b7 DTITLE0=Crash DARTIST0=Dave Matthews Band DGENRE0=Rock/Pop DYEAR0=1996 DNUMBER0=1 DTOTAL0=1 DARTID0=hi.492215 . - The following is an example of a response where multiple items is returned:
-
200 Found exact matches, list follows (until terminating ‘.′) DINDEX0=4054819b DTITLE0=The Eminem Show DARTIST0=Eminem DGENRE0=Rap/R&B DYEAR0=2002 DNUMBER0=1 DTOTAL0=1 DARTID0=hi.1343899 DINDEX1=40549115 DTITLE1=The Eminem Show [Clean] DARTIST1=Eminem DGENRE1=Rap/R&B DYEAR1=2002 DNUMBER1=1 DTOTAL1=1 DARTID1=hi.1347861 . - The response contains metadata designed to help the user choose the appropriate record when multiple items are returned. In general, the attributes returned are of the format:
- Name<index>=Value;
- where <index> is a number that binds attributes belonging to the same record together.
- The following named attributes are returned:
- DINDEX—The unique metadata record identifier (Disc ID) that should be used in a “read” request to return the full set of metadata
- DARTIST—The name of the Artist
- DTITLE—The title of the Album
- DGENRE—The genre associated with the album.
- DYEAR—The year the album was first released
- DNUMBER—The disc number if this is part of a multi-disc set
- DTOTAL—The total number of discs if this is a multi-disc set.
- DARTID—An identifier that can be used to retrieve the album art image using a different request.
- The response to a read request consists of a header line followed by Name=Value pairs (one per line) and terminated by a line consisting of a single ‘.’ The header line consists of the code 210, followed by the category and disc-ID that were passed to the read request. The following names are returned:
- DISCID—The Id of the returned disc . . . . The same as the argument to the READ command.
- DTITLE—The title of the disc . . . Typically <ARTIST>/<ALBUM>
- DARTIST—The artist associated with the disc.
- DALBUM—The album name associated with the disc.
- DYEAR—The year of the first release of the album.
- DGENRE—The genre associated with the disc. Examples include: Avant Garde, Bluegrass, Blues, Cajun, Celtic, Children's, Classical, Comedy, Country, Easy Listening, Electronica, Environmental, Exercise, Folk, Gay, Gospel, Holiday, Jazz, Latin, Marches, Miscellaneous, New Age, Rap/R&B, Reggae, Rock/Pop, Sound Effects, Soundtrack, Spoken Word, Vocal, Women's, World
- TTITLE<N>—The track title for track <N> where <N> is from 0 to the number of tracks on the disc −1.
- TARTIST<N> (
protocol 5 only)—The artist associated with track <N> where <N> is from 0 to the number of tracks on the disc −1. Multiple artists are separated by “/”. - An example of a read response is as follows:
-
210 category 0003851f DTITLE=Get Rich Or Dye Tryin' DARTIST=50 Cent DYEAR= DGENRE=Rap/R&B DNUMBER= DTOTAL= DALBUMID= DARTISTID= DARTID= TTITLE0=Intro TARTIST0=50 Cent TTRACKID0= TTITLE1=What Up Gangsta? TARTIST1=50 Cent TTRACKID1= TTITLE2=Patiently Waiting TARTIST2=50 Cent ft Eminem TTRACKID2= TTITLE3=Many Men (Wish Death) TARTIST3=50 Cent TTRACKID3= TTITLE4=In Da Club TARTIST4=50 Cent TTRACKID4= TTITLE5=High All the Time TARTIST5=50 Cent TTRACKID5= TTITLE6=Heat TARTIST6=50 Cent . - In one embodiment, metadata submissions are processed via an HTTP POST. The posted data is in the same format as the read response. An example of a submission post is as follows:
-
# Proto: 5 # hello:Source=MMJB+MMJB_KEY=&MMUID={12345678-ABCD-1234-ABCD- 1234567890AB}&grant=1&VERSION=7.20.0169Gateway&OEM=Gateway&OOEM=Gateway&LANG=ENU # MMJB::Category: Soundtrack # MMJB::Discid: 0 # Track frame offsets: # 150 # 22790 # 45523 # 51973 # 68145 # 82055 # # Disc length: 1300 seconds # DISCID=0 DTITLE=8 Mile [Deluxe Edition] (2 of 2) DGENRE=Soundtrack DARTIST=50 Cent TTITLE0=Rap Name TARTIST0=Obie Trice TTITLE1=Stimulate TARTIST1=Eminem TTITLE2='Til I Collapse Freestyle TARTIST2=50 Cent TTITLE3=Gangsta TARTIST3=Beast, Joe TTITLE4=The Weekend TARTIST4=Brooklyn TTITLE5=California TARTIST5=Shaunta - One skilled in the art will recognize that the above formats and layouts are merely examples, and that the present invention can be practiced with any other format or layout for queries, responses, and submissions.
- In one embodiment,
server 105 provides new services and functionality to next-generation clients while maintaining backward compatibility with existing clients. To achieve this,server 105 implements and responds to existing metadata request protocols, as well as a new protocol, described below, to support the enhanced features and metadata for next-generation clients. - Upon receiving a metadata request,
server 105 attempts to use metadata fromcommercial database 106B when available. Ifdatabase 106B does not contain the requested metadata,server 105 uses user-enteredmetadata database 106A as a fallback. For example, for new CDs that have not yet been entered incommercial database 106B, or for promotional discs, imports, and bootleg CDs that may never find their way intocommercial database 106B,server 105 relies on user-entereddatabase 106A. - In addition, if a user indicates that metadata from
database 106B contains an error, the corrected information can be stored indatabase 106A. When responding to future requests,server 105 provides the corrected metadata. - In order to implement such functionality,
server 105 matches metadata requests fromclient modules 104 with records indatabases database 106A with records indatabase 106B. In this manner,server 105 is able to identify records in both databases that refer to the same CD.Server 105 uses information from linkingdatabase 509 to perform such associating and linking. The following are examples of methods and implementations for matching, associating, and linking metadata requests,database 106A records, anddatabase 106B records. One skilled in the art will recognize that these techniques can be applied in any context where matching, associating, and linking of two or more database records are desired. - Referring now to
FIG. 7 , there is shown an improved server method for adding metadata information to a database, according to one embodiment of the present invention. The improved method of the present invention uses user submissions to create new Disc ID to Album ID mappings, so as to resolve ambiguities and to identify potential errors in the commercial metadata. - In one embodiment,
server 105 performs the steps of the method ofFIG. 7 when a user manually enters metadata. For example, ifserver 105 fails to find a matching record indatabase client software 102 may prompt the user to manually enter metadata.Client module 104 then transmits the metadata toserver 105, which then performs the steps ofFIG. 7 . -
Metadata server 105 receives 701 metadata, typically via HTTP over an Internet connection.Server 105 assesses the type ofsubmission 702. If the submission represents a correction to existing metadata, in oneembodiment server 105 submits 707 the corrections for editorial review (either manual, automated, or both). Based on the results of the editorial review, the correction is applied to theappropriate database server 105 is not able to write tocommercial database 106B, the correction may be entered in user-entereddatabase 106A. Subsequently, whenever that metadata record is to be retrieved, the corrected metadata is retrieved from user-entereddatabase 106A, in lieu of or in addition to the commercial metadata fromdatabase 106B. - If the received submission represents new metadata,
server 105 attempts to match 704 the submitted metadata to a record incommercial database 106B. In one embodiment, the vector matching techniques described above are employed. In another embodiment, the text of the tracks is matched with candidate albums from the commercial database using an Information Retrieval index. If a match is found 708,server 105 creates 709 a new TOC variant indicating a link between the detected TOC and the Disc ID of the matching record, and stores the new TOC variant as a record in linkingdatabase 509. If no match is found,server 105stores 710 the new metadata as a new record in user-entereddatabase 106A. - Additional detail for an implementation of the steps of
FIG. 7 according to one embodiment are provided in connection withFIG. 19 , below. - In one embodiment, the invention
pre-populates linking database 509 so thatserver 105 can use commercial data where available, but fall back on user-entered data when commercial data is unavailable or inaccurate. In this manner, the invention provides more accurate information while avoiding the need to rely on users to enter a large amount of data. - In one embodiment, the invention uses TOC data from a provider of commercial metadata, such as AMG.
Disc match module 507 creates a vector for the TOC data provided by AMG, maps it to the associated album ID, and stores the mapping indatabase 509 so thatserver 105 can retrieve the corresponding record fromdatabase 106B when needed. - Alternatively, the invention uses a known collection of CDs to pre-populate
database 509.Disc match module 507 extracts TOC data from these CDs. Ifcommercial database 106B includes universal product code (UPC) numbers, the CD TOC data is mapped to the commercial database using UPCs on individual disc cases. In one embodiment, a barcode reader is used to speed up the process of inputting UPC numbers. - Referring now to
FIG. 8 , there is shown an example of a method for creating mappings between TOC Based Disc IDs and CDs, as performed bydisc match module 507 according to one embodiment of the present invention. The method is shown in the context of populatinglinking database 509 using a collection of CDs. One skilled in the art will recognize, however, that the method can be adapted to populatedatabase 509 using data from other sources. - The user inserts
CD 101 into a drive. A component ofclient software 102extracts 801 the TOC from the disc and forms 802 a vector as described above. A barcode reader (not shown) scans 803 the UPC barcode on the CD package. Alternatively, the user could be prompted to enter a title, code, or other information that uniquely identifies the CD. Alternatively, the system extracts audio signatures for one or more songs on the CD.Disc match module 507 uses the scanned UPC, or audio signatures, or other information, to retrieve an album ID or metadata fromcommercial database 106B.Module 507 then generates 806 a record associating the vector with the retrieved album ID and/or metadata. The generated record is stored indatabase 509. - In one embodiment,
metadata server 105 is implemented as an application server that accepts requests delivered via HTTP, performs the metadata lookups, and returns the data via an HTTP response. For example,metadata server 105 may be implemented as an instance of Tomcat, an application server available from the Apache Software Foundation of Forest Hill, Md. The Tomcat instance is extended with Java servlets to implement the functionality of the present invention. - Referring now to
FIG. 9 , there is shown an example of an implementation of metadata ASP 130 includingmetadata server 105 according to one embodiment of the present invention. Metadata is organized into memory-mappedfiles 905 andindexes 907. Eachindex 907 associates a vector with an offset into a memory-mappedmetadata file 905. The records inmetadata file 905 contain the information needed to fulfill a query request. There may be multiple metadata records associated with a single offset in the case of ambiguous results for a Disc ID. - In one embodiment, there are
multiple indexes 907, such as for example: -
- 1. Commercial TOC vectors mapping to commercial metadata;
- 2. User-submitted TOC vectors mapping to commercial metadata;
- 3. User-submitted TOC vectors mapping to user-submitted metadata;
- 4. Album title and artist name text mapping to commercial metadata; and
- 5. Album title and artist name text mapping to user-submitted metadata.
- In one embodiment, when retrieving metadata according to the techniques described above in connection with
FIG. 6 ,server 105 attempts to find exact vector matches in eachindex 907 in a specific order (for example, first scanning commercial TOC vectors mapping to commercial metadata, then scanning user-submitted TOC vectors mapping to commercial metadata, then scanning user-submitted TOC vectors mapping to user-submitted metadata).Server 105 returns the metadata for the first exact match found. In one embodiment, the scanning process involves calculating the vector distance between the query vector and each vector in the database. An optional performance optimization is to skip the vector difference calculation if the total disc length in seconds as reported in the TOC data does not match within a given configuration threshold. An optional performance optimization is to skip the vector difference calculation if the number of tracks reported in the TOC data does not match. An “exact” match is a match for which the vector difference is smaller than a predetermined threshold. -
User submissions 903 are sent to asubmissions database 906 for processing by asubmission processing module 904 according to the techniques ofFIGS. 7 and 19 . -
Metadata indexes 907 are constructed whenmetadata server 105 starts up. They are updated periodically as data is appended to user-enteredmetadata database 106A (based on new submissions).Multiple indexes 907 are created in order to define the search order of the metadata. The indexes are created, for example, by reading the contents of thecommercial metadata database 106B and user-enteredmetadata database 106A. There may be multiple files for each of these sources corresponding to different commercial providers, different languages, or different levels of credibility for user-submitted data (corroborated and uncorroborated). - In one embodiment, two types of
index 907 are created: a TOC index and a text index. A TOC index is created by reading the metadata files and creating a TOC vector for each TOC string that is encountered in the file, and associating it with the Disc ID of the associated record. The index can be created as a simple list of (TOC, Disc ID) object pairs. A scanning/retrieval operation is then performed, consisting of iterating through the list of TOCs in the index and performing a vector comparison with the query TOC. The scanning/retrieval operation returns the Disc IDs associated with the TOCs that compare most closely to the query. - The second type of index is a text- or word-based index that is used for artist/title text-based searches. This is a standard text-based information retrieval (IR) index that is well known in the art of text searching applications. The index consists of data structures that map the words found in the artist and album titles in
metadata database 106 to the Disc IDs with which they are associated. A title query on the index consists of finding those Disc IDs that are associated with the most words matching the queries. - Other types of indexes can be built based on available linking data. For example, an audio signature index could be built that maps the combination of audio signature and position from which the signature was taken to Disc IDs.
- In one embodiment, the Disc ID is an 8-digit hexadecimal number that is mapped to the metadata for a record. The most significant bit or bits are used to segment the ID space for multiple data sources. For example, a Disc ID having a most significant bit value of 1 might correspond to a record from
commercial database 106B, while a record where the most significant bit value is 0 might correspond to a record from user-entereddatabase 106A. In general, the Disc ID is opaque toclient module 104 andserver 105; the data source defines the Disc IDs, andclient module 104 andserver 105 use them with no knowledge of how they were generated. - The Disc ID encodes the byte offset of the desired record in the metadata file. Records are word-(16 bit) aligned, so that addresses are even. The least significant bit is used to indicate if the record should be returned from
commercial metadata file 106B (lsb=0), or user-enteredmetdata file 106A (lsb=1). The Disc ID is opaque to the client. - The following is an example of a metadata file format for
metadata files -
Metadata files files - The comment header present in the XMCD files is not present in these records except for an optional revision number.
- A line consisting of only a period ‘.’ is used to separate multiple records.
- In one embodiment, the Disc ID used in the file is not the CDDB1 ID, but rather a unique ID derived for each metadata record in a data source such that the ID space does not overlap with any other data source.
-
#0+10+150+24948+50538+78725+92010+123080+155748+198053+211775+235358+4519 DISCID=40460e60 DTITLE=Acid Jazz, Vol. 2 DARTIST=Various Artists DYEAR=1995 DGENRE=Jazz DNUMBER=1 DTOTAL=1 DARTID=396896 DALBUMID=396896 TTITLE0=Super Bad TARTIST0=Idris Muhammad TTRACKID0=8558080 TTITLE1=Cold Sweat TARTIST1=Bernard “Pretty” Purdie TTRACKID1=8558081 TTITLE2=Wildfire TARTIST2=Rusty Bryant TTRACKID2=8558082 TTITLE3=Hot Barbecue TARTIST3=Jack McDuff TTRACKID3=8558083 TTITLE4=Reelin' With the Feelin' TARTIST4=Charles Kynard TTRACKID4=8558084 TTITLE5=Spinky TARTIST5=Charles Earland TTRACKID5=8558085 TTITLE6=Who's Gonna Take the Weight? TARTIST6=Melvin Sparks TTRACKID6=8558086 TTITLE7=Mamblues TARTIST7=Bernard “Pretty” Purdie / Cal Tjader TTRACKID7=8558087 TTITLE8=The Twang Thang TARTIST8=Billy Butler TTRACKID8=8558088 TTITLE9=Haw Right Now TARTIST9=Patrice Rushen TTRACKID9=8558089 . - Referring now to
FIG. 16 , there is shown a block diagram of a detailed system architecture according to one embodiment of the present invention. As described above,client module 104 issues metadata queries, and transmits metadata submissions, tometadata server 105.FIG. 16 provides additional detail as to the processing of metadata submissions once they are received byserver 105, according to one embodiment. - Upon receipt of a metadata submission,
server 105 writes the submitted metadata to logfile 1601.Log data collector 1604 filters and collects the log information fromlog file 1601, and periodically posts the data to logconsolidator 1605. In embodiments where more than onemetadata server 105 are provided,log consolidator 1605 consolidates events that have been processed ondifferent servers 105. For example,consolidator 1605 accepts events from multiplelog data collector 1604 instances, orders the events by user and time, and passes the events to corroborator 1603 in a convenient form. -
Log consolidator 1605 transmits consolidated data tocorroborator 1603, which determines whether submitted metadata has been corroborated by two or more independent sources.Corroborator 1603 publishes corroborated information to user-entereddatabase 106A. If discrepancies are detected between submissions from two or more sources,corroborator 1603 identifies the discrepancies and, in one embodiment, provides a list of discrepancies to Quality Assurance (QA)tool 1606, for presentation to an administrator. In one embodiment, two or more user-entereddatabases 106A are provided: one for uncorroborated metadata, and one for corroborated metadata. In another embodiment, onedatabase 106A is provided, and records are flagged to indicate whether the metadata they contain is corroborated or uncorroborated. As described above,server 105 favors corroborated metadata over uncorroborated metadata, so as to provide toclient module 104 metadata of the highest possible level of credibility. - In one embodiment,
Quality Assurance Tool 1606 is available to allow administrators to manually inspect and modify submission information that has been flagged for special attention.QA tool 1606 may provide, for example, a user interface that allows an editor to view submissions that conflict with previously stored metadata, or to examine other submissions that are flagged for manual review. The user interface ofQA tool 1606 provides administrator controls for ignoring/deleting submissions, applying submissions to correct previously stored data, or defer action pending additional information. The user interface may also provide the administrator with the means to provide comments as appropriate. -
Databuild module 1607 keeps thecommercial database 106B in sync with user-entereddatabase 106A.Databuild module 1607 processes updates todatabases 106, and produces new metadata records fordatabases 106. Providers of commercial sources of data are constantly updating their data with new and corrected entries. The format of a commercial database may vary from one commercial source to another.Databuild module 1607 processes these updates in the vendor-specific formats. In one embodiment,databuild module 1607 consolidates the data from multiple feeds such that data for the same artist or album is indexed by a single, unique identifier regardless of which source provided the data.Databuild module 1607 also republishes the commercial data in the format described above fordatabase 106B, that is suited for use bymetadata server 105. As new data is published by the commercial providers and becomes available to the system, duplication between the commercial and user-submitted data may occur.Databuild module 1607 eliminates redundant entries from the user entereddatabase 106A.Databuild module 1607 also merges approved corrections intodatabases 106, in accordance with the methods described below in connection withFIG. 19 . -
Log data collector 1604,log consolidator 1605,corroborator 1603,QA tool 1606, anddatabuild module 1607 may be implemented, for example, as software components ofmetadata ASP 103. - Referring now to
FIGS. 17A , 17B, and 17C, there are shown diagrams depicting the software structure of one embodiment ofserver 105 in more detail. Referring now toFIG. 17A , there is shown the software objects in one embodiment ofserver 105, specifically an embodiment based on a Java servlet environment such as the Apache Tomcat environment.HttpServlet object 1701 accepts HTTP requests through the Tomcat or other servlet environment. This object is extended to handle the specific protocols described above.CDIIndex object 1702 manages the various types ofmetadata indexes 907.TocDB 1705 implements a TOC-based metadata index.Index 1706 implements a title (word) based index.CDIIndex 1702 uses an add( )method to add new entries to the indexes (as it does on startup when it reads the metadata databases).CDIIndex 1702 uses find( ) to query the indexes using TOC or words as appropriates for the type of index.CDIDataStore 1703 encapsulatesmetadata databases MappedByteBuffer object 1704 which provides access to the memory-mapped file implementation ofdatabases 106. - Referring now to
FIGS. 17B and 17C , there are shown the class inheritance relationships used in one embodiment ofserver 105. The various types of requests handled byserver 105 are encapsulated byobjects FIG. 17B . The various types of responses generated byserver 105 are encapsulated byobjects FIG. 17C . - Referring now to
FIG. 18 , there is shown a block diagram depicting the operation oflog consolidator 1605 in more detail.Server 105 produceslog file 1801 from incoming submissions. There may be many instances ofserver 105 running on different machines. Each machine running aserver 105 has a daemon program called snarfd 1802 which reads a log file as it is written and transmits the data over anetwork connection 1803 toCorroborator Server 1804, which stores the data 1809.Corroborator Server 1804 also maintains system monitoring statistics referred to asCricket data 1810. Cricket is an OpenSource software package for monitoring and graphing. A daemon process in.snarfcricket 1811 reads the Cricket data periodically and posts the data toCricket server 1812 which runs Cricket 1814 and maintainsgraphs 1813 of the system status. - Referring now to
FIG. 4 , there is shown a flowchart depicting a server method for adding metadata information todatabase 106, according to one embodiment of the present invention.Server 105 receives 401 a submission request fromclient 102.Server 105 may perform 402 Quality Assurance on the submission, in order to check for completeness, spelling, case usage, and the like. If the submission passesQA 403, the new information is stored 405 indatabase 106. Submissions that do not pass the QA process are discarded 404. - Referring now to
FIG. 19 , there is shown a flowchart depicting a method of handling metadata submission according to another embodiment of the present invention. In one embodiment, the steps ofFIG. 19 are performed bycorroborator 1603; in another embodiment, they are performed byserver 105 or some other component of the system. In one embodiment the steps ofFIG. 19 are performed automatically when the user enters metadata for an inserted CD. In another embodiment, the steps are performed in a batch mode, after a number of submissions have been collected inlog 1601 and are ready for processing. - In the flowchart of
FIG. 19 , and in the following description, the term “provisional” is used to indicate a database record that has not been corroborated, and the term “live” is used to indicate a database record that has been corroborated or is part of a commercial database. - First, the system of the invention performs searches on
databases 106, to find 1901 matches both by TOC-based Disc ID for the inserted CD and by text on the user-entered information. A text search, in this case, compares the text comprising the metadata of a submission to existing entries in thedatabases 106. Specifically, the comparison seeks to determine if the submission contains the same track list, independent of punctuation, capitalization, or other insignificant differences. Users can submit information in a variety of ways, whether or not they entered the data or changed it. Small changes in punctuation or capitalization are ignored. Exact matches and approximate matches are identified, and the steps ofFIG. 19 are performed for each. - If the TOC of the inserted CD exactly matches that of a live (corroborated)
record 1902, and the user-submitted metadata exactly (or very closely) matches the metadata of therecord 1903, the system ignores 1904 the submission as redundant. The system then proceeds 1905 to the next hit (if any). - If the TOC of the inserted CD exactly matches that of a
live record 1902, and the user-submitted metadata is close to the metadata of therecord 1906, the system marks 1907 the submission for manual review viaQA tool 1606. The system then proceeds 1905 to the next hit (if any). - If the TOC of the inserted CD matches that of a provisional (uncorroborated)
record 1908, and the user-submitted metadata matches or is close to the metadata of theprovisional record 1906, the system upgrades 1910 the provisional record to live (corroborated) status. The system then proceeds 1905 to the next hit (if any). - If the user-submitted metadata matches or is close to the metadata of a
live record 1911, the system creates 1912 a new provisional record indicating a TOC variant corresponding to the metadata of the live record. The system then proceeds 1905 to the next hit (if any). In some cases, a submission includes only a TOC and a matching Disc ID. This is a TOC variant submission and occurs, for example, when the user accepts the result of atext search 2010, as described above in connection withFIG. 21 . In general, TOC variant submissions occur whenever a lookup succeeds (i.e., is accepted by the end user) and the lookup was a result of inexact TOC match or a non-TOC basedmetadata index 907. - Otherwise, the system creates 1913 a new provisional record including the user-submitted metadata of the live record. The system then proceeds 1905 to the next hit (if any).
- In one embodiment,
databases 106 are not updated in real time. Rather, all updates are performed on in-memory structures within consolidator 1605 (or other component), anddatabases 106 are periodically updated from the in-memory data. - The following table summaries the actions performed in the various contingencies depicted in
FIG. 19 : -
Prov Text Near/ Near/ Near/ Exact Miss Miss Exact Exact Miss Live Text Prov TOC Live TOC Exact Exact Near Near Miss Miss Exact Exact A A B B C D Near/Miss Exact A A B B D D Near/Miss Miss E E E E D D Exact Miss C E E C C D Figure Code Element Condition Comment A 1904 Redundant data Ignore; already in live database B 1907 Redundant data Manually review C 1910 Corroboration Additional data for provisional entry D 1913 New Entry Altogether Any TOC match is just misleading E 1912 New TOC variant Add to provisional database - In one embodiment, provisional (uncorroborated) records are not promoted to live (corroborated) status until some degree of credibility for the record has been established. This may entail receiving some predetermined number of matching submissions, or some type of additional verification. In addition, some users may be deemed more credible than others, based on historical accuracy and number of submissions or on other factors; a corroboration “score” may be developed for each provisional record, based on the number of corroborating submissions and/or the relative credibility of the users that provided the submissions. Score can depend on various factors, for example: whether the provisional and corroborating submissions were submitted by different users; whether the provisional and corroborating submissions came from different network (e.g. IP) addresses; whether the submissions came from users that have abused the system in the past.
- Records may be promoted to live status when their score exceeds a threshold. In one embodiment, the number of corroborating submissions necessary for promotion can be predetermined, or can be varied based on, for example, whether the submission conflicts with an existing popular entry in the database.
- In one embodiment, the system of the present invention is further extended to allow retrieval of data from a
commercial database 106B even if TOC data is not present. - For example, if TOC data is not available, the user can manually enter descriptive information about a CD (such as artist and album name).
Server 105 searches for and retrieves matching records indatabases Client software 102 then prompts the user to confirm whether or not the retrieved records are the correct records. Upon user confirmation, an association can be made between a TOC that was previously associated with the matching records indatabase - Alternatively, the present invention can be combined with an audio signature algorithm that matches audio signal data. Audio signatures for CD tracks can be associated with the album metadata in
databases Server 105 can make such associations any time metadata and TOC data are or become known but audio signatures are not known in the central database. Thus, if a TOC search finds the album, the audio signatures for the tracks in the search can be added to album metadata. If an album and artist name search is used to associate TOC data with metadata, then the audio signatures can be associated at the same time. - Referring now to
FIG. 22 , there is shown a block diagram of system operation in connection with audio signatures, according to one embodiment of the invention. -
Client module 104 issues CD lookup queries to themetadata server 105.Metadata server 105 looks for query results, and in the case of a match, communicates the set of tracks available for ASi reference signature collection to ASi Inventory Manager 2202. ASi Inventory Manager 2202 responds with zero, one, or more tracks for which reference signatures should be collected.Metadata server 105 annotates the response with an indicator toclient module 104 of the track(s) for which signatures should be collected.Client module 104 collects the requested signatures, for example during a rip operation, and logs them, for example, using a Quality of Service (QoS)logging subsystem 2200.QoS logging subsystem 2200 uploads the collected signatures to sink 2203.Sink 2203 receives and stores uploaded log files 2204. -
ASi Corroborator 2205 processes logs as they are received.ASi Corroborator 2205 classifies the received data as either provisional or corroborated and stores the data in theappropriate database ASi Corroborator 2205 also notifies ASi Inventory Manager 2202 that a signature was received. ASi Inventory Manager 2202 updates its inventory of received signatures. - Periodically,
ASi Analyst 2208 analyzes the collected signatures.ASi Analyst 2208 transforms the reference signatures fromdatabases database 2209. Whenmodule 104 transmits a query request, an audio signature may be passed as part of the request.Server 105 passes the signature toASi Retrieval server 2210 to find matching tracks for the signature indatabase 2209.Server 105 consolidates the results and returns them toclient module 104. - Subsequently, when a track from a known album is encountered that has either non-standard or non-existent metadata tags, it can be recognized using the audio signature. In addition, results from the TOC search can be disambiguated using the audio signatures as they are associated with albums.
- Alternatively, as tracks with non-standard tagging are encountered, if they can be identified using an audio signature, then the non-standard tags can be recorded and associated with the album. Subsequently, when data is acquired by other means when only the non-standard tag is available and the audio signature is not available, the track can still be identified accurately. In one embodiment, this association between tracks is done by semi-automated means. In some instances, only artist and track names may be available (as in the file names for tracks distributed by peer-to-peer services). If, however, a track with identical tags has previously been identified using audio signatures, then the presence of identical tags can be taken as strong evidence about the identity of the track. The result is that the current semi-automated track tag equivalencing process can be fully automated. This makes the input data for recommendation engines much more useful because the data can be referenced back to rich data sources which associate primary artists, other performers, albums, and tracks.
- In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
- Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
- It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other such information storage, transmission or display devices.
- The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- The algorithms and displays presented herein are not inherently related to any particular computer, network of computers, or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems appears from the description. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
- As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. For example, the particular architectures depicted above are merely exemplary of one implementation of the present invention. The functional elements and method steps described above are provided as illustrative examples of one technique for implementing the invention; one skilled in the art will recognize that many other implementations are possible without departing from the present invention as recited in the claims. Likewise, the particular capitalization or naming of the modules, protocols, features, attributes, or any other aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names or formats. In addition, the present invention may be implemented as a method, process, user interface, computer program product, system, apparatus, or any combination thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
Claims (26)
1-10. (canceled)
11. A method of retrieving metadata corresponding to a media item, comprising:
querying, by at least one a first metadata source using an identifier associated with the media item;
responsive to the first metadata source missing at least a portion of the metadata corresponding to the media item, the at least one processing unit querying a second metadata source using an identifier associated with the media item;
responsive to at least one of the metadata sources having metadata corresponding to the media item, the at least one processing unit retrieving the at least a portion of the metadata; and
outputting the retrieved metadata.
12. The method of claim 11 , wherein each metadata source comprises a database.
13. The method of claim 11 , wherein the first metadata source comprises a database of commercially generated metadata, and the second metadata source comprises a database of user-entered metadata.
14. The method of claim 11 , wherein the first metadata source comprises a database having a first degree of credibility, and the second metadata source comprises a database having a second degree of credibility lower than the first degree of credibility.
15. The method of claim 11 , wherein the first metadata source comprises a database of corroborated metadata, and the second metadata source comprises a database of uncorroborated metadata.
16. A method of retrieving metadata corresponding to a media item, comprising:
querying, by at least one a metadata source using an identifier associated with the media item;
retrieving, by the at least one processing unit, at least two metadata records based on the query, each retrieved metadata record having an indicator of relative credibility;
responsive to a first retrieved metadata record having the highest relative credibility containing complete metadata corresponding to the media item, outputting the metadata from the first retrieved metadata record; and
responsive to the retrieved metadata record having the highest relative credibility missing at least a portion of the metadata corresponding to the media item, outputting corresponding metadata from the second retrieved metadata record.
17. The method of claim 16 , wherein the first metadata record comprises commercially generated metadata, and the second metadata source comprises user-entered metadata.
18. The method of claim 16 , wherein the first metadata record comprises corroborated metadata, and the second metadata source comprises uncorroborated metadata.
19-33. (canceled)
34. A method of retrieving metadata corresponding to a media item, comprising:
obtaining, by at least one processing unit, a plurality of numeric values of the media item;
forming, by the at least one processing unit, a first query from the plurality of numeric values;
running, by the at least one processing unit, the first query on a first metadata source to retrieve at least one primary record comprising metadata;
forming, by the at least one processing unit, a second query from metadata extracted from the retrieved at least one primary record;
running, by the at least one processing unit, the second query on a second metadata source to retrieve at least one secondary record comprising metadata; and
outputting at least a portion of the metadata from the at least one secondary record.
35. The method of claim 34 , wherein the first metadata source comprises a database having a first degree of credibility, and the second metadata source comprises a database having a second degree of credibility different than the first degree of credibility.
36. The method of claim 34 , wherein the plurality of numeric values comprises table of contents data, and the extracted metadata comprises at least one of an album title and artist.
37. The method of claim 34 , further comprising:
storing, in the primary record, metadata from the secondary record.
38. The method of claim 34 , further comprising:
generating a tertiary record comprising metadata from the first source and metadata from the second source; and
storing the generated tertiary record.
39. The method of claim 34 , further comprising:
generating a linking record associating the primary record with the secondary record; and
storing the generated linking record.
40. A method of retrieving metadata corresponding to a media item, comprising:
obtaining, by at least one processing unit, a plurality of numeric values of the media item;
forming, by the at least one processing unit, a first query from the plurality of numeric values;
running, by the at least one processing unit, the first query on a metadata source;
responsive to at least one record matching the query, the at least one processing unit outputting at least a portion of the metadata from the matching record;
responsive to no records matching the query, the at least one processing unit:
obtaining additional media identification information;
forming a second query from the additional media identification information;
running the second query on the metadata source to retrieve at least one record comprising metadata; and
outputting at least a portion of the metadata from the at least one record.
41. The method of claim 40 , wherein obtaining additional media identification information comprises receiving user-entered input.
42. The method of claim 40 , wherein obtaining additional media identification information comprises scanning a bar code.
43. The method of claim 40 , wherein the additional media identification information comprises at least one of a title, artist, and uniform product code.
44. The method of claim 40 , wherein the plurality of numeric values comprises table of contents data.
45. The method of claim 40 , further comprising:
adding the plurality of numeric values to the retrieved at least one record.
46. The method of claim 40 , further comprising:
generating a linking record associating the plurality of numeric values with the additional media identification information; and
storing the generated linking record.
47. The method of claim 40 , further comprising:
generating an auxiliary record comprising the plurality of numeric values and metadata from the retrieved record; and
storing the generated auxiliary record.
48. The method of claim 40 , wherein obtaining additional media identification information comprises extracting at least one audio signature from the media item.
49-78. (canceled)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/185,352 US20120011138A1 (en) | 2002-04-03 | 2011-07-18 | Associating and linking compact disc metadata |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36989002P | 2002-04-03 | 2002-04-03 | |
US10/406,799 US7707221B1 (en) | 2002-04-03 | 2003-04-02 | Associating and linking compact disc metadata |
US12/480,228 US7984062B2 (en) | 2002-04-03 | 2009-06-08 | Associating and linking compact disc metadata |
US13/185,352 US20120011138A1 (en) | 2002-04-03 | 2011-07-18 | Associating and linking compact disc metadata |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/480,228 Division US7984062B2 (en) | 2002-04-03 | 2009-06-08 | Associating and linking compact disc metadata |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120011138A1 true US20120011138A1 (en) | 2012-01-12 |
Family
ID=41401214
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/406,799 Expired - Fee Related US7707221B1 (en) | 2002-04-03 | 2003-04-02 | Associating and linking compact disc metadata |
US12/480,228 Expired - Fee Related US7984062B2 (en) | 2002-04-03 | 2009-06-08 | Associating and linking compact disc metadata |
US13/185,352 Abandoned US20120011138A1 (en) | 2002-04-03 | 2011-07-18 | Associating and linking compact disc metadata |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/406,799 Expired - Fee Related US7707221B1 (en) | 2002-04-03 | 2003-04-02 | Associating and linking compact disc metadata |
US12/480,228 Expired - Fee Related US7984062B2 (en) | 2002-04-03 | 2009-06-08 | Associating and linking compact disc metadata |
Country Status (1)
Country | Link |
---|---|
US (3) | US7707221B1 (en) |
Cited By (190)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100082349A1 (en) * | 2008-09-29 | 2010-04-01 | Apple Inc. | Systems and methods for selective text to speech synthesis |
US20100082328A1 (en) * | 2008-09-29 | 2010-04-01 | Apple Inc. | Systems and methods for speech preprocessing in text to speech synthesis |
US20130166598A1 (en) * | 2011-12-27 | 2013-06-27 | Business Objects Software Ltd. | Managing Business Objects Data Sources |
US8843500B2 (en) | 2012-06-19 | 2014-09-23 | Microsoft Corporation | Automatically generating music marketplace editorial content |
US20140330852A1 (en) * | 2012-04-13 | 2014-11-06 | Theplatform For Media, Inc. | Multiple Phase Content Ingest |
US8892446B2 (en) | 2010-01-18 | 2014-11-18 | Apple Inc. | Service orchestration for intelligent automated assistant |
US9092478B2 (en) | 2011-12-27 | 2015-07-28 | Sap Se | Managing business objects data sources |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US9300784B2 (en) | 2013-06-13 | 2016-03-29 | Apple Inc. | System and method for emergency calls initiated by voice command |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US9535906B2 (en) | 2008-07-31 | 2017-01-03 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
US20170069498A1 (en) * | 2015-09-08 | 2017-03-09 | The Regents Of The University Of California | Surface doping of nanostructures |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US9620104B2 (en) | 2013-06-07 | 2017-04-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9626955B2 (en) | 2008-04-05 | 2017-04-18 | Apple Inc. | Intelligent text-to-speech conversion |
US9633674B2 (en) | 2013-06-07 | 2017-04-25 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US9633660B2 (en) | 2010-02-25 | 2017-04-25 | Apple Inc. | User profiling for voice input processing |
US9646614B2 (en) | 2000-03-16 | 2017-05-09 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US9697822B1 (en) | 2013-03-15 | 2017-07-04 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9798393B2 (en) | 2011-08-29 | 2017-10-24 | Apple Inc. | Text correction processing |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9922642B2 (en) | 2013-03-15 | 2018-03-20 | Apple Inc. | Training an at least partial voice command system |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9953088B2 (en) | 2012-05-14 | 2018-04-24 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US9959870B2 (en) | 2008-12-11 | 2018-05-01 | Apple Inc. | Speech recognition involving a mobile device |
US9966065B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | Multi-command single utterance input method |
US9966068B2 (en) | 2013-06-08 | 2018-05-08 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US9971774B2 (en) | 2012-09-19 | 2018-05-15 | Apple Inc. | Voice-based media searching |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US10079014B2 (en) | 2012-06-08 | 2018-09-18 | Apple Inc. | Name recognition system |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10089072B2 (en) | 2016-06-11 | 2018-10-02 | Apple Inc. | Intelligent device arbitration and control |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10185542B2 (en) | 2013-06-09 | 2019-01-22 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10199051B2 (en) | 2013-02-07 | 2019-02-05 | Apple Inc. | Voice trigger for a digital assistant |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10269345B2 (en) | 2016-06-11 | 2019-04-23 | Apple Inc. | Intelligent task discovery |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US10283110B2 (en) | 2009-07-02 | 2019-05-07 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US10297253B2 (en) | 2016-06-11 | 2019-05-21 | Apple Inc. | Application integration with a digital assistant |
US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US10318871B2 (en) | 2005-09-08 | 2019-06-11 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US10332518B2 (en) | 2017-05-09 | 2019-06-25 | Apple Inc. | User interface for correcting recognition errors |
US10354011B2 (en) | 2016-06-09 | 2019-07-16 | Apple Inc. | Intelligent automated assistant in a home environment |
US10356243B2 (en) | 2015-06-05 | 2019-07-16 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US10403283B1 (en) | 2018-06-01 | 2019-09-03 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10410637B2 (en) | 2017-05-12 | 2019-09-10 | Apple Inc. | User-specific acoustic models |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
US10482874B2 (en) | 2017-05-15 | 2019-11-19 | Apple Inc. | Hierarchical belief states for digital assistants |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10496705B1 (en) | 2018-06-03 | 2019-12-03 | Apple Inc. | Accelerated task performance |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10521466B2 (en) | 2016-06-11 | 2019-12-31 | Apple Inc. | Data driven natural language event detection and classification |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US10568032B2 (en) | 2007-04-03 | 2020-02-18 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US10643611B2 (en) | 2008-10-02 | 2020-05-05 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US10684703B2 (en) | 2018-06-01 | 2020-06-16 | Apple Inc. | Attention aware virtual assistant dismissal |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US10733993B2 (en) | 2016-06-10 | 2020-08-04 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10748546B2 (en) | 2017-05-16 | 2020-08-18 | Apple Inc. | Digital assistant services based on device capabilities |
US10755703B2 (en) | 2017-05-11 | 2020-08-25 | Apple Inc. | Offline personal assistant |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US10789945B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Low-latency intelligent automated assistant |
US10791216B2 (en) | 2013-08-06 | 2020-09-29 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
US10791176B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10810274B2 (en) | 2017-05-15 | 2020-10-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11010127B2 (en) | 2015-06-29 | 2021-05-18 | Apple Inc. | Virtual assistant for media playback |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US11023513B2 (en) | 2007-12-20 | 2021-06-01 | Apple Inc. | Method and apparatus for searching using an active ontology |
US11070949B2 (en) | 2015-05-27 | 2021-07-20 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US11217251B2 (en) | 2019-05-06 | 2022-01-04 | Apple Inc. | Spoken notifications |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US11231904B2 (en) | 2015-03-06 | 2022-01-25 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US11237797B2 (en) | 2019-05-31 | 2022-02-01 | Apple Inc. | User activity shortcut suggestions |
US11269678B2 (en) | 2012-05-15 | 2022-03-08 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11314370B2 (en) | 2013-12-06 | 2022-04-26 | Apple Inc. | Method for extracting salient dialog usage from live data |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
US11388291B2 (en) | 2013-03-14 | 2022-07-12 | Apple Inc. | System and method for processing voicemail |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11468282B2 (en) | 2015-05-15 | 2022-10-11 | Apple Inc. | Virtual assistant in a communication session |
US11467802B2 (en) | 2017-05-11 | 2022-10-11 | Apple Inc. | Maintaining privacy of personal information |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11495218B2 (en) | 2018-06-01 | 2022-11-08 | Apple Inc. | Virtual assistant operation in multi-device environments |
US11532306B2 (en) | 2017-05-16 | 2022-12-20 | Apple Inc. | Detecting a trigger of a digital assistant |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US11657813B2 (en) | 2019-05-31 | 2023-05-23 | Apple Inc. | Voice identification in digital assistant systems |
US11696060B2 (en) | 2020-07-21 | 2023-07-04 | Apple Inc. | User identification using headphones |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
US11765209B2 (en) | 2020-05-11 | 2023-09-19 | Apple Inc. | Digital assistant hardware abstraction |
US11790914B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11798547B2 (en) | 2013-03-15 | 2023-10-24 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US11809483B2 (en) | 2015-09-08 | 2023-11-07 | Apple Inc. | Intelligent automated assistant for media search and playback |
US11838734B2 (en) | 2020-07-20 | 2023-12-05 | Apple Inc. | Multi-device audio adjustment coordination |
US11853536B2 (en) | 2015-09-08 | 2023-12-26 | Apple Inc. | Intelligent automated assistant in a media environment |
US11886805B2 (en) | 2015-11-09 | 2024-01-30 | Apple Inc. | Unconventional virtual assistant interactions |
US11914848B2 (en) | 2020-05-11 | 2024-02-27 | Apple Inc. | Providing relevant data items based on context |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040019658A1 (en) * | 2001-03-26 | 2004-01-29 | Microsoft Corporation | Metadata retrieval protocols and namespace identifiers |
US8161411B2 (en) | 2003-04-25 | 2012-04-17 | Apple Inc. | Graphical user interface for browsing, searching and presenting media items |
US8644969B2 (en) * | 2003-01-02 | 2014-02-04 | Catch Media, Inc. | Content provisioning and revenue disbursement |
US8666524B2 (en) * | 2003-01-02 | 2014-03-04 | Catch Media, Inc. | Portable music player and transmitter |
US8918195B2 (en) * | 2003-01-02 | 2014-12-23 | Catch Media, Inc. | Media management and tracking |
US20060107330A1 (en) * | 2003-01-02 | 2006-05-18 | Yaacov Ben-Yaacov | Method and system for tracking and managing rights for digital music |
US8732086B2 (en) * | 2003-01-02 | 2014-05-20 | Catch Media, Inc. | Method and system for managing rights for digital music |
US9406068B2 (en) | 2003-04-25 | 2016-08-02 | Apple Inc. | Method and system for submitting media for network-based purchase and distribution |
US7359900B2 (en) * | 2003-07-29 | 2008-04-15 | All Media Guide, Llc | Digital audio track set recognition system |
US7844548B2 (en) | 2003-10-15 | 2010-11-30 | Apple Inc. | Techniques and systems for electronic submission of media for network-based distribution |
US8073836B2 (en) * | 2004-03-01 | 2011-12-06 | Epicor Software Corporation | System for viewing databases |
JPWO2005091296A1 (en) * | 2004-03-19 | 2008-02-07 | パイオニア株式会社 | Sound information output apparatus, sound information output method, and sound information output program |
US20080077570A1 (en) * | 2004-10-25 | 2008-03-27 | Infovell, Inc. | Full Text Query and Search Systems and Method of Use |
US7818350B2 (en) | 2005-02-28 | 2010-10-19 | Yahoo! Inc. | System and method for creating a collaborative playlist |
TW200638335A (en) * | 2005-04-13 | 2006-11-01 | Dolby Lab Licensing Corp | Audio metadata verification |
US20060242198A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Methods, computer-readable media, and data structures for building an authoritative database of digital audio identifier elements and identifying media items |
US8346789B2 (en) | 2005-10-03 | 2013-01-01 | Intel Corporation | System and method for generating homogeneous metadata from pre-existing metadata |
US7844820B2 (en) * | 2005-10-10 | 2010-11-30 | Yahoo! Inc. | Set of metadata for association with a composite media item and tool for creating such set of metadata |
US9384178B2 (en) * | 2005-12-09 | 2016-07-05 | Adobe Systems Incorporated | Review of signature based content |
US7827162B2 (en) | 2006-05-15 | 2010-11-02 | Apple Inc. | Media package format for submission to a media distribution system |
US7962634B2 (en) | 2006-05-15 | 2011-06-14 | Apple Inc. | Submission of metadata content and media content to a media distribution system |
US20070265969A1 (en) * | 2006-05-15 | 2007-11-15 | Apple Computer, Inc. | Computerized management of media distribution agreements |
US8015237B2 (en) | 2006-05-15 | 2011-09-06 | Apple Inc. | Processing of metadata content and media content received by a media distribution system |
US20080065695A1 (en) * | 2006-09-11 | 2008-03-13 | Pivi Unlimited Llc | System and method for nondeterministic media playback selected from a plurality of distributed media libraries |
US20080120609A1 (en) * | 2006-11-17 | 2008-05-22 | Patrick Gates | Method and System for Upgrading a Previously Purchased Media Asset |
US8984442B2 (en) * | 2006-11-17 | 2015-03-17 | Apple Inc. | Method and system for upgrading a previously purchased media asset |
US20080120199A1 (en) * | 2006-11-17 | 2008-05-22 | Tracy Pirnack | Method and system for upgrading a previously purchased media asset |
US9305119B1 (en) * | 2006-12-14 | 2016-04-05 | Myspace Llc | System, apparatus and method for determining correct metadata from community-submitted data |
US20080230595A1 (en) * | 2007-03-16 | 2008-09-25 | Sharma Yugal K | Automated audio, video, and data extraction |
US8781996B2 (en) * | 2007-07-12 | 2014-07-15 | At&T Intellectual Property Ii, L.P. | Systems, methods and computer program products for searching within movies (SWiM) |
US9170997B2 (en) | 2007-09-27 | 2015-10-27 | Adobe Systems Incorporated | Commenting dynamic content |
US8285761B2 (en) * | 2007-10-26 | 2012-10-09 | Microsoft Corporation | Aggregation of metadata associated with digital media files |
US20090132462A1 (en) * | 2007-11-19 | 2009-05-21 | Sony Corporation | Distributed metadata extraction |
US9219558B2 (en) * | 2008-04-07 | 2015-12-22 | Winmore, Inc. | Monitoring TV viewing with programs from cable/satellite providers |
US10255580B2 (en) | 2008-05-05 | 2019-04-09 | Apple Inc. | Network-based distribution of application products |
US9342287B2 (en) | 2008-05-05 | 2016-05-17 | Apple Inc. | Software program ratings |
US20090276333A1 (en) * | 2008-05-05 | 2009-11-05 | Cortes Ricardo D | Electronic submission and management of digital products for network-based distribution |
US9076176B2 (en) | 2008-05-05 | 2015-07-07 | Apple Inc. | Electronic submission of application programs for network-based distribution |
US20100082663A1 (en) * | 2008-09-25 | 2010-04-01 | Cortes Ricardo D | Method and System for Identifying Equivalent Digital Media Assets |
US8185512B2 (en) * | 2008-12-04 | 2012-05-22 | International Business Machines Corporation | Prioritization of search requests using search templates |
US8117309B2 (en) * | 2009-01-20 | 2012-02-14 | Apple Inc. | Re-download management of previously acquired digital media assets |
US8620967B2 (en) * | 2009-06-11 | 2013-12-31 | Rovi Technologies Corporation | Managing metadata for occurrences of a recording |
US9729609B2 (en) | 2009-08-07 | 2017-08-08 | Apple Inc. | Automatic transport discovery for media submission |
US20110041154A1 (en) * | 2009-08-14 | 2011-02-17 | All Media Guide, Llc | Content Recognition and Synchronization on a Television or Consumer Electronics Device |
US8935217B2 (en) | 2009-09-08 | 2015-01-13 | Apple Inc. | Digital asset validation prior to submission for network-based distribution |
US20110078020A1 (en) * | 2009-09-30 | 2011-03-31 | Lajoie Dan | Systems and methods for identifying popular audio assets |
WO2011041673A2 (en) * | 2009-10-02 | 2011-04-07 | Sony Corporation | Providing services using data on blu-ray disc |
US20110119285A1 (en) * | 2009-11-16 | 2011-05-19 | Chen-Yu Sheu | Semantic computing system |
US8682145B2 (en) | 2009-12-04 | 2014-03-25 | Tivo Inc. | Recording system based on multimedia content fingerprints |
WO2011089450A2 (en) | 2010-01-25 | 2011-07-28 | Andrew Peter Nelson Jerram | Apparatuses, methods and systems for a digital conversation management platform |
US20110184880A1 (en) * | 2010-01-26 | 2011-07-28 | David Lawrence Neumann | Subscription Renewals for Digital Content |
US20110219029A1 (en) * | 2010-03-03 | 2011-09-08 | Daniel-Alexander Billsus | Document processing using retrieval path data |
US20110219030A1 (en) * | 2010-03-03 | 2011-09-08 | Daniel-Alexander Billsus | Document presentation using retrieval path data |
US20110218883A1 (en) * | 2010-03-03 | 2011-09-08 | Daniel-Alexander Billsus | Document processing using retrieval path data |
US20110289121A1 (en) * | 2010-05-18 | 2011-11-24 | Rovi Technologies Corporation | Metadata modifier and manager |
US9626456B2 (en) * | 2010-10-08 | 2017-04-18 | Warner Bros. Entertainment Inc. | Crowd sourcing for file recognition |
CN102456203B (en) * | 2010-10-22 | 2015-10-14 | 阿里巴巴集团控股有限公司 | Determine method and the relevant apparatus of candidate products chained list |
US9542975B2 (en) * | 2010-10-25 | 2017-01-10 | Sony Interactive Entertainment Inc. | Centralized database for 3-D and other information in videos |
US20120239690A1 (en) * | 2011-03-16 | 2012-09-20 | Rovi Technologies Corporation | Utilizing time-localized metadata |
US20120239689A1 (en) * | 2011-03-16 | 2012-09-20 | Rovi Technologies Corporation | Communicating time-localized metadata |
US8630989B2 (en) * | 2011-05-27 | 2014-01-14 | International Business Machines Corporation | Systems and methods for information extraction using contextual pattern discovery |
US9223554B1 (en) | 2012-04-12 | 2015-12-29 | SourceDNA, Inc. | Recovering source code structure from program binaries |
US9203624B2 (en) | 2012-06-04 | 2015-12-01 | Apple Inc. | Authentication and notification heuristics |
US8949240B2 (en) | 2012-07-03 | 2015-02-03 | General Instrument Corporation | System for correlating metadata |
US9396194B2 (en) | 2012-07-03 | 2016-07-19 | ARRIS Enterprises , Inc. | Data processing |
US8990188B2 (en) | 2012-11-30 | 2015-03-24 | Apple Inc. | Managed assessment of submitted digital content |
US9087341B2 (en) | 2013-01-11 | 2015-07-21 | Apple Inc. | Migration of feedback data to equivalent digital assets |
US9576248B2 (en) * | 2013-06-01 | 2017-02-21 | Adam M. Hurwitz | Record linkage sharing using labeled comparison vectors and a machine learning domain classification trainer |
US9606986B2 (en) | 2014-09-29 | 2017-03-28 | Apple Inc. | Integrated word N-gram and class M-gram language models |
US11237918B2 (en) * | 2015-03-03 | 2022-02-01 | Axon Enterprise, Inc. | Automated integration of video evidence with data records |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
FR3042369B1 (en) * | 2015-10-12 | 2017-12-08 | Tdf | CONTEXTUAL ENRICHMENT BY AUDIO RECOGNITION |
US11256788B2 (en) | 2017-02-13 | 2022-02-22 | Tunego, Inc. | Tokenized media content management |
US11604858B2 (en) | 2017-02-13 | 2023-03-14 | Tunego, Inc. | Media content management |
US11687628B2 (en) | 2017-02-13 | 2023-06-27 | Tunego, Inc. | Non-fungible token (NFT) authenticity protocol with fraud deterrent |
US11250111B2 (en) | 2017-02-13 | 2022-02-15 | Tunego, Inc. | Tokenized media content management |
US10360252B1 (en) * | 2017-12-08 | 2019-07-23 | Palantir Technologies Inc. | Detection and enrichment of missing data or metadata for large data sets |
US20190392040A1 (en) * | 2018-06-25 | 2019-12-26 | Rovi Guides, Inc. | Methods and systems for updating metadata of a media asset |
US11887585B2 (en) | 2019-05-31 | 2024-01-30 | Apple Inc. | Global re-ranker |
US11449372B1 (en) * | 2019-06-28 | 2022-09-20 | Amazon Technologies, Inc. | System for enforcing use of schemas and interfaces |
US11392637B2 (en) * | 2019-07-10 | 2022-07-19 | Tunego, Inc. | Systems and methods for content metadata management |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173279B1 (en) * | 1998-04-09 | 2001-01-09 | At&T Corp. | Method of using a natural language interface to retrieve information from one or more data resources |
US20010005823A1 (en) * | 1999-12-24 | 2001-06-28 | Uwe Fischer | Method and system for generating a characteristic identifier for digital data and for detecting identical digital data |
US6263313B1 (en) * | 1998-08-13 | 2001-07-17 | International Business Machines Corporation | Method and apparatus to create encoded digital content |
US20020099737A1 (en) * | 2000-11-21 | 2002-07-25 | Porter Charles A. | Metadata quality improvement |
US20020178276A1 (en) * | 2001-03-26 | 2002-11-28 | Mccartney Jason | Methods and systems for processing media content |
US20030182139A1 (en) * | 2002-03-22 | 2003-09-25 | Microsoft Corporation | Storage, retrieval, and display of contextual art with digital media files |
Family Cites Families (199)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3568156A (en) | 1967-08-09 | 1971-03-02 | Bell Telephone Labor Inc | Text matching algorithm |
US4384329A (en) | 1980-12-19 | 1983-05-17 | International Business Machines Corporation | Retrieval of related linked linguistic expressions including synonyms and antonyms |
US4521165A (en) | 1984-08-31 | 1985-06-04 | Semi-Bulk Systems, Inc. | Apparatus for pumping fluent solid material |
US4833610A (en) | 1986-12-16 | 1989-05-23 | International Business Machines Corporation | Morphological/phonetic method for ranking word similarities |
JPH03185561A (en) | 1989-12-15 | 1991-08-13 | Ricoh Co Ltd | Method for inputting european word |
US5062143A (en) | 1990-02-23 | 1991-10-29 | Harris Corporation | Trigram-based method of language identification |
JP2862626B2 (en) | 1990-03-22 | 1999-03-03 | 株式会社東芝 | Electronic dictionary and information retrieval method |
US5497488A (en) | 1990-06-12 | 1996-03-05 | Hitachi, Ltd. | System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions |
US5182708A (en) | 1990-12-11 | 1993-01-26 | Ricoh Corporation | Method and apparatus for classifying text |
US5404505A (en) | 1991-11-01 | 1995-04-04 | Finisar Corporation | System for scheduling transmission of indexed and requested database tiers on demand at varying repetition rates |
US5903454A (en) | 1991-12-23 | 1999-05-11 | Hoffberg; Linda Irene | Human-factored interface corporating adaptive pattern recognition based controller apparatus |
US5371807A (en) | 1992-03-20 | 1994-12-06 | Digital Equipment Corporation | Method and apparatus for text classification |
US5303302A (en) | 1992-06-18 | 1994-04-12 | Digital Equipment Corporation | Network packet receiver with buffer logic for reassembling interleaved data packets |
GB9220404D0 (en) | 1992-08-20 | 1992-11-11 | Nat Security Agency | Method of identifying,retrieving and sorting documents |
US5608622A (en) | 1992-09-11 | 1997-03-04 | Lucent Technologies Inc. | System for analyzing translations |
US6000008A (en) | 1993-03-11 | 1999-12-07 | Cabletron Systems, Inc. | Method and apparatus for matching data items of variable length in a content addressable memory |
US5392212A (en) | 1993-07-07 | 1995-02-21 | The United States Of America As Represented By The Secretary Of Commerce | Apparatus for identifying unknown words by comparison to known words |
US5583763A (en) | 1993-09-09 | 1996-12-10 | Mni Interactive | Method and apparatus for recommending selections based on preferences in a multi-user system |
JPH07114568A (en) | 1993-10-20 | 1995-05-02 | Brother Ind Ltd | Data retrieval device |
US6614914B1 (en) | 1995-05-08 | 2003-09-02 | Digimarc Corporation | Watermark embedder and reader |
US5629867A (en) | 1994-01-25 | 1997-05-13 | Goldman; Robert J. | Selection and retrieval of music from a digital database |
GB9401816D0 (en) | 1994-01-31 | 1994-03-23 | Mckee Neil H | Accessing data held in large databases |
US5548507A (en) | 1994-03-14 | 1996-08-20 | International Business Machines Corporation | Language identification process using coded language words |
US5592511A (en) | 1994-05-10 | 1997-01-07 | Schoen; Neil C. | Digital customized audio products with user created data and associated distribution and production system |
US5499046A (en) | 1994-05-23 | 1996-03-12 | Cable Services Technologies, Inc. | CATV distribution system with each channel having its own remote scheduler |
US5539635A (en) | 1994-07-19 | 1996-07-23 | Larson, Jr.; Ernest J. | Radio station program identifier and distribution system |
US5661787A (en) | 1994-10-27 | 1997-08-26 | Pocock; Michael H. | System for on-demand remote access to a self-generating audio recording, storage, indexing and transaction system |
US6029195A (en) | 1994-11-29 | 2000-02-22 | Herz; Frederick S. M. | System for customized electronic identification of desirable objects |
US5758257A (en) | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
US5706365A (en) | 1995-04-10 | 1998-01-06 | Rebus Technology, Inc. | System and method for portable document indexing using n-gram word decomposition |
US5616876A (en) | 1995-04-19 | 1997-04-01 | Microsoft Corporation | System and methods for selecting music on the basis of subjective content |
US5842010A (en) | 1995-04-24 | 1998-11-24 | Bell Communications Research, Inc. | Periodic wireless data broadcast |
US5883986A (en) | 1995-06-02 | 1999-03-16 | Xerox Corporation | Method and system for automatic transcription correction |
EP0834139A4 (en) | 1995-06-07 | 1998-08-05 | Int Language Engineering Corp | Machine assisted translation tools |
US5790423A (en) | 1995-06-14 | 1998-08-04 | Audible, Inc. | Interactive audio transmission receiving and playback system |
DE19526264A1 (en) | 1995-07-19 | 1997-04-10 | Daimler Benz Ag | Process for creating descriptors for the classification of texts |
US5751672A (en) | 1995-07-26 | 1998-05-12 | Sony Corporation | Compact disc changer utilizing disc database |
US6505160B1 (en) | 1995-07-27 | 2003-01-07 | Digimarc Corporation | Connected audio and other media objects |
GB9516762D0 (en) | 1995-08-16 | 1995-10-18 | Phelan Sean P | Computer system for identifying local resources |
US5913040A (en) | 1995-08-22 | 1999-06-15 | Backweb Ltd. | Method and apparatus for transmitting and displaying information between a remote network and a local computer |
US5713016A (en) | 1995-09-05 | 1998-01-27 | Electronic Data Systems Corporation | Process and system for determining relevance |
US6321205B1 (en) | 1995-10-03 | 2001-11-20 | Value Miner, Inc. | Method of and system for modeling and analyzing business improvement programs |
GB2306869B (en) | 1995-11-03 | 2000-09-20 | Patrik Garten | Listener operated radio programme selection and entertainment system |
US5708709A (en) | 1995-12-08 | 1998-01-13 | Sun Microsystems, Inc. | System and method for managing try-and-buy usage of application programs |
US5726909A (en) | 1995-12-08 | 1998-03-10 | Krikorian; Thomas M. | Continuous play background music system |
US5931907A (en) | 1996-01-23 | 1999-08-03 | British Telecommunications Public Limited Company | Software agent for comparing locally accessible keywords with meta-information and having pointers associated with distributed information |
US5930526A (en) | 1996-01-24 | 1999-07-27 | Intel Corporation | System for progressive transmission of compressed video including video data of first type of video frame played independently of video data of second type of video frame |
US5790935A (en) | 1996-01-30 | 1998-08-04 | Hughes Aircraft Company | Virtual on-demand digital information delivery system and method |
US5930768A (en) | 1996-02-06 | 1999-07-27 | Supersonic Boom, Inc. | Method and system for remote user controlled manufacturing |
US5864868A (en) | 1996-02-13 | 1999-01-26 | Contois; David C. | Computer control system and user interface for media playing devices |
JP3609562B2 (en) | 1996-11-15 | 2005-01-12 | 株式会社日立製作所 | Network management system |
US6047327A (en) | 1996-02-16 | 2000-04-04 | Intel Corporation | System for distributing electronic information to a targeted group of users |
US5764235A (en) | 1996-03-25 | 1998-06-09 | Insight Development Corporation | Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution |
US5881234A (en) | 1996-04-26 | 1999-03-09 | Schwob; Pierre R. | Method and system to provide internet access to users via non-home service providers |
US5956482A (en) | 1996-05-15 | 1999-09-21 | At&T Corp | Multimedia information service access |
US5983176A (en) | 1996-05-24 | 1999-11-09 | Magnifi, Inc. | Evaluation of media content in media files |
US5862220A (en) | 1996-06-03 | 1999-01-19 | Webtv Networks, Inc. | Method and apparatus for using network address information to improve the performance of network transactions |
US5945988A (en) | 1996-06-06 | 1999-08-31 | Intel Corporation | Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system |
DK0932398T3 (en) | 1996-06-28 | 2006-09-25 | Ortho Mcneil Pharm Inc | Use of topiramate or derivatives thereof for the manufacture of a medicament for the treatment of manic depressive bipolar disorders |
US5862339A (en) | 1996-07-09 | 1999-01-19 | Webtv Networks, Inc. | Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server |
US5872921A (en) | 1996-07-24 | 1999-02-16 | Datalink Systems Corp. | System and method for a real time data stream analyzer and alert system |
US5918019A (en) | 1996-07-29 | 1999-06-29 | Cisco Technology, Inc. | Virtual dial-up protocol for network communication |
US5740134A (en) | 1996-08-13 | 1998-04-14 | Peterson; Tim | Musical CD creation unit |
US6009382A (en) | 1996-08-19 | 1999-12-28 | International Business Machines Corporation | Word storage table for natural language determination |
US6035268A (en) | 1996-08-22 | 2000-03-07 | Lernout & Hauspie Speech Products N.V. | Method and apparatus for breaking words in a stream of text |
US5819291A (en) | 1996-08-23 | 1998-10-06 | General Electric Company | Matching new customer records to existing customer records in a large business database using hash key |
US6185427B1 (en) | 1996-09-06 | 2001-02-06 | Snaptrack, Inc. | Distributed satellite position system processing and application network |
US5819160A (en) | 1996-09-18 | 1998-10-06 | At&T Corp | Programmable radio subscription system for receiving selectively defined information |
US5721827A (en) | 1996-10-02 | 1998-02-24 | James Logan | System for electrically distributing personalized information |
US6052717A (en) | 1996-10-23 | 2000-04-18 | Family Systems, Ltd. | Interactive web book system |
DE69716632T2 (en) | 1996-12-02 | 2003-07-31 | Thomson Consumer Electronics | DEVICE AND METHOD FOR IDENTIFYING INFORMATION STORED ON A MEDIUM |
US6031795A (en) | 1996-12-02 | 2000-02-29 | Thomson Consumer Electronics, Inc. | Method and apparatus for programming a jukebox with information related to content on media contained therein |
US5931901A (en) | 1996-12-09 | 1999-08-03 | Robert L. Wolfe | Programmed music on demand from the internet |
US5913041A (en) | 1996-12-09 | 1999-06-15 | Hewlett-Packard Company | System for determining data transfer rates in accordance with log information relates to history of data transfer activities that independently stored in content servers |
US6021203A (en) | 1996-12-11 | 2000-02-01 | Microsoft Corporation | Coercion resistant one-time-pad cryptosystem that facilitates transmission of messages having different levels of security |
US6138142A (en) | 1996-12-20 | 2000-10-24 | Intel Corporation | Method for providing customized Web information based on attributes of the requester |
US5898833A (en) | 1996-12-31 | 1999-04-27 | Intel Corporation | Method and apparatus for increasing the effective bandwidth of video sequences transmitted over a network by using cached data |
US5950189A (en) * | 1997-01-02 | 1999-09-07 | At&T Corp | Retrieval system and method |
JP3887867B2 (en) | 1997-02-26 | 2007-02-28 | 株式会社日立製作所 | How to register structured documents |
US5884312A (en) | 1997-02-28 | 1999-03-16 | Electronic Data Systems Corporation | System and method for securely accessing information from disparate data sources through a network |
US6097719A (en) | 1997-03-11 | 2000-08-01 | Bell Atlantic Network Services, Inc. | Public IP transport network |
DE69820141T2 (en) | 1997-03-27 | 2004-06-17 | Victor Company of Japan, Ltd., Yokohama | Time code signal generator |
US5926207A (en) | 1997-03-31 | 1999-07-20 | Compaq Computer Corporation | Channel server functionality |
US7167857B2 (en) | 1997-04-15 | 2007-01-23 | Gracenote, Inc. | Method and system for finding approximate matches in database |
US7308485B2 (en) | 1997-04-15 | 2007-12-11 | Gracenote, Inc. | Method and system for accessing web pages based on playback of recordings |
US5987525A (en) | 1997-04-15 | 1999-11-16 | Cddb, Inc. | Network delivery of interactive entertainment synchronized to playback of audio recordings |
CA2329345A1 (en) | 1997-04-22 | 1998-10-29 | Greg Hetherington | Method and apparatus for processing free-format data |
US6070185A (en) | 1997-05-02 | 2000-05-30 | Lucent Technologies Inc. | Technique for obtaining information and services over a communication network |
US6065058A (en) | 1997-05-09 | 2000-05-16 | International Business Machines Corp. | Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy |
US6282548B1 (en) | 1997-06-21 | 2001-08-28 | Alexa Internet | Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata |
US6370513B1 (en) | 1997-08-08 | 2002-04-09 | Parasoft Corporation | Method and apparatus for automated selection, organization, and recommendation of items |
US6047251A (en) | 1997-09-15 | 2000-04-04 | Caere Corporation | Automatic language identification system for multilingual optical character recognition |
US6185560B1 (en) | 1998-04-15 | 2001-02-06 | Sungard Eprocess Intelligance Inc. | System for automatically organizing data in accordance with pattern hierarchies therein |
US6205126B1 (en) | 1997-09-30 | 2001-03-20 | Ericsson Inc. | Method and apparatus for automatically determining an ISP local access number based on device location |
JPH11110324A (en) | 1997-10-07 | 1999-04-23 | Hitachi Ltd | Substitutive server selector and substitutive server |
US6026398A (en) | 1997-10-16 | 2000-02-15 | Imarket, Incorporated | System and methods for searching and matching databases |
DE69712485T2 (en) | 1997-10-23 | 2002-12-12 | Sony Int Europe Gmbh | Voice interface for a home network |
US6925441B1 (en) | 1997-10-27 | 2005-08-02 | Marketswitch Corp. | System and method of targeted marketing |
US6026439A (en) | 1997-10-28 | 2000-02-15 | International Business Machines Corporation | File transfers using playlists |
US5941951A (en) | 1997-10-31 | 1999-08-24 | International Business Machines Corporation | Methods for real-time deterministic delivery of multimedia data in a client/server system |
US5996015A (en) | 1997-10-31 | 1999-11-30 | International Business Machines Corporation | Method of delivering seamless and continuous presentation of multimedia data files to a target device by assembling and concatenating multimedia segments in memory |
US6047268A (en) | 1997-11-04 | 2000-04-04 | A.T.&T. Corporation | Method and apparatus for billing for transactions conducted over the internet |
US6134532A (en) | 1997-11-14 | 2000-10-17 | Aptex Software, Inc. | System and method for optimal adaptive matching of users to most relevant entity and information in real-time |
ES2397501T3 (en) | 1997-11-25 | 2013-03-07 | Motorola Mobility, Llc | Methods, systems and manufactured elements of audio content reproduction |
US20020002039A1 (en) | 1998-06-12 | 2002-01-03 | Safi Qureshey | Network-enabled audio device |
US6807632B1 (en) | 1999-01-21 | 2004-10-19 | Emc Corporation | Content addressable information encapsulation, representation, and transfer |
EP0933776A3 (en) | 1998-01-30 | 2006-05-17 | Victor Company of Japan, Ltd. | Signal encoding apparatus, audio data transmitting method, audio data recording method, audio data decoding method and audio disc |
US6012098A (en) | 1998-02-23 | 2000-01-04 | International Business Machines Corp. | Servlet pairing for isolation of the retrieval and rendering of data |
EP1029402A1 (en) | 1998-02-23 | 2000-08-23 | Personal Audio, Inc. | System for distributing personalized audio programming |
US6081508A (en) | 1998-02-25 | 2000-06-27 | Indus River Networks, Inc. | Remote computer communication |
US6064980A (en) | 1998-03-17 | 2000-05-16 | Amazon.Com, Inc. | System and methods for collaborative recommendations |
US6272456B1 (en) | 1998-03-19 | 2001-08-07 | Microsoft Corporation | System and method for identifying the language of written text having a plurality of different length n-gram profiles |
US6065051A (en) | 1998-04-15 | 2000-05-16 | Hewlett-Packard Company | Apparatus and method for communication between multiple browsers |
US6246672B1 (en) | 1998-04-28 | 2001-06-12 | International Business Machines Corp. | Singlecast interactive radio system |
US6370315B1 (en) | 1998-04-30 | 2002-04-09 | Matsushita Electric Industrial Co., Ltd. | Playback time compression and expansion method and apparatus |
US6201176B1 (en) | 1998-05-07 | 2001-03-13 | Canon Kabushiki Kaisha | System and method for querying a music database |
US6314421B1 (en) | 1998-05-12 | 2001-11-06 | David M. Sharnoff | Method and apparatus for indexing documents for message filtering |
AU749314B2 (en) | 1998-05-15 | 2002-06-20 | Unicast Communications Corporation | A technique for implementing browser-initiated network-distributed advertising and for interstitially displaying an advertisement |
GB9810843D0 (en) | 1998-05-21 | 1998-07-22 | 3Com Technologies Ltd | Method for storing data in network devices |
GB9811574D0 (en) | 1998-05-30 | 1998-07-29 | Ibm | Indexed file system and a method and a mechanism for accessing data records from such a system |
US6031797A (en) | 1998-06-11 | 2000-02-29 | Sony Corporation | Media playback device capable of shuffled playback based on a user's preferences |
US6298446B1 (en) | 1998-06-14 | 2001-10-02 | Alchemedia Ltd. | Method and system for copyright protection of digital images transmitted over networks |
US5969283A (en) * | 1998-06-17 | 1999-10-19 | Looney Productions, Llc | Music organizer and entertainment center |
JP2000013385A (en) | 1998-06-19 | 2000-01-14 | Fujitsu Ltd | Cell bridge, cell bridge method and information transmission system having cell bridge |
US6252988B1 (en) | 1998-07-09 | 2001-06-26 | Lucent Technologies Inc. | Method and apparatus for character recognition using stop words |
US6182142B1 (en) | 1998-07-10 | 2001-01-30 | Encommerce, Inc. | Distributed access management of information resources |
US6144958A (en) | 1998-07-15 | 2000-11-07 | Amazon.Com, Inc. | System and method for correcting spelling errors in search queries |
US6321221B1 (en) | 1998-07-17 | 2001-11-20 | Net Perceptions, Inc. | System, method and article of manufacture for increasing the user value of recommendations |
US6611812B2 (en) | 1998-08-13 | 2003-08-26 | International Business Machines Corporation | Secure electronic content distribution on CDS and DVDs |
US6181692B1 (en) | 1998-09-03 | 2001-01-30 | Genesys Telecommunications Laboratories Inc | Method and apparatus for data routing, delivery, and authentication in a packet data network |
US6434535B1 (en) | 1998-11-13 | 2002-08-13 | Iomega Corporation | System for prepayment of electronic content using removable media and for prevention of unauthorized copying of same |
SE513356C2 (en) | 1998-11-20 | 2000-08-28 | Ericsson Telefon Ab L M | Method and apparatus for encrypting images |
US6167369A (en) | 1998-12-23 | 2000-12-26 | Xerox Company | Automatic language identification using both N-gram and word information |
US6085242A (en) | 1999-01-05 | 2000-07-04 | Chandra; Rohit | Method for managing a repository of user information using a personalized uniform locator |
US6611813B1 (en) | 2000-01-20 | 2003-08-26 | Listen.Com | Digital audio and video playback with performance complement testing |
WO2000046681A1 (en) | 1999-02-08 | 2000-08-10 | Geotrust, Inc. | Content certification |
US6249810B1 (en) | 1999-02-19 | 2001-06-19 | Chaincast, Inc. | Method and system for implementing an internet radio device for receiving and/or transmitting media information |
US20020013852A1 (en) | 2000-03-03 | 2002-01-31 | Craig Janik | System for providing content, management, and interactivity for thin client devices |
AU3907300A (en) | 1999-03-19 | 2000-10-09 | Raf Technology, Inc. | Rollup functions for efficient storage, presentation, and analysis of data |
US6741980B1 (en) | 1999-03-23 | 2004-05-25 | Microstrategy Inc. | System and method for automatic, real-time delivery of personalized informational and transactional data to users via content delivery device |
US6658151B2 (en) | 1999-04-08 | 2003-12-02 | Ricoh Co., Ltd. | Extracting information from symbolically compressed document images |
GB9908631D0 (en) * | 1999-04-15 | 1999-06-09 | Canon Kk | Search engine user interface |
US6405203B1 (en) | 1999-04-21 | 2002-06-11 | Research Investment Network, Inc. | Method and program product for preventing unauthorized users from using the content of an electronic storage medium |
US6757740B1 (en) | 1999-05-03 | 2004-06-29 | Digital Envoy, Inc. | Systems and methods for determining collecting and using geographic locations of internet users |
US6430539B1 (en) | 1999-05-06 | 2002-08-06 | Hnc Software | Predictive modeling of consumer financial behavior |
WO2000068820A1 (en) | 1999-05-10 | 2000-11-16 | Jude Gerard Dieterman | Method of updating computer configuration settings |
US6522769B1 (en) | 1999-05-19 | 2003-02-18 | Digimarc Corporation | Reconfiguring a watermark detector |
US6102406A (en) | 1999-06-07 | 2000-08-15 | Steven A. Miles | Internet-based advertising scheme employing scavenger hunt metaphor |
US6389463B2 (en) | 1999-06-16 | 2002-05-14 | Im Networks, Inc. | Internet radio receiver having a rotary knob for selecting audio content provider designations and negotiating internet access to URLS associated with the designations |
EP1200902A2 (en) | 1999-07-16 | 2002-05-02 | Agentarts, Inc. | Methods and system for generating automated alternative content recommendations |
US7209900B2 (en) | 1999-08-27 | 2007-04-24 | Charles Eric Hunter | Music distribution systems |
US20020095387A1 (en) | 1999-08-27 | 2002-07-18 | Bertrand Sosa | Online content portal system |
US6557026B1 (en) | 1999-09-29 | 2003-04-29 | Morphism, L.L.C. | System and apparatus for dynamically generating audible notices from an information network |
US6549922B1 (en) * | 1999-10-01 | 2003-04-15 | Alok Srivastava | System for collecting, transforming and managing media metadata |
US6192340B1 (en) | 1999-10-19 | 2001-02-20 | Max Abecassis | Integration of music from a personal library with real-time information |
US6569206B1 (en) | 1999-10-29 | 2003-05-27 | Verizon Laboratories Inc. | Facilitation of hypervideo by automatic IR techniques in response to user requests |
EP2448155A3 (en) | 1999-11-10 | 2014-05-07 | Pandora Media, Inc. | Internet radio and broadcast method |
US6526411B1 (en) | 1999-11-15 | 2003-02-25 | Sean Ward | System and method for creating dynamic playlists |
WO2001045087A1 (en) | 1999-12-14 | 2001-06-21 | Citibank, N.A. | Method and system for database query |
US6343317B1 (en) | 1999-12-29 | 2002-01-29 | Harry A. Glorikian | Internet system for connecting client-travelers with geographically-associated data |
US20010042107A1 (en) | 2000-01-06 | 2001-11-15 | Palm Stephen R. | Networked audio player transport protocol and architecture |
US20010028662A1 (en) | 2000-01-18 | 2001-10-11 | Hunt Paul M. | Method and system of real-time optimization and implementation of content and advertising programming decisions for broadcasts and narrowcasts |
JP2001202368A (en) | 2000-01-18 | 2001-07-27 | Hitachi Maxell Ltd | Music information retrieving device to be functioned as www server on the internet |
US6389467B1 (en) | 2000-01-24 | 2002-05-14 | Friskit, Inc. | Streaming media search and continuous playback system of media resources located by multiple network addresses |
US20030007507A1 (en) | 2000-08-01 | 2003-01-09 | Doron Rajwan | Data streaming |
US6532477B1 (en) * | 2000-02-23 | 2003-03-11 | Sun Microsystems, Inc. | Method and apparatus for generating an audio signature for a data item |
CA2299943A1 (en) | 2000-03-03 | 2001-09-03 | Shane M. Rogers | Apparatus for adjusting a local sampling rate based on the rate of reception of packets |
US20020129123A1 (en) | 2000-03-03 | 2002-09-12 | Johnson Scott C | Systems and methods for intelligent information retrieval and delivery in an information management environment |
AU2000237729A1 (en) | 2000-03-24 | 2001-10-08 | Mindarrow Systems, Inc. | Streaming using multiple data files |
US6225546B1 (en) | 2000-04-05 | 2001-05-01 | International Business Machines Corporation | Method and apparatus for music summarization and creation of audio summaries |
US6874152B2 (en) | 2000-04-19 | 2005-03-29 | Nowavision, Llc | System for accessing content by virtual remote control through mapping channel codes to network addresses |
US8352331B2 (en) | 2000-05-03 | 2013-01-08 | Yahoo! Inc. | Relationship discovery engine |
US20020010789A1 (en) | 2000-05-04 | 2002-01-24 | Lord Frank H. | Broadcast multimedia delivery system |
WO2001086593A2 (en) | 2000-05-09 | 2001-11-15 | 868970 Ontario Inc. | Synchronized convergence platform |
US6505153B1 (en) | 2000-05-22 | 2003-01-07 | Compaq Information Technologies Group, L.P. | Efficient method for producing off-line closed captions |
US20050149759A1 (en) | 2000-06-15 | 2005-07-07 | Movemoney, Inc. | User/product authentication and piracy management system |
US6925495B2 (en) | 2000-07-13 | 2005-08-02 | Vendaria Media, Inc. | Method and system for delivering and monitoring an on-demand playlist over a network using a template |
FI109393B (en) | 2000-07-14 | 2002-07-15 | Nokia Corp | Method for encoding media stream, a scalable and a terminal |
US6657117B2 (en) | 2000-07-14 | 2003-12-02 | Microsoft Corporation | System and methods for providing automatic classification of media entities according to tempo properties |
US20020010621A1 (en) | 2000-07-19 | 2002-01-24 | Bell Christopher Nathan | Incentives for content consumption |
US6655963B1 (en) | 2000-07-31 | 2003-12-02 | Microsoft Corporation | Methods and apparatus for predicting and selectively collecting preferences based on personality diagnosis |
US7958251B2 (en) | 2000-08-04 | 2011-06-07 | Goldman Sachs & Co. | Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients |
US7139844B2 (en) | 2000-08-04 | 2006-11-21 | Goldman Sachs & Co. | Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients |
DE10042318A1 (en) | 2000-08-29 | 2002-03-14 | Degussa | Matt pure powder coatings |
US6615208B1 (en) | 2000-09-01 | 2003-09-02 | Telcordia Technologies, Inc. | Automatic recommendation of products using latent semantic indexing of content |
US20020065857A1 (en) | 2000-10-04 | 2002-05-30 | Zbigniew Michalewicz | System and method for analysis and clustering of documents for search engine |
US6889383B1 (en) | 2000-10-23 | 2005-05-03 | Clearplay, Inc. | Delivery of navigation data for playback of audio and video content |
US7277766B1 (en) * | 2000-10-24 | 2007-10-02 | Moodlogic, Inc. | Method and system for analyzing digital audio files |
US6725446B1 (en) | 2000-11-01 | 2004-04-20 | Digital Integrator, Inc. | Information distribution method and system |
US7406529B2 (en) | 2001-02-09 | 2008-07-29 | Yahoo! Inc. | System and method for detecting and verifying digitized content over a computer network |
US7103843B2 (en) | 2001-05-25 | 2006-09-05 | International Business Machines Corporation | Method and apparatus for visualizing metrics in a data space |
US7167533B2 (en) | 2001-06-30 | 2007-01-23 | Intel Corporation | Apparatus and method for communication link receiver having adaptive clock phase shifting |
JP4398242B2 (en) | 2001-07-31 | 2010-01-13 | グレースノート インコーポレイテッド | Multi-stage identification method for recording |
JP2005526340A (en) * | 2001-08-27 | 2005-09-02 | グレースノート インコーポレイテッド | Playlist generation, distribution and navigation |
US7027520B2 (en) | 2001-08-30 | 2006-04-11 | Thomson Licensing | Method and apparatus for simultaneously retrieving portions of a data stream from different channels |
US7721337B2 (en) | 2001-10-26 | 2010-05-18 | Ibiquity Digital Corporation | System and method for providing a push of background data |
US7260439B2 (en) | 2001-11-01 | 2007-08-21 | Fuji Xerox Co., Ltd. | Systems and methods for the automatic extraction of audio excerpts |
US7356501B2 (en) | 2002-01-24 | 2008-04-08 | Eduardo Enrique Churquina | Integrated price and volume display of market traded securities using price-volume bars |
US7073193B2 (en) * | 2002-04-16 | 2006-07-04 | Microsoft Corporation | Media content descriptions |
-
2003
- 2003-04-02 US US10/406,799 patent/US7707221B1/en not_active Expired - Fee Related
-
2009
- 2009-06-08 US US12/480,228 patent/US7984062B2/en not_active Expired - Fee Related
-
2011
- 2011-07-18 US US13/185,352 patent/US20120011138A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173279B1 (en) * | 1998-04-09 | 2001-01-09 | At&T Corp. | Method of using a natural language interface to retrieve information from one or more data resources |
US6263313B1 (en) * | 1998-08-13 | 2001-07-17 | International Business Machines Corporation | Method and apparatus to create encoded digital content |
US20010005823A1 (en) * | 1999-12-24 | 2001-06-28 | Uwe Fischer | Method and system for generating a characteristic identifier for digital data and for detecting identical digital data |
US20020099737A1 (en) * | 2000-11-21 | 2002-07-25 | Porter Charles A. | Metadata quality improvement |
US20020178276A1 (en) * | 2001-03-26 | 2002-11-28 | Mccartney Jason | Methods and systems for processing media content |
US20030182139A1 (en) * | 2002-03-22 | 2003-09-25 | Microsoft Corporation | Storage, retrieval, and display of contextual art with digital media files |
Cited By (315)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9646614B2 (en) | 2000-03-16 | 2017-05-09 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US11928604B2 (en) | 2005-09-08 | 2024-03-12 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US10318871B2 (en) | 2005-09-08 | 2019-06-11 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US8930191B2 (en) | 2006-09-08 | 2015-01-06 | Apple Inc. | Paraphrasing of user requests and results by automated digital assistant |
US9117447B2 (en) | 2006-09-08 | 2015-08-25 | Apple Inc. | Using event alert text as input to an automated assistant |
US8942986B2 (en) | 2006-09-08 | 2015-01-27 | Apple Inc. | Determining user intent based on ontologies of domains |
US11671920B2 (en) | 2007-04-03 | 2023-06-06 | Apple Inc. | Method and system for operating a multifunction portable electronic device using voice-activation |
US11012942B2 (en) | 2007-04-03 | 2021-05-18 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10568032B2 (en) | 2007-04-03 | 2020-02-18 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US11023513B2 (en) | 2007-12-20 | 2021-06-01 | Apple Inc. | Method and apparatus for searching using an active ontology |
US10381016B2 (en) | 2008-01-03 | 2019-08-13 | Apple Inc. | Methods and apparatus for altering audio output signals |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US9626955B2 (en) | 2008-04-05 | 2017-04-18 | Apple Inc. | Intelligent text-to-speech conversion |
US9865248B2 (en) | 2008-04-05 | 2018-01-09 | Apple Inc. | Intelligent text-to-speech conversion |
US10108612B2 (en) | 2008-07-31 | 2018-10-23 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US9535906B2 (en) | 2008-07-31 | 2017-01-03 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US20100082328A1 (en) * | 2008-09-29 | 2010-04-01 | Apple Inc. | Systems and methods for speech preprocessing in text to speech synthesis |
US8712776B2 (en) | 2008-09-29 | 2014-04-29 | Apple Inc. | Systems and methods for selective text to speech synthesis |
US20100082349A1 (en) * | 2008-09-29 | 2010-04-01 | Apple Inc. | Systems and methods for selective text to speech synthesis |
US10643611B2 (en) | 2008-10-02 | 2020-05-05 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US11348582B2 (en) | 2008-10-02 | 2022-05-31 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US11900936B2 (en) | 2008-10-02 | 2024-02-13 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US9959870B2 (en) | 2008-12-11 | 2018-05-01 | Apple Inc. | Speech recognition involving a mobile device |
US10475446B2 (en) | 2009-06-05 | 2019-11-12 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US11080012B2 (en) | 2009-06-05 | 2021-08-03 | Apple Inc. | Interface for a virtual digital assistant |
US10795541B2 (en) | 2009-06-05 | 2020-10-06 | Apple Inc. | Intelligent organization of tasks items |
US10283110B2 (en) | 2009-07-02 | 2019-05-07 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US10706841B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Task flow identification based on user intent |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US11423886B2 (en) | 2010-01-18 | 2022-08-23 | Apple Inc. | Task flow identification based on user intent |
US9548050B2 (en) | 2010-01-18 | 2017-01-17 | Apple Inc. | Intelligent automated assistant |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US8903716B2 (en) | 2010-01-18 | 2014-12-02 | Apple Inc. | Personalized vocabulary for digital assistant |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10741185B2 (en) | 2010-01-18 | 2020-08-11 | Apple Inc. | Intelligent automated assistant |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US8892446B2 (en) | 2010-01-18 | 2014-11-18 | Apple Inc. | Service orchestration for intelligent automated assistant |
US9633660B2 (en) | 2010-02-25 | 2017-04-25 | Apple Inc. | User profiling for voice input processing |
US10049675B2 (en) | 2010-02-25 | 2018-08-14 | Apple Inc. | User profiling for voice input processing |
US10692504B2 (en) | 2010-02-25 | 2020-06-23 | Apple Inc. | User profiling for voice input processing |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US10417405B2 (en) | 2011-03-21 | 2019-09-17 | Apple Inc. | Device access using voice authentication |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US10102359B2 (en) | 2011-03-21 | 2018-10-16 | Apple Inc. | Device access using voice authentication |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US11350253B2 (en) | 2011-06-03 | 2022-05-31 | Apple Inc. | Active transport based notifications |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US11120372B2 (en) | 2011-06-03 | 2021-09-14 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US9798393B2 (en) | 2011-08-29 | 2017-10-24 | Apple Inc. | Text correction processing |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US20130166598A1 (en) * | 2011-12-27 | 2013-06-27 | Business Objects Software Ltd. | Managing Business Objects Data Sources |
US8938475B2 (en) * | 2011-12-27 | 2015-01-20 | Sap Se | Managing business objects data sources |
US9092478B2 (en) | 2011-12-27 | 2015-07-28 | Sap Se | Managing business objects data sources |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US11069336B2 (en) | 2012-03-02 | 2021-07-20 | Apple Inc. | Systems and methods for name pronunciation |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US9424335B2 (en) * | 2012-04-13 | 2016-08-23 | Theplatform, Llc | Multiple phase content ingest |
US20140330852A1 (en) * | 2012-04-13 | 2014-11-06 | Theplatform For Media, Inc. | Multiple Phase Content Ingest |
US9953088B2 (en) | 2012-05-14 | 2018-04-24 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US11321116B2 (en) | 2012-05-15 | 2022-05-03 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US11269678B2 (en) | 2012-05-15 | 2022-03-08 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US10079014B2 (en) | 2012-06-08 | 2018-09-18 | Apple Inc. | Name recognition system |
US9442987B2 (en) | 2012-06-19 | 2016-09-13 | Microsoft Technology Licensing, Llc | Automatically generating music marketplace editorial content |
US8843500B2 (en) | 2012-06-19 | 2014-09-23 | Microsoft Corporation | Automatically generating music marketplace editorial content |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9971774B2 (en) | 2012-09-19 | 2018-05-15 | Apple Inc. | Voice-based media searching |
US10714117B2 (en) | 2013-02-07 | 2020-07-14 | Apple Inc. | Voice trigger for a digital assistant |
US10978090B2 (en) | 2013-02-07 | 2021-04-13 | Apple Inc. | Voice trigger for a digital assistant |
US11862186B2 (en) | 2013-02-07 | 2024-01-02 | Apple Inc. | Voice trigger for a digital assistant |
US10199051B2 (en) | 2013-02-07 | 2019-02-05 | Apple Inc. | Voice trigger for a digital assistant |
US11557310B2 (en) | 2013-02-07 | 2023-01-17 | Apple Inc. | Voice trigger for a digital assistant |
US11636869B2 (en) | 2013-02-07 | 2023-04-25 | Apple Inc. | Voice trigger for a digital assistant |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
US11388291B2 (en) | 2013-03-14 | 2022-07-12 | Apple Inc. | System and method for processing voicemail |
US9697822B1 (en) | 2013-03-15 | 2017-07-04 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US9922642B2 (en) | 2013-03-15 | 2018-03-20 | Apple Inc. | Training an at least partial voice command system |
US11798547B2 (en) | 2013-03-15 | 2023-10-24 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US9620104B2 (en) | 2013-06-07 | 2017-04-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9966060B2 (en) | 2013-06-07 | 2018-05-08 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
US9633674B2 (en) | 2013-06-07 | 2017-04-25 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
US10657961B2 (en) | 2013-06-08 | 2020-05-19 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US9966068B2 (en) | 2013-06-08 | 2018-05-08 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US11048473B2 (en) | 2013-06-09 | 2021-06-29 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10185542B2 (en) | 2013-06-09 | 2019-01-22 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US11727219B2 (en) | 2013-06-09 | 2023-08-15 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10769385B2 (en) | 2013-06-09 | 2020-09-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US9300784B2 (en) | 2013-06-13 | 2016-03-29 | Apple Inc. | System and method for emergency calls initiated by voice command |
US10791216B2 (en) | 2013-08-06 | 2020-09-29 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US11314370B2 (en) | 2013-12-06 | 2022-04-26 | Apple Inc. | Method for extracting salient dialog usage from live data |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US11257504B2 (en) | 2014-05-30 | 2022-02-22 | Apple Inc. | Intelligent assistant for home automation |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US10878809B2 (en) | 2014-05-30 | 2020-12-29 | Apple Inc. | Multi-command single utterance input method |
US11699448B2 (en) | 2014-05-30 | 2023-07-11 | Apple Inc. | Intelligent assistant for home automation |
US11810562B2 (en) | 2014-05-30 | 2023-11-07 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US11133008B2 (en) | 2014-05-30 | 2021-09-28 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US10497365B2 (en) | 2014-05-30 | 2019-12-03 | Apple Inc. | Multi-command single utterance input method |
US11670289B2 (en) | 2014-05-30 | 2023-06-06 | Apple Inc. | Multi-command single utterance input method |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US10083690B2 (en) | 2014-05-30 | 2018-09-25 | Apple Inc. | Better resolution when referencing to concepts |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US10169329B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Exemplar-based natural language processing |
US10657966B2 (en) | 2014-05-30 | 2020-05-19 | Apple Inc. | Better resolution when referencing to concepts |
US10714095B2 (en) | 2014-05-30 | 2020-07-14 | Apple Inc. | Intelligent assistant for home automation |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9966065B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | Multi-command single utterance input method |
US10417344B2 (en) | 2014-05-30 | 2019-09-17 | Apple Inc. | Exemplar-based natural language processing |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US10699717B2 (en) | 2014-05-30 | 2020-06-30 | Apple Inc. | Intelligent assistant for home automation |
US11516537B2 (en) | 2014-06-30 | 2022-11-29 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US9668024B2 (en) | 2014-06-30 | 2017-05-30 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US11838579B2 (en) | 2014-06-30 | 2023-12-05 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10904611B2 (en) | 2014-06-30 | 2021-01-26 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10431204B2 (en) | 2014-09-11 | 2019-10-01 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
US10438595B2 (en) | 2014-09-30 | 2019-10-08 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US9986419B2 (en) | 2014-09-30 | 2018-05-29 | Apple Inc. | Social reminders |
US10390213B2 (en) | 2014-09-30 | 2019-08-20 | Apple Inc. | Social reminders |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10453443B2 (en) | 2014-09-30 | 2019-10-22 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US11556230B2 (en) | 2014-12-02 | 2023-01-17 | Apple Inc. | Data detection |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US11231904B2 (en) | 2015-03-06 | 2022-01-25 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US11087759B2 (en) | 2015-03-08 | 2021-08-10 | Apple Inc. | Virtual assistant activation |
US10529332B2 (en) | 2015-03-08 | 2020-01-07 | Apple Inc. | Virtual assistant activation |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US11842734B2 (en) | 2015-03-08 | 2023-12-12 | Apple Inc. | Virtual assistant activation |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US10311871B2 (en) | 2015-03-08 | 2019-06-04 | Apple Inc. | Competing devices responding to voice triggers |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US10930282B2 (en) | 2015-03-08 | 2021-02-23 | Apple Inc. | Competing devices responding to voice triggers |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US11468282B2 (en) | 2015-05-15 | 2022-10-11 | Apple Inc. | Virtual assistant in a communication session |
US11127397B2 (en) | 2015-05-27 | 2021-09-21 | Apple Inc. | Device voice control |
US11070949B2 (en) | 2015-05-27 | 2021-07-20 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on an electronic device with a touch-sensitive display |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10356243B2 (en) | 2015-06-05 | 2019-07-16 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US10681212B2 (en) | 2015-06-05 | 2020-06-09 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US11010127B2 (en) | 2015-06-29 | 2021-05-18 | Apple Inc. | Virtual assistant for media playback |
US11947873B2 (en) | 2015-06-29 | 2024-04-02 | Apple Inc. | Virtual assistant for media playback |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US11550542B2 (en) | 2015-09-08 | 2023-01-10 | Apple Inc. | Zero latency digital assistant |
US20170069498A1 (en) * | 2015-09-08 | 2017-03-09 | The Regents Of The University Of California | Surface doping of nanostructures |
US11500672B2 (en) | 2015-09-08 | 2022-11-15 | Apple Inc. | Distributed personal assistant |
US11853536B2 (en) | 2015-09-08 | 2023-12-26 | Apple Inc. | Intelligent automated assistant in a media environment |
US11954405B2 (en) | 2015-09-08 | 2024-04-09 | Apple Inc. | Zero latency digital assistant |
US11126400B2 (en) | 2015-09-08 | 2021-09-21 | Apple Inc. | Zero latency digital assistant |
US11809483B2 (en) | 2015-09-08 | 2023-11-07 | Apple Inc. | Intelligent automated assistant for media search and playback |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11526368B2 (en) | 2015-11-06 | 2022-12-13 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11809886B2 (en) | 2015-11-06 | 2023-11-07 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11886805B2 (en) | 2015-11-09 | 2024-01-30 | Apple Inc. | Unconventional virtual assistant interactions |
US10354652B2 (en) | 2015-12-02 | 2019-07-16 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10942703B2 (en) | 2015-12-23 | 2021-03-09 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US11853647B2 (en) | 2015-12-23 | 2023-12-26 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US11069347B2 (en) | 2016-06-08 | 2021-07-20 | Apple Inc. | Intelligent automated assistant for media exploration |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US10354011B2 (en) | 2016-06-09 | 2019-07-16 | Apple Inc. | Intelligent automated assistant in a home environment |
US11657820B2 (en) | 2016-06-10 | 2023-05-23 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US11037565B2 (en) | 2016-06-10 | 2021-06-15 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10733993B2 (en) | 2016-06-10 | 2020-08-04 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10089072B2 (en) | 2016-06-11 | 2018-10-02 | Apple Inc. | Intelligent device arbitration and control |
US10297253B2 (en) | 2016-06-11 | 2019-05-21 | Apple Inc. | Application integration with a digital assistant |
US10521466B2 (en) | 2016-06-11 | 2019-12-31 | Apple Inc. | Data driven natural language event detection and classification |
US10580409B2 (en) | 2016-06-11 | 2020-03-03 | Apple Inc. | Application integration with a digital assistant |
US10269345B2 (en) | 2016-06-11 | 2019-04-23 | Apple Inc. | Intelligent task discovery |
US11809783B2 (en) | 2016-06-11 | 2023-11-07 | Apple Inc. | Intelligent device arbitration and control |
US10942702B2 (en) | 2016-06-11 | 2021-03-09 | Apple Inc. | Intelligent device arbitration and control |
US11152002B2 (en) | 2016-06-11 | 2021-10-19 | Apple Inc. | Application integration with a digital assistant |
US11749275B2 (en) | 2016-06-11 | 2023-09-05 | Apple Inc. | Application integration with a digital assistant |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
US10553215B2 (en) | 2016-09-23 | 2020-02-04 | Apple Inc. | Intelligent automated assistant |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US11656884B2 (en) | 2017-01-09 | 2023-05-23 | Apple Inc. | Application integration with a digital assistant |
US10332518B2 (en) | 2017-05-09 | 2019-06-25 | Apple Inc. | User interface for correcting recognition errors |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
US10741181B2 (en) | 2017-05-09 | 2020-08-11 | Apple Inc. | User interface for correcting recognition errors |
US11599331B2 (en) | 2017-05-11 | 2023-03-07 | Apple Inc. | Maintaining privacy of personal information |
US10755703B2 (en) | 2017-05-11 | 2020-08-25 | Apple Inc. | Offline personal assistant |
US10847142B2 (en) | 2017-05-11 | 2020-11-24 | Apple Inc. | Maintaining privacy of personal information |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US11467802B2 (en) | 2017-05-11 | 2022-10-11 | Apple Inc. | Maintaining privacy of personal information |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
US11580990B2 (en) | 2017-05-12 | 2023-02-14 | Apple Inc. | User-specific acoustic models |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
US10791176B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US11405466B2 (en) | 2017-05-12 | 2022-08-02 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10789945B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Low-latency intelligent automated assistant |
US11538469B2 (en) | 2017-05-12 | 2022-12-27 | Apple Inc. | Low-latency intelligent automated assistant |
US10410637B2 (en) | 2017-05-12 | 2019-09-10 | Apple Inc. | User-specific acoustic models |
US11862151B2 (en) | 2017-05-12 | 2024-01-02 | Apple Inc. | Low-latency intelligent automated assistant |
US11380310B2 (en) | 2017-05-12 | 2022-07-05 | Apple Inc. | Low-latency intelligent automated assistant |
US10810274B2 (en) | 2017-05-15 | 2020-10-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
US10482874B2 (en) | 2017-05-15 | 2019-11-19 | Apple Inc. | Hierarchical belief states for digital assistants |
US10748546B2 (en) | 2017-05-16 | 2020-08-18 | Apple Inc. | Digital assistant services based on device capabilities |
US11532306B2 (en) | 2017-05-16 | 2022-12-20 | Apple Inc. | Detecting a trigger of a digital assistant |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US10909171B2 (en) | 2017-05-16 | 2021-02-02 | Apple Inc. | Intelligent automated assistant for media exploration |
US11675829B2 (en) | 2017-05-16 | 2023-06-13 | Apple Inc. | Intelligent automated assistant for media exploration |
US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
US11217255B2 (en) | 2017-05-16 | 2022-01-04 | Apple Inc. | Far-field extension for digital assistant services |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US11710482B2 (en) | 2018-03-26 | 2023-07-25 | Apple Inc. | Natural assistant interaction |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
US11907436B2 (en) | 2018-05-07 | 2024-02-20 | Apple Inc. | Raise to speak |
US11487364B2 (en) | 2018-05-07 | 2022-11-01 | Apple Inc. | Raise to speak |
US11169616B2 (en) | 2018-05-07 | 2021-11-09 | Apple Inc. | Raise to speak |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US11900923B2 (en) | 2018-05-07 | 2024-02-13 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US11854539B2 (en) | 2018-05-07 | 2023-12-26 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
US11431642B2 (en) | 2018-06-01 | 2022-08-30 | Apple Inc. | Variable latency device coordination |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US10720160B2 (en) | 2018-06-01 | 2020-07-21 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10984798B2 (en) | 2018-06-01 | 2021-04-20 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US11495218B2 (en) | 2018-06-01 | 2022-11-08 | Apple Inc. | Virtual assistant operation in multi-device environments |
US11009970B2 (en) | 2018-06-01 | 2021-05-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US11360577B2 (en) | 2018-06-01 | 2022-06-14 | Apple Inc. | Attention aware virtual assistant dismissal |
US10684703B2 (en) | 2018-06-01 | 2020-06-16 | Apple Inc. | Attention aware virtual assistant dismissal |
US11630525B2 (en) | 2018-06-01 | 2023-04-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US10403283B1 (en) | 2018-06-01 | 2019-09-03 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10504518B1 (en) | 2018-06-03 | 2019-12-10 | Apple Inc. | Accelerated task performance |
US10944859B2 (en) | 2018-06-03 | 2021-03-09 | Apple Inc. | Accelerated task performance |
US10496705B1 (en) | 2018-06-03 | 2019-12-03 | Apple Inc. | Accelerated task performance |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US11893992B2 (en) | 2018-09-28 | 2024-02-06 | Apple Inc. | Multi-modal inputs for voice commands |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US11783815B2 (en) | 2019-03-18 | 2023-10-10 | Apple Inc. | Multimodality in digital assistant systems |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11217251B2 (en) | 2019-05-06 | 2022-01-04 | Apple Inc. | Spoken notifications |
US11705130B2 (en) | 2019-05-06 | 2023-07-18 | Apple Inc. | Spoken notifications |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11675491B2 (en) | 2019-05-06 | 2023-06-13 | Apple Inc. | User configurable task triggers |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11888791B2 (en) | 2019-05-21 | 2024-01-30 | Apple Inc. | Providing message response suggestions |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11657813B2 (en) | 2019-05-31 | 2023-05-23 | Apple Inc. | Voice identification in digital assistant systems |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11360739B2 (en) | 2019-05-31 | 2022-06-14 | Apple Inc. | User activity shortcut suggestions |
US11237797B2 (en) | 2019-05-31 | 2022-02-01 | Apple Inc. | User activity shortcut suggestions |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11790914B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
US11914848B2 (en) | 2020-05-11 | 2024-02-27 | Apple Inc. | Providing relevant data items based on context |
US11924254B2 (en) | 2020-05-11 | 2024-03-05 | Apple Inc. | Digital assistant hardware abstraction |
US11765209B2 (en) | 2020-05-11 | 2023-09-19 | Apple Inc. | Digital assistant hardware abstraction |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
US11838734B2 (en) | 2020-07-20 | 2023-12-05 | Apple Inc. | Multi-device audio adjustment coordination |
US11696060B2 (en) | 2020-07-21 | 2023-07-04 | Apple Inc. | User identification using headphones |
US11750962B2 (en) | 2020-07-21 | 2023-09-05 | Apple Inc. | User identification using headphones |
Also Published As
Publication number | Publication date |
---|---|
US20090307201A1 (en) | 2009-12-10 |
US7707221B1 (en) | 2010-04-27 |
US7984062B2 (en) | 2011-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7707221B1 (en) | Associating and linking compact disc metadata | |
US8473568B2 (en) | Methods and systems for processing media content | |
US20040002993A1 (en) | User feedback processing of metadata associated with digital media files | |
US8521759B2 (en) | Text-based fuzzy search | |
US7308464B2 (en) | Method and system for rule based indexing of multiple data structures | |
JP4398242B2 (en) | Multi-stage identification method for recording | |
US6877002B2 (en) | Fuzzy database retrieval | |
US7099946B2 (en) | Transferring a media browsing session from one device to a second device by transferring a session identifier and a session key to the second device | |
US8620967B2 (en) | Managing metadata for occurrences of a recording | |
JP5249074B2 (en) | Method and system for symbolic linking and intelligent classification of information | |
US7783660B2 (en) | System and method for enhanced text matching | |
US20090158155A1 (en) | Playlist generation, delivery and navigation | |
US20050091283A1 (en) | Meta data management for media content objects | |
US20040034650A1 (en) | Media identifier registry | |
US8751494B2 (en) | Constructing album data using discrete track data from multiple sources | |
US7849070B2 (en) | System and method for dynamically ranking items of audio content | |
WO2010144250A1 (en) | Generating a representative sub-signature of a cluster of signatures by using weighted sampling | |
US9305119B1 (en) | System, apparatus and method for determining correct metadata from community-submitted data | |
KR20060122679A (en) | Information processing apparatus, information processing method, and computer program | |
JP2003091552A (en) | Retrieval requested information extraction method, its operating system and processing program of the same | |
US8005827B2 (en) | System and method for accessing preferred provider of audio content | |
US20050027689A1 (en) | Digital audio track set recognition system | |
US20110072117A1 (en) | Generating a Synthetic Table of Contents for a Volume by Using Statistical Analysis | |
US20110307492A1 (en) | Multi-region cluster representation of tables of contents for a volume | |
Angeles et al. | Discovering Metadata Inconsistencies. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: YAHOO HOLDINGS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO| INC.;REEL/FRAME:042963/0211 Effective date: 20170613 |
|
AS | Assignment |
Owner name: OATH INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO HOLDINGS, INC.;REEL/FRAME:045240/0310 Effective date: 20171231 |