Media transfer among media output devices

A method is implemented to move media content display between two media output devices. A server system determines in a voice message recorded by an electronic device a media transfer request that includes a user voice command to transfer media content to a destination media output device and a user voice designation of the destination media output device. The server system then obtains from a source cast device instant media play information including information of a media play application, the media content that is being played, and a temporal position. The server system further identifies a destination cast device associated in a user domain coupled to the destination media output device, and sends to the destination cast device a media play request including the instant media play information, thereby enabling the destination cast device to execute the media play application for playing the media content from the temporal location.

TECHNICAL FIELD

This application relates generally to computer technology, including but not limited to methods and systems for using a voice activated electronic device to initiate media content transfer among different media output devices in a smart media environment.

BACKGROUND

Electronic devices integrated with microphones have been widely used to collect voice inputs from users and implement different voice-activated functions according to the voice inputs. For example, many state-of-the-art mobile devices include a voice assistant system (e.g., Siri and Google Assistant) that is configured to use voice inputs to initiate a phone call, conduct a restaurant search, start routing on a map, create calendar events, add a post to a social network, recognize a song and complete many other tasks. The mobile devices often include display screens that allow the users who provide the voice inputs to check the status of the tasks requested via the voice inputs. However, when an electronic device having a relatively simple structure and made at a low cost is applied to implement similar voice activated functions as the mobile devices, use of a display screen would significantly increase the cost of the electronic device. Thus, there is a need to use a simple and low-cost user interface to indicate a status of voice input processing in an electronic device that includes one or more microphones and functions as a voice interface.

In addition, the voice activated functions currently implemented in mobile devices are limited to Internet-based functions that involve remote servers (e.g., a search engine, a social network server or a voice assistant server). The results of the voice activated functions are displayed on or used to control the mobile devices themselves, and do not impact any other remote or local electronic devices accessible to the user. Given that voice inputs are convenient for the user, it is beneficial to allow the user to use voice inputs to control the other electronic devices accessible to the user in addition to requesting the Internet-based functions limited between the remote servers and the mobile devices.

SUMMARY

Accordingly, there is a need to create a smart media environment or a smart home environment where an electronic device provides an eyes-free and hands-free voice interface to activate voice-activated functions on other media play devices or smart home devices coupled within the smart media or home environment. In some implementations of this application, a smart media environment includes one or more voice-activated electronic devices and multiple media display devices each disposed at a distinct location and coupled to a cast device (e.g., a set top box). Each voice-activated electronic device is configured to record a voice message from which a cloud cast service server determines a user voice request (e.g., a media play request, a media transfer request or a closed caption initiation request). The cloud cast service server then directs the user voice request to a destination cast device as indicated by the voice message. The voice-activate electronic device is also configured to display a visual pattern via an array of full color LEDs indicating a corresponding voice processing state. Similar arrangement could be used to control smart home devices to implement voice-activated functions in a smart home environment. Such methods optionally complement or replace conventional methods of requiring a user to use a remote control or a client device to control the media devices or the smart home devices in a smart media or home environment.

In accordance with one aspect of this application, a method is implemented at an electronic device for visually indicating a voice processing state. The electronic device includes an array of full color LEDs, one or more microphones, a speaker, a processor and memory storing at least one program for execution by the processor. The method includes collecting via the one or more microphones audio inputs from an environment in proximity to the electronic device, and processing the audio inputs. The processing includes one or more of identifying and responding to voice inputs from a user in the environment. The method further includes determining a state of the processing from among a plurality of predefined voice processing states, and for each of the full color LEDs, identifying a respective predetermined LED illumination specification associated with the determined voice processing state. The illumination specification includes one or more of an LED illumination duration, pulse rate, duty cycle, color sequence and brightness. The method further includes in accordance with the identified LED illumination specifications of the full color LEDs, synchronizing illumination of the array of full color LEDs to provide a visual pattern indicating the determined voice processing state.

In accordance with one aspect of this application, a method is executed at server system including a processor and memory storing at least one program for execution by the processor for playing media content on a media output device. The media content play method includes receiving a voice message recorded by an electronic device, and determining that the voice message includes a first media play request. The first media play request includes a user voice command to play media content on a destination media output device and a user voice designation of the media output device, and the user voice command includes at least information of a first media play application and the media content that needs to be played. The media content play method further includes in accordance with the voice designation of the media output device, identifying (e.g., in a device registry) a cast device associated in a user domain with the electronic device and coupled to the media output device. The cast device is configured to execute one or more media play applications for controlling the media output device to play media content received from one or more media content hosts. The media content play method further includes sending to the cast device a second media play request including the information of the first media play application and the media content that needs to be played, thereby enabling the cast device to execute the first media play application that controls the media output device to play the media content.

In accordance with another aspect of this application, a method is executed at a server system including a processor and memory storing at least one program for execution by the processor for initiating by voice display of closed captions (CC) for media content. The CC display media method includes receiving a voice message recorded by an electronic device, and determining that the voice message is a first closed caption initiation request. The first closed caption initiation request includes a user voice command to initiate closed captions and a user voice designation of a display device playing the media content for which closed captions are to be activated. The CC display method further includes in accordance with the designation of the display device, identifying (e.g., in a device registry) a cast device associated in a user domain with the electronic device and coupled to the designated display device. The cast device is configured to execute a media play application for controlling the designated display device to display media content received from a media content host. The CC display method further includes sending a second closed caption initiation request to the cast device coupled to the designated display device, thereby enabling the cast device to execute the media play application that controls the designated display device to turn on the closed captions of media content that is currently displayed on the designated display device and display the closed captions according to the second closed caption initiation request.

In accordance with another aspect of this application, a method is executed at a server system including a processor and memory storing at least one program for execution by the processor for moving media content display from a source media output device to a destination media output device. The media transfer method includes receiving a voice message recorded by an electronic device, and determining that the voice message includes a media transfer request. The media transfer request includes a user voice command to transfer media content that is being played to a destination media output device and a user voice designation of the destination media output device. The media transfer method further includes obtaining from a source cast device instant media play information of the media content that is currently being played. The instant play information includes at least information of a first media play application, the media content that is currently being played, and a temporal position related to playing of the media content. The media transfer method further includes in accordance with the voice designation of the destination media output device, identifying (e.g., in a device registry) a destination cast device associated in a user domain with the electronic device and coupled to the destination media output device, and the destination cast device is configured to execute one or more media play applications for controlling the destination media output device to play media content received from one or more media content hosts. The media transfer method further includes sending to the destination cast device a media play request including the instant media play information, thereby enabling the destination cast device to execute the first media play application that controls the destination media output device to play the media content from the temporal location.

In accordance with some implementations, a cast device includes means for performing the operations of any of the methods described above.

DESCRIPTION OF IMPLEMENTATIONS

While digital revolution has provided many benefits ranging from openly sharing information to a sense of global community, emerging new technology often induces confusion, skepticism and fear among consumers, preventing consumers from benefiting from the technology. Electronic devices are conveniently used as voice interfaces to receive voice inputs from users and initiate voice-activated functions, and thereby offer eyes-free and hands-free solutions to approach both existing and emerging technology. Specifically, the voice inputs received at an electronic device can carry instructions and information even if a user's line of sight is obscured and his hands are full. To enable hands-free and eyes-free experience, the voice-activated electronic device listens to the ambient (i.e., processes audio signals collected from the ambient) constantly or only when triggered. On the other hand, user identities are linked with a user's voice and a language used by the user. To protect the user identities, voice-activated electronic devices are normally used in non-public places that are protected, controlled and intimate spaces (e.g., home and car).

In accordance with some implementations of the invention, a voice-activated electronic device includes an array of full color light emitting diodes (LEDs). While the electronic device processes audio inputs collected from one or more microphones, the array of full LEDs are illuminated to provide a visual pattern according to LED illumination specifications determined according to a state of the processing. The array of full color LEDs is configured to provide a plurality of visual patterns each corresponding to a voice processing state (e.g., hot word detection, listening, thinking and speaking). This LED design language used to create the visual patterns is applied to at least partially resolve the problem of user confusion, apprehension, and uneasiness and promote understanding, adoption and enjoyment of the corresponding voice interface experience.

Further, in accordance with some implementations of the invention, a voice-activated electronic device uses voice inputs to initiate and control video playback on display devices. Specifically, a server system (e.g., a cloud cast service server) receives a voice message recorded by the voice-activated electronic device, and determines that the voice message includes a media play request further including a user voice command to play media content on a media output device (optionally including the voice-activated electronic device itself) and a user voice designation of the media output device. The user voice command includes at least information of a first media play application and the media content that needs to be played. In accordance with the voice designation of the media output device, the server system identifies a cast device associated in a user domain with the electronic device and coupled to the media output device, and the cast device is configured to execute one or more media play applications for controlling the media output device to play media content received from one or more media content hosts. The server system then sends to the cast device the information of the first media play application and the media content that needs to be played, thereby enabling the cast device to execute the first media play application that controls the media output device to play the media content.

In some implementations, while the media content is displayed on a media output device, the voice-activated electronic device allows a user to use their voice to turn on and off captions on the TV without involving any user interaction with a remote control or a second screen device (e.g., a mobile phone, a tablet computer and a laptop computer). Specifically, a server system is configured to determine from a voice message a first closed caption initiation request including a user voice command to initiate closed captions and a user voice designation of a display device playing the media content for which closed captions are to be activated. After identifying a cast device associated in a user domain with the electronic device and coupled to the designated display device, the server system sends a second closed caption initiation request to the cast device, thereby enabling the cast device to execute the media play application that controls the designated display device to turn on the closed captions of media content that is currently displayed on the designated display device and display the closed captions according to the second closed caption initiation request.

Further, in accordance with some implementations of the invention, while the media content is displayed on a first media output device, the voice-activated electronic device allows a user to use their voice to initiate a media transfer of the media content from the first media output device to a second media output device. The transfer maintains the corresponding media play state at least by resuming the media content on the second media output device at an exact point of the media content that has been played on the first media output device.

Specifically, a server system is configured to determine from a voice message a media transfer request including a user voice command to transfer media content that is being played to a destination media output device and a user voice designation of the destination media output device. The server system then obtains from a source cast device instant media play information of the media content that is currently being played, and the instant play information includes at least information of a first media play application, the media content that is currently being played, and a temporal position related to playing of the media content. After identifying a destination cast device associated in a user domain with the electronic device and coupled to the designated display device, the server system sends to the destination cast device a media play request including the instant media play information, thereby enabling the destination cast device to execute the first media play application that controls the destination media output device to play the media content from the temporal location. In some implementations, the destination cast device is identified in a device registry.

Smart Media/Home Environment

FIG. 1is an example smart media environment100in accordance with some implementations. The smart media environment100includes a structure150(e.g., a house, office building, garage, or mobile home) with various integrated devices. It will be appreciated that devices may also be integrated into a smart media environment100that does not include an entire structure150, such as an apartment, condominium, or office space. The depicted structure150includes a plurality of rooms152, separated at least partly from each other via walls154. The walls154may include interior walls or exterior walls. Each room may further include a floor156and a ceiling158.

One or more media devices are disposed in the smart media environment100to provide media content that is stored at a local content source or streamed from a remote content source (e.g., content host(s)114). The media devices can be classified to two categories: media output devices106that directly output the media content to audience, and cast devices108that are networked to stream media content to the media output devices108. Examples of the media output devices106include, but are not limited to television (TV) display devices and music players. Examples of the cast devices108include, but are not limited to, a set-top boxes (STBs), DVD players and TV boxes. In the example smart media environment100, the media output devices106are disposed in more than one location, and each media output device106is coupled to a respective cast device108or includes an embedded casting unit. The media output device106-1includes a TV display that is hard wired to a DVD player or a set top box108-1. The media output device106-2includes a smart TV device that integrates an embedded casting unit to stream media content for display to its audience. The media output device106-3includes a regular TV display that is coupled to a TV box108-3(e.g., Google TV or Apple TV products), and such a TV box108-3streams media content received from a media content host server114and provides an access to the Internet for displaying Internet-based content on the media output device106-3.

In addition to the media devices106and108, one or more electronic devices190are disposed in the smart media environment100to collect audio inputs for initiating various media play functions of the media devices. In some implementations, these voice-activated electronic devices190(e.g., devices1901-1,190-2and190-3) are disposed in proximity to a media device, for example, in the same room with the cast devices108and the media output devices106. Alternatively, in some implementations, a voice-activated electronic device190-4is disposed in a room having one or more smart home devices but not any media device. Alternatively, in some implementations, a voice-activated electronic device190is disposed in a location having no networked electronic device.

The electronic device190includes at least one or more microphones, a speaker, a processor and memory storing at least one program for execution by the processor. The speaker is configured to allow the electronic device190to deliver voice messages to a location where the electronic device190is located in the smart media environment100, thereby broadcasting music, reporting a state of audio input processing, having a conversation with or giving instructions to a user of the electronic device190. As an alternative to the voice messages, visual signals could also be used to provide feedback to the user of the electronic device190concerning the state of audio input processing. When the electronic device190is a conventional mobile device (e.g., a mobile phone or a tablet computer), its display screen is configured to display a notification concerning the state of audio input processing.

In accordance with some implementations, the electronic device190is a voice interface device that is network-connected to provide voice recognition functions with the aid of a cloud cast service server116and/or a voice assistance server112. For example, the electronic device190includes a smart speaker that provides music to a user and allows eyes-free and hands-free access to voice assistant service (e.g., Google Assistant). Optionally, the electronic device190is one of a desktop or laptop computer, a tablet and a mobile phone that includes a microphone. Optionally, the electronic device190is a simple and low cost voice interface device. Given simplicity and low cost of the electronic device190, the electronic device190includes an array of full color light emitting diodes (LEDs) rather than a full display screen, and displays a visual pattern on the full color LEDs to indicate the state of audio input processing.

When voice inputs from the electronic device190are used to control the media output devices106via the cast devices108, the electronic device190effectively enables a new level of control of cast-enabled media devices. In a specific example, the electronic device190includes a casual enjoyment speaker with far-field voice access and functions as a voice interface device for Google Assistant. The electronic device190could be disposed in any room in the smart media environment100. When multiple electronic devices190are distributed in multiple rooms, they become cast audio receivers that are synchronized to provide voice inputs from all these rooms.

Specifically, in some implementations, the electronic device190includes a WiFi speaker with a microphone that is connected to a voice-activated personal assistant service (e.g., Google Assistant). A user could issue a media play request via the microphone of electronic device190, and ask the personal assistant service to play media content on the electronic device190itself or on another connected media output device106. For example, the user could issue a media play request by saying to the WiFi speaker “OK Google, Play cat videos on my Living room TV.” The personal assistant service then fulfils the media play request by playing the requested media content on the requested device using a default or designated media application.

A user could also make a voice request via the microphone of the electronic device190concerning the media content that has already been played on a display device. In some implementations, closed captions of the currently displayed media content are initiated or deactivated on the display device by voice when there is no remote control or a second screen device is available to the user. Thus, the user can turn on the closed captions on a display device via an eyes-free and hands-free voice-activated electronic device190without involving any other device having a physical user interface, and such a voice-activated electronic device190satisfies federal accessibility requirements for users having hearing disability.

In some implementations, a user may want to take a current media session with them as they move through the house. This requires the personal assistant service to transfer the current media session from a first cast device to a second cast device that is not directly connected to the first cast device or has no knowledge of the existence of the first cast device. Subsequent to the media content transfer, a second output device106coupled to the second cast device108continues to play the media content previously a first output device106coupled to the first cast device108from the exact point within a music track or a video clip where play of the media content was forgone on the first output device106.

In some implementations, in addition to the media devices (e.g., the output devices106and the cast devices108) and the voice-activated electronic devices190, smart home devices could also be mounted on, integrated with and/or supported by a wall154, floor156or ceiling158of the smart media environment100(which is also broadly called as a smart home environment in view of the existence of the smart home devices). The integrated smart home devices include intelligent, multi-sensing, network-connected devices that integrate seamlessly with each other in a smart home network and/or with a central server or a cloud-computing system to provide a variety of useful smart home functions. In some implementations, a smart home device is disposed at the same location of the smart home environment100as a cast device108and/or an output device106, and therefore, is located in proximity to or with a known distance with respect to the cast device108and the output device106.

The smart home devices in the smart media environment100may include, but are not limited to, one or more intelligent, multi-sensing, network-connected thermostats122, one or more intelligent, network-connected, multi-sensing hazard detectors124, one or more intelligent, multi-sensing, network-connected entryway interface devices126and128(hereinafter referred to as “smart doorbells126” and “smart door locks128”), one or more intelligent, multi-sensing, network-connected alarm systems130, one or more intelligent, multi-sensing, network-connected camera systems132, and one or more intelligent, multi-sensing, network-connected wall switches136. In some implementations, the smart home devices in the smart media environment100ofFIG. 1includes a plurality of intelligent, multi-sensing, network-connected appliances138(hereinafter referred to as “smart appliances138”), such as refrigerators, stoves, ovens, televisions, washers, dryers, lights, stereos, intercom systems, garage-door openers, floor fans, ceiling fans, wall air conditioners, pool heaters, irrigation systems, security systems, space heaters, window AC units, motorized duct vents, and so forth.

The smart home devices in the smart media environment100may additionally or alternatively include one or more other occupancy sensors (e.g., touch screens, IR sensors, ambient light sensors and motion detectors). In some implementations, the smart home devices in the smart media environment100include radio-frequency identification (RFID) readers (e.g., in each room152or a portion thereof) that determine occupancy based on RFID tags located on or embedded in occupants. For example, RFID readers may be integrated into the smart hazard detectors104.

In some implementations, in addition to containing sensing capabilities, devices122,124,126,128,130,132,136and138(which are collectively referred to as “the smart home devices” or “the smart home devices120”) are capable of data communications and information sharing with other smart home devices, a central server or cloud-computing system, and/or other devices (e.g., the client device104, the cast devices108and the voice-activated electronic devices190) that are network-connected. Similarly, each of the cast devices108and the voice-activated electronic devices190is also capable of data communications and information sharing with other cast devices108, voice-activated electronic devices190, smart home devices, a central server or cloud-computing system140, and/or other devices (e.g., the client device104) that are network-connected. Data communications may be carried out using any of a variety of custom or standard wireless protocols (e.g., IEEE 802.15.4, Wi-Fi, ZigBee, 6LoWPAN, Thread, Z-Wave, Bluetooth Smart, ISA100.11a, WirelessHART, MiWi, etc.) and/or any of a variety of custom or standard wired protocols (e.g., Ethernet, HomePlug, etc.), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.

In some implementations, the cast devices108, the electronic devices190and the smart home devices serve as wireless or wired repeaters. In some implementations, a first one of and the cast devices108communicates with a second one of the cast devices108and the smart home devices via a wireless router. The cast devices108, the electronic devices190and the smart home devices may further communicate with each other via a connection (e.g., network interface160) to a network, such as the Internet110. Through the Internet110, the cast devices108, the electronic devices190and the smart home devices may communicate with a smart server system140(also called a central server system and/or a cloud-computing system herein). Optionally, the smart server system140may be associated with a manufacturer, support entity, or service provider associated with the cast devices108and the media content displayed to the user.

Accordingly, the smart server system140may include a voice assistance server112that processes audio inputs collected by voice-activated electronic devices, one or more content hosts104that provide the displayed media content, a cloud cast service server116creating a virtual user domain based on distributed device terminals, and a device registry118that keeps a record of the distributed device terminals in the virtual user environment. Examples of the distributed device terminals include, but are not limited to the cast devices108, the media output devices106, the electronic devices190and the smart home devices. In some implementations, these distributed device terminals are linked to a user account (e.g., a Google user account) in the virtual user domain.

In some implementations, the network interface160includes a conventional network device (e.g., a router). The smart media environment100ofFIG. 1further includes a hub device180that is communicatively coupled to the network(s)110directly or via the network interface160. The hub device180is further communicatively coupled to one or more of the above intelligent, multi-sensing, network-connected devices (e.g., the cast devices108, the electronic devices190, the smart home devices and the client device104). Each of these network-connected devices optionally communicates with the hub device180using one or more radio communication networks available at least in the smart media environment100(e.g., ZigBee, Z-Wave, Insteon, Bluetooth, Wi-Fi and other radio communication networks). In some implementations, the hub device180and devices coupled with/to the hub device can be controlled and/or interacted with via an application running on a smart phone, household controller, laptop, tablet computer, game console or similar electronic device. In some implementations, a user of such controller application can view status of the hub device or coupled network-connected devices, configure the hub device to interoperate with devices newly introduced to the home network, commission new devices, and adjust or view settings of connected devices, etc.

FIG. 2Ais an example operating environment in which a voice-activated electronic device190interacts with a cast device108, a client device104or a server system140of a smart media environment100in accordance with some implementations. The voice-activated electronic device190is configured to receive audio inputs from an environment in proximity to the voice-activated electronic device190. Optionally, the electronic device190stores the audio inputs and at least partially processes the audio inputs locally. Optionally, the electronic device190transmits the received audio inputs or the partially processed audio inputs to a voice assistance server112via the communication networks110for further processing. The cast device108is configured to obtain media content or Internet content from one or more content hosts114for display on an output device106coupled to the cast device108. As explained above, the cast device108and the voice-activated electronic device190are linked to each other in a user domain, and more specifically, associated with each other via a user account in the user domain. Information of the cast device108and information of the electronic device190are stored in the device registry118in association with the user account.

In some implementations, the cast device108and the voice-activated electronic device190do not include any display screen, and have to rely on the client device104to provide a user interface during a commissioning process. Specifically, the client device104is installed with an application that enables a user interface to facilitate commissioning of a new cast device108or a new voice-activated electronic device190disposed in proximity to the client device104. A user may send a request on the user interface of the client device104to initiate a commissioning process for the new cast device108or electronic device190that needs to be commissioned. After receiving the commissioning request, the client device104establishes a short range communication link with the new cast device108or electronic device190that needs to be commissioned. Optionally, the short range communication link is established based near field communication (NFC), Bluetooth, Bluetooth Low Energy (BLE) and the like. The client device104then conveys wireless configuration data associated with a wireless local area network (WLAN) to the new cast device108or electronic device190. The wireless configuration data includes at least a WLAN security code (i.e., service set identifier (SSID) password), and optionally includes a SSID, an Internet protocol (IP) address, proxy configuration and gateway configuration. After receiving the wireless configuration data via the short range communication link, the new cast device108or electronic device190decodes and recovers the wireless configuration data, and joins the WLAN based on the wireless configuration data.

Additional user domain information is entered on the user interface displayed on the client device104, and used to link the new cast device108or electronic device190to an account in a user domain. Optionally, the additional user domain information is conveyed to the new cast device108or electronic device190in conjunction with the wireless communication data via the short range communication link. Optionally, the additional user domain information is conveyed to the new cast device108or electronic device190via the WLAN after the new device has joined the WLAN.

Once the cast device108and the electronic device190have been commissioned into the user domain, the cast device108, the output device106and their associated media play activities could be controlled via two control paths (control path A and control path B). In accordance with control path A, a cast device application or one or more media play applications installed on the client device104are used to control the cast device108and its associated media play activities. Alternatively, in accordance with control path B, the electronic device190is used to enable eyes-free and hands-free control of the cast device108and its associated media play activities (e.g., playback of media content play on the output device106, and activation of closed captions of media content currently displayed on the output device106).

FIG. 2Bis an example flow chart of a media play control process250that controls the cast device108and its associated media play activities according to control path B shown inFIG. 2A. An assistant server (e.g., a voice assistance server112) is configured to support the voice activated electronic device190, control interactions with a search stack and resolve which media action needs to be executed according to raw voice inputs collected by the electronic device190. The assistant server sends (202) a request to the cloud cast service server116which converts the media action into an Action Script that can then be executed by the target cast device108. There are two possible execution paths for the Action Script. In accordance with a first execution path A, it is returned in the response to the assistant server. This is a “local path.” If the target cast device108is the voice-activated electronic device190itself, then the Action Script is readily available from the assistant server. Alternatively, in accordance with a second execution path B, the cloud cast service server116dispatches the Action Script to the device via a Cloud Messaging service. This is a remote execution path. In some implementations, both execution paths are taken in parallel, and the target cast device108ignores the Action Script that arrives second. A unique_command_id is associated with every ExecuteCloudCastCommand.

In some implementations, a voice assistant server makes a remote procedure call (RPC) of executeCastCommand with a CloudCastCommand as follows:

Once the command is obtained, the cloud cast service server116maintains this CloudCastCommand in a consistent storage keyed by a unique_command_id and target_device_id. The CloudCastCommand will be replaced or removed when another command is issued for the same target cast device108or the electronic device190or when /executionReport endpoints receives either SUCCESS/ERROR status. The cloud cast service server116then cleans up Command that is stale (haven't finished in a certain time period), and generates the Cast Action Script. Once Cast Action Script is generated, the cloud cast service server116returns the script in the RPC response, and sends the Response using Google Cloud Messaging Service if (source_device_id !=target_device_id).

In some implementations, the cast device108reports (204) its status during and after executing Cast Action Script as follows:

message ReportExecutionStatusRequest {enum StatusCode {UNKNOWN = 0 ;SUCCESS = 1 ;ERROR = 2 ;QUEUED = 3 ;IN_PROGRESS = 4 ;}optional string device_id = 1 ;optional string unique_command_id = 2 ;optional StatusCode status_code = 3 ;// A single action in the action script thatis being reported in this// request.optional string last_action = 4 ;// Contains custom device status data based onstatus_code or error code.// e.g. For “CAST::EINJECTWRAPPED” error_code,a custom error string will be// set in this field.optional string custom_data = 5 ;// Error code is a string which is defined ingo/castactionscriptoptional string error_code = 6 ;}message ExecutionReportResponse {// TBD}
In some implementations, the cast device108updates its status with a status message whenever its status changes. In some implementations, the cast device108periodically sends a heartbeat to inform the cloud cast service server116of their presence, and the cloud cast service server116updates a last_action_time field to the time since epoch in seconds. The cloud cast service server116sends the execution status message to source device (e.g. the voice-activated electronic device190) optionally via a Cloud Messaging service. The voice-activated electronic device190will then call S3 for TTS and playback.

Voice Activated Media Play on a Media Output Device

Referring toFIG. 2A, after the cast device108and the voice-activated electronic device190are both commissioned and linked to a common user domain, the voice-activated electronic device190can be used as a voice user interface to enable eyes-free and hands-free control of media content streaming to the cast device108involving no remote control, client device104or other second screen device. For example, the user may give voice commands such as “Play Lady Gaga on Living Room speakers.” A Lady Gaga music track or video clip is streamed to a cast device108associated with the “Living Room speakers.” The client device104is not involved, nor is any cast device application or media play application loaded on the client device104.

The cloud cast service116is the proxy service that communicatively links the voice-activated electronic device to the cast device108and makes casting to the cast device108possible without involving any applications on the client device104. Specifically, a voice message is recorded by an electronic device190, and the voice message is configured to request media play on a media output device106. Optionally, the electronic device190partially processes the voice message locally. Optionally, the electronic device190transmits the voice message or the partially processed voice message to a voice assistance server112via the communication networks110for further processing. A cloud cast service server116determines that the voice message includes a first media play request, and that the first media play request includes a user voice command to play media content on a media output device106and a user voice designation of the media output device106. The user voice command further includes at least information of a first media play application (e.g., YouTube and Netflix) and the media content (e.g., Lady Gaga music) that needs to be played.

In accordance with the voice designation of the media output device, the cloud cast service server116in a device registry118a cast device associated in the user domain with the electronic device190and coupled to the media output device106. The cast device108is configured to execute one or more media play applications for controlling the media output device106to play media content received from one or more media content hosts114. Then, the cloud cast service server116sends to the cast device108a second media play request including the information of the first media play application and the media content that needs to be played. Upon receiving the information sent by the cloud cast service server116, the cast device108executes the first media play application and controls the media output device106to play the requested media content.

In some implementations, the user voice designation of the media output device106includes description of the destination media output device. The cloud cast service server116identifies in the registry the destination media output device among a plurality of media output devices according to the description of the destination media output device. In some implementations, the description of the destination media output device includes at least a brand (“Samsung TV”) or a location of the media output device106(“my Living Room TV”).

Voice Activated Closed Caption Display

U.S. Federal Accessibility Laws require that electronic communications and information technologies, such as websites, email, or web documents, be accessible, and that video content must be presented with an option of closed captions for users who are deaf or hard of hearing. Referring toFIG. 2A, after the cast device108and the voice-activated electronic device190are both commissioned and linked to a common user domain, the voice-activated electronic device190can be used as a voice user interface to enable eyes-free and hands-free control of closed caption display with media content that is being currently displayed on the media output device106. Specifically, a voice recognition system translates a voice command to turn captions on to a recognizable message sent to the cloud cast service. The cloud cast service interprets this message and send a command to a media play application (e.g., YouTube) installed on a cast device. The media play application receives that command and renders a caption track based on the message. As such, the user can then use voice to toggle captions on and off on the media output devices. This control of closed caption display does not involve any remote control, client device104or other second screen device, nor does it invoke any cast device application or media play application loaded on the client device104. Therefore, the voice-activated control of closed caption display meets the federal accessibility requirements particularly for users who are deaf or hard of hearing.

When a user intends to initiate display of closed captions for currently displayed media content, the user sends a voice message (e.g., “Turn on closed captioning.”) recorded by an electronic device190. Optionally, the electronic device190partially processes the voice message locally. Optionally, the electronic device190transmits the voice message or the partially processed voice message to a voice assistance server112for further processing. A cloud cast service server116determines that the voice message is a first closed caption initiation request, and that the first closed caption initiation request includes a user voice command to initiate closed captions and a user voice designation of a display device106playing the media content for which closed captions are to be activated. In some implementations, the electronic device190transmits the recorded voice message to the cloud cast service server116directly. The cloud cast service server116determines that the voice message is the first closed caption initiation request by forwarding the voice message to the voice assistance server112to parse the voice message and identify the user voice command and the user voice designation of the destination media device, and receiving from the voice assistance server112the user voice command and the user voice designation of the destination media device.

In accordance with the designation of the display device, the cloud cast service server116identifies in a device registry118a cast device108associated in the user domain with the electronic device190and coupled to the designated display device106. The cast device108is configured to execute a media play application for controlling the designated display device to display media content received from a media content host. In some implementations, both the electronic device190and the cast device108are associated with a user account of the user domain. The user account could be a Google user account.

Then, the cloud cast service server116sends a second closed caption initiation request to the cast device coupled to the designated display device. Upon receiving the information sent by the cloud cast service server116, the cast device108executes the media play application to control the designated display device106to turn on the closed captions of media content that is currently displayed on the designated display device106and display the closed captions according to the second closed caption initiation request. In some implementations, the closed captions are displayed on the designated display device according to a default closed caption display specification.

In some implementations, in accordance with the first closed caption initiation request, the cloud cast service server116determines a display specification of the closed captions. The second closed caption initiation request includes the display specification of the closed caption, and the cast device is configured to execute the media play application to control the display device to display the closed captions according to the display specification. Further, in some implementations, the display specification of the closed captions includes at least one of a font (e.g., Arial), a font size (e.g., 12), a font color (e.g., white) and a background color (e.g., Black). Further, in some implementations, sending the display specification of the closed captions via the cloud cast service server116allows users to adjust the format of their closed captions by translating custom voice commands (such as “larger captions’ or ‘change the background color to blue”) to update the closed caption initiation request sent to the cast device108. Additionally, such voice-activated control of closed caption display allows any electronic device with a microphone (e.g., a mobile phone) to initiate playback of media content and adjust closed captions on the media display device106.

In some implementations, the electronic device, the cast device and the designated display device are disposed in proximity to each other, but are located remotely from the cloud cast service system116, the voice assistance server112and the device registry118. In some implementations, two or more of the cloud cast service system116, the voice assistance server112and the device registry118are integrated in a single server. In some implementations, the cloud cast service system116, the voice assistance server112and the device registry118are distinct from a content host114that provides the media content to the cast device108for display on the designated display device106.

In some implementations, the user voice designation of the media output device106includes description of the destination media output device. The cloud cast service server116identifies in the registry the destination media output device among a plurality of media output devices according to the description of the destination media output device. In some implementations, the description of the destination media output device includes at least a brand (“Samsung TV”) or a location of the media output device106(“my Living Room TV”).

Voice Activated Media Transfer Among Media Output Devices

FIG. 3is another example operating environment in which cast devices108interact with a client device104, voice-activated electronic devices190or a server system of the smart media environment100in accordance with some implementations. The smart media environment100includes a first cast device108-1and a first output device106-1coupled to the first cast device. The smart media environment100also includes a second cast device108-2and a second output device106-2coupled to the first cast device. The cast devices108-1and108-2are optionally located in the same location (e.g., the living room) or two distinct locations (e.g., two rooms) in the smart media environment100. Each of the cast devices108-1and108-2is configured to obtain media content or Internet content from media hosts114for display on the output device106coupled to the respective cast device108-1or108-2. Both the first and second cast devices are communicatively coupled to the cloud cast service server116and the content hosts114.

The smart media environment100further includes one or more voice-activated electronic devices190that are communicatively coupled to the cloud cast service server116and the voice assistance server112. In some implementations, the voice-activated electronic devices190are disposed independently of the cast devices108and the output devices106. For example, as shown inFIG. 1, the electronic device190-4is disposed in a room where no cast device108or output device106is located. In some implementations, the first electronic device190-1is disposed in proximity to the first cast device108-1and the first output device106-1, e.g., the first electronic device190-1, the first cast device108-1and the first output device106-1are located in the same room. Optionally, the second electronic device190-2is disposed independently of or in proximity to the second cast device108-2and the second output device106-2.

When media content is being played on the first output device106-1, a user may send a voice command to any of the electronic devices190to request play of the media content to be transferred to the second output device106-2. The voice command includes a media play transfer request. In one situation, the user could issue the voice command to the electronic device190-1disposed in proximity to the first cast device108-1before the user moves to a destination location. Alternatively, in another situation, the user could issue the voice command to the electronic device190-2disposed in proximity to the second device108-2after the user reaches the destination location.

The voice command is transmitted to the cloud cast service server116. The cloud cast service server116sends a media display information request to the first cast device108-1to request instant media play information of the media content that is currently being played on the first output device106-1coupled to the first cast device108-1. The first cast device108-1then returns to the cloud cast service server116the requested instant play information including at least information of a first media play application (e.g., YouTube), the media content that is currently being played (e.g., “Lady Gaga—National Anthem—Super Bowl 2016”), and a temporal position related to playing of the media content. The second cast device108-2then receives a media display request including the instant play information from the cloud cast service server116, and in accordance with the instant play information, executes the first media play application that controls the second output device106-2to play the media content from the temporal location.

In a specific example, when a music playlist is played on the first output device106-1, the user says “Play on my living room speakers.” The first output device106-1stops playing the currently played song, and the stopped song resumes on the living room speakers. When the song is completed, the living room speakers continue to play the next song on the music playlist previously played on the first output device106-1. As such, when the user is moving around in the smart home environment100, the play of the media content would seamlessly follow the user while only involving limited user intervention (i.e., giving the voice command). Such seamless transfer of media content is accomplished according to one or more of the following operations:A voice assistant service (e.g., a voice assistance server112) recognizes that it is a user voice command to transfer media from one output device (source) to another output device (destination);The Assistant service passes a message including the user voice command to the cloud cast service server116;The cloud cast service server116then asks the source output device106-1to provide a blob of data that is needed for transferring the media stream;The content of the blob of data is partner dependent but it typically contains the current media content being played, the position with the current media content and the stream volume of the current media content;Optionally, the content of the blob of data include information of a container for the current media content (e.g., the playlist to which the media content belong), and a position of the current media content within the playlist;The cloud cast service server116tells the source device to stop playing the media content;The cloud cast service server116then loads the appropriate receiver application (e.g., media play application) on the destination (i.e. the same receiver application that is running on the source output device);The cloud cast service server116sends this blob of data to the destination cast device108-2along with an instruction to the receiver application to resume transfer of the media content; andThe receiver application interprets the data blob to resume the media content accordingly.

Specifically, on a server side, a method is implemented by the cloud cast service server116for moving play of media content display from a source media output device to a destination media output device. The cloud cast service server116receives a voice message recorded by an electronic device190-1or190-2, and determines that the voice message includes a media transfer request. As explained above, the electronic device could be disposed in proximity to the source cast device108-1located at a first location, in proximity to the destination cast device108-2located at a second location, or independently of both the source and destination cast devices. In some implementations, the electronic devices190, the source cast device108-1and the destination cast device108-2are associated a user account in a user domain managed by the cloud cast service server116. The user account could be a Google user account.

The media transfer request in the user voice command includes a user voice command to transfer media content that is being played to a destination media output device190-2and a user voice designation of the destination media output device190-2. In some implementations, after receiving the voice message recorded by an electronic device190-1or190-2, the cloud cast service server116forwards the voice message to a voice assistance server112that parses the voice message and identifies the user voice command and the voice designation of the destination media output device, and receives from the voice assistance server112the user voice command and the voice designation of the destination media output device106-2.

The cloud cast service server116obtains from a source cast device108-1instant media play information of the media content that is currently being played. The instant play information includes at least information of a first media play application, the media content that is currently being played, and a temporal position related to playing of the media content. The temporal position could be recorded when the user requests the move of the media content to the destination output device106-2. In some implementations, the cloud cast service server116identifies that the media content is currently being played at the source media output device106-1. The cloud cast service server116identifies in the device registry118the source cast device108-1associated in the user domain with the electronic device190and coupled to the source media output device106-1. Then, the cloud cast service server116sends a media information request to the source cast device108-1, and thereby receives the instant media play information from the source cast device108-1.

In accordance with the voice designation of the destination media output device, the cloud cast service server116identifies in a device registry118a destination cast device108-2associated in a user domain with the electronic device and coupled to the destination media output device106-2. The destination cast device108-2is configured to execute one or more media play applications for controlling the destination media output device106-2to play media content received from one or more media content hosts114. In some implementations, the user voice designation of the destination media output device106-2includes description of the destination media output device106-2(e.g., a brand and a location of the output device106-2). The cloud cast service server116identifies in the registry112the destination media output device106-2among a plurality of media output devices according to the description of the destination media output device106-2. Thus, the user does not have to provide an accurate device identification that matches the record in the device registry112, and the cloud cast service server116can determine the destination media output device106-2based on the description of the destination media output device106-2.

After obtaining the instant play information and identifying the destination cast device108-2, the cloud cast service server116sends to the destination cast device108-2a media play request including the instant media play information, thereby enabling the destination cast device108-2to execute the first media play application that controls the destination media output device106-2to play the media content from the temporal location. In some implementations, in accordance with the user voice command, the cloud cast service server116sends also sends a media stop request to the source cast device108-1, thereby enabling the source cast device108-1to execute the first media play application that controls the source cast device108-1coupled thereto to forgo the play of the media content on the source media output device106-1.

This media transfer method abstracts the data needed to transfer a media stream away from the service and places it directly with the streaming service provider so they can define the parameters (e.g., a Google cast protocol) needed to transfer the stream currently playing. This keeps the design of this invention very flexible to accommodate any type of media partner or media stream. Additionally it leverages cloud infrastructure (via the cloud cast service) to transfer messages and coordinate playback between the source and destination devices. This allows this transfer to occur without these cast devices having any knowledge of each other or being on the same wireless local area network.

Media transfer via the cloud cast service server116also enables scalability, flexibility and data security. The blob of data needed to transfer media is specifically loosely defined to accommodate the number of content provider partners and the number of stream types. Streams may be individual tracks, playlists, live streams, advertisements, autoplaying videos and many other content formats. Keeping the data blob flexible and partner dependent allows a single method to work for all types of media streams. Further, by having the cloud cast service independently connect with the source and destination cast devices, there is no requirement for these devices to be connected to each other, be on the same WLAN or have knowledge of each other. In addition, there is no disintermediation by the CCS. The data being sent between the receiver applications on the source and the destination is opaque to the cloud cast service server116. This allows confidential details about the transferred media session to stay with the partner who employs the cloud cast service.

Physical Features of a Voice-Activated Electronic Device

FIGS. 4A and 4Bare a front view400and a rear view420of a voice-activated electronic device190in accordance with some implementations. The electronic device190is designed as warm and inviting, and fits naturally in many areas of a home. The electronic device190includes one or more microphones402and an array of full color LEDs404. The full color LEDs404could be hidden under a top surface of the electronic device190and invisible to the user when they are not lit. In some implementations, the array of full color LEDs404is physically arranged in a ring. Further, the rear side of the electronic device190optionally includes a power supply connector408configured to couple to a power supply.

In some implementations, the electronic device190presents a clean look having no visible button, and the interaction with the electronic device190is based on voice and touch gestures. Alternatively, in some implementations, the electronic device190includes a limited number of physical buttons (e.g., a button406on its rear side), and the interaction with the electronic device190is further based on press on the button in addition to the voice and touch gestures.

One or more speakers are disposed in the electronic device190.FIG. 4Cis a perspective view440of a voice-activated electronic device190that shows speakers422contained in a base410of the electronic device190in an open configuration in accordance with some implementations.FIGS. 4D and 4Eare a side view450and an expanded view460of a voice-activated electronic device190that shows electronic components contained therein in accordance with some implementations, respectively. The electronic device190includes an array of full color LEDs404, one or more microphones402, a speaker422, Dual-band WiFi 802.11ac radio(s), a Bluetooth LE radio, an ambient light sensor, a USB port, a processor and memory storing at least one program for execution by the processor.

Further, in some implementations, the electronic device190further includes a touch sense array424configured to detect touch events on the top surface of the electronic device190. The touch sense array424is disposed and concealed under the top surface of the electronic device190. In some implementations, the touch sense array424arranged on a top surface of a circuit board including an array of via holes, and the full color LEDs are disposed within the via holes of the circuit board. When the circuit board is positioned immediately under the top surface of the electronic device190, both the full color LEDs404and the touch sense array424are disposed immediately under the top surface of the electronic device190as well.

FIGS. 4F(1)-4F(4) show four touch events detected on a touch sense array424of a voice-activated electronic device190in accordance with some implementations. Referring toFIGS. 4F(1) and4F(2), the touch sense array424detects a rotational swipe on a top surface of the voice activated electronic190. In response to detection of a clockwise swipe, the voice activated electronic190increases a volume of its audio outputs, and in response to detection of a counterclockwise swipe, the voice activated electronic190decreases the volume of its audio outputs. Referring toFIG. 4F(3), the touch sense array424detects a single tap touch on the top surface of the voice activated electronic190. In response to detection of a first tap touch, the voice activated electronic190implements a first media control operation (e.g., plays specific media content), and in response to detection of a second tap touch, the voice activated electronic190implements a second media control operation (e.g., pauses the specific media content that is currently being played). Referring toFIG. 4F(4), the touch sense array424detects a double tap touch (e.g., two consecutive touches) on the top surface of the voice activated electronic190. The two consecutive touches are separated by a duration of time less than a predetermined length. However, when they are separated by a duration of time greater than the predetermined length, the two consecutive touches are regarded as two single tap touches. In response to detection of the double tap touch, the voice activated electronic190initiates a hot word detection state in which the electronic device190listens to and recognizes one or more hot words (e.g., predefined key words). Until the electronic device190recognizes the hot words, the electronic device190does not send any audio inputs to the voice assistance server112or the cloud cast service server118.

In some implementations, the array of full color LEDs404is configured to display a set of visual patterns in accordance with an LED design language, indicating detection of a clockwise swipe, a counter-clockwise swipe, a single tap or a double tap on the top surface of the voice activated electronic190. For example, the array of full color LEDs404may light up sequentially to track the clockwise or counter-clockwise swipe as shown inFIGS. 4F(1) and4F(2), respectively. More details on visual patterns associated with voice processing states of the electronic device190are explained below with reference toFIGS. 4G and 4H(1)-4H(8).

FIG. 4F(5) shows an example user touch or press on a button406on a rear side of the voice-activated electronic device190in accordance with some implementations. In response to a first user touch or press on the button406, microphones of the electronic device190are muted, and response to a second user touch or press on the button406, the microphones of the electronic device190are activated.

LED Design Language for Visual Affordance of Voice User Interface

In some implementations, given simplicity and low cost of the electronic device190, the electronic device190includes an array of full color light emitting diodes (LEDs) rather than a full display screen. A LED design language is adopted to configure illumination of the array of full color LEDs and enable different visual patterns indicating different voice processing state of the electronic device190. The LED Design Language consists of a grammar of colors, patterns, and specific motion applied to a fixed set of full color LEDs. The elements in the language are combined to visually indicate specific device states during the use of the electronic device190. In some implementations, illumination of the full color LEDs aims to clearly delineate the passive listening and active listening states of the electronic device190among other important states. Placement of the full color LEDs complies with physical constraints of the electronic device190, and the array of full color LEDs could be used in a speaker that is made by a third party original equipment manufacturer (OEM) based on specific technology (e.g., Google Assistant).

When the array of full color LEDs is used in a speaker that is made by a third party OEM based on specific technology, the full color LEDs and the LED design language are configured to fit a corresponding physical user interface of the OEM speaker. In this situation, device states of the OEM speaker remain the same, while specific visual patterns representing the device states could be varied (for example, the colors of the full color LEDs could be different but are displayed with similar animation effects).

In a voice-activated electronic device190, passive listening occurs when the electronic device190processes audio inputs collected from its surrounding environment but does not store the audio inputs or transmit the audio inputs to any remote server. In contrast, active listening occurs when the electronic device190stores the audio inputs collected from its surrounding environment and/or shares the audio inputs with a remote server. In accordance with some implementations of this application, the electronic device190only passively listens to the audio inputs in its surrounding environment without breaching privacy of users of the electronic device190.

FIG. 4Gis a top view of a voice-activated electronic device190in accordance with some implementations, andFIG. 4Hshows six example visual patterns displayed by an array of full color LEDs for indicating voice processing states in accordance with some implementations. In some implementations, the electronic device190does not include any display screen, and the full color LEDs404provide a simple and low cost visual user interface compared with the a full display screen. The full color LEDs could be hidden under a top surface of the electronic device and invisible to the user when they are not lit. Referring toFIGS. 4G and 4H, in some implementations, the array of full color LEDs404are physically arranged in a ring. For example, as shown inFIG. 4H(6), the array of full color LEDs404may light up sequentially to track the clockwise or counter-clockwise swipe as shown inFIGS. 4F(1) and4F(2), respectively

A method is implemented at the electronic device190for visually indicating a voice processing state. The electronic device190collects via the one or more microphones402audio inputs from an environment in proximity to the electronic device, and processes the audio inputs. The processing includes one or more of identifying and responding to voice inputs from a user in the environment. The electronic device190determines a state of the processing from among a plurality of predefined voice processing states. For each of the full color LEDs404, the electronic device190identifies a respective predetermined LED illumination specification associated with the determined voice processing state. The illumination specification includes one or more of an LED illumination duration, pulse rate, duty cycle, color sequence and brightness. In some implementations, the electronic device190determines that the voice processing state is associated with one of a plurality of users, and identifies the predetermined LED illumination specifications of the full color LEDs404by customizing at least one of the predetermined LED illumination specifications (e.g., the color sequence) of the full color LEDs404according to an identity of the one of the plurality of users.

Further, in some implementations, in accordance with the determined voice processing state, the colors of the full color LEDs include a predetermined set of colors. For example, referring toFIGS. 4H(2),4H(4) and4H(7)-(10), the predetermined set of colors include Google brand colors including blue, green, yellow and red, and the array of full color LEDs is divided into four quadrants each associated with one of the Google brand colors.

In accordance with the identified LED illumination specifications of the full color LEDs, the electronic device190synchronizes illumination of the array of full color LEDs to provide a visual pattern indicating the determined voice processing state. In some implementations, the visual pattern indicating the voice processing state includes a plurality of discrete LED illumination pixels. In some implementations, the visual pattern includes a start segment, a loop segment and a termination segment. The loop segment lasts for a length of time associated with the LED illumination durations of the full color LEDs and configured to match a length of the voice processing state.

In some implementations, the electronic device190has more than twenty different device states (including the plurality of predefined voice processing states) that are represented by the LED Design Language. Optionally, the plurality of predefined voice processing states includes one or more of a hot word detection state, a listening state, a thinking state and a responding state.

1. Hot Word Detection State and Listening State

In some implementations, the electronic device190listens to and recognizes one or more hot words (e.g., predefined key words) in the hot word detection state. Until the electronic device190recognizes the hot words, the electronic device190does not send any audio inputs to the voice assistance server112or the cloud cast service server118. Upon the detection of the hot words, the electronic device190starts to operate in the listening state when the microphones records audio inputs that are further transmitted to the cloud for further processing. In the listening mode, the audio inputs starting from a predetermined temporal position (e.g., two seconds before detection of the hot word) is transmitted to the voice assistance server112or the cloud cast service server118, thereby facilitating seamless queries for a more natural conversation-like flow.

Accordingly, in some implementations, in accordance with a determination that the determined voice processing state is a hot word detection state that occurs when one or more predefined hot words are detected, the array of full color LEDs is divided into a plurality of diode groups that are alternately arranged and configured to be lit sequentially, and diodes in each of the plurality of diode groups are lit with different colors. Further, in some implementations, in accordance with a determination that the determined voice processing state is a listening state that occurs when the electronic device is actively receiving the voice inputs from the environment and providing received voice inputs to a remote server, all full color LEDs are lit up with a single color, and each full color LED illuminates with different and varying brightness.

As shown inFIGS. 4H(1), (3) and (5), the visual pattern could be configured to be consistent with human reactions (e.g., breathing, flickering, blinking, and swiping) associated with the voice processing state. For example, one of the most impactful places to use the Google brand colors, the attentive wake-up spin followed by the gentle breathing animation signals patient, and eager, yet respectful listening. The colors themselves conjure a sense of brand and embodiment of the Google voice assistant. These elements contrast with the dead front of the device to show very clear not recording and recording states.

2. Thinking Mode or Working Mode

Specifically, in some implementations, in accordance with a determination that the voice processing state is a thinking state that occurs when the electronic device is processing the voice inputs received from the user, an increasing number of RGB diodes are lit up during a first illumination cycle of the LED illumination duration, and a decreasing number of RGB diodes are lit up during a second illumination cycle following the first illumination cycle. Such a visual pattern is consistent with a human reaction that a person is thinking. Optionally, the microphones402are turned off in the thinking mode.

Referring toFIGS. 4H(3),4H(5) and4H(6), motion most similar to progress bars and other types of digital waiting signals are used in the visual pattern to indicate the thinking mode. In some implementations, white is used with the chasing animation. Brand colors are intentionally not used here to provide better distinction contrast and highlighting with respect to the other voice processing states.

3. Responding Mode or Speaking Mode

Alternatively, in some implementations, in accordance with a determination that the voice processing state is a responding state that occurs when the electronic device broadcasts a voice message in response to the voice inputs received from the user, a subset of the full color LEDs are lit up with a single color of distinct and varying brightness, and variation of the brightness of each of the subset of the fully color LEDs is consistent with a voice speed associated with the voice inputs from the user. In some implementations, the speaking mode is where the voice assistant shows its chops. A set of colors (e.g., the Google brand colors) are used in the visual pattern, such that the full color LEDs visually signifies closure to the voice query, i.e., that the question has been answered.

Individual Devices Involved in the Smart Media Environment

FIG. 5is a block diagram illustrating an example electronic device190that is applied as a voice interface to collect user voice commands in a smart media environment100in accordance with some implementations. The electronic device190, typically, includes one or more processing units (CPUs)502, one or more network interfaces504, memory506, and one or more communication buses508for interconnecting these components (sometimes called a chipset). The electronic device190includes one or more input devices510that facilitate user input, such as the button406, the touch sense array and the one or more microphones402shown inFIGS. 4A-4H. The electronic device190also includes one or more output devices512, including one or more speakers422and the array of full color LEDs404.

Memory506includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid state memory devices; and, optionally, includes non-volatile memory, such as one or more magnetic disk storage devices, one or more optical disk storage devices, one or more flash memory devices, or one or more other non-volatile solid state storage devices. Memory506, optionally, includes one or more storage devices remotely located from one or more processing units502. Memory506, or alternatively the non-volatile memory within memory506, includes a non-transitory computer readable storage medium. In some implementations, memory506, or the non-transitory computer readable storage medium of memory506, stores the following programs, modules, and data structures, or a subset or superset thereof:Operating system516including procedures for handling various basic system services and for performing hardware dependent tasks;Network communication module518for connecting the electronic device190to other devices (e.g., the server system140, the cast device108, the client device104, the smart home devices120and the other electronic device(s)190) via one or more network interfaces504(wired or wireless) and one or more networks110, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;Input/output control module for receiving inputs via one or more input devices510enabling presentation of information at the electronic device190via one or more output devices512, including:Voice processing module522for processing audio inputs or voice messages collected in an environment surrounding the electronic device190, or preparing the collected audio inputs or voice messages for processing at a voice assistance server112or a cloud cast service server118;LED control module524for generating visual patterns on the full color LEDs404according to device states of the electronic device190; andTouch sense module526for sensing touch events on a top surface of the electronic device190; andVoice activated device data530storing at least data associated with the electronic device190, including:Voice device settings532for storing information associated with the electronic device190itself, including common device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.), information of a user account in a user domain, and display specifications536associated with one or more visual patterns displayed by the full color LEDs; andVoice control data534for storing audio signals, voice messages, response messages and other data related to voice interface functions of the electronic device190.

Specifically, the display specifications536associated with one or more visual patterns displayed by the full color LEDs include predetermined LED illumination specifications associated with each of the one or more visual patterns. For each of the full color LEDs, the illumination specifications include one or more of an LED illumination duration, pulse rate, duty cycle, color sequence and brightness associated with the respective visual pattern. Each visual pattern corresponds to at least one voice processing state.

FIG. 6is a block diagram illustrating an example cast device108that is applied for automatic control of display of media content in a smart media environment100in accordance with some implementations. The cast device108, typically, includes one or more processing units (CPUs)602, one or more network interfaces604, memory606, and one or more communication buses608for interconnecting these components (sometimes called a chipset).

Memory606includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid state memory devices; and, optionally, includes non-volatile memory, such as one or more magnetic disk storage devices, one or more optical disk storage devices, one or more flash memory devices, or one or more other non-volatile solid state storage devices. Memory606, optionally, includes one or more storage devices remotely located from one or more processing units602. Memory606, or alternatively the non-volatile memory within memory606, includes a non-transitory computer readable storage medium. In some implementations, memory606, or the non-transitory computer readable storage medium of memory606, stores the following programs, modules, and data structures, or a subset or superset thereof:Operating system616including procedures for handling various basic system services and for performing hardware dependent tasks;Network communication module618for connecting the cast device108to other computers or systems (e.g., the server system140, the smart home devices120and the client device104) via one or more network interfaces604(wired or wireless) and one or more networks110, such as the Internet, other wide area networks, local area networks, metropolitan area networks, cable television systems, satellite television systems, IPTV systems, and so on;Content decoding module620for decoding content signals received from one or more content sources114and outputting the content in the decoded signals to an output display device106coupled to the cast device108;Automatic media display module624including one or more media play applications624for controlling media display, e.g., causing media output to the output device106according to instant media play information received from a cloud cast service server116; andcast device data626storing at least data associated with automatic control of media display (e.g., in an automatic media output mode and a follow-up mode), including:Cast device settings628for storing information associated with user accounts of a cast device application, including one or more of account access information, information for device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.), and information for automatic media display control; andMedia player application settings630for storing information associated with user accounts of one or more media player applications, including one or more of account access information, user preferences of media content types, review history data, and information for automatic media display control.

FIG. 7is a block diagram illustrating an example server in the server system140of a smart media environment100in accordance with some implementations. An example server is one of a cloud cast service sever116. The server140, typically, includes one or more processing units (CPUs)702, one or more network interfaces704, memory706, and one or more communication buses708for interconnecting these components (sometimes called a chipset). The server140could include one or more input devices710that facilitate user input, such as a keyboard, a mouse, a voice-command input unit or microphone, a touch screen display, a touch-sensitive input pad, a gesture capturing camera, or other input buttons or controls. Furthermore, the server140could use a microphone and voice recognition or a camera and gesture recognition to supplement or replace the keyboard. In some implementations, the server140includes one or more cameras, scanners, or photo sensor units for capturing images, for example, of graphic series codes printed on the electronic devices. The server140could also include one or more output devices712that enable presentation of user interfaces and display content, including one or more speakers and/or one or more visual displays.

Memory706includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid state memory devices; and, optionally, includes non-volatile memory, such as one or more magnetic disk storage devices, one or more optical disk storage devices, one or more flash memory devices, or one or more other non-volatile solid state storage devices. Memory706, optionally, includes one or more storage devices remotely located from one or more processing units702. Memory706, or alternatively the non-volatile memory within memory706, includes a non-transitory computer readable storage medium. In some implementations, memory706, or the non-transitory computer readable storage medium of memory706, stores the following programs, modules, and data structures, or a subset or superset thereof:Operating system716including procedures for handling various basic system services and for performing hardware dependent tasks;Network communication module718for connecting the server system140to other devices (e.g., various servers in the server system140, the client device104, the cast device108, and the smart home devices120) via one or more network interfaces704(wired or wireless) and one or more networks110, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;User interface module720for enabling presentation of information (e.g., a graphical user interface for presenting application(s)826-830, widgets, websites and web pages thereof, and/or games, audio and/or video content, text, etc.) at the client device104;Command execution module721for execution on the server side (e.g., games, social network applications, smart home applications, and/or other web or non-web based applications for controlling the client device104, the cast devices108, the electronic device190and the smart home devices120and reviewing data captured by such devices), including one or more of:a cast device application722that is executed to provide server-side functionalities for device provisioning, device control, and user account management associated with cast device(s)108;one or more media player applications724that is executed to provide server-side functionalities for media display and user account management associated with corresponding media sources;one or more smart home device applications726that is executed to provide server-side functionalities for device provisioning, device control, data processing and data review of corresponding smart home devices120; anda voice assistance application728that is executed to arrange voice processing of a voice message received from the electronic device190or directly process the voice message to extract a user voice command and a designation of a cast device108or another electronic device190; andServer system data730storing at least data associated with automatic control of media display (e.g., in an automatic media output mode and a follow-up mode), including one or more of:Client device settings732for storing information associated with the client device104, including common device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.), and information for automatic media display control;Cast device settings734for storing information associated with user accounts of the cast device application722, including one or more of account access information, information for device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.), and information for automatic media display control;Media player application settings736for storing information associated with user accounts of one or more media player applications724, including one or more of account access information, user preferences of media content types, review history data, and information for automatic media display control;Smart home device settings738for storing information associated with user accounts of the smart home applications726, including one or more of account access information, information for one or more smart home devices120(e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.); andVoice assistance data740for storing information associated with user accounts of the voice assistance application728, including one or more of account access information, information for one or more electronic device190(e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.).

When the server140includes a cloud cast service server116, memory706, or the non-transitory computer readable storage medium of memory706, stores the following programs, modules, and data structures, or a subset or superset thereof:Device registration module750for managing the device registry118coupled to the cloud cast service server116;Cloud cast application760for relaying a user voice command identified in a voice message to one or more of the cast device(s)180, the electronic device(s)190and the smart home device(s)120that are coupled in a cloud cast user domain; andStatus reporting module770for maintaining the states of the cast device(s)180, the electronic device(s)190and the smart home device(s)120that are coupled in a cloud cast user domain.

FIG. 8is a block diagram illustrating an example client device104that is applied for automatic control of media display in a smart media environment100in accordance with some implementations. Examples of the client device include, but are not limited to, a mobile phone, a tablet computer and a wearable personal device. The client device104, typically, includes one or more processing units (CPUs)802, one or more network interfaces804, memory806, and one or more communication buses808for interconnecting these components (sometimes called a chipset). The client device104includes one or more input devices810that facilitate user input, such as a keyboard, a mouse, a voice-command input unit or microphone, a touch screen display, a touch-sensitive input pad, a gesture capturing camera, or other input buttons or controls. Furthermore, some the client devices104use a microphone and voice recognition or a camera and gesture recognition to supplement or replace the keyboard. In some implementations, the client device104includes one or more cameras, scanners, or photo sensor units for capturing images, for example, of graphic series codes printed on the electronic devices. The client device104also includes one or more output devices812that enable presentation of user interfaces and display content, including one or more speakers and/or one or more visual displays. Optionally, the client device104includes a location detection device814, such as a GPS (global positioning satellite) or other geo-location receiver, for determining the location of the client device104.

Memory806includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid state memory devices; and, optionally, includes non-volatile memory, such as one or more magnetic disk storage devices, one or more optical disk storage devices, one or more flash memory devices, or one or more other non-volatile solid state storage devices. Memory806, optionally, includes one or more storage devices remotely located from one or more processing units802. Memory806, or alternatively the non-volatile memory within memory806, includes a non-transitory computer readable storage medium. In some implementations, memory806, or the non-transitory computer readable storage medium of memory806, stores the following programs, modules, and data structures, or a subset or superset thereof:Operating system816including procedures for handling various basic system services and for performing hardware dependent tasks;Network communication module818for connecting the client device104to other devices (e.g., the server system140, the cast device108, the electronic device190, the smart home devices120and the other client devices104) via one or more network interfaces804(wired or wireless) and one or more networks110, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;User interface module820for enabling presentation of information (e.g., a graphical user interface for presenting application(s)826-830, widgets, websites and web pages thereof, and/or games, audio and/or video content, text, etc.) at the client device104via one or more output devices812(e.g., displays, speakers, etc.);Input processing module822for detecting one or more user inputs or interactions from one of the one or more input devices810and interpreting the detected input or interaction;Web browser module824for navigating, requesting (e.g., via HTTP), and displaying websites and web pages thereof, including a web interface for logging into a user account associated with a cast device108, an electronic device190, a media application or a smart home device120, controlling the cast device108, the electronic device190or the smart home device120if associated with the user account, and editing and reviewing settings and data that are associated with the user account;One or more applications for execution by the client device (e.g., games, social network applications, smart home applications, and/or other web or non-web based applications for controlling the cast devices108, the electronic device190and/or the smart home devices120and reviewing data captured by such devices), including one or more of:a cast device application826that is executed to provide client-side functionalities for device provisioning, device control, and user account management associated with cast device(s)108;a voice activated device application827that is executed to provide client-side functionalities for device provisioning, device control, and user account management associated with electronic device190;one or more media player applications828that is executed to provide client-side functionalities for media display and user account management associated with corresponding media sources; andone or more smart home device applications830that is executed to provide client-side functionalities for device provisioning, device control, data processing and data review of corresponding smart home devices120; andclient data832storing at least data associated with automatic control of media display (e.g., in an automatic media output mode or a follow-up mode), including:Client device settings834for storing information associated with the client device104itself, including common device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.), and information for automatic media display control;Cast device settings836for storing information associated with user accounts of the cast device application826, including one or more of account access information, information for device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.), and information for automatic media display control;Media player application settings838for storing information associated with user accounts of one or more media player applications828, including one or more of account access information, user preferences of media content types, review history data, and information for automatic media display control;Smart home device settings840for storing information associated with user accounts of the smart home applications830, including one or more of account access information, information for smart home device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.); andVoice activated device settings842for storing information associated with user accounts of the voice activated device application827, including one or more of account access information, information for electronic device settings (e.g., service tier, device model, storage capacity, processing capabilities, communication capabilities, etc.).

In some implementations, each of the cast device application826, the voice activated device application827, the media player applications828and the smart home device applications830causes display of a respective user interface on the output device812of the client device104. In some implementations, user accounts of a user associated with the cast device application826, the voice activated device application827, the media player applications828and the smart home device applications830are linked to a single cloud cast service account. The user may use the cloud cast service account information to log onto all of the cast device application826, the voice activated device application827, the media player applications828and the smart home device applications830. In some implementations, the memory806, or the non-transitory computer readable storage medium of memory806, stores a cloud cast application844that is executed to provide client-side functionalities for function control and user account management associated with the cast device108, the smart home device120and the electronic device190that are linked to the same cloud cast service account (e.g., a Google user account).

FIG. 9is a block diagram illustrating an example smart home device120in a smart media environment100in accordance with some implementations. The smart home device120, typically, includes one or more processing units (CPUs)902, one or more network interfaces904, memory906, and one or more communication buses908for interconnecting these components (sometimes called a chipset). Memory906includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid state memory devices; and, optionally, includes non-volatile memory, such as one or more magnetic disk storage devices, one or more optical disk storage devices, one or more flash memory devices, or one or more other non-volatile solid state storage devices. Memory906, optionally, includes one or more storage devices remotely located from one or more processing units902. Memory906, or alternatively the non-volatile memory within memory906, includes a non-transitory computer readable storage medium. In some implementations, memory906, or the non-transitory computer readable storage medium of memory906, stores the following programs, modules, and data structures, or a subset or superset thereof:Operating system916including procedures for handling various basic system services and for performing hardware dependent tasks for the smart home device120;Network communication module918for connecting the smart home device120to other computers or systems (e.g., the server system140, the client device104, the cast device108, the electronic device190and other smart home devices120) via one or more network interfaces904(wired or wireless) and one or more networks110, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;Smart home device module922for enabling the smart home device120to implement its designated functions (e.g., for capturing and generating multimedia data streams and sending the multimedia data stream to the client device104or the server system140as a continuous feed or in short bursts, when the smart home device120includes a video camera132);Smart home device data924storing at least data associated with device settings926.

In some implementations, the smart home device120is controlled by voice. Specifically, the cloud cast service server116receives a voice message recorded by an electronic device190, and determines that the voice message includes a smart device control request (e.g., zoom in or out of a video camera, turning off a false alarm and an inquiry of the temperature measured from a smart thermostat). The smart device control request includes a user voice command to control a smart home device120and a user voice designation of the smart home device. In accordance with the voice designation of the smart home device, the cloud cast service server116identifies in a device registry118a smart home device120associated in a user domain with the electronic device. The cloud cast service server116then sends to the smart home device1290another device control request, thereby enabling the smart home device module922of the smart home device120to control the smart home device120according to the user voice command.

Voice Based LED Display and Media Control Methods in the Smart Media Environment

FIG. 10is a flow diagram illustrating a method1000of visually indicating a voice processing state in accordance with some implementations. The method1000is implemented at an electronic device190with an array of full color LEDs, one or more microphones, a speaker, a processor and memory storing at least one program for execution by the processor. The electronic device190collects (1002) via the one or more microphones402audio inputs from an environment in proximity to the electronic device190, and processes (1004) the audio inputs. The processing is implemented at voice processing module522, and includes one or more of identifying and responding to voice inputs from a user in the environment. The electronic device190then determines (1006) a state of the processing from among a plurality of predefined voice processing states. For each of the full color LEDs, the electronic device190identifies (1008) a respective predetermined LED illumination specification associated with the determined voice processing state, and the respective illumination specification includes (1010) one or more of an LED illumination duration, pulse rate, duty cycle, color sequence and brightness. In accordance with the identified LED illumination specifications of the full color LEDs, the electronic device190(specifically, LED control module524) synchronizes illumination of the array of full color LEDs to provide a visual pattern indicating the determined voice processing state. More details on the method1000have been explained above with reference toFIGS. 4A-4H and 5.

Method1000is, optionally, governed by instructions that are stored in a non-transitory computer readable storage medium and that are executed by one or more processors of a voice-activated electronic device190. Each of the operations shown inFIG. 10may correspond to instructions stored in the computer memory or computer readable storage medium (e.g., memory506of the electronic device190inFIG. 5). The computer readable storage medium may include a magnetic or optical disk storage device, solid state storage devices such as Flash memory, or other non-volatile memory device or devices. The computer readable instructions stored on the computer readable storage medium may include one or more of: source code, assembly language code, object code, or other instruction format that is interpreted by one or more processors. Some operations in the method1000may be combined and/or the order of some operations may be changed.

FIG. 11is a flow diagram illustrating a method1100of initiating display of closed captions for media content by voice in accordance with some implementations. The method1100is implemented at a server system (e.g., a cloud cast service server116) including a processor and memory storing at least one program (e.g., the cloud cast application760) for execution by the processor. The server system receives (1102) a voice message recorded by an electronic device190, and determines (1104) that the voice message is a first closed caption initiation request. The first closed caption initiation request includes (1106) a user voice command to initiate closed captions and a user voice designation of a display device106playing the media content for which closed captions are to be activated. In accordance with the designation of the display device, the server system identifies (1108) in a device registry118a cast device108associated in a user domain with the electronic device190and coupled to the designated display device106. The cast device108is configured (1110) to execute a media play application for controlling the designated display device to display media content received from a media content host. The server system (specifically, the cloud cast application760) then sends (1112) a second closed caption initiation request to the cast device coupled to the designated display device, thereby enabling the cast device to execute the media play application that controls the designated display device to turn on the closed caption of media content that is currently displayed on the designated display device and display the closed caption according to the second closed caption initiation request. More details on the method1100have been explained above with reference toFIGS. 2A, 2B and 5-7.

FIG. 12is a flow diagram illustrating a method1200of initiating by voice play of media content on a media output device in accordance with some implementations. The method1200is implemented at a server system (e.g., a cloud cast service server116) including a processor and memory storing at least one program for execution by the processor. The server system receives (1202) a voice message recorded by an electronic device, and determines (1204) that the voice message includes a first media play request. The first media play request includes (1206) a user voice command to play media content on a media output device and a user voice designation of the media output device106, and the user voice command includes at least information of a first media play application and the media content that needs to be played. In accordance with the voice designation of the media output device, the server system identifies (1208) in a device registry118a cast device108associated in a user domain with the electronic device190and coupled to the media output device106. The cast device108is configured to (1210) execute one or more media play applications for controlling the media output device106to play media content received from one or more media content hosts. The server system (specifically, the cloud cast application760) then sends (1212) to the cast device108a second media play request including the information of the first media play application and the media content that needs to be played, thereby enabling the cast device108to execute the first media play application that controls the media output device106to play the media content. More details on the method1200have been explained above with reference toFIGS. 2A, 2B and 5-7.

FIG. 13is a flow diagram illustrating a method1300of moving play of media content from a source media output device to a destination media output device in accordance with some implementations. The method1200is implemented at a server system (e.g., a cloud cast service server116) including a processor and memory storing at least one program for execution by the processor.

The server system receives (1302) a voice message recorded by an electronic device190, and determines (1304) that the voice message includes a media transfer request. The media transfer request includes (1306) a user voice command to transfer media content that is being played to a destination media output device and a user voice designation of the destination media output device. The server system obtains (1308) from a source cast device (e.g., the cast device108-1ofFIG. 3) instant media play information of the media content that is currently being played. The instant play information includes (1310) at least information of a first media play application, the media content that is currently being played, and a temporal position related to playing of the media content.

In accordance with the voice designation of the destination media output device, the server system identifies (1312) in a device registry118a destination cast device (e.g., the cast device108-2ofFIG. 3) associated in a user domain with the electronic device190and coupled to the destination media output device (e.g., the output device106-2ofFIG. 3). The destination cast device is configured to (1314) execute one or more media play applications for controlling the destination media output device to play media content received from one or more media content hosts. The server system (specifically, the cloud cast application760) then sends (1316) to the destination cast device a media play request including the instant media play information, thereby enabling the destination cast device to execute the first media play application that controls the destination media output device to play the media content from the temporal location. More details on the method1300have been explained above with reference toFIGS. 3 and 5-7.

Methods1100,1200and1300are, optionally, governed by instructions that are stored in a non-transitory computer readable storage medium and that are executed by one or more processors of a cloud cast service server116. Each of the operations shown inFIGS. 12-14may correspond to instructions stored in the computer memory or computer readable storage medium (e.g., memory706of the server system inFIG. 7). The computer readable storage medium may include a magnetic or optical disk storage device, solid state storage devices such as Flash memory, or other non-volatile memory device or devices. The computer readable instructions stored on the computer readable storage medium may include one or more of: source code, assembly language code, object code, or other instruction format that is interpreted by one or more processors. Some operations in each of the methods1100,1200and1300may be combined and/or the order of some operations may be changed.

It is to be appreciated that “smart media environments” may refer to smart environments for homes such as a single-family house, but the scope of the present teachings is not so limited. The present teachings are also applicable, without limitation, to duplexes, townhomes, multi-unit apartment buildings, hotels, retail stores, office buildings, industrial buildings, and more generally any living space or work space.

It is also to be appreciated that while the terms user, customer, installer, homeowner, occupant, guest, tenant, landlord, repair person, and the like may be used to refer to the person or persons acting in the context of some particularly situations described herein, these references do not limit the scope of the present teachings with respect to the person or persons who are performing such actions. Thus, for example, the terms user, customer, purchaser, installer, subscriber, and homeowner may often refer to the same person in the case of a single-family residential dwelling, because the head of the household is often the person who makes the purchasing decision, buys the unit, and installs and configures the unit, and is also one of the users of the unit. However, in other scenarios, such as a landlord-tenant environment, the customer may be the landlord with respect to purchasing the unit, the installer may be a local apartment supervisor, a first user may be the tenant, and a second user may again be the landlord with respect to remote control functionality. Importantly, while the identity of the person performing the action may be germane to a particular advantage provided by one or more of the implementations, such identity should not be construed in the descriptions that follow as necessarily limiting the scope of the present teachings to those particular individuals having those particular identities.

The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the scope of the claims to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen in order to best explain the principles underlying the claims and their practical applications, to thereby enable others skilled in the art to best use the implementations with various modifications as are suited to the particular uses contemplated.

It is noted that more details on the above-mentioned implementations and alternative embodiments are also disclosed in the Appendix filed with this application. In the Appendix, OOBE refers to out-of-box experience.