Automatic contextual selection of a smart device

Systems and methods for automatically selecting a smart device based on the context of a voice command event are disclosed. In embodiments, a smart device controller receives a user voice command from a user regarding a function to be performed during a command event within a smart environment; determines context data associated with the user voice command; determines a smart device name of the user voice command; accesses a knowledge database including registered smart devices and associated context-specific names, wherein the context-specific names are associated with context parameters; matches the smart device name of the user voice command with one of the context-specific names of the knowledge database; automatically chooses a select smart device from the plurality of registered smart devices to perform the function based on the matching; and initiates the function at the select smart device.

BACKGROUND

Aspects of the present invention relate generally to smart device systems and, more particularly, to automatically selecting a smart device to perform a function based on the context of a voice command event.

Intelligent systems for smart environments are increasingly utilized for home or business automation and generally include one or more smart controllers and smart devices (e.g., internet-of-things (IOT) devices) controlled by the smart controller(s). Such intelligent systems may control several different onsite smart devices of the same type (e.g., same device type), such as a plurality of smart televisions. One example of an intelligent system is an artificial intelligence (AI) voice response system (personal assistant device) including a smart controller for initiating various functions of smart devices within a home or business. Such smart controllers may receive sensor data from smart device sensors within the smart environment.

SUMMARY

In an aspect of the invention, a computer-implemented method includes: receiving, by a smart device controller, a user voice command from a user regarding a function to be performed during a command event within a smart environment, the smart environment including a plurality of registered smart devices; determining, by the smart device controller, context data associated with the user voice command; determining, by the smart device controller, a smart device name of the user voice command; accessing, by the smart device controller, a knowledge database including the registered smart devices and associated context-specific names for the registered smart devices, wherein the context-specific names are associated with context parameters; matching, by the smart device controller, the smart device name of the user voice command with one of the context-specific names of the knowledge database based on the context data matching the context parameters associated with the one of the context-specific names; automatically choose, by the smart device controller, a select smart device from the plurality of registered smart devices to perform the function based on the matching the smart device name with the one of the context-specific names; and initiating, by the smart device controller, the function at the select smart device.

In another aspect of the invention, there is a computer program product including one or more computer readable storage media and program instructions collectively stored on the one or more computer readable storage media. The program instructions are executable by a computing device to cause the computing device to: receive a user command from a user regarding a function to be performed during a command event within a smart environment, the smart environment including a plurality of registered smart devices; identify the user; determine context data and a smart device name associated with the user command; access data of the identified user in a knowledge database, wherein the knowledge database includes data for multiple users including data regarding the registered smart devices and associated context-specific names for the registered smart devices, wherein the context-specific names are associated with context parameters; match the smart device name with one of the context-specific names based on the context data matching the context parameters associated with the one of the context-specific names; automatically choose a select smart device from the plurality of registered smart devices to perform the function based on the matching the smart device name with the one of the context-specific names; and initiate the function at the select smart device.

In another aspect of the invention, there is a system including a processor, a computer readable memory and one or more computer readable storage media associated with a computing device. The system includes: program instructions to receive a user command from a user regarding a function to be performed during a command event within a smart environment, the smart environment including a plurality of registered smart devices in communication with the computing device; program instructions to determine relative locations of the plurality of registered smart devices within the smart environment; program instructions to determine context data and a smart device name associated with the user command; program instructions to access data of the user in a knowledge database including data regarding the registered smart devices and associated context-specific names for the registered smart devices, wherein the context-specific names are associated with context parameters; program instructions to match the smart device name with one of the context-specific names based on the context data matching the context parameters associated with the one of the context-specific names; program instructions to automatically choose a select smart device from the plurality of registered smart devices to perform the function based on the matching the smart device name with the one of the context-specific names; and program instructions to initiate the function at the select smart device. The program instructions are collectively stored on the one or more computer readable storage media for execution by the processor via the computer readable memory.

DETAILED DESCRIPTION

Aspects of the present invention relate generally to smart device systems and, more particularly, to automatically selecting a smart device to perform a function based on the context of a voice command event. In embodiments, a smart device controller analyzes voice command and context data from historic voice command events utilizing machine learning techniques to determine what users are calling each smart device in a smart environment for a given contextual situation. The smart device controller generates and updates a knowledge database (knowledge corpus) of context-specific names for each of the smart devices, enabling the smart device controller to automatically choose the correct smart device to control in a given situation based on the context of a user voice command event (e.g., location of the user, location of the smart device, identity of the user, time of day, etc.). In embodiments, a machine learning module of the smart device controller creates the knowledge database by correlating voice command data with a given contextual situation.

In embodiments, a data collection module of a smart device controller gathers voice command event data over time including: user voice command content to execute an action in a smart device; the action executed by the smart device controller; a user reaction to the action (e.g., manual correction of the action or alternative commands submitted after the action); user spoken texture and tone analysis (e.g., voice recognition parameters); different names of smart devices utilized by users; contextual surroundings of a voice command event (e.g., time of day, location of user, etc.).

In embodiments, an artificial intelligence (AI) voice response system of a smart device controller identifies during a voice command event: (a) if a user is asking for any activity to be performed; (b) if the user has spoken any stored context-specific name for a registered smart device; (c); contextual situations associated with the voice command event; and (d) if any location for the activity is identified. The AI voice response system then identifies one or more appropriate smart devices to execute the activity. After the activity is executed, the AI voice response system analyzes a user's reactions to the activity to determine if any corrections (e.g., manual corrections) were made by the user and to determine if any updates are needed to a knowledge database of the context-specific names.

A smart environment (e.g., smart home) may have multiple registered smart devices, including multiple smart devices of the same type (e.g., multiple smart televisions). For example, a smart home may have four bedrooms and a living room, each with their own smart television. Typically, voice commands to initiate functions of registered smart devices require identification of the smart device using a predetermined name registered with a smart device controller. It may be difficult for a user to remember the predetermined names for each smart device within a smart environment, and an ambiguous voice command from a user may result in a smart controller initiating a function at the wrong smart device.

Moreover, smart devices may change location within a smart environment. In this case, a voice command may cause the wrong device to perform a function. For example, a voice command to turn on a living room television may turn on a television in a bedroom if the television previously associated with the living room has been relocated to the bedroom. Advantageously, embodiments of the present invention address these technical problems of smart environments by providing a method and system by which a smart device controller can analyze the context of a voice comment/request and execute the voice command in an appropriate smart device(s) based on stored context-specific names for the smart devices.

Referring now toFIG. 1, a schematic of an example of a computing infrastructure is shown. Computing infrastructure10is only one example of a suitable computing infrastructure and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the invention described herein. Regardless, computing infrastructure10is capable of being implemented and/or performing any of the functionality set forth hereinabove.

FIG. 2shows an exemplary smart environment100in accordance with aspects of the invention. The smart environment100includes one or more smart device controllers110in communication with a network112(e.g., Internet) and a plurality of smart devices114. The smart device controller110may be configured to implement functions automatically and/or based on user input (e.g., voice commands). The smart device controller110may include components of the computing device12ofFIG. 1and may be in the form of special computing devices (e.g., personal assistant device) configured to control automated functions of smart devices114in the smart environment100. For example, a smart device controller110may be configured to initiate functions of one or more smart devices114in a smart home or smart business environment via wired or wireless communication.

The network112may be any suitable communication network or combination of networks, such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet). In embodiments, the one or more smart device controllers110of the smart environment100are in communication with one or more remote servers (not shown) via the Internet.

The term smart environment as used herein refers to a location (e.g., a home or building) including one or more smart devices114(e.g., IOT devices) controlled by one or more smart device controllers110via a network connection (e.g., wired connections, wireless connections, or combinations thereof), wherein functions of the one or more smart devices114may be controlled by the one or more smart device controllers110based on stored rules and/or input of users. Examples of smart devices114that may be utilized in a smart environment100include lighting or lighting controls (e.g.,114a,114e), smart televisions (e.g.,114b,114d,114g), smart speakers (e.g.,114c), smart phones (e.g.,114h), and tablets (e.g.,114g). Smart devices114may each include components of the computing device12ofFIG. 1, including one or more program modules (e.g., program module42ofFIG. 1) configured to receive commands from the one or more smart device controllers110and initiate functions of the respective smart devices114based thereon. Embodiments of the invention are not intended to be limited to the exemplary smart devices114discussed herein, and a variety of different types of smart devices114could be utilized.

In implementations, a plurality of smart device controllers110may be associated with a particular location (smart environment100). For example, embodiments of the invention may utilize smart device controllers110including a smartphone and personal computer each configured to remotely control lighting, heating, electrical devices or other smart devices114within the smart environment100. Moreover, a smart device controller110may be part of a smart device114itself or may be a separate part of a smart device system, such as a stand-alone personal assistant device for a smart home system.

Each smart device controller110may include one or more program modules (e.g., program module42ofFIG. 1) configured to perform one or more functions described herein. In embodiments, the smart device controller110includes a response module120(e.g., an AI voice response system) configured to receive and process user commands (e.g., voice commands) from one or more users and save user command event data in the data collection module121. Personal assistant tools and methods may be utilized by the smart device controller110in accordance with embodiments of the invention to understand user input commands and execute the performance of those commands at one or more smart devices114.

In aspects, a machine learning module122of the smart device controller110is configured to analyze the user command event data and create and/or update a knowledge database123based thereon. In implementations, the knowledge database123comprises context-specific names of the smart devices114, wherein the names are associated with the smart devices114and one or more context parameters such as a location of a smart device114, a location of a user, the identity of a user, a time of day, an action to be taken, etc.

In embodiments, the smart device controller110includes a smart device database124including registration information of the user and information regarding smart devices114within the smart environment100. In some implementations, the smart device database124and the knowledge database123are combined, while in other implementations the databases123and124are separate. In aspects, the smart device controller110includes a sensor module125configured to receive sensor data from one or more sensors116a-116cin the smart environment100. The sensors116a-116cmay be sensors incorporated into one or more of the smart devices114and/or the smart device controllers110or may be separate sensors utilized by the smart device controller110to gather context data (e.g., a location of the user, etc.). Various types of smart environment sensors may be utilized by the smart device controllers110in accordance with embodiments of the invention, such as presence sensors of smart thermostat systems, data from home security systems, data from mobile devices within the smart environment100(e.g., smartphones) indicating a location of a user, or the like.

In embodiments, the one or more smart device controllers110may include additional or fewer components than those shown inFIG. 2. In embodiments, separate components may be integrated into a single computing component or module. For example, the knowledge database123and the smart device database124may be combined. Additionally, or alternatively, a single component may be implemented as multiple computing components or modules. Further, the quantity of devices and/or networks in the smart environment100is not limited to what is shown inFIG. 2. In practice, the environment100may include additional devices and/or networks; fewer devices and/or networks; different devices and/or networks; or differently arranged devices and/or networks than illustrated inFIG. 2. Devices of the smart environment100may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

FIG. 3shows an exemplary flowchart of steps of a method in accordance with aspects of the invention. Steps of the method ofFIG. 3may be performed in the environment illustrated inFIG. 2and are described with reference to elements shown inFIG. 2. Although multiple smart device controllers110may be utilized, a sole smart device controller110is referenced with respect toFIG. 3for the sake of simplicity.

At step300, the smart device controller110registers smart devices114in the smart environment100. For example, a user may enter registration information for smart devices114a-114hwith the smart device controller110, such as through the use of a personal computer device (e.g., tablet1140or the like. In another example, smart devices114may have an automatic registration function, wherein controllers of respective smart devices114communicate registration information regarding the smart devices114to the smart device controller110, either when prompted by the smart device controller110or based on internal rules/functions (e.g., based on an initial device setup protocol). In implementations, the smart device controller110saves registration information in the smart device database124. Registration information may include, for example, user authorization information (e.g., which users have permissions to access smart devices114or smart device functionality), user identification information (e.g., voice recognition information for users, facial recognition data for users), smart device type (e.g., smart television, smart speaker, etc.), smart device identification (ID), initial locations of smart devices114(e.g., zone 1 of 5), or other information useful in the identification of a smart device114or in the identification of a user of the smart environment100. In implementations, the data collection module121implements step300.

At step301, the smart device controller110determines locations of the smart devices within the smart environment100. In implementations, the smart device controller110of the smart device controller110locates relative positions of smart devices114with respect to the smart device controller110. In implementations, the smart device controller110identifies the relative positions of the smart devices114based on defined area boundaries (e.g., there are four bedrooms within the smart environment100, and each bedroom is identified uniquely). In aspects, the smart device controller110identifies the relative locations of the smart devices114based on IoT sensor detection strength analysis (e.g., the relative strength of wireless signals between the smart device controller110and respective smart devices114). Various tools and techniques for calculating relative locations of smart devices114with respect to the smart device controller110may be utilized in implementations of the invention. In implementations, the sensor module125of the smart device controller110implements step301.

At step302, the smart device controller110tracks user activity using sensors (e.g., sensors116a,116b, and116c) within the smart environment100. For example, sensors116a,116b, and116cmay be stand-alone sensors or sensors incorporated in respective smart devices114or within the smart device controller110, configured to sense the presence of a user within a predetermined distance of the sensor. In embodiments, the smart device controller110tracks a user's entrance and exit to and from various rooms or zones within the smart environment100based on sensor data (e.g., IoT sensor data). In one example, a sensor116ais a motion detecting sensor that is part of a smart thermostat. In another example, the sensor116cis a global positioning system (GPS) device that is part of a personal computing device of a user (e.g., smartphone, smartwatch, etc.) that is in communication with the smart device controller110. Various user location detecting techniques and tools may be utilized by the smart device controller110to determine a position of a user within the smart environment100. In embodiments, IoT sensors within the smart environment100are configured to identify an activity a user is performing (e.g., hand gesture pattern, mobility pattern, etc.), and the smart device controller110can obtain data from the various IoT sensors to identify the activity of the user. In implementations, the sensor module125of the smart device controller110implements step302.

At step303, the smart device controller110receives a user command (e.g., voice command) to initiate one or more functions of one or more smart devices114within the smart environment100during a command event. Various user-input tools and techniques may be utilized by the smart device controller110in the implementation of step303. For example, a user may give a voice command to the smart device controller110to “turn on the television” or “play music”. Alternatively, a user may input a command through a user interface of a personal computing device (e.g., smartphone114h). The smart device controller110may utilized speech-to-text techniques to convert audio data to text, and natural language processing tools and techniques may be utilized by the smart device controller110to determine the meaning and context of the user command. In embodiments, the response module120implements step303. In implementations, the response module120comprises an AI voice response module.

At step304, the smart device controller110determines context data associated with the user command. For example, the smart device controller110determines one or more of the following: an identity of the user, an activity or function to be performed, timing of the command (e.g., morning, afternoon), a smart device name (e.g., “my TV”), a location of the activity or function to be performed within the smart environment100, and a location of the user within the smart environment100at the time of the user command. In implementations, the smart device controller110utilizes speech recognition technology to identify which user of a plurality of registered users initiated a voice command at step303. In embodiments, the smart device controller110accesses a clock to determine a time of the user command. In aspects, the smart device controller110utilizes natural language processing techniques to identify words in the user command associated with a location within the smart environment100(e.g., a room or zone), a name of a smart device (e.g., television), and/or an activity or function to be performed (e.g., turning on the smart device). In embodiments, the response module120of the smart device controller110implements step304.

At step305, the smart device controller110determines one or more smart devices114to control based on context data gathered by the smart device controller110and the knowledge database123, wherein the knowledge database123includes context-specific names for the one or more smart devices114organized by registered user. The term “name” as used herein refers to a term or terms (e.g., a noun) utilized by a user to refer to a particular smart device114. The term “context-specific name” as used herein refers to a name of a smart device that is associated with one or more context parameters (context parameter data) associated with user commands. It can be understood that in different historical user interactions with the smart device controller110, a user may call a smart device by different names. For example, a first user may refer to a smart television114bin more than one way. In this example, the first user may refer to the smart television114bin a voice command as “my favorite TV”, “study room TV”, “small TV”, etc. In another example, during a voice command, a user may refer to a mobile smart speaker114cas “the living room speaker”, “the bedroom speaker”, “the home speaker”, etc., depending on which room/zone of the smart environment100the mobile smart speaker is currently located in, and/or the current location of the user. In implementations, the knowledge database123stores context-specific names along with associated context parameters (context parameter data), wherein the context-specific names are learned over time by the smart device controller110. Context parameter data may include an identity of a user, a location of the smart device114, a location of a user, a time of day, and/or a function/action to be performed (by one or more smart devices114), for example.

In aspects, the determining one or more smart devices114to control at step305includes determining a location of a function/action to be performed (i.e., performance location) by one or more smart devices114based on context data derived from the user command and a location of the user within the smart environment100. For example, the smart device controller110may utilize user tracking data generated at step302to determine that the user is within a first bedroom when issuing a user command to “turn on the television”, wherein the smart device controller110determines that the user wishes to turn on the television in the first bedroom based on the user's location at the time of the command.

In implementations, the determining the one or more smart devices114to control at step305includes determining the type of activity/function the user wishes to be performed, the time of day, and the user issuing the command. In one example, a user issues the following voice command “I will study now, please prepare the environment.” In this example, the smart device controller110determines the timing of the voice command from the context data of step304, identifies the user based on the context data, determines the activity the user wishes to activate based on the context data, understands from this information that the user will be studying in a study room within the smart environment100, and knows to initiate activities/functions in smart devices114within the study room of the smart environment100based on stored activity rules (e.g., pre-set parameters for smart devices114within the study room, such as music settings, light settings, temperature settings, etc.). In embodiments, the response module120of the smart device controller110implements step305.

At step306, the smart device controller110initiates the function/action to be taken at the one or more smart devices114determined at step305. In implementations, the smart device controller110sends instructions to the one or more smart devices114based on the user command received at step303, wherein the instructions cause the one or more smart devices114to initiate the function/action. In one example, the smart device controller110sends instructions to a smart television114bbased on a user command to “turn on my TV” when the user is within a first bedroom. In this case, the smart device controller110recognizes at step305that the user is referring to the smart television114bin a first bedroom based on the user being within the first bedroom (context data) and the knowledge database123listing the context-specific name “my TV” with associated user location data (the first bedroom) for the smart television114b.

At step307, the smart device controller110optionally determines that a user response to the initiated function/action has occurred. In implementations, the user response is a corrective action. The term corrective action refers to a follow-up command of a user in response to the function/action initiated at step306to change the function/action. In one example, the user initiates a corrective action (e.g., user voice command) that cancels or stops the function/action initiated at step306. In another example, the smart device controller110determines that the user has manually performed a corrective action to cancel or stop the function/action initiated at step306(e.g., the user manually turns off the smart television114b). In some embodiments, when a user submits any voice command, an AI voice response system (e.g., response module120) of the smart device controller110executes a function/activity based on available information (context data and data from the knowledge database123) and automatically tracks the user's reaction (e.g., a change in biometric parameters of the user, manual correction of the function/activity by the user, etc.). In one example, the smart device controller110is configured to recognize when biometric data of a user (e.g., from a networked smartwatch of the user) indicates displeasure of the user with the activity/function performed, such as via elevated heartrate levels. In embodiments, the response module120implements step307.

At step308, the smart device controller110stores command event data in the knowledge database123. The command event data may include text data of the user command (e.g., derived using speech-to-text techniques), the activity/function initiated at step306, user corrective actions taken, and context data associated with the user command determined at step304. In embodiments, the smart device controller110stores command event data for each command event over time, thereby developing a historic database of command event data. In embodiments, the data collection module121implements step308.

At step309, the smart device controller110analyzes the stored command event data and updates the knowledge database123as needed. In implementations, the smart device controller110updates the knowledge database123by: adding a new context-specific name for a registered smart device114; deleting a stored context-specific name for a registered smart device114; or updating a stored context-specific name for a registered smart device114(e.g., updating context parameters for the context-specific name). In embodiments, the smart device controller110analyzes the user responses (e.g., corrective actions) performed by user (e.g., manually switched on an air conditioning (AC) system) in the historic command event data to determine if the knowledge database123needs to be updated. In one example, the smart device controller110determines that a stored context-specific name for a registered smart device114is incorrect when the smart device controller110determines at step307that a user corrective action has been taken with respect to a smart device114selected at step305. In this example, the smart device controller110learns that the smart television114bselected at step305was not correct when the user turned off the selected smart television114band turned on another smart device114(e.g., smart television114d) instead. Accordingly, the smart device controller110updates the knowledge database123to reflect the context parameters associated with the smart television114band smart television114d.

In another example, the smart device controller110learns over time new combinations of terms utilized by a particular user in a given context. In implementations, the smart device controller110utilizes an unsupervised clustering model to analyze the stored command event data and recognizes smart devices114associated with different contextual situations, and their context-specific names. For example, the smart device controller110may analyze the stored command event data and determine that a first user has a pattern of using the term “my TV” to turn on a television located in a living room of a home, while a second user has a pattern of using the term “big TV” when turning on the television located in the living room of the home. In embodiments, the smart device controller110identifies a noun in a user's command (e.g., television), and if the noun is not previously defined in the knowledge database123, the smart device controller110updates the knowledge database123with the noun and associated context data to create a new context-specific name for the smart device114associated with the user command. In embodiments, the machine learning module122of the smart device controller110implements step309.

At step310, the smart device controller110repeats steps303-309for each new user command (e.g., voice command) within the smart environment100, thus building and updating the knowledge base123over time. Thus, embodiments of the invention provide for a continuously evolving knowledge corpus using machine intelligence to provide a more user-responsive smart environment100.

FIG. 4shows exemplary data columns in a knowledge database in accordance with aspects of the invention. The data columns ofFIG. 4may be part of the knowledge database123depicted inFIG. 2.

As depicted inFIG. 4, columns400of the knowledge database123organize context data by user, such that the smart device controller110can look up context-specific names401for registered smart devices114by user. In the example ofFIG. 4, users are identified by user identification (ID) data402, which may include voice recognition data, username or login data, facial recognition data, or other types of user identification data. In implementations, an artificial intelligence (AI) voice response system (e.g., response module120) of the smart device controller110is configured to identify each and every user of the smart environment100individually based on spoken texture, or any other recognition methods such as facial recognition, mobile device pattern, etc.

Additionally, the knowledge database123ofFIG. 4includes smart device ID data403for each smart device114registered with the smart device controller110. The smart device ID data403may include data regarding a type of the smart device114(e.g., a smart television, a smart appliance, a smart lighting system, etc.), a model name and/or number, or other identifying information. In embodiments, each smart device114within the smart environment100is identified uniquely, and an appropriate name for each smart device114is given to the devices as per home network IoT device configurations. The knowledge database123ofFIG. 4also stores device location data404for registered smart devices114within the smart environment100, wherein the device location data is associated with context-specific names of registered smart devices114.

In the example ofFIG. 4, a smart environment100includes a first television “Brand X 55 Inch TV” in a first location (Zone 1) within the smart environment100, and a second television “Brand Y 65 Inch TV” in a second location (Zone 2) within the smart environment100. The smart device controller110can recognize, based on the knowledge database123, that User A refers to the first television by different context-specific names than User B, and can also recognize that the User A refers to the first television by different context-specific names than the second television. Moreover, the smart device controller110can recognize, based on the knowledge database123, that a Brand Z Home Speaker is referred to differently by User A when it is in a first location (Zone 1) than when it is located in a second location (Zone 2). In the case of an ambiguous name, such as “Speaker”, the smart device controller110may solve the ambiguity based on other context data, such as where the user is located within the smart environment100when issuing the user command. For example, if the user is in Zone 2 when issuing a command “turn on the Speaker”, the smart device controller110may determine that the user wishes to turn on the Brand Z Home Speaker currently located within Zone 2. While the example ofFIG. 4only shows user IDs402, smart device IDs403, and device location data404associated with context-specific names401, other context data associated with context-specific names can be saved in the knowledge database123for use by the smart device controller110, and the invention is not intended to be limited by the examples discussed herein,

FIG. 5shows an exemplary use scenario in accordance with aspects of the invention. Steps discussed with respect toFIG. 5may be performed in the environment illustrated inFIG. 2and utilizing the steps ofFIG. 3.

In the scenario ofFIG. 5, a smart device controller110adetermines respective locations of a plurality of smart devices114a-114hwithin a smart home environment500. In this example, the smart device controller110autilizes the relative signal strength (S1 and S2) of wireless signals of the networked smart devices114a-114hto determine relative locations of each smart device within the smart home environment500and store the locations in the knowledge database123. The smart device controller110athen receives a user voice command “turn on the television” from User A, regarding a first function to be performed (turning on the smart device) during the command event.

The smart device controller110adetermines context data based on the user voice command using natural language processing, the context data including an identification of the user (User A) using voice recognition techniques, the function to perform (“turning on”), and a smart device name (“the television”). In the example ofFIG. 5, the smart device controller110aalso determines context data regarding the location (Zone 1) of User A within the smart home environment500. The smart device controller110adetermines a select smart device (114d), from the plurality of smart devices (114a-114h), to perform the function based on the context data and the knowledge database123listing context-specific names for the plurality of smart devices114a-114h, wherein the context-specific names are associated with the User A in the knowledge database123. In some cases, the context-specific names in a knowledge database123may be specific to a user, while in other cases multiple users may share the same name for a specific smart device114.

Still referencingFIG. 5, the smart device controller110ainitiates the function at the selected smart device114d(e.g., causes the smart device114dto turn on), and stores event data for the command event in the knowledge database123. The smart device controller110athen automatically updates the knowledge database123based on the event data. In this example, the user command is the first use of the term “the television” by User A, and the smart device controller110aadds the context-specific name “the television” to the knowledge database123associated with User A, along with context data associated with the user command (e.g., location of User A, the function, and the location of the smart device114d. In this example, User A moves from Zone 1 to Zone 5 within the smart home environment500, and the same user command “turn on the television” results in the smart device controller110adetermines that a different smart device114gshould be turned on, based on the context data (including location data indicating that User A is in Zone 5) matching the smart device114gin the knowledge database123. Accordingly, embodiments of the invention enable the smart device controller110to automatically choose to initiate a function in one of several smart devices114of the same device type (e.g., smart televisions) based on data in the knowledge database123.

In another example depicted inFIG. 5, User A issues a voice command to “turn on the bedroom speaker”. In this scenario, a smart device controller (e.g.,110a,110b) of the smart home environment500understands that the user is referring to the registered smart speaker114cwhen the smart speaker114cis located within a bedroom (e.g., Zone 2). In this example, the name “the bedroom speaker” is a context-specific name in in the knowledge database123associated with scenarios where the smart speaker114cis located in the bedroom (Zone 2). Another context-specific name may be associated with the smart speaker114cwhen it is in an office (Zone 5), such as “the office speaker”.