Hot phrase triggering based on sequence of detections
The two-stage hot phrase detection model addresses inflexibility in existing models by recognizing flexible command sequences, improving user interaction and reducing power consumption in voice-enabled devices.
Patent Information
- Application Number
- JP2023535570
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-10
- Filing Date
- 2021-11-21
- Publication Date
- 2024-12-23
- Estimated Expiration
- 2041-11-21
AI Technical Summary
Existing hot phrase detection models in voice-enabled environments are inflexible, requiring exact command sequences and lacking flexibility to accommodate variations in user utterances, limiting their applicability and user interaction.
A two-stage hot phrase detection model that allows for the detection of multiple hotwords in an utterance, integrating them to recognize flexible command sequences, even when words are not spoken consecutively, using a low-power first stage detector and a verification stage to ensure accuracy.
Enables flexible and efficient interaction with digital assistants by allowing users to speak natural language commands without strict adherence to exact phrases, reducing power consumption and enhancing user experience.
Smart Images

Figure 0007604656000001 
Figure 0007604656000002 
Figure 0007604656000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to hot phrase triggers based on sequences of detection. [Background technology]
[0002] A voice-enabled environment allows a user to simply speak a query or command a load, and have the digital assistant receive and respond to the query and / or implement the command. A voice-enabled environment (e.g., a home, a workplace, a school, etc.) can be implemented using a network of connected microphone devices distributed throughout various rooms and / or areas of the environment. Through such a network of microphones, a user has the power to verbally query a digital assistant from essentially anywhere in the environment, without the need to have a computer or other device in front of him / her or even nearby. These devices can use hot words to help distinguish when a given utterance is directed to the system, as opposed to an utterance directed to another individual entity in the environment. Thus, the device can operate in a sleep or hibernation state and wake up only when the utterance it detects contains the hot word. Once woken up, the device can proceed to perform more expensive processing, such as full on-device automatic speech recognition (ASR) or server-based ASR. For example, while cooking in the kitchen, a user can say a designated hotword, "Hey computer," to trigger and activate a voice-enabled device and then ask a digital assistant running on the voice-enabled device to "set a timer for 20 minutes," in response to which the digital assistant will confirm (e.g., in the form of a synthesized voice output) that the timer has been set and will alert the user (e.g., in the form of an alarm from an audio speaker or other audible alert) when the timer has expired after 20 minutes. Summary of the Invention [Means for solving the problem]
[0003] One aspect of the present disclosure provides a method for detecting hot phrases. The method includes receiving, at a data processing hardware of a user device associated with the user, audio data corresponding to an utterance spoken by the user and captured by the user device. The utterance includes a command for the digital assistant to perform an action. During each of a plurality of fixed long-term windows of the audio data, the method includes: determining, by the data processing hardware, using a hot phrase detector configured to detect each trigger word in a set of trigger words associated with the hot phrase, whether any of the trigger words in the set of trigger words are detected in the audio data during the corresponding fixed long-term window; determining, by the data processing hardware, whether each other trigger word in the set of trigger words associated with the hot phrase is also detected in the audio data when one of the trigger words in the set of trigger words associated with the hot phrase is detected in the audio data during the corresponding fixed long-term window; and identifying, by the data processing hardware, the hot phrase in the audio data corresponding to the utterance when each other trigger word in the set of trigger words is also detected in the audio data. The method also includes the step of triggering an automatic speech recognizer (ASR) to perform speech recognition on the audio data when the hot phrase is identified in the audio data corresponding to the utterance by the data processing hardware.
[0004] Another aspect of the present disclosure provides a system for detecting hot phrases in audio data. The system includes data processing hardware and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform an operation. The operation includes receiving audio data corresponding to an utterance spoken by a user and captured by a user device associated with the user. The utterance includes a command for the digital assistant to perform the operation. During each of a plurality of fixed long-term windows of the audio data, the operation also includes using a hot phrase detector configured to detect each trigger word in a set of trigger words associated with the hot phrase to determine whether any of the trigger words in the set of trigger words are detected in the audio data during the corresponding fixed long-term window, when one of the trigger words in the set of trigger words associated with the hot phrase is detected in the audio data during the corresponding fixed long-term window, determining whether each other trigger word in the set of trigger words associated with the hot phrase is also detected in the audio data, and identifying the hot phrase in the audio data corresponding to the utterance when each other trigger word in the set of trigger words is also detected in the audio data. The operations also include triggering an automatic speech recognizer (ASR) to perform speech recognition on the audio data when a hot phrase is identified in the audio data corresponding to the utterance.
[0005] The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will become apparent from the description and drawings, and from the claims. [Brief description of the drawings]
[0006] [Figure 1] FIG. 1 is a diagram of an example system including a hot phrase detector for detecting hot phrases in audio. [Diagram 2]FIG. 2 is a diagram of an example hot phrase detector of FIG. 1. [Diagram 3] 1 is a flow chart of an exemplary arrangement of operations for a method for detecting hot phrases in audio. [Figure 4] FIG. 1 is a schematic diagram of an example computing device that can be used to implement the systems and methods described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0007] Like reference numbers in the various drawings indicate like elements.
[0008] Through such a network of one or more assistant-enabled devices, a user has the power to speak queries or instructions aloud and to have a digital assistant field, reply to queries, and / or execute commands. Ideally, a user should be able to interact with a digital assistant as if they were talking to another person by speaking queries / commands into the assistant-enabled device. However, due to the fact that it is extremely expensive to perform continuous full voice recognition on an assistant-enabled device with limited resources, such as a smartphone or smartwatch, it is difficult for a digital assistant to be constantly responsive to the user.
[0009] Thus, these assistant-enabled devices generally operate in a sleep or hibernation state, where a low-power hot word model is capable of detecting predefined hot words in the sound without performing voice recognition. Upon detecting a predefined hot word in a spoken utterance, the assistant-enabled device can wake up and proceed to perform more expensive processing, such as full on-device automatic speech recognition (ASR) or server-based ASR. To alleviate the need for users to speak predefined hot words and thus create an experience that supports always-on voice, some current efforts focus on activating the digital assistant directly for a narrow set of common phrases (e.g., "set timer", "turn down the volume", etc.). During the low power state, the assistant-enabled device can run a low power model, such as a small hot phrase (or warm word) model, or a low power speech recognizer capable of detecting / recognizing a fixed hot phrase in the sound. When a fixed hot phrase is detected / recognized by the low power model, the voice-enabled device triggers and wakes up a higher power, more accurate model to verify the presence of the fixed phrase in the sound.
[0010] One challenge of hot phrase detection models is that they are inflexible because they require the user to speak the exact command that the hot phrase model is trained to recognize. That is, the user must speak the exact hot phrase that the hot phrase model expects, without the ability to accommodate variations / flexibility in different phrases. In many scenarios, the sequence of words for a given command is not always spoken consecutively in an utterance, which makes it difficult to express the given command in a hot phrase. For example, when implementing a command to send a text message, the user may say, "send a message to John that I'm going to be late." Here, the command includes a fixed portion and some variable portions that are difficult to detect / recognize using conventional low-power hot phrase detection models. Thus, conventional low-power hot phrase detection models lack flexibility and support only a limited number of different hot phrases.
[0011] Implementations herein relate to enabling more flexible hotword detection models capable of operating at low power while allowing users to interact more naturally with a flexible, always-on, assistant-enabled device (AED). More specifically, the AED can execute a first-stage hot phrase detector that either executes a single hotword detection model configured to detect multiple different hotwords in an utterance, or executes a set of hotword detection models in parallel, each hotword detection model configured to detect a corresponding hotword in an utterance. When the set of hotword detection models detects multiple hotwords in a given utterance, the first-stage hot phrase detector can aggregate the multiple hotwords to detect a complete hot phrase. That is, when multiple hotwords are detected in an expected order within a predefined time window, a complete hot phrase can be detected, thereby allowing the AED to wake up from a low-power state to execute a second-stage hot phrase detector and verify the detected hot phrase. A second stage hot phrase detector can be used to verify hot words detected by the first stage and / or to enable recognition of parameters within a predefined time window that were not detected / recognized by the first stage hot phrase detector. These parameters can include, for example, intermediate words / terms that the hot word model was not trained to detect, but that are otherwise distributed during the utterance spoken as part of the issued query / command.
[0012] The hot phrase detector can be activated / initialized to detect multiple hot words / trigger words based on the context related to the currently used application and / or the content displayed on the screen of the AED. For example, if a user sees "Send a message" and "Respond to a call" displayed on the screen, the hot phrase detector can activate the words send / respond / call / message.
[0013] FIG. 1 illustrates an exemplary system 100 including an assistant-enabled device (AED) 104 running a digital assistant 109 with which a user 102 can interact through voice. In the illustrated example, the AED 104 corresponds to a smart speaker. However, the AED 104 may include other computing devices, such as, but not limited to, a smartphone, a tablet, a smart display, a desktop / laptop, a smart watch, a smart appliance, headphones, or an in-vehicle infotainment device. The AED 104 includes data processing hardware 10 and memory hardware 12 that stores instructions that, when executed on the data processing hardware 10, cause the data processing hardware 10 to perform operations. The AED 104 includes an array of one or more microphones 16 configured to capture acoustic sounds, such as voices, directed to the AED 104. The AED 104 may also include or communicate with an audio output device (e.g., a speaker) that can output sound for playback to the user 102.
[0014] In the illustrated example, the user 102, near the AED 104, speaks an utterance 110, "Send a message to John: 'I'm going to be late.'" The microphone 16 of the AED 104 receives the utterance 110 and processes audio data 202 corresponding to the utterance 110. Initial processing of the audio data may include filtering the audio data and converting the audio data from an analog signal to a digital signal. Once the AED 104 processes the audio data, the AED may store the audio data in a buffer in the memory hardware 12 for further processing. Using the audio data in the buffer, the AED 104 may use the hot phrase detector 200 to detect whether the audio data 202 includes a hot phrase. More specifically, the hot phrase detector is configured to detect, in the audio data, each trigger word in a set of trigger words associated with a hot phrase during a fixed long window 220 of the audio data 202. Thus, the hot phrase detector 200 is configured to identify trigger words included in the audio data without performing speech recognition on the audio data. In the illustrated example, the hot phrase detector 200 can determine that an utterance 110 of "send a message to John, 'I'm going to be late'" contains the hot phrase 210 of "send a <..> message <..> that" if, during a fixed long-term window 220 of the audio data 202, the hot phrase detector 200 detects acoustic features in the audio data that are characteristic of each of the trigger words "send", "message", and "say". The acoustic features may be Mel-frequency Cepstral Coefficients (MFCCs) that represent the short-term power spectrum of the utterance 110, or may be Mel-scale filter bank energies for the utterance 110. While the example represents each trigger word as a complete word, the trigger words may also include subwords or parts of words.
[0015] As used herein, hot phrases 210 refer to a narrow set of trigger words (e.g., warm words) that the AED 104 is configured to recognize / detect in sounds without performing voice recognition to directly trigger the respective action operation. That is, hot phrases 210 handle dual purpose call phrases and wake up the AED 104 from a low power state (e.g., sleep or hibernation) to issue a command that specifies the action to be performed by the digital assistant 109. In the example, the hot phrase 210 of "send <..> message <..>" allows the user to call the AED 104 and trigger the performance of the respective action (e.g., send message content to the recipient) without the user having to prefix the utterance 110 with a predefined call phrase (e.g., hot word, wake word) to first wake up the AED 104 to process the subsequent sounds corresponding to the command / query.
[0016] In particular, the hot phrase detector 200 is configured to detect the hot phrase 210 as long as each trigger word in the set of trigger words associated with the hot phrase 210 is detected in the audio data in a sequence matching a predefined order associated with the hot phrase 210 within a fixed long term window 220. That is, in addition to the fixed portion corresponding to the set of trigger words, the hot phrase detector 200 is configured to detect that the utterance 110 may also include some variable portion not related to the hot phrase, such as words / terms spoken by the user 102 between the first trigger word (e.g., "send") and the last trigger word (e.g., "say"). Thus, the hot phrase detector 200 does not require the user 102 to speak the exact command that the hot phrase detector 200 is trained to detect. That is, the hot phrase detector 200 has the ability to accommodate variation / flexibility in different phrases associated with the hot phrase, thus allowing the user to embed open-ended parameters inside the hot phrase without the user having to consecutively speak the set of trigger words. While some hot phrases (e.g., “volume up”, “volume down”, “next track”, “timer set”, “alarm stop”, etc.) are usually spoken consecutively in an utterance, the hot phrase detector 200 disclosed herein is still capable of detecting sequences of trigger words for hot phrases that are not necessarily spoken consecutively, thereby enabling the AED 104 to detect a wider range of hot phrases 210. For example, in the example of FIG. 1, the user 102 can convey the same command to cause the digital assistant 109 to perform an action by speaking a slightly different utterance, “Send my colleague John a nice message that says ‘I’m going to be late’”. Here, the utterance still includes the set of trigger words associated with the hot phrase 110 of “send a <..> message that” but has a different type of word / term spoken by the user 102 between the first trigger word (e.g., “send”) and the last trigger word (e.g., “that”).Thus, the hot phrase detector 200 can still detect the hot phrase 210 and page and activate the AED 104, triggering the performance of the respective action (eg, sending the message content to the recipient).
[0017] The hot phrase detector 200 may operate / run continuously on the AED 104 while the AED 104 is in a low power state listening for each trigger word in a set of trigger words in the streaming audio. When the AED 104 comprises a battery-powered device such as a smartphone, the hot phrase detector 200 may run on low power hardware such as a digital signal processor (DSP) chip. The hot phrase detector 200 may operate / run on the application process (AP) / CPU of other types of AEDs, but may consume less power and require less processing than performing speech recognition.
[0018] When the hot phrase detector 200 identifies a hot phrase 210 in the audio data 202 by detecting each trigger word in the set of trigger words during a fixed long time window 220 of the audio data 202, the AED 104 can trigger a wake-up process to begin speech recognition on the audio data 202 corresponding to the utterance 110. For example, an automatic speech recognizer (ASR) 116 running on the AED 104 can perform speech recognition on the audio data 202 as a verification step to confirm the presence of the hot phrase 210 in the audio data 202. The hot phrase detector 200 can rewind the audio data buffered in the memory hardware 12 when or before the first trigger word is detected to provide the audio data 202 beginning when or before the first trigger word is detected to the ASR 116 for performing processing thereon. Thus, the buffered audio data 202 provided to the ASR 116 can include any introductory sounds beginning before the first trigger word. The duration of the introductory sounds may depend on the specific hot phrase 210 based on when the first trigger word is expected to occur in conjunction with other terms in a given utterance. The audio data 202 provided to the ASR 116 includes a portion corresponding to the introductory sounds, as well as a fixed long duration window 220 that characterizes the detected set of trigger words and a subsequent portion 222 that includes the message content "I'm going to be late."
[0019] Here, the ASR 116 generates a transcription 120 of the utterance 110 by processing the audio data 202 and determines whether each trigger word in the set of trigger words associated with the hot phrase 210 is recognized in the transcription 120. The ASR 116 can also process a portion 222 of the audio data 202 corresponding to the content of the message, such as "I'm going to be late," after the last trigger word (e.g., "says") for inclusion in the transcription 120. Once the ASR 116 determines that each trigger word in the set of trigger words is recognized in the transcription 120, the ASR 116 can provide the transcription 120 to the query process 180 and perform a query interpretation on the transcription 120 to identify commands for the digital assistant 109 and perform an action. The query process 180 can receive the transcription 120 of the utterance 110 and execute a dedicated model configured to classify the likelihood that the utterance 110 corresponds to a query / command-like utterance directed to the digital assistant 109. Query processing 180 may additionally or alternatively perform query interpretation through a natural language processing (NLP) layer to perform intent classification. In an example, the query interpretation performed on the transcript 120 by query processing 180 may identify a command to send a message to a receiving device associated with John and provide the portion of the transcript 120 containing the message content "I'm going to be late" to a messaging application for transmission to a receiving device associated with John.
[0020] On the other hand, if the ASR 116 determines that one or more of the trigger words in the set of trigger words are not recognized in the transcript 120, the ASR 116 determines that a miss-trigger event occurred in the hot phrase detector 200 and thus the hot phrase 210 was not spoken in the user's utterance 110. In the illustrated example, the ASR 116 commands the AED 104 to inhibit the wake-up process and return to a low power state upon determining the miss-trigger event. In some examples, when one or more of the trigger words detected by the hot phrase detector 200 are misrecognized by the ASR, the AED 104 performs a refinement process to fine-tune the hot phrase detector based on each trigger word misrecognized by the ASR.
[0021] Optionally, the ASR 116 may execute on a remote server (not shown) that communicates over a network with the AED 104. In some examples, a computationally more powerful second stage hot phrase detector verifies the presence of hot phrases 210 in the audio data 202 in addition to or instead of the verification performed by the ASR 116.
[0022] With reference to FIG. 2, in some implementations, the hot phrase detector 200 includes a trigger word detection model 205 that is trained to detect each trigger word in a set of trigger words associated with a hot phrase 210. The audio data 202 converted from streaming audio captured by the microphone 16 of the AED 104 is buffered and provided to the trigger word detection model 205. The buffer may reside on the memory hardware 12. The model 205 is configured to output a confidence score 207 for a range of supported trigger words that includes the set of trigger words associated with the hot phrase 210. The range of supported trigger words may include other trigger words for different sets of trigger words associated with one or more additional hot phrases. Some trigger words may belong to multiple sets of trigger words. For example, the trigger word "message" may also belong to another set of trigger words associated with another hot phrase "dictate a message <..>". In some examples, the model 205 includes a fixed-window audio model having several neural network layer blocks configured to process audio frames to generate a classification (e.g., confidence score 207) of the sound every Nms. Here, the neural network layer blocks may include convolutional blocks. At each of a number of time steps, the output layer of the model may output a confidence score 207 for each supported trigger word. Thus, each trigger word supported by the model may be referred to as a target class. Once the model 205 outputs the respective confidence scores 207 for the trigger words that satisfy the trigger word confidence threshold, the hot phrase detector 200 detects respective trigger events 260 indicating the presence of the trigger word in the audio data 202 and buffers the respective trigger events 260 in a buffer.
[0023] In the illustrated example, each respective trigger event 260 in the buffer indicates a respective confidence score 207 for a corresponding trigger word, and a respective timestamp 209 indicates when the corresponding trigger word was detected in the audio data 202. For example, when the trigger word confidence threshold is equal to 0.7, the respective trigger event 260 can be detected when the model 205 outputs a respective confidence score equal to 0.95 for the trigger word "send" at zero (0) milliseconds (ms), which indicates when the current fixed long time window 220 begins, the respective trigger event 260 can be detected when the model 205 outputs a respective confidence score equal to 0.8 for the trigger word "message" at 300 ms, and the respective trigger event 260 can be detected when the model 205 outputs a respective confidence score equal to 0.85 for the trigger word "say" at 1000 ms. Notably, the hot phrase detector 200 does not initiate a wake-up process in response to detecting the trigger event 260 for each individual trigger word.
[0024] The hot phrase detector 200 is further configured to execute a trigger word consolidation routine 280 each time the trigger word detection model 205 detects a respective trigger event 260. Here, the routine 280 is configured to determine whether a respective trigger event 260 is in the buffer for each other corresponding trigger word in the set of trigger words, and to determine a hot phrase confidence score 282 indicating the likelihood that the utterance spoken by the user contains the hot phrase 210 when the respective trigger event 260 is also in the buffer for each other corresponding trigger word in the set of trigger words. In some examples, the hot phrase detector 200 identifies a hot phrase in the audio data 202 when the hot phrase confidence score 282 satisfies a hot phrase confidence threshold.
[0025] The routine 280 can be configured to determine a hot phrase confidence score 282 based on the respective trigger word confidence scores 207 and respective timestamps 209 indicated by the respective trigger events 260 in the buffer for each corresponding trigger word in the set of trigger words. In practice, the respective trigger events 260 can include multiple respective timestamps 209 indicating when the trigger word confidence score 207 exceeds the trigger word confidence threshold, allowing for consecutive detections combined using multiple techniques. For example, the timestamp 209 associated with the highest trigger word confidence score 207 can be indicated by the trigger events 260 stored in the buffer. The step of executing the trigger word consolidation routine 280 can include executing a neural network-based model. The neural network-based model can include a sequence-based machine learning model, such as a model having a recurrent neural network (RNN) architecture. In another example, the step of executing the trigger word consolidation routine 280 includes executing a grammar- or discovery-based model. The routine 280 also considers sequences in which the trigger word is detected during the fixed long time window 220. That is, the sequence of the set of trigger words detected in the audio data 202 must match a predefined order associated with the hot phrase 210 in order to identify the hot phrase 210. For example, in the illustrated example, upon receiving a trigger event 260 indicating the detection of the trigger word "saying," routine 280 can use the respective timestamps 209 in the buffer to determine that the trigger word "message" was detected after the trigger word "send" and before the trigger word "say."
[0026] In some examples, the hot phrase confidence score 282 generated by the routine 280 is further based on the respective time duration between each pair of adjacent trigger words in the set of trigger words detected in the audio data. For example, the routine 280 can compare each respective time duration to a corresponding baseline expected time duration between adjacent pairs of trigger words for a particular phrase. That is, for the hot phrase "send <..> message that <..>", the baseline expected time duration between the trigger words "send" and "message" is less than the baseline expected time duration between the trigger words "message" and "that". The routine 280 may also constrain the hot phrase based on a maximum time duration between a particular pair of trigger words.
[0027] The grammar (e.g., target classes / trigger words) for the trigger word detection model 205 can be constructed manually or learned / trained. When learning, AED queries for a particular vertical or intent can be used. For example, a query transcription of a user speaking a command to dictate and send a message in a hands-free manner to represent a command to dictate a message and send the message to a recipient can be utilized for the trigger word detection model 205 to use to learn a minimum set of trigger words that cover a maximum portion of the query transcription for the send message command. That is, the minimum set of trigger words that cover a maximum portion of the transcription is associated with the trigger words that occur most frequently in the transcription. In another example, when constructing the trigger word detection model 205 to support a low power command to play music, a query transcription for a play music command can be obtained and a minimum set of trigger words that cover a maximum portion of the transcription in the obtained query transcription can be identified. In particular, the trigger word detection model 205 can be constructed on-device and / or on a per-user basis. As a result, the trigger word detection model 205 is constructed to detect personalized hot phrases spoken by one user and / or multiple users of a particular AED. Trigger word detection models for common / generic hot phrases can also be discovered on the server side and pushed to the AED population.
[0028] 3 is a flow chart of an example arrangement of operations for a method 300 of detecting hot phrases 210 in audio data 202 during a fixed long window 220 of the audio data 202. At operation 302, the method 300 includes receiving, at data processing hardware 10 of a user device 104 associated with the user 102, audio data 202 corresponding to an utterance 110 spoken by the user 102 and captured by the user device 104. The utterance 110 includes a command for the digital assistant 109 to perform an action. The user device 104 may include an assistant-enabled device (AED) that executes the digital assistant 109.
[0029] Operations 304, 306, 308 of the method 300 are performed during each of a plurality of fixed long duration windows 220 of the audio data 202. In operation 304, the method 300 includes determining, by the data processing hardware 10, using a hot phrase detector 200 configured to detect each trigger word in a set of trigger words associated with a hot phrase 210, whether any of the trigger words in the set of trigger words have been detected in the audio data 202 during the corresponding fixed long duration window 220. In operation 306, when one of the trigger words in the set of trigger words associated with a hot phrase 210 is detected in the audio data 202 during the corresponding fixed long duration window 220, the method 300 also includes determining, by the data processing hardware 10, whether each other trigger word in the set of trigger words associated with the hot phrase 210 has also been detected in the audio data. At operation 308, when each other trigger word in the set of trigger words is also detected in the audio data, the method 300 also includes identifying, by the data processing hardware, hot phrases in the audio data corresponding to the speech.
[0030] At operation 310, the method 300 also includes triggering an automatic speech recognizer (ASR) to perform speech recognition on the audio data when a hot phrase is identified in the audio data corresponding to the utterance by the data processing hardware 10. Here, the ASR can process sounds beginning when or before a first trigger word is detected to generate a transcript 120 for the utterance and determine whether each trigger word in the set of trigger words is found in the transcript 120.
[0031] A software application (i.e., a software resource) may refer to computer software that causes a computing device to perform a task. In some examples, a software application may be referred to as an "application," an "app," or a "program." Exemplary applications include, but are not limited to, system diagnostic applications, system management applications, system maintenance applications, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and gaming applications.
[0032] Non-transient memory may be a physical device used to store programs (e.g., sequences of instructions) or data (e.g., program state information) on a temporary or permanent basis for use by a computing device. Non-transient memory may be volatile and / or non-volatile addressable semiconductor memory. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electrically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), and disk or tape.
[0033] 4 is a schematic diagram of an exemplary computing device 400 that can be used to implement the systems and methods described in this document. The computing device 400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The components shown here, their connections and relationships, and their functions are intended to be exemplary only and are not intended to limit the implementation of the inventions described and / or claimed in this document.
[0034] Computing device 400 includes a processor 410, a memory 420, a storage device 430, a high-speed interface / controller 440 connected to memory 420 and a high-speed expansion port 450, and a low-speed interface / controller 460 connected to a low-speed bus 470 and storage device 430. Each of components 410, 420, 430, 440, 450, and 460 are interconnected using various buses and may be mounted on a common motherboard or in other manners as appropriate. Processor 410 may process instructions for execution within computing device 400, including instructions stored in memory 420 or storage device 430, to display graphical information for a graphical user interface (GUI) on an external I / O device, such as a display 480 coupled to high-speed interface 440. In other implementations, multiple processors and / or multiple buses may be used, along with multiple memories and multiple types of memories as appropriate. Multiple computing devices 400 may also be connected (e.g., as a bank of servers, a group of blade servers, or a multiprocessor system) with each device achieving a portion of the required operations.
[0035] The memory 420 stores information non-transiently within the computing device 400. The memory 420 may be a computer-readable medium, a volatile memory unit, or a non-volatile memory unit. The non-transient memory 420 may be a physical device used to store programs (e.g., sequences of instructions) or data (e.g., program state information) on a temporary or permanent basis for use by the computing device 400. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electrically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), as well as disks or tapes.
[0036] The storage device 430 is capable of providing mass storage for the computing device 400. In some implementations, the storage device 430 is a computer-readable medium. In various different implementations, the storage device 430 may be a floppy disk device, a hard disk device, an optical disk device, or an array of devices including a tape device, a flash memory or other similar solid-state memory device, or a device in a storage area network or other configuration. In further implementations, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer or machine-readable medium, such as the memory 420, the storage device 430, or a memory on the processor 410.
[0037] While the high-speed controller 440 manages bandwidth-intensive operations for the computing device 400, the low-speed controller 460 manages lower bandwidth-intensive operations. Such load arrangements are merely exemplary. In some implementations, the high-speed controller 440 is coupled to the memory 420, the display 480 (e.g., through a graphics processor or accelerator), and a high-speed expansion port 450 that can accept various expansion cards (not shown). In some implementations, the low-speed controller 460 is coupled to the storage device 430 and the low-speed expansion port 490. The low-speed expansion port 490, which can include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices such as a keyboard, a pointing device, a scanner, etc., or a network device such as a switch or router, for example, through a network adapter.
[0038] The computing device 400 can be implemented in a number of different ways, as shown in the figure. For example, the computing device 400 can be implemented as a standard server 400a, or multiple times in a group of such servers 400a, as a laptop computer 400b, or as part of a rack server system 400c.
[0039] Various implementations of the systems and techniques described herein may be realized in digital electrical and / or optical circuitry, integrated circuits, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor that may be coupled to receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device, either dedicated or general purpose.
[0040] These computer programs (also known as programs, software, software applications, or code) contain machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, apparatus, and / or device (e.g., magnetic disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0041] The processes and logic flows described herein can be implemented by one or more programmable processors, also referred to as data processing hardware, that execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be implemented by special purpose logic circuitry, such as, for example, an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). Processors suitable for executing computer programs include, by way of example, both general purpose and special purpose microprocessors, and any one or more processors of any type of digital computer. Generally, a processor receives instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices for storing data, such as, for example, a magnetic disk, a magneto-optical disk, or an optical disk, or be operatively coupled to receive data from or transmit data to the mass storage device or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks, by way of example. The processor and memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0042] To achieve interaction with a user, one or more aspects of the present disclosure can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen, for displaying information to the user, and optionally a keyboard and a pointing device, e.g., a mouse or trackball, for allowing the user to provide input to the computer. Other types of devices can be used to achieve interaction with the user as well. For example, feedback to the user can be any form of sensor feedback, e.g., visual feedback, audio feedback, or tactile feedback, and input from the user can be received in any form, including acoustic, voice, or tactile input. Additionally, the computer can interact with the user by, for example, sending a web page to a web browser on the user's client device in response to a request received from the web browser, sending documents to a device used by the user, and receiving documents from the device.
[0043] Although several implementations have been described, it will be understood that various modifications can be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims. [Explanation of symbols]
[0044] 10 Data Processing Hardware 12 Memory Hardware 16 Microphones 100 Systems 102 users 104 User Devices, Assistant-Enabled Devices, AEDs 109 Digital Assistant 110 utterances 116 Automatic speech recognizer, ASR 120 Transcription 180 Query Processing 200 Hot Phrase Detector 202 Audio Data 205 Trigger Word Detection Model 207 Trigger Word Confidence Score 209 Timestamp 210 Hot Phrases 220 Fixed Long Window 222 parts 250 Hot Phrase Events 260 Trigger Event 280 Trigger Word Integration Routine 282 Hot Phrase Confidence Score 300 ways 400 computing devices 400a Standard Server 400b Laptop Computer 400c Rack Server System 410 Processor 420 Memory 430 Storage Devices 440 High Speed Interface / Controller 450 High Speed Expansion Port 460 Low Speed Interface / Controller 470 Slow Bus 480 Display 490 Low Speed Expansion Port
Claims
1. Receiving audio data (202) at a data processing hardware (10) of a user device (104) associated with a user, the audio data (202) corresponding to an utterance (110) spoken by the user and captured by the user device (104), the utterance (110) including a command for a digital assistant (109) to perform an action; During each of a plurality of fixed long time windows (220) of the audio data (202), determining, by said data processing hardware (10), using a hot phrase detector (200) configured to detect each trigger word in a set of trigger words associated with a hot phrase (210), whether any of said trigger words in said set of trigger words have been detected in said audio data (202) during said corresponding fixed long time window (220); determining, by the data processing hardware (10), when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220), whether each other trigger word in the set of trigger words associated with the hot phrase (210) is also detected in the audio data (202); and identifying, by said data processing hardware (10), said hot phrase (210) in said audio data (202) corresponding to said utterance (110) when each other trigger word in said set of trigger words is also detected in said audio data (202); triggering an automatic speech recognizer (116) (ASR) to perform speech recognition on the audio data (202) when the hot phrase (210) is identified in the audio data (202) corresponding to the utterance (110) by the data processing hardware (10); A method comprising: when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220), determining whether a respective trigger event (260) for each other corresponding trigger word in said set of trigger words is also buffered in memory hardware (12) in communication with said data processing hardware (10); determining a hot phrase confidence score (282) indicative of the likelihood that the utterance (110) spoken by the user contains the hot phrase (210) when the respective trigger event (260) for each other corresponding trigger word in the set of trigger words is also buffered in the memory hardware (12); The method (300), further comprising: executing a trigger word consolidation routine (280), wherein identifying the hot phrase (210) comprises identifying the hot phrase (210) when the hot phrase confidence score (282) satisfies a hot phrase confidence threshold.
2. the user device (104) is in a low power state when the user speaks the utterance (110); 2. The method of claim 1, wherein the utterances (110) spoken by the user do not include a predefined hot word configured to trigger the user device (104) to wake up from the low power state.
3. The step of determining whether any of the trigger words in the set of trigger words have been detected in the audio data (202) comprises, for each trigger word in the set of trigger words: using the hot phrase detector (200) to generate respective trigger word confidence scores (207) indicative of the likelihood that the corresponding trigger words are present in the audio data (202) during the corresponding fixed long time window (220); if the respective trigger word confidence score (207) satisfies a trigger word confidence threshold, detecting the corresponding trigger word in the audio data (202) during the corresponding fixed long time window (220); buffering in said memory hardware (12) said audio data (202) and respective trigger events (260) for said corresponding trigger words detected in said audio data (202), each said trigger event (260) indicating said respective trigger word confidence score (207) and a respective timestamp indicating when said corresponding trigger word was detected in said audio data (202); 3. The method (300) of claim 1 or 2, comprising:
4. 4. The method (300) of claim 3, wherein the trigger word consolidation routine is configured to determine the hot phrase confidence score (282) for each corresponding trigger word in the set of trigger words based on the respective trigger word confidence score (207) and the respective timestamp indicated by each detection event buffered in the memory hardware (12).
5. 5. The method (300) of any one of claims 1 to 4, wherein executing the trigger word integration routine (280) comprises executing a neural network based model.
6. The method (300) of any one of claims 1 to 5, wherein executing the trigger word integration routine (280) comprises executing a discovery-based model.
7. when each other trigger word in said set of trigger words is also detected in said audio data (202); determining, by said data processing hardware (10), whether a sequence of said set of trigger words detected in said audio data (202) matches a predefined order associated with said hot phrases (210); Further comprising:
7. The method (300) of any one of claims 1 to 6, wherein identifying the hot phrase (210) in the audio data (202) corresponding to the utterance (110) comprises identifying the hot phrase (210) when the sequence of the set of trigger words detected in the audio data (202) matches the predefined order associated with the hot phrase (210). receiving, at data processing hardware (10) of a user device (104) associated with a user, audio data (202) corresponding to an utterance (110) spoken by the user and captured by the user device (104), the utterance (110) including a command for a digital assistant (109) to perform an action; During each of a plurality of fixed long time windows (220) of the audio data (202), determining, by said data processing hardware (10), using a hot phrase detector (200) configured to detect each trigger word in a set of trigger words associated with a hot phrase (210), whether any of said trigger words in said set of trigger words have been detected in said audio data (202) during said corresponding fixed long time window (220); determining, by the data processing hardware (10), when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220), whether each other trigger word in the set of trigger words associated with the hot phrase (210) is also detected in the audio data (202); and identifying, by said data processing hardware (10), said hot phrase (210) in said audio data (202) corresponding to said utterance (110) when each other trigger word in said set of trigger words is also detected in said audio data (202); triggering an automatic speech recognizer (116) (ASR) to perform speech recognition on the audio data (202) when the hot phrase (210) is identified in the audio data (202) corresponding to the utterance (110) by the data processing hardware (10); A method comprising: determining, by said data processing hardware (10), a respective time period between each pair of adjacent trigger words in said set of trigger words detected in said audio data (202); A method (300), wherein identifying the hot phrases (210) in the audio data (202) corresponding to the utterance (110) is based on the respective time periods between each pair of adjacent trigger words. receiving, at data processing hardware (10) of a user device (104) associated with a user, audio data (202) corresponding to an utterance (110) spoken by the user and captured by the user device (104), the utterance (110) including a command for a digital assistant (109) to perform an action; During each of a plurality of fixed long time windows (220) of the audio data (202), determining, by said data processing hardware (10), using a hot phrase detector (200) configured to detect each trigger word in a set of trigger words associated with a hot phrase (210), whether any of said trigger words in said set of trigger words have been detected in said audio data (202) during said corresponding fixed long time window (220); determining, by the data processing hardware (10), when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220), whether each other trigger word in the set of trigger words associated with the hot phrase (210) is also detected in the audio data (202); and identifying, by said data processing hardware (10), said hot phrase (210) in said audio data (202) corresponding to said utterance (110) when each other trigger word in said set of trigger words is also detected in said audio data (202); triggering an automatic speech recognizer (116) (ASR) to perform speech recognition on the audio data (202) when the hot phrase (210) is identified in the audio data (202) corresponding to the utterance (110) by the data processing hardware (10); A method comprising: Triggering the ASR (116) to perform speech recognition on the audio data (202), generating a transcription (120) of the speech (110) by processing the audio data (202); determining whether each trigger word in the set of trigger words associated with the hot phrase (210) is recognized in the transcription (120) of the utterance (110); performing a query interpretation on the transcription (120) to identify that the transcription (120) includes the command for the digital assistant (109) to perform the action when each trigger word in the set of trigger words associated with the hot phrase (210) is found in the transcription (120); A method (300).
10. The step of generating the transfer (120) comprises: rewinding the audio data (202) buffered in memory hardware (12) in communication with the data processing hardware (10) when or before a first trigger word in the set of trigger words is detected in the audio data (202); processing the audio data (202) beginning at or before the first trigger word in a sequence of trigger words to generate the transcription (120) of the utterance (110); 10. The method (300) of claim 9, comprising:
11. 11. The method (300) of claim 9 or 10, wherein the transcription (120) includes one or more other words unrelated to the hot phrase (210) between a first trigger word in the set of trigger words found in the transcription (120) and a last trigger word in the set of trigger words found in the transcription (120).
12. 12. The method (300) of any one of claims 1 to 11, wherein the hot phrase detector (200) includes a trigger word detection model (205) trained to detect each trigger word in the set of trigger words associated with the hot phrase (210).
13. Data processing hardware (10), and a memory hardware (12) in communication with the data processing hardware (10), the memory hardware (12) being configured to, when executed on the data processing hardware (10), cause the data processing hardware (10) to: Receiving audio data (202) corresponding to speech (110) spoken by a user and captured by a user device (104) associated with the user, the speech (110) including a command for the digital assistant (109) to perform an action; During each of a plurality of fixed long time windows (220) of the audio data (202), determining whether any of the trigger words in a set of trigger words associated with a hot phrase (210) have been detected in the audio data (202) during the corresponding fixed long time window (220), using a hot phrase detector (200) configured to detect each trigger word in a set of trigger words associated with a hot phrase (210); determining whether each other trigger word in the set of trigger words associated with the hot phrase (210) is also detected in the audio data (202) when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220); and identifying said hot phrase (210) in said audio data (202) corresponding to said utterance (110) when each other trigger word in said set of trigger words is also detected in said audio data (202); triggering an automatic speech recognizer (116) (ASR) to perform speech recognition on the audio data (202) when the hot phrase (210) is identified in the audio data (202) corresponding to the utterance (110); An operation comprising: when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220); determining whether a respective trigger event (260) for each other corresponding trigger word in said set of trigger words is also buffered in said memory hardware (12); determining a hot phrase confidence score (282) indicative of the likelihood that the utterance (110) spoken by the user contains the hot phrase (210) when the respective trigger event (260) is also buffered in memory hardware (12) in communication with the data processing hardware (10) for each other corresponding trigger word in the set of trigger words; and memory hardware (12) storing instructions for performing operations including executing a trigger word consolidation routine (280) configured such that identifying the hot phrase (210) includes identifying the hot phrase (210) when the hot phrase confidence score (282) satisfies a hot phrase confidence threshold. A system (100) comprising:
14. the user device (104) is in a low power state when the user speaks the utterance (110); 14. The system (100) of claim 13, wherein the utterance (110) spoken by the user does not include a predefined hotword configured to trigger the user device (104) to wake up from the low power state.
15. The step of determining whether any of the trigger words in the set of trigger words have been detected in the audio data (202) comprises, for each trigger word in the set of trigger words: using the hot phrase detector (200) to generate respective trigger word confidence scores (207) indicative of the likelihood that the corresponding trigger words are present in the audio data (202) during the corresponding fixed long time window (220); if the respective trigger word confidence score (207) satisfies a trigger word confidence threshold, detecting the corresponding trigger word in the audio data (202) during the corresponding fixed long time window (220); buffering in said memory hardware (12) said audio data (202) and respective trigger events (260) for said corresponding trigger words detected in said audio data (202), each said trigger event (260) indicating said respective trigger word confidence score (207) and a respective timestamp indicating when said corresponding trigger word was detected in said audio data (202); 15. The system (100) of claim 13 or 14, comprising:
16. 16. The system (100) of claim 15, wherein the trigger word integration routine is configured to determine the hot phrase confidence score (282) for each corresponding trigger word in the set of trigger words based on the respective trigger word confidence score (207) and the respective timestamp indicated by the respective detection event buffered in the memory hardware (12).
17. 17. The system (100) of any one of claims 13 to 16, wherein executing the trigger word integration routine (280) comprises executing a neural network based model.
18. 18. The system (100) of any one of claims 13 to 17, wherein executing the trigger word integration routine (280) comprises executing a discovery-based model.
19. The operation, when each other trigger word in said set of trigger words is also detected in said audio data (202); determining whether the sequence of the set of trigger words detected in the audio data (202) matches a predefined order associated with the hot phrases (210); 19. The system (100) of any one of claims 13 to 18, wherein identifying the hot phrase (210) in the audio data (202) corresponding to the utterance (110) comprises identifying the hot phrase (210) when the sequence of the set of trigger words detected in the audio data (202) matches the predefined order associated with the hot phrase (210).
20. Data processing hardware (10), and a memory hardware (12) in communication with the data processing hardware (10), the memory hardware (12) being configured to, when executed on the data processing hardware (10), cause the data processing hardware (10) to: Receiving audio data (202) corresponding to speech (110) spoken by a user and captured by a user device (104) associated with the user, the speech (110) including a command for the digital assistant (109) to perform an action; During each of a plurality of fixed long time windows (220) of the audio data (202), determining whether any of the trigger words in a set of trigger words associated with a hot phrase (210) have been detected in the audio data (202) during the corresponding fixed long time window (220), using a hot phrase detector (200) configured to detect each trigger word in a set of trigger words associated with a hot phrase (210); determining whether each other trigger word in the set of trigger words associated with the hot phrase (210) is also detected in the audio data (202) when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220); and identifying said hot phrase (210) in said audio data (202) corresponding to said utterance (110) when each other trigger word in said set of trigger words is also detected in said audio data (202); triggering an automatic speech recognizer (116) (ASR) to perform speech recognition on the audio data (202) when the hot phrase (210) is identified in the audio data (202) corresponding to the utterance (110); An operation comprising: determining a respective time period between each pair of adjacent trigger words in the set of trigger words detected in the audio data (202); and memory hardware (12) storing instructions for performing an action, the step of identifying said hot phrases (210) in said audio data (202) corresponding to said utterance (110) being based on said respective time periods between each pair of adjacent trigger words. A system (100) comprising:
21. Data processing hardware (10), and a memory hardware (12) in communication with the data processing hardware (10), the memory hardware (12) being configured to, when executed on the data processing hardware (10), cause the data processing hardware (10) to: Receiving audio data (202) corresponding to speech (110) spoken by a user and captured by a user device (104) associated with the user, the speech (110) including a command for the digital assistant (109) to perform an action; During each of a plurality of fixed long time windows (220) of the audio data (202), determining whether any of the trigger words in a set of trigger words associated with a hot phrase (210) have been detected in the audio data (202) during the corresponding fixed long time window (220), using a hot phrase detector (200) configured to detect each trigger word in a set of trigger words associated with a hot phrase (210); determining whether each other trigger word in the set of trigger words associated with the hot phrase (210) is also detected in the audio data (202) when one of the trigger words in the set of trigger words associated with the hot phrase (210) is detected in the audio data (202) during the corresponding fixed long time window (220); and identifying said hot phrase (210) in said audio data (202) corresponding to said utterance (110) when each other trigger word in said set of trigger words is also detected in said audio data (202); triggering an automatic speech recognizer (116) (ASR) to perform speech recognition on the audio data (202) when the hot phrase (210) is identified in the audio data (202) corresponding to the utterance (110); An operation comprising: Triggering the ASR (116) to perform speech recognition on the audio data (202), generating a transcription (120) of the speech (110) by processing the audio data (202); determining whether each trigger word in the set of trigger words associated with the hot phrase (210) is recognized in the transcription (120) of the utterance (110); performing a query interpretation on the transcription (120) to identify that the transcription (120) includes the command for the digital assistant (109) to perform the action when each trigger word in the set of trigger words associated with the hot phrase (210) is found in the transcription (120); (12) Memory hardware for storing instructions for performing operations, including A system (100) comprising:
22. The step of generating the transfer (120) comprises: rewinding the audio data (202) buffered in memory hardware (12) in communication with the data processing hardware (10) when or before a first trigger word in the set of trigger words is detected in the audio data (202); processing the audio data (202) beginning at or before the first trigger word in a sequence of trigger words to generate the transcription (120) of the utterance (110); 22. The system (100) of claim 21, comprising:
23. 23. The system (100) of claim 21 or 22, wherein the transcription (120) includes one or more other words unrelated to the hot phrase (210) between a first trigger word in the set of trigger words found in the transcription (120) and a last trigger word in the set of trigger words found in the transcription (120).
24. 24. The system (100) of any one of claims 13 to 23, wherein the hot phrase detector (200) includes a trigger word detection model (205) trained to detect each trigger word in the set of trigger words associated with the hot phrase (210).
Citation Information
Patent Citations
Speech processing system
JP2006215499A
Key phrase detection
US20150095027A1
Time asynchronous spoken intent detection
US20190266240A1
Information processing device and information processing method
WO2019239656A1
