U.S. Pat. No. 10,166,465
CONTEXTUAL USER INTERFACE BASED ON VIDEO GAME PLAYBACK
AssigneeESSENTIAL PRODUCTS, INC.
Issue DateJune 21, 2017
Illustrative Figure
Abstract
A contextual user interface based on video game playback is described. An assistant device can receive video game state information indicating a state of a playback of a video game on a video game console. Using that information, the assistant device can determine characteristics of the playback and generate a button on a graphical user interface (GUI) based on the characteristics. A user can then select the button and cause the assistant device to instruct the video game console to perform a corresponding action.
Description
DETAILED DESCRIPTION This disclosure describes devices and techniques for providing a user interface for a home assistant device based on the context, or characteristics, of its surrounding environment. In one example, the user interface of the home assistant device (e.g., a graphical user interface (GUI) generated for display on a display screen of the home assistant device) can be different based on a combination of contextual factors of the surrounding environment including the person interacting with the home assistant device, the people in the surrounding environment, the time, the location of the home assistant device within the home, the location of the person interacting with the home assistant device, the presence of strangers, interests of the users, etc. As a result, based on the contextual factors, different content (e.g., information, graphical icons providing access to functionality of the home assistant device, etc.) can be displayed by the home assistant device. Additionally, the same content can be displayed differently. For example, different languages, visual effects, etc. can be provided based on the context of the environment. In another example, two different users (or even the same user at different times) might ask the same question to the home assistant device. Based on differences within the context of the environment when the question is asked, the user interface can provide the same answers to the question differently. This disclosure also describes devices and techniques for providing a user interface based on playback of media content within the environment. In one example, the home assistant device can determine that a user is switching among different television channels to watch different media content. For example, the user might switch between two different channels of the television using a remote control, each of the different channels providing playback of different media content based on the ...
DETAILED DESCRIPTION
This disclosure describes devices and techniques for providing a user interface for a home assistant device based on the context, or characteristics, of its surrounding environment. In one example, the user interface of the home assistant device (e.g., a graphical user interface (GUI) generated for display on a display screen of the home assistant device) can be different based on a combination of contextual factors of the surrounding environment including the person interacting with the home assistant device, the people in the surrounding environment, the time, the location of the home assistant device within the home, the location of the person interacting with the home assistant device, the presence of strangers, interests of the users, etc. As a result, based on the contextual factors, different content (e.g., information, graphical icons providing access to functionality of the home assistant device, etc.) can be displayed by the home assistant device.
Additionally, the same content can be displayed differently. For example, different languages, visual effects, etc. can be provided based on the context of the environment. In another example, two different users (or even the same user at different times) might ask the same question to the home assistant device. Based on differences within the context of the environment when the question is asked, the user interface can provide the same answers to the question differently.
This disclosure also describes devices and techniques for providing a user interface based on playback of media content within the environment. In one example, the home assistant device can determine that a user is switching among different television channels to watch different media content. For example, the user might switch between two different channels of the television using a remote control, each of the different channels providing playback of different media content based on the user's cable television package. When the user switches the channels, the remote control can generate and transmit infrared (IR) light (e.g., using a light-emitting diode (LED)) that can be received by the television (e.g., using a photodiode) to cause it to change channels. The home assistant device can also detect the transmission of IR light as signals (based on pulses of the IR light) indicating the channel that the television is to switch to. Thus, the home assistant device can determine that the user is toggling between the two channels, and provide information regarding the channels that are being watched (i.e., toggled among) to a server. That server can then determine information regarding the channels that are being watched (e.g., if one or both of the two channels is playing back a basketball game, then the teams that are playing, the current score, or other information regarding the media content being played back) and provide that information to the home assistant device. Additionally, information regarding other channels that might be of interest to the user (e.g., other channels that are playing back similar or related content such as another basketball game) can be provided as well.
The home assistant device can then generate “hot buttons” on a GUI providing information regarding the media content played back on channels that are currently not being watched and allowing the user to quickly change the television to that channel. For example, one of the hot buttons can display the score, team names, and time left for a basketball game that is playing back on a channel that the user was previously watching. Thus, the user can be provided information related to the other channels. If the user wants to quickly switch to a channel due to the information provided on the hot button, then the user can quickly and easily select the button (e.g., touch the button on a touchscreen display of the home assistant device), and the home assistant device can transmit the IR signals to the television to emulate the remote control such that the channel can be changed.
This disclosure also describes devices and techniques for providing a user interface based on shared activities within different environments. In one example, two different friends (or other types of users such as family members, colleagues, etc.) can have their own home assistant devices within their separate homes. The home assistant devices can determine information regarding the activities being performed within the homes and provide that information to a server. That server can determine that the friends are engaged in a similar activity and then recommend that the friends engage in a video chat to create a more social experience within the home. For example, the home assistant devices in the different homes can determine television channels being watched within their home. Information indicating the television channels can then be provided to the server, which can determine similarities between the television channels, representing that the friends are engaged in not only watching television, but also watching similar television channels. The server can then provide video and audio data such that the friends can talk to each other via a video chat using their home assistant devices.
Additionally, the home assistant devices can generate hot buttons on a GUI displayed on its display screen, as discussed above. One hot button can include the video content for the video chat. The user can select that hot button (e.g., by touching a touchscreen display of the home assistant device) to have the video chat then occupy more of the display screen (e.g., displayed in the background of the display screen with other hot buttons providing information regarding channels as discussed above), or the video chat can then be displayed on the television. This can result in a new hot button being generated and displayed for the television channel that was being watched before switching the video chat to the television.
This disclosure also describes devices and techniques for providing a user interface based on playback of video games within the environment. In one example, the home assistant device can receive information from a video game console regarding characteristics of the playback of a video game. For example, the home assistant device can receive information regarding the progress of the user towards completion of the video game, characteristics regarding the player character controlled by the user during the playback of the video game (e.g., the health, inventory, etc. of the user's player character), upcoming or future events that will occur during the playback of the video game, etc. The home assistant device can analyze this information and then generate hot buttons (similar to the examples discussed above) on a GUI of the touchscreen of the home assistant device. The user can select these hot buttons and cause the home assistant device to provide control information to the video game console such that related actions can be performed. For example, if the player character's health is reaching a point when a current iteration of the playback might end (e.g., the user's player character dies), then the home assistant device can generate a hot button which can be selected by the user and cause the video game console to perform some action within the video game, for example, increase the player character's health. Thus, the user's playback of the video game can be supplemented with the home assistant device.
Additionally, the home assistant device can provide an audio response based on the playback of the video game. For example, the home assistant device can provide feedback in the form of speech or voice to indicate to the user that the hot button has been generated. This can allow the user to be aware of the hot button and allows the user to quickly select the hot button and have the corresponding action be performed in the video game. In another example, audio or video recordings of the user can be analyzed to determine how to provide the hot buttons on the GUI and/or whether to provide an audio response.
In more detail,FIG. 1illustrates an example of an assistant device providing a user interface based on the context of the environment. InFIG. 1, home assistant device110can include a microphone (e.g., a microphone array) to receive voice input from users and a speaker to provide audio output in the form of a voice (or other types of audio) to respond to the user. Additionally, home assistant device110can include a display screen to provide visual feedback to users by generating a graphical user interface (GUI) providing content for display. For example, a user can ask home assistant device110a question and a response to that question can be provided on the display screen. Additional visual components, such as light emitting diodes (LEDs), can also be included. As a result, the user interface can include audio, voice, display screens, lighting, and other audio or visual components. In some implementations, camera115can also be included for home assistant device110to receive visual input of its surrounding environment. Camera115can be physically integrated (e.g., physically coupled with) with home assistant device110or camera115can be a separate component of a home's wireless network that can provide video data to home assistant device110.
InFIG. 1, home assistant device110can be in a particular location of the home, for example, the kitchen. Different users might interact with home assistant device from different locations within the home (e.g., the kitchen or the living room) and at different times. Additionally, the different users might be interested in different features, functionalities, or information provided by home assistant device110. These different contextual factors of the environment of home assistant device110can result in the user interface of home assistant device110to be changed. Because the user interface can provide content such as features, functionalities, information, etc., this can result in different content being displayed on the display screen. That is, different combinations of contextual factors of the environment can result in a different user interface of home assistant device110, resulting in an adaptive user interface based on context of the environment. The contextual factors can also include demographics of the users. For example, if a child is using home assistant device110then the content provided can be different than if an adult is using home assistant device110(e.g., provide kid-friendly content).
For example, inFIG. 1, user130acan be in the kitchen (i.e., in the same room or within close proximity with home assistant device110) at 11:39 PM in the evening. Home assistant device110can recognize user130a, for example, using video input from camera115to visually verify user130a. In another example, home assistant device110can recognize user130athrough speech recognition as user130aspeaks either to home assistant device110, to other people, or even himself. User130acan also have had previous interactions with home assistant device110, and therefore, home assistant device110can remember the likes or preferences, expectations, schedule, etc. of user130a. As a result, user interface120acan be generated for user130ato interact with home assistant device110based on the current context of the environment indicating the user, time, and location that the user is speaking from.
By contrast, user130bcan be in the living room at 8:30 AM of the same home as home assistant device110. Because the user, time, and location of the user are different, home assistant device110can generate a different user interface120bproviding a different GUI having different content as depicted inFIG. 1. As a result, user interface120bcan be different from user interface120abecause they are provided, or generated, in response to different contextual environments when users130aand130bspeak. This can occur even if the content of the speech provided by users130aand130bis similar, or even the same. For example, if both users130aand130bask the same or similar question (e.g., their speech includes similar or same content such as asking for a list of new restaurants that have opened nearby), the user interface (to respond to the question) that is provided by home assistant device110can be different because of the different context of the environments when the speech was spoken. Additionally, the users might have different interests (e.g., as indicated by a profile) which can also result in different content providing different services, functionalities, etc.
In another example, because user interface120awas generated in the evening, it can have different colors, brightness, or other visual characteristics than display120b. This might be done because the user interface should not be too disruptive in different lighting situations. For example, a light sensor (e.g., a photodiode) can be used to determine that a room is dark. Home assistant device110can then adjust the brightness of the display screen based on the determined lighting situation in the environment.
Additionally, because users130aand130bare in different rooms and, therefore, at different distances from home assistant device110, the user interfaces120aand120bcan be different to take that into account. For example, because user130ainFIG. 1is in the kitchen, he may be relatively close to home assistant device110and, therefore, the size of some of the content (e.g., items A-G which can be buttons, icons, text, etc.) of a GUI provided as user interface120acan be relatively small. By contrast, because user130bis in the living room (i.e., farther away from home assistant device110than user130a), some of the content of user interface120bcan be larger so that they can be more easily seen from a distance. For example, inFIG. 1, icons A and F have different sizes among the different user interfaces120aand120b. That is, content such as the items of the user interfaces that provide access to the same functionality or provide an indication to the same type of information can be be different sizes because the contextual environments are different. For example, if users130aand130brequest a listing of new, nearby restaurants, icons A-G might represent a list of some of the identified restaurants. Additionally, the playback of audio can be at a volume based on the distance that a user is from home assistant device110. For example, a user that is farther away can result in the playback of audio that is at a higher volume than if a user is closer to home assistant device110.
User interfaces120aand120bcan also be different in other ways. For example, the location of content, the number of content, etc. as depicted inFIG. 1can also be different due to the different contextual environments.
FIG. 2illustrates an example of a block diagram providing a user interface based on the context of the environment. InFIG. 2, at block203, speech can be determined to have been spoken. For example, a microphone of home assistant device110can pick up speech spoken within the environment. That speech can be converted into voice data and analyzed by a processor of home assistant device110to determine that speech has been received. At block205, the context of the surrounding environment or vicinity around home assistant device110can be determined. For example, home assistant device110can determine any of the aforementioned details regarding the environment in the physical space around home assistant device110including time, user, prior interactions with the user, locations of the user and home assistant device110, etc. Any of the details discussed below can also be determined. At block210, the user interface can be provided or generated based on the determined context and content of the speech. For example, this can include generating a GUI with content related to the content of the speech and provided at various sizes, colors, etc. on a display screen of home assistant device110based on the context. In some implementations, the user interface can also include playback of audio (e.g., sounds), turning on various lighting effects (e.g., LEDs), etc. For example, different GUIs with different audio effects can be provided.
Next, home assistant device110can pick up more speech at a different time. However, if the context of the environment is different, then a different user interface than that generated at block210can be generated. Thus, even if the content of the speech at the two different times was the same, the user interfaces generated can be different if the context of the environment was different.
FIG. 3illustrates an example of a block diagram determining the context of the environment of an assistant device. InFIG. 3, as previously discussed, the location of the speech can be determined at block305, the time of the speech can be determined at block310, and the user providing speech can be determined at block315to determine the context of the environment.
Other details can include the skill level of the user at block320. For example, home assistant device110can determine the skill level of a user as they interact more with the user interface. If the user uses more functionality, more complicated functionality, requests significant amount of detail regarding functionality, etc. then the user can be identified by home assistant device110as a more sophisticated user. By contrast, if another user tends to ask the same repetitive tasks or questions of home assistant device110then the user can be identified as a less sophisticated user. If the user tends to use less complicated functionality, less functionality, or does not request significant detail, then the user can also be identified as a less sophisticated user. InFIG. 1, user130acan be a more sophisticated user indicating that the user has a relatively high skill level in using home assistant device110, and therefore, more functionality (or content) can be provided on user interface120a(i.e., items A-G are provided). By contrast, user130bcan be a less sophisticated user indicating that the user has a relatively lower skill level (than user130a), and therefore, less content can be provided on user interface120b(i.e., fewer items A, C, D, and F are provided). In some implementations, the same number of content of user interfaces might be provided, but different content corresponding to different functionalities or features might be displayed based on the skill level of the user. Thus, different content can be provided in a user interface of home assistant device110.
As previously discussed, the user interface can include other visual components other than displaying content as part of a GUI on a display screen. InFIG. 1, this can include lighting, for example, LEDs or other types of lights which can be activated by being turned on, glow, flicker, display a particular color, etc. to provide an indication to a user of a situation. For example, home assistant device110can determine a user's schedule at block325and provide an indication as to when the user should be leaving the home so that they can maintain that schedule without any tardiness. InFIG. 1, this can result in a ring around the display screen that can be different colors (e.g., implemented with LEDs or other types of lighting), however in other implementations the ring can be part of the display screen itself.
In one example, the ring can be a color corresponding to the traffic or commute status for the user to go to their next expected location, such as the workplace in the morning or a coffee meeting scheduled on their calendar. If the ring is set to a green color, then this can indicate to the user that the traffic is relatively light. By contrast, a red color can indicate that the traffic is relatively heavy. This type of user interface can provide a user with information while they are far away from home assistant device110because the colors can be easily seen from a distance. In some implementations, the ring can also indicate whether the user needs to leave soon or immediately if they want to make the next appointment on their schedule. For example, the intensity or brightness of the color can be increased, the ring can be blinking, etc. This can provide further detail from a distance for a user. In some implementations, the user interface can also display on the display screen a route to the location of the next event on their schedule, provide a time estimate, etc. As a result, if the user decides that they want more detail and walks closer to home assistant device110, information can be readily displayed and available. In some implementations, home assistant device105can determine that the user is walking closer after the ring has been activated and then process information and display the additional information on the display screen so that information is available when they are closer. In some implementations, the color of the ring can indicate other determinations, for example, an unexpected situation such as a window or door being open, water flooding detected, or the temperature is within a temperature range corresponding to an anomaly.
The user interface can also include audio sounds for playback. For example, user interface120ainFIG. 1might play back one type of audio sound when user130ainteracts with it, for example, selecting one of the items A-G, requesting user interface120ato change (e.g., provide new content), etc. By contrast, user interface120bmight play back different sounds for the same interactions by user130bbecause of the different context of the environment.
Characteristics regarding the speech received by home assistant device110can also be determined at block330. For example, home assistant device110can determine the volume, speed, accent, language, tone, etc. of speech and use that as a contextual factor in providing a user interface. In one example, if a user is speaking quickly (e.g., at a speed or rate determined to be within a words per minute range corresponding to speaking quickly), then content of the user interface may be updated faster than if the user was speaking slowly, for example, by updating the GUI of the user interface sooner. In another example, if the user's speech is determined to be indicative of stress or frustration, then the user interface might provide content differently than if the user's speech is determined to be relatively free of stress or frustration. As an example, if the user is stressed or frustrated, then the amount of content provided on the user interface can be reduced in comparison with the user not being stressed or frustrated.
In some implementations, if the user is determined to be stressed or frustrated, then the user interface can include the playback of music. For example, calming music can be played back using the speaker of home assistant device110.
In some implementations, the lighting of home assistant device110can be different based on what is provided on the user interface. For example, different types of content can result in different brightness, colors, etc.
The user interface can also be changed to account for privacy expectations of a user when the context of the environment changes (i.e., the conditions or characteristics of the environment change).FIG. 4illustrates another example of an assistant device providing a user interface based on the context of the environment. InFIG. 4, users130a,130b, and130care within the home environment of home assistant device110. These different users can be identified and the user interface120cinFIG. 4can be generated to take into account privacy concerns of the various users.
For example, user130amight want some content to be provided on a user interface if he is alone, but might not want that content to be displayed if others are within the home. Likewise, user130balso might not want some content to be provided. In some implementations, user130amight find it acceptable to have the content provided on the user interface even if the presence of user130bis detected because user130bis a member of the same household. However, user130amight want that content to not be displayed if strangers or guests are in the home. User130ccan be a stranger or newcomer into the home environment and has never interacted with home assistant device110and therefore, is unrecognized by home assistant device110.
Home assistant device110can recognize the different users or persons within the home and generate user interface120cbased on the users130a-c. For example, home assistant device110can take some details of user interfaces120aand120b(e.g., user interfaces normally for users130aand130b, respectively) and generate user interface120cinFIG. 4based on those other user interfaces. That is, user interface120ccan be generated based on how user interfaces would be generated for users130aand130b. InFIG. 4, this results in some content of user interface120bhaving a relatively large size (e.g., as in user interface120b), but less content than either user interfaces120aor120b. In some implementations, content that would mutually exist in user interfaces120aand120bcan be provided within user interface120c, but content that is only on one of user interfaces120aand120bmight not be provided because it might only appeal to a single user or those users might have different privacy expectations. For example, item B as depicted in user interface120ainFIG. 1might not appear because it is not provided within user interface120binFIG. 1.
In some implementations, upon detection of user130c(i.e., a stranger or guest in the environment), the user interface can also be adapted to take into account an unrecognized user. For example, upon detection of an unrecognized user, some content might be removed from a user interface. When the unrecognized user leaves, this can be detected, and therefore, home assistant device110can then provide the removed content back with the user interface. As a result, the user's privacy expectations can be maintained when guests are nearby.
Other types of changes in context of the environment other than detection of strangers or guests can include determining differences in time. For example, a user might find it acceptable to display some content on the GUI late at night or early in the morning, but might not want that content displayed during the daytime because the likelihood of others seeing that content might be higher. Another example can include activities of persons within the environment. For example, if several people in the environment are discussing a particular topic, a social gathering is taking place, etc. then perhaps a user's privacy expectations can be elevated and, therefore, some of the content that would otherwise be displayed can be removed.
In some implementations, a user's privacy expectations can be set by that user or learned by home assistant device110over time, or a combination of both. For example, the user can indicate that certain content should not be displayed when unrecognized persons are in the environment. As another example, the user might remove content from the GUI and home assistant device110can identify the context in the environment when the user removed the content to determine the user's privacy expectations.
FIG. 6illustrates an example of a block diagram for adjusting a user interface to maintain privacy expectations. InFIG. 6, at block605, the context of the environment can be determined. For example, the presence of persons including recognized users and/or strangers, the time, activities being performed in the environment, etc. can be determined. At block607, privacy expectations for a user based on the context can be determined. For example, if a user is within the environment, a GUI providing various content can be provided. However, if strangers or guests are detected within the environment, the user might not want certain content displayed on the GUI due to an increase in privacy concerns resulting in higher privacy expectations for that content. Thus, at block610, the GUI can be adjusted or modified based on the privacy expectations. For example, the content can be removed due to the increase in privacy expectations while the stranger or guest is present within the environment.
When the stranger or guest leaves, this can be determined as a change in the context of the environment and, therefore, also a change in the privacy expectations for the user. Because the user might be the only person within the environment, the GUI can be modified again to include the content that was previously removed. Thus, if the context of the environment changes and, therefore, the user for whom the GUI is provided has a change in privacy expectations, then the GUI can be adapted.
Many of the examples disclosed herein discuss visual adaptations for the user interface. However, audio adaptations can also be performed based on the context situations described above. For example, the type of voice, accent, volume, etc. can also be adjusted for different user interfaces using the techniques described herein.
Many of the examples disclosed herein discuss speech being recognized. However, other types of audio can also be used with the techniques. For example, noise from objects such as television or radio, a doorbell ringing, a door opening, glass shattering, etc. can also be detected occurrences of activity other than speech.
In some implementations, the content of the user interface can also be changed based on whether or not it is determined that a user is looking at home assistant device110or speaking to home assistant device110. For example, the display screen of home assistant device110might be turned off, but can turn on when it is determined that a user is looking at it.
In some implementations, the volume of playback of audio provided by home assistant device110can be adjusted (e.g., lowered) upon detection of an incoming phone call or page (e.g., via a mobile phone within the home environment). In another example, the content displayed can be adjusted based on the status of another device. For example, a recipe displayed on the display screen of home assistant device110can be changed based on determined statuses of a kitchen appliance (e.g., oven, timer, etc.) used for the recipe.
In some implementations, the content provided via the user interface can be based on how a user is using another device within the home. For example, the infrared signals of a television and/or remote control of the television can be detected to indicate which channels are being switched among. This information can be provided to a cloud server by home assistant device110, which can provide home assistant device110with information regarding the media content on those channels being watched. For example, the media content to be provided via the user interface can include “hot buttons” that can show information regarding the channels (e.g., schedule, current programming, popularity ratings for what is currently being played on the channel, etc.). In another example, if a channel is determined to be playing a sports game, then the score, team information (e.g., team rosters) can be displayed. In some implementations, if the user is determined to be switching between three channels within a short period of time and repeating some of the channels during that short period of time (e.g., each channel is visited at least twice in a five minute period), then hot buttons can be generated for each of those channels. The hot buttons can be displayed in different parts of the display screen and each button can include content representing information corresponding to the channel. For example, the user can be switching between three channels playing three different basketball games. Each of the hot buttons can include the scores and time (e.g., 3:23 left in the fourth quarter) of the game played on that channel. Thus, switching between the different channels can be determined and content for the channels that aren't even being watched can be displayed via the hot buttons. The user can then select one of those buttons and the television can switch to the channel corresponding to the selected button. This can be done with home assistant device110communicating with the television either via the wireless network or by generating infrared signals to simulate a remote control.
In more detail, home assistant device110can be placed within the home where it is easily accessible to users and the user interface displayed on its display screen is easily seen. For example, some users might place home assistant device110in the living room where they also watch media content played back on their television, engage in social activities, etc. Thus, home assistant device110might be placed on a coffee table or end table in the living room where it is close to where people are engaged in a variety of activities in the home. In some implementations, home assistant device110can determine information regarding the playback of media content on the television (or other display device such as a computer monitor, tablet, smartphone, etc.) and then generate content for its user interface based on the playback of the media content.
FIG. 7illustrates an example of providing a user interface based on the playback of media content. InFIG. 7, a user might select buttons on remote control705to change the channel being played back on television715. For example, the user might first use remote control705to turn on television715, and then select one or more buttons such that IR light755indicating that television715is to switch to channel32is generated by remote control705. InFIG. 7, channel32might be playing a basketball game. During a time out or commercial break, the user might want to switch to another channel to watch another basketball game. Thus, inFIG. 7, the user can use remote control705to generate IR light760indicating that television760should switch to channel12, which is a different channel providing playback of another basketball game (i.e., playback of different media content). The different channels can be different sources of media content, for example, different sources of live playback provided by different television stations.
InFIG. 7, home assistant device110can include a photodiode or other type of circuitry to determine that IR light755and760were generated by remote control705. By keeping track of the IR signals corresponding to IR light755and760(e.g., by storing data in a database indicating the channels being switched to), home assistant device110can determine which channels that the user is watching (e.g., channels12and32inFIG. 7). For example, if the user is switching between the two channels several times within a time duration (e.g., switching channel12-to-32and channel32-to-12are performed among a threshold number of times within a threshold time duration, such as at least four times within twenty minutes), then home assistant device110can determine that the user is interested in the media content being played back on both of those channels. Home assistant device110can provide watched channels information730indicating that the user is watching channels12and32, as well as other information such as the type of cable provider to server725.
Server725can be a cloud server that tracks information regarding the media content being played back on channels. For example, server725can receive or generate real-time information regarding the media content being played back on different channels. If channels12and32are playing back different basketball games (or other types of sports), then server725can store information indicating the teams playing, the time left in the game or portion of the game (e.g., how much time is left in a period or quarter), the score, team logos, team records (e.g., wins, losses, ties), etc. Other types of media content can include different types of information. For example, if a movie is being played back on another channel, then ratings, reviews, box office revenue, time left to finish playback of the movie, actors and actresses starring in the movie, director and/or other filmmaker credits, etc. can be stored by server725. InFIG. 7, channel information database740of server725can store the information regarding the media content being played back on different channels.
If server725receives watched channels information730, then it can provide channel information735using information from channel information database740. For example, if channels12and32are playing back different basketball games, then the information indicated above (e.g., scores, etc.) can be provided to home assistant device110. Home assistant device110can then generate content on user interface720displayed upon its display screen using that information. Thus, characteristics of a live broadcast (e.g., the score of a live basketball game) can be provided to home assistant device110to be depicted upon its display screen.
For example, inFIG. 7, television715might currently play back media content provided on channel12. Home assistant device110can determine this (e.g., by keeping track of IR light755,760as discussed previously) and then generate and display hot button765using channel information735regarding channel32. That is, one of the channels that the user was determined to be switching among (e.g., channel32) can be currently not playing back on television715and information regarding that channel can be displayed using user interface720. For example, inFIG. 7, hot button765includes a channel number and a score of a basketball game being played back on that channel. However, any other information from channel information735and obtained from channel information database740can be generated (e.g., team names, graphical logos, etc.) as well. Thus, hot button765indicates that the user was previously watching channel32. Channel information735can be provided periodically (e.g., every 1 second, every 1 minute, etc.) and the information displayed upon hot button765can be updated to reflect changes or activities going on in the media content being played back on that channel while the user is watching another channel. For example, the score of the basketball game being played back on channel32can be updated as it changes. If the user is currently watching channel12and the information displayed on hot button765seems like that other basketball game is getting more exciting, then the use can quickly and easily switch from channel12to channel32by selecting hot button765. Home assistant device110can then generate an IR signal using IR light pulses similar to remote control705to cause television715to change to channel32. This can result in channel32then being displayed on television715, and a new hot button providing information regarding the basketball game on channel12being generated and displayed on user interface720. In other implementations, home assistant device110might provide the signal to remote control705and instruct it to cause television715to change channels accordingly. In another implementations, home assistant device110and television715might be communicatively coupled with each other via a wireless network and communicate with that rather than via IR light.
The user might also not be aware of other channels providing playback of media content that they might be interested in. For example, the user might be watching the basketball games being played back on channels12and32. However, those basketball games might be part of a larger basketball tournament and other games related to that tournament might be playing back on other channels. Server725can determine this (e.g., by determining similarities in the media content being played back on the different channels) and include information regarding those other channels in channel information735. For example, as depicted inFIG. 7, channel56as indicated in channel information database740is playing back another basketball game. Thus, server725can include this information in channel information735and provide it to home assistant device110. Home assistant device110can then generate hot button770indicating that channel56has another game available for watching on television715. Thus, even though the user was switching among channels12and32, the user can be recommended to expand the selection of channels they are watching to include channel56because it is playing another basketball game. Additionally, information regarding that game (e.g., the score) can be displayed upon hot button770. This can provide the user with some information regarding what is being played back on that other channel and, therefore, they can decide whether to switch to it.
FIG. 8illustrates an example of a block diagram for providing a user interface based on the playback of media content. InFIG. 8, IR signals transmitted by a remote control to a television can be identified (805). For example, as discussed regardingFIG. 7, IR light755and760can be received by home assistant device110such that it can determine which channels are being watched using television715.
The channels being watched can be determined based on the IR signals (810). For example, inFIG. 7, home assistant device110can determine the type of television of television715(e.g., brand, model number, etc.). Different IR signals can be used by different remote controls and televisions. Thus, the channels being watched can be identified. Additionally, channels can be indicated as being watched based on characteristics of the user's television watching habits. For example, some users might be “channel surfing” in which they are constantly switching through channels (e.g., ascending upwards through the channels from 1 to 2, 2 to 3, etc.). However, eventually, the user might select only a handful of channels to switch among. Those channels can be identified as channels being watched.
In some implementations, the channels can be identified based on how often the user is switching among the channels within a time duration (e.g., a particular channel is watched or switched to a threshold number of times within a threshold time duration, such as four times in twenty minutes). If the user is switching among five channels within the time duration, then those five channels can be identified as channels being watched. In other implementations, if the IR signals are for specific channels (e.g., indicating to television715inFIG. 7to switch to channel12rather than merely switching through a channel list such as from channel11to channel12to channel13, etc.) then those specific channels can be the identified channels.
In another implementation, the user's speech can be detected, for example, using microphones of home assistant device110. If the user is determined to be talking regarding the media content (e.g., the subject that is the target of the media content) of the channel, then the channel can be one of the identified channels. This might be done because if the user is discussing the media content being played back, then they might be interested in watching that channel. In another example, the user's activity can be detected using video cameras to generate image frames of the environment depicting what the user is doing while watching the channels. If the user is perceived (via image recognition algorithms) to be staring at the television for a time period (e.g., for at least thirty seconds), then the channel being played can be an identified channel. If the user is not staring at the television for at least that time period, then that channel might not be of interest to the user. Other visual characteristics of the user can also be identified. For example, if the user or others in the environment are wearing attire or holding paraphernalia such as a cap, jersey, flag, etc. indicating a sports team, then that can be recognized (including the sports team in some implementations) and be used to identify channels playing games related to that sport.
In another implementation, characteristics of the channel or the media content played back on that channel can be used. For example, channels can be marked as favorites by a user, indicating that they are channels that the user prefers to watch and, therefore, should be identified as being watched. The type of content being played back can also be determined. For example, news, sports, or other programming or media content that are generally played back in real-time (i.e., currently ongoing) can be identified as a watched channel if the user selects it.
The watched channel information can then be provided to a server (815). For example, inFIG. 7, watched channel information730can be provided to server725. The server can receive the watched channel information (820) and then determine media content information related to the watched channels indicated in the watched channel information (825).
For example, inFIG. 7, the channels being watched by the user can be detailed via watched channel information730. The channels being watched can be looked up in channel information database740by server725to determine information regarding the media content being played back on the channel, for example, a score of a sports game if the media content is a sports game.
Additionally, other channels providing media content similar to the media content of the watched channels (i.e., identified channels) can be determined (830). For example, server725can determine the type of media content being played back (e.g., news, sports, a movie, a comedy television show, stand-up comedy routine, etc.), people acting in the media content, the director or filmmaker of the media content, or other characteristics of the media content itself to identify similar media content currently being played back on other channels (e.g., as indicated in channel information database740). As previously discussed, these other channels might be of interest for the user to watch. The media content information for the watched channels and the similar channels can then be provided (835) to the home assistant device (840).
The home assistant device can then generate hot buttons for the channels on the user interface displayed upon the display screen of the home assistant device (845). For example, home assistant device110inFIG. 7can determine which channel is currently playing on television715(e.g., by keeping track of the IR signals and determining that the last channel switched to based on the IR signals is the currently played back channel) and then generate hot buttons for the other channels that are not being played back. For example, inFIG. 7, hot button765can be generated for a channel that the user was previously watching and hot button770can be generated for a channel that the user was not watching but might be interested in watching (as determined by server725, as previously discussed) because the media content being played back there is similar to the media content currently on the channel being played back on television715.
If the user selects one of the hot buttons, then this can be determined (e.g., by detecting touches on the touchscreen that are at coordinates corresponding to the position of the hot button) and the home assistant device can generate or transmit an IR signal for the television to switch the channel based on the selected hot button. For example, inFIG. 7, if the user selects hot button770, then home assistant device110can generate an IR signal to be received by television715instructing it to switch to channel56. Thus, the user can use home assistant device110to easily and quickly switch the channels played back on television715.
In some implementations, server725inFIG. 7can also provide graphical content to be displayed with UI720. For example, if server725determines similarities between the channels, then it can provide a graphic to home assistant device110to display with the hot buttons765and770. For example, if the user is switching between several different basketball games provided via different channels, each of those basketball games might be games of a larger basketball tournament. To help contribute to the atmosphere of watching the tournament, server725can provide text or graphical content as a theme to be displayed upon the display screen of home assistant device110to advertise that tournament. For example, inFIG. 7, the background graphic depicts the name and other related graphics identifying the tournament in which the different channels are providing playback of its games.
Home assistant devices can also be used to provide a more social experience for users within their homes.FIG. 9illustrates an example of providing a user interface based on shared activities. InFIG. 9, home assistant device110aand home assistant device110bcan be in different physical spaces, for example, the living rooms of different homes of different users. Watched channels information730aindicating the channels being watched by a user in a home with home assistant device110aand watched channels information730bindicating the channels being watched by another user in another home with home assistant device110bcan be provided to server725. Server725can then determine similarities between the channels indicated by watched channels information730aand730bto determine that the two users are engaged in a similar activity within their respective environment, in this example the similar activity being watching similar or same television channels within their homes. For example, if home assistant device110adetermines that a user is switching among channels32,56, and12, and that home assistant device110bdetermines that a user is switching among channels32,56, and15, then server725can determine that two of the three channels being watched by the users are the same, with each user also watching a different channel not being watched by the other user. In some implementations, if there is some overlap between the channels being watched (e.g., at least 50% of the channels are being watched by both users, at least 1 channel is being watched by both users, etc.) then when channel information735is provided to home assistant device110a, information regarding some of the channels being watched by the user having home assistant device110bcan be provided to home assistant device110bas a recommendation for the user to expand his or her channels to watch. For example, home assistant device110acan generate a hot button on user interface930with information regarding channel15(i.e., the channel being watched by the other user that was not being watched by the user of home assistant device110a).
Additionally, the users can be allowed to engage in a video chat based on a determination that they are engaged in similar activities. This can allow for a home assistant device to create a more social experience. For example, inFIG. 9, if watched channels information730aand730bare determined to include some similarities of the channels being watched by the users, then server725can request for the home assistant devices to provide video and/or audio data to enable a video chat. For example, server725can indicate to home assistant device110bthat it should activate a camera, begin recording image frames, and record audio using its microphone and provide that information as video data920which can be received by server725. Server725can then provide video data915to home assistant device110asuch that it can display video content (e.g., image frames) of a video chat on user interface930. As depicted inFIG. 9, the video content is displayed in the background of user interface930with hot buttons765and770overlaid upon the background. Thus, the information and functionality provided by the hot buttons as described herein are still provided, but user interface930further provides a video chat with the user of home assistant device110b. In some implementations, the video chat can be played back in a new hot button925that can be generated as depicted in user interface940. The user can then select hot button925to play back the video chat on the full display screen (e.g., fill up the entire display screen, or fill in the background as depicted with user interface930). For example, home assistant device110bcan generate IR signals instructing the display device to select a new device input (e.g., change its HDMI, DVI, etc. input) to one that is communicatively coupled with the home assistant device110bso that it can display the video chat on the display device. In another example, home assistant device110bcan be using the same wireless network within the home as the display device and, therefore, can stream the video chat using the wireless network.
In some implementations, the user can select hot button925and cause the video chat to be played back on a television.FIG. 10illustrates an example of playback of a video chat based on shared activities. InFIG. 10, if a user selects hot button925of user interface1110, user interface1115can be generated including hot button1105replacing hot button925(i.e., hot button925is removed and hot button1105is generated to replace it). Hot button1105can include information regarding the channel that was being watched on television715before hot button925was selected. Upon selecting hot button925, the video chat can be played back on television715. This can allow for the user to dedicate more attention on the video chat (e.g., by displaying it on television715which can have a larger display screen that home assistant device110a) but still be provided with information regarding the previous channel that was being watched by generating hot button1105in user interface1115. Thus, the user can quickly adjust the playback of media content within the home, including what is being played back on the display screen of home assistant device110aand television715.
FIGS. 11A and 11Billustrate an example of a block diagram for providing a user interface based on shared activities. InFIG. 11A, IR signals between a remote control and a television can be detected for a first assistant device (1020) and a second assistant device (1005), similar as discussed previously. This results in a determination as to the channels being watched for the first assistant device (1030) and the second assistant device (1010), and those devices can then provide their corresponding watched channel information to a server (1015,1035).
The server can receive the watched channel information (1040) and determine similarities between the watched channel information received from the first assistant device and the watched channel information received from the second assistant device (1040). For example, the users might be watching one channel each, and the channel being watched can be identified as being the same for both. In some implementations, the users might be switching among a different combination of channels, with some overlap between what the different users are watching. Thus, some similarities (e.g., the channels being switched among include two of the same channels) can be identified.
Upon determination of the similarities, this can indicate that the users are engaged in a similar activity, for example, watching similar television channels. Thus, the server can request video content from the devices (1045). For example, as depicted inFIG. 9, server725can request and receive video data920from home assistant device110band provide corresponding video data915(including similar or same content as video data920) to home assistant device110ato provide a video chat using home assistant device110a.
Thus, inFIG. 11B, video content from the second assistant device can be provided to the server (1050) and that video content can then be provided to the first assistant device along with media content information regarding the channels (1055). As previously discussed, the media content information can include information regarding the media content being played back on the channels (e.g., the score of a sports game). Additionally, the media content information can also include information regarding the channels being watched by the other user that are not being watched by the user of the first assistant device. The first assistant device can then generate a user interface based on the video content and the media content information (1060). For example, inFIG. 9, user interface930can display video content for a video chat (with audio provided by a speaker, and a microphone and camera to provide for similar content for the other user) along with hot buttons765and770.
In some implementations, a hot button to provide the video chat on television715can be selected and the new hot button for the previously watched channel can be generated, as previously discussed. A user might select the hot button for the video chat to be displayed on television715due to a commercial break during a sports game to discuss with the other participant in the video chat. However, when the sports game resumes from the commercial break, the user might want to have that be displayed again on television715and have a hot button for the video chat to be generated back onto the user interface. In some implementations, this can be performed by home assistant device110b. For example, if the user selects hot button925inFIG. 10to have the video chat displayed on television715, then hot button1105in user interface1115can be generated to replace hot button925and include the score of the sports game that was being watched that went into a commercial break. Home assistant device110bcan receive channel information735from server725periodically (as previously discussed). Thus, eventually, channel information735might indicate that the sports game has returned from a commercial break, or it might provide a new score because the sports game has returned from a commercial break and a team has recently scored. Home assistant device110bcan determine this (e.g., determine that the score has changed since hot button1105was generated following the selectin of hot button925inFIG. 10) and then cause the sports game (e.g., channel15in hot button1105inFIG. 10) to be played back on television715and then generate hot button925again for the video chat.
In some implementations, home assistant device110bmight indicate to the user that the game has resumed. For example, it can play a sound (e.g., beep) using its speakers, cause hot button1105to glow, flicker, or other type of visual indication, etc.
In some implementations, if users are often switching the video chat to television715(e.g., three times in the last five minutes, etc.) then this might indicate that the users are actively engaged in the shared activities in a social way. Thus, in some implementations, if the user of home assistant device110bselects a hot button to change a channel, then this information can be provided to server725and on to home assistant device110a, which can cause the television being used there to change channel. Therefore, the users can be able to change the channel being watched by the other user such that their watching is synchronized.
In some implementations, the information regarding the media content being played back on a channel can be monitored by a home assistant device. Based on the content of the information, the user interface can be changed. For example, if channel information735indicates that a score of the sports game being played on hot button765inFIG. 9is close (e.g., the score represents that one team only has a 3 point lead), then hot button765might be emphasized, for example, by making it larger in size than the other hot buttons. This can allow for the user to quickly and easily be alerted to interesting events going on in the media content being played back on the channels. In another example, the placement of the hot buttons can be based on the information regarding the media content. For example, hot button765might be placed at the top of the display screen where it is more easily perceivable by the user. Thus, the layout of the hot buttons on the user interface can be adjusted as new channel information735is received.
Though the prior example describes watching similar television channels as similar or shared activities identified using different home assistant devices within different homes, other activities can be identified. For example, just watching television (regardless of the channels) can be identified as a similar activity. In another example, if both users are identified as cooking, then that can be identified as a similar activity and the users can be engaged with a video chat while they are cooking.
Any of the techniques described elsewhere herein can also be used for the content (e.g., hot buttons, etc.). For example, different users might result in different sizes of hot buttons, positions of hot buttons, number of hot buttons, etc. In another example, hot buttons for channels that the user was identified as watching can be a different size (e.g., larger) than other channels recommended by server725.
Additionally, the techniques describe switching among different channels of a television. However, switching among different streaming media content can also be performed using similar techniques.
Activities involving video games can also be identified.FIG. 12illustrates an example of providing a user interface based on playback of video games. InFIG. 12, a user can manipulate video game controller1210to generate control information1225provided to video game console1215. This can be provided via a wired or wireless communication connection. Video game console1215can modify or control the playback of a video game being played back on television715based on control information1225. For example, the user can use video game controller1210by moving a joystick, pressing buttons, etc. In response, video game console1215can receive control information1225indicating those uses of video game controller1210and, for example, move a player character (controlled by the user) within a virtual world of the video game played back on video game console1215. In the example, this results in a depiction of the player character moving, or the field of view of the player character changing, on television715.
Some actions that the user might want to perform within the video game might use the manipulation of several buttons of video game controller1210. In a hectic gaming environment (e.g., an action-oriented video game), it might be difficult to quickly select several buttons in the moment.
InFIG. 12, home assistant device110bcan be placed within the environment of video game console1215, for example, close to the user on a coffee table, end table, etc. around a sofa of a living room. As such, home assistant device110bcan provide assistance regarding the playback of the video game for the user.
For example, home assistant device110bcan be communicatively coupled with video game console1215(e.g., wirelessly over the wireless network of the environment as provided by a router). As a result, home assistant device110bcan receive game state information1235. Game state information1235can provide information regarding a state of the playback of the video game on video game console1215. This can include information regarding characteristics of the player character (e.g., health, inventory, location, etc.), the progress towards completion of the video game, how long the user has been playing the video game in the current playback session (e.g., 1 hour, 30 minutes since the video game was executed for playback), a level or stage in a progression of levels or stages currently being played, saved game information (e.g., saved game states allowing the user to continue playback of the video game from a particular point towards completion), future playback possibilities (e.g., what will happen or will likely happen in the near future), etc.
Using game state information1235, home assistant device110bcan generate GUI1205on its touchscreen. GUI1205can be generated to include hot button1250and hot button1255. Each of the hot buttons can provide different functionalities to be performed or implemented within the playback of the video game. For example, if game state information1235indicates that the player character has low health (e.g., the health level of the player character controlled by the user is within a threshold range indicating that the current iteration of the playback of the video game might end or terminate due to the “death” of the player character), then hot button1255can be generated. When hot button1255is selected by the user, this can cause home assistant device110bto generate control information1230and provided to video game console1215. In some implementations, control information1230can include the same type of data as would be provided by video game controller1210if the similar controls were selected with that. Video game console1215can then perform the action as indicated by hot button1255. In this example, the player character's health level can be increased by using an item in the player character's inventory. This can result in the lifetime of the player character to be extended such that the current iteration of playback can be extended.
In the example ofFIG. 12, hot button1250is also generated based on game state information1235. InFIG. 12, hot button1250, when selected, allows for control information1230to indicate to video game console1215that the inventory level of an item used by the user's player character (e.g., ammo for a weapon) should be reloaded. Thus, by selecting hot button1250, control information1230can instruct video game console1215to replenish the inventory level of an item such that it can be used for a longer time, or that the item should become functional (until it runs out of ammo).
In some implementations, the user can select hot button1255via voice recognition. For example, home assistant device110bcan generate an audio response via its speakers to provide voice or speech informing the user that hot button1255is available. Rather than physically selecting the button with a finger that would otherwise be used to hold video game controller1210, the user can request for home assistant device110bto have the action be performed by video game console1215. For example, the user can say “Increase my health!” which can be picked up by the microphone of home assistant device110band corresponding control information1230can be provided to video game console1215.
Home assistant device110bcan include a camera, or have access to a camera within the environment, and determine visual characteristics of the user playing the video game. For example, image frames captured from a camera can be analyzed to determine whether someone in the environment is holding video game controller1210while a video game is being played back on video game console1215(e.g., game state information1235is provided to home assistant device110b). Thus, home assistant device110bcan recognize the user controlling the player character among a crowd of people including others who might be watching the playback of the video game but not actually playing.
Visual characteristics of the user controlling the player character can then be determined and used to provide information to the user. For example, if the user is determined to be quickly controlling video game controller1210(e.g., by selecting buttons, moving the joystick in different directions, etc. at a relatively fast rate), then this might indicate that the user is engaged in an intense situation within the video game (with the player character). Thus, the user might not have time to physically select a hot button on GUI1205, or might not want to take attention away from television715. Thus, in these situations, home assistant device110bcan provide the audio response as discussed above. As a result, home assistant device110bcan analyze image frames depicting the user playing the video game, determine how the user is manipulating the video game controller used to play the game, and then provide interaction opportunities to the user based on how the user is manipulating the video game controller.
Audio characteristics can also be determined and used in a similar manner. For example, what the user is saying within the environment while playing the video game can be determined. For example, if the user is frustrated, this can be determined by home assistant device110banalyzing the user's speech content (e.g., by picking up the speech with its microphone). If certain keywords are present in the user's speech content (e.g., curse words, remarks regarding how difficult the video game is, concerns regarding characteristics of the player character such as the health, etc.) then this can be indicative of the user having a frustrating experience with the playback of the video game. Home assistant device110bcan recognize these and provide interaction opportunities (such as a hot button) to the user based on what the user is saying while playing the video game.
In some implementations, home assistant device110bcan determine how the user is manipulating video game controller1210to determine what types of actions the user is performing within the video game. For example, sequences of buttons, joystick movements, touch swipes, etc. performed using the mechanisms of video game controller1210can be determined by home assistant device110busing a camera generating image frames of the user manipulating video game controller1210. In another example, home assistant device110bcan also receive control information1225(in addition to being provided to video game console1215) or game state information1235can include similar information. Based on the actions being performed within the video game, home assistant device110bcan generate different hot buttons upon GUI1205or provide different audio prompts regarding actions that can be performed within the video game.
For example, if the user is determined to be frequently selecting a similar or same sequence of joystick movements, button selections, etc. on video game controller1210then this can be determined by home assistant device110b. Home assistant device110bcan determine that these sequences correspond to particular actions to be performed within the video game. Thus, home assistant device110bcan generate hot buttons on GUI1205allowing for a single selection of a hot button to replace a potentially long sequence of manipulations of video game controller1210. In some implementations, sequences within some threshold range (e.g., a sequence representing five or more manipulations such as button selections on video game controller1210) can be determined and used to generate a hot button on GUI1205. This might be useful because a user might find it more helpful (e.g., take less time) to take a hand off video game controller1210to physically select a hot button if it replaces a relatively long sequence of selections. In some implementations, home assistant device110bcan also provide an audio prompt regarding the hot button based on the determination regarding the sequence.
In some implementations, the size of the hot button can be based on the length of the sequence. For example, if a hot button represents a sequence of five button selections on video game controller1210, then the size of that hot button might be smaller than a hot button representing a sequence of ten button selections on video game controller1210.
Game state information1235provided to home assistant device110bcan also include information regarding the future playback of the video game. Using that information, home assistant device110bcan provide interactions such as generating a hot button or providing an audio response regarding an action that can be performed in the video game. For example, if game state information1235indicates what might occur in the relatively near future during the playback of the video game (e.g., five new enemies will appear during the playback, the player character is about to enter a non-combat zone, the player character is about to approach a “boss” or highly-challenging portions of the playback, etc.), then home assistant device110bcan prepare the user for the upcoming events to occur during the playback by generating a hot button. Thus, the hot buttons can also serve as recommendations for actions for the user to perform in preparation of future playback. As previously discussed, speech output can also be used to provide these recommendations.
In one example, if the user's player character is about to enter a challenging portion of the playback, then home assistant device110bcan determine this by receiving game state information1235. If the player character has a health level below some threshold level and the challenging portion is approaching (i.e., the playback is going to change resulting in a more difficult playback, for example, a playback having characteristics such as more enemies, enemies with more health, etc.), then home assistant device110bcan generate a hot button such as hot button1255to indicate to the user that restoring the health level might be useful in the current iteration of the playback. Thus, the user's enjoyment of the playback of the video game can be improved. Home assistant device110bcan also provide an audio prompt regarding recommended actions.
Any of the details regarding generation of hot buttons can be applied in a similar manner to the hot buttons generated upon GUI1205to enhance the video game playback experience. For example, inFIG. 12, hot button1250might be emphasized over hot button1255, for example, by being bigger, placed in a particular location, being animated, etc. For example, home assistant device110bcan emphasize a hot button that replaces a longer sequence of manipulations of video game controller1210than a hot button that has a shorter sequence. This can allow for the user to more easily select a hot button.
In some implementations, home assistant device110bcan also use cameras and microphones to analyze the playback of the video game on television715. For example, to supplement game state information1235, home assistant device110bcan also obtain image frames depicting the playback of the video game on television715, or also audio data indicating the sounds provided by the speakers of television715as the result of the playback of the video game. This can also be used to determine the state of the playback of the video game.
Returning toFIG. 12, GUI1205can also include graphical, textual, audio, or other types of content related to the video game being played. This can allow for home assistant device1205to be more tailored to the playback experience of the video game. InFIG. 12, a background image depicting the title of the video game and a graphical logo can be generated upon GUI1205with hot buttons1250and1255. This information can be received from server1220. For example, home assistant device110bcan provide game state information1240(e.g., the same, more, or less data than as provided by game state information1235) including the title of the video game being played back by video game console1215on television715. Server1220can receive this information and determine content related to the title of the video game, and in turn provide back game feedback information1245. Game feedback information1245can provide the graphical, textual, or audio content to be displayed on GUI1205during playback of the video game.
Home assistant device110bcan also provide additional feedback to the user. For example, home assistant device110bor game state information1235can indicate that the user's player character has died repeatedly at a certain point of the playback, resulting in multiple iterations of the playback (e.g., five times in five minutes). Home assistant device110bcan then generate control information1230to include an instruction indicating that a difficulty level of the playback of the video game should be reduced to make the playback easier. When the user finally passes that point of the playback without having to restart a new iteration of the playback, then home assistant device110bcan determine this (e.g., using any of the techniques disclosed such as indicated by game state information1235, audio/visual data, etc.) and then generate new control information instructing video game console1215to increase the difficulty level back to what it was before. Thus, the playback of the video game can be temporarily adjusted if the user is having difficulty, and then adjusted back to what it was before. This can allow for some users to have a better playback experience.
How other users are playing back the video game in their own homes can also be used to generate interactions such as providing hot buttons. For example, server1220can receive game state information1240from many different home assistant devices and it can determine the actions being performed within the video game by different users. Thus, game feedback information1245can provide this information to home assistant device110band this can be used to generate hot buttons or provide audio responses to aid the user in progressing through the playback of the video game.
For example, home assistant device110bcan provide game state information1240to server1220and receive back game feedback information1245. For instance, game state information1240can indicate characteristics regarding the player character and the progress through the playback. This can be used by server1220to provide helpful hints to the user by providing game feedback information1245.
For example, server1220can determine the point during the playback that the user is currently at, or about to be at. Server1220can then determine (e.g., by looking up in a database) the actions performed in the video game by other users at that point during the playback. For example, if the user is approaching a point where many others save the game, this can be determined by server1220and an indication regarding that can be provided via game feedback information1245. Home assistant device110bcan then generate a hot button recommending the user to save the game (and also may include a speech prompt regarding this), or home assistant device110bcan generate control information1230to instruct video game console1215to save the game without any prompting from the user.
In some implementations, if the user is performing some action within the video game that deviates from what most other users do, then home assistant device110bcan also inform the user of this. For example, the user can control a player character such that the player character moves down one path of a labyrinth rather than another path of the labyrinth. This can be indicated in game state information1240provided to server1220. Server1220can determine that more users take the other path rather than the path that the user's player character has taken. This information can be provided back to home assistant device110band home assistant device110bcan then generate textual, graphical, or audio content indicating to the user that the playback of the video game is actually deviating from the most common way of playing back the video game. For example, textual content can be displayed upon1205regarding this, or home assistant device110bcan provide an audio response in the form of speech or voice informing the user.
In some implementations, home assistant device110bcan provide control information1230with instructions for video game console1215to cause the actions that would result in the most common way of playing back the video game. For example, if other users commonly save a game at a certain point, then home assistant device110bcan determine this (e.g., by using information provided by server1220) and then automatically save the game by generating control information1230instructing video game console1215to perform that action.
In some implementations, when the user plays a video game, the information regarding the game stored by server1220can be provided to home assistant device110b. Thus, the determinations made by server1220can also be made by home assistant device110b. For example, how other users play the video game can be provided via game feedback information1245to home assistant device110band the functionalities described regarding server1220can be provided by home assistant device110b.
Sometimes a user might want to automate some of the actions to be performed within the video game. In these situations, the user can request home assistant device110bthe conditions to perform certain actions, for example, by establishing rules. For example, the user can verbally instruct home assistant device110bto save the game every 30 minutes. Thus, home assistant device110bcan provide control information1230to video game console1215instructing it to save the game. Home assistant device110bcan generate these instructions at thirty-minute intervals. The rules can be generated by the user speaking to home assistant device110b, or the user can use a software application to establish the rules.
In another example, the user can request home assistant device110bto perform some action based on the characteristics of the playback of the video game such as characteristics of the player character. For instance, the user can establish a rule to have home assistant device110bgenerate control information1230to instruct video game console1215to perform an action (e.g., use a “health potion”) when the player character's health is below some threshold level or within some threshold range. Thus, home assistant device110bcan set the rule, receive game state information1235, determine that the characteristics correspond to a rule (e.g., various levels, indicators, etc. are sufficient to satisfy the conditions or requirements of the rule), and then generate control information1230instructing video game console to perform the action.
In some implementations, how the user plays one video game can be determined and used to adjust the playback of another video game. For example, if the user saves the game often while playing one video game, then when the same user plays another video game, home assistant device110bcan instruct video game console1215to save the game at a relatively same frequency. For example, if the user generally saves the state of the game every thirty minutes while playing the first game, then when the user plays the second game, home assistant device110bcan generate control information1230approximately ever thirty minutes to save in the second game.
FIG. 13illustrates an example of a block diagram for providing a user interface based on playback of video games. InFIG. 13, video game state information can be received (1305). For example, inFIG. 12, home assistant device110bcan receive game state information1235. Characteristics of the playback can be determined using the video game state information (1310). For example, inFIG. 12, the information provided via game state information1235can be analyzed by home assistant device110bto determine how the playback of the video game on video game console1215is progressing. Based on the characteristics, a hot button can be generated (1315). For example, inFIG. 12, hot buttons1250and1255can be generated. If one of those hot buttons is selected (1320) then the video game console can be instructed to adjust playback of the video game based on the action corresponding to the hot button (1325). For example, inFIG. 12, if hot button1255was selected, then home assistant device110bcan generate control information1230instructing video game console1230to perform some action within the playback of the video game.
Many of the examples herein discuss a home environment. In other examples, the devices and techniques discussed herein can also be set up in an office, public facility, etc.
FIG. 5illustrates an example of an assistant device. InFIG. 5, home assistant device110can be an electronic device with one or more processors605(e.g., circuits) and memory610for storing instructions that can be executed by processors605to implement contextual user interface630providing the techniques described herein. Home assistant device105can also include microphone620(e.g., one or more microphones that can implement a microphone array) to convert sounds into electrical signals, and therefore, speech into data that can be processed using processors605and stored in memory610. Speaker615can be used to provide audio output. Additionally, display625can display a GUI implemented by processors605and memory610to provide visual feedback. Memory610can be a non-transitory computer-readable storage media. Home assistant device110can also include various other hardware, such as cameras, antennas, etc. to implement the techniques disclosed herein. Thus, the examples described herein can be implemented with programmable circuitry (e.g., one or more microprocessors) programmed with software and/or firmware, or entirely in special-purpose hardwired (non-programmable) circuitry, or in a combination of such forms. Special-purpose hardwired circuitry may be in the form of, for example, one or more application specific integrated circuits (ASICs), complex programmable logic devices (CPLDs), field programmable gate arrays (FPGAs), structured ASICs, etc.
Those skilled in the art will appreciate that the logic and process steps illustrated in the various flow diagrams discussed herein may be altered in a variety of ways. For example, the order of the logic may be rearranged, sub-steps may be performed in parallel, illustrated logic may be omitted, other logic may be included, etc. One will recognize that certain steps may be consolidated into a single step and that actions represented by a single step may be alternatively represented as a collection of substeps. The figures are designed to make the disclosed concepts more comprehensible to a human reader. Those skilled in the art will appreciate that actual data structures used to store this information may differ from the figures and/or tables shown, in that they, for example, may be organized in a different manner; may contain more or less information than shown; may be compressed, scrambled and/or encrypted; etc.
From the foregoing, it will be appreciated that specific embodiments of the invention have been described herein for purposes of illustration, but that various modifications can be made without deviating from the scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
Claims
- A method for providing a graphical user interface (GUI) on a touchscreen of a home assistant device with artificial intelligence (AI) capabilities, the GUI providing content related to playback of a video game within an environment of the home assistant device, comprising: receiving video game state information from a video game console, the video game state information indicating a state of playback of a video game within the environment;determining that the video game state information indicates that the state of the playback of the video game includes a player character controlled by a user having a health status approaching a level that results in termination of a current iteration of the playback of the video game, and that the video game state information indicates that an item controlled by the player character has an inventory level approaching a level that results in the item not being functional until the inventory level is replenished;determining characteristics of the user while playing the video game;generating a first hot button for display on the GUI of the touchscreen of the home assistant device based on the determination that the state of the playback of the video game includes a player character controlled by a user having a health status approaching a level that results in termination of a current iteration of the playback of the video game, the first hot button configured to instruct the video game console to use an item or ability corresponding to the player character to modify the health status such that it adjusted to a modified level away from the level that results in termination of the current iteration of the playback of the video game;providing an audio response indicating that the first hot button was generated based on the characteristics of the user while playing the video game;generating a second hot button for display on the GUI of the touchscreen of the home assistant device based on the determination that the video game state information indicates that an item controlled by the player character has an inventory level approaching a level that results in the item not being functional until it is replenished, the second hot button configured to instruct the video game console to use an item or ability corresponding to the player character to modify the inventory level such that it is adjusted to a modified inventory level away from the level that results in the item not being functional;determining that the first hot button or the second hot button was selected via a touch on the touchscreen of the home assistant device or via a response to the audio response;and instructing the video game console to modify the health status or modify the inventory level based on the selection of the first hot button or the second hot button.
- A method, comprising: receiving video game state information representing a state of playback of a video game on a video game console;determining, by a processor of an assistant device, that the state of the playback of the video game includes a player character controlled by a user, the player character having characteristics based on the playback of the video game;determining, by the processor, characteristics of the user while playing the video game;generating, by the processor, a first button on a graphical user interface (GUI) displayed upon a display of the assistant device, the first button providing an indication of a first action that can be performed by the video game to modify the characteristics of the player character;providing an audio response indicating that the first button was generated, the audio response provided based on the characteristics of the user while playing the video game;determining, by the processor, that the first button was selected in response to the audio response;and instructing, by the processor, the video game console to modify the characteristics of the player character corresponding to the first action upon selection of the first button.
- The method of claim 2 , wherein the characteristics of the user include visual characteristics of the user while playing the video game.
- The method of claim 3 , wherein the visual characteristics include how the user is manipulating a controller used to play back the video game.
- The method of claim 4 , wherein the visual characteristics include how fast the user is manipulating the controller used to play back the video game.
- The method of claim 2 , wherein the characteristics of the user include audio characteristics of the user while playing the video game.
- The method of claim 2 , further comprising: receiving graphical content related to similar subject matter of the video game being played back on the video game console;and displaying the graphical content on the GUI with the first button.
- The method of claim 2 , generating, by the processor, a second button on the GUI, the second button providing an indication of a second action that can be performed by the video game to modify the characteristics of the player character, the characteristics modified by the second action being different than the characteristics modified by the first action;determining, by the processor, that the second button was selected;and instructing, by the processor, the video game console to modify the characteristics of the player character upon selection of the second button.
- The method of claim 8 , further comprising: determining that the video game state information indicates that a change in the playback of the video game is about to occur, wherein characteristics of the first button and the second button are based on the change in the playback of the video game that is about to occur.
- The method of claim 2 , further comprising: determining that the video game state information indicates that a change in the playback of the video game is about to occur, wherein the first button is generated based on the change in the playback of the video game that is about to occur.
- A computer program product, comprising one or more non-transitory computer-readable media having computer program instructions stored therein, the computer program instructions being configured such that, when executed by one or more computing devices, the computer program instructions cause the one or more computing devices to: receive video game state information representing a state of playback of a video game on a video game console;determine that the state of the playback of the video game includes a player character controlled by a user, the player character having characteristics based on the playback of the video game;determine characteristics of the user while playing the video game;generate a first button on a graphical user interface (GUI), the first button providing an indication of a first action that can be performed by the video game to modify the characteristics of the player character;provide an audio response indicating that the first button was generated, the audio response provided based on the characteristics of the user while playing the video game;determine that the first button was selected in response to the audio response;and instruct the video game console to modify the characteristics of the player character corresponding to the first action upon selection of the first button.
- The computer program product of claim 11 , wherein the characteristics of the user include visual characteristics of the user while playing the video game.
- The computer program product of claim 11 , wherein the characteristics of the user include audio characteristics of the user while playing the video game.
- The computer program product of claim 11 , wherein the computer program instructions cause the one or more computing devices to: receive graphical content related to similar subject matter of the video game being played back on the video game console;and display the graphical content on the GUI with the first button.
- The computer program product of claim 11 , wherein the computer program instructions cause the one or more computing devices to: generate a second button on the GUI, the second button providing an indication of a second action that can be performed by the video game to modify the characteristics of the player character, the characteristics modified by the second action being different than the characteristics modified by the first action;determine that the second button was selected;and instruct the video game console to modify the characteristics of the player character upon selection of the second button.
- The computer program product of claim 15 , wherein the computer program instructions cause the one or more computing devices to: determine that the video game state information indicates that a change in the playback of the video game is about to occur, wherein characteristics of the first button and the second button are based on the change in the playback of the video game that is about to occur.
- The computer program product of claim 11 , wherein the computer program instructions cause the one or more computing devices to: determine that the video game state information indicates that a change in the playback of the video game is about to occur, wherein the first button is generated based on the change in the playback of the video game that is about to occur.
- An electronic device, comprising: one or more processors;and memory storing instructions, wherein the processor is configured to execute the instructions such that the processor and memory are configured to: determine a state of a playback of a game played back on a game console, the game being played back by a user;generate a first button on a graphical user interface (GUI), the first button providing an indication of a first action that can be performed by the game to adjust the playback of the game based on the state of the playback;determine characteristics of the user while playing the game;provide an audio response indicating that the first button was generated, the audio response provided based on the characteristics of the user while playing the game;determine that the first button was selected in response to the audio response;and instruct the game console to adjust the playback of the game corresponding to the first action upon selection of the first button.
- The electronic device of claim 18 , wherein the characteristics of the user include visual characteristics of the user while playing the game.
- The electronic device of claim 18 , wherein the characteristics of the user include audio characteristics of the user while playing the game.
- The electronic device of claim 18 , wherein the processor is configured to execute the instructions such that the processor and memory are configured to: receive graphical content related to similar subject matter of the game being played back;and display the graphical content on the GUI with the first button.
- The electronic device of claim 18 , wherein the processor is configured to execute the instructions such that the processor and memory are configured to: generate a second button on the GUI, the second button providing an indication of a second action that can be performed by the game to modify the playback, the first action and the second action modifying the playback differently;determine that the second button was selected;and instruct the game console to modify the characteristics of the playback of the game upon selection of the second button.
- The electronic device of claim 22 , wherein the processor is configured to execute the instructions such that the processor and memory are configured to: determine that the state of the playback of the game indicates that a change in the playback of the game is about to occur, wherein characteristics of the first button and the second button are based on the change in the playback of the game that is about to occur.
- The electronic device of claim 18 , wherein the processor is configured to execute the instructions such that the processor and memory are configured to: determine that the state of the playback of the game indicates that a change in the playback of the game is about to occur, wherein the first button is generated based on the change in the playback of the game that is about to occur.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.