Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR AUTOMATICALLY DETERMINING AND DYNAMICALLY UPDATING USER PREFERENCES IN AN ENTERTAINMENT SYSTEM
Document Type and Number:
WIPO Patent Application WO/1997/047135
Kind Code:
A1
Abstract:
A method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system is provided. In a first embodiment, an apparatus comprises a storage medium (616) to store user preference information corresponding to at least a subset of a plurality of entertainment system users and a processor agent (604). The processor agent (604), communicatively coupled to the storage medium, is operative to monitor user interaction with the entertainment system and to automatically detect which user of the plurality of entertainment system users is currently using the entertainment system.

Inventors:
WILLIAMS CHRISTOPHER D (US)
GOLDSCHMIDT IKI JEAN M (US)
SHAH-NAZAROFF ANTHONY A (US)
WATTS EARL MICHAEL (US)
HACKSON DAVID N (US)
MOORE KENNETH ALAN (US)
Application Number:
PCT/US1997/009178
Publication Date:
December 11, 1997
Filing Date:
June 04, 1997
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INTEL CORP (US)
International Classes:
H04H60/46; H04N5/44; H04N7/10; H04N7/173; H04N21/441; H04N21/442; H04N21/45; H04N21/454; H04N21/462; H04N21/466; H04N21/81; H04N17/04; (IPC1-7): H04N7/00; H04N7/10; H04N7/14
Foreign References:
US5583560A1996-12-10
US5550575A1996-08-27
US5572643A1996-11-05
Download PDF:
Claims:
CLAIM
1. aS We claim: An apparatus for use in an entertainment system, the apparatus comprising: a storage medium to store user preference infomiation corresponding to at least a subset of a plurality of entertainment system users; and a processor agent, communicatively coupled to the storage medium, operative to monitor user interaction with the entertainment system, and operative to automatically detect which user of the plurality of entertainment system users is currently using the entertainment system.
2. The apparatus of claim 1 , wherein the processor agent is operative to automatically detect which user of the plurality of entertainment system users is currently using the entertainment syaStem based on user interaction with the entertainment system and the user preference infomiation.
3. The apparatus of claim 1 , wherein the proces.sor agent is operative to determine which of the plurality of entertainment system users is currently using the entertainment system by monitoring u.ser input and current entertainment system settings and comparing the user input and current entertainment system settings to the user profile infomiation for the subset of entertainment system users.
4. The apparatus of claim 3, wherein the user input includes infomiation associated with television program selection, web page .selection, volume settings, and/or supplementary program information.
5. The apparatus of claim 1 , further comprising a programming storage medium, communicatively coupled to the processor agent, to store programming infomiation, and wherein the processor agent is operative to dynamically configure the entertainment system in accordance with the user preference information corresponding to the detected user.
6. The apparatus of claim 5, wherein the dynamic configuration includes providing an updated list of web sites which correspond to user preferences and available programming infomiation.
7. The apparatus of claim 5, wherein the dynamic configuration includes providing the user with supplemental program information.
8. The apparatus of claim 5, wherein the processor agent is operative to suggest program options to the u.ser corresponding to the program information and the u.ser preference infomiation for the detected user.
9. The apparatus of claim 1 , wherein the processor agent is operative to continuously update a user profile of the detected user in response to user interaction with the entertainment system.
10. The apparatus of claim 10, wherein the u.ser profile is stored locally within the apparatus.
11. The apparatus of claim 10, wherein the user profile is stored remotely.
12. The apparatus of claim 10, wherein the user profile includes television programming preferences.
13. The apparatus of claim 10, wherein the user profile includes Internet preferences.
14. The apparatus of claim 13, wherein the Internet preferences include preferred web sites.
15. The apparatus of claim 13, wherein the Internet preferences include web site genre infomiation corresponding to the content type of infomiation preferred by the user, wherein the processor agent is operative to use the web site genre information to facilitate an active search of the Internet to provide the user with a list of new web sites, not previously accessed by the u.ser, which match the user profile.
16. The apparatus of" claim 8, wherein the processor agent is operative to prompt the u.ser with the option of recording a program when the u.ser has selected another program option, and to communicate with an entertainment system component to record the program.
17. The apparatus of claim 1 , wherein the processor agent is operative to provide a user interface through which the user can manipulate a u.ser profile of the user.
18. An entertainment system, the entertainment system comprising: at least one entertainment system component providing programming received via at least one input; a storage medium to store user preference infomiation corresponding to at least a subset of a plurality of entertainment system users; and a processor, communicatively coupled to the at least one entertainment system component, operative to monitor u.ser interaction with the entertainment system, to automatically detect which user of the plurality of entertainment .system users is currently using the entertainment system, and operative to dynamically adjust operating parameters for the entertainment system in response to the user preferences for the delected user.
19. The apparatus of claim 18, wherein the user preference information is obtained from at least one user profile.
20. The entertainment system of claim 19, wherein there exists a u.ser profile for each of the plurality of entertainment system users.
21. The entertainment system of claim 19, wherein the proces.sor agent is operative to update the user profile of the current entertainment system user with user preference information obtained while monitoring u.ser interaction with the entertainment system.
22. A method toi automatically detecting which usei of a pluiality of users is cuπently using an entertainment system, the method comprising the steps of (a) monitoring the user's interaction with the enteitainment system, (b) conipai ing the user's interaction with the enteitainment system against stored user pieferences, and (c) determining which user of the plurality of users is cuπently using the entertainment system, based on the result of said step of comparing .
23. The method ol claim 22, wheiein the step of monitoring comprises passively logging usei definable settings to a temporal y log.
24. The method of claim 23, wherein the user definable settings include channel and station mtomiation, volume infomiation and supplementary programming infomiation.
25. The method of claim 22, wherein the step of determining comprises calculating a metnc ot the likelihood that the infomiation contained in the temporal y log matches that ot one of the plurality of system useis for which preference infomiation is available.
26. The method of claim 22, tut ther comprising the step ol (d) configuring the enteitainment system in accordance with the usei preferences toi the detei mined usei .
27. The method ol claim 26, wheiein the step of conf iguring compnses the steps of (d 1 ) accessing a database containing user preferences, and (d.2) ad|ustmg opeiating parameters of the entertainment system in accoidance with the usei pieteiences corresponding to the usei identified in step (c) .
28. In an enteitainment system including a system controller, a television/monitor, an audio input device and a video input device, a method for automatically contigunng the enteitainment system for an identified usei of a plurality ot system useis, the method comprising the steps of (a) determining which user fiom the plurality of system users is cuπently using the enteitainment system, (b) letneving usei pieference infomiation corresponding to the identified usei , (c) scanning piogiamming infomiation lor available piogiamming corresponding to usei piefeience infomiation, and (d) adjusting the enteitainment system in accoidance with the user piefeience infomiation and available piogiamming .
29. The method ol laim 28, wherein the step of determining comprises the steps oi (a 1 ) piompting the user to speak into the audio input device, wherein the speech is lecoided by the system controller, (a 2) coinpaiing the speech input with a stoied audio clip ot each of the plurality ot system useis, and (a 3) identitying the usei fiom the plurality of system users based on the compaiison of lecoided speech and audio clips .
30. The method ot claim 28, wherein the step of determining comprises the steps of (a 1 ) piompting the usei to pose foi the video input device, wheiein an image of the usei is lecoided by the system controllei, (a 2) compai ing the lecoided video image with a stoied video image ot each of the pluiality ol system useis, and (a 3) identifying the user from the plurality of system usei s based on the compai ison ol lecoided video image with the plurality of stoied video images.
Description:
M ETHOD AND APPARATUS FOR A UTOMATICA LLY D ETE R MINING

AND DYNAMICALLY U PDATING USER PREFERENCES IN AN

ENTERTAINMENT SYSTEM

RELATED APPLICATIONS

This non-provisional application claims priority to provisional application no. 60/019, 351 by Jean Goldschmidt, Earl Watts and Kathleen Lane, for a Programming Preferences Agent Specification filed on June 6, 1996; provisional application no. 60/024,435 filed on August 22, 1996, for a Television Viewing Behavior Monitor by Jean Goldschmidt, Tony Shah, Christopher Williams and Kathleen Lane; provisional application no. 60/024,436 entitled Entertainment System Which Customizes Its Configuration To A Particular User, filed on August 22, 1996; provisional application no. 60/024,452 entitled Television Personalization, filed on August 27, 1996, by Jean Goldschmidt, Tony Shah, Christopher Williams and Kathleen Lane; and provisional application no. 60/020,580 entitled Customized Television Schedule With Suggested Viewing List, filed on June 26, 1996, by Jean Goldschmidt and Michael Watts. Each of the foregoing provisional applications are commonly assigned to Intel Corporation of Santa Clara, California.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of entertainment systems and, in particular, to a method and apparatus for automatically determining and dynamically configuring user preferences in an entertainment system.

2. Background Information

Numerous advances have been made in recent years in the field of entertainment systems. For example, programming guides are now prevalent on many cable systems throughout the country. In one embodiment, these programming guides are offered on a particular channel within the cable broadcast,

and provide programming information for the next several hours. More advanced ones of these prior art systems may allow the u.ser to interact with the program guide to manually select a particular program to record or view.

Another example of advances in entertainment systems has been the advent of parental control, wherein a person may "lock out" or require a password for channels that may be unsuitable for certain members of the family. Equally impressive advances have been made in audio devices, video recorders/playback devices, etc. A number of these devices allow a user to manually program the device to record a program given appropriate information regarding the program (channel, date, start time, end time, etc.). Other current systems allow a user to manually "add" and "erase" channels and thereby generate a preferred "channel surfing" order. For example, the u.ser may erase channels 3 and 4 in order to pass directly from channel 2 to channel 5 when channel surfing. However, with these systems the channel surfing order must be manually programmed by a user and must be manually re-programmed by the next user if he or she desires a different order. That is to say, none of these prior art entertainment systems are capable of automatically determining which user is currently using the system and dynamically configuring the entertainment system in accordance with a user profile corresponding to the user.

Thus, a need exists for a method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system.

SUMMARY OF THE INVENTION

In accordance with the teachings of the present invention, a method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system is provided. In one embodiment of the present invention, an apparatus for use in an entertainment system is provided including a storage medium to store user preference information for at least a subset of a plurality of entertainment system users, and a processor agent. The processor agent, communicatively coupled to the storage medium, is operative to monitor user interaction with the entertainment system, and to automatically determine which user of the plurality of entertainment system users is currently using the entertainment system.

BRIEF DESCRIPTION OF I HE DRAWINGS

The present invention will be descπbed by way ot exemplaiy embodiments, but not limitations, lllustiated in the accompanying diawings in which like references denote similar elements, and in which

Figure 1 is a block diagram illustrating a number of components making up an entertainment system in which the present invention may be practiced,

Figure 2 is a flow chart illustrating the steps followed in dynamically customizing system operating parameteis corresponding to user preferences in accordance with one embodiment of the present invention.

Figure 3 is a flow chai t illustrating the steps followed in determining which U5>er ot a plurality of system useis is cuirently using the system according to one embodiment of the present invention,

Figure 4 is a flow chart illustrating the steps followed identifying programming information which might be of interest to a user according to one embodiment of the present invention,

Figure 5 is a block diagram illustrating an example computer system incorporating the teachings of one embodiment of the present invention,

Figure 6 is a block diagram illustrating the software elements according to one embodiment of the present invention,

Figure 7 illustrates a user piofile database according to one embodiment of the present invention; and

Figure 8 illustrates a program database according to one embodiment of the present invention

DETAILED DESCRIPTION

In the following description, for purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without the .specific details. In other instances, well known features are omitted or simplified in order not to obscure the pre.sent invention. Furthermore, for ease of understanding, certain method steps are delineated as separate steps, however, these separately delineated steps should not be construed as necessarily order dependent in their performance.

Turning now to Figure 1, a block diagram is presented illustrating the system components of one example of an exemplary entertainment system in which the present invention may be practiced. As will be discus.sed in greater detail below system 100 includes system controller 104 which, in one embodiment, is configured to store user profile information which controller 104 develops for each of the users of system 100. In addition, system controller 104 is configured to retrieve and store entertainment programming information available from a wide variety of sources. During operation of system 100, system controller 104 automatically determines which user of a plurality of system users is currently using the system by comparing received inputs and current settings to at least a subaSet of the user profiles for at least a subset of the plurality of entertainment .system users. Having determined which user of the plurality of system users is currently using the system, system controller 104 dynamically configures the operating parameters of system 100 in accordance with the user preference information of the user profile corresponding to the determined entertainment system user, and offers programming/entertainment suggestions, and a host of additional value added features to enhance the user's enjoyment of system 100. In one embodiment, system controller 104 may be a computer system incorporated with the teachings of the present invention, as will be discussed in further detail below. In another embodiment, system controller 104 may be a "set-top" box endowed with the necessary processing power and incorporated with the teachings of the present invention. Regardless of the particular embodiment, system controller 104 may also be referred to as a "convergence system" designed to integrate the world of entertainment systems

and computing platforms to achieve the beneficial results di.scus.sed in greater detail below

Although the present invention is described in the context of the exemplary embodiments presented in the figures, based on the descriptions to follow, those skilled in the art will appreciate that the present invention is not limited to these embodiments and may be practiced in a variety of alternate embodiments Accordingly, the innovative features of the present invention may be practiced in a system of greater or lesser complexity than that of the system depicted in Figure 1

As shown, Figure 1 illustrates but one example of an entertainment system incorporated with the teachings of the present invention In the illustrated embodiment, system 100 includes television/monitor 102, video recorder/playback device 106, digital video disk (DVD) recorder/playback device 114, audio/video tuner and amplifier 110, audio playback/recorder device 122 and compact disk player 112, all coupled to a common input/output (I/O) bus 108. It is to be appreciated that the use of the common I/O bus 108 is for ease of explanation in the diagram only, and that a number of alternative means of routing input and output signals may be beneficially employed For example, audio input and output could be routed with an appropriate number of independent audio "patch" cables, video signals may be routed with independent coaxial cable, and control signals may be routed along a two-wire serial line, or through infrared (IR) communication signals or radio frequency (RF) communication signals

In addition, system 100 includes speaker system 116, microphone 118, video camera 120 and a wneless input/output control device 132 In one embodiment, wireless I/O contiol device 132 is an enteitainment system remote control unit which communicates with the components of system 100 through IR signals In another embodiment, wireless I/O control device 132 may be a wireless keyboard and cursor positioning device that communicates with the components of system 100 through IR signals or RF signals In yet another embodiment, wireless I/O control device 132 may be an I/R remote control device similar in appearance to a typical enteitainment system temote contiol with the

'DVD IS currently used as an acronym for digital video disk However, it appears thai the usage is being changed lo digital versatile disk lo reflect the ability of DVD technology lo be used for data other than video

added feature of a track-ball, which allows a user to position a cursor on a display of system 100.

At the core of the system is system controller 104 incorporated with the features of the present invention, configured to control a wide variety of features associated with each of the system components. As depicted, system controller 104 is coupled to each of the system components, as necessary, through I/O bus 108. In one embodiment, in addition to or in place of I/O bus 108, system controller 104 may be configured with a wireless communications transmitter (or tran.sceiver), which is capable of communicating with the system components via IR signals or RF signals 108'. Regardless of the control medium, system controller 104 is configured to control each of the entertainment system components of .system 100, although it is understood that each of the components may be individually controlled with wireless I/O device 132.

As illustrated in Figure 1, .syaStem 100 can be configured to receive programming input from a wide variety of sources. In one embodiment, for example, system 100 receives programming input from any or all of the following sources: cable broadcast 124, satellite broadcast 126 (e.g., via a satellite dish), very high frequency (VHF) or ultra high frequency (UHF) radio frequency communication of the broadcast networks 134 (e.g., via an aerial antenna), and/or the telephone/computer network interface 128. Further, it will be appreciated by one skilled in the art, that cable broadcast input 124, satellite broadcast input 126 and VHF/UHF input 134 may beneficially receive input from digital broadcast programming and digital cable programming. In addition to programming input, system 100 is also configured with a number of general purpose control outputs 130 which may be configured to control any number of devices. In one embodiment, for example, as system controller 104 configures system 100 to display a movie, it may also dim the lights in the room to a predetermined level to further enhance the viewing environment. Control circuitry which allows a computer system to control, for example, lighting, thermostat settings, and other household appliances are well known in the art and thus will not be described further. In another embodiment, system controller 104 analyzes programming content and configures system 100 to take full advantage of the programming. For example, if a television show is being broadcast in surround sound, system controller 104 determines that program is offered in surround sound and configures system 100 to display the television show in surround sound. If the

next .show telev sed on the network is not broadcast in surround sound, system controller 104 determines this and configures system 100 to display the television show in stereophonic or monophonic sound, as appropriate.

Except for the incorporated teachings of the present invention (to be more fully described below), system controller 104 is intended to represent a broad category of computer systems known in the art. An example of such a computer system is a desktop computer system equipped with a high performance microprocessor(s), such as the Pentium® processor, Pentium® Pro processor, or Pentium® II processor manufactured by and commonly available from Intel Corporation of Santa Clara, California, or the Alpha® processor manufactured by Digital Equipment Corporation of Manard, MA; a number of audio and video input and output peripherals/interfaces for receiving, digitizing and compressing audio and video signals are also known in the art. It is to be appreciated that the housing size and design for system controller 104 may be altered, allowing it to better visually fit into system 100.

It is also to be appreciated that the several entertainment system components depicted in Figure 1 can be beneficially combined. By way of example, system controller 104 could be integrated into television/monitor 102, DVD 114, or audio/video tuner and amplifier 110.

Turning now to Figures 2 through 4, flow charts illustrating one embodiment of the method steps of the present invention for automatically determining which of a plurality of users is currently using the system, and automatically configuring the system in accordance with user preference information of the user profile is shown. For ease of explanation, and not limitation, the method of Figures 2 through 4 will be developed in the context of an example implementation, wherein a user first begins u.sing system 100, step 202. It is to be appreciated that system 100 provides a number of alternate means by which system 100 may be activated. In one embodiment, the user simply uses wireless I/O device 132 to begin watching television 102. In one embodiment, the u.ser is "surfing" the Internet via system controller 104 and a modem (not .shown) coupled to telephone/network communications I/O 128. Regardless of the means by which the user activates system 100, system controller 104 determines which user of a plurality of known system users is currently using system 100, step 204. The method by which system controller 104 determines

which user of a plurality of users is currently using system 100 is de.scribed more fully below.

Having determined which user of a plurality of users is currently using system 100 in step 204, system controller 104 dynamically configures system configuration settings of system 100 in accordance with the user preference information found in the user profile corresponding to the identified user. Referring to Figure 7, depicted therein is one example of user profile database 700. In the illustrated embodiment of Figure 7, u.ser profile database 700 contains information (user preference information) associated with each of the different media supported in system 100. For example, in the illustrated embodiment of Figure 7, user profile database 700 includes user preference information related to a television/monitor, a personal computer and audio components. As depicted, for television/monitor 102, user profile database 700 tracks user preferred channels, volume, program genre information, whether to block content infomiation, and whether supplemental programming is requested with a particular channel. In the illustrated embodiment, for example, user profile database 700 includes a profile for the fictitious "Joe User". As illustrated, Joe User's favorite television channel is channel 2, which he enjoys viewing at a moderate volume; he prefers watching sports-type programming, no blocking is required, nor is any supplemental programming requested. With respect to channel 7, Joe enjoys watching movies available on this channel, at low volume, and he wishes to block violent movies. With respect to channel 1 1, Joe enjoys watching this station for its news coverage, at moderate volume, without the need for blocking, and Joe desires a "window" to be displayed on the television/monitor in which supplemental programming related to stock quotes are to be presented. In one embodiment, system controller 104 retrieves specific stock quotes customized to Joe's portfolio. In one implementation, system controller 104 retrieves the specific stock quotes from a predetermined world wide web .site on the Internet via telephone/network interface 128. In an alternate implementation, system controller 104 retrieves general stock quote infomiation from one of the broadcast network television channels. One skilled in the art will appreciate that in one embodiment, user profile database 700 may be stored locally in a storage medium found in system controller 104, while in alternate embodiments user profile database 700 may be stored remotely and accessed by

system controller 104 through one of the many input ports of system controller 104.

By way of additional examples, u.ser profile database 700 includes information indicating Joe User's preferred computer settings, including preferred types of Internet sites (e.g., Games, Sports, and Financial), as well as preferred software applications (e.g., a clock and a birthday reminder application). User profile database 700 also includes information indicating Joe User's preferred audio component .settings, including preferred radio stations and corresponding music types, as well as preferred listening volumes. In addition, user profile infomiation may be beneficially used to tailor advertising to the current user of the system 100. In one embodiment, for example, as the programming infomiation is made available to system controller 104, a wide variety of advertising segments may be downloaded which conform to the user profiles stored in a particular entertainment syaStem. Accordingly, if system controller 104 determines that a child is using entertainment system KM), it may restrict the advertising to breakfast cereal's and toys, whereas if the current user is an adult system controller may promote advertising for automobiles and home appliances. In another embodiment, system controller 104 may develop a customized news program, actively accumulating news stories that are particularly relevant or of particular interest to the current system user from any of the plurality of programming sources identified above.

It is to be appreciated that a wide range of configurable options can be monitored and stored in user profile database 700. In addition to those illustrated in Figure 7, additional user preferences which may be stored in user profile database 700 include video controls such as sharpness, contrast, and brightness, audio controls such as surround sound processing types (including Dolby™ Surround, Dolby I Digital, Dolby I M Surround Pro Logic, Dolby I 3 Stereo, and THX™), various surround sound processing modes (including both number of channels and type of sound environment to emulate, such as concert hall, rock concert, movie theater, etc.), stereophonic mode, monophonic mode, clo.sed captioning on/off, and preferred display layouts (e.g., window sizes and locations). Additional preference infomiation may also be stored in user profile database 700, including top ten favorite shows, most frequently watched/listened to source(s), most frequently watched/listened to channel(s)/station(s) per source, typical watching/liaStening periods, favorite genre(s), favorite commercιal(s),

favorite actor(s)/actress(es). For example, in one embodiment, system controller 104 determines which commercials a user favors by empirically recognizing which commercials get muted, or which commercials are interrupted (e.g., with a change of channel). In another embodiment, system controller 104 may determine which commercials are preferred by a particular user by eliciting feedback from the user whether the user liked the commercial, the commercial genre, etc. (e.g., through the use of an on screen prompt). In one embodiment, the.se configurable options for audio and video components are stored in user profile database 700 and referenced according to the media .source of the signal (e.g., satellite broadcast). By way of example, the user's preferred video and audio settings may differ based on the source of a signal, such as the surround sound processing mode preferences of "concert hall" for one audio station, "rock concert" for a second audio station, and "movie theater" for one of the satellite channels.

In one embodiment of the present invention, user profile database 700 also stores default configuration options for each component. For example, a particular volume level, contrast .setting, brightness setting, etc. for television/monitor 102 is stored and used by system controller 104 in the event different channel-specific preferences are not stored in user profile database 700. By way of another example, a particular volume level and station setting for audio/video tuner and amplifier 110 is stored and used by system controller 104 in the event more specific preferences are not stored in user profile database 700.

In one embodiment of the present invention, system controller 104 also provides a television schedule grid which displays the current channel selections for a predetermined period of time (e.g., the next two hours, week, or several weeks). The current program scheduling to be displayed is available from a programming database, as discussed in more detail below with reference to Figure 8. The display of this television schedule grid is a configurable option which can vary from user to u.ser ba.sed on the user's preference. In one embodiment, the television .schedule grid displays only those channels which user profile database 700 indicates the current u.ser watches. Additionally, in one embodiment the ordering of the channels on the television schedule grid varies based on the user's preference. In this embodiment, user profile database 700 maintains a record of a users spends watching each television channel. Then, when system controller 104 receives a request to view the television schedule grid

(e.g., via the user's remote control) it displays the channels in the grid in the order of most frequently watched to least frequently watched. In an alternate embodiment, the television schedule grid displays the channels in the grid based on the genre of programming available during the displayed time period. For example, channel 2 may be Joe User's favorite channel, but if channel 8 is airing a football game while channel 2 is airing a documentary on the history of knitting (not high on the list of Joe User's genre preferences), system controller 104 will display channel 8 before channel 2.

In one embodiment of the present invention, selection of various programs can be made via the television schedule grid. In this embodiment, a user can select a particular portion of the grid by moving a cursor across the grid to a cell in the grid that contains the title of the program to be .selected and then "clicking" the mou.se button while the cursor is within the cell. System controller 104 can then a.sk the user whether the selected program is to be watched or recorded and display or record the program as requested by the user.

Returning to the example implementation of Figure 2, in parallel to configuring the system configuration of system 100 in step 206, system controller 104 continuously monitors the user interaction with system 100 to update and refine the u.ser preference infomiation stored in u.ser profile database 700 in step 210. In particular, system controller 104 monitors and logs each of the user inputs received by the entertainment system (e.g., volume, color, supplemental programming, time logged on a particular web page, etc.) and updates the user preference infomiation found in the appropriate records of the user profile.

It is to be appreciated that, in order to accurately monitor and log user inputs, system controller 104 needs to be made aware of the u.ser inputs. In one embodiment, input signals (e.g., channel/station changes, volume changes, web page addresses, etc.) are input to system 100 via system controller 104, which in turn forwards control signals to the appropriate components to perform the desired function. In an alternate embodiment, inputs could be provided to different components of system 100 directly without going through system controller 104. In this embodiment, system controller 104 could receive control signals from the different components which identify the user inputs. Alternatively, in this embodiment system controller 104 could passively monitor wireless signals

provided to various components of system 100, such as via wireless I/O device 132, in order to identify user inputs.

Once system 100 has been configured in accordance with the u.ser preference information found in u.ser profile database 700, system controller 104 scans the programming infomiation found in a program database to identify programs which may be of particular interest to the u.ser, ba.sed on the user profile, in step 208. The method in which system controller 104 provides appropriate programming suggestions will be described in further detail below. In one embodiment, the program database is part of system controller 104, and is updated periodically by acces.sing a remote .server (not shown) via telephone/network communications 128 or via other mediums such as distributed diskettes or CD ROMs, a vertical blanking interval (VBI) of an analog video signal, or an additional data stream corresponding to a digital video signal (e.g., from a satellite system). In an alternate embodiment, the program database is located on a remote server (not shown), and system controller 104 accesses the remote server when necessary. One example of a program database, suitable for use in the present invention, is depicted in Figure 8. In the illustrated embodiment of Figure 8, program database 800 provides programming information corresponding to various media (cable, RF broadcast, satellite, audio programming, etc.), channels available in each medium, program time slots, and the genre of the program in each time slot. This information is then available for each day of the week (Monday-Sunday), and for each day of the month (1-31), as appropriate. For ease of explanation, program database 800 is depicted as a three-dimensional array, however, program database 800 could be implemented using any of a wide variety of conventional data structures.

It is to be appreciated that additional infomiation (not shown) can also be stored for the various channels in program database 800. This additional infomiation includes the length of the program, a program description/synopsis, actors/actresses, director, date of first airing or release, program genre, channel call-sign, rating, critique, etc.

Returning now to Figure 2, having provided programming suggestions, as appropriate in step 208, system controller 104 continues to monitor user interaction with system 100 until system controller 104 detects a new user, step 220. In the illustrated embodiment, system controller 104 continues to monitor

user interaction with system 100 and determine whether a new user is detected until system 100 is turned off.

Figure 3 illustrates the steps followed by system controller 104 in determining which of a plurality of system users is currently using system 100, in accordance with one embodiment of the present invention. In particular, Figure 3 illustrates steps 204 and 220 of Figure 2 in more detail, in accordance with one embodiment of the present invention. As depicted, the method begins with system controller 104 monitoring user interaction with system 100 and checking current .system settings, step 302. This monitored user infomiation is stored in a behavior log, as discussed in more detail below. In step 304, system controller 104 compares the information contained in the behavior log as well as the current system settings with user preference infomiation for at least a subset of the plurality of entertainment system users. In one embodiment, the plurality of user profiles are stored locally, in system 100, and the entire user profile is used to determine which u.ser is using the entertainment system. In an alternate embodiment, system controller 104 may load into a memory a select subset of u.ser preference infomiation for a first subset of the plurality of entertainment system users, and, if a match is not found, loads a subset of user preference infomiation from a subsequent subset of the plurality of entertainment system user profiles until a match is found. Infomiation available on the known system users is contained in a user profile database (e.g., user profile database 700) which may reside locally within system 100, or may reside at remote location. In one implementation, system controller 104 uses only that infomiation in the behavior log which has been stored since the later of system controller 104 last being turned on and system controller 104 last identifying a particular user. In step 306, system controller 104 identifies whether the infomiation of the behavior log matches that of the data for any of the known system u.sers. In one embodiment, system controller 104 calculates a user metric for the information in the behavior log and the current system settings as well as for each of the known system users. If there is greater than a predetermined probability that the infomiation in the behavior log matches the user profile of one of the known users, system controller 104 determines that a match has been made and, in step 308, configures system 100 in accordance with the user preference information of the user profile database 700.

In one embodiment, the user metric takes into account the current settings in aSystem 100 for each user configurable option as stored in user profile databaaSe 700, such as television channel, current volume setting, current audio station, program genie, etc. It is to be appreciated that in order to identify some information, such as program genre, system controller 104 may need to access program database 800 of Figure 8 to identify which program and thus the program genre of the television channel currently being viewed In othei embodiments, this supplemental information may be piovided in the bioadcast itself as Intercast infomiation, oi in the VBI.

To generate the metric, in one embodiment of the pie.sent invention, each of the configurable options is given a different predetennined weight and the weighted values are added together. By way of example, the television channel being viewed may be given a higher weight than the volume of the channel. This sum of weighted values is compared to a predetermined value and, if the sum exceeds the predetennined value, then the system controller 104 considers a match to be found In one embodiment, the predetermined weights are dynamic, allowing the weight foi a particular option to change as the duration of that option remains unchanged For example, the weight of the television channel being viewed may be much higher if the channel has remained unchanged for a few minutes, indicating that a user is actually watching that channel, rather than if the channel changes eveiy few seconds, indicating that a user is simply "flipping" through channels That is to .say, the weight given to the different configurable options is determined empirically over time, allowing sy,stem controllei 104 to improve the accuracy of its ability to quickly identify which user is currently using system 100.

In one embodiment of the present invention, the user is prompted for verification of the match in step 306 by system controller 104. For example, sy.stem conti oiler 104 may provide a window on television/monitor 102 wherein a numbei of pictures of possible system users are displayed, wherein the first picture displayed is that which .system controller 104 has identified as the most likely system user, requesting that the u.ser affimiatively respond (e g., via remote control or voice command) when their picture is displayed; oi alternatively, system controller 104 may piovide an audio prompt in the form of a question, e g., "Is that you, Joe 9 " If the match is verified as being accurate, then system controller

104 proceeds to configure the system in tep 308. Otherwise, system controller 104 returns to step 302 to continue monitoring user interaction with system 100.

In one embodiment of the present invention, system controller 104 allows the users to initially "train" the system with specific user preferences. This training allows the users to initially select some, or all, of their preferences. In one implementation, this training is through a direct input of specific options such as preferred channels, volume settings, program genre, etc. In an alternate implementation, the training of the system is done indirectly via an on-screen questionnaire(s), wherein the user is asked to select from a list of program genre (science fiction, sports, documentaries, etc.) that the user enjoys watching. Sy.stem controller 104 then translates the responses to the questionnaire(s) to different configuration options available in system 100.

In one embodiment of the present invention, system controller 104 u-ses a pre-programmed default setting until a user match is found in step 304. In an alternate embodiment, system controller 104 uses "conservative" (e.g., low volume .settings, display only non-blocked television channels, etc.) user preference options stored in user profile database 700 until a user match is found. For example, if parental controls are selected to block out several channels for one user but not for the other users, system controller 104 uses those parent controls as the default preferences until a user match is found.

In alternate embodiments of the present invention, different mechanisms may be beneficially employed to identify the current user of system 100 other than that described above. For example, in one embodiment the user of system 100 speaks into a microphone of system 100 (e.g., to activate system 100). System controller 104 compares the audio input from the user to pre-stored audio samples from the plurality of possible users and identifies which of the pre-stored samples is closest to the audio input to identify the user. One example of suitable audio recognition .software is SpeakerKey, commonly available from ITT Industries of Fort Wayne, Indiana. Another suitable audio recognition development software is Speech Print ID, commonly available from Voice Print Systems of Dallas, Texas. In another alternate embodiment, a video image of the user of system 100 is scanned using one or more video cameras of system 100. System controller 104 compares the scanned image of the user to pre-stored visual scans of the plurality of possible users and identifies which of the pre-.scanned images is closest to the scanned image of the current u.ser to identify the user. One example of suitable

video recognition software is True Face CyberWatch, commonly available from Miros Inc., of Wellesley, Massachu.setts.

Having determined which user of a plurality of entertainment system users is currently using system 100, system controller 104, in one embodiment, presents the tuser with a number of programming suggestions which most closely align with the ikser profile of the particular user, step 208 of Figure 2. Figure 4 illUaStrates the method steps followed by system controller 1 4 to identify programming which might be of particular interest to the user according to one embodiment of the present invention. System controller 104 first accesses a program database searching for keywords which match user profile preferences, step 400. That is, in accordance with the teachings of the present invention, system controller 104 acces.ses a program database, such as program database 800, and searches through the available program infomiation for keywords that match genre infomiation, for example, contained in the user profile of the current user. In the illustrated embodiment of Figure 4, having accessed program database 800, system controller 104 determines from the available programming information all programs which match the u.ser's preferences for programming genre as found in user profile database 700. For example, if Joe User appears from his user profile to be a fan of the University of Michigan football team, system controller 104 searches through program database 800 for University of Michigan football games. If none are found, system controller 104 may preferably default to sporting events in general.

Having developed a list of programming suggestions in step 400, system controller 104 prompts the system user, in an interactive pop-up window, with the list of programming suggestions, step 402. The user may .select one of the suggested programming options through, for example, wireless I/O device 132, or elect to forego the suggestion and continue to watch the program on the current channel, step 404. If the user selects one of the suggestions in the interactive pop-up window in step 404, system controller 104 configures system 100 to allow u.ser to view the chosen program, in accordance with the user profile, step 406.

In one embodiment of the present invention, user profile database 700 alaSo includes storage for user-defined requests. System controller 104 allows individual users to input requests for particular suggestions. These requests can be for specific titles of shows/movies or keywords, the request may include

wildcards (e.g., any shows with "star" in the title), and can also be negative (e.g., no shows with "star" in the title). Given a particular search request, system controller 104 searches the programming infomiation each time it receives updated programming information (via an on-line service, diskette, etc. as diascussed above), and prompts the user with the found program information in step 402. The user is then able to select viewing and/or recording of the program.

If, however, the user elects to forego the suggested programming in step 404, system controller 104 may then prompt the user with the option of recording one of the suggested programs in step 408. If the u.ser elects to record one of the program suggestions, system controller 104 configures system 1 0 to record the program selection to any one of the available recording media. In one embodiment, for example, system controller 104 may configure video recorder/playback device 106 with the requisite information necessary (date, channel, start time, end time, etc.) to record the program on video tape. In an alternate embodiment, system controller 104 may record the program selection on a mass storage device which is part of system controller 104 it.self (see, for example, Figure 5 below). If, however, the user elects to forego recording any of the program suggestions made in step 410, system controller simply continues to monitor and update u.ser preferences, in accordance with Figure 2. Although presented in the context of a video broadcast, one skilled in the art will appreciate that the foregoing is equally applicable to each of the plurality of programming input described earlier.

In one embodiment of the present invention, system controller 104 repeats the steps of Figure 4 each time a new user is detected, thereby providing current programming suggestions to the new user, as discussed above with reference to Figure 2. In addition, in one embodiment of the present invention, system controller 104 also repeats the steps of Figure 4 periodically. This allows new suggestions to be provided to the user. In an alternate embodiment, system controller 104 may provide programming suggestions to a user well in advance (e.g., a couple of days or weeks), with options for Lssuing reminder prompts, to record the program, or to forego further prompts of the program. In another embodiment, rather than waiting for a prompt from the user, system controller 104 may automatically provide a customized programming guide tailored to the user profile of the current user.

Turning now to Figure 5, a block diagram is presented illustrating an example .system controller incorporated with the teachings of the present invention. In one implementation, system controller 500 may be used as system controller 104 of Figure 1. In the illustrated embodiment, .system controller 500 includes processor 502 and cache memory 504 coupled to each other as shown. Additionally, system controller 500 includes high performance input/output (I/O) bus 506 and standard I/O bus 508, as shown. Host bridge 510 couples processor 502 to high performance I/O bus 506, whereas I/O bus bridge 512 couples high performance I/O bus 506 to standard I/O bus 508. Coupled to high performance I/O bus 506 are network/communication interface 524, system memory 514, audio/video interface board 530 and video memory 516. In turn, display device 518 is coupled to video memory 516. In one embodiment, display device 518 is television 102 of Figure 1. Coupled to standard I/O bus 508 are mass storage device 520 keyboard and pointing device 522, and I/O ports 526. As illustrated, wirele.ss communications interface 528 is coupled to I/O port 526. In one embodiment, wirele.ss communications interface 528 is an IR transceiver for receiving IR signals from and sending IR signals to the components of system 100. In one embodiment, wireless communications interface 528 is an RF transceiver for receiving RF signals from and sending RF .signals to the components of system 100.

In one embodiment of the system controller 500, keyboard and pointing device are coupled to standard I/O bus 508 with a serial communication interface cable, while in alternate embodiments it may be communicatively coupled with an infrared (IR) interface or a radio-frequency (RF) interface.

With continued reference to Figure 5, elements 502-530 perform their conventional functions as known in the art. In particular, network/communication interface 524 is used to provide communication between system 500 and any of a wide range of conventional networks, such as Ethernet, token ring, the Internet, etc. Similarly, audio/video interface board 530 is used to receive broadcast communications from any of a wide range of conventional broadcast media such as RF broadcasts, satellite broadcasts, cable broadcasts, etc. Mass storage device 520 is used to provide permanent .storage for the data and programming instructions to implement the above described functions, whereas system memory 514 is used to provide temporary storage for the data and programming instructions when executed by processor 502. I/O ports 526 are one or more

serial and/or parallel communication ports used to provide communication between additional peripheral devices which may be coupled to hardware system 500. Collectively, the elements coupled of system controller 500 are intended to represent a broad category of hardware systems, including but not limited to general purpose computer systems based on the Pentium® processor, the Pentium® Pro processor, or the Pentium® II processor commonly available from Intel Corporation of Santa Clara, California.

It is to be appreciated that various components of system controller 500 may be re-arranged. For example, cache 504 may be on-chip with processor 502. Alternatively, cache 504 and processor 502 may be packed together as a "processor module", with processor 502 being referred to as the "processor core". Furthermore, mass storage device 520, keyboard and pointing device 522, and/or display device 518 and video memory 516 may not be included in system controller 500. Additionally, the peripheral devices shown coupled to standard I/O bus 508 may, in alternate embodiments, be coupled to high performance I/O bus 506; in addition, in .some implementations only a single bus may exist with the components of system controller 500 being coupled to the single bus. Furthermore, additional components may be included in system controller 500, such as additional processors, storage devices, or memories.

In one embodiment, the innovative features of the present invention discuSaSed above may be implemented as a .series of software routines run by system controller 500 of Figure 5. These software routines run a plurality or series of instructions to be executed by a proces.sor, such as processor 502 in system controller 500. Initially, the series of instructions are stored on a storage device, such as mass storage device 520. It is to be appreciated that the series of instruction may be stored on any conventional storage device, such as a diskette, CD ROM, magnetic tape, DVD, la.ser disk, ROM, flash memory, etc. It is also to be appreciated that the series of instruction need not be stored locally, and could be received from a remote storage device, such as a server on a network, via network/communication interface 524. The instructions are copied from the storage device, such as mass storage device 520, into system memory 214 and then accessed and executed by processor 502. In one embodiment, the.se software routines are written in the C++ programming language. It is to be appreciated, however, that these routines may be implemented in any of a wide variety of programming languages. In alternate embodiments, the present

invention may be implemented in discrete hardware or fimiware. For example, an application specific integrated circuit (ASIC) could be programmed with the above described functions of the present invention.

Figure 6 is a block diagram illustrating the software elements according to one embodiment of the present invention. In particular .software architecture 600 is shown comprising a system controller application 602, system control agent 604 with associated u.ser profile database 616 and program infomiation database 614, and an operating system 618 with associated drivers. In particular, system controller application 602 interfaces with system control agent 604 and provides the user interface for system controller 104 of Figure 1.

System control agent 604 includes user detection module 606, suggestion module 608, usage monitor 610 and customization module 612. As illustrated, sy.stem control agent 604 is coupled to and able to obtain infomiation from user profile databa.se 616, program information database 614, and behavior log 624. User detection module 606 performs the steps of determining which of a plurality of .system u.sers is currently using system 100 as described above. Suggestion module 608 performs the steps of identifying programming which might be of interest to a u.ser as described above. Usage monitor 610 monitors the user inputs and current system settings and records the infomiation in records of user profile database 616. Customization module 612 controls the setting of the various configurable options in accordance with the preferences of the identified u.ser as discussed above.

Behavior log 624 is a storage for log information detailing the usage of system 100. In the illustrated embodiment, system control agent maintains records in behavior log 624 for each component of system 100 detailing, as appropriate, which channel/station was watched/listened to by which users during which time periods of each day. The time increments for the time periods may vary, reasonably ranging up to five minutes. Additionally, in the illustrated embodiment, system control agent 604 accesses programming databa.se 614 to identify, for each time period recorded for a user in behavior log 624, which program was watched/listened to by the user. In alternate embodiments, additional information is also maintained in behavior log 624 by system control agent 604. This additional information can include which Intercast™ data, if any, was viewed, changes in volume such as decreases or muting, which programs were recorded, which programs were suggested by system controller 104 and

whether oi not the suggested piograms were watched, which web pages were accessed and both when and how long they weie accessed, which links were taken from which web pages, etc

Additionally, accoiding to one embodiment of the present invention, system contiol agent 604 pei lodically transmits a copy of the behavior log to a remote server for data compilation purposes In this embodiment, system control agent 604 can request demogi phic information from each user to be transmitted with the behavior log to allow toi better analysis of the log information contained in the behavioi log

System contiol agent 604 also receives event input stream 622 which identifies the usei inputs to the vai ious components of system 100 As discussed above, these usei inputs may be made directly to system contiol agent 604 by the user or the components oi system KM), or may be received indirectly from wireless signals tiansnutted to the components of system 100 by the user

Basic input/output system (BIOS) 620 provides an interface between operating system 618 and the vai ious input/output (I/O) devices coupled to the hardware system Operating system 618 is a software seivice which provides an interface between BIOS 620 and system control agent 604 as well as other softwaie applications, if any, being executed by system contiollei 104 Operating system 618 piovides an lnteitace, such as a graphical usei interface (GUI), between the usei and the system controllei According to one embodiment of the present invention, opeiating system 618 is the Windows'"' 9 operating system, available fiom Miciosoft Coipoi tion of Redmond, Washington However, it is to be appreciated that the piesent invention may be used with any other conventional opeiating system, such as other veisions of Microsoft Windows 1 " -' (for example, Windows'"' 3 0, Wιndows' M 3 1 , Windows 1 " 1 NT, oi Windows'" CE), Microsoft DOS, OS/2, available horn International Business Machines Corpoiation of Ai onk, New Yoik, the Apple Macintosh Opeiating System, available fiom Apple Computei Incoiporated of Cupeitino, California, the

NeXTSTEP operating system available from Apple Computer Incorporated, or the UNIX opeiating system, available fiom Santa Cruz Opeiations of Santa Cruz, California

In the discussions above, seveial examples of configurable options are given in desciibmg the opei tion of the piesent invention It is to be appreciated that these aie only examples ot the options which can be used with the present

invention and that a wide range of options for the components of Figure 1 can be automatically configured in accordance with the present invention.

Also in the di.scussions above, several references are made to prompting a user for input. It is to be appreciated that alternate embodiments may not include these prompting and that system controller 104 of Figure 1 can automatically perform various functions without prompting. By way of example, if system controller 104 identifies a particular program which may be of interest to a particular user, system controller 104 can record the program without prompting the user.

It is also to be appreciated that although the discu.ssions above discuss taking various actions for the current system user, the pre.sent invention can also automatically take actions on behalf of users not currently using the system. By way of example, in one embodiment system controller 104 of Figure 1 identifies a program(s) which may be of interest to a user(s) other than the current user and automatically records that program. Sub.sequently, the user for which the program was recorded can be notified of the recording the next time the user is using the system 100.

In one embodiment of the present invention, various automatically configured options discussed above can be viewed and modified by users. In this embodiment, users are able to access their preferences on user profile database 700 of Figure 7 and add to, subtract from, and/or modify their recorded preferences.

Thus, the present invention automatically determined and dynamically configures u.ser preferences in an entertainment system. As discussed above, the present invention advantageously monitors the user and/or user inputs to automatically identify one of a plurality of different users of the entertainment system. In one embodiment, this monitoring is automatic and continuous, advantageously allowing the .system to continually check for and identify new users of the system. Furthermore, after identifying the current u.ser, the present invention advantageously configures various options in the entertainment system to the identified user in accordance with that user's preferences. Additionally, the present invention advantageously updates user profiles continually, allowing the present invention to automatically adjust to changing u.ser preferences.

While the method and apparatus of the pnesent invention has been described in terms of the above illustrated embodiments, tho.se skilled in the art

will recognize that the invention is not limited to the embodiments so described. The present invention can be practiced with modification and alteration within the spirit and scope of the appended claims. For example, although depicted as separate components, any number of the components of .system 100 may be incorporated into multipurpose devices (e.g., a television/monitor/video cassette recorder/playback device). Further, system controller 104 may well be incorporated into any of the system components, and may not include all of the elements of Figure 5, or may, alternatively, include additional elements. Accordingly, the description is to be regarded as illustrative instead of restrictive on the present invention.

Thus, a method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system has been described.