U.S. patent application number 12/117690 was filed with the patent office on 2008-08-28 for sharing playlists in a recommendation system.
This patent application is currently assigned to MusicIP Corporation. Invention is credited to Wendell T. Hicken.
Application Number | 20080208823 12/117690 |
Document ID | / |
Family ID | 37449511 |
Filed Date | 2008-08-28 |
United States Patent
Application |
20080208823 |
Kind Code |
A1 |
Hicken; Wendell T. |
August 28, 2008 |
Sharing Playlists in a Recommendation System
Abstract
A system for sharing playlists and playlist essence with
different users. A user desiring to share his or her playlist
generates the playlist and a playlist characterization. The
playlist characterization is based on acoustic analysis data of one
or more songs in the playlist. The playlist and playlist
characterization is then transmitted to another end user device.
The end user device receiving the shared playlist searches the
user's music collection for the songs in the playlist. If a gap is
detected in the playlist because the receiving user does not own a
particular song, the receiving end user devices automatically
selects another song that is owned by the user to fill-in the gap.
The song is selected based on the playlist characterization with
the aim of preserving the essence of the shared playlist.
Inventors: |
Hicken; Wendell T.; (La
Verne, CA) |
Correspondence
Address: |
CHRISTIE, PARKER & HALE, LLP
PO BOX 7068
PASADENA
CA
91109-7068
US
|
Assignee: |
MusicIP Corporation
|
Family ID: |
37449511 |
Appl. No.: |
12/117690 |
Filed: |
May 8, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11439723 |
May 23, 2006 |
|
|
|
12117690 |
|
|
|
|
60683685 |
May 23, 2005 |
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.003; 707/E17.014; 707/E17.101 |
Current CPC
Class: |
G06F 16/683 20190101;
Y10S 707/99943 20130101; G06F 16/68 20190101; Y10S 707/99945
20130101; Y10S 707/99942 20130101; Y10S 707/99948 20130101; G11B
27/105 20130101; G06F 16/634 20190101; Y10S 707/99944 20130101;
G06F 16/639 20190101 |
Class at
Publication: |
707/3 ;
707/E17.014 |
International
Class: |
G06F 7/06 20060101
G06F007/06; G06F 17/30 20060101 G06F017/30 |
Claims
1. A computer-implemented method for sharing playlists comprising:
receiving, under control of the computer, a playlist of songs;
searching, under control of the computer, a data store for the
songs in the playlist; identifying, under control of the computer,
a first song in the playlist unavailable in the data store;
responsive to the identification of the first song, automatically
identifying a second song available in the data store for replacing
the first song; generating, under control of the computer, a
modified playlist of songs, the modified playlist replacing the
first song with the second song; and outputting the modified
playlist.
2. The method of claim 1, wherein the playlist is downloaded from a
remote location.
3. The method of claim 1, wherein the automatically identifying of
the second song further includes: retrieving, under control of the
computer, a playlist characterization; and selecting the second
song based on the playlist characterization.
4. The method of claim 3, wherein the playlist characterization is
based on acoustic analysis data of at least one song in the
playlist.
5. The method of claim 3, wherein the playlist characterization is
based on a group profile of the playlist, the group profile being
generated based on acoustic analysis data of a plurality of songs
in the playlist.
6. The method of claim 3, wherein the playlist characterization is
based on a group profile of an artist associated with the
playlist.
7. The method of claim 3, wherein the playlist characterization is
based on a group profile of an album associated with the
playlist.
8. The method of claim 1, wherein the data store is a local data
store.
9. The method of claim 1, wherein the data store is a remote data
store.
10. The method of claim 1 further comprising: playing, under
control of the computer, the modified playlist of songs.
11. An end user device in a system for sharing playlists, the end
user device comprising: a network connection for receiving a
playlist of songs; a data store including a plurality of stored
songs; a processor; and a memory coupled to the processor, and
having program instructions stored therein, the processor being
operable to execute the program instructions, the program
instructions including: searching the data store for the songs in
the playlist; identifying a first song in the playlist unavailable
in the data store; responsive to the identification of the first
song, automatically identifying a second song available in the data
store for replacing the first song; generating a modified playlist
of songs, the modified playlist replacing the first song with the
second song; and outputting the modified playlist.
12. The end user device of claim 11, wherein the network connection
downloads the playlist from a remote location.
13. The end user device of claim 11, wherein the program
instructions for automatically identifying of the second song
further includes program instructions for: retrieving a playlist
characterization; and selecting the second song based on the
playlist characterization.
14. The end user device of claim 13, wherein the playlist
characterization is based on acoustic analysis data of at least one
song in the playlist.
15. The end user device of claim 13, wherein the playlist
characterization is based on a group profile of the playlist, the
group profile being generated based on acoustic analysis data of a
plurality of songs in the playlist.
16. The end user device of claim 13, wherein the playlist
characterization is based on a group profile of an artist
associated with the playlist.
17. The end user device of claim 13, wherein the playlist
characterization is based on a group profile of an album associated
with the playlist.
18. The end user device of claim 11 further comprising: a music
player playing the modified playlist of songs.
Description
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application is a divisional of U.S. application Ser.
No. 11/439,723, filed on May 23, 2006, which claims the benefit of
U.S. Application Ser. No. 60/683,685 filed on May 23, 2005
(attorney docket number 54261), the content of both of which are
incorporated herein by reference.
[0002] This application also contains subject matter that is
related to the subject matter of U.S. application Ser. No.
10/917,865, filed on Aug. 13, 2004 (attorney docket number 52075),
and U.S. application Ser. No. 10/278,636, filed on Oct. 23, 2002,
the content of both of which are incorporated herein by
reference.
FIELD OF THE INVENTION
[0003] This invention relates generally to music recommendation
systems, and more specifically, to sharing playlists in a music
recommendation system.
BACKGROUND OF THE INVENTION
[0004] Today's music scene provides a user with hundreds and
thousands of different types of music that may be available for his
or her enjoyment. The vast selection arena creates a dilemma for
the user when faced with a decision as to the particular piece of
music or album to listen or purchase.
[0005] U.S. application Ser. No. 10/917,865 describes a music
recommendation system where a user may generate a playlist or
search for music, using a song, album, or artist that is owned by
the user as the search seed. After generating such a playlist, the
generating user may want to share it with other users. However, one
potential problem in sharing the playlist is that the receiving
user may not have access to all of the songs in the shared
playlist, leaving one or more gaps in the playlist. Accordingly,
what is desired is a system and method for sharing playlists with
other users that detects and intelligently fills such gaps in the
shared playlists.
SUMMARY OF THE INVENTION
[0006] The present invention is directed to systems and methods for
sharing playlists and playlist music characterization/essence with
each other. According to one embodiment, an end user desiring to
share his or her playlist invokes his or her end user device to
select one or more songs from a data store, generate a playlist
based on the selected songs, retrieve acoustic analysis data of one
or more songs in the playlist, generate a playlist characterization
based on the acoustic analysis data, and transmit the playlist and
the playlist characterization to a remote end device.
[0007] According to one embodiment of the invention, the playlist
characterization is based on acoustic analysis data of at least one
song in the playlist. The playlist characterization may also be
based on a group profile of the playlist where the group profile is
generated based on acoustic analysis data of a plurality of songs
in the playlist. The playlist characterization may further be based
on a group profile of an artist associated with the playlist, or a
group profile of an album associated with the playlist.
[0008] According to one embodiment, another end user device is
configured to receive shared playlists. The end user device
according to this embodiment receives a playlist of songs and
searches a data store for the songs in the playlist. The data store
may be a local or remote data store. The end user device identifies
a first song in the playlist unavailable in the data store, and
responsive to the identification of the first song, automatically
identifies a second song available in the data store for replacing
the first song. In identifying the second song, the end user device
retrieves a playlist characterization and selects a second song
based on the playlist characterization. The end user device then
generates a modified playlist of songs which replaces the first
song with the second song. The end user device may then play the
modified playlist via a music player.
[0009] A person of skill in the art will appreciate that the system
and method of the present invention aims to preserve the essence of
the shared playlist in generating modified playlists. These and
other features, aspects and advantages of the present invention
will be more fully understood when considered with respect to the
following detailed description, appended claims, and accompanying
drawings. Of course, the actual scope of the invention is defined
by the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a block diagram of a system for sharing music
essence according to one embodiment of the invention;
[0011] FIG. 2 is a detailed block diagram of an end user device
generating and sharing playlists according to one embodiment of the
invention;
[0012] FIG. 3 is a flow diagram of a process for sharing playlists
according to one embodiment of the invention; and
[0013] FIG. 4 is a flow diagram of a process for receiving and
playing shared playlists according to one embodiment of the
invention.
DETAILED DESCRIPTION
[0014] In general terms, the present invention is directed to a
system and method that allows users to share playlists and playlist
music essence with each other. In doing so, embodiments of the
present invention seek to capture the essence (also referred to as
"mood" or "characteristic") of the playlist being shared, and use
the captured essence to fill-in gaps in the playlist. The gaps may
be a result of the receiving user not having access to certain
songs in the playlist that has been shared. According to one
embodiment, the gaps in the playlist are filled with songs to which
the receiving user does have access, and which are aimed to
maintain the basic essence of the playlist.
[0015] In an exemplary scenario, a user may generate an exercise
playlist that includes various upbeat music, or a relaxation
playlist that includes soft music. In maintaining the essence of
each playlist, the songs that are selected to replace certain
unavailable songs in the exercise playlist are also upbeat, and
songs that are selected to replace certain unavailable songs in the
relaxation playlist are also soft.
[0016] FIG. 1 is a block diagram of a system for sharing music
essence according to one embodiment of the invention. The system
includes a first user device 10 capable of communicating with a
second user device 12 over a data communications network 14. The
user devices 10, 12, are also coupled to a server 16 and remote
database 20 over the data communications network. The remote
database 20 stores various audio pieces for downloading and/or
listening by the user devices 10, 12. The server 16 provides
various tools for allowing the user device 10 to share its playlist
and/or music essence with the user device 12.
[0017] The data communications network 14 may be a wireless network
implemented using one or more of a wide variety of wireless
solutions. For example, the wireless network may include, without
limitation, a cellular telephone network such as a Global System
for Mobile communications (GSM) or General Packet Radio Service
(GPRS), a wireless local area network such as 802.11a, 802.11b, or
802.11g (collectively referred to as 802.11), or a personal area
network such as Bluetooth. The data communications network 14 may
also take the form a local area network, a wide area network, or
the Internet.
[0018] Each user device 10, 12 may be a personal computer, laptop,
cellular phone, personal digital assistant (PDA), car player, home
player, personal entertainment device, or another consumer
electronics device conventional in the art. According to one
embodiment of the invention, the user device 10 is configured with
the necessary software and hardware for generating playlists of
songs and transmitting such playlists to the user device 12. In
addition, the user device 10 is configured to capture the essence
of a generated playlist and publish the captured essence on the
server 16 or directly to the user device 12.
[0019] According to one embodiment of the invention, the captured
essence is an acoustic characterization of the playlist based on
the acoustic properties of the songs in the playlist. In this
respect, the characterization may be acoustic analysis data of one
or more songs in the playlist, acoustic profile of the playlist,
acoustic profile of artists associated with the playlist, acoustic
profile of albums associated with the playlist, or some other group
profile associated with the playlist.
[0020] The acoustic analysis data of a particular audio piece in
the playlist may be generated by the device generating the playlist
characterization, downloaded from a remote server such as, for
example, the server 16, or obtained from another device. In
generating the acoustic analysis data, the generating device
engages in automatic analysis of the audio signals of the audio
piece via an audio content analysis algorithm. The audio content
analysis algorithm takes the audio signals and determines its
acoustic properties/attributes, such as, for example, tempo,
repeating sections in the audio piece, energy level, presence of
particular instruments (e.g. snares and kick drums), rhythm, bass
patterns, harmony, particular music classes (e.g. jazz piano trio),
and the like. The audio content analysis algorithm computes values
of these acoustic properties as described in more detail in the
above-referenced U.S. patent application Ser. No. 10/278,636. As
the value of each acoustic property is computed, it is stored into
an acoustic attribute vector as the audio description or analysis
data for the audio piece. The acoustic attribute vector thus maps
calculated values to their corresponding acoustic attributes to
provide an object measurement of those attributes.
[0021] Profile data of a group of audio pieces, such as the audio
pieces in a playlist, in an album, or associated with a particular
artist, may be generated based on the acoustic analysis data of the
audio pieces associated with the group. The group profile may be
represented as a group profile vector that stores coefficient
values for the various attribute fields of an acoustic attribute
vector. Each coefficient value may be represented as a ratio of
points of deviation that is represented by the following
formula:
(avg[sub]-avg[all])/var[all]
where avg[all] is the average value of a particular attribute
across all the known songs in a current database, avg[sub] is the
average value of the particular attribute across a subset of the
songs belonging to the group for which the profile is to be
generated, and var[all] is a variance of the values computed for
the particular attribute across all the known songs.
[0022] According to one embodiment of the invention, a coefficient
value of a particular attribute is high if the subset of songs is
typically different from the average of a larger group of songs
with respect to the attribute, or if the variance value is small.
Thus, the coefficients help determine the most distinct and unique
attributes of a set of songs with respect to a larger group.
Additionally, the sign of the coefficient indicates the direction
in which the subset of songs is different than the average.
[0023] FIG. 2 is a detailed block diagram of the end user device
10, 12 generating and sharing playlists according to one embodiment
of the invention. The device 10, 12 includes a processor 30, memory
32, data input device 34, data output device 36, network port 38,
and mass storage device 40. The data input device 34 may include a
keyboard, keypad, stylus, microphone, remote controller, and the
like, for allowing a user to enter his or her selection
information.
[0024] The data output device 36 may include a display screen for
displaying text and/or graphics, speakers for outputting audio
sounds, or the like. Pressure sensitive (touch screen) technology
may also be incorporated into the display screen for allowing a
user to provide additional data input by merely touching different
portions of the display screen.
[0025] The mass storage device 40 may include a static random
access memory device, a hard disk, and/or the like. The device
stores the music owned by the user of the device, as well as
information associated with the music such as, for example,
metadata information, fingerprint information, acoustic analysis
data, and/or profile data. The analysis data and/or profile data
may then be used for generating the playlist characterizations when
sharing playlists, or for filling gaps in shared playlists received
by the end user device.
[0026] The network/peripheral port 38 may allow the end user device
to connect to the data communications network 14 or to other
peripheral devices. Such peripheral devices may include, for
example, a compact disc (CD) player, digital versatile disc (DVD)
player, or the like. A user may use the network port to share
generated playlists with other user devices and to publish
characterizations of the generated playlists. If the end user
device is the device receiving a shared playlist, the network port
38 is configured to allow the end user device to connect to the
data communications network 14 to receive the shared playlist, and
to receive the characterization of the shared playlist.
[0027] The memory 32 may include a read only memory, random access
memory, flash memory, and the like. According to one embodiment,
the memory includes computer instructions which are executed by the
processor 30 for generating a particular playlist and acoustic
characterization of the playlist, and sharing the playlist with
another user. If the end user device is the device receiving a
shared playlist, the memory 32 also includes computer instructions
which are executed by the processor 30 for detecting gaps in the
shared playlist. Such gaps may exist due to the receiving user
device not having access to a particular song in the shared
playlist, or because the user device does not support a format of
the particular song. In this regard, the memory includes computer
instructions for accessing the playlist characterization and
filling the gaps in the playlist with songs to which the user
devices has access based on the characterization information.
[0028] FIG. 3 is a flow diagram of a process executed by the
processor 30 of the user device 10, 12 for sharing playlists
according to one embodiment of the invention. In step 100, the
processor generates a playlist 100 responsive to a user input. The
user input may be, for example, a manual selection of the songs to
the included into the playlist. The user input may also be
selection of a particular playlist criteria (e.g. a particular
song, artist, album, or genre), and a command to generate the
playlist based on the playlist criteria.
[0029] In step 102, the processor 30 generates the playlist
characterization. For example, the playlist characterization may be
composed of acoustic analysis data for each individual song in the
playlist. Alternatively or in addition to any individual acoustic
analysis data, the playlist characterization may include profile
information based on the songs in the playlist or one or more
artists and/or albums associated with the playlist.
[0030] In step 104, the processor transmits the generated playlist
and playlist characterization for sharing with one or more other
end user devices. The processor may also transmit the metadata of
the songs included in the playlist, and/or unique identifiers for
each song, such as, for example, song fingerprint information.
According to one embodiment of the invention, the playlist along
with any metadata and fingerprint information (collectively
referred to as simply the playlist), and playlist characterization
are submitted to a website hosted by the server 16. The server 16
may then transmit the playlist and playlist characterization to the
user end device 12 as an e-mail transmission, or transmit an e-mail
notification that the playlist and/or playlist characterization is
available for downloading. Alternatively, the user end device 10
may transmit the playlist and/or playlist characterization directly
to the user end device 12 via, for example, a peer-to-peer network
or a private area network.
[0031] FIG. 4 is a flow diagram of a process executed by the
processor 30 of the user device 12, 14 for receiving and playing
shared playlists according to one embodiment of the invention. In
step 200, the processor 30 receives a shared playlist and in step
202, searches its mass storage device 40 or any other peripheral
device for the songs in the playlist. In this regard, the processor
30 may run a search and retrieval algorithm based on the metadata
of each song in the playlist. The processor 30 may also, in
addition or in lieu of the metadata search, conduct a search of
fingerprint information transmitted for each song.
[0032] In step 204, the processor 30 identifies songs that are
unavailable in the mass storage device 40 based on the metadata
and/or fingerprint search. In step 206, the processor 30 retrieves
the playlist characterization information, and in step 208,
generates a modified playlist based on the playlist
characterization information. The modified playlist includes songs
selected by the processor to replace the identified unavailable
songs using the playlist characterization information.
[0033] For example, the replacement song may be selected based on a
comparison of an acoustic vector retrieved for the replacement song
and the acoustic analysis data of the unavailable song. The
replacement song may also be selected based on a weighted
combination of the individual acoustic analysis data and group
profile data (e.g. profile data for the entire playlist). In this
latter scenario, the weight to be afforded to the profile data may
be user-determined via a slider that indicates how much weight to
give to the profile data.
[0034] The replacement songs may be selected from the user's
existing collection as stored in the mass storage device 40. The
replacement songs may also be selected from a remote database 20.
The user may select the particular remote database 20 from which
songs are to be selected.
[0035] In step 210, the processor proceeds to play the songs in the
modified playlist.
[0036] According to another embodiment of the invention, instead of
the user device generating the playlist characterization, it is the
server 16 or receiving user device that does the generating.
[0037] According to a further embodiment of the invention, it is
the server 16 that generates the modified playlist by filling-in
the gaps in the original playlist. The modified playlist is then
transmitted to the receiving user device.
[0038] Although this invention has been described in certain
specific embodiments, those skilled in the art will have no
difficulty devising variations to the described embodiment which in
no way depart from the scope and spirit of the present invention.
For example, the steps of the processes may be executed in the
indicated order or in any other order recognized by a person of
skill in the art.
[0039] In addition, to those skilled in the various arts, the
invention itself herein will suggest solutions to other tasks and
adaptations for other applications. For example, although the
various embodiments are directed to a music recommendation system
and method, these embodiments may be extended to other genres or
products, such as, for example, food, movies, books, art, or the
like. It is the Applicants' intention to cover by claims all such
uses of the invention and those changes and modifications which
could be made to the embodiments of the invention herein chosen for
the purpose of disclosure without departing from the spirit and
scope of the invention. Thus, the present embodiments of the
invention should be considered in all respects as illustrative and
not restrictive, the scope of the invention to be indicated by the
appended claims and their equivalents rather than the foregoing
description.
* * * * *