U.S. patent application number 13/305871 was filed with the patent office on 2012-03-22 for embedded media recommendations.
This patent application is currently assigned to NAPO ENTERPRISES, LLC. Invention is credited to Hugh Svendsen.
Application Number | 20120071996 13/305871 |
Document ID | / |
Family ID | 40432885 |
Filed Date | 2012-03-22 |
United States Patent
Application |
20120071996 |
Kind Code |
A1 |
Svendsen; Hugh |
March 22, 2012 |
EMBEDDED MEDIA RECOMMENDATIONS
Abstract
A system and method for embedding recommendations on a portable
media player are provided. In general, recommendations for media
presentations stored or to be stored on the portable media player
are generated by a recommendation engine hosted by an external
system such as, for example, a user's personal computer or a
network server. In one embodiment, the media presentations are
songs, and the recommendations include a number of recommended
songs for each song stored or to be stored on the portable media
player. The recommendations may be limited to the media
presentations stored on the portable media player or otherwise
accessible to the portable media player. After the recommendations
are generated, the recommendations are stored, or embedded, on the
portable media player. Thereafter, the portable media player may
use the recommendations to facilitate playback of media content on
the portable media player.
Inventors: |
Svendsen; Hugh; (Chapel
Hill, NC) |
Assignee: |
NAPO ENTERPRISES, LLC
Wilmington
DE
|
Family ID: |
40432885 |
Appl. No.: |
13/305871 |
Filed: |
November 29, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11463148 |
Aug 8, 2006 |
8090606 |
|
|
13305871 |
|
|
|
|
Current U.S.
Class: |
700/94 |
Current CPC
Class: |
G06F 16/48 20190101;
G06Q 30/0202 20130101; G06Q 10/063 20130101 |
Class at
Publication: |
700/94 |
International
Class: |
G06F 17/00 20060101
G06F017/00 |
Claims
1. A method of operation of a portable media player, comprising:
receiving, by the portable media player, recommendations for each
of a plurality of media presentations stored on the portable media
player, wherein for each one of the plurality of media
presentations, the recommendations identify at least one of others
of the plurality of media presentations stored on the portable
media player recommended for the one of the plurality of media
presentations; storing, by the portable media player, the
recommendations in a storage unit of the portable media player; and
facilitating, by the portable media player, playback of the
plurality of media presentations on the portable media player based
on the recommendations; wherein facilitating playback of the
plurality of media presentations on the portable media player based
on the recommendations comprises: playing a select one of the
plurality of media presentations; and playing a number of media
presentations from a subset of the plurality of media presentations
stored on the portable media player that are identified by a
user-defined number of levels of the recommendations directly and
indirectly associated with the select one of the plurality of media
presentations.
2. The method of claim 1 wherein receiving the recommendations
comprises receiving the recommendations as one of a group
consisting of: an application file and a light-weight database.
3. The method of claim 1 wherein receiving the recommendations
comprises receiving a plurality of media files corresponding to the
plurality of media presentations wherein the recommendations are
stored as metadata within the plurality of media files, and storing
the recommendations comprises storing the plurality of media files
in the storage unit.
4. The method of claim 1 wherein the recommendations are generated
at a user system associated with the portable media player and
receiving the recommendations comprises receiving the
recommendations from the user system during a synchronization
process when the portable media player is communicatively coupled
to the user system.
5. The method of claim 1 further comprising: providing information
identifying the plurality of media presentations stored on the
portable media player to a remote recommendation engine such that
the recommendations for each of the plurality of media
presentations are generated at the remote recommendation engine;
wherein receiving the recommendations comprises receiving the
recommendations from the remote recommendation engine.
6. The method of claim 1 wherein the recommendations are generated
at a networked server and provided from the networked server to a
user system associated with the portable media player, and
receiving the recommendations comprises receiving the
recommendations from the user system during a synchronization
process when the portable media player is communicatively coupled
to the user system.
7. The method of claim 1 wherein the recommendations are generated
at a networked server, and receiving the recommendations comprises
receiving the recommendations from the networked server via a
network communicatively coupling the networked server and the
portable media player.
8. The method of claim 7 wherein the recommendations are limited to
the plurality of media presentations stored on the portable media
player.
9. The method of claim 7 wherein for each of the plurality of media
presentations, the recommendations comprise recommendations
identifying others of the plurality of media presentations and
recommendations identifying media presentations accessible from a
network service.
10. The method of claim 1 wherein the recommendations are limited
to the plurality of media presentations stored on the portable
media player.
11. The method of claim 1 wherein the recommendations are limited
to media presentations in a media collection of a user associated
with the portable media player stored on an associated user
system.
12. The method of claim 1 wherein for each one of the plurality of
media presentations, the recommendations further identify at least
one recommended media presentation accessible by the portable media
player from a network service provider.
13. The method of claim 12 wherein the recommendations further
comprise Uniform Resource Locators (URLs) providing access to the
at least one recommended media presentation.
14. The method of claim 1 wherein the recommendations further
identify at least one preview of a recommended media presentation
accessible by the portable media player.
15. The method of claim 1 wherein playing the number of media
presentations comprises, for each level of the recommendations
directly or indirectly associated with the select one of the
plurality of media presentations in the user-defined number of
levels, playing a number of media presentations identified by at
most a user-defined maximum number of recommendations from that
level of the recommendations directly or indirectly associated with
the select one of the plurality of media presentations.
16. The method of claim 1 wherein the plurality of media
presentations stored on the portable media player are one of a
group consisting of: all media presentations stored on the portable
media player and less than all media presentations stored on the
portable media player.
17. A method of operation of a portable media player, comprising:
receiving, by the portable media player, recommendations for each
of a plurality of media presentations stored on the portable media
player, wherein for each one of the plurality of media
presentations, the recommendations identify at least one
recommended media presentation accessible from a network service
recommended for the one of the plurality of media presentations;
storing, by the portable media player, the recommendations in a
storage unit of the portable media player; and facilitating, by the
portable media player, playback of the plurality of media
presentations and the recommended media presentations identified by
the recommendations on the portable media player.
18. The method of claim 17 wherein receiving the recommendations
comprises receiving the recommendations as one of a group
consisting of: an application file and a light-weight database.
19. The method of claim 17 wherein receiving the recommendations
comprises receiving a plurality of media files corresponding to the
plurality of media presentations wherein the recommendations are
stored as metadata within the plurality of media files, and storing
the recommendations comprises storing the plurality of media files
in the storage unit.
20. The method of claim 17 wherein the recommendations are
generated at a networked server and provided to a user system
associated with the portable media player, and receiving the
recommendations comprises receiving the recommendations from the
networked server during a synchronization process when the portable
media player is communicatively coupled to the user system.
21. The method of claim 17 wherein the recommendations are
generated at a networked server, and receiving the recommendations
comprises receiving the recommendations from the networked server
via a network communicatively coupling the networked server and the
portable media player.
22. The method of claim 17 wherein facilitating playback of the
plurality of media presentations on the portable media player based
on the recommendations comprises: playing a select one of the
plurality of media presentations; and playing at least one media
presentation identified by the recommendations for the select one
of the plurality of media presentations.
23. The method of claim 22 wherein playing the at least one media
presentation identified by the recommendations for the select one
of the plurality of media presentations comprises obtaining the at
least one media presentation from the network service.
24. The method of claim 22 wherein playing the at least one media
presentation identified by the recommendations for the select one
of the plurality of media presentations comprises: obtaining a
preview of at least one media presentation from the network
service; and playing the preview of the at least one media
presentation.
25. The method of claim 17 wherein the plurality of media
presentations stored on the portable media player are one of a
group consisting of: all media presentations stored on the portable
media player and less than all media presentations stored on the
portable media player.
26. A portable media player comprising: a communication interface;
and a control system associated with the communication interface
and adapted to: receive recommendations for each of a plurality of
media presentations stored on the portable media player, wherein
for each one of the plurality of media presentations, the
recommendations identify at least one of others of the plurality of
media presentations stored on the portable media player recommended
for the one of the plurality of media presentations; store the
recommendations in a storage unit of the portable media player; and
facilitate playback of the plurality of media presentations on the
portable media player based on the recommendations; wherein in
order to facilitate playback of the plurality of media
presentations on the portable media player based on the
recommendations, the control system is further adapted to: play a
select one of the plurality of media presentations; and play a
number of media presentations from a subset of the plurality of
media presentations stored on the portable media player that are
identified by a user-defined number of levels of the
recommendations directly and indirectly associated with the select
one of the plurality of media presentations.
27. The portable media player of claim 26 wherein the plurality of
media presentations stored on the portable media player are one of
a group consisting of: all media presentations stored on the
portable media player and less than all media presentations stored
on the portable media player.
28. A portable media player comprising: a communication interface;
and a control system associated with the communication interface
and adapted to: receive recommendations for each of a plurality of
media presentations stored on the portable media player, wherein
for each one of the plurality of media presentations, the
recommendations identify at least one recommended media
presentation accessible from a network service recommended for the
one of the plurality of media presentations; store the
recommendations in a storage unit of the portable media player; and
facilitate playback of the plurality of media presentations and the
recommended media presentations identified by the recommendations
on the portable media player.
29. The portable media player of claim 28 wherein in order to
facilitate playback of the plurality of media presentations on the
portable media player based on the recommendations, the control
system is further adapted to: play a select one of the plurality of
media presentations; and play a plurality of media presentations
accessible from the network service that are identified by a
user-defined number of levels of the recommendations directly and
indirectly associated with the select one of the plurality of media
presentations.
30. The portable media player of claim 29 wherein in order to play
the plurality of media presentations, the control system is further
adapted to, for each level of the recommendations directly or
indirectly associated with the select one of the plurality of media
presentations in the user-defined number of levels, play a number
of media presentations identified by at most a user-defined maximum
number of recommendations from that level of the recommendations
directly or indirectly associated with the select one of the
plurality of media presentations.
31. The portable media player of claim 28 wherein the plurality of
media presentations stored on the portable media player are one of
a group consisting of: all media presentations stored on the
portable media player and less than all media presentations stored
on the portable media player.
Description
RELATED APPLICATIONS
[0001] This patent application is a continuation of U.S. patent
application Ser. No. 11/463,148, filed Aug. 8, 2006, the disclosure
of which is hereby incorporated herein by reference in its
entirety.
FIELD OF THE INVENTION
[0002] The present invention relates to generating media
recommendations such as music recommendations, and more
particularly relates to embedding media recommendations on a
portable media player.
BACKGROUND OF THE INVENTION
[0003] Recommendation technologies are emerging as an important
enabler in helping users identify and navigate their music
collections. However, implementing recommendation systems can be
expensive in terms of computing resources, and the best
recommendation systems rely on a mix of content analysis and social
networks to obtain optimal results. As such, resource-constrained
devices, such as portable media players, are unable to enjoy the
benefits of recommendation technology. Thus, there is a need for a
system and method for generating recommendations for a portable
media player and then storing, or embedding, the recommendations on
the portable media player in such a manner that the recommendations
can be accessed at run time with minimal computing resources.
SUMMARY OF THE INVENTION
[0004] The present invention provides a system and method for
embedding recommendations on a portable media player. In general,
recommendations for media presentations stored or to be stored on
the portable media player are generated by a recommendation engine
hosted by an external system such as, for example, a user's
personal computer or a network server. In one embodiment, the media
presentations are songs, and the recommendations include a number
of recommended songs for each song stored or to be stored on the
portable media player. The recommendations may be limited to the
media presentations stored on the portable media player or
otherwise accessible to the portable media player. After the
recommendations are generated, the recommendations are stored, or
embedded, on the portable media player. In one embodiment, the
recommendations are stored in an application file or light-weight
database stored on the portable media player. In another
embodiment, the recommendations are stored as metadata within
corresponding media files stored on the portable media player.
Thereafter, the portable media player may use the recommendations
to facilitate playback of media content on the portable media
player.
[0005] More specifically, in one embodiment, a user system such as
a personal computer hosts a media collection of a user associated
with the user system and the portable media player. The
recommendation engine is hosted by the user system and operates to
generate recommendations for each media presentation in the user's
media collection. Thereafter, when media presentations are
transferred to the portable media player during a synchronization
process, the recommendations, or a filtered version thereof, are
also transferred to the portable media player. The recommendations
may be filtered such that the recommendations transferred to the
portable media player are limited to the media presentations stored
on the portable media player and, optionally, to media
presentations accessible to the portable media player via a network
service.
[0006] In another embodiment, a user system such as a personal
computer hosts a media collection of a user associated with the
user system and the portable media player. The recommendation
engine is hosted by a server communicatively coupled to the user
system via a network. The recommendation engine generates
recommendations and provides the recommendations to the user
system. Thereafter, when media presentations are transferred to the
portable media player during a synchronization process, the
recommendations, or a filtered version thereof, are also
transferred to the portable media player. The recommendations may
be filtered such that the recommendations transferred to the
portable media player are limited to the media presentations stored
on the portable media player and, optionally, to media
presentations accessible to the portable media player via a network
service.
[0007] In yet another embodiment, the portable media player has
network access to a server hosting the recommendation engine. The
recommendation engine generates recommendations and provides the
recommendations to the portable media player. The recommendations
may be limited to the media presentations stored on the portable
media player, to media presentations available via a network
service, or to both media presentations stored on the portable
media player and media presentations available via a network
service.
[0008] Those skilled in the art will appreciate the scope of the
present invention and realize additional aspects thereof after
reading the following detailed description of the preferred
embodiments in association with the accompanying drawing
figures.
BRIEF DESCRIPTION OF THE DRAWING FIGURES
[0009] The accompanying drawing figures incorporated in and forming
a part of this specification illustrate several aspects of the
invention, and together with the description serve to explain the
principles of the invention.
[0010] FIG. 1 illustrates a system for embedding recommendations on
a portable media player according to a first embodiment of the
present invention;
[0011] FIG. 2 illustrates the operation of the system of FIG. 1
according to one embodiment of the present invention;
[0012] FIG. 3 illustrates one embodiment of the recommendation
scheme of the present invention;
[0013] FIG. 4 illustrates a system for embedding recommendations on
a portable media player according to a second embodiment of the
present invention;
[0014] FIG. 5 illustrates the operation of the system of FIG. 4
according to one embodiment of the present invention;
[0015] FIG. 6 illustrates a system for embedding recommendations on
a portable media player according to a third embodiment of the
present invention;
[0016] FIG. 7 illustrates the operation of the system of FIG. 6
according to one embodiment of the present invention;
[0017] FIG. 8 illustrates a system for embedding recommendations on
a portable media player according to a fourth embodiment of the
present invention;
[0018] FIG. 9 illustrates the operation of the system of FIG. 8
according to one embodiment of the present invention;
[0019] FIG. 10 is a block diagram of an exemplary embodiment of the
user system of FIGS. 1 and 2;
[0020] FIG. 11 is a block diagram of an exemplary embodiment of the
user system 12' of FIGS. 4-7;
[0021] FIG. 12 is a block diagram of an exemplary embodiment of the
PMP 14 of FIGS. 1, 2, 4, and 5;
[0022] FIG. 13 is a block diagram of an exemplary embodiment of the
PMP 14' of FIGS. 6-9; and
[0023] FIG. 14 is a block diagram of an exemplary embodiment of the
server 28 of FIGS. 4-9.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0024] The embodiments set forth below represent the necessary
information to enable those skilled in the art to practice the
invention and illustrate the best mode of practicing the invention.
Upon reading the following description in light of the accompanying
drawing figures, those skilled in the art will understand the
concepts of the invention and will recognize applications of these
concepts not particularly addressed herein. It should be understood
that these concepts and applications fall within the scope of the
disclosure and the accompanying claims.
[0025] The present invention relates to a system and method for
embedding recommendations on a portable media player. In general,
recommendations for media presentations stored or to be stored on
the portable media player are generated by a recommendation engine
hosted by an external system such as, for example, a user's
personal computer or a network server. In one embodiment, the media
presentations are songs, and the recommendations include a number
of recommended songs for each song stored or to be stored on the
portable media player. The recommendations may be limited to the
media presentations stored on the portable media player or
otherwise accessible to the portable media player. After the
recommendations are generated, the recommendations are stored, or
embedded, on the portable media player. Thereafter, the portable
media player may use the recommendations to facilitate playback of
media content on the portable media player.
[0026] While the following discussion focuses on digital music, the
present invention is not limited thereto. The present invention is
equally applicable to other types of media content, such as video
content, as will be apparent to one of ordinary skill in the art
upon reading this disclosure. Examples of video content are movies,
television programs, and like.
[0027] FIG. 1 illustrates a system 10 for embedding recommendations
on a portable media player according to a first embodiment of the
present invention. In this embodiment, the system 10 includes a
user system 12 and a portable media player (PMP) 14, where the user
system 12 and PMP 14 are communicatively coupled during a
synchronization process, as described below. The user system 12 may
be, for example, a personal computer. The user system 12 includes a
recommendation engine 16, a music collection 18, and
recommendations 20. The recommendation engine 16 may be implemented
in software, hardware, or a combination of software and hardware.
The music collection 18 includes a number of digital song files
stored in one or more digital storage units within or associated
with the user system 12. In operation, the recommendation engine 16
operates to generate the recommendations 20 for each song in the
music collection 18. More specifically, for each particular song,
the recommendation engine 16 generates recommendations 20
identifying other songs that are similar to that song. In this
embodiment, the recommended songs are limited to other songs in the
music collection 18. However, as discussed below, the present
invention is not limited thereto.
[0028] The recommendations 20 include information identifying a
number of recommended songs for each song in the music collection
18. The information identifying the recommended songs may be any
information capable of identifying the recommended songs such as,
for example, Globally Unique Identifiers (GUIDs), titles of the
songs, or the like. The recommendations 20 may be stored in an
application file, light-weight database, or the like. Note that
while the following discussion focuses on an application file, it
is to be understood that a light-weight database or the like may be
used instead. Alternatively, for each particular song, the
recommendations 20 for that song may be stored as metadata within
the song file.
[0029] The PMP 14 may be a portable media player such as, for
example, a Motion Pictures Expert Group (MPEG) Layer 3 (MP3)
player, an Apple iPod portable media player, a MusicGremlin
portable media player, or the like. The PMP 14 includes a media
playback function 22, songs 24, and recommendations 26. The media
playback function 22 may be implemented in hardware, software, or a
combination of hardware and software and operates to provide
playback of the songs 24 stored on the PMP 14. The songs 24 are
stored in one or more digital storage units within the PMP 14. The
digital storage units may be, for example, hard-disc drives,
internal memory, removable memory cards, optical storage devices,
or the like. The songs 24 may be songs transferred to the PMP 14
from the user system 12 during a synchronization process.
Additionally, as discussed below, the songs 24 may include songs
obtained from a subscription-based music service or an e-commerce
service via a network. The recommendations 26 include information
identifying recommended songs for each of the songs stored on the
PMP 14. As discussed below, the recommendations 26 are either the
recommendations 20 generated by the recommendation engine 16 or a
filtered version thereof. Again, the recommendations 26 may be
stored as an application file, light-weight database, or the like.
Alternatively, for each of the songs 24, the recommendations 26 for
the song may be stored as metadata within the corresponding song
file.
[0030] FIG. 2 illustrates the operation of the system 10 of FIG. 1
according to one embodiment of the present invention. First, the
recommendation engine 16 of the user system 12 generates
recommendations for the songs in the user's music collection 18
(step 100). In this embodiment, the recommendations are limited to
other songs in the music collection 18, and the recommendation
engine 16 generates recommendations for each of the songs in the
music collection 18 prior to the selection of songs to transfer to
the PMP 14. The recommendations may thereafter be updated when, for
example, new songs are added to the music collection 18.
[0031] The recommendation engine 16 may identify other songs from
the music collection 18 to recommend for each song using any known
music recommendation scheme. For example, the recommendation engine
16 may consider metadata such as, but not limited to, genre,
artist, album, release date and/or song attributes such as, but not
limited to, beats-per-minute and the like. Exemplary music
recommendation schemes are described in U.S. patent application
Ser. No. 11/471,797, entitled HISTORICAL MEDIA RECOMMENDATION
SERVICE, filed Jun. 21, 2006 and U.S. Patent Application
Publication No. 2004/0107821, entitled METHOD AND SYSTEM FOR MUSIC
RECOMMENDATION, published Jun. 10, 2004, both of which are hereby
incorporated herein by reference in their entireties.
[0032] The user system 12 then provides select songs from the music
collection 18 and the recommendations 20, or a filtered version of
the recommendations 20, to the PMP 14 during a synchronization
process (step 102). Once received by the PMP 14, the select songs
and recommendations are stored by the PMP 14 as the songs 24 and
recommendations 26. The select songs provided to the PMP 14 are
preferably selected by the user of the user system 12 for transfer
to the PMP 14.
[0033] As discussed above, the recommendations 20 for the songs in
the music collection 18 may be stored in an application file or
stored as metadata within the song files. If the recommendations 20
for the songs in the music collection 18 are stored in an
application file, the user system 12 may provide the application
file including the recommendations 20 for all of the songs in the
music collection 18 to the PMP 14 to be stored as the
recommendations 26 on the PMP 14. Thereafter, the PMP 14 may ignore
the recommendations for songs not transferred to or already stored
on the PMP 14. Further, for songs that are stored on or to be
transferred to the PMP 14, the PMP 14 may further ignore
recommendations identifying songs that are not stored on the PMP
14.
[0034] Alternatively, the user system 12 may filter the
recommendations 20 in the application file prior to transfer to the
PMP 14 to provide the recommendations 26 for the PMP 14. The
recommendations 20 may be filtered in order to limit the
recommendations 26 to the songs 24 stored on the PMP 14. More
specifically, the recommendations 20 may be filtered to remove the
recommendations 20 for songs not transferred to, to be transferred
to, or already stored on the PMP 14. For songs that are transferred
to, to be transferred to, or already stored on the PMP 14, the user
system 12 may further filter the recommendations 20 to remove
recommendations identifying songs that are not transferred to, to
be transferred to, or already stored on the PMP 14.
[0035] In order to filter the recommendations 20, the user system
12 may wait for all select songs to be transferred, or at least
selected for transfer, to the PMP 14. At that point, the user
system 12 may filter the recommendations 20 in the application
file. For example, if a first song in the music collection 18 is
not transferred to, to be transferred to, or already stored on the
PMP 14, the user system 12 may filter the recommendations 20 in the
application file to remove the recommendations for the first song
from the application file. Further, if the first song is a
recommended song for a second song that is transferred or to be
transferred to the PMP 14, the user system 12 may filter the
recommendations 20 in the application file to remove the first song
from the list of recommended songs for the second song. The
filtered recommendations may then be transferred to the PMP 14.
[0036] In a similar fashion, if the recommendations 20 are stored
as metadata within the song files, the select songs, or more
specifically the corresponding song files, are transferred to the
PMP 14. Thereafter, the PMP 14 may ignore recommendations
identifying songs that are not stored on the PMP 14. Alternatively,
before transferring the select songs and recommendations 20 to the
PMP 14, the user system 12 may wait for all select songs to be
identified. Then, before transferring the select songs to the PMP
14, the user system 12 may filter the recommendations 20 for the
select songs to remove recommendations identifying songs that are
not also to be transferred to the PMP 14 or are already stored on
the PMP 14 from the metadata of the song files. The filtered
recommendations are provided to the PMP 14 and stored as, or as
part of, the recommendations 26. As a result, the recommendations
stored in the metadata of the select song files are filtered before
transferring the songs and recommendations to the PMP 14 such that
the recommendations 26 on the PMP 14 are limited to the songs 24
stored on the PMP 14.
[0037] At this point, synchronization is complete, and the PMP 14
may be decoupled from the user system 12. While the PMP 14 is
decoupled from the user system 12, the PMP 14 may use the
recommendations 26 to facilitate playback of the songs 24 (step
104). More specifically, in one embodiment, the user of the PMP 14
may select songs to play in traditional fashion. For example, the
user may select one or more of the songs 24 for playback, generate
a play list identifying a number of the songs 24 for playback,
select a previously defined playlist, instruct the PMP 14 to
randomly select or automatically "shuffle" the songs 24 or a group
of the songs 24, or the like. In addition, the user may instruct
the PMP 14 to play a number of the recommendations 26 associated
with each of the selected songs for playback. This is referred to
herein as a "play by recommendation" mode of operation.
[0038] In another embodiment, the PMP 14 may be instructed or
configured to operate in a "more like this" mode. In this mode, a
seed song is selected, and the PMP 14 plays one or more
recommendations associated with the seed song. In a third
embodiment, the PMP 14 enables the user to browse, or navigate, the
recommendations 26 to select songs for playback.
[0039] FIG. 3 illustrates playback of a playlist and
recommendations according to an exemplary embodiment of the present
invention. Before discussing exemplary playback scenarios, it may
be beneficial to briefly discuss the illustrated recommendation
scheme. In this example, the playlist includes SONG A and SONG H.
SONG B-SONG G are recommended songs for SONG A and may be stored
either in an application file or as metadata within the song file
for SONG A. SONG B and SONG D-SONG G may be referred to herein as
direct, or level 1, recommendations for SONG A. Each of the songs
SONG B-SONG G has associated recommendations, which may be referred
to as indirect, or level 2, recommendations for SONG A. For
example, SONG C is a recommended song for SONG B and is an
indirect, or level 2, recommendation for SONG A. The chain of
recommended songs continues indefinitely, as denoted by the
ellipses. In a similar fashion, SONG H, which is the second song in
the playlist, has an associated series of direct and indirect
recommendations, shown as SONG I-SONG M.
[0040] As a first exemplary playback scenario, the PMP 14 operates
in the play by recommendation mode, and either user defined
preferences or a default setting of the PMP 14 define a number of
recommendations for play for each song in the playlist and the
number of recommendation levels to traverse. In this example, the
number of recommendations to play for each song is unlimited and
the number of recommendation levels to traverse is two. The PMP 14
first plays SONG A. Next, the PMP 14 proceeds to the direct or
level 1 recommendations for SONG A and plays SONG B. Then, since
the PMP 14 is to traverse two recommendation levels, the PMP 14 may
play SONG C and the other level 2 recommendations associated with
SONG B. Next, the PMP 14 may play SONG D and the associated level 2
recommendations, then SONG E and the associated level 2
recommendations, then SONG F and the associated level 2
recommendations, and then SONG G and the associated level 2
recommendations. The PMP 14 may then proceed to play the next song
in the playlist, SONG H, and the associated level 1 and level 2
recommendations. The process may continue until the PMP 14 reaches
the end of the playlist.
[0041] Rather than sequentially stepping through the level 1 and
level 2 recommendations, the PMP 14 may operate to randomly select
or shuffle the level 1 recommendations, the level 2
recommendations, or both the level 1 and level 2
recommendations.
[0042] As a second exemplary playback scenario, the PMP 14 operates
in the play by recommendation mode, the number of recommendations
to play for each song is limited to three songs, and the number of
recommendation levels to traverse is two. The PMP 14 first plays
SONG A. Next, the PMP 14 selects three songs from the level 1 and
level 2 recommendations associated with SONG A. The PMP 14 may
select the three songs randomly or based on user preferences. For
example, the user may prefer level 1 recommendations. As such, the
PMP 14 may select the three songs from the level 1 recommendations
for SONG A. Next, the PMP 14 proceeds to play the next song in the
playlist, SONG H, and then three of the associated level 1 and
level 2 recommendations. The process continues until the PMP 14
reaches the end of the playlist.
[0043] Rather than selecting initial songs using a playlist, the
PMP 14 may be configured to operate in a shuffle mode where the PMP
14 randomly selects songs to play from a playlist, from a group of
the songs 24 stored on the PMP 14, or from all of the songs 24
stored on the PMP 14. Once a song is selected by the PMP 14, the
PMP 14 may play the selected song and one or more of the direct and
indirect recommendations associated with the song in a manner
similar to that described above.
[0044] The PMP 14 may alternatively operate in the more like this
mode, where the user of the PMP 14 may select a seed song and
instruct the PMP 14 to play other songs that are like the seed
song. In response, the PMP 14 may play one or more of the direct
and indirect recommendations associated with the seed song in a
manner similar to that described above.
[0045] In any of the modes of operation described above, there may
be a user defined or default "no repeat window." The no repeat
window is a defined period of time during which no song may be
repeated. For example, the no repeat window may be defined as a
number of songs that must be played before a song may be repeated
or by an amount of time that must pass before a song may be
repeated. The no repeat window may be desirable since the same song
may be recommended for any number of other songs.
[0046] FIG. 4 illustrates the system 10 according to a second
embodiment of the present invention. In this embodiment, the system
10 includes a server 28 communicatively coupled to user system 12'
via a network 30, wherein the server 28, rather than the user
system 12', hosts a recommendation engine 32. In addition, the
server 28 may optionally host a service 34. The service 34 may
alternatively be hosted by a separate server. The recommendation
engine 32 may be implemented in software, hardware, or a
combination of software and hardware, and operates to generate the
recommendations 20 for a number of songs in the music collection 18
stored on the user system 12'. In one embodiment, the
recommendations 20 are limited to other songs in the music
collection 18. In another embodiment, the recommendations 20 may
include songs from the music collection 18, songs available via the
service 34, or a combination thereof. If the recommendations 20
include both songs from the music collection 18 and songs available
via the service 34 that are not in the music collection 18, the
user may define preferences limiting the number of recommended
songs that are not in the music collection 18.
[0047] The service 34 may be, for example, a subscription based
music service providing access to songs for a subscription fee or
an e-commerce service enabling purchase and download of songs.
Exemplary subscription based music services include Yahoo! Music
Unlimited and RealNetwork's Rhapsody, which each provide access to
millions of songs for a monthly subscription fee. Exemplary
e-commerce services enabling purchase and download of songs include
Apple's iTunes and Napster.
[0048] FIG. 5 illustrates the operation of the system 10 of FIG. 4
according to one embodiment of the present invention. First, the
user system 12' provides information identifying one or more songs
for which recommendations are desired to the server 28 (step 200).
The server 28 may optionally verify the identity of the songs. The
recommendation engine 32 at the server 28 then generates the
recommendations 20 for each of the identified songs (step 202). As
discussed above, the recommendations 20 may be generated using any
known recommendation scheme. If the recommendations 20 are limited
to songs in the music collection 18 or if the recommendations 20
include songs in the music collection 18 and songs not in the music
collection 18, the user system 12' may additionally provide
information identifying all of the songs in the music collection 18
to the server 28. Alternatively, if the songs in the music
collection 18 were obtained via the service 34, the server 28 may
obtain information identifying the songs in the music collection 18
from a database associated with the service 34, where the database
includes information identifying each song downloaded to the user
system 12'.
[0049] The server 28 then provides the recommendations 20, or more
specifically information identifying the recommended songs for each
song identified in step 200, to the user system 12' (step 204). The
information identifying the recommended songs may be, for example,
Globally Unique Identifiers (GUIDs), titles of the songs, or the
like. In addition, for recommended songs available via the service
34, the recommendations 20 may include Uniform Resource Locators
(URLs) that may be used to obtain the songs from the service 34.
The user system 12' stores the recommendations 20 either in an
application file or as metadata within the corresponding song
files.
[0050] Optionally, for recommended songs that are not stored in the
music collection 18, the service 34 may provide the recommended
songs, or previews of the recommended songs, to the user system 12'
(step 206). The service 34 may provide the recommended songs or
previews to the user system 12' automatically in response to
instructions from the recommendation engine 32 or in response to a
request from the user system 12'.
[0051] Thereafter, select songs and the recommendations 20, or a
filtered version of the recommendations 20, are provided to the PMP
14 during a synchronization process (step 206). Note that songs for
previews that were obtained from the service 34 in step 206 may
automatically be transferred to the PMP 14 when the associated
songs for which they are recommended are transferred to the PMP 14
or transferred to the PMP 14 only when selected by the user. As
discussed above, the recommendations provided to the PMP 14 may
optionally be filtered before transferring the recommendations to
the PMP 14 to limit the recommendations to songs or previews
stored, or to be stored, on the PMP 14. At this point,
synchronization is complete, and the PMP 14 uses the
recommendations to facilitate playback, as described above (step
210).
[0052] Note that previews may be treated like any other recommended
song. However, the user of the PMP 14 may mark desired previews
such that the corresponding songs are subsequently obtained from
the service 34. For example, see U.S. patent application Ser. No.
11/403,499, entitled PORTABLE MEDIA PLAYER ENABLED TO OBTAIN
PREVIEWS OF MEDIA CONTENT, filed Apr. 13, 2006; U.S. patent
application Ser. No. 11/403,598, entitled USER SYSTEM PROVIDING
PREVIEWS TO AN ASSOCIATED PORTABLE MEDIA PLAYER, filed Apr. 13,
2006; and U.S. patent application Ser. No. 11/403,597, entitled
CENTRAL SYSTEM PROVIDING PREVIEWS TO A PORTABLE MEDIA PLAYER, filed
Apr. 13, 2006, all of which are hereby incorporated herein by
reference in their entireties.
[0053] FIG. 6 illustrates the system 10 according to a third
embodiment of the present invention, where the system 10 is similar
to that illustrated in FIG. 5. In this embodiment, the PMP 14' has
access to the service 34 via a network 36. While illustrated
separately, the network 36 may be interconnected to or part of the
network 30. The PMP 14' preferably has access to the network 36 via
a local wireless communication interface or a cellular
communication interface. An exemplary local wireless communication
interface is a communication interface operating according to one
of the suite of IEEE 802.11 standards, the Bluetooth standard, or
the like. An exemplary cellular communication interface is a
communication interface operating according to the Global System
for Mobile Communication (GSM) standard, the Third Generation (3G)
Wideband Code Division Multiple Access (WCDMA) standard, or the
like.
[0054] FIG. 7 illustrates the operation of the system 10 of FIG. 6
according to one embodiment of the present invention. First, the
user system 12' provides information identifying one or more songs
for which recommendations are desired to the recommendation engine
32 (step 300). The recommendation engine 32 at the server 28 then
generates the recommendations 20 for each of the identified songs
(step 302). As discussed above, the recommendations 20 may be
generated using any known recommendation scheme. In this
embodiment, the recommendations 20 preferably include songs
available to the PMP 14' via the service 34 and, optionally, songs
from the music collection 18. The user may define a percentage, or
proportion, of the recommendations 20 that are to be songs in the
music collection 18. However, the recommendations 20 may
alternatively be limited to the songs in the music collection
18.
[0055] If the recommendations 20 are limited to songs in the music
collection 18 or if the recommendations 20 include both songs in
the music collection 18 and songs not in the music collection 18,
the user system 12' may additionally provide information
identifying all of the songs in the music collection 18 to the
recommendation engine 32. Alternatively, if the songs in the music
collection 18 were obtained via the service 34, the recommendation
engine 32 may obtain information identifying the songs in the music
collection 18 from a database associated with the service 34, where
the database includes information identifying each song downloaded
to the user system 12'.
[0056] The recommendation engine 32 then provides the
recommendations 20, or more specifically, information identifying
the recommended songs for each song identified in step 300, to the
user system 12' (step 304). The information identifying the
recommended songs may be, for example, GUIDs, titles of the songs,
or the like. In addition, for recommended songs available via the
service 34, the recommendations 20 may include URLs that may be
used to obtain the songs from the service 34. The user system 12'
stores the recommendations 20 either in an application file or as
metadata within the corresponding song files. Thereafter, select
songs and associated recommendations are provided to the PMP 14
during a synchronization process, as described above (step
306).
[0057] Once synchronization is complete, the PMP 14 may use the
recommendations to facilitate playback, as described above (step
308). During playback of songs on the PMP 14', if the PMP 14'
desires to play one of the recommended songs that is not stored on
the PMP 14' but is available via the service 34, the PMP 14' may
obtain the song or a preview of the song from the service 34 via
the network 36 (steps 310-312). For previews, if the user desires
to obtain the full song, the PMP 14' may download the full song
from the service 34. The user may be required to purchase the song
prior to downloading the full song.
[0058] FIG. 8 illustrates the system 10 according to a fourth
embodiment of the present invention. In this embodiment, the PMP
14' directly obtains the recommendations 26 from the server 28.
FIG. 9 illustrates the operation of the system 10 of FIG. 8
according to one embodiment of the present invention. First, the
PMP 14' provides information identifying one or more songs for
which recommendations are desired to the recommendation engine 32
(step 400). The recommendation engine 32 at the server 28 then
generates the recommendations 26 for each of the identified songs
(step 402). As discussed above, the recommendations 26 may be
generated using any known recommendation scheme. In this
embodiment, the recommendations 26 preferably include songs
available to the PMP 14' via the service 34 and, optionally, songs
already stored on the PMP 14'. The user may define a percentage, or
proportion, of the recommendations 26 that are to be songs already
stored on the PMP 14'. Alternatively, the recommendations 26 may
alternatively be limited to the songs 24 already stored on the PMP
14'.
[0059] If the recommendations 26 include songs already stored on
the PMP 14' or if the recommendations 26 are limited to the songs
24 already stored on the PMP 14', the PMP 14' may additionally
provide information identifying all of the songs 24 stored on the
PMP 14' to the recommendation engine 32. Alternatively, if the
songs 24 stored on the PMP 14' were obtained via the service 34,
the recommendation engine 32 may obtain information identifying the
songs 24 stored on the PMP 14' from a database associated with the
service 34, where the database includes information identifying
each song downloaded to the PMP 14'.
[0060] The recommendation engine 32 then provides the
recommendations 26, or more specifically, information identifying
the recommended songs for each song identified in step 400, to PMP
14' (step 404). The information identifying the recommended songs
may be, for example, GUIDs, titles of the songs, or the like. In
addition, for recommended songs available via the service 34, the
recommendations 20 may include URLs that may be used to obtain the
songs from the service 34. The PMP 14' stores the recommendations
26 either in an application file or as metadata within the
corresponding song files. At this point, the PMP 14' uses the
recommendations 26 to facilitate playback, as described above (step
406). During playback of songs on the PMP 14', if the PMP 14'
desires to play one of the recommended songs that is not stored on
the PMP 14' but is available via the service 34, the PMP 14' may
obtain the song or a preview of the song from the service 34 via
the network 36 (steps 408-410). For previews, if the user desires
to obtain the full song, the PMP 14' may download the full song
from the service 34. The user may be required to purchase the song
prior to downloading the full song.
[0061] FIG. 10 is a block diagram of an exemplary embodiment of the
user system 12 of FIGS. 1 and 2. In general, the user system 12
includes a control system 38 having associated memory 40. In this
example, the recommendation engine 16 is at least partially
implemented in software and stored in the memory 40. The user
system 12 also includes a storage unit 42, or alternatively one or
more storage units, operating to store the music collection 18 and
recommendations 20. The storage unit 42 may be any digital storage
unit such as, for example, a hard-disc drive, a network drive
associated with the user system 12, memory, an optical storage
device, or the like. The user system 12 also includes a
communication interface 44. The communication interface 44 includes
an interface for communicating with the PMP 14 during
synchronization. For example, the communication interface 44 may
include either a wired interface or a local wireless interface for
communicating with the PMP 14. The user system 12 also includes a
user interface 46, which may include components such as, for
example, a display, one or more user input devices, speakers, and
the like.
[0062] FIG. 11 is a block diagram of an exemplary embodiment of the
user system 12' of FIGS. 4-7. In general, the user system 12'
includes a control system 48 having associated memory 50. The
memory 50 operates to store software instructing the user system
12' to operate according to the present invention. The user system
12' also includes a storage unit 52, or alternatively one or more
storage units, operating to store the music collection 18 and
recommendations 20. The storage unit 52 may be any digital storage
unit such as, for example, a hard-disc drive, a network drive
associated with the user system 12', memory, an optical storage
device, or the like. The user system 12' also includes a
communication interface 54. The communication interface 54 includes
an interface for communicating with the PMP 14 during
synchronization. For example, the communication interface 54 may
include either a wired interface or a local wireless interface for
communicating with the PMP 14. In addition, the communication
interface 54 includes a network interface communicatively coupling
the user system 12' to the network 30 (FIGS. 4, 6). The user system
12' also includes a user interface 56, which may include components
such as, for example, a display, one or more user input devices,
speakers, and the like.
[0063] FIG. 12 is a block diagram of an exemplary embodiment of the
PMP 14 of FIGS. 1, 2, 4, and 5. In general, the PMP 14 includes a
control system 58. In this example, the control system 58 includes
the media playback function 22, which may be implemented in
software, hardware, or a combination of hardware and software. The
PMP 14 also includes a storage unit 60, or one or more storage
units, operating to store the songs 24 and recommendations 26. The
storage unit 60 may be internal memory, a removable memory card, a
hard-disc drive, an optical storage device, or the like. The PMP 14
also includes a communication interface 62. The communication
interface 62 includes an interface for communicating with the user
system 12, 12' during synchronization. For example, the
communication interface 62 may include either a wired interface or
a local wireless interface for communicating with the user system
12, 12'. The PMP 14 also includes a user interface 64, which may
include components such as, for example, a display; one or more
user input devices, buttons, or keys; speakers; audio output ports
or jacks; and the like.
[0064] FIG. 13 is a block diagram of an exemplary embodiment of the
PMP 14' of FIGS. 6-9. In general, the PMP 14' includes a control
system 66. In this example, the control system 66 includes the
media playback function 22, which may be implemented in software,
hardware, or a combination of hardware and software. The PMP 14'
also includes a storage unit 68, or one or more storage units,
operating to store the songs 24 and recommendations 26. The storage
unit 68 may be internal memory, a removable memory card, a
hard-disc drive, an optical storage device, or the like. The PMP
14' also includes a communication interface 70. The communication
interface 70 may include an interface for communicating with the
user system 12, 12' during synchronization. For example, the
communication interface 70 may include either a wired interface or
a local wireless interface for communicating with the user system
12, 12'. The communication interface 70 also includes a network
interface to the network 36 (FIGS. 6 and 8). The network interface
is preferably either a local wireless communication interface or a
cellular network interface. The PMP 14' also includes a user
interface 72, which may include components such as, for example, a
display; one or more user input devices, buttons, or keys;
speakers; audio output ports or jacks; and the like.
[0065] FIG. 14 is a block diagram of an exemplary embodiment of the
server 28 of FIGS. 4-9. The server 28 generally includes a control
system 74. In this example, the recommendation engine 32 and
service 34 are implemented as part of the control system 74 and may
be implemented in hardware, software, or a combination of hardware
and software. The server 28 also includes one or more storage units
76 and a communication interface 78. The communication interface 78
communicatively couples the server 28 to the networks 30 and 36.
The server 28 may also include a user interface 80, which may
include components such as, for example, a display, one or more
user input devices, and the like.
[0066] The present invention provides substantial opportunity for
variation without departing from the spirit or scope of the present
invention. For example, while the discussion herein focuses on
digital music, the present invention is not limited thereto. The
present invention is equally applicable to other types of media
content, such as video content, as will be apparent to one of
ordinary skill in the art upon reading this disclosure. Examples of
video content are movies, television programs, and like.
[0067] As a second example, while the discussion above focuses on
generating recommendations for songs identified by either the user
system 12, 12' or the PMP 14', the present invention is not limited
thereto. More specifically, a service, such as the service 34, may
provide a subscription based service or an e-commerce service
wherein recommendations for songs are provided upon initial
download or purchase from the service 34. Thus, for example, when a
user requests a particular song from the subscription based service
34, recommendations for the song may be provided in addition to the
song either separately or as metadata within the song file. The
recommendations may be generated by the recommendation engine 16,
which may be hosted by the same server or a third-party server,
prior to or in response to receiving the request for the song.
Again, the recommendations may or may not be limited to songs
already in the user's music collection 18.
[0068] As a third example, while the discussion of FIGS. 1-7 focus
on generating recommendations prior to selecting songs for transfer
to the PMP 14, 14', the present invention is not limited thereto.
More specifically, recommendations may be obtained or generated
only for those songs selected to be transferred or transferred to
the PMP 14, 14' after the songs are selected to be transferred to
transferred to the PMP 14, 14'.
[0069] As a fourth example, the discussion of FIGS. 1-7 above
focuses on generating recommendations for songs in the music
collection 18 of the user system 12, 12'. However, there are
situations where songs stored on the PMP 14, 14' are not included
in the music collection 18. This may particularly be the case where
the PMP 14' obtains music directly from the service 34. In this
situation, the user system 12, 12' may obtain information
identifying the songs already stored on the PMP 14' during a
synchronization process and either generate or obtain
recommendations for those songs in addition to or instead of
generating or obtaining recommendations for one or more songs from
the music collection 18 of the users system 12, 12'.
[0070] Those skilled in the art will recognize improvements and
modifications to the preferred embodiments of the present
invention. All such improvements and modifications are considered
within the scope of the concepts disclosed herein and the claims
that follow.
* * * * *