Adaptive Visual Speech Recognition
Patent Information
- Application Number
- JP2023560142
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-18
- Filing Date
- 2022-06-15
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2042-06-15
AI Technical Summary
【0025】 本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に示される。主題の他の機能、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
Smart Images

Figure 0007640738000001 
Figure 0007640738000002 
Figure 0007640738000003
Abstract
Description
[Technical field]
[0001] This specification relates to visual speech recognition neural networks. [Background technology]
[0002] A neural network is a machine learning model that uses one or more layers of nonlinear units to predict the output of a received input. Some neural networks include one or more hidden layers in addition to an output layer. The output of each hidden layer is used as the input to the next layer in the network, e.g., the next hidden layer or the output layer. Each layer of the network generates an output from the received input according to the current values of its respective set of parameters.
[0003] One example of a neural network is a visual speech recognition neural network, which decodes speech from the movements of a speaker's mouth. In other words, it takes as input a video of a speaker's face and produces as output text representing the words spoken by the speaker depicted in the video.
[0004] One example of a visual speech recognition neural network is LipNet. LipNet was first described in LipNet: End-to-End Sentence-Level Lipreading by Assael et al. (2016), arXiv preprint arXiv:1611.01599, available at arxiv.org. LipNet is a deep neural network that utilizes spatiotemporal convolutions and recurrent neural networks to map variable-length sequences of video frames to text.
[0005] Another example of a visual speech recognition neural network is described in Large-Scale Visual Speech Recognition by Shillingford et al., arXiv preprint arXiv:1807.05612 (2018), available at arxiv.org. Large-Scale Visual Speech Recognition describes a deep visual speech recognition neural network that maps a video of lips to a sequence of phoneme distributions, and a speech decoder that outputs a sequence of words from the sequence of phoneme distributions generated by the deep neural network. [Prior art documents] [Non-patent literature]
[0006] [Non-Patent Document 1] Assael et al., LipNet: End-to-End Sentence-Level Lipreading, arXiv preprint arXiv:1611.01599 (2016), available at arxiv.org. [Non-Patent Document 2] Shillingford et al., Large-Scale Visual Speech Recognition, arXiv preprint arXiv:1807.05612 (2018), available at arxiv.org. [Non-Patent Document 3] Alex Graves, Santiago Fernandez, Faustino Gomez, and Jurgen Schmidhuber, Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks, International Conference on Machine Learning, pp. 369-376, 2006 [Non-Patent Document 4] Makino et al., Recurrent Neural Network Transducer for Audio-Visual Speech Recognition, arXiv preprint arXiv:1911.04890 (2019), available at arxiv.org. Summary of the Invention [Means for solving the problem]
[0007] This specification describes a system implemented as a computer program on one or more computers at one or more locations that can generate a sample-efficient, adaptive visual speech recognition model. In this context, sample-efficient and adaptive means that the model can be customized to recognize the speech of a new speaker with much less training data than was used to train the adaptive model. For example, training an adaptive model may require hours of video recording for each individual speaker, whereas adapting the model to a new speaker may require only a few minutes of video recording of the new speaker.
[0008] The training system can train a visual speech recognition model using multiple embedding vectors for individual speakers and the visual speech recognition neural network. Due to the computationally intensive nature of the training process, the training can be performed by a distributed computing system, e.g., a data center, with hundreds or thousands of computers.
[0009] The output of the training process is an adaptive visual speech recognition model that can efficiently adapt to new speakers. Model adaptation typically involves learning new embedding vectors for the new speaker and may optionally involve fine-tuning the parameters of the neural network for the new speaker. The adaptation data can be just a few seconds or minutes of video of the new speaker and the corresponding text transcript. For example, the video can be a video of the speaker while the speaker is speaking text on a text prompt that is being presented to the user on the user device.
[0010] The adaptation process is therefore significantly less computationally intensive than the original training process, and can therefore be run on much less powerful hardware, such as a mobile phone or another wearable device, a desktop or laptop computer, or another Internet-enabled device installed in the user's home, to name just a few.
[0011] In one aspect, a method includes receiving a video including a plurality of video frames depicting a first speaker; obtaining a first embedding characterizing the first speaker; and processing a first input comprising (i) the video and (ii) the first embedding using a visual speech recognition neural network having a plurality of parameters, the visual speech recognition neural network being configured to process the video and the first embedding in accordance with trained values of the parameters to generate a speech recognition output defining a sequence of one or more words spoken by the first speaker in the video.
[0012] In some implementations, the visual speech recognition neural network is configured to generate an additional input channel from the first embedding and to combine the additional channel with one or more of the frames in the video before processing the frames in the video to generate a speech recognition output.
[0013] In some implementations, the visual speech recognition neural network comprises multiple hidden layers, and the neural network is configured to generate, for at least one of the hidden layers, an additional hidden channel from the first embedding and to combine the hidden channel and an output of the hidden layer before providing an output for processing by another hidden layer of the visual speech recognition neural network.
[0014] In some implementations, the method further includes obtaining adaptation data for a first speaker, where the adaptation data comprises one or more videos of the first speaker and a ground truth transcription of each of the videos, and determining a first embedding for the first speaker using the adaptation data.
[0015] In some implementations, the method further comprises obtaining pre-trained values of the model parameters determined by training the visual speech recognition neural network on training data comprising training examples corresponding to a plurality of speakers different from the first speaker, and determining the first embedding comprises determining the first embedding using the pre-trained values and the adaptation data.
[0016] In some implementations, determining the first embedding comprises initializing the first embedding, and updating the first embedding by iteratively performing the operation comprises processing each of the one or more video segments in the adaptation data and the first embedding using a visual speech recognition neural network according to current values of parameters to generate a respective speech recognition output for each of the one or more video segments, and updating, for each of the one or more video segments, the first embedding to minimize a loss function measuring a respective error between a ground truth transcription of the video segment and a respective speech recognition output for the video segment.
[0017] In some implementations, for each of the one or more video segments, updating the first embedding to minimize a loss function measuring a respective error between a ground truth transcription of the video segment and a speech recognition output for each of the video segments comprises backpropagating a gradient of the loss function through the visual speech recognition neural network to determine a gradient of the loss function with respect to the first embedding; and updating the first embedding using the gradient of the loss function with respect to the first embedding.
[0018] In some implementations, the current value is equal to the pre-trained value and the trained value, and the model parameters are fixed when determining the first embedding.
[0019] In some implementations, the operations further include updating current values of parameters of the visual speech recognition neural network based on a gradient of a loss function with respect to the parameters of the visual speech recognition neural network, the trained values being equal to the current values after determining the first embedding vector.
[0020] In some implementations, the method further comprises applying a decoder to the speech recognition output of the video to generate a sequence of one or more words spoken by the first speaker in the video.
[0021] In some implementations, the speech recognition output comprises, for each of the video frames, a respective probability distribution over a vocabulary of text elements.
[0022] Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages.
[0023] The adaptive visual speech recognition models described herein can be used to rapidly adapt to new speakers using orders of magnitude less data than was used to train the model, allowing the adaptation process to be performed by end-user consumer hardware rather than being performed in a data center.
[0024] Furthermore, when multi-speaker visual speech recognition models are trained on large datasets representing multi-speaker videos, many data samples from the training data tend to be underfit. This may be due to small imbalances in the collected video data, or due to the finite capacity of the model to capture all the different scenarios represented in the large video dataset. The described techniques address these issues by first training a speaker-conditional visual speech recognition model conditioned on (i) the videos of the speakers and (ii) the speaker embeddings, and then adapting the speaker-conditional visual speech recognition model by learning new speaker embeddings (optionally by fine-tuning the model weights).
[0025] The details of one or more embodiments of the subject matter herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. [Brief description of the drawings]
[0026] [Figure 1] FIG. 1 illustrates an exemplary architecture for training an adaptive visual speech recognition model. [Diagram 2] FIG. 1 illustrates an exemplary architecture for adapting an adaptive visual speech recognition model to a new individual speaker. [Diagram 3] 1 is a flowchart of an exemplary process for generating and using an adaptive visual speech recognition model. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0027] Like reference numbers and designations in the various drawings indicate like elements.
[0028] FIG. 1 illustrates an example architecture 100 for training an adaptive visual speech recognition model.
[0029] The architecture 100 includes a visual speech recognition neural network 110a that is trained using an embedding table 120 that stores embedding vectors for each of a number of different individual speakers.
[0030] The visual speech recognition neural network 110a may be any suitable visual speech recognition neural network that receives as input a video of a speaker and an embedding vector for the speaker, as described below, and processes the video and the embedding vector to generate as output a speech recognition output that represents a predicted transcription of the speech spoken by the speaker in the video.
[0031] As used herein, "video" includes only a sequence of video frames, and does not include the audio corresponding to the video frame sequence. Thus, the visual speech recognition neural network 110a generates speech recognition output without access to audio data of the speech actually spoken by a speaker.
[0032] One example of a visual speech recognition neural network is LipNet. LipNet was first described in LipNet: End-to-End Sentence-Level Lipreading by Assael et al. (2016), arXiv preprint arXiv:1611.01599, available at arxiv.org. LipNet is a deep neural network that utilizes spatiotemporal convolutions and recurrent neural networks to map variable-length sequences of video frames to text.
[0033] Another example of a visual speech recognition neural network is described in Large-Scale Visual Speech Recognition by Shillingford et al., arXiv preprint arXiv:1807.05612 (2018), available at arxiv.org. Large-Scale Visual Speech Recognition describes a deep visual speech recognition neural network that also utilizes spatio-temporal convolutional and recurrent neural networks to map lip video to a sequence of phoneme distributions.
[0034] In general, either of the two visual speech recognition neural network architectures above, or any other visual speech recognition neural network architecture, can be modified to accept as input an embedding vector along with a video depicting a speaker, e.g., the speaker's face, or the speaker's mouth or lips, at each of a number of time steps. The architecture can be modified to process the embedding vector in any of a variety of ways.
[0035] As an example, the system can generate additional input channels using embedding vectors that have the same spatial dimensions as the video frames, and then combine the additional channels with the video frames, e.g., by concatenating the additional channels along the channel dimensions to each video frame (e.g., as if the input channels were color intensity values that are added to the colors (e.g., RBG) of the video frames). For example, the system can generate the additional channels using the embedding vectors by applying a broadcasting operation to values in the embedding vectors to generate a two-dimensional spatial map that has the same dimensions as the video frames.
[0036] As another example, the system may generate an additional hidden channel using an embedding vector having the same spatial dimension as the output of a particular one of the hidden layers of the neural network, e.g., one of the spatio-temporal convolutional layers in the neural network, and then combine the additional hidden channel with the output of the particular hidden layer, e.g., by concatenating the additional channel to the output of the hidden layer along the channel dimension, by adding the additional channel to the output of the hidden layer, by element-wise multiplying the additional channel and the output of the hidden layer, or by applying a gating mechanism between the output of the hidden layer and the additional channel.
[0037] The components shown in FIG. 1 may be implemented by a distributed computing system comprising multiple computers coordinating to train the visual speech recognition neural network 110a.
[0038] The computing system can train the visual speech recognition neural network 110a on training data 130 that includes a number of training examples 132. Each training example 132 corresponds to a respective speaker and includes (i) a video 140 of the corresponding speaker, and (ii) a respective ground truth transcription 150 of the speech spoken by the corresponding speaker in the video.
[0039] Each speaker corresponding to one or more training examples 132 has a respective embedding vector that is stored in the embedding table 120. An embedding vector is a vector of numerical values, e.g., floating-point values or quantized floating-point values, with a fixed dimension (number of components).
[0040] During training, the embedding vector for a given speaker can be generated in a variety of ways.
[0041] As an example, the embedding vector may be generated based on one or more characteristics of a speaker.
[0042] As a particular example, a computer system may process one or more images of a speaker's face, e.g., cropped from a video of the speaker in a corresponding training example, using an embedding neural network, e.g., a trained convolutional neural network, to generate a face embedding vector for the speaker's face that can be used to distinguish between people or that reflects other properties of the people's faces. For example, the computer system may process multiple images of the speaker's face using the embedding neural network to generate a respective image embedding vector for each image, and then combine, e.g., average, the image embedding vectors to generate a face embedding vector for the speaker's face.
[0043] As another particular example, the computer system may measure certain properties of a speaker's appearance when speaking and map each measured property to a respective property embedding vector, e.g., using a predefined mapping. One example of such a property is how often the mouth opens when speaking. Another example of such a property is the maximum mouth opening when speaking. Yet another example of such a property is the average mouth opening when speaking.
[0044] When the system generates a respective embedding vector, e.g., a face embedding vector and one or more respective property embedding vectors, for each of a plurality of traits of a speaker, the system may combine, e.g., average, sum, or concatenate, the respective embedding vectors of the plurality of traits to generate an embedding vector for the speaker.
[0045] As another example, the system may randomly initialize each speaker embedding (embedding vector) in the embedding table 120 and then update the speaker embeddings in conjunction with training the neural network 110a.
[0046] In each training iteration, the system samples a mini-batch of one or more training examples 132 and processes the videos 140 of each speaker in the training examples and the corresponding speaker embedding vectors from the embedding table 120 using the neural network 110a to generate, for each training example 132, a predicted speech recognition output, e.g., a probability distribution over the set of text elements, such as characters, phonemes, or word fragments, of the training example 132.
[0047] The system then trains the neural network 110a using a gradient-based technique, e.g., stochastic gradient descent, Adam, or rmsProp, to minimize a loss function that measures the error between the speech ground truth transcription 150 of the training example 132 and the predicted speech recognition output of the training example 132, respectively, for each training example 132 in the mini-batch. For example, the loss function can be a connectionist temporal classification (CTC) loss function. The CTC loss is described in more detail in Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks, by Alex Graves, Santiago Fernandez, Faustino Gomez, and Jurgen Schmidhuber, International Conference on Machine Learning, pp. 369-376, 2006.
[0048] In some implementations, the system also updates the embedding vectors of the speaker videos in the mini-batch, for example, by backpropagating gradients through the neural network 110a to the appropriate embedding vectors. More specifically, when the embedding vectors in the embedding table 120 are randomly initialized, the system also updates the embedding vectors. If the embedding vectors in the embedding table 120 are generated based on the characteristics or properties of the corresponding speakers, in some implementations, the system keeps the embedding vectors fixed during training, while in other implementations, the system fine-tunes the embedding vectors by updating the embedding vectors in the embedding table 120 in conjunction with the training of the neural network 110a.
[0049] After training, to generate a transcription of a new speaker video, the system (or another system) can process the new speaker video and the new embedding of the speaker as input to generate a predicted speech recognition output for the new speaker video. Optionally, the system can then apply a decoder, e.g., a beam search decoder or a finite state transducer (FST)-based decoder, to the predicted speech recognition output to map the speech recognition output to a sequence of words.
[0050] However, during training, the embeddings are generated using characteristics of the speaker, and these characteristics are typically not available for a new speaker, so the system can adapt the trained neural network 110a to the new speaker before using it to generate transcriptions for the new speaker.
[0051] 2 illustrates an exemplary architecture 200 for adapting an adaptive visual speech recognition model to a new individual speaker. During the adaptation process, the embeddings of the new speaker are adjusted so that the neural network 110a is adapted to the characteristics of the particular individual. In other words, the purpose of the training process illustrated in FIG. 1 is to learn in advance. During adaptation, this prior information is combined with new data in order to rapidly adapt to the characteristics of the new speaker.
[0052] Typically, the training process shown in Figure 1 is performed on a distributed computing system having multiple computers. And, as described above, the adaptation process can be performed on much less computationally expensive hardware, such as a desktop computer, a laptop computer, or a mobile computing device. For convenience, the adaptation process is described as being performed by a system of one or more computers.
[0053] The architecture 200 includes a visual speech recognition neural network 110b that corresponds to a trained version of the visual speech recognition neural network 110a, for example, trained using the process described above with reference to FIG.
[0054] To adapt the model to a new individual speaker, the system uses adaptation data 220 that represents a set of videos 230 ("video segments") of the new individual speaker speaking and corresponding transcriptions 240 of the text spoken in each video. For example, each video 230 can be a video of the speaker filmed while the speaker is speaking text written on a text prompt or text that is being presented to a user on a user device.
[0055] In general, the adaptation data 220 used in the adaptation process can be orders of magnitude smaller than the training data 130 used in the training process. In some implementations, the training data 130 includes multiple hours of video recording for each individual speaker of multiple different individual speakers, while the adaptation data 220 can use less than 10 minutes of video recording of a new individual speaker.
[0056] Moreover, the adaptation process is generally much less computationally intensive than the training process. Thus, as indicated above, in some implementations, the training process is performed in a data center with tens, hundreds, or thousands of computers, and the adaptation process is performed on a mobile device or a single Internet-enabled device.
[0057] To begin the adaptation phase, the system can initialize for the new speaker a new embedding vector 210. In general, the new embedding vector 210 may be different from any of the embedding vectors used during the training process.
[0058] For example, the system may initialize new embedding vectors 210 randomly or using available data that characterizes a new speaker. In particular, the system may initialize new embedding vectors 210 randomly or from adaptation data 220 using one of the techniques described above for generating speaker embeddings in table 120. Even if any of the techniques described above for generating embeddings utilizing speaker characteristics are used, the newly generated embedding vectors 210 generally contain less information about the speaker's voice than the speaker embedding vectors used during training, because the adaptation data 220 generally has less data than is available in the training data for any given speaker.
[0059] The adaptation process can be performed in several ways: in particular, the system can use non-parametric or parametric techniques.
[0060] Non-parametric techniques include using adaptation data 220 to adapt the new speaker embeddings 210, and optionally the model parameters of the neural network 110b, or both.
[0061] In particular, when performing the non-parametric technique, for each iteration of the adaptation phase, the system processes one or more video segments 230 in the adaptation data 220 and the current embedding vector 210 of the new speaker using the neural network 110b to generate a predicted speech recognition output for each video segment 230.
[0062] The system then updates the embedding vector 210 by backpropagating the gradient of a loss, e.g., a CTC loss, between the ground truth transcription 240 of the video segment 230 and the predicted speech recognition output of the video segment 230 through the neural network 110b to calculate a gradient with respect to the embedding vector 210, and then updates the embedding vector 210 using an update rule such as a stochastic gradient descent update rule, an Adam update rule, or an rmsProp update rule.
[0063] In some of these cases, the system holds fixed the values of the model parameters of neural network 110b during the adaptation phase. In other of these cases, the system also updates the model parameters at each iteration of the adaptation phase, for example, by using a gradient-based technique to update the model parameters using the same loss used to update the embedding vector 210.
[0064] Alternatively, the system can use a parametric technique that involves training an auxiliary network to predict embedding vectors for new speakers using a different set of demonstration data, e.g., a set of videos, than in the training data used to train the neural network 110b. The trained auxiliary neural network can then be used to predict embedding vectors 210 for new speakers given the speaker adaptation data 220.
[0065] 3 is a flow chart of an exemplary process 300 for generating and using an adaptive visual speech recognition model. As described above, the process includes three stages: training, adaptation, and inference.
[0066] Typically, the training phase is carried out on a distributed computing system having multiple computers.
[0067] And, as mentioned above, the other two stages can be performed on much less computationally expensive hardware, such as a desktop computer, a laptop computer, or a mobile computing device.
[0068] For convenience, the exemplary process 300 is described as being performed by one or more computer systems, although it will be appreciated that different steps of the process 300 may be performed by different computing devices having different hardware capabilities.
[0069] The system generates an adaptive visual speech recognition model (310) using training data representing videos of speech by a plurality of different individual speakers. As described above with reference to FIG. 1, the system can generate different embedding vectors for the plurality of individual speakers. The system can then train parameter values of the neural visual speech recognition model using training data including text and video data representing a plurality of different individual speakers speaking a portion of the text. Each of the embedding vectors generally represents a respective characteristic of one of the plurality of different individual speakers.
[0070] The system adapts the adaptive visual speech recognition model to the new individual speaker using adaptation data representing a video of the audio being spoken by the new individual speaker (320). As described above with reference to Figure 2, the adaptation process uses video data representing the new individual speaker speaking a portion of the text.
[0071] During the adaptation phase, the system uses the adaptation data to generate new embedding vectors for new speakers and can optionally fine-tune the model parameters of the trained visual speech recognition neural network.
[0072] After adaptation, the system performs an inference process to convert the video of the new speaker and the embeddings of the new speaker into a transcription of the text spoken in the video (330). In general, the system uses a visual speech recognition model adapted to the new individual speaker, which includes using as input the new embedding vectors and new video of the individual speaker determined during the adaptation phase. As described above, the system can generate a transcription as a sequence of words and possibly punctuation by applying a decoder to the speech recognition output generated by the adapted visual speech recognition model. Performing inference can also include one or more of displaying the transcription in a user interface, translating the transcription into another language, or providing audio data representing a verbalization of the transcription for playback on one or more audio devices.
[0073] Although the above description describes adaptive visual speech recognition, the described techniques can also be applied to generate adaptive audio-visual speech recognition models, where the inputs to the model are a video sequence of a speaker speaking and a corresponding audio sequence of the speaker speaking (although the two may not be aligned in time) and an embedding of the speaker, and the output is a transcription of the text spoken in the audio-video pair. An example of an audio-visual speech recognition model that can be modified to accept embeddings as input and adapted as described above is described in Recurrent Neural Network Transducer for Audio-Visual Speech Recognition by Makino et al., arXiv preprint arXiv:1911.04890 (2019), available at arxiv.org. If the input also includes audio data, speaker embeddings can also be generated using the audio data, or instead, by processing the audio using, for example, an audio embedding neural network trained to generate embeddings that uniquely identify the speaker.
[0074] The proposed adaptive visual or audio-visual speech recognition model can be useful, for example, for a hearing-impaired user to generate text representing the utterance of a new speaker for the user to read. In another example, the user can be the new speaker, and the visual or audio-visual speech recognition model can be used in a dictation system to generate text, or in a control system to generate text commands that are implemented by another system, such as an electronic or electromechanical system. The adaptive visual or audio-visual speech recognition model can be implemented to perform steps 320 and / or 330 by a computer system that includes at least one video camera for capturing video of the new speaker that is processed in steps 320 and / or 330. In the case of an audio-visual speech recognition model, the video camera can include a microphone for capturing an audio track that accompanies the captured video.
[0075] In situations where the systems described herein use data that may include personal information, that data may be processed in one or more ways, such as aggregation and anonymization, before being stored or used, such that such personal information cannot be determined from the data that is stored or used. Further, such information may be used such that personally identifiable information cannot be determined from the output of a system that uses such information.
[0076] Embodiments of the subject matter and functional operations described herein can be implemented in digital electronic circuitry, tangibly embodied computer software or firmware, computer hardware including the structures disclosed herein and their structural equivalents, or one or more combinations thereof. Embodiments of the subject matter described herein can be implemented as one or more computer programs, e.g., one or more modules of computer program instructions encoded on a tangible, non-transitory storage medium for execution by or to control the operation of a data processing device. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or one or more combinations thereof. Alternatively or additionally, the program instructions can be encoded in an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal generated to encode information for transmission to a suitable receiving device for execution by a data processing device.
[0077] The term "data processing apparatus" refers to data processing hardware and encompasses any kind of apparatus, device, and machine for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. An apparatus may also be or even include special purpose logic circuitry, such as, for example, an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). In addition to hardware, an apparatus may optionally include code that creates an environment for the execution of a computer program, such as code constituting a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof.
[0078] A computer program, sometimes referred to or written as a program, software, software application, app, module, software module, script, or code, can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, such as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A program may correspond to a file in a file system, but this is not necessarily the case. A program can be stored in part of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in several coordinated files, e.g., files that store one or more modules, subprograms, or parts of code. A computer program can be deployed to be executed on one computer, or on several computers that are located at one site or distributed across several sites and interconnected by a data communications network.
[0079] This specification uses the term "configured" in connection with systems and computer program components. A system of one or more computers configured to perform a particular operation or action means that the system has installed thereon software, firmware, hardware, or a combination thereof that, when in operation, causes the system to perform the operation or action. One or more computer programs configured to perform a particular operation or action means that the one or more programs contain instructions that, when executed by a data processing device, cause the device to perform the operation or action.
[0080] As used herein, the term "database" is used broadly to refer to any collection of data, which need not be structured in any particular way, or at all, and which may be stored on storage devices in one or more locations. Thus, for example, an index database may contain multiple collections of data, each of which may be organized and accessed in a different way.
[0081] Similarly, the term "engine" is used broadly herein to refer to a software-based system, subsystem, or process programmed to perform one or more specific functions. Typically, an engine is implemented as one or more software modules or components and installed on one or more computers in one or more locations. In some cases, one or more computers are dedicated to a particular engine, and in other cases, multiple engines may be installed and run on the same computer.
[0082] The processes and logic flows described herein may be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuitry, such as, for example, an FPGA or an ASIC, or a combination of special purpose logic circuitry and one or more programmed computers.
[0083] A computer suitable for the execution of a computer program may be based on a general-purpose or special-purpose microprocessor, or both, or on other types of central processing units. Typically, the central processing unit receives instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a central processing unit for executing or carrying out instructions, and one or more memory devices for storing instructions and data. The central processing unit and memory may be supplemented by or incorporated with special-purpose logic circuitry. Typically, the computer also includes one or more mass storage devices, e.g., magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive data therefrom, transfer data thereto, or both. However, a computer need not be equipped with such devices. Furthermore, the computer may be incorporated in another device, such as, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
[0084] 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, e.g., internal hard disks or removable disks, magneto-optical disks, and CD ROM and DVD-ROM disks.
[0085] To provide for interaction with a user, embodiments of the subject matter described herein can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user, as well as a keyboard and a pointing device, e.g., a mouse or trackball, by which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user, e.g., feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback, and input from the user can be received in any form, including acoustic, speech, or tactile input. Additionally, the computer can interact with the user by sending and receiving documents to and from a device used by the user, e.g., by sending a web page to a web browser on the user's device in response to a request received from the web browser. The computer can also interact with the user by sending text messages or other forms of messages to a personal device, e.g., a smartphone running a messaging application, and receiving a response message from the user.
[0086] A data processing device for implementing machine learning models may also include dedicated hardware accelerator units, for example for handling typical, computationally intensive parts of machine learning training or production, e.g., inference, workloads.
[0087] The machine learning model can be implemented and deployed using a machine learning framework, such as, for example, the TensorFlow framework.
[0088] An embodiment of the subject matter described herein can be implemented in a computing system that includes a back-end component, e.g., as a data server, or includes a middleware component, e.g., an application server, or includes a front-end component, e.g., a client computer with a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described herein, or includes any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include local area networks (LANs) and wide area networks (WANs), e.g., the Internet.
[0089] A computing system may include clients and servers. Typically, clients and servers are remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server sends data, such as HTML pages, to a user device for purposes of displaying data to a user interacting with the device acting as a client, receiving user input from the user, etc. Data generated at the user device, e.g., a result of a user interaction, may be received at the server from the device.
[0090] Although the specification contains many specific implementation details, these should not be construed as limitations on the scope of the invention or the claims, but as descriptions of features specific to particular embodiments of a particular invention. Certain features described in the specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination, and may even be initially claimed as such, one or more features from a claimed combination may in some cases be deleted from the combination, and the claimed combination may be subject to subcombinations or variations of the subcombination.
[0091] Similarly, although operations are illustrated in the figures and claimed in a particular order, this should not be understood as requiring that such operations be performed in the particular order or sequential order shown, or that all of the operations shown be performed, to achieve desirable results. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated into a single software product or packaged into multiple software products.
[0092] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. By way of example, the processes depicted in the accompanying figures do not necessarily require the particular order depicted, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous. [Explanation of symbols]
[0093] 100 Architecture 110a Visual speech recognition neural network 110b Visual speech recognition neural network 120 Embedded Table 130 Training Data 132 Training Examples 140 Videos 150 Ground Truth Transcriptions 200 Architecture 210 New embedding vectors 210 Current embedding vector 220 Adaptive Data 230 Videos 240 Transcription 300 processes
Claims
1. A method implemented by one or more computers, comprising: receiving a video comprising a plurality of video frames depicting a first speaker; obtaining a first embedding characterizing the first speaker, the first embedding for the first speaker being determined using adaptation data, the adaptation data comprising one or more videos of the first speaker and a ground truth transcription of each of the videos; processing a first input comprising (i) the video and (ii) the first embedding using a visual speech recognition neural network having a plurality of parameters; wherein the visual speech recognition neural network is configured to process the video and the first embedding in accordance with trained values of the parameters to generate a speech recognition output defining a sequence of one or more words spoken by the first speaker in the video.
2. The visual speech recognition neural network comprises: generating an additional input channel from the first embedding; combining the additional channel with one or more of the frames in the video prior to processing the frames in the video to generate the speech recognition output; The method of claim 1 , configured to:
3. The visual speech recognition neural network comprises a plurality of hidden layers, and the visual speech recognition neural network performs, for at least one of the hidden layers: generating an additional covert channel from the first embedding; and combining the output of the hidden channel and the hidden layer before providing an output for processing by another hidden layer of the visual speech recognition neural network. The method of claim 1 , configured to:
4. obtaining adaptation data for the first speaker; The method of claim 1 , further comprising:
5. 5. The method of claim 4, further comprising obtaining pre-trained values of model parameters determined by training the visual speech recognition neural network on training data comprising training examples corresponding to a plurality of speakers different from the first speaker, and wherein determining the first embedding comprises determining the first embedding using the pre-trained values and the adaptation data.
6. determining the first embedding, initializing the first embedding; updating the first embedding by repeatedly performing operations, processing each of the one or more video segments and the first embedding in the adaptation data using the visual speech recognition neural network according to current values of the parameters to generate a respective speech recognition output for each of the one or more video segments; for each of the one or more video segments, updating the first embedding to minimize a loss function that measures a respective error between the ground truth transcription of the video segment and the respective speech recognition output for the video segment; The method of claim 5 comprising:
7. updating the first embedding to minimize, for each of the one or more video segments, a loss function measuring a respective error between the ground truth transcription of the video segment and the respective speech recognition output for the video segment, backpropagating a gradient of the loss function through the visual speech recognition neural network to determine a gradient of the loss function with respect to the first embedding; updating the first embedding using the gradient of the loss function with respect to the first embedding; The method of claim 6, comprising:
8. The method of claim 6 , wherein the current values are equal to the pre-trained values and the trained values, and the model parameters are fixed when determining the first embedding.
9. The operation, 7. The method of claim 6, further comprising updating the current values of the parameters of the visual speech recognition neural network based on a gradient of the loss function with respect to the parameters of the visual speech recognition neural network, wherein the trained values are equal to the updated values after determining a first embedding vector.
10. 10. The method of claim 1 , further comprising applying a decoder to the speech recognition output of the video to generate the sequence of one or more words spoken by the first speaker in the video.
11. The method of claim 1 , wherein the speech recognition output comprises, for each of the video frames, a respective probability distribution over a vocabulary of text elements.
12. A system comprising one or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform the operations of each of the methods described in any one of claims 1 to 11.
13. One or more computer-readable storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform the operations of the respective methods recited in any one of claims 1 to 11.
Citation Information
Patent Citations
Imaging apparatus, imaging method and program
JP2011014985A
Learning apparatus, learning method, program, learnt model and lip reading apparatus
JP2019204147A
Face recognition device, learning device and program
JP2021009571A
Lip reading device and lip reading method
JP2021086274A
Joint neural network for speaker recognition
US20190341058A1