Submodels for Neural Context Bias via Attention and Embedding Spaces

Sub-models in ASR systems adapt base models to user contexts, improving accuracy and flexibility while minimizing computational costs and manual intervention.

JP7804829B2Active Publication Date: 2026-01-22GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025502665
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-07-18
Filing Date
2023-05-18
Publication Date
2026-01-22
Estimated Expiration
2043-05-18

AI Technical Summary

Technical Problem

Existing automatic speech recognition (ASR) models are inflexible and computationally expensive to adapt to different user contexts, leading to inaccurate speech recognition due to lack of contextual awareness and difficulty in updating or retraining.

Method used

Implementing sub-models that can be trained independently to bias a base ASR model based on context, allowing the base model to remain stable while adapting to specific domains through context indicators, eliminating the need for extensive retraining.

Benefits of technology

Enhances speech recognition accuracy by tailoring outputs to specific contexts, reducing computational overhead, and maintaining model stability without manual intervention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007804829000004
    Figure 0007804829000004
  • Figure 0007804829000005
    Figure 0007804829000005
  • Figure 0007804829000006
    Figure 0007804829000006
Patent Text Reader

Abstract

A method (700) for training a sub-model (215) for contextual biasing for speech recognition includes obtaining a base speech recognition model (200) trained with unbiased data (510). The method includes obtaining a set of training utterances representing a particular domain, where each training utterance in the set of training utterances (560) includes audio data (561) characterizing the training utterance and a ground truth transcription (563) of the training utterance. The method further includes, for each corresponding training utterance in the set of training utterances, determining a corresponding document embedding (567) from the ground truth transcription of the corresponding training utterance using an embedding encoder (515). The method includes training the sub-model for biasing the base speech recognition model to recognize speech in the particular domain using the corresponding document embedding determined from the ground truth transcription of the set of training utterances.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to training sub-models to contextually bias the results of a base machine learning model using an embedding space. [Background technology]

[0002] Automatic speech recognition (ASR) is a category of natural language processing (NLP) that involves processing audio, including human speech. ASR models are often used to recognize spoken language and / or convert spoken language to text. One method of generating an ASR model is to use machine learning to train the model on a large dataset. Due to the amount of data used for training and the amount of time it takes to train, ASR models are typically generalized for many domains and users, which reduces the flexibility of the model. Attempting to make an ASR model more flexible, such as by using several smaller models, can be computationally expensive (e.g., due to redundancy in training multiple models) or can produce distorted results (e.g., models with less training data are less robust). Summary of the Invention

[0003] One aspect of the present disclosure provides a computer-implemented method for training a sub-model for biasing speech recognition results based on context. When executed by data processing hardware, the computer-implemented method causes the data processing hardware to perform operations including obtaining a base speech recognition model trained with unbiased data. The operations include obtaining a set of training utterances representing a particular domain, each training utterance in the set of training utterances including audio data characterizing the training utterance and a ground truth transcription of the training utterance. The operations further include, for each corresponding training utterance in the set of training utterances, determining a corresponding document embedding from the ground truth transcription of the corresponding training utterance using an embedding encoder. The operations include training a sub-model for biasing the base speech recognition model to recognize speech in the particular domain using the corresponding document embedding determined from the ground truth transcription of the set of training utterances.

[0004] Implementations of the present disclosure may include one or more of the following optional features. In some implementations, training the sub-model includes, for each corresponding training utterance in the set of training utterances, processing audio data characterizing the training utterance to generate predicted speech recognition results using a base speech recognition model configured to receive a sub-model output of the sub-model based on a corresponding document embedding determined from a ground truth transcription of the corresponding training utterance, and determining a supervised loss term based on the predicted speech recognition results and the ground truth transcription of the corresponding training utterance. In these implementations, training the sub-model further includes, for each corresponding training utterance in the set of training utterances, updating parameters of the sub-model based on the supervised loss term to cause the sub-model to learn how to bias the base speech recognition model to recognize speech in a particular domain. In these implementations, the operation may further include projecting the one-hot vector onto the phrase set embedding in the embedding space. In these implementations, the sub-model output of the corresponding document embedding-based sub-model may further be based on a history of predicted speech recognition results produced by the base speech recognition model in one or more previous output steps.

[0005] Parameters of the base speech recognition model may be fixed while training the sub-model. In some implementations, the operations further include, for at least one training utterance in the set of training utterances, converting a ground truth transcription of the corresponding at least one training utterance using a text-to-speech (TTS) system to generate audio data including a corresponding synthetic speech representation of the corresponding at least one training utterance. In these implementations, the ground truth transcription of the corresponding at least one training utterance may be generated using a background language model and an in-domain language model trained with transcribed speech utterances related to a particular domain. In other implementations, the operations further include, for at least one training utterance in the set of training utterances, applying data augmentation to audio data characterizing the at least one training utterance. In these implementations, the applied data augmentation may include at least one of adding noise, adding reverberation, or manipulating timing.

[0006] The sub-model may include one or more neural network layers. Alternatively, the sub-model may be disposed in a layer of the base speech recognition model. In some implementations, the base speech recognition model includes an encoder and a decoder, and the sub-model is disposed between two layers of the encoder of the base speech recognition model.

[0007] In some implementations, the operations further include, after training the sub-models, deploying the base speech recognition model and the trained sub-models for execution on a user device, the user device being configured to receive a speech recognition request including audio data characterizing speech captured in streaming audio. In these implementations, the user device is configured to determine that the speech recognition request includes a context indicator indicative of a particular domain. In these implementations, the user device is further configured to use the trained sub-models to bias the base speech recognition model toward the particular domain, and to generate a transcription of the speech by processing the audio data using the biased base speech recognition model, where the transcription is biased toward one or more terms in the particular domain.

[0008] In other embodiments, the operations further include receiving, from a user device in communication with the data processing hardware, a speech recognition request including audio data characterizing speech captured by the user device in streaming audio after training the sub-model. In these embodiments, the operations further include determining that the speech recognition request includes a context indicator indicating a particular domain. In these embodiments, the operations further include using the trained sub-model to bias a base speech recognition model toward the particular domain, and generating a transcription of the speech by processing the audio data using the biased base speech recognition model, where the transcription is biased toward one or more terms in the particular domain.

[0009] Another aspect of the present disclosure provides a system for training a sub-model for biasing speech recognition results based on context. The system includes data processing hardware and memory hardware in communication with the data processing hardware. The memory hardware stores instructions that, when executed by the data processing hardware, cause the data processing hardware to perform operations. The operations include obtaining a base speech recognition model trained with unbiased data. The operations include obtaining a set of training utterances representing a particular domain, each training utterance in the set of training utterances including audio data characterizing the training utterance and a ground truth transcription of the training utterance. The operations further include, for each corresponding training utterance in the set of training utterances, determining a corresponding document embedding from the ground truth transcription of the corresponding training utterance using an embedding encoder. The operations include training a sub-model for biasing the base speech recognition model to recognize speech in the particular domain using the corresponding document embedding determined from the ground truth transcription of the set of training utterances.

[0010] This aspect may include one or more of the following optional features. In some implementations, training the sub-model includes, for each corresponding training utterance in the set of training utterances, processing audio data characterizing the training utterance to generate predicted speech recognition results using a base speech recognition model configured to receive a sub-model output of the sub-model based on a corresponding document embedding determined from a ground truth transcription of the corresponding training utterance, and determining a supervised loss term based on the predicted speech recognition results and the ground truth transcription of the corresponding training utterance. In these implementations, training the sub-model further includes, for each corresponding training utterance in the set of training utterances, updating parameters of the sub-model based on the supervised loss term to cause the sub-model to learn how to bias the base speech recognition model to recognize speech in a particular domain. In these implementations, the operations may further include projecting the one-hot vector onto the phrase set embedding in the embedding space. In these implementations, the sub-model output of the corresponding document embedding-based sub-model may further be based on a history of predicted speech recognition results produced by the base speech recognition model in one or more previous output steps.

[0011] Parameters of the base speech recognition model may be fixed while training the sub-model. In some implementations, the operations further include, for at least one training utterance in the set of training utterances, converting a ground truth transcription of the at least one corresponding training utterance using a text-to-speech (TTS) system to generate audio data including a corresponding synthetic speech representation of the corresponding at least one training utterance. In these implementations, the ground truth transcription of the corresponding at least one training utterance may be generated using a background language model and an in-domain language model trained with transcribed speech utterances related to a particular domain. In other implementations, the operations further include, for at least one training utterance in the set of training utterances, applying data augmentation to audio data characterizing the at least one training utterance. In these implementations, the applied data augmentation may include at least one of adding noise, adding reverberation, or manipulating timing.

[0012] The sub-model may include one or more neural network layers. Alternatively, the sub-model may be disposed in a layer of the base speech recognition model. In some implementations, the base speech recognition model includes an encoder and a decoder, and the sub-model is disposed between two layers of the encoder of the base speech recognition model.

[0013] In some implementations, the operations further include, after training the sub-model, deploying the base speech recognition model and the trained sub-model for execution on a user device, the user device being configured to receive a speech recognition request including audio data characterizing speech captured in streaming audio. In these implementations, the user device is configured to determine that the speech recognition request includes a context indicator indicative of a particular domain. In these implementations, the user device is further configured to use the trained sub-model to bias the base speech recognition model toward the particular domain, and to generate a transcription of the speech by processing the audio data using the biased base speech recognition model, where the transcription is biased toward one or more terms in the particular domain.

[0014] In other embodiments, the operations further include receiving, after training the sub-model, a speech recognition request from a user device in communication with the data processing hardware, the speech recognition request including audio data characterizing speech captured by the user device in streaming audio. In these embodiments, the operations further include determining that the speech recognition request includes a context indicator indicating a particular domain. In these embodiments, the operations further include using the trained sub-model to bias a base speech recognition model toward the particular domain, and generating a transcription of the speech by processing the audio data using the biased base speech recognition model, where the transcription is biased toward one or more terms in the particular domain.

[0015] The details of one or more embodiments 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 explanation of the drawings]

[0016] [Figure 1] FIG. 1 is a schematic diagram illustrating an example system for a context bias system including an automatic speech recognition (ASR) model. [Figure 2] FIG. 1 is a schematic diagram illustrating an ASR model for generating biased speech recognition results using sub-models. [Figure 3A] FIG. 1 is a schematic diagram illustrating an ASR model for generating biased speech recognition results using sub-models as residual adapter layers. [Figure 3B] FIG. 1 is a schematic diagram illustrating an ASR model using sub-models at the encoder layer to generate biased speech recognition results. [Figure 4A] FIG. 1 is a schematic diagram illustrating an ASR model that produces unbiased speech recognition results. [Figure 4B] FIG. 1 is a schematic diagram illustrating an ASR model that uses sub-models to produce biased speech recognition results. [Figure 5A] FIG. 1 is a schematic diagram illustrating an exemplary training scheme for an ASR model. [Figure 5B] FIG. 1 is a schematic diagram illustrating an example training scheme for sub-models used to bias speech recognition results output from an ASR model based on context. [Figure 6A] FIG. 1 is a schematic diagram illustrating an example of a text-to-speech (TTS) module and a data augmentation module for generating synthetic voice utterances. [Figure 6B] FIG. 1 is a schematic diagram illustrating a contrast unspoken text selection process for selecting unspoken text utterances used to train sub-models that bias speech recognition results. [Figure 7] 10 is a flowchart illustrating an exemplary arrangement of operations for a method for contextual biasing using sub-models. [Figure 8] FIG. 1 is a schematic diagram illustrating an example computing device that can be used to implement the systems and methods described herein. DETAILED DESCRIPTION OF THE INVENTION

[0017] Like reference symbols in the various drawings refer to like elements.

[0018] Automatic speech recognition (ASR) is a growing field of language processing with a wide variety of applications, from automatic speech translation and transcription to processing voice commands for computing devices. Recently, neural networks for machine learning have been shown to function well as the basis for ASR systems and models. Using machine learning techniques, ASR models can be trained on large training datasets containing speech audio samples to generate robust models for speech recognition. These ASR models are generally large because the more extensively a model is trained, the better its performance. However, using such large models has drawbacks. For example, applying a single model to a wide variety of users with different characteristics is disadvantageous. For example, a single ASR model may be built for the English language, even though there may be many different accents and colloquialisms across regions. As a result, the ASR model may not perform accurately for a particular group of users. Furthermore, due to its size, retraining or updating the model is difficult due to its computational cost. This can make the ASR model outdated and cause it to not perform well with new / emerging words / phrases (e.g., slang, new TV shows).

[0019] The lack of flexibility of large-scale ASR models hinders the potential of speech recognition because they may not perform well for a portion of the user base. In particular, these large-scale ASR models may not be able to take advantage of contextual messages that can help provide information about speech. As noted above, depending on the user's location, they may be able to provide information about accent or add / remove specific words or phrases that inform the ASR model's output. In another example, if an alarm is sounding from a smart device, the user is typically more likely to issue voice commands related to the alarm (e.g., "stop the alarm," "cancel," "snooze"). Current ASR models (e.g., large-scale or generic models) cannot use such contextual information to influence their output.

[0020] Traditional attempts to "individualize" ASR models based on context are difficult and can encounter problems during implementation. One technique for incorporating context information into an ASR model is by using several smaller ASR models, each relevant to a specific context or domain. However, training many smaller ASR models is computationally expensive, especially since much of the training is redundant across models. Furthermore, training a large number of models is time-consuming, as training each model from scratch can take weeks. Even if all ASR models are built and trained, some will likely perform poorly due to a lack of available training data. Managing and implementing a large number of models is also cumbersome. Another way to consider context information is to modify the ASR model to receive bias terms that influence the results. However, this typically involves significant manual intervention (e.g., when building user-domain-specific models) and can lead to critical oversights. In that case, normal traffic in the ASR model may over-trigger biased terms if they are present but not spoken or even uttered at all.

[0021] Embodiments of the present disclosure relate to a base ASR model that utilizes sub-models to bias the base ASR model based on context, so that the results or output of the ASR model are relevant to a specific context or domain. The sub-models include sets of parameters that can be added to or replaced from a general base ASR model. The sub-models can be loaded / enabled / disabled as needed, allowing for the use of an unbiased base ASR model, thereby eliminating the problem of critical omissions. In some examples, the base ASR model is trained, and then the parameters of the base ASR model are fixed during operation (i.e., inference). In this way, the base ASR model remains stable and can continue to function for general traffic or multiple domains. Meanwhile, when context information is available, the base ASR model can activate sub-models in response to the context information to bias speech recognition results toward terms relevant to the context information. One advantage of these embodiments is that the sub-models can be trained individually without the need to train or retrain a large base ASR model. Furthermore, sub-models can be trained in the embedding space, and contextual indices can be projected into the embedding space to activate parts of the sub-model that are relevant to the context. The base ASR model remains unchanged whether or not a sub-model is used, which eliminates concerns that use and / or updates will corrupt the model.

[0022] As used herein, unless otherwise specified, the terms "speech recognition system" and "speech recognition model" can refer to any combination of ASR system / model in which speech is recognized and processed by a computing device. As will become apparent below, the ASR models and techniques for training the ASR models and sub-models of this disclosure enable biasing speech recognition based on contextual information.

[0023] FIG. 1 illustrates a system 100 for sub-model training and context bias. The system 100 includes an automatic speech recognition (ASR) model 200, a sub-model 215, and an embedded encoder 565. The ASR model 200, using the sub-model 215, is configured to process a speech recognition request 105. The speech recognition request 105 includes input audio data 102 corresponding to an utterance 108 spoken by a speaker 104 and captured by a user device 110. The speech recognition request 105 may also include a context indicator 103. Using the audio data 102 and the context indicator 103, the ASR model 200 and the sub-model 215 generate or predict an unbiased speech recognition result 222 or a biased speech recognition result 224. The biased speech recognition result 224 is likely to include words or phrases related to a certain domain, and the ASR model 200 is biased toward that domain using the sub-model 215 (e.g., based on the context indicator 103). In some examples, the input audio data 102 includes an input spectrogram corresponding to the utterance 108. The context indicators 103 may indicate a particular domain among a plurality of different domains, each of which signifies or represents a respective context of the utterance 108. The sub-models 215 may be trained for some or all of the plurality of domains. In some implementations, the speech recognition results 222, 224 include probability density functions 226, 226A-B that represent the density of the probability of a term being recognized from the utterance 108.

[0024] Although not shown, an acoustic front end present in the user device 110 may convert the time-domain audio waveform of the utterance 108 captured via the microphone of the user device 110 into an input spectrogram 102 or other type or format of audio data 102. Additionally, the front end device may be configured to determine or obtain data representing context indicators 103 affecting the utterance 108 and / or other relevant information corresponding to the speaker 104 and / or the client device 110.

[0025] A user device 110 associated with a speaker 104 can capture utterances 108 spoken by the speaker 104 and provide corresponding input audio data 102 to the ASR model 200 as part of a speech recognition request 105. Additionally, the user device 110 may determine context indicators 103 to include in the speech recognition request 105. The user device 110 may include, but is not limited to, a smartphone, a tablet, a desktop / laptop computer, a smart speaker, a smart display, a smart appliance, an assistant-enabled wearable device (e.g., a smart watch, smart headphones, smart glasses, etc.), or a vehicle infotainment system. Alternatively, a remote server 112 may process the audio data 102 and any other additional data or metadata from the user device 110 to determine the context indicators 103.

[0026] The context-biasing system 100 may be distributed across multiple devices, such that the ASR model 200 resides on the user device 110 or on one of the remote systems 150 (also referred to herein as a cloud computing environment) that communicate with the user device 110 via the network 140. The remote system 150 may be a single computer or multiple computers, or may be a distributed system (e.g., a cloud environment) with scalable / elastic resources 152, including computing resources 154 (e.g., data processing hardware) and / or storage resources 156 (e.g., memory hardware). A data store 158 (i.e., a remote storage device) may be overlaid on the storage resources 146 to enable scalable use of the storage resources 146 by one or more user devices 110 or computing resources 154. The ASR model 200 and submodels 215 may execute on the remote system 150 or the user device 110. The sub-models 215 may be stored locally on the user device 110, or may be stored on a remote system (e.g., in the data store 158), or some combination therebetween.

[0027] The sub-model training and contextual bias system 100 implements a dynamic model including two or more component parts, or a model including a general base model (e.g., ASR model 200) and sub-models 215, to generate biased speech recognition results 224 based on a received speech recognition request 105. The ASR model 200 may be trained with a large set of speech data. Once trained, the ASR model 200 may be frozen so that the parameters of the ASR model 200 remain constant during operation. The ASR model 200 may be updated, retrained, or replaced as needed or when more training data becomes available.

[0028] The sub-model 215 can be trained using one or more sets of training utterances 560. Each set of training utterances 560 belongs to a particular domain among multiple domains. The training utterances 560 may include audio data 561 characterizing the training utterances 560 and a ground truth transcription 563 of the training utterances 560 (i.e., an accurate transcription of the audio data 561). The training utterances 560 may be stored, for example, in the data store 158 of the remote system 150. In some implementations, before providing the training utterances 560 to the sub-model 215, an embedding encoder 565 first processes the training utterances 560 to generate corresponding document embeddings 567 from the ground truth transcriptions 563 of the corresponding training utterances 560. The training process of the sub-model 215 is described in more detail below (FIG. 5B).

[0029] In some implementations, a single sub-model 215 is used to bias the ASR model 200 by activating specific parameters based on the context indicator 103 of the speech recognition request 105. For example, the context indicator 103 may be a one-hot vector indicating a specific domain versus multiple domains. In use, the one-hot vector of the context indicator 103 may be projected into the embedding space in which the sub-model 215 is trained, thereby allowing the sub-model 215 to activate one or more parameters corresponding to the embedding space (i.e., the specific domain indicated by the context indicator 103). If the speech recognition request 105 does not have a context indicator 103 or if the sub-model 215 has not been trained (or is not sufficiently trained) in the specific domain corresponding to the context indicator 103, the ASR model 200, in some examples, generates an unbiased speech recognition result 222. That is, the unbiased speech recognition result 222 is generated solely by the ASR model 200 and is not affected or influenced by the sub-model 215.

[0030] The context indicator 103 can be based on any signal or data that can be used to improve the accuracy of the biased speech recognition result 224. The context indicator 103 may also be based on information about the speaker 104. For example, the speaker 104 may have a particular dialect, native language, mannerisms, speaking style, stuttering, etc. Accordingly, the system 100 can train a sub-model 215 corresponding to the speaker 104, where the sub-model 215 biases / personalizes the ASR model 200 to make predictions that are specifically tailored to the speaker 104. In some implementations, the context indicator 103 includes a one-hot vector, and the system uses the context indicator 103 to activate a portion (i.e., one or more parameters) of the sub-model 215 (i.e., the portion of the sub-model 215 that corresponds to the speaker 104).

[0031] In some implementations, the context indicator 103 is based on information about the user device 110. For example, the user device 110 may include a smart device equipped with sensors such as a GPS, an accelerometer, a gyroscope, a microphone, a proximity sensor, a camera, etc. The context indicator 103 may indicate a domain associated with the user device 110, as inferred from one of the sensors. For example, the context indicator 103 may indicate the geographic location of the user device 110, as inferred from GPS data (with the user 104 explicitly consenting to sharing that geographic location, which can be disabled at any time). Here, the context indicator 103 may correspond to a more detailed geographic location (e.g., a city such as Chicago) or a more specific location (e.g., a gym). In either case, the sub-model 215 can bias the biased speech recognition results 224 toward a particular domain based on such location. Specifically, a context indicator 103 that identifies the location Chicago may activate a portion of sub-models 215 trained with data from users in that city, state, and / or region, which may be biased based on the speech accents or other characteristics of users in that region or the local idiosyncrasies of that region (e.g., restaurant, sports team, street names, etc.). As a result, sub-models 215 may bias ASR model 200 to generate biased speech recognition results 224 that are biased toward predictions that fit the domain. For example, biased speech recognition results 224 may increase the likelihood that ASR 200 predicts that utterance 108 includes mention of restaurants or streets located in Chicago.

[0032] Similarly, a context indicator 103 indicating that the speaker 104 is at a gym may activate a portion of the sub-model 215 trained based on audio from users exercising or in a similar location, where the audio may be affected by labored breathing or directed toward a particular word or phrase (e.g., voice instructions for operating a music player on a smart device). Thus, the sub-model 215 can take these contextual factors into account when processing the audio data 102 to bias the base ASR model 200 and generate biased speech recognition results 224.

[0033] In another example, the context indicator 103 may indicate a software application currently running on the user device 110, such as a music player application. In this example, to bias the ASR model 200 to recognize terms / phrases such as "next song" or "pause," the context indicator 103 activates a portion of the sub-model 215 that corresponds to the software application (e.g., music player) indicated by the context indicator 103. In another example, the sub-model 215 is generally trained for that type of application or domain. Thus, if the speaker 104 utters the utterance 108 "pause playback," the ASR model 200, biased by the sub-model 215, will generate a biased speech recognition result 224 that is biased toward results targeted at the music player compared to an unbiased speech recognition result 222 determined without activating the sub-model 215.

[0034] In some implementations, the context indicator 103 indicates that multiple domains are applicable to the utterance 108. In this scenario, a single sub-model 215 may bias the ASR model 200 to produce speech recognition results 224 that are biased toward each of the multiple domains. For example, when the speaker 104 is in a gym and a music player is running on the user device, the sub-model 215 may bias the output of the ASR model 200 toward each of these domains.

[0035] Output 190 can accept unbiased speech recognition results 222 and biased speech recognition results 224 generated by ASR model 200. In some examples, output 190 includes natural language understanding (NLU) that performs query interpretation on the speech recognition results. The NLU can further instruct downstream applications / services to perform actions based on the results. Output 190 can also include a user interface generator. The user interface generator is configured to display the speech recognition results as a transcription on the screen of user device 110 and / or other devices.

[0036] 1 is presented for illustrative purposes only and is not intended to be limiting. For example, while only a single instance of each component is shown, system 100 may include any number of components 110, 112, 140, 150, 200, 215, and 565. Additionally, while some components are shown as being within cloud computing environment 150, in some implementations, such components may be hosted locally at user device 110. Furthermore, in various implementations, some or all of components 112, 200, 215, and 565 may be hosted locally at user device 110, hosted remotely (e.g., within cloud computing environment 150), or some combination thereof.

[0037] Referring now to FIG. 2 , an exemplary ASR model 200 implements a sub-model 215 to generate biased speech recognition results 224 (e.g., a transcription and / or a probability density function 226 of an utterance 108 corresponding to audio data 102). Here, the ASR model 200 receives a speech recognition request 105 that includes audio data 102 and a context indicator 103. In this example, the sub-model 215 includes a single model trained with different inputs and contexts (i.e., multiple sets of training utterances 560) corresponding to different domains. The context indicator 103 may be a one-hot vector that indicates one or more specific domains corresponding to the context of the audio data 102. The one-hot vector may be concatenated and projected to a phrase set embedding before being sent to the sub-model 215. In some implementations, the one-hot vector is looked up in an embedding matrix before being projected to the phrase set embedding. Alternatively, the sub-model 215 may project the one-hot vector to a phrase set embedding. The sub-model 215 can then activate one or more parameters corresponding to one or more particular domains indicated by the context index 103 based on the phrase set embedding to process the audio data 102. If the speech recognition request 105 does not include a context index 103 or if the context index 103 is not applicable to the sub-model 215 (i.e., if the sub-model is not trained in the embedding space corresponding to the context index 103), the ASR model 200 processes the audio input 102 without activating or enabling the sub-model 215 to produce unbiased speech recognition results 222 (FIG. 1).

[0038] The sub-model 215 can be implemented to bias the output of the ASR model 200 in various ways. FIG. 3A shows a schematic diagram 300a of the ASR model 200 for generating the biased speech recognition result 224 using the sub-model 215 implemented as a residual adapter layer. The ASR model 200 can be a recurrent neural network (RNN). The recurrent neural network (RNN) includes an encoder 310 configured to encode the input audio data 102 (and / or audio data 561 or training utterances 560) into an encoded output 312 (e.g., a hidden feature representation including a series of vectors) and a decoder 320 configured to decode the encoded output 312 into the biased speech recognition result 224. Typically, the encoded output 312 is sent directly to the decoder 320 to generate the biased speech recognition result 224. However, in this example, the sub-model 215 operates in parallel with processing the speech recognition request 105. The sub-model 215 may then generate a sub-model output 325 based on the received audio input 102 of the speech recognition request 105. The ASR model 200 may merge the sub-model output 325 with the encoded output 312 to generate a biased encoded output 314, which is sent to the decoder 320.

[0039] In another example, FIG. 3B shows a schematic diagram 300b of a submodel 215 implemented between layers of an encoder 310. The encoder 310 can include several components 360, and the submodel 215 can be disposed between layers of the components 360 such that the encoder 310 generates a biased encoded output 319. The encoder components 360 can include a stack of multi-head attention blocks (i.e., conformer blocks), which can include a conformer or a transformer. In some implementations, each multi-head attention block includes a multi-head attention mechanism. The encoder 310 can include a stack of long short-term memories (LSTMs) instead of multi-head attention blocks. The decoder 320 can receive the biased encoded output 319 and generate a biased speech recognition result 224.

[0040] 3A and 3B are for illustrative purposes only and are not intended to be limiting. The ASR model 200 and the sub-model 215 may include any suitable structure / architecture for performing speech recognition in response to the context indicators 103 and generating biased speech recognition results. Furthermore, the sub-model 215 and the ASR model 200 may function in any suitable combination to generate the biased speech recognition result 224. For example, the sub-model 215 may be located in any suitable location within the architecture of the ASR model 200. For example, the sub-model 215 may be deployed within a layer of the ASR model 200, e.g., as a residual adapter layer, a tensor, an encoder / decoder layer, a predictive network, or a combination network. Alternatively, the sub-model 215 and the ASR model 200 may generate outputs independently of each other, and their results may be combined by the ASR model 200 or other suitable components of the system to determine the biased speech recognition result 224. Notably, when the sub-model 215 is disabled from the original fixed state of the ASR model 200, the ASR model 200 remains unchanged. That is, when the sub-model 215 is disabled (e.g., due to the absence of the context indicator 103), the ASR model 200 produces unbiased speech recognition results 222 that are not affected by the sub-model 215.

[0041] 4A shows a schematic diagram 400a of an ASR model 200 generating a first probability density function 226, 226A corresponding to an unbiased speech recognition result 222. Here, a speaker 104 utters an utterance 108 (“Pause playback”) that is captured by a user device 110. The user device 110 sends a speech recognition request 105 (including an audio input 102 characterizing the utterance 108) to the ASR model 200. The ASR model 200 processes the audio input 102 to generate an unbiased speech recognition result 222. In some implementations, the ASR model 200 determines whether the speech recognition request 105 includes a context indicator 103 before proceeding to generate the unbiased speech recognition result 222 (e.g., the first probability density function 226A). In this example, the ASR model 200 predicts that the audio input 102 contains the phrase "pause playback" with a relatively low probability 410, making it unlikely that the utterance 108 will be transcribed accurately.

[0042] 4B shows a schematic diagram 400b of another exemplary ASR model 200 that uses sub-models 215 to generate second probability density functions 226, 226B corresponding to biased speech recognition results 224. As in FIG. 4A, a speaker 104 utters an utterance 108 (“Pause playback”) that is captured by a user device 110. The utterance 108 is then included in a speech recognition request 105 as audio input 102 that characterizes the utterance 108 to the ASR model 200. Here, the speech recognition request 105 includes a context indicator 103. In this example, the context indicator 103 corresponds to a music player application running on the user device 110. The ASR model 200 activates a portion of the sub-models 215 that corresponds to the music player domain, and thus the output of the ASR model 200 is biased toward that domain. For example, submodel 215 and subsequently ASR model 200 may be biased toward words or phrases related to a music player, such as "stop," "play," "pause," artist names, song names, etc. ASR model 200 generates biased speech recognition results 224, as indicated by probability density function 226B. As shown, ASR model 200 predicts that audio input 102 contains the phrase "pause playback" with a high probability 412 because the bias provided by submodel 215 has "shifted" probability density function 226B relative to probability density function 226A ( FIG. 4A ) toward terms defined by the domain of submodel 215. In some implementations, output 224 is a transcription of audio data 102, where the transcription is biased toward a particular domain indicated by context indicator 103 (i.e., words in the transcription are more likely to belong to the particular domain).

[0043] That is, biased speech recognition results 224 differ from unbiased speech recognition results 222. For example, for an audio input 102 in which probability density function 226A has high confidence for a single word or term, probability density function 226B may have even higher confidence for that single word or term if that single word or term is within a particular domain associated with context indicator 103 (and subsequently activated portions of sub-model 215). In some examples, the probability density of biased speech recognition results 224 is altered by the bias. Here, probability density function 226B has a steeper slope than probability density function 226A, indicating that, in this example, the distribution is concentrated around a smaller number of possibilities.

[0044] 4A and 4B are for illustrative purposes only and are not intended to be limiting. For example, the speech recognition results 222, 224 may be in any suitable format, such as a transcript, a spectrogram, etc. In some implementations, the speech recognition results 222, 224 are generated as instructions that cause a computing device to perform an action (e.g., an instruction to pause a music application running on the user device 110).

[0045] FIG. 5A illustrates a training process 500a for training the ASR model 200. In some implementations, the process 500a employs a two-step training method including a pre-training phase and a training phase. Model pre-training is a technique used to initialize the model, which can then be further fine-tuned based on additional training data 510. For the ASR model 200, pre-training may include starting the ASR model 200 from pre-training data 505 including multiple utterances spoken by one or more speakers. The pre-training data 505 may further include the spoken utterances paired with corresponding ground truth synthesized speech representations of the spoken utterances. The speech samples used for pre-training may be speech synthesized in a predetermined voice from a reference transcript and / or may be non-synthesized speech samples spoken by a live human.

[0046] Process 500a can fine-tune parameters of the pre-trained ASR model 200 after pre-training is complete. The training process 500a can include, for example, training the encoder 310 and / or the decoder 320 (FIG. 3A), individually or jointly in any suitable combination. Process 500a can include providing training inputs 510 (also referred to as unbiased data 510) to the ASR model 200. In some implementations, the training inputs 510 include multiple speech samples spoken by a variety of different speakers. Additionally, the training inputs 510 can be paired with labels 520 indicating a target output associated with the training inputs 510. That is, the training inputs 510 can include multiple speech samples corresponding to utterances spoken by different speakers, and each speech sample can be paired with a corresponding label 520 indicating a transcription of the corresponding utterance. Upon receiving the training inputs 510, the ASR model 200 can generate outputs 515 (e.g., unbiased speech recognition results 222). The ASR model 200 may process the training input 510 in the manner described with respect to any of FIGS. 2-4 or in any other suitable manner for speech recognition.

[0047] In some implementations, a loss function 530 generates a loss 540 based on the output 512 and the ground truth label 520. That is, the loss function 530 compares the output 515 and the label 520 to generate a loss 540, where the loss 540 indicates a discrepancy between the label 520 (i.e., the target output) and the output 515. The loss function 530 may implement any suitable technique for determining a loss, such as a regression loss, a mean squared error, a mean squared logarithmic error, a mean absolute error, a binary classification, a binary cross-entropy, a hinge loss, or a multi-class loss. The loss 540 may be backpropagated through the ASR model 200 to update the parameters by techniques such as stochastic gradient descent. The ASR model 200 then processes the loss 540 and adjusts one or more parameters of the ASR model 200 to take the loss 540 into account. In some implementations, once the ASR model 200 is properly trained, the model is frozen. That is, the parameters remain unchanged for a period of time until it is determined that the ASR model 200 needs to be retrained (e.g., when sufficient new training data 510 is obtained) or that the ASR model 200 needs to be replaced.

[0048] 5B shows a training process 500b for training a sub-model 215 in a particular domain. In some implementations, prior to the training process 500b for training the sub-model 215 in a particular domain, the sub-model 215 is pre-trained in several different ones of the domains (i.e., the sub-model 215 has been trained in one or more domains using process 500b). Alternatively, the sub-model 215 can be pre-trained or pre-configured such that the sub-model 215 is prepared for training in a particular domain.

[0049] Process 500b, in some examples, includes training sub-model 215 using training utterances 560 belonging to a particular domain, where each training utterance 560 includes corresponding audio data 561 characterizing the training utterance 560 and a ground truth transcription 563 of the training utterance. In some implementations, the audio data 561 characterizing each training utterance 560 is associated with speech spoken by a different speaker than the audio data 561 characterizing the other training utterances 560. The ground truth transcription 563 may be manually generated text representing the corresponding audio data 561. In some implementations, the ground truth transcription 563 is machine-generated. The ground truth transcription 563 should accurately reflect the corresponding speech sample (i.e., audio data 561) so that it is the target output of sub-model 215. In some implementations, training utterances 560 are collected based on a respective domain and / or vocabulary. Thus, a sub-model 215 can be trained with a training utterance 560 such that the sub-model 215 is biased toward terms or phrases that correspond to a particular domain associated with the training utterance 560. In the example of a single sub-model 215 adapted to bias toward multiple domains, the ground truth transcription 563 can be concatenated and projected to a phrase set embedding, which can then be used to train the sub-model 215. Thus, if used, a one-hot vector of context indicators 103 can similarly be concatenated and projected to a phrase set embedding that activates the portion of the sub-model 215 trained in a particular domain.

[0050] Process 500b may include providing a ground truth transcription 563 of each training utterance 560 to an embedding encoder 565. The embedding encoder 565 may then generate document embeddings 567 for the training utterances 560 based on the ground truth transcriptions 563. The sub-model 215 then receives the document embeddings 567 generated for each training utterance 560 as a side input. More specifically, training process 500b uses the document embeddings 567 to train the sub-model 215 on a specific domain by activating portions of the sub-model 215 that correspond to the specific domain associated with the training utterance 560. Here, the document embeddings 567 may be associated with phrase set embeddings in the embedding space. Thus, during operation, context indices 103, in the form of one-hot vectors indicating a specific domain, may be projected onto phrase set embeddings in the embedding space that activate portions of the sub-model 215 that correspond to the specific domain (i.e., portions of the sub-model 215 trained with the document embeddings 567 for the specific domain). The document embeddings 567 may not be sensitive to the order of the phrases, since the embedding encoder 565 can treat phrases in different orders equally.

[0051] The embedding encoder 565 may include one or more components (e.g., a stack of multi-head attention blocks, which may include a conformer block or a transformer block). In some implementations, each multi-head attention block of the embedding encoder 565 includes a multi-head attention mechanism. The embedding encoder 565 may include a stack of long short-term memories (LSTMs) instead of multi-head attention blocks. Alternatively, the embedding encoder 565 may be a Conv-Net with different types of pooling. The embedding encoder 565 may be any suitable form of encoder capable of extracting a single vector (i.e., document embedding 567) from a set of phrases (i.e., ground truth transcription 563).

[0052] The sub-model 215 can receive document embeddings 567 and audio data 561 corresponding to the training utterances 560 and generate a sub-model output 569. In some implementations, the sub-model output 569 of the sub-model 565 is based on the corresponding document embeddings 567 and on a history of predicted speech recognition results 565 generated by the base speech recognition model 200 in one or more previous output steps. As described above ( FIG. 2 ), the sub-model 215 can be disposed in a layer of the base ASR model 200, and the sub-model output 569 can be combined with the output of the ASR model 200, or the sub-model output 569 can be generated in a layer of the ASR model's encoder 310. The base ASR model 200 can receive the sub-model output 569 along with audio data 561 characterizing the training utterances 560 and generate the predicted speech recognition results 565 (i.e., the biased speech recognition results 224).

[0053] In some implementations, the predicted speech recognition results 565 are used by a loss function 580 to generate a supervised loss term 590. That is, the loss function 580 compares the predicted speech recognition results 565 with a ground truth transcription 563 of the corresponding training utterance 560 to generate the supervised loss term 590, where the loss 590 indicates a discrepancy between the ground truth transcription 563 (i.e., the target output) and the predicted speech recognition results 565. The loss function 580 may implement any suitable technique for determining loss, such as regression loss, mean squared error, mean squared logarithmic error, mean absolute error, binary classification, binary cross-entropy, hinge loss, multi-class loss, etc. The supervised loss term 590 may then be fed directly to the sub-model 215, where the sub-model 215 processes the supervised loss 590 and adjusts and / or updates one or more parameters of the sub-model 215 to take the supervised loss term 590 into account. In some implementations, the base ASR model 200 is fixed during training of the sub-models. Thus, the sub-models 215 adjust parameters so that the sub-model outputs have an intended biasing effect on the base ASR model 200. That is, the training process 500b uses supervised loss terms 590 to teach the sub-models how to bias the base speech recognition model to recognize speech in a particular domain.

[0054] In some implementations, the training process 500b continuously trains (or retrains / fine-tunes) the trained sub-model 215 as it receives new sets of training utterances 560. For example, the sub-model 215 can continue to receive sets of training utterances 560 while the parameters of the ASR model 200 are fixed. In this manner, the sub-model 215 can be trained in multiple domains. That is, for each domain in which the sub-model 215 is trained, a sub-model 215 is also trained in the embedding space (based on the document embeddings 567 of the embedding encoder 565), so that a single sub-model 215 can be used to bias the base ASR model 200.

[0055] While the examples provided herein are directed to sub-models 215 biasing ASR model 200 for speech detection, it should be appreciated that sub-models 215 can be used to bias any type of model used for any purpose. For example, sub-models 215 can bias an image recognition model, a recommendation model, a filtering (e.g., email) model, a medical diagnosis model, or any other model that can use contextual information to bias results to improve accuracy. As discussed above, sub-models 215 can be trained with appropriate contextual indicators 103 to appropriately bias the underlying base model.

[0056] Training utterances 560 can be obtained in a variety of different ways. Typically, training utterances 560 are collected manually, where audio samples of the utterances are manually transcribed. However, manually labeling training data can be tedious, and collecting enough labeled data samples for training can be difficult. FIGS. 6A and 6B illustrate various techniques for collecting training utterances 560 and training sub-models 215. Referring now to schematic diagram 600a of FIG. 6A, in some implementations, data augmentation module 610 receives audio data 561 representing an unsynthesized speech representation 622 and a synthesized speech representation 624 for the same training utterance 560. Here, the set of training utterances 560, 560a-n, includes an unsynthesized speech representation 622 for each training utterance 560 in the set of training utterances. The training utterances 560 may include utterances 108 spoken by users 104 (FIG. 1). Additionally, each training utterance 560 can be paired with a corresponding ground truth transcription 563. A text-to-speech (TTS) system 620 is configured to receive the ground truth transcription 563 and generate audio data 561 corresponding to a synthesized speech representation 624 of each training utterance 560. In some implementations, the TTS system 620 generates multiple different synthesized speech representations 624 for a single training utterance 560, such that the different synthesized speech representations 624 are acoustically diverse from one another but lexically identical. For example, the synthesized speech representations 624 for a single training utterance 560 can be diverse by being enhanced by adding noise, adding reverberation, or manipulating timing. In some examples, the TTS system 620 receives unspoken training text utterances that include text-only data (i.e., unpaired data). Thus, each unspoken text utterance is not paired with any synthesized or non-synthetic speech representation.

[0057] Thus, data augmentation module 610 receives audio data 561 of unsynthesized representations 622 of training utterances 560 and / or receives audio data 561 of synthesized speech representations 624 of the same training utterances 560. Thus, data augmentation module 610 uses unsynthesized representations 622 to generate pairs of positive unsynthesized audio data examples 612, 612N, and uses synthesized speech representations 624 to generate pairs of positive synthesized audio data examples 612, 612S. Notably, the fact that both pairs of positive unsynthesized audio data examples 612N and positive synthesized audio data examples 612S correspond to the same training utterance 560 significantly increases the amount of training data available to training process 500b (FIG. 5B) for training sub-model 215. That is, training process 500b (FIG. 5B) can use audio data 561 that includes unsynthesized speech representations 622, synthesized speech representations 624, or some combination thereof. As previously mentioned, a "pair" of positive non-synthesized audio data examples 612N generated by the data augmentation module 610 is not limited to two examples, but may include any number of positive audio data examples generated for the same non-synthesized speech representation 622. Similarly, a "pair" of positive synthesized audio data examples 612S generated by the data augmentation module 610 may include any number of positive audio data examples generated for the same synthesized speech representation 624.

[0058] 6B , a contrastive unspoken text selection process 600 b can select unspoken textual utterances 670 from the large-scale unspoken text corpus 652 to be used to train the sub-model 215, such that the selected unspoken text utterances 670 most closely resemble the particular domain that the sub-model 215 is being trained to learn from. That is, the text selection process 600 b can identify unspoken text within and near the domain from the unspoken text corpus 652 for inclusion in the unspoken text utterances 670 used to train the sub-model 215. Notably, the unspoken text utterances 670 selected by the text selection process 600 b enable different utterances to be synthesized on the fly during batch construction, such that new speaker embeddings z and latent variables z can be sampled each time an unspoken text utterance 670 is included in a batch.

[0059] The corpus of unspoken text 652 includes a large number of unspoken training text utterances 670, 670a-n across a wide range of domains and encompasses much greater linguistic diversity than the specific domain for which the base ASR model 200 is trained. The corpus of unspoken text 652 may be stored in the same or a different data store 158 as the spoken and transcribed non-synthesized voice utterances 664, as the sub-models 215 belong to the specific domain for which they are trained. Each spoken and transcribed non-synthesized voice utterance 664 is paired with a corresponding transcription 663. The corpus of unspoken text 652 can be dynamically changed to incorporate new unspoken text utterances 670. Simply using all of the unspoken text utterances 670 in the corpus of unspoken text 652 is infeasible for the following reasons: i) For each sentence, the speech modality requires much more memory to encode than text, making it infeasible to convert all of the text in the unspoken text corpus 652. ii) There is a huge amount of variance between the transcriptions 663 paired with the transcribed non-synthesized speech utterances 664 and the unspoken text utterances 670 in the unspoken text corpus 652, requiring an intelligent strategy to balance their contributions.

[0060] The text selection process 600b aims to select a subset of available unspoken text utterances 670 from the unspoken text corpus 652 as data for TTS synthesis that will provide the synthetic speech representations (i.e., training utterances 560) generated for training the sub-model 215 during supervised loss of the training process 500b described above with reference to FIG. 5B. In other words, the text selection process 600b aims to improve the match between the selected subset of available unspoken text utterances 670 and the particular domain of interest, thereby reducing the computational resources required to utilize large amounts of non-domain-specific data. Thus, the text selection process 600b reduces computational and memory costs by selecting unspoken text utterances 670 that best match the particular domain for which the sub-model 215 is trained.

[0061] In some examples, the text selection process 600b selects a subset of available unspoken text utterances 670 from the unspoken text corpus 652 that best match a particular domain by simply providing a domain identifier (not shown) associated with the particular domain as input to a background LM 686 that has previously been trained across the unspoken text corpus 652. As previously mentioned, the unspoken text corpus 652 spans many different domains. In these examples, the background LM 686 may include a maximum entropy (MaxEnt LM) that can optionally accept a domain identifier as input, as described in U.S. Patent No. 9,842,592, filed February 12, 2014, the contents of which are incorporated herein by reference in their entirety. Here, the domain identifier associated with the particular domain enables the MaxEnt LM to output a subset of available unspoken text utterances 670 from the unspoken text corpus 652 that are likely to contain words and / or phrases related to the particular domain. In some configurations, rather than assessing word likelihood, the statistical language model operates in an inverse mode to randomly generate text phrases that match the statistical distribution of words associated with a particular domain.

[0062] 6B , the text selection process 600b uses a paired transcription 663 with a transcribed non-synthesized speech utterance 664 spoken by a human speaker to select a subset of available unspoken text utterances 670 from the unspoken text corpus 652 that best match a particular domain, where the transcribed non-synthesized speech utterance 664 includes words, phrases, and / or other terms related to the particular domain. Optionally, in addition to or instead of the paired transcription 663 with the transcribed non-synthesized speech utterance 664, a set of various transcribed utterances related to a particular domain can be used to select the unspoken text utterances 670. This provides an advantage in that not all of the transcribed non-synthesized speech utterances 664 need necessarily belong to a particular domain.

[0063] During the first stage (Stage A), the unspoken text selection process 600b constructs two language models 684, 686 to enable contrastive selection of unspoken text utterances 670. Here, a domain-specific LM 680 is trained with each transcription 663 in the set of transcribed, non-synthesized speech utterances 664. The set of transcribed, non-synthesized speech utterances 664 is assumed to belong to the specific domain that the sub-model 215 is being trained to learn. Meanwhile, a background LM 686 is trained with each unspoken text utterance 670 in the entire unspoken text corpus 652. As mentioned above, the unspoken text corpus 652 spans many different domains. In some examples, the first stage constructs the two language models 684, 686 using n-gram language model training. In other examples, the first stage constructs the two language models 684, 686 using neural network language model training.

[0064] In a second state (Stage B), the unspoken text selection process 600b uses two contrasting LMs 684, 686 to generate a first probability associated with each word in the unspoken text utterance 670 that appears in the domain-specific LM 684.

number

number

number

[0065] After determining the scores, the unspoken text selection process 600b selects the unspoken text utterance 670 with the N-best score S as the unspoken text utterance 670 that best matches the particular domain. The unspoken text corpus 652 may contain billions of unspoken text utterances 670. The unspoken text utterances 670 selected by the text selection process 600b may contain millions of utterances and thus far exceed the number of non-synthesized speech utterances 664 spoken and transcribed by human speakers. As described above, the content of the unspoken text utterances 670 increases the linguistic diversity of the particular domain the sub-models are being trained to learn from, while the corresponding synthetic speech representations (i.e., training utterances 560) generated from the unspoken text utterances 670 increase the acoustic / lexical diversity of the speech used to train the sub-models 215.

[0066] 7 is a flowchart illustrating an exemplary arrangement of operations for a method 700 for training a sub-model 215 to contextually bias the results of an ASR model 200. The method 700 may be performed, for example, by various elements of the contextual bias system 100 of FIG. 1. At operation 702, the method 700 includes obtaining a base speech recognition model 200 trained with unbiased data 510. At operation 704, the method 700 includes obtaining a set of training utterances 560 representing a particular domain, where each training utterance 560 in the set of training utterances 560 includes audio data 561 characterizing the training utterance 560 and a ground truth transcription 563 of the training utterance 560. At operation 706, the method 700 includes, for each corresponding training utterance 560 in the set of training utterances 560, determining a corresponding document embedding 567 from a ground truth transcription 563 of the corresponding training utterance 560 using an embedding encoder 565. At operation 708, the method 700 includes training a sub-model 215 to bias the base speech recognition model 200 to recognize speech in a particular domain using the corresponding document embeddings 567 determined from the ground truth transcriptions 563 of the set of training utterances 560.

[0067] Non-transitory memory may be a physical device used to temporarily or permanently store programs (e.g., sequences of instructions) or data (e.g., program state information) for use by a computing device. Non-transitory 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) / electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), and disk or tape.

[0068] 8 is a schematic diagram of an exemplary computing device 800 that can be used to implement the systems and methods described herein. Computing device 800 is intended to represent various types 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 functionality are for illustrative purposes only and are not intended to limit the embodiments of the invention described and / or claimed herein.

[0069] Computing device 800 includes a processor 810, memory 820, a storage device 830, a high-speed interface / controller 840 that connects to memory 820 and a high-speed expansion port 850, and a low-speed interface / controller 860 that connects to a low-speed bus 870 and storage device 830. Each of components 810, 820, 830, 840, 850, and 860 are interconnected using various buses and may be mounted on a common motherboard or otherwise mounted as desired. Processor 810 can process instructions for execution within computing device 800, including instructions stored in memory 820 or storage device 830, and display graphical information for a graphical user interface (GUI) on an external input / output device, such as a display 880 coupled to high-speed interface 840. In other implementations, multiple processors and / or multiple buses may be used, along with multiple memories and multiple types of memories, as desired. Also, multiple computing devices 800 may be connected, each providing multiple portions of the required operations (eg, as a server bank, a group of blade servers, or a multi-processor system).

[0070] The memory 820 stores information non-transiently within the computing device 800. The memory 820 may be a computer-readable medium, a volatile memory unit(s), or a non-volatile memory unit(s). The non-transient memory 820 may be a physical device used to temporarily or permanently store programs (e.g., sequences of instructions) or data (e.g., program state information) for use by the computing device 800. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), and disk or tape.

[0071] The storage device 830 can provide mass storage for the computing device 800. In some embodiments, the storage device 830 is a computer-readable medium. In various different implementations, the storage device 830 may be a device array including a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state memory device, or a storage area network or other configuration of devices. In further embodiments, a computer program product is tangibly embodied on 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-readable or machine-readable medium, such as memory 820, the storage device 830, or memory on the processor 810.

[0072] The high-speed controller 840 manages bandwidth-intensive operations of the computing device 800, while the low-speed controller 860 manages less bandwidth-intensive operations. This allocation of roles is merely exemplary. In some implementations, the high-speed controller 840 is coupled to memory 820, a display 880 (e.g., via a graphics processor or accelerator), and a high-speed expansion port 850 that can accept various expansion cards (not shown). In some implementations, the low-speed controller 860 is coupled to a storage device 830 and a low-speed expansion port 890. The low-speed expansion port 890 can include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet, etc.) and can be coupled to one or more input / output devices such as a keyboard, pointing device, scanner, or network device such as a switch or router (e.g., via a network adapter).

[0073] The computing device 800, as shown, may be implemented in many different forms. For example, it may be implemented as a standard server 800a, or as multiple iterations in a group of such servers 800a, as a laptop computer 800b, or as part of a rack server system 800c.

[0074] Various implementations of the systems and techniques described herein may be realized in digital electronic 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 implementation in one or more computer programs executable and / or interpretable by a programmable system including at least one programmable processor. Such programmable processor may be special-purpose or general-purpose and may be coupled to receive and transmit data and instructions from a storage system, at least one input device, and at least one output device.

[0075] A software application (i.e., a software resource) may refer to computer software that causes a computing device to perform tasks. In some examples, a software application may be referred to as an "application," "app," or "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.

[0076] These computer programs (also known as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in a high-level procedural programming language and / or an object-oriented programming language and / or an assembly / machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, apparatus, and / or device (e.g., magnetic disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including a machine-readable medium that receives 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.

[0077] The processes and logic flows described herein can be executed by one or more programmable processors, also referred to as data processing hardware, which 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 executed by special-purpose logic circuitry, such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). Processors suitable for executing computer programs include, for example, both general-purpose and special-purpose microprocessors, as well as one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory, a random-access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices for storing data, such as, for example, magnetic disks, magneto-optical disks, or optical disks, or is operably coupled to such mass storage devices for receiving data from, transmitting data to, or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all types of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0078] To provide for user interaction, one or more aspects of the present disclosure can be implemented in a computer having a display device, such as a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touchscreen, for displaying information to the user, and possibly a keyboard and a pointing device, such as a mouse or trackball, through which the user can input to the computer. Other types of devices can also be used to provide for user interaction; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input from the user can be received in any form, including acoustic input, voice input, or tactile input. Furthermore, the computer can interact with the user by sending documents to and receiving documents from devices used by the user (e.g., by sending a web page to a web browser on the user's client device in response to a request received from the web browser).

[0079] Although several embodiments 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 embodiments are within the scope of the following claims.

Claims

1. A computer-implemented method (700) that, when executed by data processing hardware (154), causes the data processing hardware (154) to perform an operation, the operation comprising: Obtaining a base speech recognition model (200) trained with unbiased data; obtaining a set of training utterances (560) representing a particular domain, wherein each training utterance (560) in the set of training utterances (560) comprises: audio data (561) characterizing the training utterances (560); a ground truth transcription (563) of the training utterances (560); and obtaining a set of training utterances (560) representing a particular domain, including: For each corresponding training utterance (560) in the set of training utterances (560), determining a corresponding document embedding (567) from the ground truth transcription (563) of the corresponding training utterance (560) using an embedding encoder (515); training a sub-model (215) to bias the base speech recognition model (200) to recognize speech in the particular domain using the corresponding document embeddings (567) determined from the ground truth transcriptions (563) of the set of training utterances (560); Including, Training the sub-model (215) includes, for each corresponding training utterance (560) in the set of training utterances (560): processing the audio data (561) characterizing the training utterances (560) to generate predicted speech recognition results using the base speech recognition model (200) configured to receive sub-model outputs (569) of the sub-models (215) based on the corresponding document embeddings (567) determined from the ground truth transcriptions (563) of the corresponding training utterances (560); determining a supervised loss term (590) based on the predicted speech recognition results and the ground truth transcription (563) of the corresponding training utterances (560); updating parameters of the sub-model (215) based on the supervised loss term (590) so that the sub-model (215) learns how to bias the base speech recognition model (200) to recognize speech in the particular domain; and A computer-implemented method (700) comprising:

2. 2. The computer-implemented method of claim 1, wherein the sub-model output of the sub-model based on the corresponding document embedding is further based on a history of predicted speech recognition results generated by the base speech recognition model in one or more previous output steps.

3. 2. The computer-implemented method of claim 1, wherein parameters of the base speech recognition model are fixed during training of the sub-models.

4. 2. The computer-implemented method of claim 1, wherein the operations further include, for at least one training utterance in the set of training utterances, converting the ground truth transcription of the corresponding at least one training utterance using a text-to-speech (TTS) system to generate the audio data including a corresponding synthesized speech representation of the corresponding at least one training utterance.

5. 2. The computer-implemented method of claim 1, wherein the operations further comprise, for at least one training utterance in the set of training utterances, applying data augmentation to the audio data characterizing the at least one training utterance.

6. 6. The computer-implemented method (700) of claim 5, wherein the applied data augmentation comprises at least one of adding noise, adding reverberation, or manipulating timing.

7. The computer-implemented method of claim 1 , wherein the sub-model comprises one or more neural network layers.

8. 2. The computer-implemented method of claim 1, wherein the sub-models are arranged in layers of the base speech recognition model.

9. The basic speech recognition model (200) includes an encoder (310) and a decoder (320), 2. The computer-implemented method of claim 1, wherein the sub-model is disposed between two layers of the encoder of the base speech recognition model.

10. The operations further include, after training the sub-models, deploying the base speech recognition model and the trained sub-models for execution on a user device, the user device comprising: receiving a speech recognition request (105) including audio data (561) characterizing speech captured in streaming audio; determining that the speech recognition request (105) includes a context indicator (103) that indicates the particular domain; using the trained sub-model (215) to bias the base speech recognition model (200) towards the particular domain; generating a transcription of the utterance by processing the audio data (561) using the biased base speech recognition model (200), the transcription being biased towards one or more terms within the particular domain; 2. The computer-implemented method (700) of claim 1, configured to perform:

11. The operation, after training the sub-model (215), comprises: receiving a speech recognition request (105) from a user device (110) in communication with the data processing hardware, the speech recognition request including audio data (561) characterizing speech captured by the user device (110) in streaming audio; determining that the speech recognition request (105) includes a context indicator (103) that indicates the particular domain; using the trained sub-model (215) to bias the base speech recognition model (200) towards the particular domain; generating a transcription of the utterance by processing the audio data (561) using the biased base speech recognition model (200), the transcription being biased towards one or more terms within the particular domain; 7. The computer-implemented method (700) of claim 1, further comprising:

12. data processing hardware (154); and memory hardware (156) in communication with the data processing hardware (154), the memory hardware (156) storing instructions that, when executed by the data processing hardware (154), cause the data processing hardware (154) to perform operations, the operations including: Obtaining a base speech recognition model (200) trained with unbiased data; obtaining a set of training utterances (560) representing a particular domain, wherein each training utterance (560) in the set of training utterances (560) comprises: audio data (561) characterizing the training utterances (560); obtaining a set of training utterances (560) representing a particular domain, the set including ground truth transcriptions (563) of the training utterances (560); For each corresponding training utterance (560) in the set of training utterances (560), determining a corresponding document embedding (567) from the ground truth transcription (563) of the corresponding training utterance (560) using an embedding encoder (515); training a sub-model (215) to bias the base speech recognition model (200) to recognize speech in the particular domain using the corresponding document embeddings (567) determined from the ground truth transcriptions (563) of the set of training utterances (560); Including, Training the sub-model (215) includes, for each corresponding training utterance (560) in the set of training utterances (560): processing the audio data (561) characterizing the training utterances (560) to generate predicted speech recognition results using the base speech recognition model (200) configured to receive sub-model outputs of the sub-models (215) based on the corresponding document embeddings (567) determined from the ground truth transcriptions (563) of the corresponding training utterances (560); determining a supervised loss term (590) based on the predicted speech recognition results and the ground truth transcription (563) of the corresponding training utterances (560); updating parameters of the sub-model (215) based on the supervised loss term (590) so that the sub-model (215) learns how to bias the base speech recognition model (200) to recognize speech in the particular domain; and A system (100) comprising:

13. 13. The system of claim 12, wherein the sub-model output (569) of the sub-model (215) based on the corresponding document embedding (567) is further based on a history of predicted speech recognition results (565) generated by the base speech recognition model (200) in one or more previous output steps.

14. 13. The system (100) of claim 12, wherein parameters of the base speech recognition model (200) are fixed during training of the sub-models (215).

15. 13. The system of claim 12, wherein the operations further include, for at least one training utterance in the set of training utterances, converting the ground truth transcription of the corresponding at least one training utterance using a text-to-speech (TTS) system to generate the audio data including a corresponding synthesized speech representation of the corresponding at least one training utterance.

16. 13. The system of claim 12, wherein the operations further include, for at least one training utterance in the set of training utterances, applying data augmentation to the audio data characterizing the at least one training utterance.

17. 17. The system (100) of claim 16, wherein the applied data augmentation comprises at least one of adding noise, adding reverberation, or manipulating timing.

18. The system (100) of claim 12, wherein the sub-model (215) includes one or more neural network layers.

19. The system (100) of claim 12, wherein the sub-models (215) are arranged in layers of the base speech recognition model (200).

20. The basic speech recognition model (200) includes an encoder (310) and a decoder (320), 13. The system (100) of claim 12, wherein the sub-model (215) is located between two layers of the encoder (310) of the base speech recognition model (200).

21. The operations further include, after training the sub-models, deploying the base speech recognition model (200) and the trained sub-models for execution on a user device (110), the user device (110) receiving a speech recognition request (105) including audio data (561) characterizing speech captured in streaming audio; determining that the speech recognition request (105) includes a context indicator (103) that indicates the particular domain; biasing the base speech recognition model (200) towards the particular domain using the trained sub-model; generating a transcription of the utterance by processing the audio data (561) using the biased base speech recognition model (200), the transcription being biased towards one or more terms within the particular domain; The system (100) of claim 12, configured to perform:

22. The operation, after training the sub-model (215), comprises: receiving a speech recognition request (105) from a user device (110) in communication with the data processing hardware, the speech recognition request including audio data (561) characterizing speech captured by the user device (110) in streaming audio; determining that the speech recognition request (105) includes a context indicator (103) that indicates the particular domain; biasing the base speech recognition model (200) towards the particular domain using the trained sub-model; generating a transcription of the utterance by processing the audio data (561) using the biased base speech recognition model (200), the transcription being biased towards one or more terms within the particular domain; The system (100) of claim 12, further comprising:

Citation Information

Patent Citations

  • Voice recognition device, search device, voice recognition method, search method and program

    JP2020126185A

  • Large-Scale Multilingual Speech Recognition With A Streaming End-To-End Model

    US20200380215A1