User Mediation for Hotword / Keyword Detection
By dynamically adjusting thresholds and updating machine learning models on client devices using local and federated learning, the patent addresses false negatives and positives in automated assistants, enhancing accuracy and resource efficiency while protecting privacy.
Patent Information
- Application Number
- JP2022564432
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-03
- Filing Date
- 2020-12-15
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2040-12-15
AI Technical Summary
Existing automated assistants face issues with false negatives and false positives in hotword detection, leading to prolonged interactions, resource wastage, and privacy concerns due to unnecessary activation or deactivation of functions.
Implementing automatic threshold adjustment mechanisms on client devices to improve the performance of machine learning models by dynamically adapting to user and environmental conditions, using local and federated learning to update models based on false negatives and positives, and generating gradients without transmitting raw data.
Reduces the occurrence of false negatives and positives, optimizing resource usage and enhancing privacy by adapting thresholds and model weights locally and remotely, thus improving the accuracy and efficiency of automated assistant functions.
Smart Images

Figure 0007618695000001 
Figure 0007618695000002 
Figure 0007618695000003
Abstract
Description
[Background technology]
[0001] A person may engage in human-computer interaction using interactive software applications (also referred to as "digital agents," "interactive personal assistants," "intelligent personal assistants," "assistant applications," "conversational agents," etc.) referred to herein as "automated assistants." For example, a person (which may be referred to as a "user" when interacting with an automated assistant) may provide commands and / or requests to the automated assistant by providing textual (e.g., typed) natural language input, possibly using spoken natural language input (i.e., speech) that may be converted to text and then processed, and / or by touch and / or utterance free physical movements (e.g., hand gestures, gaze, facial movements, etc.). The automated assistant responds to the request by providing responsive user interface output (e.g., audible and / or visual user interface output), controlling one or more smart devices, and / or controlling one or more functions of a device implementing the automated assistant (e.g., controlling other applications of the device).
[0002] As described above, many automated assistants are configured to be interacted with by spoken utterances. To protect user privacy and / or conserve resources, the automated assistant refrains from performing one or more automated assistant functions based on all spoken utterances present in audio data detected by a microphone of a client device that (at least partially) implements the automated assistant. Rather, certain processing based on spoken utterances is performed only in response to a determination that a particular condition exists.
[0003] For example, many client devices that include and / or interface with automated assistants include a hot word detection model. When the microphone of such a client device is not deactivated, the client device can use the hot word detection model to continuously process audio data detected by the microphone to generate a predicted output indicating whether one or more hot words (including multi-word phrases), such as "Hey Assistant", "OK Assistant", and / or "Assistant", are present. When the predicted output indicates that a hot word is present, all audio data that follows within a threshold amount of time (and is optionally determined to include voice activity) can be processed by one or more on-device and / or remote automated assistant components, such as a speech recognition component, a voice activity detection component, etc. Additionally, the recognized text (from the speech recognition component) can be processed using a natural language understanding engine, and / or actions can be performed based on the output of the natural language understanding engine. The actions can include, for example, generating and providing a response and / or controlling one or more applications and / or smart devices. However, when the predicted output indicates that the hot word is not present, the corresponding audio data is discarded without any further processing, thereby saving resources and protecting the user's privacy.
[0004] Some automated assistants implement a continued conversation mode, which may additionally or alternatively be enabled. When enabled, the continued conversation mode may process all spoken input detected by the client device's microphone within a threshold amount of time of a previous spoken utterance directed to the automated assistant and / or within a threshold amount of time after the automated assistant has performed an action based on the previous spoken utterance. For example, a user may initially invoke an automated assistant (e.g., by a hotword, hardware or software button, etc.) and give an initial utterance of "Turn on the living room lights," followed immediately thereafter by a subsequent utterance of "Turn on the kitchen lights." The subsequent utterance is followed by the automated assistant when the continued conversation mode is enabled, without the user needing to invoke the assistant again.
[0005] The conversation continuation mode can distinguish between a user's subsequent utterances that are intended for processing by the automated assistant and those that are not (e.g., utterances that are instead directed to another human). In doing so, audio data capturing the subsequent utterance can be processed using a machine learning model, optionally together with recognized text from the subsequent utterance and / or a representation thereof (e.g., natural language understanding data generated based on the recognized text). A predicted output is generated based on the processing, indicating whether the subsequent utterance is intended for the automated assistant. Further automated assistant functionality is activated only when the predicted output indicates that the subsequent utterance is intended for the automated assistant. Otherwise, the further automated assistant functionality is not activated and the data corresponding to the subsequent utterance is discarded. The further functionality can include, for example, further verifying that the subsequent utterance is intended for the automated assistant and / or performing an action based on the subsequent utterance.
[0006] The above and / or other machine learning models (e.g., additional machine learning models described below), whose predicted output dictates whether an automated assistant function is activated, work well in many situations, but false negative and false positive determinations based on machine learning models still occur.
[0007] According to a false negative, the predicted output commands that the automated assistant function not be activated even though the audio data (and / or other data) processed to generate the predicted output is appropriate to activate the automated assistant function. For example, assume that the predicted output generated using a hot word detection model is a probability, and the probability must exceed 0.85 before the automated assistant function is activated. If the spoken utterance does indeed contain a hot word, but the predicted output generated based on processing the audio data is only 0.82, the function will not be activated, which is considered a false negative. The occurrence of a false negative may prolong the human / automated assistant interaction, forcing the person to repeat the utterance (and / or perform other actions) that was originally intended to activate the automated assistant function.
[0008] According to a false positive, the predicted output commands the automated assistant's function to be activated even though the audio data (and / or other sensor data) processed to generate the predicted output is inappropriate to activate the automated assistant's function. For example, assume that the predicted output generated using a hot word detection model is a probability, and the probability must exceed 0.85 before the automated assistant's function is activated. If the spoken utterance does not contain a hot word, but the predicted output generated based on processing the audio data is 0.86, the function is activated, which is considered a false positive. In addition to privacy concerns, the occurrence of false positives may waste network and / or computational resources by activating functions unnecessarily. Summary of the Invention [Means for solving the problem]
[0009] Some implementations disclosed herein are directed to improving the performance of machine learning models through automatic adjustment of thresholds utilized in determining whether an automated assistant function is initiated. As described in more detail herein, such machine learning models may include, for example, hotword detection models and / or other machine learning models. Various implementations generate a predicted output at a client device based on processing audio data and / or other sensor data using a machine learning model stored locally at the client device. The implementations further make a determination as to whether one or more automated assistant functions should be initiated based on the predicted output. For example, the determination may be based on whether the predicted output meets a threshold. Furthermore, the implementations determine whether a determination made based on the predicted output was correct based on analyzing additional user interface inputs and / or other data locally at the client device. If it is determined that the determination was incorrect (e.g., the determination was a false negative or a false positive), the implementations automatically adjust the threshold.
[0010] In some implementations, the auto-adjusted thresholds may persist and be used for one or more subsequent decisions on whether to initiate one or more automated assistant functions. For example, the auto-adjusted thresholds may be used until a decision is made to further adjust the auto-adjusted thresholds (e.g., in response to a false negative or false positive) according to one or more of the methods described herein. In some implementations, the auto-adjusted thresholds may be dynamically adjusted over time to accommodate user and / or environmental conditions (e.g., introduction or removal of a noise source or other background noise). This may improve performance by reducing the occurrence of false negatives and / or false positives based on predicted output and the corresponding resulting wasted computational resources.
[0011] In one example, the threshold may be automatically lowered when a user begins to use a noisy home appliance, such as a fan in the summer (e.g., in response to one or more false negatives occurring after the user begins to use the noisy home appliance). The process of automatically adjusting the threshold may be an iterative process, such that the threshold is fine-tuned through repeated adjustments based on false positives and / or false negatives. In this example, the threshold may be automatically lowered multiple times based on multiple false negatives after the user begins to use the noisy home appliance, and then automatically raised based on false positives after the threshold has been lowered multiple times. The automatically adjusted threshold may remain until further adjustments are determined based on false positives and / or false negatives. When the user stops using the noisy home appliance (e.g., at the end of the summer), the threshold may be automatically raised (e.g., in response to one or more false positives occurring after the user stops using the noisy home appliance).
[0012] Various implementations described herein are described with respect to a hot word detection model trained to detect Assistant-invoking hot words, such as "OK computer," "Hey computer," and / or other invocation hot words. In some of those implementations, when any of the corresponding hot words are detected, speech recognition may be activated to process any spoken words following the hot word. In addition to or instead of adjusting the threshold for a hot word detection model trained to detect Assistant-invoking hot words, some implementations may adjust the threshold for a hot word detection model trained to detect hot words other than invocation hot words and at least selectively activated. In some of those implementations, when any of the corresponding hot words of such a model are detected, a corresponding action may be performed, optionally without performing any speech recognition. As an example, a hot word model may be trained to detect "stop" and / or "stop" and may be activated at the client device at least when any audio is being rendered at the client device, such as when a timer alarm is being rendered. In response to detecting "stop" and / or "stop," a corresponding action of stopping the rendering of any audio may be performed.
[0013] In some implementations, once it is determined that the decision was incorrect, gradients are generated locally at the client device based on comparing the predicted output to the ground truth output (e.g., the ground truth output that meets a threshold). In some implementations, the generated gradients are used by one or more processors of the client device to update one or more weights of the machine learning model based on the generated gradients. For example, backpropagation and / or other techniques may be used to update the weights based on the gradients. This can improve the performance of the machine learning model stored locally at the client device and reduce the occurrence of false negatives and / or false positives based on the predicted output generated using the machine learning model. Additionally, in the case of machine learning models that process audio data capturing spoken speech, this allows for improved performance of the on-device machine learning model with respect to attributes of the user of the client device, such as tone, intonation, accent, and / or other speech features.
[0014] In some implementations, the generated gradients are additionally or alternatively transmitted by the client device to a remote system over a network. In those implementations, the remote system utilizes the generated gradients and additional gradients from the additional client devices to update the global weights of the corresponding global machine learning model using federated learning techniques. The additional gradients from the additional client devices may be similarly generated locally at the corresponding additional client devices based on determining that the corresponding decision was incorrect. In various implementations, the client device transmits the generated gradients without transmitting any of the data (e.g., audio data and / or other sensor data) utilized to generate the predicted output determined to be incorrect, and without transmitting any of the data (e.g., additional user interface inputs) utilized to determine that the predicted output was incorrect. The remote system can utilize the generated gradients in updating the global model using federated learning techniques without any reference or use of such data. Transmitting only the gradients utilizes fewer network resources than transmitting the larger data size data used to generate the predicted output and to determine that the predicted output was incorrect. Additionally, transmitting the gradients protects the privacy and security of personal data, since the data utilized in generating the predicted output and in determining that the predicted output was incorrect cannot be derived from the gradients. In some implementations, one or more differential privacy techniques (e.g., the addition of Gaussian noise) may be utilized to further ensure that such data cannot be derived from the gradients.
[0015] In implementations in which the remote system updates the global weights of the speech recognition model, the remote system can then provide the updated global weights to the client devices to cause the client devices to replace the weights of their on-device machine learning models with the updated global weights. In some implementations, the remote system can additionally or alternatively provide the updated machine learning models to the client devices to cause the client devices to replace the on-device machine learning models of their client devices with the updated global machine learning models. Thus, on-device performance is enhanced through the use of the updated global weights or the updated global machine learning models.
[0016] Various techniques may be utilized to determine that a judgment regarding whether to initiate a currently dormant automated assistant function is incorrect. In some implementations, determining that a judgment is incorrect may be based on further user interface input received at the client device after the sensor data utilized to make the judgment. For example, the user may indicate, either in response to a prompt or without being prompted, whether the spoken utterance included a hot word. In other implementations, determining that a judgment is incorrect may be based on further user interface input received at the client device after the sensor data utilized to make the judgment and that contradicts (explicitly or implicitly) the judgment. In those implementations, determining that a judgment is incorrect may be based on a duration between receipt of the sensor data utilized to make the judgment and receipt of the further user interface input. For example, the likelihood of determining that a judgment was incorrect may be higher as the duration is shorter, and / or determining that a judgment was incorrect may be conditional on the duration being less than a threshold. In those implementations, determining that the judgment is incorrect may additionally or alternatively be based on a determined measure of similarity between the further user interface input and the sensor data utilized to make the judgment (the likelihood of determining that the judgment was incorrect increases as the similarity indicated by the similarity measure increases). For example, the similarity measure may be based on duration similarity based on a comparison of durations of the further user interface input and the sensor data utilized to make the judgment. Also, for example, when the further user interface input is an additional spoken utterance and the sensor data utilized to make the judgment includes a previous spoken utterance, the similarity measure may be based on audio similarity based on a comparison of audio features of the spoken utterance and the additional spoken utterance and / or text similarity based on a comparison of recognized text of the spoken utterance and the additional spoken utterance.
[0017] In various implementations, a method performed by one or more processors may include receiving audio data capturing spoken speech of a user via one or more microphones of a client device; processing the audio data using a machine learning model to generate a predicted output indicative of a probability that one or more hot words are present in the audio data; determining that the predicted output satisfies a secondary threshold that is less indicative of the presence of one or more hot words in the audio data than a primary threshold; in response to determining that the predicted output satisfies the secondary threshold, prompting the user to indicate whether the spoken speech includes a hot word; receiving a response to the prompt from the user; and adjusting the primary threshold based on the response.
[0018] In some implementations, an automated assistant function may be initiated in response to the predicted output satisfying a primary threshold. In some implementations, the machine learning model may be a hotword detection model, and federated learning may be used to train the hotword detection model based on the responses.
[0019] In some implementations, the predicted output does not meet the primary threshold and the response indicates that the spoken utterance includes the hot word, and adjusting the primary threshold based on the response includes lowering the primary threshold. In some implementations, the predicted output meets the primary threshold and the response indicates that the spoken utterance does not include the hot word, and adjusting the primary threshold based on the response includes raising the primary threshold.
[0020] In some implementations, the prompting is further in response to determining that the number of times the user has been previously prompted does not exceed the rate limit. In some implementations, presenting the prompt is further in response to determining that the do not disturb state is invalid. In some implementations, presenting the prompt is further in response to determining that the user has not accessed the client device for a predetermined period of time.
[0021] In some additional or alternative implementations, a computer program product may include one or more computer-readable storage media having stored program instructions collectively stored thereon. The program instructions may be executable to receive audio data capturing spoken utterances of a user via one or more microphones of a client device, process the audio data using a machine learning model to generate a predicted output indicative of a probability that one or more hot words are present in the audio data, determine that the predicted output meets a threshold, receive an indication from a user that the utterance does not include the hot word, determine that the predicted output meets the threshold, and adjust the threshold in response to receiving the indication that the spoken utterance does not include the hot word.
[0022] In some implementations, the program instructions are further executable to initiate an automated assistant function prior to receiving an indication that the spoken utterance does not include the hot word in response to determining that the predicted output meets a threshold. In some implementations, the machine learning model is a hot word detection model and the program instructions are further executable to train the hot word detection model based on the indication that the spoken utterance does not include the hot word.
[0023] In some implementations, adjusting the threshold includes raising the threshold. In some implementations, the program instructions are further executable to prompt the user to indicate whether the spoken utterance includes the hot word, and an indication that the spoken utterance does not include the hot word is received in response to the prompt.
[0024] In some additional or alternative implementations, the system may include a processor, a computer-readable memory, one or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media. The program instructions may be executable to receive, via one or more microphones of the client device, first audio data capturing a first spoken utterance of the user, process the first audio data using the machine learning model to generate a first predicted output indicative of a probability that the one or more hot words are present in the first audio data, determine that the first predicted output does not meet a threshold, and in response to determining that the first predicted output does not meet the threshold, make a first adjustment to the threshold, and after making the first adjustment, receive, via one or more microphones of the client device, second audio data capturing a second spoken utterance of the user, process the second audio data using the machine learning model to generate a second predicted output indicative of a probability that the one or more hot words are present in the second audio data, determine that the second predicted output does not meet the threshold that is adjusted according to the first adjustment, and in response to determining that the second predicted output does not meet the threshold that is adjusted according to the first adjustment.
[0025] In some implementations, making a first adjustment to the threshold includes lowering the threshold and is further responsive to receiving an indication from the user that the first spoken utterance includes a hot word, and making a second adjustment to the threshold further includes lowering the threshold and is further responsive to receiving an indication from the user that the second spoken utterance includes a hot word.
[0026] In some implementations, the program instructions are further executable to receive, via one or more microphones of the client device, third audio data capturing a third spoken utterance of the user; process the third audio data using the machine learning model to generate a third predicted output indicative of a probability that the one or more hot words are present in the third audio data; determine that the third predicted output satisfies a threshold adjusted according to the first adjustment and the second adjustment; and make a third adjustment to the threshold in response to determining that the third predicted output satisfies the threshold adjusted according to the first adjustment and the second adjustment.
[0027] In some implementations, making a third adjustment to the threshold includes raising the threshold and is further in response to receiving an indication from the user that the third spoken utterance does not include the hot word.
[0028] By utilizing one or more techniques described herein, occurrences of false negatives and / or false positives based on audio data corresponding to spoken speech and / or sensor data corresponding to non-speech body movements may be identified and labeled locally on the corresponding client device. Further, thresholds may be adjusted using the identified and labeled false negatives and false positives. In addition, gradients may optionally be generated locally on the corresponding client device using the identified and labeled false positives and false negatives. The gradients may be utilized locally on the corresponding client device to update the corresponding locally stored machine learning models and / or may be transmitted to a remote system for use in updating the corresponding global models. This results in improved performance of the locally stored machine learning models and / or the corresponding global models (which may be transmitted to various client devices for use). Additionally or alternatively, labeling false positives and / or false negatives locally on the corresponding client device may preserve the privacy of user data (e.g., spoken speech, etc.) since such data may never be transmitted from the corresponding client device.
[0029] The above description is provided as a summary of some implementations of the present disclosure. Further descriptions of those and other implementations are provided in more detail below.
[0030] Various implementations may include a non-transitory computer-readable storage medium storing instructions executable by one or more processors (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), and / or a tensor processing unit (TPU)) to perform methods such as one or more of the methods described herein. Other implementations may include an automated assistant client device (e.g., a client device including at least an automated assistant interface for interfacing with a cloud-based automated assistant component) that includes a processor operable to execute stored instructions to perform methods such as one or more of the methods described herein. Still other implementations may include a system of one or more servers that includes one or more processors operable to execute stored instructions to perform methods such as one or more of the methods described herein. [Brief description of the drawings]
[0031] [Figure 1A] FIG. 1 illustrates an exemplary process flow demonstrating aspects of the present disclosure according to an implementation. [Figure 1B] FIG. 1 illustrates an exemplary process flow demonstrating aspects of the present disclosure according to an implementation. [Diagram 2] FIG. 1C is a block diagram of an example environment including various components of FIGS. 1A and 1B and in which implementations disclosed herein may be implemented. [Diagram 3] FIG. 11 is a flow diagram illustrating an example method for adjusting thresholds, generating gradients locally on a client device based on false negatives or false positives, transmitting the gradients to a remote server, and / or utilizing the generated gradients to update weights of an on-device speech recognition model, according to various implementations. [Figure 4]FIG. 11 is a flow diagram illustrating an example method for adjusting thresholds, generating gradients locally at a client device based on false positives, transmitting the gradients to a remote server, and / or utilizing the generated gradients to update weights of an on-device speech recognition model, according to various implementations. [Diagram 5] 1 is a flow diagram illustrating an example method for adjusting a threshold based on false negatives according to various implementations. [Figure 6] FIG. 1 illustrates an example architecture of a computing device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0032] 1A and 1B illustrate an example process flow demonstrating various aspects of the disclosure. A client device 110 includes components depicted in FIG. 1A and encompassed in a box in FIG. 1A representing the client device 110. A machine learning engine 122A can receive audio data 101 corresponding to spoken speech detected by one or more microphones of the client device 110 and / or other sensor data 102 corresponding to non-speech body movements (e.g., hand gestures and / or movements, body gestures and / or body movements, gaze, facial movements, mouth movements, etc.) detected by one or more non-microphone sensor components of the client device 110. The one or more non-microphone sensors may include a camera or other visual sensor, a proximity sensor, a pressure sensor, an accelerometer, a magnetometer, and / or other sensors. The machine learning engine 122A processes the audio data 101 and / or other sensor data 102 using a machine learning model 152A to generate a predicted output 103. As described herein, the machine learning engine 122A may be a hot word detection engine 122B or an alternative engine, such as a voice activity detector (VAD) engine, an endpoint detector engine, and / or other engines.
[0033] In some implementations, when the machine learning engine 122A generates the predicted output 103, the predicted output 103 may be stored in the client device's local on-device storage 111, optionally in association with the corresponding audio data 101 and / or other sensor data 102. In some versions of those implementations, the predicted output may be retrieved by the gradient engine 126 for later use in generating the gradient 106, such as when one or more conditions described herein are met. The on-device storage 111 may include, for example, read-only memory (ROM) and / or random access memory (RAM). In other embodiments, the predicted output 103 may be provided to the gradient engine 126 in real time.
[0034] Based on determining in block 182 whether the predicted output 103 meets a threshold, the client device 110 can use the assistant actuation engine 124 to make a decision as to whether to initiate a currently dormant automated assistant function (e.g., automated assistant 295 of FIG. 2), whether to refrain from initiating a currently dormant automated assistant function, and / or whether to stop a currently active automated assistant function. The automated assistant function may include speech recognition to generate recognized text, natural language understanding (NLU) to generate NLU output, generating a response based on the recognized text and / or NLU output, sending audio data to a remote server, and / or sending recognized text to a remote server. For example, assuming the predicted output 103 is a probability (e.g., 0.80 or 0.90) and the threshold in block 182 is a threshold probability (e.g., 0.85), if the client device 110 in block 182 determines that the predicted output 103 (e.g., 0.90) meets the threshold (e.g., 0.85), the assistant activation engine 124 may start functioning of a currently paused automated assistant.
[0035] 1B, the machine learning engine 122A can be a hot word detection engine 122B. In particular, various automated assistant functions, such as an on-device speech recognizer 142, an on-device NLU engine 144, and / or an on-device fulfillment engine 146, are currently paused (i.e., as indicated by the dashed lines). Further, assume that the predicted output 103 generated based on the audio data 101 using the hot word detection model 152B meets a threshold at block 182 and the voice activity detector 128 detects the user's speech directed at the client device 110.
[0036] In some versions of these implementations, the assistant actuation engine 124 actuates the on-device speech recognizer 142, the on-device NLU engine 144, and / or the on-device fulfillment engine 146 as functions of the currently dormant automated assistant. For example, the on-device speech recognizer 142 can process the audio data 101 for a spoken utterance including the hotword "OK, assistant" and additional commands and / or phrases following the hotword "OK, assistant" using the on-device speech recognition model 142A to generate recognized text 143A, the on-device NLU engine 144 can process the recognized text 143A using the on-device NLU model 144A to generate NLU data 145A, the on-device fulfillment engine 146 can process the NLU data 145A using the on-device fulfillment model 146A to generate fulfillment data 147A, and the client device 110 can use the fulfillment data 147A to perform 150 one or more actions in response to the audio data 101.
[0037] In other versions of those implementations, the assistant actuation engine 124 does not actuate the on-device speech recognizer 142 and the on-device NLU engine 144, but only actuates the on-device fulfillment engine 146 to process various commands such as "No", "Stop", "Cancel", and / or other commands that can be processed without the on-device speech recognizer 142 and the on-device NLU engine 144. For example, the on-device fulfillment engine 146 processes the audio data 101 using the on-device fulfillment model 146A to generate fulfillment data 147A, and the client device 110 can use the fulfillment data 147A to perform one or more actions 150 in response to the audio data 101. Further, in versions of these implementations, the assistant activation engine 124 can first activate a currently dormant automated function to verify that the determination made in block 182 was correct (e.g., the audio data 101 truly contains the hotword "OK, assistant") by first activating only the on-device speech recognizer 142 to determine that the audio data 101 contains the hotword "OK, assistant"), and / or the assistant activation engine 124 can send the audio data 101 to one or more servers (e.g., remote server 160) to verify that the determination made in block 182 was correct (e.g., the audio data 101 truly contains the hotword "OK, assistant").
[0038] Returning to FIG. 1A , if the client device 110 determines in block 182 that the predicted output 103 (e.g., 0.80) fails to meet the threshold (e.g., 0.85), the assistant actuation engine 124 may refrain from initiating functioning of any currently dormant automated assistants and / or stop functioning of any currently active automated assistants. Further, if the client device 110 determines in block 182 that the predicted output 103 (e.g., 0.80) fails to meet the threshold (e.g., 0.85), the client device 110 may determine whether further user interface input is received in block 184. For example, the further user interface input may be additional spoken utterances that include a hot word, additional non-speech related body movements that act as a substitute for a hot word, activation of an explicit automated assistant invocation button (e.g., a hardware or software button), a sensed “squeezing” of the client device 110 device (e.g., when squeezing the client device 110 with at least a threshold amount of force invokes an automated assistant), and / or other explicit invocation of an automated assistant. If the client device 110 determines that no further user interface input has been received in block 184 , the client device 110 may stop identifying corrections and end in block 190 .
[0039] However, if the client device 110 determines that there is further user interface input received in block 184, the system may determine whether the further user interface input received in block 184 includes a correction (e.g., a correction mediated or provided by a user) in block 186 that contradicts the determination made in block 182. The correction may identify either a false negative (e.g., as described in more detail with respect to FIGS. 3-5) or a false positive (e.g., as described in more detail with respect to FIGS. 3 and 4). If the client device 110 determines in block 186 that the further user interface input received in block 184 does not include a correction, the client device 110 may stop identifying corrections and terminate in block 190. However, if the client device 110 determines in block 186 that the further user interface input received in block 184 includes a correction that contradicts the initial determination made in block 182, the client device 110 may determine the thresholds 104 and ground truth outputs 105 to be adjusted.
[0040] As one non-limiting example of a false negative, assume that the machine learning engine 122A is trained to generate probabilities as the predicted output 103, and the client device 110 erroneously determines that the predicted output 103 (e.g., 0.80) cannot meet the threshold value (e.g., 0.85) of block 182, and the client device 110 refrains from initiating the functioning of a currently dormant automated assistant and / or stops the functioning of a currently active automated assistant. Further assume that the client device 110 determines, based on further user interface input received in block 184, that the further user interface input contradicts the initial determination made in block 182, and that the client device 110 should have initiated the functioning of a currently dormant automated assistant and / or refrained from stopping the functioning of a currently active automated assistant. In this case, the adjusted threshold value 104 may be a lower threshold value than the threshold value (e.g., 0.85) used in block 182. In an implementation, as a non-limiting example, the adjusted threshold 104 may be determined based on the probability (e.g., 0.80) generated as the predicted output 103. In other implementations, as a non-limiting example, the adjusted threshold 104 may be determined by lowering the threshold used in block 182 by a predetermined amount (e.g., 0.85-0.03=0.82), or by lowering it by a predetermined percentage (e.g., 0.85 lowered by 5%=0.8075). Additionally, in this case, the ground truth output 105 may also be a probability (e.g., 1.00) indicating that the client device 110 should have started functioning of a currently dormant automated assistant and / or should have refrained from stopping functioning of a currently active automated assistant.
[0041] As one non-limiting example of a false positive, assume that the machine learning engine 122A is trained to generate probabilities as the predicted output 103, and the client device 110 erroneously determines that the predicted output 103 (e.g., 0.90) meets the threshold value (e.g., 0.85) of block 182, and the client device 110 initiates the functioning of a currently dormant automated assistant and / or refrains from stopping the functioning of a currently active automated assistant. Further assume that the client device 110 determines, based on further user interface input received in block 184, that the further user interface input contradicts the initial determination made in block 182, and that the client device 110 should not have initiated the functioning of a currently dormant automated assistant and / or refrained from stopping the functioning of a currently active automated assistant. In this case, the adjusted threshold value 104 may be a higher threshold value (e.g., 0.85) than the threshold value used in block 182. In an implementation, as a non-limiting example, the adjusted threshold 104 may be determined based on a probability (e.g., 0.90) generated as the predicted output 103. In other implementations, as a non-limiting example, the adjusted threshold 104 may be determined by raising the threshold used in block 182 by a predetermined amount (e.g., 0.85+0.03=0.88), or by raising it by a predetermined percentage (e.g., raising 0.85 by 5%=0.8925). Additionally, in this case, the ground truth output 105 may also be a probability (e.g., 0.00) indicating that the client device 110 should not have started functioning of a currently dormant automated assistant and / or should not have refrained from stopping functioning of a currently active automated assistant.Although the predicted output 103, the thresholds used in block 182, the adjusted thresholds 104, and the ground truth output 105 are described herein as being probabilities, it should be understood that this is not intended to be limiting and that the predicted output 103, the thresholds used in block 182, the adjusted values 104, and the ground truth output 105 can be labels, annotations, binary values, and / or other measures of likelihood.
[0042] In some implementations, if the client device 110 determines in block 186 that the further user interface input received in block 184 includes a correction that is a false negative, the assistant actuation engine 124 of the client device 110 may activate the microphone of the client device 110 to begin functioning of one or more currently dormant automated assistants as intended by the user.
[0043] In some implementations, the gradient engine 126 can generate the gradient 106 based on the predicted output 103 relative to the ground truth output 105. For example, the gradient engine 126 can generate the gradient 106 based on comparing the predicted output 103 to the ground truth output 105. In some versions of those implementations, the client device 110 stores the predicted output 103 and the corresponding ground truth output 105 in a local on-device storage 111, and the gradient engine 126 retrieves the predicted output 103 and the corresponding ground truth output 105 to generate the gradient 106 when one or more conditions are met. The one or more conditions may include, for example, the client device being charging, the client device being at least at a threshold state of charging, the temperature of the client device (based on one or more on-device temperature sensors) being below a threshold, and / or the client device being not being held by a user. In other versions of these implementations, the client device 110 provides the predicted outputs 103 and the ground truth outputs 105 in real time to the gradient engine 126, which generates the gradients 106 in real time.
[0044] Further, the gradient engine 126 can provide the generated gradients 106 to the on-device machine learning training engine 132A. When the on-device machine learning training engine 132A receives the gradients 106, it uses the gradients 106 to update the on-device machine learning model 152A. For example, the on-device machine learning training engine 132A can utilize backpropagation and / or other techniques to update the on-device machine learning model 152A. It is noted that in some implementations, the on-device machine learning training engine 132A can utilize batch techniques to update the on-device machine learning model 152A based on the gradients 106 and additional gradients determined locally on the client device 110 based on the additional corrections.
[0045] Additionally, the client device 110 can transmit the generated gradients 106 to the remote system 160. When the remote system 160 receives the gradients 106, the remote training engine 162 of the remote system 160 uses the gradients 106 and the additional gradients 107 from the additional client devices 170 to update the global weights of the global speech recognition model 152A1. The additional gradients 107 from the additional client devices 170 may each be generated based on the same or similar techniques as described above in connection with the gradients 106 (but based on locally identified corrections specific to those client devices).
[0046] The update delivery engine 164 can provide the updated global weights and / or the updated global speech recognition model itself to the client device 110 and / or other client devices, as indicated by 108, in response to satisfaction of one or more conditions. The one or more conditions can include, for example, a threshold duration and / or an amount of training since the updated weights and / or the updated speech recognition model were last provided. The one or more conditions can additionally or alternatively include, for example, a measured improvement to the updated speech recognition model and / or a threshold duration lapse since the updated weights and / or the updated speech recognition model were last provided. When the updated weights are provided to the client device 110, the client device 110 can replace the weights of the on-device machine learning model 152A with the updated weights. When the updated global speech recognition model is provided to the client device 110, the client device 110 can replace the on-device machine learning model 152A with the updated global speech recognition model.
[0047] In some implementations, the on-device machine learning model 152A is transmitted (e.g., by the remote system 160 or other component) for storage and use at the client device 110 based on the geographic region and / or other properties of the client device 110 and / or the user of the client device 110. For example, the on-device machine learning model 152A may be one of N available machine learning models for a given language, but trained based on corrections that are specific to a particular geographic region, and provided to the client device 110 based on the client device 110 being primarily within a particular geographic region.
[0048] Turning now to FIG. 2, the client device 110 is shown in an implementation in which the various on-device machine learning engines of FIG. 1A and FIG. 1B are included as part of (or in communication with) the automated assistant client 240. Respective machine learning models that interface with the various on-device machine learning engines of FIG. 1A and FIG. 1B are also shown. Other components of FIG. 1A and FIG. 1B are not shown in FIG. 2 for simplicity. FIG. 2 shows an example of how the various on-device machine learning engines of FIG. 1A and FIG. 1B and their respective machine learning models may be utilized by the automated assistant client 240 in performing various actions.
[0049] The client device 110 of FIG. 2 is shown with one or more microphones 211, one or more speakers 212, one or more cameras and / or other visual components 213, and a display 214 (e.g., a touch-sensitive display). The client device 110 may further include pressure sensors, proximity sensors, accelerometers, magnetometers, and / or other sensors used to generate other sensor data in addition to the audio data captured by the one or more microphones 211. The client device 110 at least selectively executes an automated assistant client 240. The automated assistant client 240 includes, in the example of FIG. 2, an on-device hotword detection engine 122B, an on-device speech recognizer 142, an on-device natural language understanding (NLU) engine 144, and an on-device fulfillment engine 146. The automated assistant client 240 further includes an audio capture engine 242 and a visual capture engine 244. The automated assistant client 240 may include additional and / or alternative engines, such as a voice activity detector (VAD) engine, an endpoint detector engine, and / or other engines.
[0050] One or more cloud-based automated assistant components 280 may optionally be implemented in one or more computing systems (collectively referred to as "cloud" computing systems) communicatively coupled to client device 110 via one or more local area and / or wide area networks (e.g., the Internet) shown generally at 290. Cloud-based automated assistant components 280 may be implemented, for example, by a cluster of high performance servers.
[0051] In various implementations, an instance of an automated assistant client 240, through its interaction with one or more cloud-based automated assistant components 280, may form what appears from a user's perspective to be a logical instance of an automated assistant 295 with which the user may engage in human-computer interaction (e.g., spoken interaction, gesture-based interaction, and / or touch-based interaction).
[0052] A client device 110 may be, for example, a desktop computing device, a laptop computing device, a tablet computing device, a mobile phone computing device, a computing device in a user's vehicle (e.g., an in-car communication system, an in-car entertainment system, an in-car navigation system), a standalone interactive speaker, a smart appliance such as a smart TV (or a regular TV with a network-connected dongle having automated assistant capabilities), and / or a user's wearable device that includes a computing device (e.g., a user's watch with a computing device, a user's glasses with a computing device, a virtual or augmented reality computing device). Additional and / or alternative client devices may be provided.
[0053] The one or more vision components 213 may take various forms, such as a monographic camera, a stereographic camera, a LIDAR component (or other laser-based component), a radar component, etc. The one or more vision components 213 may be used by the vision capture engine 244, for example, to capture a vision frame (e.g., an image frame, a laser-based vision frame) of the environment in which the client device 110 is deployed. In some implementations, such a vision frame may be utilized to determine whether a user is near the client device 110 and / or the distance of the user (e.g., the user's face) relative to the client device. Such a determination may be utilized, for example, in determining whether to activate various on-device machine learning engines and / or other engines illustrated in FIG. 2.
[0054] The voice capture engine 242 may be configured to capture the user's speech and / or other audio data captured by the microphone 211. Additionally, the client device 110 may include pressure sensors, proximity sensors, accelerometers, magnetometers, and / or other sensors used to generate other sensor data in addition to the audio data captured by the microphone 211. As described herein, such audio and other sensor data may be utilized by the hotword detection engine 122B and / or other engines to determine whether to initiate one or more currently dormant automated assistant functions, whether to refrain from initiating one or more currently dormant automated assistant functions, and / or whether to stop one or more currently active automated assistant functions. The automated assistant functions may include an on-device speech recognizer 142, an on-device NLU engine 144, an on-device fulfillment engine 146, as well as additional and / or alternative engines. For example, the on-device speech recognizer 142 may process audio data capturing spoken speech using an on-device speech recognition model 142A to generate recognized text 143A corresponding to the spoken speech. The on-device NLU engine 144 may optionally utilize an on-device NLU model 144A to perform on-device natural language understanding on the recognized text 143A to generate NLU data 145A. The NLU data 145A may include, for example, an intent corresponding to the spoken utterance and, optionally, parameters related to the intent (e.g., slot values). Additionally, the on-device fulfillment engine 146 may optionally utilize an on-device fulfillment model 146A to generate fulfillment data 147A based on the NLU data 145A.This fulfillment data 147A may define local and / or remote responses (e.g., answers) to the spoken utterance, interactions with locally installed applications to perform based on the spoken utterance, commands to send (directly or via a corresponding remote system) to Internet of Things (IoT) devices based on the spoken utterance, and / or other resolution actions to perform based on the spoken utterance. The fulfillment data 147A is then provided for local and / or remote fulfillment / execution of the determined actions to resolve the spoken utterance. Execution may include, for example, rendering a local and / or remote response (e.g., visually and / or audibly (optionally utilizing a local text-to-speech module)), interacting with locally installed applications, sending commands to IoT devices, and / or other actions.
[0055] Display 214 may be utilized to display recognized text 143A and / or further recognized text 143B from on-device speech recognizer 122 and / or one or more results from execution 150. Display 214 may also be one of the user interface output components on which visual portions of responses from automated assistant client 240 are rendered.
[0056] In some implementations, the cloud-based automated assistant components 280 may include a remote ASR engine 281 that performs speech recognition, a remote NLU engine 282 that performs natural language understanding, and / or a remote fulfillment engine 283 that generates fulfillment. A remote execution module that performs remote execution based on locally or remotely determined fulfillment data may also be optionally included. Additional and / or alternative remote engines may be included. As described herein, in various implementations, on-device voice processing, on-device NLU, on-device fulfillment, and / or on-device execution may be prioritized at least because of the reduced latency and / or network usage they offer when resolving spoken utterances (due to no client-server round trips being required to resolve the spoken utterance). However, one or more cloud-based automated assistant components 280 may be utilized at least selectively. For example, such components may be utilized in parallel with on-device components, and output from such components may be utilized when local components fail. For example, the on-device fulfillment engine 146 may fail in certain circumstances (e.g., due to relatively limited resources of the client device 110), and the remote fulfillment engine 283 may utilize the more robust resources of the cloud to generate fulfillment data in such circumstances. The remote fulfillment engine 283 may be run in parallel with the on-device fulfillment engine 146, and its results may be utilized when the on-device fulfillment fails, or the remote fulfillment engine 283 may be invoked in response to a determination of failure of the on-device fulfillment engine 146.
[0057] In various implementations, the NLU engine (on-device and / or remote) can generate NLU data including one or more annotations of the recognized text and one or more (e.g., all) of the words of the natural language input. In some implementations, the NLU engine is configured to identify and annotate various types of grammatical information in the natural language input. For example, the NLU engine may include a morphology module that may split individual words into morphemes and / or annotate the morphemes, for example, with their classes. The NLU engine may also include a part-of-speech tagger configured to annotate words with their grammatical roles. Also, for example, in some implementations, the NLU engine may additionally and / or alternatively include a dependency parser configured to determine syntactic relationships between words in the natural language input.
[0058] In some implementations, the NLU engine may additionally and / or alternatively include an entity tagger configured to annotate entity mentions in one or more segments, such as references to people (including, e.g., literary characters, celebrities, notable people, etc.), organizations, places (real and fictional), etc. In some implementations, the NLU engine may additionally and / or alternatively include a coreference resolver (not shown) configured to group or "cluster" references to the same entity based on one or more contextual cues. In some implementations, one or more components of the NLU engine may rely on annotations from one or more other components of the NLU engine.
[0059] The NLU engine may further include an intent matcher configured to determine the intent of a user engaging in an interaction with the automated assistant 295. The intent matcher may use various techniques to determine the intent of the user. In some implementations, the intent matcher may be able to access one or more local and / or remote data structures that include, for example, multiple mappings between grammars and response intents. For example, the grammars included in the mappings may be selected and / or learned over time and may represent common intents of users. For example, one grammar "play <artist>"but, <artist>A grammar may be mapped to an intent that invokes a response action to play music by " on the client device 110 by "[weather | forecast] today". Another grammar ""[weather | forecast] today" may be able to match user queries such as "what's the weather today" and "what's the forecast for today?" In addition to or instead of a grammar, in some implementations the intent matcher may use one or more trained machine learning models, either alone or in combination with one or more grammars. These trained machine learning models may be trained to identify intents, for example, by embedding recognized text from a spoken utterance into a reduced dimensional space and then determining which other embeddings (and therefore intents) are closest, using techniques such as Euclidean distance, cosine similarity, etc. <artist>As can be seen in the example grammar for ", some grammars include slots (e.g., <artist>) The slot values may be determined in a variety of ways. In many cases, the user proactively provides the slot values. For example, the grammar "Order me <topping>For "order me a sausage pizza," the user may be more likely to say the phrase "order me a sausage pizza," in which case the slot <topping>are filled automatically. Other slot values may be inferred based on, for example, the user's location, the currently rendered content, the user's preferences, and / or other clues.
[0060] A fulfillment engine (local and / or remote) may be configured to receive the predicted / inferred intent and any associated slot values output by the NLU engine and fulfill (or "resolve") the intent. In various implementations, fulfillment (or "resolution") of the user's intent may cause various fulfillment information (also referred to as fulfillment data) to be generated / obtained, for example, by the fulfillment engine. This may include determining a local and / or remote response (e.g., an answer) to the spoken utterance, an interaction with a locally installed application to perform based on the spoken utterance, a command to send to an Internet of Things (IoT) device (directly or via a corresponding remote system) based on the spoken utterance, and / or other resolution action to perform based on the spoken utterance. On-device fulfillment may then initiate local and / or remote fulfillment / execution of the determined action to resolve the spoken utterance.
[0061] 3 illustrates a flow diagram illustrating an example method 300 of adjusting thresholds, generating gradients based on false negatives or false positives locally on a client device, transmitting the gradients to a remote server, and / or utilizing the generated gradients to update weights of an on-device speech recognition model. For convenience, the operations of method 300 are described with reference to a system that performs the operations. This system of method 300 includes one or more processors and / or other components of the client device. Moreover, although the operations of method 300 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0062] In block 305, the system receives audio data capturing the user's spoken utterances via one or more microphones of the client device.
[0063] At block 310, the system processes the audio data received at block 305 using the machine learning model to generate a predicted output indicative of the probability that one or more hot words are present in the audio data. The machine learning model may be, for example, an on-device hot word detection model and / or other machine learning models. Further, the generated output may be, for example, a probability and / or other measure of likelihood.
[0064] In block 315, the system determines whether the predicted output generated in block 310 satisfies a secondary threshold that is less indicative of the presence of one or more hot words in the audio data than the primary threshold. If, in an iteration of block 315, the system determines that the predicted output generated in block 310 does not satisfy the secondary threshold, the system proceeds to block 320 and the flow ends. On the other hand, if, in an iteration of block 315, the system determines that the predicted output generated in block 310 does satisfy the secondary threshold, the system proceeds to block 325.
[0065] Still referring to block 315, in one example, assume that the predicted output generated in block 310 is a probability, and that the probability must be greater than 0.65 to satisfy the secondary threshold in block 315, and the predicted probability is 0.88. Based on the predicted probability of 0.88 satisfying the secondary threshold of 0.65, the system proceeds to block 358.
[0066] In block 325, the system determines whether the predicted output generated in block 310 meets a primary threshold. If, in an iteration of block 325, the system determines that the predicted output generated in block 310 does not meet the primary threshold, the system proceeds to block 335. On the other hand, if, in an iteration of block 325, the system determines that the predicted output generated in block 310 meets the primary threshold, the system proceeds to block 330 and starts one or more currently dormant automated assistant functions. In some implementations, the one or more automated assistant functions include speech recognition to generate recognized text, natural language understanding (NLU) to generate NLU output, generating a response based on the recognized text and / or NLU output, sending audio data to a remote server, and / or sending recognized text to a remote server.
[0067] Still referring to block 330, in one example, assume that the predicted output generated in block 310 is a probability, the probability must be greater than 0.85 in order to satisfy a primary threshold in block 325 and activate one or more currently dormant automated assistant functions in block 330, and the predicted probability is 0.88. Based on the predicted probability of 0.88 satisfying the threshold of 0.85, the system proceeds to block 330 and initiates one or more currently dormant automated assistant functions as intended by the user.
[0068] In block 335, the system prompts the user to indicate whether the spoken utterance captured by the audio data received in block 305 includes a hot word. In an implementation, the prompt may be in the form of an audio prompt (e.g., rendered using a text-to-speech module) asking whether the user spoke the hot word. In another implementation, the prompt may be rendered on a display as a message asking whether the user spoke the hot word. In yet another implementation, one or more of the prompts may be presented in an application or website (e.g., an app running on a mobile device) associated with the automated assistant client 240. The system may prompt the user in block 335 near the utterance in time (e.g., immediately after performing the actions of blocks 305, 310, 315, and 325) or at some later point in time (e.g., the system may present multiple prompts associated with multiple utterances at a given daily or weekly time).
[0069] With further reference to block 335, in an implementation, the prompting may be performed further in response to determining that the number of times the user has been previously prompted does not exceed a rate limit, in which case the system may avoid performing the prompting and return to block 305 without performing blocks 340-350.
[0070] With further reference to block 335, in an implementation, the prompting may be performed further in response to determining that the do not disturb state is disabled. If the do not disturb state is enabled, the system may avoid performing the prompting and return to block 305 without performing blocks 340-350.
[0071] With further reference to block 335, in an implementation the prompting may be performed further in response to determining that the user has not accessed the client device for a predetermined period of time. If the user has accessed the client device for a predetermined period of time, the system may avoid performing the prompting and return to block 305 without performing blocks 340 through 350.
[0072] At block 340, the system receives from the user a response to the prompt from block 335. In an implementation, the response may be an indication from the user as to whether the spoken utterance captured by the audio data received in block 305 includes a hot word. In an implementation, the response may be in the form of audio data received via one or more microphones of the client device, touchscreen input received via a touchscreen of the client device, and / or input received from a pointing device, such as a keyboard, mouse, trackball, touchpad, or graphics tablet, and / or other type of input device.
[0073] Still referring to block 340, in an implementation, the system may record a triggering event upon receiving a response from the user in block 340. Additionally, in an implementation, the system may record the response received from the user in block 340, which may be no response (i.e., a lack of response).
[0074] At block 345, the system adjusts the primary threshold based on the response received at block 340. In an implementation, in the case of a false negative, such as when the predicted output does not meet the primary threshold at block 325 and the response at block 340 indicates that the spoken utterance includes a hot word, adjusting the primary threshold based on the response includes lowering the primary threshold. In an implementation, in the case of a false positive, such as when the predicted output meets the primary threshold at block 325 and the response at block 340 indicates that the spoken utterance does not include a hot word, adjusting the primary threshold based on the response includes raising the primary threshold.
[0075] With further reference to block 345, in a non-limiting example of a false negative, assume that the predicted output generated in block 310 is a probability that must be greater than 0.65 to satisfy the secondary threshold in block 315 and greater than 0.85 to satisfy the primary threshold in block 325 and activate one or more currently dormant automated assistant functions in block 330, and the predicted probability is 0.80. Based on the predicted probability of 0.80, the secondary threshold is satisfied in block 315, but the primary threshold is not satisfied in block 325, so that one or more currently dormant automated assistant functions are not activated. In response to receiving a response in block 340 indicating that the spoken utterance captured in the audio data received in block 305 includes a hot word, the primary threshold is lowered in block 345 based on the probability (e.g., 0.80) generated as the predicted output in block 310. As another non-limiting example, the primary threshold may be lowered in block 345 by a predetermined amount (eg, 0.85-0.03=0.82) or by a predetermined percentage (eg, 0.85 lowered by 5%=0.8075).
[0076] With further reference to block 345, in a non-limiting example of a false positive, assume that the predicted output generated in block 310 is a probability that must be greater than 0.65 to satisfy the secondary threshold in block 315 and greater than 0.85 to satisfy the primary threshold in block 325 and activate one or more currently dormant automated assistant functions in block 330, and the predicted probability is 0.90. Based on the predicted probability of 0.90, the secondary threshold is satisfied in block 315 and the primary threshold is satisfied in block 325, thus activating one or more currently dormant automated assistant functions. In response to receiving a response in block 340 indicating that the spoken utterance captured in the audio data received in block 305 does not include a hot word, the primary threshold is increased in block 345 based on the probability (e.g., 0.90) generated as the predicted output in block 310. As another non-limiting example, the primary threshold may be raised in block 345 by a predetermined amount (eg, 0.85+0.03=0.88) or by a predetermined percentage (eg, 0.85 raised by 5%=0.8925).
[0077] In block 350, the system uses federated learning to train a hot word detection model based on the responses received in block 340. In an implementation, the system generates a gradient based on comparing the predicted output generated in block 310 to the ground truth output. In some implementations, the ground truth output is generated based on the responses received in block 340 indicating a correction of the decision made in block 325. For example, for a false negative, if the generated predicted output is 0.80 and the threshold is 0.85, the system may generate a ground truth output of 1.0. In such an example, generating the gradient is based on comparing the predicted output of 0.80 to the ground truth output of 1.0.
[0078] Still referring to block 350, the system updates one or more weights of the on-device machine learning model based on the generated gradients and / or the system transmits (e.g., via the Internet or other wide area network) the generated gradients to a remote system (without transmitting any of the audio data, sensor data, and / or responses received in block 340). When the gradients are transmitted to the remote system, the remote system utilizes the generated gradients and additional gradients from the additional client devices to update the global weights of the global speech recognition model. After block 350, the system returns to block 305.
[0079] 4 shows a flowchart illustrating an example method 400 of adjusting thresholds, generating gradients based on false positives locally on a client device, transmitting the gradients to a remote server, and / or utilizing the generated gradients to update weights of an on-device speech recognition model. For convenience, the operations of method 400 are described with reference to a system that performs the operations. This system of method 400 includes one or more processors and / or other components of the client device. Moreover, although the operations of method 400 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0080] At block 410, the system receives audio data capturing a user's spoken utterances via one or more microphones of the client device.
[0081] At block 420, the system processes the audio data received at block 410 using the machine learning model to generate a predicted output indicative of the probability that one or more hot words are present in the audio data. The machine learning model can be, for example, an on-device hot word detection model and / or other machine learning model. Further, the generated output can be, for example, a probability and / or other likelihood measure.
[0082] In block 430, the system determines whether the predicted output generated in block 420 meets a threshold value. If, in an iteration of block 430, the system determines that the predicted output generated in block 420 does not meet the threshold value, the system returns to block 410. On the other hand, in an iteration of block 430, the system determines that the predicted output generated in block 420 meets the threshold value, the system proceeds to block 440 and initiates the function of one or more currently dormant automated assistants.
[0083] Still referring to block 430, in one example, assume that the predicted output generated in block 420 is a probability, and that the probability must be greater than 0.85 to meet a threshold in block 430, and that the predicted probability is 0.88. Based on the predicted probability of 0.88 meeting the threshold of 0.85, the system proceeds to block 440 to start one or more currently dormant automated assistant functions. In some implementations, the one or more automated assistant functions include speech recognition to generate recognized text, natural language understanding (NLU) to generate NLU output, generating a response based on the recognized text and / or NLU output, transmitting audio data to a remote server, and / or transmitting the recognized text to a remote server.
[0084] At block 450, the system receives an indication from a user that the spoken utterance captured in the audio data received at block 410 does not include the hot word. In an implementation, the indication received by the system may be in the form of audio data received via one or more microphones of the client device, touchscreen input received via a touchscreen of the client device, and / or input received from a pointing device, such as a keyboard, mouse, trackball, touchpad, or graphics tablet, and / or other type of input device.
[0085] Still referring to block 450, in an implementation, the system may prompt the user to indicate whether the spoken utterance captured in the audio data received in block 410 includes a hot word, and an indication that the spoken utterance does not include the hot word is received in block 450 as a response to the prompt. In an implementation, the prompt may be in the form of an audio prompt (e.g., rendered using a text-to-speech module) asking whether the user spoke the hot word. In another implementation, the prompt may be rendered on a display as a message asking whether the user spoke the hot word. In yet another implementation, one or more of the prompts may be presented in an application or website (e.g., an app running on a mobile device) associated with the automated assistant client 240. The system may prompt the user in block 450 near the utterance in time (e.g., immediately after performing the actions of blocks 410, 420, 430, and 440) or at some later point in time (e.g., the system may present multiple prompts associated with multiple utterances at a given daily or weekly time).
[0086] With further reference to block 450, in an implementation, the prompting may be performed further in response to determining that the number of times the user has been previously prompted does not exceed a rate limit, in which case the system may avoid performing the prompting and return to block 410 without performing blocks 460 and 470.
[0087] Still referring to block 450, in an implementation, the prompting may be performed further in response to determining that the do not disturb state is disabled. If the do not disturb state is enabled, the system may avoid performing the prompting and return to block 410 without performing blocks 460 and 470.
[0088] Still referring to block 450, in an implementation the prompting may be performed further in response to determining that the user has not accessed the client device for a predetermined period of time. If the user has accessed the client device for a predetermined period of time, the system may avoid performing the prompting and return to block 410 without performing blocks 460 and 470.
[0089] With further reference to block 450, in other implementations, the indication that the spoken utterance captured in the audio data received in block 410 does not include the hot word is additional audio data capturing a subsequent spoken utterance including "no," "stop," "cancel," and / or another spoken utterance that contradicts the initial determination made in block 430. In implementations, the initial determination made in block 430 can be classified as incorrect (i.e., a false positive) based on, for example, determining that the duration between the spoken utterance and the additional spoken utterance meets a time threshold (e.g., within 3.0 seconds), determining that the magnitude of the initial probability meets a probabilistic threshold related to a threshold probability (e.g., within 0.20 of 0.85), a function of the duration and the initial probability for the initial determination in block 430 as described herein, and / or other determinations that are an indication that the spoken utterance captured in the audio data received in block 410 does not include the hot word.Alternatively, assuming the further user interface input is an alternative input to cancel the invocation of the Assistant, such as actuation of an explicit automated assistant-invoking button (e.g., a hardware or software button), a sensed "grasping" of the device (e.g., when squeezing the device with at least a threshold amount of force invokes the Assistant), and / or other explicit input to cancel the invocation of the Assistant, the initial determination made in block 430 can be classified as incorrect (i.e., a false positive) based on, for example, determining that the duration between the spoken utterance and the alternative input to cancel the invocation meets a time threshold (e.g., within 3.0 seconds), determining that the magnitude of the initial probability meets a probabilistic threshold related to a threshold probability (e.g., within 0.20 of 0.85), a function of the duration and the initial probability for the initial determination in block 430 as described herein, and / or other determinations, which is an indication that the spoken utterance captured in the audio data received in block 410 does not include the hot word. Thus, in these cases, the system may refrain from initiating the functioning of a currently dormant automated assistant and / or stop the functioning of a currently active automated assistant based on determining that the initial determination made in block 430 was incorrect.
[0090] At block 460, in response to determining that the predicted output meets the threshold at block 430 and receiving an indication that the spoken utterance does not include the hot word at block 450, the system adjusts the threshold. In an implementation, in the case of a false positive such that the predicted output meets the threshold at block 430 and the indication received at block 450 indicates that the spoken utterance does not include the hot word, adjusting the primary threshold based on the response includes raising the primary threshold.
[0091] With further reference to block 460, in a non-limiting example of a false positive, assume that the predicted output generated in block 420 is a probability, the probability must be greater than 0.85 to satisfy the threshold in block 430 and activate one or more currently dormant automated assistant functions in block 440, and the predicted probability is 0.88. Based on the predicted probability of 0.88, the threshold is satisfied in block 430, and therefore one or more currently dormant automated assistant functions are activated. In response to receiving an indication in block 450 that the spoken utterance does not include a hot word, the threshold is raised in block 460 based on the probability (e.g., 0.88) generated as the predicted output in block 420. As another non-limiting example, the threshold is raised in block 460 by a predetermined amount (e.g., 0.85+0.03=0.88) or a predetermined percentage (e.g., raising 0.85 by 5%=0.8925).
[0092] At block 470, the system uses federated learning to train a hot word detection model based on the instructions received at block 450. In an implementation, the system generates a gradient based on comparing the predicted output generated at block 420 to the ground truth output. In some implementations, the ground truth output is generated based on the instructions received at block 450 indicating a correction of the decision made at block 430. For example, for a false positive, if the generated predicted output is 0.88 and the threshold is 0.85, the system may generate a ground truth output of 0.0. In such an example, generating the gradient is based on comparing the predicted output of 0.88 to the ground truth output of 0.0.
[0093] Still referring to block 470, the system updates one or more weights of the on-device machine learning model based on the generated gradients and / or the system transmits (e.g., via the Internet or other wide area network) the generated gradients to a remote system (without transmitting any of the audio data, sensor data, and / or instructions received in block 450). When the gradients are transmitted to the remote system, the remote system utilizes the generated gradients and additional gradients from the additional client devices to update the global weights of the global speech recognition model. After block 470, the system returns to block 410.
[0094] 5 shows a flow diagram illustrating an example method 500 of adjusting a threshold based on false negatives. For convenience, the operations of method 500 are described with reference to a system that performs the operations. This system of method 500 includes one or more processors and / or other components of a client device. Furthermore, while the operations of method 500 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0095] At block 505, the system receives first audio data capturing a first spoken utterance of a user via one or more microphones of the client device.
[0096] At block 510, the system processes the first audio data received at block 505 using the machine learning model to generate a first predicted output indicative of a probability that one or more hot words are present in the first audio data. The machine learning model may be, for example, an on-device hot word detection model and / or other machine learning model. Further, the generated output may be, for example, a probability and / or other likelihood measure.
[0097] In block 515, the system determines whether the first predicted output generated in block 510 meets the threshold. In an iteration of block 515, the system determines that the first predicted output generated in block 510 meets the threshold, and the system proceeds to block 520. On the other hand, in an iteration of block 515, the system determines that the first predicted output generated in block 510 does not meet the threshold, and the system proceeds to block 525.
[0098] In block 520, the system initiates the functioning of one or more currently dormant automated assistants as intended by the user.
[0099] At block 525, in response to determining that the first predicted output does not meet the threshold at block 515, the system makes a first adjustment to the threshold. In an implementation, making the first adjustment to the threshold includes lowering the threshold (e.g., as described in connection with block 315 of FIG. 3 ) and is further in response to receiving an indication from a user that the first spoken utterance captured in the first audio data received at block 505 includes a hot word.
[0100] At block 530, after making the first adjustment at block 525, the system receives, via one or more microphones of the client device, second audio data capturing a second spoken utterance of the user.
[0101] At block 535, the system processes the second audio data received at block 530 using the machine learning model to generate a second predicted output indicative of the probability that one or more hot words are present in the second audio data.
[0102] In block 540, the system determines whether the second predicted output generated in block 535 satisfies the threshold adjusted according to the first adjustment in block 525. If, in an iteration of block 540, the system determines that the second predicted output generated in block 535 satisfies the threshold adjusted according to the first adjustment in block 525, the system returns to block 520. On the other hand, if, in an iteration of block 540, the system determines that the second predicted output generated in block 535 does not satisfy the threshold adjusted according to the first adjustment in block 525, the system proceeds to block 545.
[0103] At block 545, in response to determining at block 540 that the second predicted output does not meet the threshold value adjusted according to the first adjustment at block 525, the system makes a second adjustment to the threshold value. In an implementation, making the second adjustment to the threshold value further includes lowering the threshold value (e.g., as described in connection with block 315 of FIG. 3 ) and is further in response to receiving an indication from a user that the second spoken utterance captured in the second audio data received at block 530 includes a hot word.
[0104] At block 550, after making the second adjustment at block 545, the system receives third audio data via one or more microphones of the client device capturing a third spoken utterance of the user.
[0105] At block 555, the system processes the third audio data received at block 550 using the machine learning model to generate a third predicted output indicative of the probability that one or more hot words are present in the third audio data.
[0106] In block 560, the system determines whether the third predicted output generated in block 555 satisfies the threshold adjusted according to the first adjustment in block 525 and the second adjustment in block 545. If in the iteration of block 560, the system determines that the third predicted output generated in block 555 does not satisfy the threshold adjusted according to the first adjustment in block 525 and the second adjustment in block 545, the system proceeds to block 565 and the flow ends. On the other hand, if in the iteration of block 560, the system determines that the third predicted output generated in block 555 does satisfy the threshold adjusted according to the first adjustment in block 525 and the second adjustment in block 545, the system proceeds to block 570.
[0107] In block 570, the system initiates the functioning of one or more currently dormant automated assistants as intended by the user.
[0108] At block 575, in response to determining at block 560 that the third predicted output satisfies the threshold adjusted according to the first adjustment at block 525 and the second adjustment at block 545, the system makes a third adjustment to the threshold. In an implementation, making the third adjustment to the threshold includes raising the threshold (e.g., as described in connection with block 315 of FIG. 3 ) and is further in response to receiving an indication from the user that the third spoken utterance captured in the third audio data received at block 550 does not include the hot word. In an implementation, in response to receiving an indication that the third spoken utterance does not include the hot word, the system may disable any currently active automated assistant.
[0109] It is noted that in various implementations of methods 300, 400, and 500, the audio data, the predicted output, the response to the prompt, the further user interface input, the threshold, and / or the ground truth output may be stored locally on the client device. Furthermore, in some versions of those implementations of methods 300, 400, and 500, generating gradients, updating one or more weights of the on-device machine learning model, and / or sending the gradients to the remote system is performed in response to a determination that the current state of the client device satisfies one or more conditions. For example, the one or more conditions include that the client device is charging, that the client device is at least in a threshold state of charging, and / or that the client device is not being carried by the user. Furthermore, in some additional or alternative versions of those implementations of methods 300, 400, and 500, generating gradients, updating one or more weights of the on-device machine learning model, and / or sending the gradients to the remote system is performed in real time. In these and other ways, the thresholds and the on-device machine learning model may be rapidly adapted to mitigate the occurrence of false negatives and / or false positives. Further, in the case of on-device machine learning models processing audio data capturing spoken speech, this enables improved performance of the on-device machine learning models with respect to attributes of the user of the client device, such as tone, intonation, accent, and / or other speech features.
[0110] 6 is a block diagram of an example computing device 610 that may optionally be utilized to perform one or more aspects of the techniques described herein. In some implementations, one or more of the client devices, cloud-based automated assistant components, and / or other components may include one or more components of the example computing device 610.
[0111] Generally, the computing device 610 includes at least one processor 614 that communicates with a number of peripheral devices via a bus subsystem 612. These peripheral devices may include, for example, a storage subsystem 624 including a memory subsystem 625 and a file storage subsystem 626, user interface output devices 620, user interface input devices 622, and a network interface subsystem 616. The input and output devices enable user interaction with the computing device 610. The network interface subsystem 616 provides an interface to an external network and is coupled to corresponding interface devices of other computing devices.
[0112] The user interface input devices 622 may include a keyboard, a pointing device such as a mouse, a trackball, a touchpad, or a graphics tablet, a scanner, a touch screen integrated into a display, a voice input device such as a voice recognition system, a microphone, and / or other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and methods for inputting information into the computing device 610 or a communications network.
[0113] The user interface output devices 620 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a flat panel device such as a cathode ray tube (CRT), a liquid crystal display (LCD), a projection device, or some other mechanism for generating a visible image. The display subsystem may also provide a non-visual display, such as through an audio output device. In general, use of the term "output device" is intended to include all possible types of devices and ways of outputting information from the computing device 610 to a user or to another machine or computing device.
[0114] Storage subsystem 624 stores programming and data structures that provide the functionality of some or all of the modules described herein. For example, storage subsystem 624 may include logic for performing selected aspects of the methods disclosed herein and for implementing the various components illustrated in Figures 1A and 1B.
[0115] These software modules are generally executed by the processor 614 alone or in combination with other processors. The memory subsystem 625 included in the storage subsystem 624 may include several memories including a main random access memory (RAM) 630 for storing instructions and data during execution of the program, and a read-only memory (ROM) 632 in which certain instructions are stored. The file storage subsystem 626 may provide persistent storage for program and data files and may include a hard disk drive, a floppy disk drive with associated removable media, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules implementing the functionality of a particular implementation may be stored by the file storage subsystem 626 in the storage subsystem 624 or other machines that may be accessed by the processor 614.
[0116] The bus subsystem 612 provides a mechanism for allowing the various components and subsystems of the computing device 610 to communicate with each other as intended. Although the bus subsystem 612 is shown diagrammatically as a single bus, alternative implementations of the bus subsystem may use multiple buses.
[0117] The computing device 610 can be of various types, including a workstation, a server, a computing cluster, a blade server, a server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of the computing device 610 shown in Figure 6 is intended only as a specific example intended to illustrate some implementations. Many other configurations of the computing device 610 having more or fewer components than the computing device shown in Figure 6 are possible.
[0118] In situations where the systems described herein may collect or otherwise monitor personal information about a user or utilize personal information and / or monitored information, the user may be given the opportunity to control whether a program or feature collects user information (e.g., information about the user's social network, social actions or activities, occupation, user preferences, or the user's current geographic location) or whether and / or how content that may be more relevant to the user should be received from a content server. Also, certain data may be processed in one or more ways before being stored or used, such that personally identifiable information is removed. For example, the user's identity may be processed such that personally identifiable information cannot be determined about the user, or if geographic location information is obtained, the user's geographic location may be generalized (such as to the level of a city, zip code, or state) and thus the user's specific geographic location cannot be determined. Thus, the user may be able to control how information is collected and / or used about the user.
[0119] Although several implementations have been described and illustrated herein, various other means and / or structures for performing the functions and / or obtaining one or more of the results and / or benefits described herein may be utilized, and each of such variations and / or modifications is deemed to be within the scope of the implementations described herein. More broadly, all parameters, dimensions, materials, and configurations described herein are intended to be exemplary, and the actual parameters, dimensions, materials, and / or configurations will depend on the specific application or applications in which the teachings are used. Using no more than routine experimentation, those skilled in the art will recognize and appreciate many equivalents to the specific implementations described herein. Thus, it should be understood that the foregoing implementations are presented by way of example only, and that within the scope of the appended claims and their equivalents, implementations other than those specifically described and claimed may be practiced. Implementations of the present disclosure are directed to each individual feature, system, article, material, kit, and / or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and / or methods is included within the scope of the present disclosure, if such features, systems, articles, materials, kits, and / or methods are not mutually inconsistent. [Explanation of symbols]
[0120] 101 Audio Data 102 Other sensor data 103 Predicted Output 104 Adjusted Threshold 105 Ground Truth Output 106 Gradient 107 Additional Slope 108 Updated weights and / or models 110 Client Devices 111 On-device storage 122A Machine Learning Engine 122B Hotword Detection Engine 124 Assistant Engine 126 Gradient Engine 128 Voice Activity Detector 132A On-device Machine Learning Training Engine 142 On-device speech recognizer 142A On-device voice recognition model 143A Recognized Text 143B More recognized text 144 On-device NLU engine 144A On-device NLU model 145A NLU Data 146 On-Device Fulfillment Engine 146A On-Device Fulfillment Model 147A Performance Data 150 Run 152A Machine Learning Model 152A1 Global speech recognition model 152B Hotword Detection Model 160 Remote Server, Remote System 162 Remote Training Engine 164 Update Distribution Engine 170 additional client devices 211 Microphone 212 Speaker 213 Visual Components 214 Display 240 Automated Assistant Clients 242 Audio Capture Engine 244 Visual Capture Engine 280 Cloud-Based Automated Assistant Components 281 Remote ASR Engine 282 Remote NLU Engine 283 Remote Fulfillment Engine 295 Automated Assistants 300 ways 400 ways 500 ways 610 Computing Devices 612 Bus Subsystem 614 processor 616 Network Interface Subsystem 620 User Interface Output Device 622 User Interface Input Devices 624 Storage Subsystem 625 Memory Subsystem 626 File Storage Subsystem< / topping> < / topping> < / artist> < / artist> < / artist> < / artist>
Claims
1. 1. A method implemented by one or more processors, comprising: receiving, via one or more microphones of a client device, audio data capturing spoken utterances of a user; processing the audio data using a machine learning model to generate a predicted output indicative of the probability that one or more hot words are present in the audio data; determining that the predicted output satisfies a secondary threshold that is less indicative of the one or more hot words being present in the audio data than a primary threshold; responsive to determining that the predicted output satisfies the secondary threshold, prompting the user to indicate whether the spoken utterance includes a hot word to adjust the primary threshold; receiving a response to the prompt from the user; and adjusting the primary threshold based on the response.
2. The method of claim 1 , further comprising initiating an automated assistant function in response to the predicted output satisfying the primary threshold.
3. the machine learning model is a hot word detection model; The method of claim 1 or 2, further comprising using associative learning to train the hot word detection model based on the responses.
4. the predicted output does not meet the primary threshold; the response indicating that the spoken utterance includes the hot word; The method of claim 1 , wherein the step of adjusting the primary threshold based on the response comprises lowering the primary threshold.
5. the predicted output satisfies the primary threshold; the response indicating that the spoken utterance does not include the hot word; The method of claim 1 , wherein the step of adjusting the primary threshold based on the response comprises the step of increasing the primary threshold.
6. 6. The method of claim 1, wherein the prompting step is further responsive to determining that the number of times the user has been previously prompted does not exceed a rate limit.
7. 7. The method of claim 1, wherein the prompting step is further responsive to determining that a do not disturb condition is disabled.
8. The method of claim 1 , wherein the prompting step is further responsive to determining that the user has not accessed the client device for a predetermined period of time.
9. 1. A method implemented by one or more processors, comprising: receiving, via one or more microphones of a client device, audio data capturing spoken utterances of a user; processing the audio data using a machine learning model to generate a predicted output indicative of the probability that one or more hot words are present in the audio data; determining if the predicted output meets a threshold; initiating an automated assistant function prior to receiving an indication that the spoken utterance does not include the hot word in response to determining that the predicted output meets the threshold; prompting the user to indicate whether the spoken utterance contains the hot word; receiving an indication from the user that the spoken utterance in response to the prompt does not include a hot word; determining that the predicted output meets the threshold and, in response to receiving the indication that the spoken utterance does not include the hot word, adjusting the threshold.
10. the machine learning model is a hot word detection model; 10. The method of claim 9, further comprising training the hot word detection model based on the indication that the spoken utterance does not include the hot word.
11. The method of claim 9 or 10, wherein the step of adjusting the threshold comprises increasing the threshold.
12. 10. The method of claim 9, wherein the prompting step is in response to determining that the number of times the user has been previously prompted does not exceed a rate limit.
13. 10. The method of claim 9, wherein the prompting step is in response to determining that a do not disturb condition is disabled.
14. 10. The method of claim 9, wherein the prompting step is further responsive to determining that the user has not accessed the client device for a predetermined period of time.
15. A computer program comprising instructions which, when executed by one or more processors, cause said one or more processors to perform the method of any one of claims 1 to 14.
16. A computer-readable storage medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 14.
17. A client device comprising one or more processors for carrying out the method of any one of claims 1 to 14.
18. 15. A system comprising a processor, a computer readable memory, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions being executable to perform the method of any one of claims 1 to 14.
Citation Information
Patent Citations
Apparatus and method of voice recognition in an audio-video system
EP1496499A2
Electronic apparatus and cleaner
JP2014137430A
Binary voice recognition
JP2016505897A
Parameter-Efficient Multi-Task and Transfer Learning
US20200104706A1
Wakeword detection
US20200184966A1