Combinations of device- or assistant-specific hotwords in a single utterance
By enabling multiple devices or digital assistants to recognize partial hotwords and collaborate through a single utterance, the solution addresses the inefficiency of separate queries, improving user experience and resource utilization in voice-enabled environments.
Patent Information
- Application Number
- JP2023535767
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-11
- Filing Date
- 2021-11-17
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2041-11-17
AI Technical Summary
Existing voice-enabled devices struggle to efficiently process multiple commands simultaneously due to resource constraints, requiring separate queries for each device or digital assistant service, which is inefficient and time-consuming.
Implementing device-specific and assistant-specific hotwords in a single utterance, allowing multiple devices or digital assistants to recognize partial hotwords and collaborate to perform actions based on a combined query, leveraging low-power hardware for initial detection and potentially server-side processing for more complex tasks.
Enables users to issue commands to multiple devices or digital assistants with a single utterance, optimizing resource usage and reducing the need for repetitive queries, thereby enhancing user convenience and efficiency.
Smart Images

Figure 0007618811000001 
Figure 0007618811000002 
Figure 0007618811000003
Abstract
Description
[Technical field]
[0001] This disclosure relates to combining device or assistant specific hot words in a single utterance. [Background technology]
[0002] A speech-enabled environment (e.g., at home, at work, at school, in a vehicle, etc.) allows a user to speak queries or commands aloud to a computer-based system that can address the query and provide an answer and / or perform a function based on the command. A speech-enabled environment can be implemented with a network of microphone devices distributed and connected throughout various rooms or areas of the environment. These devices may use hot words to help distinguish when a given utterance is directed to the system as opposed to utterances directed to other individuals present in the environment. Thus, these devices may operate in a dormant or hibernating state and only awaken when a detected utterance contains the hot word. Once awakened, these devices can proceed to perform more expensive processing, such as full on-device automatic speech recognition (ASR) or server-based ASR. Summary of the Invention [Means for solving the problem]
[0003] An aspect of the present disclosure provides a method for combining hot words in a single utterance. The method includes receiving, in a data processing hardware of a first assistant-enabled device (AED), audio data corresponding to an utterance spoken by a user, directed to a first AED and a second AED among two or more AEDs associated with the user, the audio data including a query that identifies an action to be taken. The method also includes detecting, by the data processing hardware, a first hot word in the audio data using a hot word detection model, where the first hot word is assigned to the first AED and is different from a second hot word assigned to the second AED. In response to detecting the first hot word assigned to the first AED in the audio data, the method further includes initiating processing of the audio data by the data processing hardware to determine that the audio data includes one or more terms that at least partially match the second hot word assigned to the second AED and precede the query. Based on a determination that the audio data includes one or more terms that at least partially match the second hotword and precede the query, the method additionally includes executing, by the data processing hardware, a collaboration routine that causes the first AED and the second AED to cooperate with each other to perform an action identified by the query.
[0004] Another aspect of the present disclosure provides an assistant-enabled device that interprets hot words combined in a single utterance. The device includes data processing hardware and memory hardware in communication with the data processing hardware. The memory hardware stores instructions that, when executed on the data processing hardware, cause the data processing hardware to perform an operation. The operations include receiving audio data corresponding to an utterance spoken by a user, directed to a first AED and a second AED of two or more AEDs associated with the user, the audio data including a query that identifies an operation to be performed. The operations also include detecting a first hot word in the audio data using a hot word detection model, where the first hot word is assigned to the first AED and is different from a second hot word assigned to the second AED. In response to detecting the first hot word assigned to the first AED in the audio data, the operations further include initiating processing on the audio data and determining that the audio data includes one or more terms that at least partially match the second hot word assigned to the second AED and precede the query. Based on a determination that the audio data includes one or more terms that at least partially match the second hotword and precede the query, the operations additionally include executing a collaboration routine that causes the first AED and the second AED to cooperate with each other to perform the operation identified by the query.
[0005] Implementations of any aspect of the disclosure may include one or more of the following optional features: In some implementations, initiating processing on the audio data in response to determining that the audio data includes the first hot word includes instructing a speech recognizer to perform speech recognition on the audio data to generate speech recognition results for the audio data, and determining, using the speech recognition results for the audio data, that one or more terms are recognized in the audio data that at least partially match the second hot word. In these implementations, instructing the speech recognizer to perform speech recognition on the audio data includes one of instructing a server-side speech recognizer to perform speech recognition on the audio data or instructing a speech recognizer operating on data processing hardware of the first AED to perform speech recognition on the audio data. In some examples, determining that the audio data includes one or more terms that at least partially match a second hotword assigned to the second AED and precede the query includes accessing a hotword registry including a respective list of one or more hotwords assigned to each of two or more AEDs associated with the user, and recognizing one or more terms in the audio data that match or at least partially match a second hotword in the respective list of one or more hotwords assigned to the second AED. In these examples, the respective list of one or more hotwords assigned to each of the two or more AEDs in the hotword registry further includes one or more variants associated with each hotword, and determining that the audio data includes one or more terms that at least partially match the second hotword and precede the query includes determining that the one or more terms recognized in the audio data match one of the one or more variants associated with the second hotword.Also, in these examples, the hotword registry is stored in at least one of the first AED, the second AED, a third AED of the two or more AEDs associated with the user, or a server in communication with the two or more AEDs associated with the user.
[0006] In some configurations, determining that the audio data includes one or more terms preceding the query that at least partially match the second hotword includes providing the audio data as an input to a machine learning model trained to determine a likelihood of whether the user intended to speak the second hotword assigned to the user device. In some examples, when the one or more terms preceding the query in the audio data only partially match the second hotword, a collaboration routine is executed to cause the first AED to wake up and summon the second AED to collaborate with the first AED to perform the action identified by the query.
[0007] In some implementations, during execution of the collaboration routine, the first AED and the second AED collaborate with each other by designating one of the first AED or the second AED to generate a voice recognition result for the audio data, performing a query interpretation on the voice recognition result to determine that the voice recognition result identifies a query that identifies an action to be taken, and sharing the query interpretation made on the voice recognition result with the other of the first AED or the second AED. In other implementations, during execution of the collaboration routine, the first AED and the second AED collaborate with each other by each independently generating a voice recognition result for the audio data, performing a query interpretation on the voice recognition result to determine that the voice recognition result identifies a query that identifies an action to be taken. In some examples, the action identified by the query includes a device-level action to be taken on each of the first AED and the second AED, and during execution of the collaboration routine, the first AED and the second AED collaborate with each other by independently performing the execution of the device-level action. In some configurations, the query identifying the action to be performed includes a query for the first AED and the second AED to perform a time-consuming operation, and during execution of the cooperation routine, the first AED and the second AED cooperate with each other by pairing with each other for the duration of the time-consuming operation and coordinating the performance of sub-actions related to the time-consuming operation to be performed between the first AED and the second AED.
[0008] An additional aspect of the present disclosure provides another method for combining hot words in a single utterance. The method includes receiving, in data processing hardware of an assistant-enabled device (AED), audio data corresponding to an utterance spoken by a user and captured by the AED, the utterance including a query for a first digital assistant and a second digital assistant to perform an action. The method also includes detecting, by the data processing hardware, a first hot word in the audio data using a first hot word detection model, where the first hot word is assigned to the first digital assistant and is different from a second hot word assigned to the second digital assistant. The method further includes determining, by the data processing hardware, that the audio data includes one or more terms that at least partially match a second hot word assigned to the second digital assistant and precede the query. Based on a determination that the audio data includes one or more terms that at least partially match the second hotword and precede the query, the method additionally includes executing, by the data processing hardware, a collaboration routine that causes the first digital assistant and the second digital assistant to collaborate with each other to perform an action.
[0009] Implementations of the present disclosure may include one or more of the following optional features. In some implementations, determining that the audio data includes one or more terms that at least partially match the second hot word and precede the query includes using a second hot word detection model to detect one or more terms in the audio data that match the second hot word exactly. In some examples, the method further includes, in response to detecting the first hot word in the audio data, initiating processing on the audio data by the data processing hardware, instructing a speech recognizer to perform speech recognition on the audio data to generate a speech recognition result on the audio data, and performing query interpretation on the speech recognition result to determine that the speech recognition result identifies the query, thereby determining that the audio data includes a query for the first digital assistant and the second digital assistant to perform an action. Determining that the audio data includes one or more terms that at least partially match the second hot word and precede the query may include using the speech recognition result on the audio data to determine that one or more terms that at least partially match the second hot word are recognized in the audio data. The first digital assistant may be associated with a first voice service and the second digital assistant may be associated with a second voice service, but the first and second voice services are provided by different entities. The first and second digital assistants may access different sets of resources associated with a user while working together to perform operations.
[0010] The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will become apparent from the description and drawings, and from the claims. [Brief description of the drawings]
[0011] [Figure 1A]1 is a schematic diagram of an exemplary audio environment in which multiple hot words are combined in a single utterance; [Figure 1B] 1 is a schematic diagram of an exemplary audio environment in which multiple hot words are combined in a single utterance; [Figure 1C] FIG. 1C is a schematic diagram of an example assistant-enabled device from the voice environment of FIGS. 1A and 1B. [Figure 1D] FIG. 1C is a schematic diagram of an example assistant-enabled device from the voice environment of FIGS. 1A and 1B. [Diagram 2] 1 is an exemplary collaboration routine operating in a voice environment. [Diagram 3] FIG. 1 is a schematic diagram of an example assistant-enabled device that includes multiple digital assistants. [Figure 4] 1 is a flowchart of an example operational configuration for a method for combining multiple device-specific hot words in a single utterance. [Diagram 5] 1 is a flowchart of an example operational configuration for a method for combining multiple assistant-specific hot words in a single utterance. [Figure 6] FIG. 1 is a schematic diagram of an example computing device that can be used to implement the systems and methods described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Like reference numbers in the various drawings indicate like elements.
[0013] Ideally, when conversing with a digital assistant interface, a user should be able to communicate as if they were speaking to another person via spoken requests directed at the assistant-enabled device running the digital assistant interface. The digital assistant interface provides these spoken requests to an automatic speech recognizer so that actions can be taken as a result of processing and recognizing the spoken requests. However, in practice, it is prohibitively expensive to run speech recognition continuously on resource-limited voice-enabled devices such as smartphones and smartwatches, making it difficult for the device to constantly respond to these spoken requests.
[0014] To create a user experience that supports always-on voice, assistant-enabled devices typically run compact hot word detection models configured to recognize audio features that characterize a narrow set of phrases that, when spoken by a user, trigger full automatic speech recognition (ASR) for any subsequent speech spoken by the user. Advantageously, the hot word detection models can run on low-power hardware, such as digital signal processor (DSP) chips, and can respond to a variety of fixed phrase commands, such as "hey Google" or "hey living room speakers."
[0015] As the number of Assistant-enabled devices in a user's environment (e.g., at home or at work) increases, the user may want to trigger multiple Assistant-enabled devices simultaneously, for example, to adjust the volume level across a group of Assistant-enabled smart speakers or to adjust the light level across a group of Assistant-enabled smart lights. Similarly, in the case of a single Assistant-enabled device that provides multiple different voice assistant services, the user may want to trigger two or more of these voice services simultaneously to fulfill the user's query. Whether the user wants to trigger multiple different Assistant-enabled devices or multiple different voice assistant services, the user is currently required to independently issue separate queries to each device or digital assistant service. For example, in a user's home, to turn off the kitchen light and the dining room light, the user may have to speak separate queries, such as "Hey, kitchen light bulb, turn off" and "Hey, dining room light bulb, turn off."
[0016] Implementations herein are directed to allowing a user to combine multiple device-specific hotwords in a single utterance spoken by the user to trigger all devices or digital assistant services to process subsequent queries in the utterance spoken by the user. As described in detail below, multiple assistant-enabled devices (AEDs) co-located in a user environment may cooperate with each other such that each AED responds to its own device-specific hotword and may also be configured to detect / recognize partial device-specific hotwords on behalf of one or more of the other AEDs co-located in the user environment. For example, in a scenario where a user has two smart speakers, each of which responds to its own device-specific hotword (e.g., hey device 1 and hey device 2), and the user wants to play his or her jazz playlist on both speakers, the user can speak a single query of "hey, device 1 and device 2, play my jazz playlist" to start playing the requested playlist on both smart speakers. In this scenario, the user speaks the complete device-specific hotword "hey device 1" but only partially speaks the device-specific hotword to the second smart speaker (e.g., the term "hey" does not immediately precede the spoken phrase "device 2"). However, the first smart speaker's detection of the phrase "hey device 1" triggers the device to wake up and start its ASR to recognize utterances spoken by the user. Because the two smart speakers are paired and configured to cooperate with each other, the first smart speaker that detected the phrase "hey device 1" and is now running its ASR can recognize the phrase "device 2" as a partial hotword match for the second smart speaker and determine that the user also intends to call the second smart speaker.In this scenario, the first smart speaker may command the second smart speaker to wake up to also process the query and / or serve the query on behalf of the second smart speaker so that a song from a jazz playlist is played from both speakers simultaneously. Advantageously, the user only needed to speak a single query directed to multiple AEDs simultaneously, thereby saving the user time since they did not need to provide multiple queries, each directed to a different one of the AEDs.
[0017] 1A-1D, in some implementations, an audio environment 100 includes a user 10 speaking an utterance 20 directed toward a plurality of assistant-enabled devices 110 (also referred to as devices 110, user devices 110, or AEDs 110). Here, the utterance 20 spoken by the user 10 may be captured by one or more devices 110 as streaming audio 12 and correspond to a query 22. For example, the query 22 may refer to a request to perform an action, operation, or task, and more particularly, to a digital assistant interface 120 operating in one or more of the devices 110. The user 10 may precede the query 22 with one or more hot words 24 and / or partial hot words 24, 24p as an invocation phrase that triggers one or more devices 110, 110a-n to wake up from a dormant or hibernating state (i.e., a low power state) when one or more hot words 24 are detected in the streaming audio 12 by a hot word detector 130 (FIGS. 1C and 1D) running on the respective device 110. In this sense, the user 10 may have a conversational interaction with the digital assistant interface 120 running on the AED device 110 to perform a computing activity or find an answer to a question.
[0018] The device 110 may correspond to any computing device associated with the user 10 and capable of capturing audio from the environment 100. Some examples of the user device 110 include, but are not limited to, mobile devices (e.g., mobile phones, tablets, laptops, e-readers, etc.), computers, wearable devices (e.g., smart watches), music players, casting devices, smart appliances (e.g., smart TVs) and Internet of Things (IoT) devices, remote controls, smart speakers, etc. The device 110 includes data processing hardware 112d and memory hardware 112m in communication with the data processing hardware 112d, which stores instructions that, when executed by the data processing hardware 112d, cause the data processing hardware 112d to perform one or more operations related to audio processing.
[0019] The device 110 further includes an audio subsystem with an audio capture device (e.g., an array of one or more microphones) 114 for capturing and converting audio in the audio environment 100 into electrical signals referred to as audio data 14 (audio data 14 in FIGS. 1C and 1D ). In the illustrated example, the device 110 implements the audio capture device 114 (also generally referred to as a microphone 114), although the audio capture device 114 may not be physically present on the device 110 but may communicate with the audio subsystem (e.g., peripherals of the device 110). For example, the device 110 may correspond to a vehicle infotainment system that utilizes an array of microphones located throughout the vehicle. In addition to the audio capture device 114, such as a microphone, the audio subsystem of the device 110 may also include an audio playback device 116, such as a speaker. With the speaker 116, the device 110 may play audio for the user 10 and / or the environment 100 in which the device 110 is located. This may enable device 110 (e.g., assistant interface 120) to respond to query 22 with a synthesized playback audio output on one or more speakers associated with device 110. For example, when user 10 asks assistant interface 120, "What's the weather like today?", speaker 116 may output a synthesized voice stating, "It's sunny today, and about 21 degrees Celsius (70 degrees Fahrenheit)."
[0020] The device 110 may also include a display 118 that displays graphical user interface (GUI) elements (e.g., windows, screens, icons, menus, etc.) and / or graphical content. For example, the device 110 may load or launch an application that generates GUI elements or other graphical content for the display 118. These elements generated on the display 118 may be selectable by the user 10 and may also function to provide some form of visual feedback for processing an activity / action occurring on the device 110 or a visual response to a query 22. Furthermore, because the device 110 is a voice-enabled device 110, the user 10 may interact with the elements generated on the display 118 using various voice commands. For example, the display 118 may show a menu of options for a particular application, and the user 10 may use the interface 120 to select an option via voice.
[0021] To give an example, a user 10 may direct an utterance 20 to two AEDs 110, 110d-e corresponding to two smart light bulbs located in a living room of the user's home. Now, the user 10 may be watching a movie in the living room and wish to dim the lights in the living room. In this scenario, the user 10 may speak the query "Device 1 and Device 2, please dim the lights." Here, a query 22 is placed in front of the complete device-specific hotword associated with the first smart light bulb 110d ("Device 1") and the complete device-specific hotword associated with the second smart light bulb 110e ("Device 2"), which triggers both devices 110d, 110e to cooperate with each other by waking up and performing the action independently specified by the query 22, i.e., each smart light bulb reducing its illuminance to a level characteristic of dim lighting. Additionally or alternatively, in response to this query 22, one or both of the devices 110d, 110e instruct the other device 110c to display a slider graphical user interface (GUI) on the display 118 that provides the user 10 with a GUI for controlling / adjusting the dim level of each of the light bulbs 110d, 110e. To further extend this example, once the two devices 110 receive this query 22, they may execute the query 22 and cooperate with a third device 110, 110c, which is a mobile device 110c located near the user 10 and in communication with the first and / or second devices 110d-e.
[0022] A voice-enabled interface (e.g., a digital assistant interface) 120 may process queries 22 or commands conveyed in utterances 20 captured by device 110. Voice-enabled interface 120 (also referred to as interface 120 or assistant interface 120) generally facilitates receiving audio data 14 corresponding to utterances 20 and coordinating voice processing on the audio data 14 or other activity resulting from the utterances 20. Interface 120 operates on data processing hardware 112d of device 110. Interface 120 may communicate audio data 14, including utterances 20, to various systems involved in voice processing or query fulfillment.
[0023] 1C and 1D, the interface 120 communicates with a hot word detector 130, a speech recognizer 140, and / or an interpreter 170. The speech recognizer 140 may implement the interpreter 170, or the interpreter 170 may be a separate component. Here, the interface 120 receives audio data 14 corresponding to an utterance 20 and provides the audio data 14 to the hot word detector 130. The hot word detector 130 may include one or more hot word detection stages. For example, the hot word detector 130 may include a first stage hot word detector that is "always on" and configured to initially detect the presence of a hot word, but once a hot word candidate is detected, the first stage hot word detector may send the audio data 14 characterizing the hot word candidate 24 to a second stage hot word detector that determines whether the audio data 14 includes the hot word candidate 24. The second stage hot word detector may avoid waking the device 110 from a dormant or hibernating state by rejecting hot word candidates detected by the first stage hot word detector. The first stage hot word detector may include a hot word detection model running on a digital signal processor (DSP) to crudely listen for the presence of a hot word, and the second stage hot word detector may include a more computationally-intensive hot word detection model than the first stage to accept or reject hot word candidates detected by the first stage hot word detector. The second stage hot word detector may run on an application processor (CPU) that triggers when the first stage hot word detector detects hot word candidates 24 in the streaming audio. In some examples, the second stage hot word detector includes a speech recognizer 140 that performs speech recognition on the audio data 14 to determine whether the hot word 24 is recognized in the audio data 14.
[0024] When the hot word detection model associated with the hot word detector 130 detects that the audio data 14 corresponding to the utterance 20 includes a hot word 24 assigned to the device 110, the interface 120 (or the hot word detector 130 itself) may send the audio data 14 to the speech recognizer 140 to initiate speech processing on the audio data 14. For example, the interface 120 may relay the audio data 14 to the speech recognizer 140 to initiate processing on the audio data 14 to determine whether the audio data 14 includes one or more terms that at least partially match the hot word 24 assigned to the other device 110 and that precede the query 22 of the utterance 20. Based on a determination that the audio data 14 includes one or more terms that at least partially match the other hot word 24 assigned to the other device 110 and that precede the query 22, the interface 120 may execute a collaboration routine 200 that causes the two devices 110 to collaborate with each other to perform an action specified by the query 22.
[0025] Referring to the example of FIG. 1A with reference to FIG. 1C and FIG. 1D, an utterance 20 spoken by a user 10 includes "hey device 1 and device 2, play my jazz playlist." Here, the utterance 20 includes a first hot word 24, 24a "hey device 1" assigned to the first device 110, 110a, which, when detected in the audio data 14, triggers an interface 120 operating on the first device 110a to relay subsequently captured audio data 14 corresponding to the term "and device 2, play my jazz playlist" to a speech recognition system 140 for processing. That is, the first device 110a may be in a dormant or hibernating state and operate a hot word detector 130 to detect the presence of the hot word 24 or partial hot word 24, 24p in the audio stream 12. For example, "device 2" may be considered a partial hot word 24p for the second device 110b because the entire / complete hot word 24 assigned to the second device 110b includes the phrase "hey device 2." Thus, the utterance 20 lacks the term "hey" of the entire hot word phrase "hey device 2," and the term "device 2" is associated with the partial hot word 24p of the entire / complete hot word 24. A hot word 24 as used herein may generally refer to either an entire hot word 24 or a partial hot word 24p. A hot word 24 functioning as a wake-up phrase, when detected by the hot word detector 130, triggers the device 110 to wake up and begin speech recognition for the hot word 24 and / or one or more terms following the hot word 23 (e.g., the term "and device 2, play my jazz playlist").1A shows the first and second devices 110a-b awake and cooperating with each other to play music from the user 10's jazz playlist because the utterance 20 includes a first hotword 24a assigned to the first device 110a and a second hotword 24b (e.g., partial hotword 24p) assigned to the second device 110b, while the third device 110c is within close enough range of the user 10 to capture the utterance 20 but does not wake up because the utterance 20 does not include any hotwords 24 assigned to the third device 110c. In this example, the utterance 20 includes the second hotword 24b. p Because the second hotword "hey device 2" includes one or more terms that only partially match the second hotword "hey device 2", the hotword detector 130 running on the second device 110b does not detect the presence of the hotword and trigger the second device 110b to wake up. Instead, the first device 110a initiates speech recognition to identify one or more terms "device 2" that partially match the second hotword "hey device 2", performs semantic interpretation on the audio data against the ASR results 142, and then invokes the second device 110b to wake up and collaborate with the first device 110a to fulfill the action of playing the jazz playlist identified by the query 22.
[0026] 1C and 1D, to perform hot word detection, the hot word detector 130 includes a hot word detection model, such as a neural network-based model, configured to detect acoustic features indicative of hot words 24 without performing speech recognition or semantic analysis. By using the hot word detector 130, the detection of hot words 24 can occur in low-power hardware, such as a DSP chip, which avoids consuming the device's computing unit (CPU) (e.g., associated with the data processing hardware 112d). As described above, the first stage hot word detector may run on the DSP chip to first detect the presence of a hot word candidate, and then call the CPU to wake up and run the second stage hot word detector (hot word detection model or speech recognizer) to confirm the presence of the hot word. When this detector detects the hot word 24, the hot word 24 may trigger the device to wake up and begin speech recognition that requires more expensive processing (e.g., ASR and natural language understanding (NLU)). Here, the device may perform on-device ASR by running a speech recognizer 140 on data processing hardware 112d (e.g., a CPU). Optionally, the device 110 may establish a network connection with a server (e.g., remote system 160 of FIG. 1B) to provide the audio data 14 to the server for server-side ASR and / or NLU on the audio data 14. In some implementations, each device 110 in the environment 100 runs its own hot word detector 130.
[0027] In response to the hot word detector 130 detecting the hot word 24 in the audio data 14, the interface 120 relays the audio data 14 corresponding to the utterance 20 to a speech recognizer 140, which performs speech recognition on the audio data 14 to generate an automatic speech recognition (ASR) result (e.g., a transcription) 142 for the utterance 20. The speech recognizer 140 and / or the interface 120 may provide the ASR result 142 to an interpreter 170 (e.g., an NLU module) to perform a semantic interpretation on the ASR result 142 and determine that the audio data 14 includes one or more terms “device 2,” which partially match a second hot word assigned to the second device 110b, “hey device 2.” Thus, the second hot word 24, 24b may be used to generate an ASR result 142 for the utterance 20. p Based on a determination that the audio data 14 includes one or more terms that partially match the first device 110a, the interpreter 170 determines that the utterance 20 was also directed toward the second device 110b, and thereby provides instructions 172 to initiate execution of a collaboration routine 200 to invoke the second device 110b to wake up and collaborate with the first device 110a. In particular, if the utterance 20 had instead included all the terms "hey device 2" for the second hot word 24, the hot word detector 130 running on the second device 110b might have detected the second hot word and executed the collaboration routine 200 to collaborate with the second device 110a to perform the action specified by the subsequent query 22, by also waking up the second device 110b and triggering it to perform speech recognition and semantic interpretation independently.
[0028] In this example, the query 22 includes a query for the first and second devices 110a, 110b to perform the long-lasting action of streaming a jazz music playlist for audible playback. Thus, during execution of the collaboration routine 200, the first and second devices 110a, 110b may pair with each other for the duration of the long-lasting action and collaborate with each other by coordinating the performance of sub-actions related to the long-lasting action between the first device 110a and the second device 110b. In other words, because the query 22 corresponds to a music play command, the collaboration routine 200 may cause the first device 110a and the second device 110b to pair with each other and audibly play songs from the user's jazz playlist in a stereo configuration, with the first device 110a assuming the role of the left audio channel as a sub-action and the second device 110b assuming the role of the right audio channel as a sub-action.
[0029] In some implementations, as shown in FIG. 1B, the device 110 communicates with a remote system 160 via a network 150. The remote system 160 may include remote resources 162, such as remote data processing hardware 164 (e.g., a remote server or CPU) and / or remote memory hardware 166 (e.g., a remote database or other storage hardware). The device 110 may utilize the remote resources 162 to perform various functions related to speech processing and / or query fulfillment. For example, some or all of the functionality of the speech recognizer 140 may reside on the remote system 160 (i.e., server-side). In one example, the speech recognizer 140 resides on the device 110 to perform on-device automatic speech recognition (ASR). In other examples, the speech recognizer 140 resides on the remote system 160 to provide server-side ASR. In yet other examples, the functionality of the speech recognizer 140 is split across the device 110 and the server 160.
[0030] In some configurations, the speech recognizer 140 may reside in different locations (e.g., on-device or remote) depending on the type of speech recognition model used during speech recognition. An end-to-end or streaming-based speech recognition model may reside on the device 110 due to its space-efficient size, while a larger, more traditional speech recognition model built from multiple models (e.g., an acoustic model (AM), a pronunciation model (PM), and a language model (LM)) may be a server-based model residing on the remote system 140 rather than being on-device. In other words, depending on the desired level of speech recognition and / or the desired speed at which to perform the speech recognition, the interface 120 may dictate whether speech recognition by the speech recognizer 140 occurs on-device (i.e., at the user's side) or remotely (i.e., at the server's side).
[0031] In some examples, such as FIG. 1B, the environment 100 includes a first network 150, 150a and a second network 150, 150b. Here, the first network 150a may correspond to a local area network (LAN), such as a personal network associated with a user's home. As a LAN, the first network 150a may refer to a local network layer in which multiple devices 110, 110a-n associated with the user 10 are configured to be connectable and / or communicate with each other. For example, the devices 110 connect to each other using wired and / or wireless communication protocols, such as WiFi, Bluetooth, Zigbee, Ethernet, or other wireless-based protocols. In the first network 150a, a device 110 may broadcast information (e.g., instructions associated with the collaboration routine 200) to one or more other devices 110 to fulfill a query 22. The devices 110 may be configured to communicate with each other in a discovery process to establish communication upon joining the network 150a, or may undergo a pairing process with each other in response to a query 22 that calls for a particular set of devices 110. The first network 150a or local network may also be configured to communicate with the second network 150b or a remote network, where a remote network may refer to a wide area network (WAN) that extends over a large geographic area. By being able to communicate with the second network 150b, the first network 150a may communicate with or have access to a remote system 160, which allows one or more devices 110 to perform services such as server-side voice recognition, server-side hotword detection, or some other type of server-side voice processing or query fulfillment.In some configurations, a supervisor (e.g., computer-based software) may be configured to collaborate with devices 110 operating on the first network 150a or on a local network associated with the user 10 such that the supervisor recognizes that an utterance 20 from the user 10 will awaken multiple devices 110 and the supervisor may facilitate or initiate a collaboration routine 200 among the awakened devices 110.
[0032] Referring to FIG. 1D, in some implementations, the interpreter 170 determines that the audio data 14 includes one or more terms that at least partially match the second hotword 24 "Hey Device 2" assigned to the second AED and precede the query 22 by accessing a hotword registry 180 that includes a respective list 182, 182a-n of one or more hotwords assigned to each device 110, 110a-n associated with the user 10, and identifying that the ASR result 142 for the audio data 14 includes one or more terms that match or partially match the second hotword "Hey Device 2" in the respective list 182a of one or more hotwords assigned to the second device 110b. The hotword registry 180 accessed by the interpreter 170 may be stored on one of the devices 110, on more than one of the devices, and / or on a central server (e.g., remote system 160 (FIG. 1B)) that communicates with all devices 110 via network 150 (FIG. 1B). Thus, each device 110 may (1) store a device-specific hotword registry 180 that contains only hotwords 24 for that particular device 110, (2) store a global hotword registry 180 with hotwords 24 for all devices 110 associated with the user 10, or (3) not store any hotword registry 180. When a particular device 110 includes a global hotword registry 180, that device 110 may act as a local central storage node for hotwords 24 assigned to the devices 110 of the user 10. A device that does not store a global hotword registry 180 may access a global hotword registry 180 stored on one or more other devices 110 via a local network 150a or may access a global hotword registry present on a remote system 160.The device 110 may actively update the hotword registry 180 when a new hotword 24 becomes active / available and / or when a hotword 24 becomes inactive / unavailable.
[0033] In some examples, the respective list 182 of hotwords 24 assigned to each device 110 in the hotword registry 180 includes one or more variants associated with each hotword 24. Here, each variant of a hotword 24 assigned to a particular device 10 may correspond to a partial hotword 24p for that device. Continuing with the example, FIG. 1D illustrates a respective list of hotwords 24 assigned to a second device 110b, including the hotword "hey device 2," the variant "device 2," and the variant "hey device <...> 2" that corresponds to the partial hotword 24p. Thus, the interpreter 170 running on the first device 110a accesses the hotword registry 180 and identifies that the respective list 182a associated with the second device 110b includes the variant "device 2" in the list because the partial hotword 24p matches one or more terms in the ASR result 142. In particular, listing 182a lists the variant "hey device <...> 2" as a complex expression that allows for a partial match with the second hotword "hey device 2" when a user precedes the query with "hey device 1 and 2" or "hey device 1 and device 2."
[0034] As noted above, when a user 10 only partially speaks a hotword, the hotword detector 130 operating on a particular device 110 will not detect the presence of that hotword 24, i.e., will not trigger the device 110 to wake up when only the partial hotword 24p is spoken by the user 10. To further illustrate, when the hotword detector 130 is performing hotword detection, the hotword detector 130 generates a hotword score indicating a confidence level that the particular hotword 24 is present in the streaming audio. When the hotword score satisfies a threshold (e.g., exceeds a particular threshold), the hotword detector 130 identifies the presence of the complete hotword 24 in the streaming audio. However, when only the partial hotword 24p is present in the streaming audio, the hotword detector 130 may generate a corresponding hotword score that does not satisfy the threshold. As a result, the hotword detector 130 will not detect the hotword 24, and the device 110 will continue to remain in a dormant or hibernating state. To avoid this outcome, interpreter 170 can access hotword registry 180 to determine that one or more terms recognized in audio data 14 (e.g., one or more terms in ASR results 142) match a variant associated with a hotword 24. This match can effectively raise a confidence score to trigger device 110 to wake up and cooperate with one or more other devices 110 to which the query was directed to perform the action specified by query 22.
[0035] In some examples, the AED 110 that detects the hot word in the audio data can run a machine learning model 175 to determine whether the audio data 14 corresponding to the utterance 20 refers to a hot word assigned to the other AED. Thus, the machine learning model 175 is trained to detect partial hot words in the audio data. The machine learning model 175 can receive the audio data 14 as input and determine the likelihood that the user 10 intended to speak the hot word assigned to the other AED. The machine learning model can be trained on predicted hot word utterances for one or more hot words and variants thereof. The machine learning model can include a neural network or an embedding-based comparison model, where the embeddings of the audio data 14 are compared to the embeddings of the predicted hot word utterances.
[0036] 2, the collaboration routine 200 operates in response to the assistant interface 120 providing instructions 172 indicating that the speech recognition result 142 includes one or more terms that at least partially match a hot word assigned to the other device 110. The instructions 172 may include an identifier associated with each of the two or more devices 110, 110a-n to which the utterance 20 is directed. The instructions 172 may further include the speech recognition result 142. When one or more terms in the audio data only partially match a hot word assigned to the device 110, 110b, the collaboration routine 200 may be executed to cause the triggered device 110, 110a to wake up and invoke the other device 110b to collaborate with the first device 110a to perform the action specified by the query 22. For example, when the collaborative routine 200 receives instructions 172 from the interpreter 170 indicating that the ASR results 142 contain terms that only partially match the hot words assigned to the second device 110b, the collaborative routine 200 may call the second device 110b to wake up.
[0037] The collaboration routine 200 may include a delegation stage 210 and a fulfillment stage 220. During the delegation stage 210, the cooperating devices 110, 100a-b collaborate with each other by assigning processing instructions to at least one of the cooperating devices. For simplicity, there are two cooperating devices 110 corresponding to a first device 110a and a second device 110b, however, other examples may include more than two cooperating devices 110 when the interpreter determines that an utterance is directed to more than two devices 110. The processing instructions 212 may specify the first cooperating device 110a to generate ASR results 142 for the audio data 14, perform query interpretation on the ASR results 142 to determine that the ASR results 142 identify a query 22 that identifies an action to be taken, and share the query interpretation performed on the ASR results 142 with the other cooperating device 110b. In this example, the audio data 14 may only contain one or more terms that partially match the hotwords assigned to the second device 110b, and thus the delegation stage 210 may determine to have the first device 110a, continuing to process the audio data 14, identify the query 22 that identifies the action to be taken while simultaneously invoking the second device 110b to wake up and collaborate with the first device 110a. In other examples, the processing instructions 212 may instead allow the cooperating devices to cooperate with each other by each independently generating ASR results 142 for the audio data 14 and performing query interpretation on the ASR results 142 to identify the query 22.
[0038] When a cooperating device 110 performs some aspects of voice processing and / or query interpretation while other devices do not, the routine 202 may specify which cooperating devices 110 need to share information with the other cooperating devices 110 to coordinate the execution of the routine 202. For example, if a first device 110a performs query interpretation for a query 22 of "play my jazz playlist," the second device 110b will not know about this query interpretation until the interpretation is shared with the second device 110b. Furthermore, if the routine 202 specifies that the first device 110a performs voice processing and the second device 110b performs query interpretation, the first device 110a needs to share the voice recognition results 142 with the second device 110b to enable the second device 110b to perform the query interpretation, since the second device's actions depend on the first device's actions.
[0039] When generating the processing instructions 212, the delegation stage 210 may evaluate the capabilities of each cooperating device 110, such as processing capabilities, power usage, battery level, AED models available in the device 110, whether each device can perform ASR locally or remotely, or any other capabilities / parameters associated with the device 110. For example, a particular cooperating device 110 may inherently have larger processing resources to perform resource-intensive operations. In other words, when a first device 110a is a device 110 with limited processing resources such as a smartwatch, and a second device 110b is a tablet, the smartwatch may be much more constrained in terms of processing resources than the tablet. Thus, when one of the cooperating devices 110 is a smartwatch, the delegation stage 210 may specify performing voice processing and query interpretation on the other cooperating device 110 whenever possible.
[0040] The execution stage 220 receives a query 22 interpreted from the audio data 14 by at least one of the cooperating devices 110. In some examples, the query 22 specifies a device-level action to take for each of the cooperating devices 110. For example, a query 22 directed toward the smart lights 110d, 110e of FIG. 1 specifying an action to dim the lights corresponds to a device-level query, in which case the execution stage 220 may instruct the smart lights 110d, 110e to cooperate with each other by each independently reducing their illumination to a level characteristic of dim lighting.
[0041] In another example, the query 22 identifies a time-consuming operation to be performed together by the cooperating devices 110. To perform the time-consuming operation, these devices 110 are required to cooperate in performing multiple sub-actions 222, 222a-n related to the time-consuming operation. The cooperating devices 110 may therefore cooperate with each other by pairing with each other for the duration of the time-consuming operation and coordinating the performance of the sub-actions 222 related to the time-consuming operation between each of the cooperating devices 110. Thus, the performance stage 220 identifies the sub-actions 222 related to the time-consuming operation and coordinates the performance of those sub-actions between the cooperating devices 110.
[0042] Continuing with the above example, the query 22 identifies a time-consuming operation of audibly playing the user's jazz playlist on the first and second devices 110a, 110b corresponding to smart speakers located in the user's living room. To perform this time-consuming operation, the performance stage 220 identifies a sub-action 222 associated with this time-consuming operation and generates performance instructions 225 that cause the first device 110a and the second device 110b to pair with each other and coordinate the performance of the sub-action 222 associated with this time-consuming operation between the first device 110a and the second device 110b. For example, to play the user's jazz playlist, the jazz music playlist may be either accessed locally (e.g., the playlist is stored on one of the devices 110a-b), accessed from a network storage device (not shown) on the local network 150a (FIG. 1B), or streamed from a music streaming service residing on some remote server. In this example, the user's jazz playlist is a playlist in a streaming music application associated with a music streaming service. Here, the execution instructions 225 may instruct the second device 110b to perform a sub-action of launching a music streaming application that connects with a remote music streaming service to stream a current song from the jazz music playlist over a remote network, and to transmit / stream the song to the first device 110a, which assumes responsibility for audio playback of the current song as the left audio channel. On the other hand, the execution instructions 225 only instruct the first device 110a to perform a sub-action 222 of assuming responsibility for audio playback of the current song streamed from the second device 110b as the right audio channel. Thus, the execution instructions 225 coordinate the execution of sub-actions between the first device 110a and the second device 110b to perform the time-consuming operation of the two devices 110a, 110b playing music in a stereo configuration.The subaction 222 corresponding to streaming songs from the playlist then repeats until this time-consuming operation ends (e.g., the playlist ends or the user 10 stops music playback on the devices 110a-b), at which point the devices 110 disassociate (e.g., their paired connections end) and return to a low-power state (e.g., a dormant or hibernating state).
[0043] FIG. 3 is an example of combining multiple hot words 24 into a single utterance 20 similar to the example of FIG. 1A-1D. FIG. 3 differs from the example of FIG. 1A-1D in that instead of each of the multiple hot words 24 corresponding to a different device 110, the multiple hot words 24 correspond to different assistant interfaces 120. That is, the multiple hot words 24 combined in the single utterance 20 are interface-specific, not device-specific. The assistant interface 120 may refer to one or more applications running on the data processing hardware 112d of the device 110. For example, the interface 120 is an application programming application (API) that interfaces with different applications, such as a media application (e.g., a video streaming application, an audio streaming application, a media player application, a media gallery application, etc.), a word processing application, a navigation application, a social media application, a communication application (e.g., a messaging application, an email application, etc.), a financial application, an organizational application (e.g., an address book application), a retail application, an entertainment application (e.g., a news application, a weather application, a sports application), a cast application, etc. Some interfaces 120 are proprietary software developed by companies to interface with their applications or perhaps to include some functionality specific to that particular company's business offering. As shown in Figure 3, two of the more common assistant interfaces 120 are offered by Google (e.g., called Google Assistant) and Amazon (e.g., called Alexa).Each interface 120 may have its own unique set of hot words 24 for triggering the interface 120 to perform an operation, task, or action associated with a query 22 received in an utterance 20 spoken by a user 10 into the assistant interface 120.
[0044] A user 10 of a device 110 may often use multiple interfaces 120 on a particular device 110, since each interface 120 may have different compatibility with other applications in communication with the device 110 or may have its own set of unique advantages. A user 10 may even use two different interfaces 120 to perform the same action to compare results / responses or to get multiple perspectives on a particular query 22. For example, a user 10 may consider the weather forecast function of the first interface 120, 120a to be more accurate than the weather forecast function of the second interface 120, 120b with respect to weather that produces storms or rain, but on the other hand, the weather forecast function of the second interface 120, 120b with respect to humid and warm weather than the weather forecast function of the first interface 120, 120a. With this perspective, a user 10 may combine what would normally be two separate utterances 20, "Hey Google, what's the weather going to be like today?" and "Alexa, what's the weather going to be like today?", into a single utterance 20, "Hey Google and Alexa, what's the weather going to be like today?" In FIG. 3, an example refers to a shopping question. In this case, a user 10 may issue a query 22 to both Amazon and Google for the price of a certain Lego set by saying, "Hey Google and Alexa, how much is the Razor Crest Lego set?" to compare pricing or gather more data regarding pricing in the market.
[0045] Although the hotwords 24 are interface-specific rather than device-specific, other features of the device 110 function similarly. For example, in the case of interface-specific hotwords 24, the device 110 includes a hotword detector 130, a speech recognizer 140, and a collaborator 200, as can be seen in FIG. 3. In other words, the device 110 receives audio data 14 corresponding to an utterance 20 spoken by a user 10, and the hotword detector 130 detects in the audio data 14 a first hotword 24, 24a, "Hey Google," where the first hotword 24, 24a is assigned to a first digital assistant 120a. The speech recognizer 140 generates ASR results 142 for the audio data 14, and the interpreter 170 determines whether the ASR results 142 for the audio data 14 include one or more terms that at least partially match a second hotword 24 assigned to the second digital assistant 120b (e.g., assigned to Alexa) and precede the query 22. The interpreter 170 can access the hotword registry 180, as previously discussed, to determine that the term "Alexa" matches a hotword assigned to the second digital assistant 120b.
[0046] Based on a determination that the audio data 14 includes one or more terms that at least partially match one or more second hot words 24 assigned to the second digital assistant 120b and precede the query 22, the interpreter 170 sends an instruction 172 that initiates a collaboration routine 200 that causes the first digital assistant 120a and the second digital assistant 120b to collaborate with each other to perform an action. In contrast to the example of FIG. 1A-FIG. 1D, multiple digital assistant interfaces 120 (e.g., the first and second digital assistant interfaces 120a-b) collaborate to perform an action associated with the query 22 rather than the device 110. This means that the action or sub-action 222 of the query 22 can be performed in parallel (e.g., simultaneously) by multiple interfaces 120.
[0047] When multiple interfaces 120 perform the operation corresponding to a query 22, different interfaces 120 may perform the query 22 in different ways. For example, one interface 120 may be associated with a different service than another interface 120, or one interface 120 may produce a different performance result because the interface 120 has access to different resources than the other interfaces 120. In some implementations, different interfaces 120 perform or control different types of actions for the device 110. For example, one interface 120 may perform a device-level action in one manner, and another interface 120 may perform the same device-level action in a different manner. To illustrate, a user 10 may speak an utterance 20 of, "Hey Google and Alexa, turn off data logging." Query 22 in this utterance is similar to the lighting example discussed above in which a first interface 120a associated with Google deactivates the data logging feature of the first interface 120a, but does not deactivate the data logging feature in a second interface 120b corresponding to Amazon. Instead, the second interface 120b independently deactivates its data logging feature, just like the first interface 120a.
[0048] In addition to operating independently, multiple interfaces 120 may cooperate to synchronize responses. For example, when a first interface 120a responds to a search query 22 of "What will the weather be like today?" with "Today's forecast is sunny," a second interface 120b may be configured to cooperate with the first interface 120a by affirming (e.g., "I agree") or by disputing the response of the first interface 120a. Also, in order to provide a more detailed response to the user, part of the response may be provided from one interface and other part of the response may be obtained from the other interface.
[0049] 4 is a flowchart of an exemplary operational configuration for a method 400 of combining device-specific hot words 24 in a single utterance 20. In operation 402, the method 400 receives audio data 14 at the data processing hardware 112d of the first AED device 110, 110a corresponding to the utterance 20 spoken by the user 10 and directed toward a first AED 110a and a second AED 110, 110b among two or more AEDs 110, 110a-n associated with the user 10, where the audio data 14 includes a query 22 identifying an action to be taken. In operation 404, the method 400 detects a first hot word 24, 24a in the audio data 14 using a hot word detection model, the first hot word 24a being assigned to the first AED 110a and different from a second hot word 24, 24b assigned to the second AED 110b. In response to detecting the first hotword 24a assigned to the first AED 110a in the audio data 14, at operation 406, the method 400 begins processing the audio data 14 to determine that the audio data 14 includes one or more terms that at least partially match the second hotword 24b assigned to the second AED 110b and precede the query 22. Based on the determination that the audio data 14 includes one or more terms that at least partially match the second hotword 24b and precede the query 22, at operation 408, the method 400 executes a cooperation routine 202 that causes the first AED 110a and the second AED 110b to cooperate with each other to perform the action specified by the query 22.
[0050] 5 is a flowchart of an exemplary operational configuration for a method 500 of combining assistant-specific hot words 24 in a single utterance 20. In operation 502, the method 500 receives audio data 14 corresponding to an utterance 20 spoken by a user 10 and captured by the AED 110a in the data processing hardware 112d of the assistant-enabled device (AED) 110, 110a, where the utterance 20 includes a query 22 to the first digital assistant 120, 120a and the second digital assistant 120, 120b to perform an action. In operation 504, the method 500 detects a first hot word 24, 24a in the audio data using a first hot word detection model by the data processing hardware 112d, where the first hot word 24a is assigned to the first digital assistant 120a and is different from a second hot word 24, 24b assigned to the second digital assistant 120b. At operation 506, the method 500 determines, by the data processing hardware 112d, that the audio data 14 includes one or more terms that at least partially match the second hotword 24b assigned to the second digital assistant 120b and precede the query 22. Based on the determination that the audio data 14 includes one or more terms that at least partially match the second hotword 24b and precede the query 22, at operation 508, the method 500 executes, by the data processing hardware 112d, a collaboration routine 202 that causes the first digital assistant 120a and the second digital assistant 120b to collaborate with each other to perform an operation.
[0051] 6 is a schematic diagram of an exemplary computing device 600 that may be used to implement the systems and methods described in this document. The computing device 600 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The components shown herein, their connections and relationships, and their functions are meant to be exemplary only and are not meant to limit the implementation of the invention described and / or claimed in this document.
[0052] Computing device 600 includes a processor 610, a memory 620, a storage device 630, a high-speed interface / controller 640 that connects to memory 620 and high-speed expansion port 650, and a low-speed interface / controller 660 that connects to low-speed bus 670 and storage device 630. Each of components 610, 620, 630, 640, 650, and 660 are interconnected using various buses and may be mounted on a common motherboard or in other manners as desired. Processor 610 can process instructions for execution within computing device 600, including instructions stored in memory 620 or on storage device 630 for displaying graphical information for a graphical user interface (GUI) on an external input / output device, such as a display 680 coupled to high-speed interface 640. In other implementations, multiple processors and / or multiple buses may be used, along with multiple memories and multiple types of memories, as desired. Also, multiple computing devices 600 may be connected, each providing a portion of the required operations (eg, as a server bank, a collection of blade servers, or a multi-processor system).
[0053] The memory 620 stores information non-temporarily within the computing device 600. The memory 620 may be a computer-readable medium, a volatile memory unit, or a non-volatile memory unit. The non-transient memory 620 may be a physical device used to temporarily or permanently store programs (e.g., sequences of instructions) or data (e.g., program state information) for use by the computing device 600. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), and disk or tape.
[0054] The storage device 630 is capable of providing mass storage for the computing device 600. In some implementations, the storage device 630 is a computer-readable medium. In various different implementations, the storage device 630 can be a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state memory device, or an array of devices including devices in a storage area network or other configuration. In additional implementations, a computer program product is tangibly embodied as an information carrier. The computer program product includes instructions that, when executed, perform one or more methods as described above. The information carrier is a computer or machine-readable medium, such as the memory 620, the storage device 630, or a memory on the processor 610.
[0055] The high-speed controller 640 manages bandwidth-intensive operations for the computing device 600, while the low-speed controller 660 manages less bandwidth-intensive operations. Such an allocation of duties is merely exemplary. In some implementations, the high-speed controller 640 is coupled to the memory 620, the display 680 (e.g., via a graphics processor or accelerator), and a high-speed expansion port 650 that may accept various expansion cards (not shown). In some implementations, the low-speed controller 660 is coupled to the storage device 630 and a low-speed expansion port 690. The low-speed expansion port 690 may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), but may also be coupled to one or more input / output devices, such as a keyboard, pointing device, scanner, or a network device, such as a switch or router, e.g., via a network adapter.
[0056] The computing device 600 may be implemented in a number of different forms, as shown in the figure: For example, it may be implemented as a standard server 600a or a cluster of servers 600a, as a laptop computer 600b, or as part of a rack server system 600c.
[0057] Various implementations of the systems and techniques described herein may be realized as digital electronic and / or optical circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementation as one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be a special purpose or general purpose one, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0058] These computer programs (also known as programs, software, software applications or codes) contain machine instructions for a programmable processor and may be implemented as a high-level procedural and / or object-oriented programming language and / or as an assembly / machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, apparatus and / or device (e.g., magnetic disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor including a machine-readable medium that receives the machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0059] The processes and logic flows described herein can be performed by one or more programmable processors, also referred to as data processing hardware, that execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by dedicated logic circuitry, such as, for example, FPGAs (field programmable gate arrays) and ASICs (application specific integrated circuits). Processors suitable for executing computer programs include, by way of example, both general purpose and dedicated microprocessors, as well as any one or more processors of any type of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices for storing data, such as, for example, magnetic, magneto-optical, or optical disks, or is operatively coupled to a mass storage device to receive data from or transfer data to, or both from, the mass storage device. However, it is not necessary for a computer to have such devices. Computer-readable media suitable for storing computer program instructions and data include all types of non-volatile memory, media and memory devices, including, by way of example, semiconductor memory devices such as, for example, EPROM, EEPROM, and flash memory devices, magnetic disks such as, for example, internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory can be supplemented by, or incorporated in, dedicated logic circuitry.
[0060] To provide for interaction with a user, one or more aspects of the present disclosure can be implemented on a computer having a display device, such as, for example, a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen, for displaying information for a user, and optionally, a keyboard and pointing device, such as, for example, a mouse or trackball, for allowing the user to provide input to the computer. Other types of devices can be used to provide interaction with a user as well, for example, feedback provided to the user can be any form of sensory feedback, such as, for example, visual feedback, auditory feedback, or tactile feedback, and input from the user can be received in any form, including acoustic, speech, or tactile input. Additionally, a computer can interact with a user by sending documents to and receiving documents from a device used by the user, such as, for example, sending a web page to a web browser on a user's client device in response to a request received from the web browser.
[0061] Several implementations have been described above. However, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims. [Explanation of symbols]
[0062] 10 users 12. Streaming Audio 20 Utterances 22 Queries 24 Hot words, hot word suggestions 24a First Hot Word 24p Partial Hot Words 100 Audio Environment 110 Assistant Enabled Devices (AEDs), Devices, User Devices 110a First Device 110b Second Device 110c Devices, Third Devices, Mobile Devices 110d AED, Device, 1st Smart Bulb, Smart Light 110e AED, device, 2nd smart bulb, smart light 112d Data Processing Hardware 112m Memory Hardware 114 Audio Capture Devices (Microphones) 116 Audio playback device, speaker 118 Display 120 Voice-enabled interface, assistant interface 130 Hotwords Detector 140 Voice recognizer, voice recognition system 142 Automatic Speech Recognition (ASR) Results 150 Network 160 Remote Systems 162 Remote Resources 164 Remote Data Processing Hardware 166 Remote Memory Hardware 170 Interpreter 172 Command 175 Machine Learning Models 180 Hotword Registry 182, 182a~n List 200 Collaborative Routines 210 Delegation Stage 212 Processing Instructions 220 Execution Stage 222 Subaction 225 Execution orders 600 computing devices 600a Standard Server 600b Laptop Computer 600c Rack Server System 610 Processor 620 Memory 630 Storage Devices 640 High Speed Interface / Controller 650 High Speed Expansion Port 660 Low Speed Interface / Controller 670 Slow Bus 680 Display 690 Low Speed Expansion Port
Claims
1. In data processing hardware of a first assistant-enabled device (AED), receiving audio data corresponding to an utterance spoken by a user and directed to a first AED and a second AED of two or more AEDs associated with the user, the audio data including a query specifying an action to be taken; detecting, by the data processing hardware, a first hot word in the audio data using a hot word detection model, the first hot word being assigned to the first AED and different from a second hot word assigned to the second AED; initiating processing of the audio data by the data processing hardware in response to detecting the first hot word assigned to the first AED in the audio data to determine that the audio data includes one or more terms that at least partially match the second hot word assigned to the second AED and that precede the query; executing, by the data processing hardware, a cooperation routine that causes the first AED and the second AED to cooperate with each other to perform the action specified by the query based on a determination that the audio data includes the one or more terms that at least partially match the second hotword and precede the query; A method comprising: During execution of the cooperation routine, the first AED and the second AED specify one of the first AED or the second AED, generating a speech recognition result for the audio data; performing a query interpretation on the speech recognition result to determine that the speech recognition result identifies the query that specifies the action to be taken; By sharing the query interpretation made on the speech recognition result with the other of the first AED or the second AED. How to work together.
2. Initiating processing on the audio data in response to determining that the audio data includes the first hotword comprises: instructing a speech recognizer to perform speech recognition on the audio data to generate a speech recognition result for the audio data; using the speech recognition results for the audio data to determine that the one or more terms that at least partially match the second hot word are recognized in the audio data; 2. The method of claim 1, comprising:
3. The step of instructing the speech recognizer to perform speech recognition on the audio data comprises: instructing a server-side speech recognizer to perform speech recognition on said audio data; or instructing the speech recognizer operating on the data processing hardware of the first AED to perform speech recognition on the audio data; The method of claim 2, comprising one of the following:
4. Determining that the audio data includes the one or more terms that at least partially match the second hotword assigned to the second AED and precede the query includes: accessing a hotword registry including a respective list of one or more hotwords assigned to each of the two or more AEDs associated with the user; recognizing in the audio data one or more terms that match or at least partially match a second hot word in the respective list of one or more hot words assigned to the second AED; 2. The method of claim 1, comprising:
5. the respective lists of one or more hot words assigned to each of the two or more AEDs in the hot word registry further including one or more variants associated with each hot word; 5. The method of claim 4, wherein determining that the audio data includes the one or more terms that at least partially match the second hotword and that precede the query comprises determining that the one or more terms recognized in the audio data match one of the one or more variants associated with the second hotword.
6. The hotword registry includes: the first AED; the second AED; a third AED of the two or more AEDs associated with the user; or a server in communication with the two or more AEDs associated with the user; The method of claim 4, wherein the at least one of the following is stored in the at least one memory:
7. 2. The method of claim 1, wherein determining that the audio data includes the one or more terms that at least partially match the second hotword and precede the query comprises providing the audio data as input to a machine learning model trained to determine a likelihood of whether a user intended to speak the second hotword assigned to a user device.
8. 2. The method of claim 1, wherein when the one or more terms preceding the query in the audio data only partially match the second hotword, executing the collaboration routine causes the first AED to summon the second AED to wake up and collaborate with the first AED to accomplish the action specified by the query.
9. the actions identified by the query include device-level actions to be taken on each of the first AED and the second AED; During execution of the cooperation routine, the first AED and the second AED cooperate with each other by independently performing the device-level operations. The method of claim 1.
10. The query to identify the action to be taken includes a query for the first AED and the second AED to perform an action that requires time; During execution of the cooperation routine, the first AED and the second AED: pairing with each other for the duration of said time-consuming operation; By coordinating the performance of sub-actions related to the time-consuming operation to be performed between the first AED and the second AED; The method of claim 1 , wherein the first and second inputs are coupled to each other.
11. A first assistant enabled device (AED), Data processing hardware; memory hardware in communication with the data processing hardware; the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations, the operations including: receiving audio data corresponding to speech spoken by a user and directed to a first AED and a second AED of two or more AEDs associated with the user, the audio data including a query identifying an action to be taken; Detecting a first hot word in the audio data using a hot word detection model, the first hot word being assigned to the first AED and different from a second hot word assigned to the second AED; In response to detecting the first hot word assigned to the first AED in the audio data, initiate processing on the audio data to determine that the audio data includes one or more terms that at least partially match the second hot word assigned to the second AED and precede the query; executing a collaboration routine that causes the first AED and the second AED to collaborate with each other to perform the action specified by the query based on a determination that the audio data includes the one or more terms that at least partially match the second hotword and precede the query; A first assistant-enabled device, comprising: During execution of the cooperation routine, the first AED and the second AED specify one of the first AED or the second AED, generating a speech recognition result for the audio data; performing a query interpretation on the speech recognition result to determine that the speech recognition result identifies the query that specifies the action to be taken; By sharing the query interpretation made on the speech recognition result with the other of the first AED or the second AED. The first Assistant-enabled devices that work together.
12. Initiating processing on the audio data in response to determining that the audio data includes the first hotword comprises: instructing a speech recognizer to perform speech recognition on the audio data to generate a speech recognition result for the audio data; using the speech recognition results for the audio data to determine that the one or more terms that at least partially match the second hot word are recognized in the audio data; The device of claim 11 , comprising:
13. Instructing the speech recognizer to perform speech recognition on the audio data includes: instructing a server-side speech recognizer to perform speech recognition on said audio data; or instructing the speech recognizer to execute on the data processing hardware of the first AED to perform speech recognition on the audio data; The device of claim 12, comprising one of:
14. Determining that the audio data includes the one or more terms that at least partially match the second hotword assigned to the second AED and precede the query includes: accessing a hotword registry including a respective list of one or more hotwords assigned to each of two or more AEDs associated with the user; Recognizing the one or more terms in the audio data that match or at least partially match the second hot word in the respective list of one or more hot words assigned to the second AED; The device of claim 11 , comprising:
15. the respective lists of one or more hot words assigned to each of the two or more AEDs in the hot word registry further including one or more variants associated with each hot word; 15. The device of claim 14, wherein determining that the audio data includes the one or more terms that at least partially match the second hotword and precede the query includes determining that the one or more terms recognized in the audio data match one of the one or more variants associated with the second hotword.
16. The hotword registry includes: the first AED; the second AED; a third AED among the two or more AEDs associated with the user; or A server in communication with two or more AEDs associated with the user. The device of claim 14, wherein the at least one of the following is stored in the device:
17. 12. The device of claim 11, wherein determining that the audio data includes the one or more terms that at least partially match the second hotword and precede the query includes providing the audio data as input to a machine learning model trained to determine a likelihood of whether a user intended to speak the second hotword assigned to a user device.
18. 12. The device of claim 11, wherein when the one or more terms preceding the query in the audio data only partially match the second hotword, executing the collaboration routine causes the first AED to summon the second AED to wake up and collaborate with the first AED to accomplish the action specified by the query.
19. the actions identified by the query include device-level actions to be taken on each of the first AED and the second AED; During execution of the cooperation routine, the first AED and the second AED cooperate with each other by independently performing the device-level operations.
12. The device of claim 11.
20. The query to identify the action to be taken includes a query for the first AED and the second AED to perform an action that requires time; During execution of the cooperation routine, the first AED and the second AED: pairing with each other for the duration of said time-consuming operation; By coordinating the performance of sub-actions related to the time-consuming operation to be performed between the first AED and the second AED; The devices of claim 11 that cooperate with each other.
Citation Information
Patent Citations
Hotword recognition speech synthesis
JP2020528566A
Accessory for a voice-controlled device
US10366692B1
Voice Assistant Tracking And Activation
US20180204569A1
Systems and methods for associating playback devices with voice assistant services
US20200007987A1
Devices, systems, and methods for distributed voice processing
US20200258512A1