Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
VERY DEEP CONVOLUTIONAL NEURAL NETWORKS FOR END-TO-END SPEECH RECOGNITION
Document Type and Number:
WIPO Patent Application WO/2018/071389
Kind Code:
A1
Abstract:
A speech recognition neural network system includes an encoder neural network and a decoder neural network. The encoder neural network generates an encoded sequence from an input acoustic sequence that represents an utterance. The input acoustic sequence includes a respective acoustic feature representation at each of a plurality of input time steps, the encoded sequence includes a respective encoded representation at each of a plurality of time reduced time steps, and the number of time reduced time steps is less than the number of input time steps. The encoder neural network includes a time reduction subnetwork, a convolutional LSTM subnetwork, and a network in network subnetwork. The decoder neural network receives the encoded sequence and processes the encoded sequence to generate, for each position in an output sequence order, a set of substring scores that includes a respective substring score for each substring in a set of substrings.

Inventors:
JAITLY NAVDEEP (US)
ZHANG YU (US)
CHAN WILLIAM (CA)
Application Number:
PCT/US2017/055891
Publication Date:
April 19, 2018
Filing Date:
October 10, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GOOGLE LLC (US)
International Classes:
G10L15/16; G06N3/04
Other References:
TARA N SAINATH ET AL: "Learning the Speech Front-end with Raw Waveform CLDNNs", 6 September 2015 (2015-09-06), pages 1 - 5, XP002761544, Retrieved from the Internet
JAN CHOROWSKI ET AL.: "Attention-Based Models for Speech Recognition", 24 June 2015 (2015-06-24), pages 577 - 585, XP055399701, Retrieved from the Internet
W. CHAN; N. JAITLY; Q. LE; O. VINYALS: "Listen, Attend and Spell: A Neural Network for Large Vocabulary Conversational Speech Recognition", INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, 2016
S. IOFFE; C. SZEGEDY: "Batch normalization: Accelerating deep network training by reducing internal covariate shift", PROCEEDINGS OF THE 32ND INTERNATIONAL CONFERENCE ON MACHINE LEARNING, 2015, pages 448 - 456
Attorney, Agent or Firm:
PORTNOV, Michael (US)
Download PDF:
Claims:
CLAIMS

1. A speech recognition neural network system implemented by one or more computers, comprising:

an encoder neural network configured to generate an encoded sequence from an input acoustic sequence,

the input acoustic sequence representing an utterance,

the input acoustic sequence comprising a respective acoustic feature representation at each of a plurality of input time steps,

the encoded sequence comprising a respective encoded representation at each of a plurality of time reduced time steps,

the number of time reduced time steps being less than the number of input time steps, and

the encoder neural network comprising:

a time reduction subnetwork configured to process the input acoustic sequence to generate a sequence of reduced representations comprising a respective reduced representation at each of the plurality of time reduced time steps;

a convolutional LSTM subnetwork configured to, for each time reduced time step, process the reduced representation at the time reduced time step to generate a convolutional LSTM output for the time step; and

a network in network subnetwork configured to, for each time reduced time step, process the convolutional LSTM output at the time reduced time step to generate the encoded representation for the time reduced time step; and

a decoder neural network configured to receive the encoded sequence and process the encoded sequence to generate, for each position in an output sequence order, a set of substring scores that includes a respective substring score for each substring in a set of substrings.

2. The system of claim 1, wherein the time reduction subnetwork comprises:

a first time reduction block comprising:

a first depth concatenation layer configured to depth concatenate acoustic feature representations at multiple adjacent input time steps at predetermined intervals in the input acoustic sequence to generate a first sequence of concatenated representations; and a first time-reduction convolutional layer configured to process the first sequence of concatenated representations to generate a sequence of initial reduced representations comprising a respective initial reduced representation at each of a plurality of initial time reduced time steps; and

a second time reduction block comprising:

a second depth concatenation layer configured to depth concatenate initial reduced representations at multiple adjacent initial time reduced time steps at predetermined intervals in the initial reduced sequence to generate a second sequence of concatenated representations; and

a second time-reduction convolutional layer configured to process the second sequence of concatenated representations to generate the sequence of reduced representations comprising a reduced representation at each of the plurality of time reduced time steps.

3. The system of claim 1 or claim 2, wherein the convolutional LSTM subnetwork comprises a plurality of residual blocks stacked one after the other.

4. The system of claim 3, wherein each residual block comprises:

a convolutional neural network layer and a convolutional LSTM neural network layer separated by at least a batch normalization layer.

5. The system of claim 4, wherein each residual block further comprises:

a skip connection from an input to the residual block to an output of the convolutional LSTM neural network layer.

6. The system of any one of the preceding claims, wherein the network in network subnetwork comprises a plurality of LSTM layers.

7. The system of claim 6, wherein the network in network subnetwork comprises a respective l x l convolutional layer in between each pair of LSTM layers.

8. The system of claim 7, wherein each l x l convolutional layer is followed by a respective batch normalization layer.

9. The system of any one of claims 1-8, further comprising:

a decoder subsystem configured to generate a sequence of substrings from the substring scores that represents a transcription of the utterance.

10. A method comprising:

receiving an input acoustic sequence representing an utterance; and

processing the input acoustic sequence using the encoder neural network of any one of claims 1 -9 to generate an encoded sequence comprising a respective encoded

representation at each of a plurality of time reduced time steps.

11. The method of claim 10, further comprising:

processing the encoded sequence using a decoder neural network to generate, for each position in an output sequence order, a set of substring scores that includes a respective substring score for each substring in a set of substrings.

12. The method of claim 10 or claim 11 , further comprising:

generating a sequence of substrings from the substring scores that represents a transcription of the utterance.

13. One or more computer storage media storing instructions that when executed by one or more computers cause the one or more computers to implement the respective system of any one of claims 1-9.

14. One or more computer 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 method of any one of claims 10-12.

15. Apparatus comprising at least one processor and at least one computer storage medium storing instructions that when executed by the at least one processor, cause the system of any one of claims 1 to 9 to be implemented and/or the method of any one of claims 10 to 12 to be performed.

Description:
VERY DEEP CONVOLUTIONAL NEURAL NETWORKS FOR END-TO-END

SPEECH RECOGNITION

CROSS-REFERENCE TO RELATED APPLICATION

[1] This application claims priority to U.S. Provisional Application Serial No.

62/406,345, filed on October 10, 2016. The disclosure of the prior application is considered part of and is incorporated by reference in the disclosure of this application.

BACKGROUND

[2] This specification relates to speech recognition using neural networks.

[3] Speech recognition systems receive an acoustic sequence and generate a transcription of an utterance represented by the acoustic sequence. Some speech recognition systems include a pronunciation system, an acoustic modeling system and a language model. The acoustic modeling system generates a phoneme representation of the acoustic sequence, the pronunciation system generates a grapheme representation of the acoustic sequence from the phoneme representation, and the language model generates the transcription of the utterance that is represented by the acoustic sequence from the grapheme representation.

SUMMARY

[4] This specification describes a speech recognition system implemented as computer programs on one or more computers in one or more locations.

[5] The speech recognition includes an encoder neural network configured to generate an encoded sequence from an input acoustic sequence. The input acoustic sequence represents an utterance. The input acoustic sequence includes a respective acoustic feature

representation at each of a plurality of input time steps. The encoded sequence includes a respective encoded representation at each of a plurality of time reduced time steps. The number of time reduced time steps is less than the number of input time steps.

[6] The encoder neural network includes a time reduction subnetwork configured to process the input acoustic sequence to generate a sequence of reduced representations including a respective reduced representation at each of the plurality of time reduced time steps. The encoder neural network also includes a convolutional LSTM subnetwork configured to, for each time reduced time step, process the reduced representation at the time reduced time step to generate a convolutional LSTM output for the time step. The encoder neural network further includes a network in network subnetwork configured to, for each time reduced time step, process the convolutional LSTM output at the time reduced time step to generate the encoded representation for the time reduced time step.

[7] The speech recognition system further includes a decoder neural network configured to receive the encoded sequence and process the encoded sequence to generate, for each position in an output sequence order, a set of substring scores that includes a respective substring score for each substring in a set of substrings.

[8] Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. By generating an encoded representation of a received acoustic sequence using the encoder neural network as described in this specification, the performance of a speech recognition neural network that includes the encoder neural network can be improved. In particular, the encoder neural network as described in this specification adds depth of processing using more non-linearities and expressive power, while keeping the number of parameters of the encoder neural network manageable, in effect increasing the amount of computation per parameter. That is, the encoder neural network adds depth of processing in an effective manner to both result in improved performance and maintain a reasonable computational footprint, i.e., without requiring excessive processing resources and memory to store the speech recognition neural network or to recognize input speech using the neural network.

[9] The details of one or more embodiments of the subject matter of this specification 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, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[10] FIG. 1 shows an example speech recognition system.

[11] FIG. 2 shows an example architecture of an encoder neural network.

[12] FIG. 3 is a flow diagram of an example process for generating a substring sequence representing a transcription of an utterance represented by an input acoustic sequence.

[13] Like reference numbers and designations in the various drawings indicate like elements. DETAILED DESCRIPTION

[14] FIG. 1 illustrates an example speech recognition system 100. The speech recognition system 100 is an example of a system implemented as computer programs on one or more computers in one or more locations, in which the systems, components, and techniques described below can be implemented.

[15] The speech recognition system 100 obtains input acoustic sequences and processes the input acoustic sequences to generate substring sequences. Each substring sequence is a transcription of the utterance represented by the corresponding input acoustic sequence. For example, the speech recognition system 100 can obtain an input acoustic sequence 102 and generate a corresponding substring sequence 1 16 that is a transcription of the utterance represented by the input acoustic sequence 102.

[16] The input acoustic sequence 102 may include a sequence of multiple frames of audio data that is a digital representation of an utterance, e.g., a continuous stream of data. The sequence of multiple frames of audio data may correspond to a first set of time steps, e.g., where each frame of audio data is associated with 10 milliseconds of audio stream data. Each frame of audio data in the sequence of multiple frames of audio data may include feature values for the frame that characterizes the utterance at the corresponding time step.

[17] The substring sequence 116 may include a sequence of substrings that are a transcription of the utterance represented by the input acoustic sequence 102. A substring may include one or more characters. For example, the set of substrings may be a character set which includes an alphabet of alphabetic letters. The alphabet is a standard set of alphabetic letters which is used to write one or more natural languages, generally because the alphabetic letters represent phonemes in the spoken natural language. For example, the alphabet may be the English alphabet. The character set may also include Arabic numerals, a space character, a comma character, a period character, an apostrophe character, and an unknown character. In another example, the set of substrings may include word pieces, i.e., partial words, words, or both.

[18] To generate a substring sequence for an input acoustic sequence, the speech recognition system 100 implements an attention-based sequence to sequence (seq2seq) model that has been trained to transcribe an input acoustic sequence to a substring sequence. For example, assuming that the input acoustic sequence 102 of audio frames is denoted as x = a?i , . . · j & τ} 5 and the output substring sequence 116 of substrings is denoted as — U'¾ > · * < * ϋ $ } 5 then the model determines each substring in the output substring sequence using a conditional distribution over the previously generated substrings and the input sequence x . The probability of the entire output substring sequence is computed using the chain rule of probabilities:

[19] The model includes two sub-modules an acoustic model encoder, e.g. the encoder neural network 104, and an attention-based character decoder, e.g., the decoder neural network 114.

[20] The encoder neural network 104 is configured to process the input acoustic sequence 102 and to generate an alternative representation for the input acoustic sequence 102. The alternative representation may include an encoded sequence 112 of multiple frames of audio data that correspond to a second set of time steps. In some implementations, the encoded sequence 112 is a high level representation of the input acoustic sequence 102, i.e., the second set of time steps in the encoded sequence 112 is smaller than the first set of time steps in the input acoustic sequence 102. That is, the encoder neural network 104 can transform the original input sequence x into a high level representation:

{hi , . . , , ½ ) ifJi U < T. (2)

[21] To generate the high level representation of the input acoustic sequence 102, the encoder neural network 104 includes a time reduction subnetwork 106, a convolutional long short-term memory (LSTM) subnetwork 108, and a network-in-network subnetwork 110. The NiN subnetwork 110 generally includes multiple bidirectional LSTM neural network layers. A BLSTM neural network layer is a neural network layer that has one or more LSTM memory blocks and that predicts or labels each element of a sequence based on both the past and the future context of the element. An example BLSTM neural network that can be used to process acoustic sequences is described in more detail in "Hybrid Speech Recognition with Bidirectional LSTM " Alex Graves, Navdeep Jaitly, and Abdel-rahman Mohamed, Automatic Speech Recognition and Understanding Workshop, 2013. The time reduction subnetwork 106 includes multiple residual blocks with each block including a convolutional neural network layer and a convolutional LSTM neural network layer separated by at least a batch normalization layer. The time reduction subnetwork 106 includes multiple time reduction blocks with each block including a depth concatenation layer and time-reduction

convolutional layer. The architecture of the encoder neural network 104 is described in more detail with reference to FIG. 2.

[22] After the encoder neural network 104 has generated the encoded sequence 112, the decoder neural network 1 14 is configured to process the encoded sequence 1 12 and generates a substring sequence 1 16 from the encoded sequence 1 12. In particular, the decoder neural network 1 14 is configured to generate, for each position in an output sequence order, a set of substring scores that includes a respective substring score for each substring in the substring sequence 116. A respective substring score for each substring defines a likelihood that the substring represents the correct transcription of the utterance represented by the input acoustic sequence 102.

[23] The decoder neural network 114 is then configured to generate the sequence 116 of substrings from the set of substring scores. The substring sequence 116 represents the transcription of the utterance represented by the input acoustic sequence 102.

[24] In some implementations, the decoder neural network 1 14 is an attention-based recurrent neural network. Examples of the decoder neural network 114 and example techniques for generating transcriptions of utterances using the substring scores generated by the decoder neural network 1 14 are described in more detail in W. Chan, N. Jaitly, Q. Le, and O. Vinyals, "Listen, Attend and Spell: A Neural Network for Large Vocabulary

Conversational Speech Recognition, ' " in International Conference on Acoustics, Speech, and Signal Processing, 2016.

[25] FIG. 2 shows an example architecture of an encoder neural network of a speech recognition system, for example, the encoder neural network of 104 of the speech recognition system 100 of FIG.1.

[26] The encoder neural network 104 includes a time reduction subnetwork 106, a convolutional LSTM subnetwork 108, and a network-in-network subnetwork 1 10.

[27] The time reduction subnetwork 106 includes multiple time-reduction blocks, e.g., the first time-reduction block 208 and the second time-reduction block 210. The time reduction subnetwork 106 is configured to receive and to process the input acoustic sequence 102 through the time-reduction blocks 208 and 210. The input acoustic sequence 102 may include a sequence of multiple frames of audio data that is a digital representation of an utterance, e.g., a continuous stream of data. The sequence of multiple frames of audio data may correspond to a first set of time steps, e.g., where each frame of audio data is associated with 10 milliseconds of audio stream data. Each time-reduction block includes a depth concatenation layer and a time-reduction convolutional layer. For example, the time- reduction block 208 includes a depth concatenation layer 230 and a time-reduction convolutional layer 232. The time-reduction block 208 includes a depth concatenation layer 234 and a time-reduction convolutional layer 236.

[28] Since seq2seq models may need to handle very long input acoustic sequence (i.e., > 2000 frames), if a convolutional neural network (CNN) layer is simply stacked before Bidirectional Long-Short Term Memory (BLSTM) neural network layers (e.g., the BLSTM layers in the network-in-network subnetwork 110 as described below), the system may quickly run out of GPU memory for deep models and may also have excessive computation times. To alleviate this problem, the time reduction subnetwork 106 is configured to apply concatenation and striding in each time-reduction block to reduce the time dimensionality and memory footprint. The time reduction subnetwork 106 is configured to process the input acoustic sequence 102 through the time-reduction blocks to generate a reduced sequence that includes a respective reduced representation at each time-reduced time step in a set of time- reduced time steps, with the number of time-reduced time steps in the second set being less than the number of time steps in the first set of time steps of the input acoustic sequence 102.

[29] In particular, the depth concatenation layer 234 in the block 208 is configured to depth concatenate acoustic feature representations at multiple adjacent input time steps at predetermined intervals in the input acoustic sequence to generate a first sequence of concatenated representations. For example, assuming the input time steps are {ti, t2, t3, tn} , the depth concatenation layer 234 may depth concatenate the acoustic feature representations at multiple adjacent time steps, e.g., three time steps ti, t2, and t3, to generate the first concatenated representation for a first initial time-reduced time step ti-3. The depth concatenation layer 234 then moves forward by a number of time steps determined by the stride of the convolutional NN layer 236, e.g. k time steps if the layer 236 has stride k, and continues concatenating the same number of times steps. For example, the layer 234 is configured to move forward by two time steps and concatenate the next three time steps t 3 , , and is to generate a second concatenated representation for a second initial time-reduced time step t 3 -5. The layer 234 repeats the above process until reaching the last input time steps in order to generate the first sequence of concatenated representations of the input acoustic sequence for the initial time-reduced time steps. As a result, the number of initial time- reduced time steps has been reduced to half of the number of time steps in the set of input time steps.

[30] The time-reduction convolutional layer 236 is then configured to process the first sequence of concatenated representations to generate a sequence of initial reduced representations including a respective initial reduced representation at each of a plurality of initial time-reduced time steps.

[31] The depth concatenation layer 230 in the time-reduction block 210 is configured to depth concatenate the initial reduced representations at multiple adjacent initial time-reduced time steps at predetermined intervals in the initial reduced sequence to generate a second sequence of concatenated representations. For example, the layer 230 is configured to concatenate the initial reduced representations at three initial time-reduced time steps ti-3, t3-5, and t5-7. The layer 230 is then configured to move by two initial time-reduced time steps (i.e. assuming the time-reduction convolutional layer 232 has stride 2) and to concatenate the next three initial time-reduced time steps ts-7, t7-9, and ts>-n. The layer 230 repeats the above process until reaching the last initial time-reduced time step in order to generate a second sequence of concatenated representations of the input acoustic sequence.

[32] The time-reduction convolutional layer 232 is then configured to process the second sequence of concatenated representations to generate the sequence of reduced representations comprising a reduced representation at each of the plurality of time reduced time steps. By processing the input acoustic sequence through the time-reduction blocks 208 and 210 as described in the above example, the number of time steps in the output of the time reduction subnetwork 106, e.g., the sequence of reduced representations, has been reduced by 4 times the number of input time steps of the original input acoustic sequence.

[33] In some implementations, each time-reduction convolutional layer in each time- reduction block in the subnetwork 106 is followed by a batch normalization layer that normalizes each layer's inputs to reduce internal covariate shift. Batch normalization layers enable higher learning rates and robust initialization as well as improving generalization by making normalization a part of a model architecture and performing the normalization for each training mini-batch of training data. Batch normalization is particularly useful for training seq-2-seq models, which have high variance in the gradient (especially from random initialization). Bath normalization is described in detail in S. Ioffe and C. Szegedy, "Batch normalization: Accelerating deep network training by reducing internal covariate shift. " In Proceedings of The 32nd International Conference on Machine Learning, pages 448-456, 2015.

[34] The convolutional LSTM subnetwork 108 includes multiple residual blocks (e.g., four residual blocks 212-218). Each residual block includes a convolutional layer and a convolutional LSTM neural network layer (e.g., a 3x3 convolutional LSTM filter) separated by at least a batch normalization layer. The convolutional layer may precede the

convolutional LSTM layer in each block, or vice versa. A convolutional LSTM neural network layer uses a convolution to replace the inner product within the LSTM unit. The convolutional LSTM neural network layer in each residual block can be a bidirectional convolutional LSTM layer. Each residual block includes a skip connection from an input to the residual block to an output of the convolutional LSTM neural network layer in the residual block.

[35] After the time reduction subnetwork 106 has generated a reduced sequence that includes a respective reduced representation at each time reduced time step in the second set of time steps, the convolutional LSTM subnetwork 108 is configured to, for each time reduced time step, collectively process the reduced representation at the time reduced time step through the residual blocks to generate a convolutional LSTM output for the time reduced time step.

[36] The network-in-network (NiN) subnetwork 110 generally includes multiple bidirectional LSTM neural network layer (e.g., bidirectional LSTM neural network layers 220, 224, and 228). The NiN subnetwork 110 further includes a respective lxl convolutional layer in between each pair of bidirectional LSTM neural network layers to increase the network depth. For example, the NiN subnetwork 110 includes lxl convolutional layer 222 between bidirectional LSTM layer 220 and bidirectional LSTM layer 224, and lxl convolutional layer 226 between bidirectional LSTM layer 224 and bidirectional LSTM layer 228. Each lxl convolutional layer is followed by a respective batch normalization layer. The use of lxl convolutional layers increases the depth and expressive power of the encoder neural network 104 while reducing the total number of parameters that would have been needed otherwise to build such deep networks.

[37] The NiN subnetwork 110 is configured to, for each time reduced time step in the second set of time steps, collectively process the convolutional LSTM output generated by the convolutional LSTM subnetwork 108 at the time reduced time step to generate the encoded representation for the time reduced time step. [38] The above-described encoder neural network 104 adds depth of processing using more non-linearities and expressive power, while keeping the number of parameters of the encoder neural network manageable, in effect increasing the amount of computation per parameter. That is, the encoder neural network adds depth of processing in an effective manner to both result in improved performance and maintain a reasonable computational footprint, i.e., without requiring excessive processing resources and memory to store the speech recognition neural network or to recognize input speech using the neural network. These advantages are realized by, for example, using a combination of skip connections and batch normalization, which allows the encoder neural network to be constructed and efficiently trained without suffering from poor optimization or generalization which may happen when the network 104 is trapped at a local minima. In addition, the use of convolutional LSTM neural network layers, which include convolutions that capture spectral structure and provide shared weight filters, allows the encoder neural network to maintain structural representations and to add more computation power while reducing the number of parameters for better generalization.

[39] FIG. 3 is a flow diagram of an example process 300 for generating a transcription of an utterance represented by an acoustic sequence. For convenience, the process 300 will be described as being performed by a system of one or more computers located in one or more locations. For example, a speech recognition system (e.g., the speech recognition system 100 of FIG.1), appropriately programmed, can perform the process 300.

[40] The system receives an input acoustic sequence (step 302). The acoustic sequence represents an utterance and includes a respective frame of audio data for each of a first set of time steps. Each frame of data is an acoustic feature representation of the utterance at the corresponding time step.

[41] The system processes the input acoustic sequence to generate an encoded sequence for the input acoustic sequence (step 304). The encoded sequence is a sequence of multiple frames of audio data that correspond to a second set of time steps. In some implementations, the encoded sequence is a high level representation of the input acoustic sequence, i.e., the second set of time steps in the encoded sequence is smaller than the first set of time steps in the input acoustic sequence. The system processes the input acoustic sequence using an encoder neural network, for example, the encoder neural network of FIG. 1 and FIG. 2, that includes a time reduction subnetwork, a convolutional LSTM subnetwork, and a network in network subnetwork. [42] In particular, the system processes the input acoustic sequence, using the time reduction subnetwork, to generate a sequence of reduced representations including a respective reduced representation at each time reduced time step of the second set of time steps. For each time reduced time step, the system processes, using the convolutional LSTM subnetwork, the reduced representation at the time reduced time step to generate a convolutional LSTM output for the time step. The system then, for each time reduced time step, processes the convolutional LSTM output at the time reduced time step to generate the encoded representation for the time reduced time step. The encoded sequence includes encoded representations generated by the system for all time reduced time steps in the second set of time steps.

[43] The system processes the encoded sequence to generate, for each position in an output sequence order, a set of substring scores that includes a respective substring score for each substring in a set of substrings (step 306). In some implementations a substring may include one or more characters. For example, the system may process the encoded sequence for the input acoustic sequence using an attention-based character decoder, e.g., the decoder neural network 1 14 of FIG. 1 , to generate, for each position in an output sequence order, a set of substring scores that includes a respective substring score for each substring in a set of substrings. The set of substrings may include a set of alphabetic letters which may be used to write one or more natural languages, e.g., the English alphabet and Arabic numerals {a, b, c, ... , z, 0, ... , 9} . The set of substrings may also include a space character, a comma character, a period character, an apostrophe character, and an unknown character. In some cases, the set of substrings may include word pieces, i.e., partial words, words, or both. A respective substring score for each substring defines a likelihood that the substring represents the correct transcription of the utterance represented by the input acoustic sequence.

[44] The system generates a sequence of substrings from the substring scores that represents a transcription of the utterance (step 308). Example techniques for generating transcriptions of utterances using the scores generated by the decoder neural network are described in more detail in W. Chan, N. Jaitly, Q. Le, and O. Vinyals, "Listen, Attend and Spell: A Neural Network for Large Vocabulary Conversational Speech Recognition, ' " in International Conference on Acoustics, Speech, and Signal Processing, 2016.

[45] This specification uses the term "configured" in connection with systems and computer program components. For a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions.

[46] Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., 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, data processing apparatus. The computer storage medium can be a machine- readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.

[47] The term "data processing apparatus" refers to data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can also be, or further include, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can optionally include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

[48] A computer program, which may also be referred to or described as a program, software, a software application, an app, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages; and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A program may, but need not, correspond to a file in a file system. A program can be stored in a portion 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 multiple coordinated files, e.g., files that store one or more modules, sub-programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a data communication network.

[49] The processes and logic flows described in this specification can 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 can also be performed by special purpose logic circuitry, e.g., an FPGA or an ASIC, or by a combination of special purpose logic circuitry and one or more programmed computers.

[50] Computers suitable for the execution of a computer program can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. The central processing unit and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, 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.

[51] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., 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.

[52] To provide for interaction with a user, embodiments of the subject matter described in this specification 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 and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, 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. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's device in response to requests received from the web browser. Also, a computer can interact with a user by sending text messages or other forms of message to a personal device, e.g., a smartphone that is running a messaging application, and receiving responsive messages from the user in return.

[53] Data processing apparatus for implementing machine learning models can also include, for example, special-purpose hardware accelerator units for processing common and compute-intensive parts of machine learning training or production, i.e., inference, workloads.

[54] Machine learning models can be implemented and deployed using a machine learning framework, e.g., a TensorFlow framework, a Microsoft Cognitive Toolkit framework, an Apache Singa framework, or an Apache MXNet framework.

[55] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described in this specification, or 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 a local area network (LAN) and a wide area network (WAN), e.g., the Internet.

[56] The computing system can include clients and servers. A client and server are generally 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 transmits data, e.g., an HTML page, to a user device, e.g., for purposes of displaying data to and receiving user input from a user interacting with the device, which acts as a client. Data generated at the user device, e.g., a result of the user interaction, can be received at the server from the device.

[57] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially be claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

[58] Similarly, while operations are depicted in the drawings and recited in the claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[59] Particular 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. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.