Aspects of the present disclosure relate generally to methods and apparatus for automatic control, and more particularly to voice-controlled configuration of an automation system for a home or other space.
Automation systems are known for controlling the environment of homes, offices, or other personal spaces. Such systems may include a central controller in communication with peripheral electronic devices throughout the home or other space, through a wired and/or wireless interface. Peripheral electronic devices may include, for example, “smart” home appliances, including “smart” power controllers configured for controlling electrical power supplied to “dumb” appliances such as electric lamps, ventilation fan, space heaters, or any other desired appliance. Advantages of such systems may include the ability of the user to control appliances throughout the home or other space from one control node. The control node may have a wide-area network or other interface for remote access enabling an authorized user to control appliances throughout the home or other space remotely. Thus, an absentee owner may control operation of electrical appliances for lighting, temperature control, food preparation, audio output, security, or other function through a single control node, which can be managed from a remote location if desired. The automation system may also make it more convenient to control appliances while the user is present, by providing a central control point.
Notwithstanding the advantages of such automation systems, they may be difficult for the ordinary untrained consumer to set up and maintain. Consumers may hire an expert technician to set up an automation system, but this may increase initial costs and make the consumer dependent on the expert for making subsequent configuration changes, such as adding and configuring new appliances. It would be desirable to provide the user with methods and apparatus for configuring an automation system that overcomes these and other limitations of prior automation systems.
Methods, apparatus and systems voice-controlled configuration of an automation system for a home or other space are described in detail in the detailed description, and certain aspects are summarized below. This summary and the following detailed description should be interpreted as complementary parts of an integrated disclosure, which parts may include redundant subject matter and/or supplemental subject matter. An omission in either section does not indicate priority or relative importance of any element described in the integrated application. Differences between the sections may include supplemental disclosures of alternative embodiments, additional details, or alternative descriptions of identical embodiments using different terminology, as should be apparent from the respective disclosures.
In an aspect, a method for voice-controlled configuration of an automation system for a home or other space may include detecting, by a computer server, an appliance in communication with the computer server via a computer network. The computer server may be, or may include, one of a plurality of distributed controllers for a home automation system. In the alternative, the computer server may be, or may include, a centralized controller for a home automation system. The method may further include receiving, by the computer server, information indicating capabilities of the appliance. Receiving the information indicating the capabilities may include at least one of communicating with a remote server to pull the information from a database stored on the server, or receiving the information from the appliance via the network.
The method may further include receiving audio input from a user converted by an electroacoustic transducer into an audio signal. The method may further include determining control settings controlling the capabilities of the appliance, based on the audio signal. In a further aspect, the method may include controlling the capabilities of the appliance, based on the control settings.
In another aspect, the method may include generating a network identifier for the at least one appliance, based on the audio signal. The method may also include recognizing a voice pattern of the user based on the audio signal, and authenticating the user at least in part based on the voice pattern.
In coordination with a component of a home automation system, a client device may perform another method for voice-controlled configuration of an automation system for a home or other space. The method may include advertising an appliance to a controller of an automation system via a computer network. The method may include transmitting a signal to the controller indicating capabilities of the appliance. Transmitting the signal to the controller indicating capabilities of the appliance may include at least one of providing a pointer to a record of a remote database comprising the information, or providing the information directly from the appliance via the network. The method may further include converting audio input from a user into an audio signal, using an electroacoustic transducer. Converting the audio input may be performed using a mobile entity operating a user interface application. In the alternative, the converting may be performed using a transducer component of the appliance itself. The method may include transmitting control settings for the appliance encoded in the audio signal to the controller. In another aspect, the method may include transmitting a network identifier for the appliance encoded in the audio signal.
In related aspects, a control apparatus may be provided for performing any of the methods and aspects of the methods summarized above. An apparatus may include, for example, a processor coupled to a memory, wherein the memory holds instructions for execution by the processor to cause the apparatus to perform operations as described above. Certain aspects of such apparatus (e.g., hardware aspects) may be exemplified by equipment such as a computer server, system controller, control point or mobile computing device. Similarly, an article of manufacture may be provided, including a computer-readable storage medium holding encoded instructions, which when executed by a processor, cause a computer to perform the methods and aspects of the methods as summarized above.
The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
Voice control is becoming popular in home automation systems and may become a standard feature that users expect. The present disclosure concerns methods and apparatus for leveraging voice control to make the process of adding new control points to a home automation system easier for the consumer. Instead of being required to update an automation database via a graphical user interface, users can, if they choose, use voice commands to configure new control points as they are added to an existing automation system. This audio-driven configuration process may be used to inform the system how the user wishes to address (name) the added component in the system, and can also be used for user authentication.
Referring to
The local control node 102 may be coupled to a data store 104, for example a database holding configuration and control information for the network 122, among other things. The configuration information may include, for example, a description of each control point 108 connected to the network 122 including if applicable a description of a dumb appliance 114 (such as a lamp or the like) having its power or other inputs controlled by the processor-controlled “smart” control point 108. In the alternative, the control point 108 may be a smart appliance such as, for example, a microprocessor controlled video camera with a built in network interface. Configuration information in the data store 104 may further include addressing information for communicating with the control point 108 over the network 122, and control settings such as specified by voice command or other user input concerning when and how various control capabilities of the control point 108 are to be used. For example, the control settings may define one or more times at which the control point 108 is to power the appliance 114 on or off.
When a new control point is to be added to the system 100, or when performing an initial setup operation, the controller 102 should be made aware of the new control point 108 and receive authenticated authorization from the user to permit the installation. The controller 102 should also be made aware of and record a reference name that the user will use to identify and control the control point in the automation system 100. The controller may also learn and record one or more voice commands that the user may wish to define for the specific purpose of controlling operation of the control point.
For example, a user 106 may add a switched wall outlet control point 108 to the system 100. The wall outlet 108 may be configured to communicate with the controller 102 using a power line or wireless protocol. The control point 108 may be configured to permit a device to be controlled (e.g., powered on/off) to be plugged into a standard electrical power socket. The control point 108 may be added by plugging it into a passive electrical outlet. The act of powering up the control point 108, or another event such as the user activating a button or switch on the control point, causes the control point to advertise its presence in the system 100 to the controller 102, for example using a discovery protocol such as Bonjour or WiFi Direct. As part of the discovery process, the control point 108 may transmit information about its capabilities to the controller 102, which may store the information in the data store 104. Such capabilities may include, for example, a human-spoken name, on/off scheduling, dimming percentage, or other control settings specific to the control point 108. The controller may thus be made aware of the new control point 108 and the type of control settings it can support. However, the controller 102 may still need user input to define user-selected values for the control settings, for example a specific schedule for turning the power on or off
During or after the discovery process the controller 102 may cause the speaker 112 to output electronic speech informing the user about the capabilities of the control point 108. For example, the controller 102 may cause the speaker 112 to emit speech, for example: “A new control point has been added. What would you like to name it?” The controller 102 may likewise prompt the user for other information, for example: “This new control point supports dimming What dimming percentage would you like to use as the default?” In addition, the controller may ask the user 106 to supply authentication information, for example: “You are adding a new control point to your home automation system. Please speak your 5 digit pass code.” Optionally, the controller 102 may perform a voice print analysis of audio input received via the transducer 110 to confirm the identity of the user 106 supplying the audio input.
The controller 102 may combine the addressing details for the control point 108 learned during the discovery process and the settings dictated by the user 106 to complete a new entry in the data store 104 for the control point. The controller may use the information gained during the discovery process, for example to infer which microphone received audio input during the process and therefore determine an approximate location of the control point 108. Such location information may be useful, for example, to disambiguate commands such as “turn on light” later.
The controller 102 may be coupled to a wide area network 118 via any suitable network interface. In addition, the controller may support remote access and control by a remote user via the WAN 118. For example, a user at a remote access node 120, such as a smart phone or other portable computing device, may connect to the controller 102 via a wireless communication system 116 and the WAN 118.
Another perspective of the foregoing embodiments is provided by the use case 200 illustrated in
At 208, the user initiates a triggering event, for example connecting a control point or appliance to the automation system network and powering up. At 210, the control point detects the triggering event, for example by applying a set of conditions to a change in its machine state, and detecting the event by satisfying all conditions. At 212, the control point advertises its presence to the local control node 206, for example using a discovery protocol as mentioned above. At 214, the local control node 206 receives the discovery advertisement and thereby detects the new control point.
At 216, the local control node may query the control point 204 concerning its control capabilities. At 218, the control point 204 may respond to the query by providing information detailing its control capabilities to the local control node 206. At 220, the local control node may use the capability information to create a registry entry for the control point 204 in a local automation database.
At 222, the local control node may direct an audible user authentication query to a speaker module or other audio output transducer located near the control point 204. The user 202 may respond by speaking a response including audible authentication information 224, which may be received by a microphone or the like near the control point. The local control node 226 may use the audible information to discern a pass code and/or a voice print matching a respective stored pass code or stored voice print for the user 202.
Then, at 228, the local control node 206 may similarly direct one or more audible configuration queries to the user 202. At 230, the user may respond to each configuration query by providing a requested control setting. The query/response process may be interactive, in that the user 202 may use voice commands to direct the topics to which control questions are asked. In the alternative, or in addition, the user 202 may supply verbal control setting input to the local control node 206 without waiting for a question. One of the options for a control setting may be to defer setting one or more control settings for a later time. The user may then log into the local control server 206 and make adjustment to the control settings, or add new settings, using a conventional graphical user interface, if desired. This may be more practical when adding appliances with complex control capabilities.
On receiving the control settings, the local control node may store the setting in the local control database, at 232. Optionally, the local control node may, at 234, provide the control setting or related control configuration information to the control point 204. At 236, if necessary the control point 204 may configure an internal control scheme in accordance with the control settings, in a local memory. At 238, the control point 204 may acknowledge that the configuration is complete to the local control node 206. Optionally, the local control node 206 may, at 240, provide an audible confirmation to user 202 that the control settings are received and the configuration of the control point 204 is complete.
In other embodiments, as shown in
In addition, one the application is installed on the mobile computer 302 and the control point 304 is powered on, the control point may advertise its presence and the mobile computer 302 may discover the control point. The control point 304 may be powered on by plugging into a power circuit (e.g., wall socket), or may be switched on by the user 306 and operate from an internal battery.
The user 306 may use the mobile device 302 to configure the control point 304. For example, the user may speak into the microphone 310 of the mobile device 302 in response to audio prompts generated by the application emanating from the speaker 308. The application may perform user authentication and obtain control settings for the control point from the user in a manner similar to the system controller of system 100. It may operate as a smart client that relays information to the system controller, or as a dumb client principally supplying the audible interface devices 308, 310 for use by the system controller, or some combination of the foregoing. In addition, the verbal data collection may be assisted by a complementary graphical user interface appearing on a display screen of the mobile device 302.
Optionally, the mobile device 302 may perform voice processing and determine the control settings, construct a message including the control settings according to any acceptable communications protocol, and transmit the message to the system 100 controller. In the alternative, the mobile device may simply relay raw audio data to the system controller. Either way, the system controller may obtain necessary control settings for controlling a newly added control point via an audio interface with the user 306. Functions of the mobile computer 302 may, in alternative embodiments, be integrated directly into the control point 304.
Another perspective of the foregoing embodiments using a mobile computing device is provided by the use case 400 illustrated in
At 408, a user may install an application for configuring the control point 404 on the mobile entity 402. At 410, the mobile entity and local control node 406 may engage in communications over a wireless interface to authenticate the mobile device 402 and user. This 410 may be triggered, for example, by activation of the application on the mobile device 402 while the device 402 is in range of a wireless transceiver connected to the local control node 406 for the wireless interface. At 412, assuming the mobile entity 402 and user can be authenticated by the information supplied by the mobile entity, the local control node 406 may register an identifier for the mobile entity in a data store.
At 414, the control point 414 may detect an event triggering an initial configuration process, for example, a power-on event in a context of not being registered or configured with any automation system, or detecting entry of a specific user request to configure the control point. In response to detecting the event, at 416, the control point 404 may advertise its presence using any suitable discovery protocol, for example, a wireless protocol recognized by the application running on the mobile entity 402. Such a wireless protocol may include, for example, WiFi Direct, Near Field Communication (NFC), Bluetooth Low Energy (BTLE), or audio. At 418, the mobile entity 402 may detect the discovery beacon or other signal from the control point 404. At 420, the mobile entity operating automatically under control of the application may query the control point 404 regarding its capabilities for control. At 422, the control point may provide information defining its control capabilities to the mobile entity 402 via the wireless link. The information may be provided directly from the control point, or indirectly via a remote database referenced by a model number or similar identifier for the control point. At 424, the mobile entity may relay the capability information to the local control node. At 426, the local control node may register the control point capability information in a database, based on the information received from the mobile entity 402.
After obtaining the capability information for the control point, the mobile entity may, at 428, receive control settings from the user via a verbal exchange, using the electroacoustic transducers as previously described. The mobile entity may process an audio signal from a microphone or other input transducer to obtain an analog or digital audio signal, which it may then process using a speech recognition algorithm to identify words spoken by the user. In some embodiments, the mobile entity may transmit text data from the speech recognition algorithm to the controller for further processing. In other embodiments, the mobile entity may perform further processing itself. This further processing may include, for example, using a decision tree or other logical structure based on a context in which words are recognized, the mobile entity or controller may infer one or more control settings based on the verbal input from the user. As previously noted, control settings may include a user name for the control point and a setting deferring configuration of one or more control settings for an indeterminate period. Control settings may also include one or more parameters for controlling the capabilities of the control point, for example, scheduling, power, motion, temperature, or other parameters.
At 430, the mobile entity may transmit the configuration information including any control settings, or text data from which the controller may determine the control settings, to the control point. At 432, the control point may configure itself in accordance with the control settings, for example by recording the settings in a local memory with variables of a control program set to appropriate values based on the control settings. In the alternative, or in addition, some control settings may be implemented at a system level, for example by the local control node 406. At 434, the control point 404 may report that its configuration is complete to the mobile entity 402.
At 436, the mobile entity may report the configuration information, including some or all of the control settings, to the local control node 406. To the extent that the local control node 406 will be controlling capabilities of the control point 404, or as a back-up for restoring the system in the event of a system failure, the local control node may store the control settings in a system database in association with the registry information for the control point.
Methodologies that may be implemented in accordance with the disclosed subject matter may be better appreciated with reference to various flow charts. For purposes of simplicity of explanation, methodologies are shown and described as a series of acts/operations. However, the claimed subject matter is not limited by the number or order of operations, as some operations may occur in different orders and/or at substantially the same time with other operations from what is depicted and described herein. Moreover, not all illustrated operations may be required to implement methodologies described herein. It is to be appreciated that functionality associated with operations may be implemented by software, hardware, a combination thereof or any other suitable means (e.g., device, system, process, or component). Additionally, it should be further appreciated that methodologies disclosed throughout this specification are capable of being stored as encoded instructions and/or data on an article of manufacture to facilitate transporting and transferring such methodologies to various devices. Those skilled in the art will understand and appreciate that a method could alternatively be represented as a series of interrelated states or events, such as in a state diagram.
The method 500 may further include, at 520, receiving, by the computer server (also referred to as a system controller), information indicating capabilities of the at least one appliance. For example, the information may indicate one or more operational states that can be controlled by the automation system. The number of states may vary depending on the complexity of the appliance and its control system. For example, a simple appliance such as a lamp may have only two control states, power on or power off. A more complex apparatus may have a much greater number of controllable states in addition to power on or off; for example, a motorized video camera system may also have capabilities such as pan left or right, pan up or down, zoom in or out, change frame rate or resolution, or other capabilities. The information indicating capabilities may define, according to a standard automation protocol, the various controllable states of the appliance.
The method 500 may further include, at 530, receiving audio input from a user converted by an electroacoustic transducer into an audio signal. For example, the computer server may receive a digital audio signal from an analog-to-digital converter, which, in turn, receives an analog audio signal from a microphone. The microphone may receive the audio input from the user, for example a user speaking answers in response to a series of audible questions generated by a user interface module of the system controller.
The method 500 may further include, at 540, determining control settings controlling the capabilities of the at least one appliance, based on the audio signal. For example, the control setting may determine times at which the appliance is powered on or off, or specify one or more operations to be performed by the appliance when it is powered on. The computer server may determine the control setting using a context-based analysis of voice data. For example, if the appliance is a lamp, an audible user interface may generate a series of questions and wait for a response after each question. The server may analyze the audio signal received after each question using a speech recognition algorithm, and infer a question response based on the results of the speech recognition and the questions. For example, in response a question such as “what time should the lamp be turned on?” the server may interpret a response such as “seven pee em” to mean 7 pm. In some cases, the user may wish to defer detailed control of the appliance for a later time or via a different interface. For example, for complex control schemes, a graphical user interface may provide a more efficient way to define control settings. In such cases, the control setting may be “defer setting” to another time to be determined by the user. The user still benefits, however, by conveniently adding the appliance to the network to be controlled at another time.
Additional operations 600, 700 and 800 for voice-controlled configuration of an automation system by a system controller are illustrated in
Referring to
As shown in
As shown in
With reference to
As illustrated, in one embodiment, the apparatus 900 may include an electrical component or module 902 for detecting an appliance in communication via a computer network with the system controller. For example, the electrical component 902 may include at least one control processor coupled to a network interface or the like and to a memory with instructions for detecting an appliance advertising its presence on the network. The electrical component 902 may be, or may include, means for detecting an appliance in communication via a computer network. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, designating a port for receiving advertisements from appliances on a computer network, triggering an interrupt procedure when a signal is received via the designated port, and operating the interrupt procedure to process identification or addressing data received via the designated port.
The apparatus 900 may include an electrical component 904 for receiving information indicating capabilities of the appliance. For example, the electrical component 904 may include at least one control processor coupled to a memory holding instructions for receiving information indicating capabilities of the appliance. The electrical component 904 may be, or may include, means for receiving information indicating capabilities of the appliance. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, one or more of the algorithms 810 or 820 described above in connection with
The apparatus 900 may include an electrical component 906 for receiving audio input from a user converted by an electroacoustic transducer into an audio signal. For example, the electrical component 906 may include at least one control processor coupled to a memory holding instructions for audio input from a user converted by an electroacoustic transducer into an audio signal. The electrical component 906 may be, or may include, means for receiving audio input from a user converted by an electroacoustic transducer into an audio signal. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, receiving a file or streaming data using a packet data protocol (e.g., TCP/IP), reading header data to recognize data identified as audio data, and processing the data identified as data representing an audio signal according to a designated audio encoding protocol.
The apparatus 900 may include an electrical component 908 for determining control settings controlling the capabilities of the appliance, based on the audio signal. For example, the electrical component 908 may include at least one control processor coupled to a memory holding instructions for determining at least one control setting based on audio input from an authorized user. The at least one control setting may include a control for deferring detailed configuration of the appliance until a subsequent time or indefinitely. The electrical component 908 may be, or may include, means for determining control settings controlling the capabilities of the appliance, based on the audio signal. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, speech recognition of the audio signal, semantic analysis of recognized speech, and inferring the control setting based on the semantic analysis and context in which the speech is received. The apparatus 900 may include similar electrical components for performing any or all of the additional operations 600, 700 or 800 described in connection with
In related aspects, the apparatus 900 may optionally include a processor component 910 having at least one processor, in the case of the apparatus 900 configured as a system controller or computer server. The processor 910, in such case, may be in operative communication with the components 902-908 or similar components via a bus 912 or similar communication coupling. The processor 910 may effect initiation and scheduling of the processes or functions performed by electrical components 902-908.
In further related aspects, the apparatus 900 may include a network interface component 914 for communicating with other network entities, for example, an Ethernet port or wireless interface. The apparatus 900 may include an audio processor component 918, for example a speech recognition module, for processing the audio signal to recognize user-specified control settings. The apparatus 900 may optionally include a component for storing information, such as, for example, a memory device/component 916. The computer readable medium or the memory component 916 may be operatively coupled to the other components of the apparatus 900 via the bus 912 or the like. The memory component 916 may be adapted to store computer readable instructions and data for performing the activity of the components 902-908, and subcomponents thereof, or the processor 910, the additional operations 850 or 860, or the methods disclosed herein. The memory component 916 may retain instructions for executing functions associated with the components 902-908. While shown as being external to the memory 916, it is to be understood that the components 902-908 can exist within the memory 916.
A client device, for example a mobile entity, control point or smart appliance, may cooperate with a system controller for voice-controlled configuration of an automation system. Accordingly,
Method 1000 may further include, at 1030, converting audio input from a user into an audio signal, using an electroacoustic transducer. For example, a microphone in the appliance, control point, auxiliary mobile interface (e.g., smart phone), or stationary microphone coupled to the controller may receive spoken input from a user, which is converted to an analog audio signal and subsequently into a digital audio signal for processing using a speech recognition algorithm. The operation 1030 may be preceded by audio output from an electroacoustic transducer, such as a speaker. The audio output may be configured, for example, as speech phrasing a question to be answered by the user. Questions may include, for example, “what is this appliance's name?” or “please provide a name for this appliance.” Other examples are provided herein above.
The method 1000 may further include, at 1040, transmitting control settings for the appliance encoded in the audio signal to the controller. For example, the appliance, a connected control point, or an auxiliary mobile interface device, may relay the analog or digital audio signal, or text data from a speech recognition algorithm, to the system controller for further processing. In the alternative, the appliance, a connected control point, or an auxiliary mobile interface may process the audio signal to determine the control settings, using a speech recognition/semantic analysis algorithm. Subsequently, the appliance may be controlled by the controller based on the control settings. In addition, the user may access and modify the control settings, or add additional control settings, either through the same audio interface as used for initial set-up, or using a more traditional graphical user interface.
In addition,
Referring to
The additional elements 1100 may further include, at 1120, performing the converting the audio input using a transducer component of the appliance. For example, a microphone may be built into the appliance, a connected control point, or an auxiliary mobile interface device. In the alternative, the microphone or other transducer may be a component of the automation system to which the appliance is being connected. The additional elements 1100 may further include, at 1130, transmitting a network identifier for the appliance encoded in the audio signal. For example, the audio signal may include speech recorded in response to a statement such as “please provide a name for the appliance you are connecting.”
As noted above, the client device may transmit a signal to the controller indicating capabilities of the appliance (1020) in various ways. Accordingly, referring to
With reference to
As illustrated, in one embodiment, the apparatus 1300 may include an electrical component or module 1302 for advertising an appliance to a controller of an automation system via a computer network. For example, the electrical component 1302 may include at least one control processor coupled to a network interface or the like and to a memory with instructions for advertising the appliance using a selected discovery protocol for the computer network. The electrical component 1302 may be, or may include, means for advertising an appliance to a controller of an automation system via a computer network. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, advertising a network entity using a discovery protocol such as, for example, Bonjour or WiFi Direct.
As illustrated, in one embodiment, the apparatus 1300 may include an electrical component or module 1304 for transmitting a signal to the controller indicating capabilities of the appliance. For example, the electrical component 1304 may include at least one control processor coupled to a network interface or the like and to a memory with instructions for generating the signal indicating capabilities of the appliance according to a defined protocol, and transmitting the signal to the controller using the computer network. The electrical component 1304 may be, or may include, means for transmitting a signal to the controller indicating capabilities of the appliance. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, providing information defining the capabilities of the appliance directly to the controller, or in the alternative, information for locating a list of appliance capabilities in a designated data store (e.g., providing a model identifier for the appliance). In either case, the algorithm may include providing the information according to a predefined communications protocol for the system controller over the network.
As illustrated, in one embodiment, the apparatus 1300 may include an electrical component or module 1306 for converting audio input from a user into an audio signal, using an electroacoustic transducer. For example, the electrical component 1306 may include at least one control processor coupled to a microphone or the like and to a memory with instructions for converting an analog audio signal into a digital signal. The electrical component 1306 may be, or may include, means for converting audio input from a user into an audio signal, using an electroacoustic transducer. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, activating a microphone in response to an audible query, collecting an analog audio signal from the microphone, and converting the analog signal to digital audio data.
As illustrated, in one embodiment, the apparatus 1300 may include an electrical component or module 1308 for transmitting control settings for the appliance encoded in the audio signal to the controller. For example, the electrical component 1308 may include at least one control processor coupled to a network interface or the like and to a memory with instructions for transmitting digital or analog audio data to the automation system controller. The electrical component 1308 may be, or may include, means for transmitting control settings for the appliance encoded in the audio signal to the controller. Said means may include an algorithm executed by one or more processors. The algorithm may include, for example, identifying a subset of audio data for transmitting to the controller, and transmitting digital or analog audio data to the automation system controller using a wireless or wired communications protocol for the automation system.
The apparatus 1300 may include similar electrical components for performing any or all of the additional operations 1100 or 1200 described in connection with
In related aspects, the apparatus 1300 may optionally include a processor component 1310 having at least one processor, in the case of the apparatus 1300 configured as a client entity. The processor 1310, in such case, may be in operative communication with the components 1302-1308 or similar components via a bus 1312 or similar communication coupling. The processor 1310 may effect initiation and scheduling of the processes or functions performed by electrical components 1302-1308.
In further related aspects, the apparatus 1300 may include a network interface component 1314 and or a transceiver (not shown). The apparatus 1300 may further include an electroacoustic transducer 1318, for example, a microphone and/or speaker. The apparatus 1300 may optionally include a component for storing information, such as, for example, a memory device/component 1316. The computer readable medium or the memory component 1316 may be operatively coupled to the other components of the apparatus 1300 via the bus 1312 or the like. The memory component 1316 may be adapted to store computer readable instructions and data for performing the activity of the components 1302-1308, and subcomponents thereof, or the processor 1310, the additional aspects 1100-1200, or the methods disclosed herein for a client device. The memory component 1316 may retain instructions for executing functions associated with the components 1302-1308. While shown as being external to the memory 1316, it is to be understood that the components 1302-1308 can exist within the memory 1316.
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed with a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the disclosure herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
In one or more exemplary designs, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and non-transitory communication media that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such storage (non-transitory) computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection may be properly termed a computer-readable medium to the extent involving non-transitory storage of transmitted signals. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually encode data magnetically, while discs hold data encoded optically. Combinations of the above should also be included within the scope of computer-readable media.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.