Music steering with automatically detected musical attributes
Abstract
Described is a technology by which a playback list comprising similar songs is automatically built based on automatically detected/generated song attributes, such as by extracting numeric features of each song. The attributes may be downloaded from a remote connection, and/or may be locally generated on the playback device. To build a playlist, a seed song's attributes may be compared against attributes of other songs to determine which other songs are similar to the seed song and thus included in the playlist. Another way to build a playlist is based on similarity of songs to a set of user provided-attributes, such as corresponding to moods or usage modes such as “resting” “reading” “jogging” or “driving” moods/modes. The playlist may be dynamically adjusted based on user interaction with the device, such as when a user skips a song, queues a song, or dequeues a song.
Claims
exact text as granted — not AI-modifiedWhat is claimed:
1 . A method of selecting media files for a playlist, the method comprising:
managing the playlist by providing, for potential addition of media items to the playlist, access to a set of media records, each media record comprising an association with a respective media item and a respective tag set comprised of attribute tags corresponding to media content of the associated media item, each attribute tag of each tag set indicating either an attribute of the corresponding media item and/or a value of an attribute of the corresponding media item; computing scores for at least some of the media items in the set of media items, respectively, by accessing tag weights for at least some of the attribute tags, respectively, and applying the accessed tag weights to relevant attribute tags of at least some of the media items; receiving indications of user interactions corresponding to control of playing at least some of the media items from the playlist, and, for each indication, computing tag weights for respective attribute tags of the correspondingly controlled media file; computing ranking scores for at least some of the respective media files, where a ranking score for a media file is computed as a function of whichever of the weights correspond to the attribute tags in the tag set of the corresponding media file; and selecting a media file to include in the playlist according to the ranking score thereof.
2 . A method according to claim 1 , wherein the indicated user interactions comprise interactively skipping or replaying at least some of the media items, and wherein the user interactions steer which media items are automatically included in the playlist by some types of interactions increasing tag weights of attribute tags of correspondingly controlled media files and by other types of interactions decreasing tag weights of attribute tags of correspondingly controlled media files.
3 . A method according to claim 1 , wherein the playlist initially comprises a seed media item, and some of the indications correspond to user interactions directed to media items automatically added to the playlist based on corresponding ranking scores computed according to the tag weights.
4 . A method according to claim 1 , wherein some of the tag sets have attribute tags not found in other of the tag sets, and wherein some of the tag sets have attribute tags in common with each other.
5 . A method according to claim 4 , wherein which attribute tags have respectively computed tag weights depends on which media items in the playlist have indications of interactions directed thereto.
6 . A method according to claim 5 , wherein the tag weights form a set of tags that is dynamically constructed according to cumulative user interactions with the playlist as indicated by the received indications.
7 . A method performed by one or more computing devices, the method for managing a dynamic playlist, the method comprising:
providing access to a library of playable media items, wherein ranking weights of respective media content attributes are maintained in association with the playlist, and wherein media items are selected from the library for inclusion in the playlist based on similarity scores computed by applying the ranking weights to media content attributes of the media items; playing the playlist while the playlist includes a first media item that is being played; while the first media item is being played from the playlist, receiving a first indication indicating a user interaction with the first media item in the playlist; based on the first indication being directed to the first media item in the playlist, updating whichever of the ranking weights are determined to correspond to media content attributes that are associated with the first media item; selecting a second media item to include in the playlist by applying the updated ranking weights to corresponding media content attributes of the second media item to compute a score for the second media item, and selecting the second media item based on the score for the second media item; while playing the playlist and while the second media item is in the playlist, receiving a second indication indicating a user interaction directed to the second media item in the playlist; and based on the second indication being directed to the second media item in the playlist, updating whichever of the ranking weights are determined to correspond to media content attributes that are associated with the second media item.
8 . A method according to claim 7 , wherein the interactions control selection or deselection of the media items for playing and/or control playing of the media items.
9 . A method according to claim 8 , wherein the indications indicate positive and negative interactions, wherein each indication indicating a positive interaction is handled by increasing corresponding ranking weights and each indication indicating a negative interaction is handled by decreasing corresponding ranking weights.
10 . A method according to claim 9 , wherein positive interactions include interactively adding a media item to the playlist.
11 . A method according to claim 7 , wherein playing the playlist comprises streaming the media items from one or server computers over a network.
12 . A method according to claim 7 , further comprising: after the ranking weights are updated according to the second indication, applying the ranking weights to select a third media item by applying the ranking weights to media content attributes of the third media item to determine a score for the third media item, wherein selection of the third media item depends on the updatings of the ranking weights according to the first and second indications.
13 . A method according to claim 7 , wherein a media content attribute associated with the first media item is not associated with the second media item, and a media content attribute of the second media item is not associated with the first media item.
14 . A method according to claim 7 , wherein one of the indications corresponds to skipping a portion of a media item, wherein the portion is not all of the media item, and wherein a ranking weight is computed in proportion with an extent of the portion that was skipped.
15 . A method performed by one or more computing devices comprising processing hardware and storage hardware, the method comprising:
accessing a set of media records stored by the storage hardware, each media record comprising an identifier of a corresponding media item and a plurality of content attributes representing attributes of content of the corresponding media item; receiving interaction records, each interaction record associated with a corresponding media item and each interaction record indicating a type of user interaction that occurred to control playing of the media item corresponding thereto; maintaining, by the processing hardware, a set of attribute weights each respectively associated with a different content attribute represented in the set of media records; updating, by the processing hardware, the set of weights according to the interaction records by,
for each interaction record determined to indicate a first type of user interaction: increasing weights corresponding to content attributes in the media record of the media item that corresponds to the user interaction, and
for each interaction record determined to indicate a second type of user interaction: decreasing weights corresponding content attributes in the media record of the media item that corresponds to the user interaction.
16 . A method according to claim 15 , further comprising computing similarity scores for some of the media records based on the set of attribute weights, where a score for a media record is computed by combining whichever of the attribute weights correspond to content attributes in the media record.
17 . A method according to claim 15 , further comprising computing measures of distance of the media records from the attribute weights.
18 . A method according to claim 17 , further comprising selecting for inclusion in the playlist a media record having a distance that is closest to the attribute weights.
19 . A method according to claim 17 , further comprising selecting for inclusion in the playlist a plurality of media records based on their respective distances and ordering the selected media records according to their respective distances.
20 . A method according to claim 15 , further comprising a filter to select which of the attribute weights are to be used to compute similarity scores for the media records.Join the waitlist — get patent alerts
Track US2016267177A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.