Relaying voice commands between artificial intelligence (AI) voice response systems

Described herein is an AI voice response system configured to and methods, computer-readable media, techniques, and methodologies for relaying a voice command received from a user unknown to the AI voice response system to another AI voice response system capable of identifying the user and executing the voice command. An execution result of executing the voice command is then sent back to the AI voice response system that received the voice command for presentation to the user.

BACKGROUND

The present invention relates generally to artificial intelligence (AI) voice response systems, and more particularly, to relaying voice commands between AI voice response systems.

AI voice response devices capable of responding to user voice commands or requests are available from a variety of manufacturers and are becoming increasingly commonplace. Such devices are generally capable of responding to user requests for information or performing basic tasks in response to user commands such as adding items to a calendar, setting alarms/timers, placing voice or video calls, or the like. More recent advancements in AI voice response technology include the ability to perform more complex tasks such as placing a food order, making a restaurant reservation, contacting a ride-sharing service, or the like. Existing AI voice response systems, however, suffer from a number of drawbacks, technical solutions to which are described herein.

SUMMARY

In one or more example embodiments, a computer-implemented method for relaying a voice command between artificial intelligence (AI) voice response systems is disclosed. The method includes receiving, at a first AI voice response client device, the voice command from a user and determining, by the first AI voice response client device, that the user is unknown to a first AI back-end service accessible via the first AI voice response client device. The method further includes broadcasting, by the first AI voice response client device, a message including identifying information of the user and receiving, by the first AI voice response client device, a response to the message from a second AI voice response client device. The response to the message includes an indication that the user is known to a second AI back-end service accessible via the second AI voice response client device. The method additionally includes sending, by the first AI voice response client device, the voice command to the second AI voice response client device for execution by the second AI back-end service; receiving, by the first AI voice response client device from the second AI voice response client device, an execution result of executing the voice command; and presenting the execution result to the user via the first AI voice response client device.

In one or more other example embodiments, an AI voice response system configured to relay a voice command to another AI voice response system is disclosed. The AI voice response system includes a first AI back-end service and a first AI voice response client device configured to communicate with the first AI back-end service. The first AI voice response client device includes at least one memory storing computer-executable instructions and at least one processor configured to access the at least one memory and execute the computer-executable instructions to perform a set of operations. The operations include receiving the voice command from a user and determining that the user is unknown to the first AI back-end service. The operations further include broadcasting a message including identifying information of the user and receiving a response to the message from a second AI voice response client device. The response to the message includes an indication that the user is known to a second AI back-end service accessible via the second AI voice response client device. The operations additionally include sending the voice command to the second AI voice response client device for execution by the second AI back-end service; receiving, from the second AI voice response client device, an execution result of executing the voice command; and presenting the execution result to the user via the first AI voice response client device.

In one or more other example embodiments, a computer program product for relaying a voice command between AI voice response systems disclosed. The computer program product includes a non-transitory storage medium readable by a processing circuit, the storage medium storing instructions executable by the processing circuit to cause a method to be performed. The method includes receiving, at a first AI voice response client device, the voice command from a user and determining, by the first AI voice response client device, that the user is unknown to a first AI back-end service accessible via the first AI voice response client device. The method further includes broadcasting, by the first AI voice response client device, a message including identifying information of the user and receiving, by the first AI voice response client device, a response to the message from a second AI voice response client device. The response to the message includes an indication that the user is known to a second AI back-end service accessible via the second AI voice response client device. The method additionally includes sending, by the first AI voice response client device, the voice command to the second AI voice response client device for execution by the second AI back-end service; receiving, by the first AI voice response client device from the second AI voice response client device, an execution result of executing the voice command; and presenting the execution result to the user via the first AI voice response client device.

DETAILED DESCRIPTION

Example embodiments relate to, among other things, an AI voice response system configured to and methods, computer-readable media, techniques, and methodologies for relaying a voice command received from a user unknown to the AI voice response system to another AI voice response system capable of identifying the user and executing the voice command. An AI voice response client device in accordance with example embodiments may be any suitable device capable of receiving input from a user (e.g., voice input, text input, etc.) and communicating with an AI back-end service to execute commands corresponding to the input and provide the results of the executed commands or an indication thereof back to the user as output. In general, an AI voice response client device in accordance with example embodiments may include a speaker, a microphone, and a display for receiving input from a user and providing output to the user. An AI voice response client device may be, without limitation, a smartphone, a tablet, a wearable device, a voice-enabled device not intended for mobile use, a desktop computer, a laptop computer, a gaming console, a content streaming device, or the like. While a user command submitted to an AI voice response client device may be described herein as a voice command, it should be appreciated that the user command can take on a variety of forms detectable by a AI voice response client device including a text-based command; a gesture-based command; or the like. In addition, an execution result may be provided as voice output from an AI voice response client device; rendered on a display of an AI voice response client device; presented via a different device communicatively coupled to an AI voice response device (e.g., rendered on a display of a different device); or the like.

In example embodiments, a first AI voice response client device receives a voice command from a user. The first AI voice response client device may send the voice command or some portion thereof to a first AI back-end service with which it is associated to determine if the user is a known user (e.g., a user having a user profile registered with the first AI back-end service). Alternatively, the first AI voice response client device may make this determination locally. The user may be unknown if, for example, the user submitted the voice command to another user's AI voice response client device.

Upon determining that the user is an unknown user, the first AI voice response client device may broadcast a message to one or more other AI voice response client devices within communication range of the first AI voice response client device. The one or more other AI voice response client devices may include at least one device associated with the user who submitted the voice command. The message may be broadcasted using any suitable communication protocol including, without limitation, WiFi, Bluetooth, or the like. As a non-limiting example use case scenario, a user may leave his phone in one room of his house and while present in another room of his house (where he is out of voice detection/recognition range of his phone) may submit a voice command to a friend's smartphone. In example embodiments, the friend's smartphone is incapable of handling the voice command because the user is not known (e.g., registered) to the AI back-end service accessible via the friend's smartphone. It should be appreciated that, in example embodiments, multiple different AI back-end services may be accessible via the friend's smartphone, and the user may be unknown to all of these back-end services. Upon determining that the user is an unknown user, the friend's smartphone may broadcast a message to other devices within communication range (including the user's phone in the other room) to attempt to identify another AI voice response client device to which the user is known.

In example embodiments, the broadcasted message includes identifying information of the user who submitted the voice command. For instance, the broadcasted message may include a voice signature of the user generated from the voice command that was submitted. The voice signature may be, for example, a voice snippet taken from the voice command. In other example embodiments, the identifying information included in the broadcasted message may be a name of the user, a nickname of the user, or some other form of identifying information (e.g., an authentication code; a password; a passphrase; a security question answer; etc.). In example embodiments, the AI voice response client device that receives the voice command and broadcasts the message prompts the user for the identifying information to include in the broadcasted message.

Upon receiving the broadcasted message containing the user's identifying information (e.g., a voice signature of the user), an AI voice response client device may communicate with an associated AI back-end service to determine if the user can be identified as a known user based on the information contained in the broadcasted message. If the user is recognized as a known user to an AI voice response system, the associated AI voice response client device (e.g., a second AI voice response client device) may send a response to the first AI voice response client device that broadcasted the message that indicates that the user is known to an AI back-end service accessible via the second AI voice response client device.

In example embodiments, the broadcasted message may be received by multiple AI voice response client devices to which the user is known. For instance, referring again to the example use case scenario introduced earlier, the message broadcast by the friend's smartphone may be received by the user's smartphone as well as by a stationary AI voice response client device associated with the user, each of which may be located at a respective distance from the user that prohibits the user from directly issuing the voice command to either of these devices. In example embodiments where there are multiple AI voice response client devices to which the user is known, only one device may respond back to the AI voice response client device that broadcast the message. In example embodiments, the multiple AI voice response client devices to which the user is known may collaboratively determine based on selection criteria which device to select for responding back to the broadcasted message. In example embodiments, the selection criteria may specify a default device for responding to the broadcasted message. For instance, referring again to the example use case scenario introduced earlier, the user's smartphone (as opposed to the stationary AI voice response client device) may be the default AI voice response client device for responding to the broadcasted message. In other example embodiments, the selection criteria may dictate that the device with the smallest network latency or the device with the lowest network communication cost (e.g., cellular network data charges) is the device to select for responding to the broadcasted message. It should be appreciated that the above examples of selection criteria that can be evaluated are merely illustrative and not exhaustive.

In other example embodiments, the device that broadcasts the message (e.g., the first AI voice response client device that receives that voice command from the unknown user) may select a device to receive the voice command for execution from among multiple AI voice response devices that respond to the broadcasted message. Similar to the collaborative determination described above with respect to the devices that receive the broadcasted message, the broadcasting device may select a particular device to receive the voice command based on selection criteria, which may include, without limitation, selection of a default device or selection of a device that is most proximal to the broadcasting device.

Upon receiving this response, the first AI voice response client device may send the complete voice command to the second AI voice response client device. Upon receipt of the voice command, the second AI voice response client device may send the voice command to a corresponding AI back-end service for execution and receive an execution result in return. Alternatively, the second AI voice response client device may execute the voice command locally. The second AI voice response client device may then send the execution result or an indication thereof to the first AI voice response client device for presentation to the user via the first AI voice response client device. Referring again to the example use case scenario introduced earlier, a user may submit a voice command to a friend's smartphone to determine the next appointment on the user's calendar. The friend's smartphone may relay the voice command to the user's smartphone located in another room that is out of voice communication range from the user but within network communication range of the friend's smartphone. The user's smartphone may receive the voice command and potentially communicate with a corresponding AI back-end service to which the user is known to determine the user's next calendar appointment. The second AI voice response client device may then send information indicative of the user's next calendar appointment to the friend's smartphone such that the information can be presented to the user via a display of the friend's smartphone or outputted via a speaker of the friend's smartphone.

In example embodiments, the second AI voice response client device may send the results of executing the voice command in an encrypted message to the first AI voice response client device. The first AI voice response client device may then authenticate the user prior to decrypting the message and displaying or otherwise outputting the execution result to the user. For instance, the user may be prompted for voice input that the first AI voice response client device may then compare using voice pattern recognition to the voice signature previously generated to authenticate the user.

In certain other example embodiments, upon receiving a response from the second AI voice response client device indicating that the user who submitted the voice command is a user known to the second AI back-end service accessible via the second AI voice response client device, the first AI voice response client device at which the voice command was received may execute the voice command to obtain the execution result and present the execution result to the user. Thus, in such example embodiments, the first AI voice response client device may proceed with execution of the voice command upon receiving authorization from the second AI voice response client device in the form of a response indicating that the user who submitted the voice command is a known user. In example embodiments, depending on the nature of the voice command, the first AI voice response client device may be able to communicate with the first AI back-end service to execute the voice command. For example, the voice command may correspond to a request for content capable of being streamed by the first AI voice response client device from the first AI back-end service. In other example embodiments, the first AI voice response client device may be capable of communicating directly with the second AI back-end service to which the user is known to execute the voice command.

Example embodiments provide various technical features, technical effects, and improvements to computer technology. Example embodiments provide the technical effect of seamlessly handling the execution of a user's voice command inputted to an AI voice response client device to which the user is unknown. This technical effect is achieved, at least in part, by the technical features of broadcasting, by an AI voice response client device that receives a voice command from an unknown user, to one or more other AI voice response client devices, a message that contains identifying information of the user such as a voice signature generated from the user's voice command. This technical effect is further achieved, at least in part, by the technical features of relaying the voice command to an AI voice response client device that responds to the broadcasted message, where such response indicates that the user is known to the responding AI voice response client device; having the AI voice response client device that receives the relayed voice command execute the voice command (or send the voice command to a corresponding AI back-end service for execution); and having the execution result sent back to the AI voice response client device that originally received the voice command from the user for presentation to the user via that device. This technical effect is further achieved, at least in part, by providing a selection algorithm for selecting a particular device to respond to the broadcasted message that is executable by either the device that relays the voice command or that is executable in a collaborative manner by multiple devices that receive the broadcasted message and to which the user is known. The above-described technical effect and the technical features of example embodiments of the invention that enable this technical effect constitute an improvement to computer technology and an improvement to the functioning of a computer. In particular, example embodiments enable an AI voice response client device to respond to a voice command from an unknown user, which represents a technical solution/improvement over conventional AI voice response systems.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

Various illustrative methods and corresponding data structures associated therewith will now be described. It should be noted that each operation of the methods400-500may be performed by one or more of the program modules or the like depicted inFIG. 1 or 6, whose operation will be described in more detail hereinafter. These program modules may be implemented in any combination of hardware, software, and/or firmware. In certain example embodiments, one or more of these program modules may be implemented, at least in part, as software and/or firmware modules that include computer-executable instructions that when executed by a processing circuit cause one or more operations to be performed. A system or device described herein as being configured to implement example embodiments may include one or more processing circuits, each of which may include one or more processing units or nodes. Computer-executable instructions may include computer-executable program code that when executed by a processing unit may cause input data contained in or referenced by the computer-executable program code to be accessed and processed to yield output data.

FIG. 3Ais a schematic diagram illustrating the broadcasting of identifying information of an unknown user by an AI voice response client device to a plurality of other AI voice response client devices in accordance with one or more example embodiments.FIG. 3Bis a schematic diagram illustrating the relaying of a voice command from a first AI voice response client device to a second AI voice response client device in accordance with one or more example embodiments.FIG. 4is a process flow diagram of an illustrative method400for determining that a user from whom a voice command is received at a first AI voice response client device is unknown to a first AI back-end service associated with the first AI voice response client device, identifying a second AI voice response client device associated with a second AI back-end service to which the user is known, and relaying the voice command from the first AI voice response client device to the second AI voice response client device in accordance with one or more example embodiments.FIG. 4will be described in conjunction withFIGS. 3A and 3Bhereinafter.

FIG. 3Adepicts an environment in which a first user102(User A) and a second user104(User B) are present. A first AI voice response client device106may be associated with User A102. More specifically, the first AI voice response client device106may be configured to communicate with an AI back-end service (not shown inFIG. 3A) with which User A102has a registered user profile. As such, User A102may be a known user to the first AI voice response client device106and the corresponding AI back-end service with which User A102has a registered profile. In example embodiments, User B104is an unknown user to the first AI voice response client device106because User B104is not registered with the corresponding back-end service. In addition, User B104may be outside of a voice communication range from any AI voice response client device to which User B104is known, but within voice communication range of the first AI voice response client device106. As such, in example embodiments, User B104submits a voice command108to the first AI voice response client device106instead.

Any AI voice response client device described herein and a corresponding AI back-end service with which such a client device is configured to communicate may form part of an AI voice response system in accordance with example embodiments. An AI back-end service may execute on one or more AI back-end servers (FIG. 6, 602). An AI voice response client device in accordance with example embodiments may be any suitable device capable of receiving voice input and providing voice output. As such, an AI voice response client device may include one or more microphones for capturing voice input data and one or more speakers for providing voice output. An AI voice response client device may also include a display for displaying image data, video data, graphics, text, or the like. In addition, an AI voice response client device may include any of a variety of sensors such as image sensor(s), inertial sensor(s), or the like.

Referring now toFIG. 4in conjunction withFIG. 3A, at block402of the method400, the first AI voice response client device106may receive the voice command108from User B104. At block404of the method400, the first AI voice response client device106may communicate the voice command108(or some snippet thereof) to a first AI back-end service, which in example embodiments, determines that User B104is not known to the first AI back-end service. In example embodiments, the first AI back-end service determines that User B104is an unknown user by executing computer-executable instructions of one or more user identification modules to compare the voice command108or voice snippet received from the first AI voice response client device106to voice patterns stored in association with registered user profiles. Based on this comparison, the first AI back-end service determines, in example embodiments, that there is no stored voice pattern that matches the voice pattern of the received voice input. Thus, the first AI back-end service determines that User B104does not have a registered user profile with the first AI back-end service and communicates that User B104is an unknown user to the first AI voice response client device106. Alternatively, in example embodiments, the first AI voice response client device106may make the determination that User B104is an unknown user locally.

At block406of the method400, in example embodiments, the first AI voice response client device106executes computer-executable instructions of one or more voice signature generation modules to generate a voice signature110from the voice command108. The voice signature110may be a snippet of the voice command108that includes enough voice data to identify a voice pattern of User B104and distinguish that voice pattern from the voice patterns of other users.

At block408of the method400, the first AI voice response client device106may broadcast the voice signature110to a plurality of other AI voice response client devices such as devices114,116, and118. In example embodiments, the first AI voice response client device106sends the voice signature110to the other AI voice response devices via one or more networks112, which may include any suitable public and/or private network(s). In example embodiments, the first AI voice response client device106may send the voice signature110according to a WiFi communication protocol, a Bluetooth communication protocol, or the like. In example embodiments, the first AI voice response client device106may broadcast a message that contains the voice signature110. In other example embodiments, the first AI voice response client device106may include another form of identifying information for User B104in the broadcasted message in lieu of or in addition to the voice signature110. For instance, the first AI voice response client device106may prompt User B104for her name or the like and may include this identifying information in the broadcasted message.

At block410of the method400, the first AI voice response client device106may receive a response120from a second AI voice response client device114indicating that User B104is known to the second AI voice response client device114. In particular, in example embodiments, each of the other AI voice response client devices114,116, and118that are within communication range of the first AI voice response client device106receives the broadcasted message and communicates with a respective AI back-end service to attempt to identify a user corresponding to the voice signature110or other identifying information included in the broadcasted message.

As similarly described earlier, each such AI back-end service may execute computer-executable instructions of one or more user identification modules to determine whether there exists a stored voice pattern associated with a registered user profile that matches the voice pattern of the voice signature110. The example method400assumes, for ease of explanation, that User B104is known to a single device (e.g., device114) among the devices that receive the broadcasted message. An example method500depicted inFIG. 5—which will be described in more detail later in this disclosure—relates to an example scenario in which User B104is known to multiple AI voice response client devices that receive the broadcasted message.

Referring now toFIG. 4in conjunction withFIG. 3B, at block412of the method400, in example embodiments, the first AI voice response client device106executes computer-executable instructions of one or more voice command relay modules to relay the voice command108to the second AI voice response client device114associated with User B104via the network(s)112. Upon receipt of the voice command108, the second AI voice response client device114may send the voice command108or some indication thereof to a corresponding second AI back-end service to which User B104is known.

The second AI back-end service may execute computer-executable instructions of one or more voice command execution modules to execute the voice command108(i.e., execute an action corresponding to the voice command) and obtain an execution result122. The second AI back-end service may send the execution result122to the second AI voice response client device114, which may, in turn, send the execution result122to the first AI voice response client device106via the network(s)112. The first AI voice response client device106may receive the execution result122at block414of the method400. Then, at block416of the method400, the first AI voice response client device106may present the execution result122to User B104. The execution result122may be presented via the first AI voice response client device106in any suitable manner including, without limitation, by displaying the result122on a display of the first AI voice response client device106, outputting the execution result122via one or more speakers of the first AI voice response client device106, or the like.

In example embodiments, the second AI voice response client device114may send the execution result122in an encrypted message to the first AI voice response client device106. The first AI voice response client device106may then authenticate User B104prior to decrypting the message and displaying or otherwise outputting the execution result122to User B. For instance, User B104may be prompted for voice input that the first AI voice response client device106may then compare using voice pattern recognition to the voice signature110previously generated to authenticate User B104. In this manner, the first AI voice response client device106can avoid outputting the execution result122if User B is no longer present in proximity to the device106, thereby providing added data security.

FIG. 5is a process flow diagram of an illustrative method500for collaboratively determining, by a plurality of AI voice response client devices (e.g., device114and device116), which client device should respond to the message broadcasted by the first AI voice response client device106with an indication that User B104(who submitted the voice command108) is known to respective AI back-end services associated with the plurality of AI voice response client devices. In example embodiments, where there are multiple AI voice response client devices to which User B104is known, only one device may respond back to the first AI voice response client device106.

At block502of the method500, the second AI voice response client device114may receive the message broadcasted by the first AI voice response client device106that includes the voice signature110or other identifying information for User B104. Similarly, at block504of the method500, a third AI voice response client device116may receive the message broadcasted by the first AI voice response client device106. At block506of the method500, the second AI voice response client device114may determine that User B104is a known user based at least in part on the identifying information (e.g., the voice signature110) contained in the broadcasted message. As previously described, the second AI voice response client device114may make this determination locally or may send the identifying information to a corresponding AI back-end service configured to perform the user identification. As previously described, the back-end service may identify User B104by comparing the received identifying information to stored identifying information associated with registered user profiles. Similarly, at block508of the method500, the third AI voice response client device116may also determine that User B104is a known user.

Then, at block510of the method500, the second AI voice response client device114and the third AI voice response client device116may collaboratively determine which device should respond to the first AI voice response client device106with an indication that User B104is a known user. More specifically, each of the second AI voice response client device114and the third AI voice response client device116may execute respective device selection module(s) to collaboratively determine based on selection criteria which device to select for responding back to the broadcasted message. In example embodiments, the selection criteria may specify a default device for responding to the broadcasted message. For instance, the second AI voice response client device114may be the default AI voice response client device for responding to the broadcasted message. In other example embodiments, the selection criteria may dictate that the device with the smallest network latency or the device with the lowest network communication cost (e.g., cellular network data charges) is the device to select for responding to the broadcasted message.

In other example embodiments, the device that broadcasts the message (e.g., the first AI voice response client device106) may select a device to receive the voice command108for execution from among multiple AI voice response devices that respond to the broadcasted message. For instance, in example embodiments, both the second AI voice response client device114and the third voice response client device116may respond to the first AI voice response client device106indicating that User B104is known to both device114and device116. Similar to the collaborative determination described above among devices that receive the broadcasted message, the broadcasting device (e.g., the first AI voice response device106) may select a particular device (e.g., the second AI voice response device114) to receive the voice command108based on selection criteria, which may include, without limitation, selection of a default device or selection of a device that is most proximal to the broadcasting device.

One or more illustrative embodiments of the disclosure are described herein. Such embodiments are merely illustrative of the scope of this disclosure and are not intended to be limiting in any way. Accordingly, variations, modifications, and equivalents of embodiments disclosed herein are also within the scope of this disclosure.

FIG. 6is a schematic diagram of an illustrative networked architecture600configured to implement one or more example embodiments of the disclosure. The networked architecture600may include one or more AI back-end servers602configured to execute an AI back-end service624. The AI back-end server(s)602may be configured to communicate via one or more networks606with one or more voice response client devices604which may include any suitable device including, without limitation, a voice-enabled device not intended for mobile use, a tablet, a smartphone, a wearable device, a personal computer, or the like. While any particular component of the networked architecture600may be described herein in the singular, it should be appreciated that multiple instances of any such component may be provided, and functionality described in connection with a particular component may be distributed across multiple ones of such a component.

In an illustrative configuration, the AI back-end server602may include one or more processors (processor(s))608, one or more memory devices610(generically referred to herein as memory610), one or more input/output (“I/O”) interface(s)612, one or more network interfaces614, and data storage618. The AI back-end server602may further include one or more buses616that functionally couple various components of the AI back-end server602.

The data storage618may include removable storage and/or non-removable storage including, but not limited to, magnetic storage, optical disk storage, and/or tape storage. The data storage618may provide non-volatile storage of computer-executable instructions and other data. The memory610and the data storage618, removable and/or non-removable, are examples of computer-readable storage media (CRSM) as that term is used herein.

The data storage618may store computer-executable code, instructions, or the like that may be loadable into the memory610and executable by the processor(s)608to cause the processor(s)608to perform or initiate various operations. The data storage618may additionally store data that may be copied to memory610for use by the processor(s)608during the execution of the computer-executable instructions. Moreover, output data generated as a result of execution of the computer-executable instructions by the processor(s)608may be stored initially in memory610and may ultimately be copied to data storage618for non-volatile storage.

More specifically, the data storage618may store one or more operating systems (O/S)620; one or more database management systems (DBMS)622configured to access the memory610and/or one or more external datastores630; and one or more program modules, applications, engines, managers, computer-executable code, scripts, or the like such as, for example, one or more voice command execution modules626and one or more user identification modules628. Each of the aforementioned modules may form part of the AI back-end service624. Any of the components depicted as being stored in data storage618may include any combination of software, firmware, and/or hardware. The software and/or firmware may include computer-executable instructions (e.g., computer-executable program code) that may be loaded into the memory610for execution by one or more of the processor(s)608to perform any of the operations described earlier in connection with correspondingly named modules/services.

Although not depicted inFIG. 6, the data storage618may further store various types of data utilized by components of the AI back-end server602(e.g., data stored in the datastore(s)630). Any data stored in the data storage618may be loaded into the memory610for use by the processor(s)608in executing computer-executable instructions. In addition, any data stored in the data storage618may potentially be stored in the external datastore(s)630and may be accessed via the DBMS622and loaded in the memory610for use by the processor(s)608in executing computer-executable instructions.

Referring now to other illustrative components depicted as being stored in the data storage618, the O/S620may be loaded from the data storage618into the memory610and may provide an interface between other application software executing on the AI back-end server602and hardware resources of the AI back-end server602. More specifically, the O/S620may include a set of computer-executable instructions for managing hardware resources of the AI back-end server602and for providing common services to other application programs. In certain example embodiments, the O/S620may include or otherwise control the execution of one or more of the program modules, engines, managers, or the like depicted as being stored in the data storage618. The O/S620may include any operating system now known or which may be developed in the future including, but not limited to, any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.

The DBMS622may be loaded into the memory610and may support functionality for accessing, retrieving, storing, and/or manipulating data stored in the memory610, data stored in the data storage618, and/or data stored in external datastore(s)630. The DBMS622may use any of a variety of database models (e.g., relational model, object model, etc.) and may support any of a variety of query languages. The DBMS622may access data represented in one or more data schemas and stored in any suitable data repository. Data stored in the datastore(s)630may include, for example, voice signatures, registered user profiles, and so forth. External datastore(s)630that may be accessible by the AI back-end server602via the DBMS622may include, but are not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like.

Referring now to other illustrative components of the AI back-end server602, the input/output (I/O) interface(s)612may facilitate the receipt of input information by the AI back-end server602from one or more I/O devices as well as the output of information from the AI back-end server602to the one or more I/O devices. The I/O devices may include any of a variety of components such as a display or display screen having a touch surface or touchscreen; an audio output device for producing sound, such as a speaker; an audio capture device, such as a microphone; an image and/or video capture device, such as a camera; a haptic unit; and so forth. Any of these components may be integrated into the AI back-end server602or may be separate. The I/O devices may further include, for example, any number of peripheral devices such as data storage devices, printing devices, and so forth.

The AI back-end server602may further include one or more network interfaces614via which the AI back-end server602may communicate with any of a variety of other systems, platforms, networks, devices, and so forth. The network interface(s)614may enable communication, for example, with one or more other devices via one or more of the network(s).

In an illustrative configuration, a voice response client device604(e.g. any of the voice response client devices depicted inFIGS. 3A and 4B) may include one or more processors (processor(s))632, one or more memory devices634(generically referred to herein as memory634), one or more input/output (“I/O”) interface(s)636, one or more network interfaces638, and data storage642. The voice response client device604may further include one or more buses640that functionally couple various components of the voice response client device604.

The bus(es)640may include any of the types of buses described in connection with the bus(es)616of the AI back-end server602. Similarly, the processor(s)632may include any of the types of processors described in connection with the processor(s)608; the memory634may include any of the types of memory described in connection with the memory610; the data storage642may include any of the types of data storage described in connection with the data storage618; the I/O interface(s)636may include any of the types of interfaces and may utilize any of the types of I/O devices described in connection with the I/O interface(s)612; and the network interface(s)638may include any of the types of interfaces described in connection with the network interface(s)614.

The data storage642may store one or more operating systems (0/S)644(which may include any of the types of operating systems described in connection with the O/S620); one or more database management systems (DBMS)646(which may include any of the types of database management systems described in connection with the DBMS622) configured to access the memory634, and potentially, the datastore(s)630; and one or more program modules, applications, engines, managers, computer-executable code, scripts, or the like such as, for example, one or more voice signature generation modules648, one or more voice command relay modules650, and one or more device selection modules652. Any of the components depicted as being stored in data storage618may include any combination of software, firmware, and/or hardware. The software and/or firmware may include computer-executable instructions (e.g., computer-executable program code) that may be loaded into the memory634for execution by one or more of the processor(s)632to perform any of the operations described earlier in connection with correspondingly named modules/services.

Although not depicted inFIG. 6, the data storage642may further store various types of data utilized by components of the voice response client device604. Any data stored in the data storage642may be loaded into the memory634for use by the processor(s)632in executing computer-executable instructions. In addition, any data stored in the data storage642may potentially be stored in the external datastore(s)630and may be accessed via the DBMS646and loaded in the memory634for use by the processor(s)632in executing computer-executable instructions.

It should be appreciated that the program modules depicted inFIG. 6as being stored in the data storage618or the data storage642are merely illustrative and not exhaustive and that processing described as being supported by any particular module may alternatively be distributed across multiple modules, engines, or the like, or performed by a different module, engine, or the like. In addition, various program module(s), script(s), plug-in(s), Application Programming Interface(s) (API(s)), or any other suitable computer-executable code hosted locally on the AI back-end server602or the voice response client device604and/or other computing devices accessible via the network(s)606, may be provided to support functionality provided by the modules depicted inFIG. 6and/or additional or alternate functionality. Further, functionality may be modularized in any suitable manner such that processing described as being performed by a particular module may be performed by a collection of any number of program modules, or functionality described as being supported by any particular module may be supported, at least in part, by another module. In addition, program modules that support the functionality described herein may be executable across any number of cluster members in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth. In addition, any of the functionality described as being supported by any of the modules depicted inFIG. 6may be implemented, at least partially, in hardware and/or firmware across any number of devices.

It should further be appreciated that the AI back-end server602and/or the voice response client device604may include alternate and/or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the AI back-end server602and/or the voice response client device604are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative modules have been depicted and described as software modules stored in the data storage618or the data storage642, it should be appreciated that functionality described as being supported by the modules may be enabled by any combination of hardware, software, and/or firmware. It should further be appreciated that each of the above-mentioned modules may, in various embodiments, represent a logical partitioning of supported functionality. This logical partitioning is depicted for ease of explanation of the functionality and may not be representative of the structure of software, hardware, and/or firmware for implementing the functionality. Accordingly, it should be appreciated that functionality described as being provided by a particular module may, in various embodiments, be provided at least in part by one or more other modules. Further, one or more depicted modules may not be present in certain embodiments, while in other embodiments, additional program modules and/or engines not depicted may be present and may support at least a portion of the described functionality and/or additional functionality.

One or more operations of any of the methods400-500may be performed by an AI voice response client device604and/or an AI back-end server602having the illustrative configurations depicted inFIG. 6, or more specifically, by one or more program modules, engines, applications, or the like executable on such devices. It should be appreciated, however, that such operations may be implemented in connection with numerous other device configurations.

The operations described and depicted in the illustrative methods ofFIGS. 4 and 5may be carried out or performed in any suitable order as desired in various exemplary embodiments of the disclosure. Additionally, in certain example embodiments, at least a portion of the operations may be carried out in parallel. Furthermore, in certain example embodiments, less, more, or different operations than those depicted inFIGS. 4 and 5may be performed.

Although specific embodiments of the disclosure have been described, one of ordinary skill in the art will recognize that numerous other modifications and alternative embodiments are within the scope of the disclosure. For example, any of the functionality and/or processing capabilities described with respect to a particular system, system component, device, or device component may be performed by any other system, device, or component. Further, while various illustrative implementations and architectures have been described in accordance with embodiments of the disclosure, one of ordinary skill in the art will appreciate that numerous other modifications to the illustrative implementations and architectures described herein are also within the scope of this disclosure. In addition, it should be appreciated that any operation, element, component, data, or the like described herein as being based on another operation, element, component, data, or the like may be additionally based on one or more other operations, elements, components, data, or the like. Accordingly, the phrase “based on,” or variants thereof, should be interpreted as “based at least in part on.”