Apparatus, system and method for directing voice input in a controlling device
4 claims: 1 independent, 3 dependent
- 1A controlling device for providing formatted voice data to two or more smart appliances, comprising:an electronic storage medium having processor-readable code embodied therein and storing a plurality of device profiles, wherein each device profile comprises a formatting protocol for formatting voice commands in conformity with a protocol used by at least one of the two or more smart appliances;a first communication interface for transmitting the formatted voice commands to at least one of the two or more smart appliances;a microphone for receiving voice input;and a processor, coupled to the electronic storage medium, the communication interface, and the microphone for executing the processor-readable code that causes the controlling device to perform steps comprising: receiving, by the processor, via the microphone, a first voice command;determining, by the processor, a first smart appliance to which the first voice command is intended;identifying, by the processor, a first formatting protocol in the electronic storage medium associated with the first smart appliance;formatting, by the processor, the voice command into a formatted voice command in conformance with the first formatting protocol;and transmitting, by the processor, via the communication interface the formatted voice command to the first smart appliance.
96 paragraphs in 4 sections, as filed
BACKGROUND
0001Dedicated remote controls capable of controlling the operation of consumer electronic devices for receiving voice input, via use of a keypress to activate a microphone, are well known in the art and are generally each capable of controlling the operation of one type of consumer electronic device. Such a dedicated remote control is intended to primarily control the functional operations of a consumer electronic device associated with a consumer brand name. For example, a dedicated Apple brand Siri remote control for an Apple TV brand video streamer can use voice input to control the operations for volume, play, pause, rewind, stop, etc. via use of proprietary communication protocols. These dedicated remotes typically only work with the associated product that they are bundled with and lack the capability to work with other voice controlled consumer electronic devices. Therefore, it would be desirable to provide a controlling device that allows a user to use voice commands to control a plurality of different types of voice controlled consumer electronic devices from a plurality of consumer brand names.
0002Publication <patcit id="pcit0001" dnum="EP1209661A"><text>EP 1 209 661</text></patcit> provides already one solution for a universal remote control device supporting voice commands.
SUMMARY
0003Described hereinafter are examples of an apparatus, a system and a method that provides for the use of voice commands to control the operation of a plurality of different voice controlled consumer electronic devices and, more particularly, to a controlling device for use in routing a signal, based on voice input from the user, to two or more voice controlled consumer electronic devices, (hereafter referred to as "smart appliances"), from different consumer brand names.
0004In one example, the controlling device is used to provide formatted voice data to two or more smart appliances. The functional components of the controlling device include: an electronic storage medium having processor-readable code embodied therein for storing a plurality of device profiles, where each device profile comprises a formatting protocol for formatting voice commands received from a user in conformity with a protocol used by a particular smart appliance; a first communication interface for transmitting the formatted voice commands to at least one of the two or more smart appliances; a microphone for receiving voice input from a user; and a processor coupled to the electronic storage medium, the communication interface, and the microphone for executing the processor-readable code.
0005In operation, the processor-readable code causes the processor of the controlling device to: receive a first voice command via the microphone; the processor is used to determine a first smart appliance to which the first voice command is intended; identify a first formatting protocol in the electronic storage medium which is associated with the first smart appliance; format the voice command into a formatted voice command in conformance with the first formatting protocol; and transmit via the communication interface the formatted voice command to the first smart appliance.
0006A method is also described for providing formatted voice data to two or more smart appliances which is performed by a controlling device working in cooperation with a smart appliance where the processor of the controlling device receives, via a microphone, a first voice command from a user. The processor then determines a first smart appliance for which the voice commands is intended and identifies a first formatting protocol which is stored in an electronic storage medium and which is associated with the first smart appliance. The processor then formats the received voice command in conformance with a first formatting protocol and sends the formatted voice command to the first smart appliance via use of a communication interface. Similarly, the processor may identify a second smart appliance and send the formatted voice command to that smart appliance where in some embodiments the protocol is a proprietary protocol, a Voice over IP protocol, etc.
0007Also described is a method for providing formatted voice data to two or more smart appliances which is performed by a controlling device working in cooperation with a smart appliance where the processor of the controlling device receives, via a communication interface, an identification of one or more smart appliances from a smart appliance that is coupled to the controlling device. In this method, the appliance identification may include a predetermined wake-word associated with the smart appliance identification. The processor of the controlling device may store the smart appliance identification in a coupled electronic storage medium and the processor may receive at least a wake-word and a voice command from a user via use of a microphone coupled to the processor of the controlling device. The processor then determines a smart appliance identification, which is stored in the electronic storage medium, which corresponds to the received wake-word and the predetermined wake-word and where the predetermined and received wake-words match. The processor then sends the voice command to the intended smart appliance vis use of a communication interface. In some embodiments, the wake-word may be an alphanumeric consumer brand name, alphanumeric code, user dictation, etc. as needed for the particular application.
0008Another method is described for providing formatted voice data to two or more smart appliances, which is performed by a controlling device working in cooperation with a smart appliance. This method includes receiving, by a processor of the controlling device, via the microphone, a voice command from a user, transmitting, by the processor of the controlling device, via a communication interface, an HDMI input status request to a coupled smart appliance in response to receiving the voice command, receiving, by the processor of the smart appliance, via a communication interface of the smart appliance, the HDMI input status request whereupon the processor of the smart appliance is caused to detect an active HDMI input, the active HDMI input comprising a signal from an appliance presently being presented by the smart appliance, determine an appliance identification associated with the active HDMI input, send, via the communication interface of the smart appliance, the smart appliance identification to the controlling device at which point the processor of the controlling device receives, via the communication interface of the controlling device, the smart appliance identification and formats the voice command in accordance with a formatting protocol stored in an electronic storage medium of the controlling device associated with the appliance identification.
0009A system for providing formatted voice data to two or more smart appliances which is performed by a smart appliance in cooperation with a coupled remote server and a controlling device is also described. The system may include a smart appliance, having a processor readable code that causes the smart appliance to: receive a first voice command via a communication interface from a controlling device; format the voice command in conformance with a first formatting protocol; transmit, via the communication interface, the formatted voice command to a remote server where the processor of the remote server receives the formatted voice command, via a communication interface, and uses the voice command to determine a first appliance to which the first voice command is intended; receive a determination of a first appliance for which the voice command is intended from the remote server, via a communication interface, and to transmit, via the communication interface, the formatted voice command to the intended smart appliance.
0010A better understanding of the objects, advantages, features, properties and relationships of the subject systems and methods will be obtained from the following detailed description and accompanying drawings which set forth illustrative examples and which are indicative of the various ways in which the principles of the invention hereinafter claimed may be employed.
BRIEF DESCRIPTION OF THE DRAWINGS
0011For a better understanding of the various aspects of the described systems and methods, reference may be had to the illustrative examples shown in the attached drawings in which: <ul id="ul0001" list-style="none" compact="compact"><li><figref idref="f0001">Figure <b>1</b></figref> is a block diagram illustrating a prior art system using a dedicated remote for providing voice data to a smart appliance.</li><li><figref idref="f0002">Figure <b>2</b></figref> is a block diagram illustrating a further system using a controlling device for providing formatted voice data to two or more smart appliances.</li><li><figref idref="f0003">Figure <b>3</b></figref> is an illustrative example of a still further system using a controlling device and an associated app for providing formatted voice data to two or more smart appliances.</li><li><figref idref="f0004">Figure <b>4</b></figref> is a functional block diagram of an example controlling device shown in <figref idref="f0002">Figure <b>2</b></figref>, for providing formatted voice data to two or more smart appliances.</li><li><figref idref="f0005">Figure <b>5</b></figref> is a functional block diagram of an example smart appliance as shown in <figref idref="f0002">Figure <b>2</b></figref>, used for providing formatted voice data to two or more smart appliances.</li><li><figref idref="f0006">Figure <b>6</b></figref> is a flow diagram illustrating an example method for enabling voice control of two or more smart appliances.</li></ul>
DETAILED DESCRIPTION
0012Described hereinafter are examples of an apparatus, a system and a method for controlling two or more smart appliances with voice commands and, more particularly, to a controlling device for receiving voice input from a user, for identifying a particular smart appliance to which the voice input is intended, and for formatting the voice input into a digital signal understood by the particular smart appliance.
0013<figref idref="f0001">Figure <b>1</b></figref> illustrates a system, known in the art, where a dedicated remote control is operated to primarily control the functional operations of a first smart appliance of the same consumer brand as the dedicated remote via use of voice commands and which is not purposed to communicate with or to control a second smart appliance of a different consumer brand via use of voice commands. This example illustrates two dedicated remote controls, a Comcast brand Xfinity voice remote <b>102</b> and an Apple brand Siri voice remote <b>104</b>, which are used to operate an associated smart appliance, such as a Comcast brand, set-top-box <b>108</b>, (hereafter referred to as "STB") and an Apple TV brand streamer <b>110</b>, respectively, via use of voice commands. Some consumer devices are Internet-capable, i.e., they can send or receive content to and/or from sources located within range of a local data network, such as a wireless LAN, or sources located in remote locations via the Internet. Each dedicated remote communicates with an associated smart appliance via a wireless signal <b>120</b> and <b>122</b> respectively where wireless signals <b>120</b> and <b>122</b> are different from each other. Generally, the STB <b>108</b> and the Apple TV brand streamer <b>110</b> are connected to a smart TV <b>106</b>, (hereafter referred to as "TV"), via an HDMI cable <b>112</b>, and may also be connected to a wireless router <b>114</b>, and may use signal <b>118</b>, to communicate to an internet cloud based speech processing service <b>116</b>, such as the Comcast brand voice service provider or the Apple brand Siri voice service, for sending a voice command, received by the dedicated remote to the smart appliance, of the same brand, where the smart appliance sends the voice data to an associated speech processing service for interpretation. For example, a user of the Comcast brand Xfinity voice remote <b>102</b> presses the microphone key causing the remote to initiate recording the user's voice, such as "Watch ESPN" or "Show me kids moviesm," and the recording ends when the key is released. The remote then uses a voice-over RF4CE wireless protocol to compress and transmit the recording over a low bandwidth link to the STB <b>108</b>. The STB <b>108</b> then sends the recording to the Comcast brand voice service provider, via router <b>114</b>, to perform natural language processing (NLP) to interpret the recording, determine the corresponding command and then send the command back to STB <b>108</b> for performing the corresponding operation. In this embodiment, the Comcast brand Xfinity voice remote <b>102</b> does not support sending voice commands to a smart appliance of a different consumer brand, e.g., the Apple TV brand streamer 110. The operation of cloud based speech-processing services are well known by one skilled in the art and are not described herein.
0014<figref idref="f0002">Figure 2</figref> illustrates an exemplary system in accordance with the teachings herein and includes a controlling device <b>202</b>, such as standalone Amazon brand Echo device, (hereafter referred to as "Echo") or to a similar type of device having voice input capabilities which types of devices may include, without limitation, a tablet, a PDA, a cell phone having an associated remote control type app, a smart watch, a computer, a wearable controlling device, a remote control, or an intermediary device purposed to control two or more smart appliances. As will be appreciated from the description that follows, the controlling device <b>202</b> is adapted to transmit one or more different wireless signals, such as signals <b>120</b>, <b>122</b>, (as also shown in <figref idref="f0001">Figure <b>1</b></figref>), and/or signals <b>212</b> and <b>214</b>, for reception by a corresponding plurality of intended target devices. Such transmission may use communication protocols such as Voice over IP (VoIP), IP, Smart Wave (S-WAVE), Wi-Fi, Bluetooth low energy (BLE), RF4CE, ZigBee, Z-wave, Infra-red, 6LoWPAN, Thread, Wi-Fi-ah, 2G, 3G, 4G, NB-IoT, 5G, NFC, RFID, SigFox, etc., as needed to communicate commands to two or more smart appliances. In this embodiment, the controlling device <b>202</b> is configured to receive voice commands from a user and send formatted versions of the voice commands to a one or more of the smart appliances <b>108</b>, <b>110</b>, <b>204</b>, and <b>206</b> as determined by the controlling device <b>202</b>. In some embodiments, the voice commands are not formatted.
0015Smart appliances may comprise consumer electronic devices in an end user's home such, as TV <b>106</b>, STB <b>108</b>, an Apple TV brand streamer <b>110</b> (all as shown in <figref idref="f0001">Figure <b>1</b></figref>), an Xbox brand gaming system <b>204</b> and a Roku brand streamer <b>206</b>. While illustrated as a TV <b>106</b>, an Xbox brand gaming system <b>204</b>, STB <b>108</b>, a Roku brand streamer <b>206</b>, and an Apple TV brand streamer <b>110</b>, it is to be understood that smart appliances may include, but need not be limited to, various televisions, VCRs, DVRs, DVD players, cable or satellite converter set-top boxes, amplifiers, CD players, game consoles, home lighting, smart wireless hubs, drapery, fans, HVAC systems, personal computers, wearable health monitoring devices, or, generally, any consumer product capable of communicating with controlling type devices such as an Echo or smartphones, and/or other smart appliances, in some embodiments via use of a wireless router <b>114</b>, associated with a wireless signal <b>118</b> typically over a local-area network or a wide-area network <b>216</b>. Such smart appliances are generally connected to TV <b>106</b>, via HDMI cables <b>112</b> or may be connected wirelessly and may operate to send data to a coupled remote server <b>208</b>, coupled to database <b>210</b>, to a speech processing service <b>116</b>, as described in <figref idref="f0001">Figure <b>1</b></figref>, or both.
0016The controlling device <b>202</b>, may be operated by a user, by pressing a soft key or a mechanical key on the controlling device <b>202</b> that activates at least a coupled microphone, allowing a user's voice to be recorded and/or streamed and sent to one or more coupled smart appliances (individually and collectively referred to hereinafter as an "appliance"). In one embodiment, the controlling device <b>202</b>, may be part of an audio-based context recognition system, and in some embodiments, may be part of a contextual command routing system comprising at least one smart appliance coupled to server <b>208</b>, where the system determines the user's intent to perform an action and determines the intended smart appliance for routing the voice commands to said smart appliance for executing the command. In some embodiments, the determination of the user's intent is performed by a home entertainment system, comprising coupled sensing interfaces, for automating a system response to events which occur in a media viewing area, such as the user's living room. Such a determination of the user's intent may be performed as described in <patcit id="pcit0002" dnum="US9137570B"><text>U.S. Patent No. 9,137,570</text></patcit> which is incorporated herein by reference in its entirety.
0017In one example, the controlling device <b>202</b> may operate by continuously listening for audio-based context (i.e., context based on an audio signal originated by the user uttering a voice command) and sending, via a communication interface, the audio-based context, (hereafter referred to as "a voice command"), to a smart appliance which sends the voice command to a coupled server <b>208</b> where the server <b>208</b> automatically performs an audio-based context recognition operation such as to automatically determine the contextual command routing and/or determine at least part of a classification, for determining a smart appliance for which the audio-based context was intended.
0018In this example, a smart appliance, such as TV <b>106</b>, coupled to server <b>208</b>, receives the intended appliance determination information directly from server <b>208</b>, via a first communication interface (e.g., a Wi-Fi receiver), and uses the intended appliance determination information to determine the smart appliance for which the voice command was intended. TV <b>106</b> sends, the voice commands to the identified smart appliance, via a second communication interface (e.g., an RF4CE transmitter), for executing the commands (e.g., to turn on, turn off, volume up, volume down, change channel to channel X, etc.).
0019In another example, the controlling device <b>202</b>, receives the intended appliance determination information from server <b>208</b>, via a first communication interface, and sends the voice commands to the identified smart appliance, via a second communication interface, where the smart appliance executes the commands.
0020In yet another example, server <b>208</b> not only determines the intended appliance determination information, but also determines the user's intent for determining the contextual command routing. Then, the command itself is transmitted to either the intended smart appliance via wide-area network <b>216</b>, to controller <b>202</b>, or to a smart appliance that forwarded the voice command.
0021In one example, a first smart appliance receives the intended appliance determination information from server <b>208</b>, via a first communication interface, uses the appliance determination information to determine the intended smart appliance and sends the commands to the intended smart appliance for executing the commands.
0022In one example, a first smart appliance receives the intended appliance determination information from server <b>208</b> for locally executing the commands.
0023In another example, a first smart appliance may scan the local-area network for connected smart appliances and may query each smart appliance for state information for determining the intended appliance determination information and for sending the commands to the intended smart appliance.
0024In another example, a first smart appliance receives the intended appliance determination information from server <b>208</b> and sends the appliance determination information to a second smart appliance, where the second smart appliance uses the identification information to determine the identified smart appliance and sends the voice commands to the identified smart appliance, via a second communication interface for executing the commands.
0025In one example, the smart appliance sends the voice command to an associated speech processing service provider to perform natural language processing or similar processing, to determine the corresponding command which is then sent to the smart appliance for performing the command operation.
0026In one example, the controlling device <b>202</b> records and/or streams, via a communication interface, to a smart appliance, a wake-word, such as "TV", "Google", "Alexa", "Xbox", "Game" or "STB", and a command such as "Turn on", "Play", "Stop", etc. The wake-word is generally purposed to identify a smart appliance and in some embodiments to change a smart appliances power state such as from stand-by to full power. In one example, the controlling device <b>202</b>, uses the wake-word to determine which smart appliance to send the wake-word to and in one example, a command that is received by controlling device <b>202</b> just after receipt of the wake-word.
0027In another example, the controlling device <b>202</b> sends the wake-word and the command to the server <b>208</b>, via the wide-area network <b>216</b> where the smart appliance identification is determined by the processor of server <b>208</b> and where the server <b>208</b> sends the voice command to that smart appliance.
0028In another example, the controlling device <b>202</b> receives an identification of an intended smart appliance from a smart appliance coupled to the controlling device <b>202</b> where the identification of the intended smart appliance includes an associated wake-word and the controlling device <b>202</b> stores the information in the electronic storage medium. The controlling device <b>202</b> then receives at least a wake-word from a user and uses the wake-word to determine an intended smart appliance which to send the wake-word, or a voice command associated with a smart appliance associated with the wake-word.
0029As an example, controlling device <b>202</b> may send at least the wake-word to TV <b>106</b>. TV <b>106</b> uses the wake-word to determine a smart appliance identification associated with the received wake-word. The smart appliance identification is used by TV <b>106</b> to determine the corresponding smart appliance for which the wake-word is intended. The TV <b>106</b> then sends the wake-word and associated voice command to the identified smart appliance for execution of the command.
0030In another example, a smart appliance, in a cooperative operation with the controlling device <b>202</b> and server <b>208</b>, is configured in a provisioning process to enroll each smart appliance, located in the user's home and detected by the smart appliance, using a predetermined voice command that is spoken by the user during the provisioning process, such as a learning operation, and which associates a voice command with a smart appliance which supports that voice command. For example, a user, via use of the controlling device <b>202</b>, may utter a predetermined voice command, such as "Play music," "Pause movie," "Start recording," etc. In this embodiment, the controlling device <b>202</b> sends the voice command to the smart appliance for provisioning, where the smart appliance, via use of database <b>210</b> accessible by server <b>208</b>, receives instructions corresponding to the voice command and an identify for the intended smart appliance for the command from server <b>208</b>.
0031For example, the voice command "Play music" may be associated by server <b>208</b>, with a smart appliance that supports streaming music, such as a detected Apple TV brand streamer <b>110</b>. Similarly, the voice command "Pause movie" may be associated by the server <b>208</b> with a Roku brand streamer <b>206</b> and "Start recording" may be associated with STB <b>108</b>. Thereafter, when the user utters the voice command "Play music," via use of the controlling device <b>202</b>, the provisioned smart appliance causes the Apple TV brand streamer <b>110</b> to perform an operation to stream music.
0032In yet another example, the controlling device <b>202</b> receives a voice command, which automatically causes an input status request, such as a request to detect an active source/sink port, a request for status of a communications bus, etc. to be sent by the controlling device <b>202</b> to TV <b>106</b> where TV <b>106</b> performs an operation to detect an active input, from a number of possible inputs, to determine an associated appliance identification selected from a plurality of appliance identifications stored in the electronic storage medium of TV <b>106</b>. TV <b>106</b> then uses the appliance identification to send the voice command to the identified smart appliance.
0033In one example, the controlling device <b>202</b> receives configuration information from TV <b>106</b>, coupled to a remote server <b>208</b>, using an identification of a smart appliance from a plurality of coupled smart appliances which are located in an end user's home. In this example, the configuration information comprises a plurality of smart appliance profiles (hereafter referred to as "device profiles") which are provisioned to TV <b>106</b> by server <b>208</b>. For example, server <b>208</b> receives an identification of a plurality of smart appliances, located at an end user's home, from TV <b>106</b> where TV <b>106</b> performs an operation to detect other connected smart appliances and provisions that information to the remote server <b>208</b>. The server <b>208</b>, in turn, analyzes the information to determine a device profile for each of the detected smart appliances. The server <b>208</b> stores the device profile for each of the detected smart appliances in a database <b>210</b> and sends the device profile for each of the detected smart appliances to TV <b>106</b>, where TV <b>106</b> then sends the configuration to the controlling device <b>202</b>. The controlling device <b>202</b>, may receive configuration information from coupled TV <b>106</b>, comprising a Universal Control Engine <b>200</b>, (hereafter referred to as "UCE") via a provisioning process which is described in further examples below.
0034Furthermore, any of the smart appliances, shown in <figref idref="f0002">Figure <b>2</b></figref>, may operate in a cooperative operation such as by having any smart appliance act as a master device and the server <b>208</b> act as a slave device or vice versa, for the purpose of sending one or more device profiles to the controlling device <b>202</b> or to another coupled smart appliance. The device profiles may be stored locally in the electronic storage medium associated with controlling device <b>202</b> or in the electronic storage medium of a smart appliance.
0035It is to be understood that, while the user's voice command is described as a recording, the voice command may be streamed, in real time, by the controlling device <b>202</b>, may be partially streamed or may be temporarily stored in an electronic storage medium of the controlling device <b>202</b>. Furthermore, while a determination operation is described as a cross-referencing operation it is understood that other methods may be performed by server <b>208</b> to determine a relationship, such as using a predetermined operations map, using an index, using a pairing table and may use one or more of the methods.
0036<figref idref="f0003">Figure <b>3</b></figref> is an example of a system using the controlling device <b>202</b>, having an associated control app and coupled to a server <b>208</b>, for providing voice commands to two or more smart appliances. Control type apps, (hereafter referred to as "apps"), are well known in the art and are not described herein. In this embodiment, controlling device <b>202</b>, via use of an app having an appropriate app interface <b>300</b> may initiate an operation where the controlling device <b>202</b>, may determine to which smart appliance each voice command is directed, may format voice commands in accordance with a smart appliance to which the voice command is intended, and may determine a transmission technology to transmit formatted voice commands to the intended smart appliance. For example, a user may press a soft key on the user interface provided to the controlling device <b>202</b> that activates a microphone of the controlling device <b>202</b>. Then, the user may utter a voice command, which is received by controlling device <b>202</b> and then processed to determine to which smart appliance the voice command is intended. Next, the voice command is formatted into a digital signal that is understood by the determined smart appliance.
0037In one example the app, via use of the associated microphone, may listen for a voice command and when the voice command is received, the app sends a request to a smart appliance to perform a local operation to dynamically scan the local-area network for connected smart appliances, query each smart appliance for state information, such as the media content currently available on a particular smart appliance, supported commands, etc. For example, TV <b>106</b> may initiate a query to one or more smart appliances such as STB <b>108</b> and Apple TV brand streamer <b>110</b> where each smart appliance sends, in real-time, information to TV <b>106</b>, related to what activity is being performed on each smart appliance. Such activity information may comprise available current media content such as a TV show or movie being watched on the Apple TV brand streamer <b>110</b>, photos being viewed, active apps and their displayed content on STB <b>108</b>, supported commands, and may include information such as an identification of a last user action or command that was performed by each smart appliance. In some examples, the activity information may be displayed partly or in full on a display coupled to the smart appliance or may be provisioned by a first smart appliance to a second smart appliance, for displaying the information.
0038In another example, the activity information may be displayed in a display coupled to the controlling device <b>202</b>, where the activity information contains activable links which, when activated by a user via use of an app installed on controlling device <b>202</b>, cause the smart appliance to perform the corresponding command such as "Play," "Stop," etc.
0039In one example, determination of a smart appliance to which the voice command is intended is performed by a speech processing service <b>116</b> or by a cloud server <b>302</b> after the controlling device <b>202</b> transmits the voice command to a dedicated smart appliance tasked to relay the voice command from the controlling device <b>202</b> to such a speech processing service or cloud service. The identification and/or other information of a smart appliance that the voice command was intended to command is then received back at the smart appliance whereupon the identification and/or other information is provided to the app. Alternatively, the app may send voice commands directly to a speech processing service <b>116</b>, or to an associated cloud service <b>302</b>, directly via wireless router <b>114</b> or via use of a cellular network, eliminating the need for a smart appliance to relay this information to/from a remote server. The speech processing service <b>116</b> or cloud service <b>302</b> may then send information/instructions directly back to the controlling device <b>202</b>.
0040In one example, the app may comprise instructions which may be used to provision the cloud service <b>302</b>, such as If This Then That (hereafter referred to as "IFTTT") type instructions, for automating one or more predefined IFTTT operations which cause the one or more predefined operations to be sent by the IFTTT service to one or more smart appliances, such as TV <b>106</b>, which are coupled, via UCE <b>200</b>, to the IFTTT service. Similarly, such operations may be prepopulated at the cloud service <b>302</b> via use of the work flow tools or may be populated by the app to the IFTTT service during a set up operation.
0041In one example, the app continuously or at a predetermined time interval sends a request to a smart appliance to scan the local-area network for connected smart appliances and query each smart appliance for state information.
0042It is to be understood that while described as a stand-alone app, one or more coupled apps, which may be installed on one or more smart appliances, may cooperate to provision the controlling device <b>202</b>, the cloud service <b>302</b> or TV <b>106</b> for providing formatted voice commands to two or more smart appliances. Furthermore, one or more apps may cooperate to respond to a request, to scan the local-area network for connected smart appliances and query each smart appliance for state information, originated by a smart appliance or by a controlling device <b>202</b>. In some examples, the apps may be synched via use of a set up agent program resident in a smart appliance or in the controlling device <b>202</b>. Further details may be found in <patcit id="pcit0003" dnum="US277968" dnum-type="L"><text>U.S. application Ser. No. 14/277,968 </text></patcit>which is incorporated herein by reference in their entirety.
0043<figref idref="f0004">Figure <b>4</b></figref> illustrates a functional block diagram <b>400</b> of one example of a controlling device for providing formatted voice commands to two or more smart appliances, such as the controlling device <b>202</b> shown in <figref idref="f0002">Figure <b>2</b></figref>. The controlling device <b>202</b>, in this example, comprises a processor <b>402</b>, an electronic storage medium <b>404</b>, a communication interface <b>406</b>, a user interface <b>408</b>, at least one transceiver <b>410</b> and at least one transmitter <b>412</b>.
0044The processor <b>402</b> may be configured to provide general operation of the controlling device by executing processor-executable instructions stored in the electronic storage medium <b>404</b>, for example, executable code. The processor <b>402</b> typically comprises a general-purpose microprocessor, although any one of a variety of microprocessors, microcomputers and or microcontrollers may be used alternatively, chosen based on factors such as computing power, cost, size, etc.
0045The electronic storage medium <b>404</b> comprises one or more information storage devices such as ROM, RAM, Flash, other type of electronic, optical or mechanical electronic storage medium device, or any combination thereof. Electronic storage medium <b>404</b> may be used to store processor-executable instructions for operation of the controlling device <b>202</b>. It will also be appreciated that some or all of the illustrated electronic storage medium may be physically incorporated within the same IC chip as processor means <b>402</b>.
0046As will be understood by those skilled in the art, some or all of the electronic storage medium <b>404</b> may store a plurality of device profiles, where each device profile comprises a formatting protocol for formatting voice commands in conformity with a protocol used by a particular smart appliance, may store a plurality of wake-words and/or voice commands which may be associated with one or more device profiles. For example, a first device profile may specify the format of one or more digital signals for voice operation of TV <b>106</b>, e.g., to cause TV <b>106</b> to change channels, input, volume, etc., while a second device profile may specify the format of one or more digital signals for voice operation of STB <b>108</b>, e.g., to change channels, control volume, etc.
0047The communication interface <b>406</b> comprises one or more data interface circuitry, such as well-known Ethernet, Wi-Fi, RF4CE, Bluetooth, or USB circuitry, that allows wireless communication between the controlling device <b>202</b>, and the smart appliances, and in some embodiments, between the controlling device <b>202</b> and wireless router <b>114</b> for communication therewith and the server <b>208</b>, via the wide-area network <b>216</b>. In one embodiment, the communication interface <b>406</b> comprises one or more data interface circuitry, such as at least one transceiver <b>410</b> and at least one transmitter <b>412</b>, that allows communication between coupled smart appliances. In this embodiment, a transceiver <b>410</b> may support a first wireless protocol which is used to communicate with a first smart appliance and a second transceiver <b>410</b> may support a second wireless protocol which is used to communicate with a second smart appliance for providing formatted voice data to each of the smart appliances.
0048The user interface <b>408</b> comprises a user input device, for allowing a user to control operations of the controlling device <b>202</b>. The user input typically comprises at least one or more soft keys or mechanical keys for allowing a user to enter commands or information into the controlling device <b>202</b>. In one example, user interface <b>408</b> comprises a microphone coupled to processor <b>402</b> for receiving a user's voice commands and converting the voice commands into electronic signals, as is well-known in the art.
0049It should be understood that the functional blocks may be coupled to one another in a variety of ways other than which is shown in <figref idref="f0004">Figure <b>4</b></figref> and that not all functional blocks necessary for operation of controlling device <b>202</b> are shown, such as a power supply, a microphone, one or more accelerometers, a multiple-axis gyroscope, a variety of other transceivers and transmitters each comprising a different wireless protocol, for purposes of clarity.
0050<figref idref="f0005">Figure <b>5</b></figref> illustrates a functional block diagram <b>500</b> of one example of a smart appliance, such as the TV <b>106</b>, STB <b>108</b>, an Apple TV brand streamer <b>110</b> (each as shown in <figref idref="f0001">Figure <b>1</b></figref>), an Xbox brand gaming system <b>204</b> and a Roku brand streamer <b>206</b> (each as shown in <figref idref="f0002">Figure <b>2</b></figref>). Such smart appliances are generally controlled by means of voice commands, may be speaker-independent, i.e. the smart appliances may respond to multiple voices, and may respond to multiple commands at once. In some embodiments, smart appliances may identify and or authenticate the speaker, i.e. the user, via a local operation, and may send the received voice input to a speech processing service <b>116</b>, via the wide-area network <b>216</b> or via use of a cellular network.
0051In this example, the smart appliance comprises a processor <b>502</b>, an electronic storage medium <b>504</b>, a communication interface <b>506</b>, a user interface <b>508</b> and a transceiver <b>510</b>. It should be understood that the functional blocks may be coupled to one another in a variety of ways other than which is shown in <figref idref="f0005">Figure <b>5</b></figref> and that not all functional blocks necessary for operation of the smart appliance are shown, such as a power supply, a variety of other transceivers and transmitters each comprising a different wireless protocol for purposes of clarity.
0052The processor <b>502</b> is configured to provide general operation of a smart appliance by executing processor-executable instructions stored in the electronic storage medium <b>504</b>, for example, executable code. The processor <b>502</b> typically comprises a general-purpose microprocessor, such as an Intel Core 17 brand or an AMD K10 brand microprocessor, although any one of a variety of microprocessors, microcomputers and or microcontrollers may be used alternatively, chosen based on factors such as computing power, cost, size, etc.
0053The electronic storage medium <b>504</b> comprises one or more information storage devices such as ROM, RAM, Flash, other type of electronic, optical or mechanical electronic storage medium device, or any combination thereof. Electronic storage medium <b>504</b> may be used to store processor-executable instructions for operation of the smart appliance. It will also be appreciated that some or all of the illustrated electronic storage medium may be physically incorporated within the same IC chip as processor means <b>502</b>.
0054As will be understood by those skilled in the art, some or all of the electronic storage medium <b>504</b> may store instructions or data that is particular to each type of smart appliance to be controlled. For example, instructions for TV <b>106</b> may comprise instructions to receive television programming via the communication interface <b>506</b> and display one of the television programs on a display, in accordance with commands received from the controlling device <b>202</b>.
0055Other instructions cause a smart appliance to receive instructions from the controlling device <b>202</b>, such as a wake-word or a voice command, where processor <b>502</b> uses the voice command to determine a smart appliance identification associated with the voice command. The smart appliance then sends the appliance identification to the controlling device <b>202</b> or to a coupled smart appliance via the wide-area network <b>216</b>.
0056Still other instructions cause the smart appliance to receive instructions from the controlling device <b>202</b>, which cause processor <b>502</b> to initiate a detection process, such as a detect/request the active source / sink / port on the audio-video / communications bus status request, to detect an active HDMI input. The smart appliance then determines a smart appliance connected to the active HDMI input and sends the appliance identification to the controlling device <b>202</b> or to a coupled smart appliance. The controlling device <b>202</b> or the coupled smart appliance then uses the appliance identification to send the voice command to the identified smart appliance. In some examples, the smart appliance sends the appliance determination to server <b>208</b> for determining the contextual command routing. Server <b>208</b> then sends the voice command to the identified smart appliance. In another example, server <b>208</b> sends the voice command to the smart appliance, that determined which smart appliance was connected to the active HDMI input, for either executing the command or for forwarding the command to the appliance connected to the active HDMI input.
0057The communication interface <b>506</b> comprises one or more data interface circuitry, such as transceiver <b>510</b>, Ethernet, Wi-Fi, RF4CE, Bluetooth, or USB circuitry, that allows digital communication, between the smart appliance and other coupled smart appliances, the smart appliance and the controlling device <b>202</b>, via a local area network provided by wireless router <b>114</b>, as well as between the smart appliance and the server <b>208</b>, via the wide-area network <b>216</b>. In this embodiment, a transceiver <b>510</b> may support a wireless protocol, which is used to receive the voice commands from the controlling device <b>202</b>, may decode, compress or perform other operations as necessary to transmit the voice commands to a speech processing service <b>116</b>.
0058The user interface <b>508</b> comprises a user input device and/or a user output device, for allowing a user to control operation of the smart appliance. The user input typically comprises one or more pushbuttons, keys, a touchscreen display, etc. for allowing a user to enter commands or information into the smart appliance. The user output device typically comprises a display screen, a touchscreen display, lights, amplified sound bars, etc. for presenting media content to a user as desired/needed.
0059It should be understood that the functional blocks may be coupled to one another in a variety of ways other than which is shown in <figref idref="f0005">Figure <b>5</b></figref> and that not all functional blocks necessary for operation of a smart appliance are shown, such as a power supply, a variety of other transceivers and transmitters each comprising a different wireless protocol, for purposes of clarity.
0060<figref idref="f0006">Figure <b>6</b></figref> is a flow diagram of one example method for enabling voice control of two or more smart appliances. The method is implemented by processor <b>402</b> located within controlling device <b>202</b>, by executing processor-executable instructions stored in electronic storage medium <b>404</b>. It should be understood that in some examples, not all of the steps shown in <figref idref="f0006">Figure <b>6</b></figref> are performed and that the order in which the steps are carried out may be different. It should be further understood that some minor method steps, which would be known to those of ordinary skill in the art, have been omitted for purposes of clarity.
0061At block <b>600</b>, a user of controlling device <b>202</b> utters a voice command into controlling device <b>202</b>, via user interface <b>408</b>. In one example, the user first presses a key on controlling device <b>202</b> in order to activate a microphone on controlling device <b>202</b>.
0062At block <b>602</b>, the voice command is received by processor <b>402</b> via user interface <b>408</b> and typically stores the voice command in electronic storage medium <b>404</b>.
0063At block <b>604</b>, processor <b>402</b> determines to which smart appliance the voice command is intended. In one example, processor <b>402</b> evaluates the voice command and determines that the voice command is intended for a particular smart appliance, in this example, TV <b>106</b>. The determination operation is performed in accordance with one or more of the examples described above.
0064In another example, processor <b>402</b> transmits the voice command in a predetermined format for reception by a predetermined one of the smart appliances. In this example, processor <b>402</b> is pre-configured to communicate with one of the smart appliances and transmits the voice command in a format understood by the predetermined smart appliance. The predetermined smart appliance may be different than the smart appliance for which the voice command was intended. The predetermined smart appliance receives the voice command and then forwards it to remote server <b>208</b>. Remote server <b>208</b>, in turn, processes the voice command, to determine an identification of a smart appliance type or a particular smart appliance for which the voice command was intended. For example, server <b>208</b> can interpret the voice command and extract one of a number of predetermined commands, such as "volume up," "volume down," "change channel," "TV on (off)," "Roku on (off)," etc. Based on the interpretation, server <b>208</b> identifies at least a smart appliance type that the voice command was intended. For some voice commands, such as "TV on (off)," "Roku on (off)," where an identification of a particular smart appliance is contained within the voice command, determination of the intended smart appliance is simply a matter of interpreting the voice command to extract the mentioned smart appliance. In other voice commands, such as "volume up," "volume down," or "change channel," server <b>208</b> may identify key words in the voice command and determine a likely intended smart appliance by associating the key words with smart appliance types stored by server <b>208</b>. For example, if server <b>208</b> determines that the word "volume" was uttered, server <b>208</b> may determine that the voice command was intended either for TV <b>106</b> or for set-top box <b>110</b>. Server <b>208</b> then returns an identification of the intended smart appliance to remote controlling device <b>202</b>, either directly via wireless router <b>114</b> or via a predetermined smart appliance.
0065At block <b>606</b>, the controlling device <b>202</b> receives the identification of the intended smart appliance from server <b>208</b>, via transceiver <b>410</b>, which provides the identification to processor <b>402</b>.
0066At block <b>608</b>, processor <b>202</b> receives the identification and may determine a particular smart appliance for which the voice command was intended based on the smart appliance identification type. For example, server <b>208</b> may have identified a TV for which the voice command was intended. Processor <b>402</b> then determines a particular brand and/or model of TV in use, and operational capabilities, such as voice command, wake-word, preinstalled apps, content being watched, supported wireless protocols, user preferences, etc., based on and earlier provisioning process.
0067The provisioning process comprises sending signals to the discovered smart appliances that causes the other smart appliances to provide their device information, such as EDID, CEC, vendor name, device type, device status, installed apps, current media content being played on the device, media content logos, Infoframe, SSDP, MDNC, IP mDNS Service List, supported wireless protocols such as VoIP, IP, Smart Wave (S-WAVE), Wi-Fi, Bluetooth low energy (BLE), RF4CE, ZigBee, Z wave, Infra-red, etc., to the requesting one or more smart appliances. For example, the provisioning process may be used to determine smart appliances comprising the same operational capabilities. For such devices, the user may prefer to watch a TV program on a particular smart appliance and set the user preferences accordingly. In this embodiment, the user preferences are aggregated to the device profiles. Further details of such device detection may be found in <patcit id="pcit0004" dnum="US8812629B"><text>U.S. Patent Nos. 8,812,629</text></patcit>, <patcit id="pcit0005" dnum="US8558676B"><text>8,558,676</text></patcit>, <patcit id="pcit0006" dnum="US8659400B"><text>8,659,400</text></patcit>, <patcit id="pcit0007" dnum="US8830074B"><text>8,830,074</text></patcit>, <patcit id="pcit0008" dnum="US8896413B"><text>8,896,413</text></patcit>, <patcit id="pcit0009" dnum="US9215394B"><text>9,215,394</text></patcit>, <patcit id="pcit0010" dnum="US9437105B"><text>9,437,105</text></patcit>, <patcit id="pcit0011" dnum="US9449500B"><text>9,449,500</text></patcit> and <patcit id="pcit0012" dnum="US9019435B"><text>9,019,435</text></patcit> all of which are incorporated herein by reference in their entirety.
0068At block <b>610</b>, processor <b>402</b> formats the voice command stored in electronic storage medium <b>404</b> into a data format in accordance with the formatting protocol associated with the identified smart appliance.
0069At block <b>612</b>, processor <b>402</b> transmits the formatted voice command to the identified smart appliance via transmitter/transceiver <b>410</b> and or <b>412</b>. The formatting protocol used to format the voice command may additionally comprise a transmission protocol in which to transmit data. For example, a formatting protocol stored within electronic storage medium <b>404</b> in association with TV <b>106</b> may indicate that wireless data needs to be transmitted via an RF4CE transmitter. In this case, processor <b>402</b> routes the formatted voice command to an RF4CE transmitter and causes the RF4CE transmitter to transmit the formatted voice command to TV <b>106</b>.
0070The device profile, as partially described in <figref idref="f0002">Figure <b>2</b></figref>, comprises the entirety of the smart appliance information such as the data identified during the provisioning process performed by a smart appliance which data typically comprises the smart appliance's metadata, attributes, preferences as set by the user, a formatting protocol for formatting voice commands in conformity with a protocol used by a particular smart appliance, supported network or communication protocols, voice command code structure or format, voice service or operational capabilities, state information, etc., for a plurality of smart appliances, which may be stored in database <b>210</b> and accessible by server <b>208</b>.
0071These commands and operational capabilities define the set of "verbs" and "grammars" that can be correlated to this appliance.
0072In one example, the TV <b>106</b>, in response to receiving the device profiles from server <b>208</b>, may send, via the communication interface <b>506</b>, the device profiles to a second coupled smart appliance for use in configuration of a controlling device <b>202</b> and wherein the device profiles are in a format used by the second smart appliance. For example, a first smart appliance may send the device profiles received from server <b>208</b> to a second smart appliance, acting as an intermediary device, or may send one or more of the device profiles to the controlling device <b>202</b> for storing in the electronic storage medium <b>404</b>.
0073In yet another example, the device profiles are provided to the controlling device <b>202</b> by a cloud service <b>302</b>, via use of a wide-area network <b>216</b>. The controlling device <b>202</b> may then store the device profiles locally in electronic storage medium <b>404</b>.
0074In one example, the device profile may be received by processor <b>402</b>, in raw format, may be restructured, by processor <b>402</b>, to a particular data structure by executing readable code comprising a set of procedures for creating the data structure. In one example, the data structure is an array. In another example, the data structure is a list. In yet another example, the data structure is a combination of one or more data types as needed for the processor <b>402</b> to perform a data restructuring operation.
0075In another example, the processor <b>402</b>, may perform a local operation to cross-reference the discovered appliance information to the appliance metadata, stored in the electronic storage medium <b>404</b> or via a cross-referencing operation performed in cooperation with server <b>208</b> for each identified smart appliance. In this example, server <b>208</b> determines information, via use of database <b>210</b>, which equals or resembles the appliance information of an analogous smart appliance in some respect for the purpose of generating, or aggregating data to, a device profile or device fingerprint. The appliance metadata comprises smart appliance attributes, such as EDID, CEC, device type, features supported, etc., which may be complementary to the discovered appliance information and typically includes a plurality of other appliance related information, such as cloud based appliance services, such as services which are made available by the appliance's manufacturer, associated voice processing service, capabilities, preferred communication method, supported network or communication protocols, command code structure or format, etc., for a plurality of smart appliances.
0076Additionally, the device profile may comprise a signal of an identical structure to the signal sent by the original remote control of the smart appliance, (e.g., a Comcast brand Xfinity voice remote <b>102</b> to operate a Comcast brand, STB <b>108</b>, or an Apple brand Siri voice remote <b>104</b> to operate an Apple TV brand streamer <b>110</b> (each as shown in <figref idref="f0001">Figure <b>1</b></figref>), for sending voice commands to the smart appliances, and the signal may be sent by a controlling device <b>202</b>, via communication interface <b>406</b>, to a first coupled smart appliance, via a signal that resembles the signal of the original remote control from the same smart appliance manufacturer. Similarly, the controlling device <b>202</b> may send a different signal to a second smart appliance, via use of a signal that resembles the signal of the original remote control associated with the second smart appliance.
0077In another example, the processor <b>402</b>, may dynamically generate a device profile in real-time, via use of the discovered appliance information and/or via performing an on-line search, via communication interface <b>406</b> and via use of wide-area network <b>216</b>, to obtain related smart appliance metadata, such as from the internet or other cloud based servers. When the operation is complete, the device profile may be stored in the electronic storage medium <b>404</b>, or may be stored in the electronic storage medium of a coupled server or cloud service <b>302</b>.
0078In another example, the device profiles are provisioned to TV <b>106</b>, comprising UCE <b>200</b>, by server <b>208</b>, via communication interface <b>506</b>, or are provisioned by a cloud service <b>302</b>, via use of a wide area network <b>216,</b> to TV <b>106.</b>
0079In any of the examples, each device profile comprises a formatting protocol for formatting voice commands in conformity with a protocol used by a particular smart appliance and the functionality for gathering the identification of smart appliances information from smart appliances located at an end-user's home may be performed by a Universal Control Engine (UCE) <b>200</b> as described in <patcit id="pcit0013" dnum="US9215394B"><text>U.S. Patent No. 9,215,394</text></patcit> which patent is incorporated herein by reference in its entirety. In one example, when a smart appliance, comprising a UCE <b>200</b> is initially powered on, an automatic provisioning process may be initiated for identifying or detecting smart appliances on the same local network as the smart appliance containing the UCE <b>200</b>. Alternatively, the provisioning process may be initiated by a key press on the controlling device <b>202</b> or via a voice command recognized and acted on by the smart appliance. Such a provisioning process is described in <patcit id="pcit0014" dnum="US9307178B"><text>U.S. Patent No. 9,307,178</text></patcit> which is also incorporated herein by reference in its entirety.
0080In one example, the controlling device <b>202</b>, comprises an electronic storage medium <b>404</b> having processor-readable code embodied therein and storing a plurality of smart appliance profiles where each device profile comprises a formatting protocol for formatting voice commands in conformity with a protocol used by a particular smart appliance and where the device profiles are provisioned to the smart appliance by server <b>208</b>. In this example, the controlling device <b>202</b>, receives, via a microphone, a first voice command from an end user, which is used by the controlling device <b>202</b> to determine a first smart appliance to which the first voice command is intended. The controlling device <b>202</b> then identifies a first formatting protocol, in the electronic storage medium associated with the first smart appliance, formats the voice command into a formatted voice command in conformance with the first formatting protocol and sends the formatted voice command to the first smart appliance.
0081For example, the user may press the microphone key and utter one or more words or sounds for selecting a particular smart appliance, such as the Apple TV brand streamer <b>110</b>. The controlling device <b>202</b>, determines the device profile associated with that smart appliance based on the voice command, and identifies the proper signal or protocol to use for communicating with the Apple TV brand streamer <b>110</b>. The controlling device <b>202</b> formats the voice command into an identical voice command of the Apple brand Siri voice remote <b>104</b>. The controlling device <b>202</b> then sends the voice command to the Apple TV brand streamer <b>110</b>. The controlling device <b>202</b> receives a second voice command and similarly determines a second smart appliance, such as STB <b>108</b>, to which the second voice command is intended. The controlling device <b>202</b> then sends the formatted voice data to the STB <b>108</b>. In some examples, a device profile comprises a definition of how to send voice to the smart appliance and the controlling device <b>202</b> may perform a local operation to determine which smart appliance is associated with the voice command and may determine one or more methods of how to send the voice command.
0082In one example the controlling device <b>202</b>, may listen for a voice command and when the voice command is received, the controlling device <b>202</b> sends a request to a smart appliance to perform a local operation to scan the local-area network for connected smart appliances and to dynamically query each smart appliance for state information. Such state information comprises apps installed and/or supported, power state of a smart appliance (i.e. On/Off), current media state such as playing a particular song or watching a particular video stream, supported commands and /or scripts, etc. In some examples, the state information may be used by the smart appliance which performed the query or by server <b>208</b> for defining the context for the commands.
0083In one example, state information may be obtained by a first smart appliance performing a signal sniffing operation, such as an audio signal listening operation, to determine a media that is currently playing in a specific location. In this example, the smart appliance contains the necessary hardware and programming to perform said signal sniffing operation. Signal sniffing operations are well known in the art and are not described herein.
0084In one example, the smart appliance receives codes or scripts for the connected smart appliances from server <b>208</b>, coupled to database <b>210</b> where database <b>210</b> comprises a plurality of smart appliance codes and/or scripts for use in communicating with connected smart appliances and where the codes and/or scripts are used to identify context and the intended smart appliance. For example, when a user utters "Pause," contextually server <b>208</b> will provide priority to a smart appliance which is currently playing a song.
0085For example, TV <b>106</b> may initiate a query to one or more smart appliances such as STB <b>108</b> and Apple TV brand streamer <b>110</b> where each smart appliance sends, in real-time, information to TV <b>106</b>, related to what activity is being performed on each smart appliance. Such activity information may comprise available current media content such as a TV show or movie being watched on the Apple TV brand streamer <b>110</b>, photos being viewed, active apps and their displayed content on STB <b>108</b>, supported commands, and may include information such as an identification of a last user action or command that was performed by each smart appliance. In some examples, the activity information may be displayed partly or in full on a display coupled to the smart appliance or may be provisioned by a first smart appliance to a second smart appliance for displaying the information.
0086In another example, the activity information may be displayed in a display coupled to the controlling device <b>202</b>, where the activity information contains activable links which when activated by a user, via use of an app installed on controlling device <b>202</b>, cause the smart appliance to perform the corresponding command such as "Play," "Stop," etc.
0087In another example, a controlling device <b>202</b> receives configuration information from a remote server <b>208</b>, using an identification of a smart appliance from a plurality of coupled smart appliances. For example, server <b>208</b> receives an identification of a plurality of smart appliances located at an end user's home from TV <b>106</b>. In this example, one or more of the smart appliances performs an operation to detect other connected smart appliances and provisions that information to the remote server <b>208</b>. The server <b>208</b>, in turn, analyzes the information to determine a device profile for each of the detected smart appliances. The server <b>208</b> stores the device profile for each of the detected smart appliances in a database <b>210</b> and directly sends the device profiles for each of the detected smart appliances to the controlling device <b>202</b>. In some examples, a device profile comprises one or more supported commands and operational capabilities which define the set of verbs and grammar that are correlated to a smart appliance and may comprise a second definition of how to send voice to the smart appliance.
0088In yet another example, a controlling device <b>202</b> receives configuration information from a cloud service <b>302</b>, via a wide-area network <b>216</b>. In this example, one or more of the smart appliances performs an operation to detect other connected smart appliances and provisions that information to the cloud service <b>302</b>. The cloud service <b>302</b>, in turn, analyzes the information to determine a device profile for each of the detected smart appliances. The cloud service <b>302</b> then sends the device profiles for each of the detected smart appliances to the controlling device <b>202</b>.
0089In another example, a device having a microphone receives and sends a voice command to the controlling device <b>202</b>, such as an Echo or to a similar type of smart appliance, which is coupled to a voice-controlled intelligent personal assistant service, such as Amazon brand Alexa brand device, which uses itself as a home automation hub, and which is communicatively coupled to a speech processing service <b>116</b>, a cloud service <b>302</b> or to server <b>208</b>. In this example, the controlling device <b>202</b> sends the voice command to the Echo imitating the signal of the Amazon brand Alexa brand voice remote control. The Echo sends the voice command to the Alexa brand service, where the Alexa brand service, in a cooperative process with server <b>208</b> and a cloud service <b>302</b>, such as IFTTT, provision the IFTTT service for automating one or more predefined IFTTT operations which cause the one or more predefined operations to be sent by the IFTTT service to one or more smart appliances, such as TV <b>106</b>, which are coupled, via use of the UCE <b>200</b>, to the IFTTT service. The one or more operations are received by TV <b>106</b>, via communication interface <b>506</b>, for performing the particular operations, by processor <b>502</b>. Such operations may be prepopulated at the cloud service <b>302</b>, may be prepopulated in the controlling device <b>202</b>, via an app associated with the IFTTT service and/or may be populated during the set-up of the IFTTT service associated with the Alexa service and TV <b>106</b>. IFTTT services and operations are well known by one skilled in the art and are not described herein
0090For example, if a user utters the words, "Alexa I want to play Xbox," the controlling device <b>202</b> determines that the user desires to use the Echo based on the voice command, and identifies the proper signal or protocol to use for communicating with the Echo. The Echo then sends the voice command to the Alexa brand service, which is coupled to a cloud service <b>302</b>, such as the IFTTT service or to a similar service. The IFTTT service determines the predefined operations, via use of an applet or a recipe, to provision the determined operations to server <b>208</b>, via the internet. Server <b>208</b> receives the one or more operations, via the internet, from the IFTTT service to provision, by processor <b>502</b>, TV <b>106</b>. TV <b>106</b> receives the operations, via communication interface <b>506</b>, and processor <b>502</b> executes the one or more received operations.
0091For example, the words, "Alexa I want to play Xbox", may be a predefined phrase or a series of predefined operations which are associated with the IFTTT service and which are associated with a cloud service <b>302</b>. Such operations may comprise automatically changing the HDMI input at TV <b>106</b>, powering on the Xbox brand gaming system <b>204</b>, setting the volume to a predetermined level, dimming the lights to a predetermined level, etc. The one or more operations may be in the structure of one or more IFTTT applets, which may be consolidated into a single work flow, for having multiple operations execute simultaneously or the operations may be executed at a predetermined time interval. It is to be understood that, unless otherwise stated to the contrary, one or more of the described operations may be received and/or executed by TV<b>106</b> or may be received and/or executed by one or more coupled smart appliances.
0092It is to be understood that the controlling device <b>202</b>, as shown, <figref idref="f0002">Figure <b>2</b></figref> may include a plurality of other functions such as motion sensor-enabled capabilities, hand-gesture recognition and may include the capability to display images, such as logos, alphanumeric text, etc. Such controlling devices may cooperate with one or more apps, as shown in <figref idref="f0003">Figure <b>3</b></figref>, to control a smart appliance. Furthermore, the controlling device <b>202</b>, may cooperate with one or more smart appliances each comprising a computing client, such as in a client-server-model to provision and/or to control a smart appliance. In some examples, a microphone is coupled to one or more devices each located in a different room of the user's home and where the device having the microphone is coupled to the controlling device <b>202</b>, via a local-area network or a wide-area network <b>216</b>, for sending the voice commands to the controlling device <b>202</b>.
0093While described as a microphone for receiving voice commands, it is to be understood that a microphone includes any transducer type device that converts sound into an electrical signal and may include one or more microphones in each device and each device may be coupled to each other, to the controlling device <b>202</b> and to a smart appliance.
0094While described as an active HDMI input, it is to be understood that an active input includes any active source / sink / port on the audio-video / communications bus status either wired or wirelessly connected to the smart appliance which initiated the status request.
0095It is also to be understood that a controlling device <b>202</b>, may be partially configured at a factory with one or more device profiles preinstalled. When initially powered on, the controlling device <b>202</b>, may be configured to automatically communicate with a predetermined smart appliance, such as STB <b>108</b>, such as when the controlling device <b>202</b> and the STB <b>108</b> are paired with each other out of the-box. Similarly, an automatic pairing operation may be performed when the end user presses a first key, on the controlling device <b>202</b>, for initiating a communication with said STB <b>108</b>.
0096While various concepts have been described in detail, it will be appreciated by those skilled in the art that various modifications and alternatives to those concepts could be developed in light of the overall teachings of the disclosure. Further, while described in the context of functional modules and illustrated using block diagram format, it is to be understood that, unless otherwise stated to the contrary, one or more of the described functions and/or features may be integrated in a single physical device and/or a software module, or one or more functions and/or features may be implemented in separate physical devices or software modules. It will also be appreciated that a detailed discussion of the actual implementation of each module is not necessary for an enabling understanding of the invention. Rather, the actual implementation of such modules would be well within the routine skill of an engineer, given the disclosure herein of the attributes, functionality, and inter-relationship of the various functional modules in the system. Therefore, a person skilled in the art, applying ordinary skill, will be able to practice the invention set forth in the claims without undue experimentation. It will be additionally appreciated that the particular concepts disclosed are meant to be illustrative only and not limiting as to the scope of the invention which is to be given the full breadth of the appended claims.
Contents4
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| EP1209661A1 | Cites | European Patent Office (EPO) |
| WO0175837A2 | Cites | World Intellectual Property Organization (WIPO) |
| US6606280B1 | Cites | United States of America |
21 members in 6 offices; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 201715647947 | United States of America | – | |
| 201715647947 | United States of America | A |
Members21
| Document | Office | Kind | |
|---|---|---|---|
| EP3428899A1 | European Patent Office (EPO) | A1 | |
| US2019019504A1 | United States of America | A1 | |
| US2019020493A1 | United States of America | A1 | |
| WO2019013835A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2019136065A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP3428899B1This record | European Patent Office (EPO) | B1 | |
| KR20200104898A | Republic of Korea | A | |
| CN111801729A | China | A | |
| EP3735687A1 | European Patent Office (EPO) | A1 | |
| US10930276B2 | United States of America | B2 | |
| JP2021509730A | Japan | A | |
| US2021134281A1 | United States of America | A1 | |
| EP3735687A4 | European Patent Office (EPO) | A4 | |
| US2022286317A1 | United States of America | A1 | |
| US11489691B2 | United States of America | B2 | |
| US11631403B2 | United States of America | B2 | |
| JP7374099B2 | Japan | B2 | |
| US11985003B2 | United States of America | B2 | |
| CN111801729B | China | B | |
| US2024235879A1 | United States of America | A1 | |
| KR102889818B1 | Republic of Korea | B1 |
66 legal events, as 9 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Opt-out of the competence of the unified patent court (upc) registeredP01 | P01 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed because of non-payment of the annual feeLapsedMM | MM | BE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| No opposition filedOpposition26N | 26N | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| No opposition filed against granted patent, or epo opposition proceedings concluded without decisionGrantedR097 | R097 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Deletion acc. to par. 5 (withdrawal of the translation of the ep patent)MK05 | MK05 | AT | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent invalid in the netherlands as no translation has been filedMP | MP | NL | |
| Invalidated european patentMG4D | MG4D | LT | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Reference to at number (ep patent validated in austria)REF | REF | AT | |
| Dpma publication of mentioned ep patent grantGrantedR096 | R096 | DE | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE PATENT HAS BEEN GRANTEDSTAA | STAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Intention to grant announcedINTG | INTG | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: GRANT OF PATENT IS INTENDEDSTAA | STAA | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: REQUEST FOR EXAMINATION WAS MADESTAA | STAA | EP |
Numbers
- Publication
- 3428899
- Application
- 171994684
Titles3
- German
- EINRICHTUNG, SYSTEM UND VERFAHREN ZUR LEITUNG DER SPRACHEINGABE IN EINER STEUERUNGSVORRICHTUNG
- English
- APPARATUS, SYSTEM AND METHOD FOR DIRECTING VOICE INPUT IN A CONTROLLING DEVICE
- French
- APPAREIL, SYSTÈME ET PROCÉDÉ PERMETTANT DE DIRIGER UNE ENTRÉE VOCALE DANS UN DISPOSITIF DE COMMANDE
Classification
- CPC, 8
- G08C17/02
- H04L12/282
- G08C2201/92
- G08C2201/31
- G08C2201/40
- G06F3/167
- G10L15/22
- G10L2015/223
- IPC, 1
- G08C17 02
Designated states1
- Contracting states, 1
- Türkiye
