# Patent

## Title
System and method for speech recognition using deep recurrent neural networks

## Abstract

Deep recurrent neural networks applied to speech recognition. The deep recurrent neural networks (RNNs) are preferably implemented by stacked long short-term memory bidirectional RNNs. The RNNs are trained using end-to-end training with suitable regularization.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application claims priority to U.S. Provisional Application No. 61/731,047, filed on Nov. 29, 2012. The disclosure of the prior application is considered part of and is incorporated by reference in the disclosure of this application.


TECHNICAL FIELD
The present invention relates generally to speech recognition and more specifically to speech recognition provided by neural networks.
BACKGROUND
Neural networks have a long history in speech recognition, most notably as acoustic models for hybrid or tandem hidden Markov Model (HMM) systems. The recent introduction of deep networks to hybrid systems has improved results.
Recurrent neural network (RNN)-HMM hybrids have also been proposed but do not currently perform as well as deep feedforward networks. An alternative to HMM-RNN hybrids is to train RNNs directly for speech recognition. This approach exploits the larger state-space and richer dynamics of RNNs compared to HMMs, and makes it possible to use end-to-end training with no predefined alignment between the input and target sequences. Long Short-term Memory is an RNN architecture with an improved memory that has been successful at end-to-end cursive handwriting recognition. However it has so far made little impact on speech recognition.
It is an object of the following to obviate or mitigate at least one of the foregoing issues.
SUMMARY
In one aspect, a system for speech recognition comprising a deep recurrent neural network is provided.



DESCRIPTION OF THE DRAWINGS
The features of the invention will become more apparent in the following detailed description in which reference is made to the appended drawings wherein:
FIG. 1 is a deep recurrent neural network;
FIG. 2 is a memory cell of a long short-term memory recurrent neural network;
FIG. 3 is a bidirectional recurrent neural network; and
FIG. 4 is a training method for a deep recurrent neural network.



DETAILED DESCRIPTION
Embodiments will now be described with reference to the figures. It will be appreciated that for simplicity and clarity of illustration, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. In addition, numerous specific details are set forth in order to provide a thorough understanding of the embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the embodiments described herein. Also, the description is not to be considered as limiting the scope of the embodiments described herein.
It will also be appreciated that any module, unit, component, server, computer, terminal or device exemplified herein that executes instructions may include or otherwise have access to computer readable media such as storage media, computer storage media, or data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by an application, module, or both. Any such computer storage media may be part of the device or accessible or connectable thereto. Any application or module herein described may be implemented using computer readable/executable instructions that may be stored or otherwise held by such computer readable media.
RNNs are inherently deep in time, since their hidden state is a function of all previous hidden states. It has now been found that RNNs can also benefit from depth in space; that is from stacking multiple recurrent hidden layers on top of each other. In one aspect, such an RNN is provided, which is referred to herein as a “deep RNN”.
In another aspect, each hidden layer of the deep RNN is implemented by a Long Short-term Memory (LSTM) RNN, providing a deep LSTM RNN. It has been found that a deep LSTM RNN configured in accordance with the following details can provide high performance in speech recognition.
In yet another aspect, hidden layers of the deep RNN are implemented by bidirectional RNNs (BRNNs) which compute both forward and backward hidden sequences, exploiting future context of a speech pattern.
In a further aspect, hidden layers of the deep RNN may be implemented by a combination of LSTM RNNs and BRNNs.
In yet another aspect, an end-to-end training module and method is provided which, in one implementation, is operable to jointly train RNNs as acoustic and language models.
Referring now to FIG. 1, a deep RNN is shown. As will be appreciated by a person of skill in the art, any layer, component of a layer, or multiple layers may be implemented by one or more processors. A memory may also be provided for storing activation functions, weights and network topology, including numbers and types of hidden layers, depths of layers, etc.
Given an input sequence x=(x1, . . . , xT), an exemplary recurrent neural network (RNN) may compute the hidden vector sequence h=(h1, . . . , hT) by iterating the following equation from t=1 to T:

ht=H(Wxhxt+Whhht−1+bh)  (1)

where Wxh is the input-hidden weight matrix, Whh is the hidden-hidden weight matrix, bh is the hidden bias vector and H is the hidden layer function.

In one aspect, layers of the deep RNN may be provided by a LSTM RNN. In current RNNs, H is usually an elementwise application of a sigmoid function. However, it has been found that the deep LSTM RNN described herein, which uses purpose-built memory cells, as shown for example in FIG. 2, to store information, is operable to determine and exploit long range context. In an exemplary LSTM implemented herein, H may be implemented by the following composite function:

it=σ(Wxixt+Whiht−1+Wcict−1+bi)  (2)

ft=σ(Wxfxt+Whfht−1+Wcfct−1+bf)  (3)

ct=ftct−1+it tan h(Wxcxt+Whc+bc)  (4)

ot=σ(Wxoxt+Whoht−1+Wcoct−1+bo)  (5)

ht=ot tan h(ct)  (6)

where i, f, o and c are respectively the input gate, forget gate, output gate and cell activation vectors, all of which are the same size as the hidden vector h. The weight matrices from the cell to gate vectors (e.g., Wsi) may be diagonal, so element m in each gate vector may only receive input from element m of the cell vector.

In another aspect, as shown in FIG. 3, layers of the deep RNN may be provided by a BRNN. While conventional RNNs are only able to make use of previous context, it has been found that, in speech recognition where whole utterances are transcribed at once, it may be beneficial to consider future context as well. BRNNs process data in both directions with two separate hidden layers which are then fed forwards to the same output layer. A BRNN computes the forward hidden sequence =(, . . . , ) and the backward hidden sequence {right arrow over (h)}=({right arrow over (h)}1, . . . , {right arrow over (h)}T), by iterating the backward layer from t=T to 1 and the forward layer from t=1 to T, as follows:




  
    
      
        
          
            h
            ←
          
          t
        
        =
        
          H
          ⁡
          
            (
            
              
                
                  W
                  
                    i
                    ⁢
                    
                      h
                      ←
                    
                  
                
                ⁢
                
                  i
                  t
                
              
              +
              
                
                  W
                  
                    
                      h
                      ←
                    
                    ⁢
                    
                      h
                      ←
                    
                  
                
                ⁢
                
                  
                    h
                    ←
                  
                  
                    t
                    -
                    1
                  
                
              
              +
              
                b
                
                  h
                  ←
                
              
            
            )
          
        
      
    
    
      
        (
        7
        )
      
    
  
  
    
      
        
          
            h
            →
          
          t
        
        =
        
          H
          ⁡
          
            (
            
              
                
                  W
                  
                    i
                    ⁢
                    
                      h
                      →
                    
                  
                
                ⁢
                
                  i
                  t
                
              
              +
              
                
                  W
                  
                    
                      h
                      →
                    
                    ⁢
                    
                      h
                      →
                    
                  
                
                ⁢
                
                  
                    h
                    →
                  
                  
                    t
                    +
                    1
                  
                
              
              +
              
                b
                
                  h
                  →
                
              
            
            )
          
        
      
    
    
      
        (
        8
        )
      
    
  




In yet another aspect, combining BRNNs with LSTM gives bidirectional LSTM, which may further access long-range context in both input directions. Deep networks are operable to provide progressively higher level representations of acoustic data. An exemplary deep RNN may be provided by stacking multiple RNN hidden layers on top of each other, with the output sequence of one layer forming the input sequence for the next. Assuming the same hidden layer function is used for all N layers in the stack, the hidden vector sequences hn may be computed by iterating the following equation from n=1 to N and t=1 to T:

htn=H(Whn−1hnhtn−1+Whnhnht−1n+bhn)  (9)

Where h0=x. Deep bidirectional RNNs can be implemented by replacing each hidden sequence hn with the forward and backward sequences  and {right arrow over (h)}n, and ensuring that every hidden layer receives input from both the forward and backward layers at the level below. If LSTM is used for the hidden layers, the RNN is a deep bidirectional LSTM, which is the exemplary embodiment described in the remainder of the present disclosure.

The present deep RNN may be applied to phoneme recognition, where given an input vector sequence x of audio observations and a target sequence z of phoneme labels, the objective is to output a phoneme sequence y as similar as possible to z.
Referring now to FIG. 4, in one aspect a training method is provided. The training method may comprise regularisation (402), applying an end-to-end training process (404) and decoding (406). In an example, the end-to-end training process may be implemented using a learning set, such as the TIMIT corpus, for example. A resulting deep RNN may be configured to operate on input data, such as speech, for example.
An end-to-end training module implements the end-to-end training process. In various aspects, the end-to-end training module applies a connectionist temporal classification (CTC) and/or a sequence tranduction. In a specific embodiment, the end-to-end training module applies CTC for pretraining and retrains with a sequence transducer.
The training module trains the networks by using their activations to define a normalised, differentiable distribution Pr(y|x) over output sequences and optimising the network weights, for example by applying gradient descent, to maximise log Pr(z|x). Training is, therefore, discriminative, which may be considered more suitable for speech recognition than generative training. It is also end-to-end, in the sense that no intermediate alignment or segmentation is required to define training targets; the network learns to map directly from input sequences to target sequences. The length of the input sequence is denoted as T, the length of the target sequence as U and the number of possible phonemes as K.
In one aspect, the end-to-end training system applies CTC, which is a method for sequence labelling applied to RNNs. CTC is described generally in A. Graves, S. Fernández, F. Gomez, and J. Schmidhuber, “Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks,” in Proceedings of the International Conference on Machine Learning, ICML 2006, Pittsburgh, USA, 2006, which is incorporated herein by reference.
At every step t along the input sequence, CTC first applies a size K+1 softmax output layer to the network to define a normalised distribution Pr(k|t) over the K phonemes plus an extra blank symbol Ø which represents a non-output. The network decides whether to emit any label, or no label, at every timestep. Taken together these decisions define a distribution over alignments between the input and target sequences. CTC next applies a forward-backward process to sum over all possible alignments and determine the normalised probability Pr(z|x) of the target sequence given the input sequence. Unlike some procedures that have been used in speech and handwriting recognition to ‘integrate out’ over possible segmentations, CTC dispenses with segmentations and instead sums over single-timestep label decisions. RNNs trained with CTC are generally bidirectional, to ensure that every Pr(k|t) is conditioned on the entire input sequence (and not just the inputs up to t). When applying CTC to a deep bidirectional LSTM network, Pr(k|t) may be defined as follows:




  
    
      
        
          y
          t
        
        =
        
          
            
              W
              
                
                  
                    h
                    ←
                  
                  N
                
                ⁢
                y
              
            
            ⁢
            
              
                h
                ←
              
              t
              N
            
          
          +
          
            
              W
              
                
                  
                    h
                    →
                  
                  N
                
                ⁢
                y
              
            
            ⁢
            
              
                h
                →
              
              t
              N
            
          
          +
          
            b
            y
          
        
      
    
    
      
        (
        10
        )
      
    
  
  
    
      
        
          
            Pr
            ⁡
            
              (
              
                k
                |
                t
              
              )
            
          
          =
          
            
              exp
              ⁡
              
                (
                
                  
                    y
                    t
                  
                  ⁡
                  
                    [
                    k
                    ]
                  
                
                )
              
            
            
              
                ∑
                
                  
                    k
                    ′
                  
                  =
                  1
                
                K
              
              ⁢
              
                exp
                ⁡
                
                  (
                  
                    
                      y
                      t
                    
                    ⁡
                    
                      [
                      
                        k
                        ′
                      
                      ]
                    
                  
                  )
                
              
            
          
        
        ,
      
    
    
      
        (
        11
        )
      
    
  




where yt[k] is the kth element of the length K+1 unnormalised output vector yt, and N is the number of bidirectional levels. CTC defines a distribution over output sequences that depends only on the input sequence. When applied to speech recognition it is therefore an acoustic-only model.

In another aspect, the end-to-end training system may apply a sequence transducer, an example of which is an RNN transducer, which implements an additional RNN to model the dependency of each output on the previous outputs, thereby yielding a jointly trained acoustic and language model. The RNN transducer is described generally in A. Graves, “Sequence transduction with recurrent neural networks,” in Representation Learning Workshop, International Conference on Machine Learning (ICML 2012), 2012, which is incorporated herein by reference.
An RNN transducer may comprise two RNNs: a transcription network that models input-output dependencies (similar in approach to a CTC network); and a prediction network that models output-output dependencies by attempting to predict each output from the previous outputs. The transcription network (which may be implemented by a deep bidirectional LSTM as disclosed herein) accepts x as input and returns as output the length T transcription sequence r=((,{right arrow over (h)}1N), . . . , (,{right arrow over (h)}TN)), which may be obtained by concatenating the hidden vectors of the uppermost bidirectional layers in the N level stack.
The prediction network is a unidirectional recurrent neural network, which may be implemented by a single-layer LSTM architecture, that takes as input a sequence of output labels with Ø prepended (a ‘blank’ state before any outputs have been emitted). The labels may be encoded as one-hot vectors, with Ø represented by vector of zeros; the input vectors are therefore size K if there are K possible phonemes. During training, when a length U target transcription z is provided, the input to the prediction network is the length U+1 vector sequence (Ø, z1, . . . , zU) and the output is the length U+1 prediction sequence p of hidden vectors.
An RNN transducer applies the two networks to define a separate probability distribution Pr(k|t,u) over the output labels plus Ø for every pair (t,u), where t is the number of steps along the input sequence, and u is the number of steps along the target sequence. As with CTC, these distributions jointly determine a distribution over all possible alignments between the input and target sequences, which can then be integrated out with a forward-backward algorithm to determine the total log probability of the target sequence.
In the original formulation Pr(k|t,u) was defined by calculating separate label distributions Pr(k|t) and Pr(k|u) for the two networks, then multiplying these together and renormalising. However, it has been found that the outputs of both networks may be provided as inputs to a separate feedforward neural network (which may be referred to as the output network), whose outputs may then be normalised with a softmax function to yield Pr(k|t,u). This may provide a richer set of possibilities for combining information from the two networks, which may lead to better generalisation. In particular, it has been found that the number of deletion errors encountered during decoding may be reduced. For example, the output network may be implemented by first feeding the transcription vector rt to a linear layer to generate the activation vector lt, then feeding lt and pu to a tan h hidden layer to yield ht,u, and finally feeding ht,u to a size K+1 softmax output layer to determine Pr(k|t,u):




  
    
      
        
          l
          t
        
        =
        
          
            
              W
              
                
                  h
                  ←
                
                
                  N
                  l
                
              
            
            ⁢
            
              
                h
                ←
              
              t
              N
            
          
          +
          
            
              W
              
                
                  
                    h
                    →
                  
                  N
                
                ⁢
                l
              
            
            ⁢
            
              
                h
                →
              
              t
              N
            
          
          +
          
            b
            l
          
        
      
    
    
      
        (
        12
        )
      
    
  
  
    
      
        
          h
          
            t
            ,
            u
          
        
        =
        
          tan
          ⁢
          
            
          
          ⁢
          
            h
            ⁡
            
              (
              
                
                  
                    W
                    lh
                  
                  ⁢
                  
                    l
                    
                      t
                      ,
                      u
                    
                  
                
                +
                
                  
                    W
                    pb
                  
                  ⁢
                  
                    p
                    u
                  
                
                +
                
                  b
                  h
                
              
              )
            
          
        
      
    
    
      
        (
        13
        )
      
    
  
  
    
      
        
          y
          
            t
            ,
            u
          
        
        =
        
          
            
              W
              hy
            
            ⁢
            
              h
              
                t
                ,
                u
              
            
          
          +
          
            b
            y
          
        
      
    
    
      
        (
        14
        )
      
    
  
  
    
      
        
          
            Pr
            ⁡
            
              (
              
                
                  k
                  |
                  t
                
                ,
                u
              
              )
            
          
          =
          
            
              exp
              ⁡
              
                (
                
                  
                    y
                    
                      t
                      ,
                      u
                    
                  
                  ⁡
                  
                    [
                    k
                    ]
                  
                
                )
              
            
            
              
                ∑
                
                  
                    k
                    ′
                  
                  =
                  1
                
                K
              
              ⁢
              
                exp
                ⁡
                
                  (
                  
                    
                      y
                      
                        t
                        ,
                        u
                      
                    
                    ⁡
                    
                      [
                      
                        k
                        ′
                      
                      ]
                    
                  
                  )
                
              
            
          
        
        ,
      
    
    
      
        (
        15
        )
      
    
  




The non-output layers may be configured to be the same size (i.e., ||=|{right arrow over (h)}tn|=|pu|=|lt|=|ht,u|); however they may alternatively be varied independently.
RNN transducers may be trained from random initial weights. However, alternatively, they may operate better when the transcription network is initialised with the weights of a pretrained CTC network, the prediction network is initialised with the weights of a pretrained next-step prediction network and only the output network starts from random weights. In a specific embodiment, the prediction network (the transducer's language model) may be pretrained on the phonetic transcriptions of the audio training data; however for other applications it may be beneficial to pretrain on a separate (and much larger) text corpus.
Decoding of the RNN transducers may be provided by a beam search to yield an n-best list of candidate transcriptions. While CTC networks may be decoded using either a form of best-first decoding known as prefix search or by simply taking the most active output at every timestep, in one embodiment CTC networks may be decoded with the same beam search as the transducer, with the modification that the output label probabilities Pr(k|t,u) may not depend on the previous outputs (so Pr(k|t,u)=Pr(k|t)). Beam search may be both more efficient and more effective than prefix search for CTC. Normalisation may comprise sorting the n-best transcriptions by their length normalised log-probabilty log Pr(y)/|y| or, preferably, by Pr(y).
Regularisation may also be beneficial for good performance with RNNs, because their modelling power may render them prone to overfitting. Regularisation may be provided by early stopping and weight noise (the addition of zero-mean, fixed variance Gaussian noise to the network weights during training), for example. Weight noise tends to ‘simplify’ neural networks, in the sense of reducing the amount of information required to transmit the parameters, which may improve generalisation.
In specific embodiments, the training method may comprise CTC, transducer or pretrained transducer (pretrained with CTC, for example). Furthermore, the number of bidirectional hidden levels may be configured to a suitable depth. Preferably, the depth is between 1 and 3 but further levels may be more beneficial. The number of LSTM cells in each hidden layer may also be varied. A suitable number may be approximately 250.
Training of networks may use stochastic gradient descent, with example configuration comprising a learning rate of 10−4, momentum of 0.9 and initial weights uniform on [−0.1,0.1]. All networks may be first trained with no noise and then, starting from the point of lowest log-loss on the development set, retrained with Gaussian weight noise (std. dev. 0.075, for example) until the point of lowest phoneme error rate on the development set. Alternatively, networks may be trained with noise initially. Beam search decoding may be used for all networks, with a beam width of 100, for example.
Although the invention has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the spirit and scope of the invention as outlined in the claims appended hereto. The entire disclosures of all references recited above are incorporated herein by reference.

## Claims

1. A system for speech recognition, comprising:
a deep recurrent neural network (“deep RNN”) implemented on one or more computers, the deep RNN being an RNN comprising an input layer, an output layer, and multiple recurrent hidden layers organized in a stack on top of each other;
wherein the multiple recurrent hidden layers comprise:
a lowest hidden layer configured to receive input vectors from the input layer, and
a highest hidden layer configured to generate output vectors received as inputs by the output layer, wherein at least one of the multiple recurrent hidden layers is implemented by a Long Short-term Memory (“LSTM”) RNN.

2. The system of claim 1, wherein:
the multiple recurrent hidden layers comprise at least three hidden layers.

3. The system of claim 1, wherein:
each hidden layer within the stack produces an output sequence of output vectors and receives an input sequence of input vectors; and
the output sequence of each hidden layer within the stack other than the highest hidden layer is the input sequence of the next higher hidden layer in the stack.

4. The system of claim 3, wherein the same hidden layer function is used for all of the multiple recurrent hidden layers in the deep RNN.

5. The system of claim 1, wherein:
the LSTM RNN computes a hidden vector sequence h=(h1, . . . , hT) for input vectors xt for t=1 to T according to the following composite function:


it=σ(Wxixt+Whiht−1+Wcict−1+bi)



ft=σ(Wxfxt+Whfht−1+Wcfct−1+bf)



ct=ftct−1+it tan h(Wxcxt+Whc+bc)



ot=σ(Wxoxt+Whoht−1+Wcoct−1+bo)



ht=ot tan h(ct)


where σ is a sigmoid function;
where i, f, o, and c are respectively input gate, forget gate, output gate, and cell activation vectors, all of which are the same size as the hidden vector h; and
where each W is a weight matrix and each b is a bias vector.

6. The system of claim 5, wherein each weight matrix W is diagonal.

7. A system for speech recognition, comprising:
a deep recurrent neural network (“deep RNN”) implemented on one or more computers, the deep RNN being an RNN comprising an input layer, an output layer, and multiple recurrent hidden layers organized in a stack on top of each other;
wherein the multiple recurrent hidden layers comprise:
a lowest hidden layer configured to receive input vectors from the input layer, and
a highest hidden layer configured to generate output vectors received as inputs by the output layer, wherein at least one of the multiple recurrent hidden layers is a bidirectional RNN (“BRNN”).

8. The system of claim 7, wherein:
the deep RNN is a deep BRNN in which
each of the multiple recurrent hidden layers between a lowest input layer and a highest output layer is a BRNN implemented to determine both a backward hidden vector sequence  and a forward hidden vector sequence {right arrow over (h)}n in a backward sub-layer and a forward sub-layer, respectively, and
each of the multiple recurrent hidden layers above a bidirectional layer receives input from both the forward and backward sub-layers of the bidirectional layer at the level below.

9. The system of claim 7, wherein:
two or more of the multiple recurrent hidden layers are BRNNs.

10. The system of claim 7, wherein:
the multiple recurrent hidden layers further comprise at least one hidden layer that is a LSTM RNN.

11. A system comprising non-transitory computer readable storage media storing instructions for performing the operations of a training module for training a deep bidirectional Long Short-term Memory recurrent neural network to train the network to map directly from an input vector sequence x of audio observations to a target sequence z of phoneme labels representing possible phonemes, where the length of the input sequence is denoted T, the length of the target sequence is denoted U, and the number of possible phonemes is denoted K, the operations of the training module comprising:
applying Connectionist Temporal Classification (“CTC”) to the network, comprising:
at every step t along the input sequence:
CTC first applies a size K+1 output layer to the network to define a normalized distribution Pr(k|t) over the K phonemes plus an extra blank symbol Ø that represents a non-output, wherein the network determines which label, or no label, to emit at every time step, wherein taken together the network determinations define a distribution over alignments between the input and target sequences; and
CTC next applies a forward-backward process to sum over all possible alignments and determine the normalized probability Pr(z|x) of the target sequence given the input sequence.

12. The system of claim 11, wherein the size K+1 output layer is a softmax output layer.

13. The system of claim 11, wherein Pr(k|t) is defined according to:



  
    
      y
      t
    
    =
    
      
        
          W
          
            
              
                h
                ←
              
              N
            
            ⁢
            y
          
        
        ⁢
        
          
            h
            ←
          
          t
          N
        
      
      +
      
        
          W
          
            
              
                h
                →
              
              N
            
            ⁢
            y
          
        
        ⁢
        
          
            h
            →
          
          t
          N
        
      
      +
      
        b
        y
      
    
  




  
    
      
        Pr
        ⁡
        
          (
          
            k
            |
            t
          
          )
        
      
      =
      
        
          exp
          ⁡
          
            (
            
              
                y
                t
              
              ⁡
              
                [
                k
                ]
              
            
            )
          
        
        
          
            ∑
            
              
                k
                ′
              
              =
              1
            
            K
          
          ⁢
          
            exp
            ⁡
            
              (
              
                
                  y
                  t
                
                ⁡
                
                  [
                  
                    k
                    ′
                  
                  ]
                
              
              )
            
          
        
      
    
    ,
  


where yt[k] is the kth element of the length K+1 unnormalized output vector yt, and N is the number of bidirectional levels.

14. The system of claim 11, wherein the training module operates without intermediate alignment or segmentation of training data and trains the network to map directly from input sequences to target sequences.

15. A system implemented on one or more processors and computer readable storage memory storing a neural network configured to map directly from an input vector sequence x of audio observations to a target sequence z of language outputs, the neural network comprising:
a sequence transducer, the sequence transducer comprising:
a transcription network that (i) takes as input the input vector sequence x of audio observations and (ii) models input-output dependencies; and
a prediction network that (i) generates as output the target sequence z of language outputs and (ii) models output-output dependencies by attempting to predict each output from the previous outputs.

16. The system of claim 15, further comprising:
an additional RNN to model the dependency of each output on the previous outputs, yielding a jointly trained acoustic and language model.

17. The system of claim 15, wherein the input vector sequence x of audio observations the target sequence z of language outputs can be of different lengths.

18. The system of claim 17, wherein the sequence transducer comprises:
a transcription network that takes as input the input vector sequence x of audio observations and that models input-output dependencies; and
a prediction network that generates as output the target sequence z of language outputs and that models output-output dependencies by attempting to predict each output from the previous outputs.

19. The system of claim 18, wherein the transcription network and the prediction network are each an RNN.

20. The system of claim 19, wherein the bidirectional LSTM has 1 to 3 pairs of hidden bidirectional layers.

21. The system of claim 18, wherein:
the transcription network is a bidirectional LSTM that accepts x as input and returns as output the length T transcription sequence
r=((,{right arrow over (h)}1N), . . . , (,{right arrow over (h)}TN)).

22. The system of claim 21, wherein length T transcription sequence r is obtained by concatenating the hidden vectors of the uppermost bidirectional layers in the transcription network.

23. The system of claim 18, wherein the prediction network is configured to predict zU+1 from vector sequence (Ø, z1, . . . , zU).

24. The system of claim 18, wherein:
the prediction network is a unidirectional RNN that takes as input a sequence of output labels, the sequence having a Ø prepended that represents a blank state before any outputs have been emitted; and
when a length U target transcription z is provided during training, the input to the prediction network is the length U+1 vector sequence (Ø, z1, . . . , zU) and the output of the prediction network is a length U+1 prediction sequence p of hidden vectors, where each hidden vector pi in the prediction sequence p is a function of the vector sequence (Ø, z1, . . . , zi−1).

25. The system of claim 24, wherein the output labels are encoded as one-hot vectors with Ø encoded as a vector of zeros.

26. The system of claim 24, wherein input vector sequence x is a sequence of audio observations and the target sequence z is a sequence of phoneme labels each representing a possible phoneme.

27. The system of claim 24, wherein input vector sequence x is a sequence of audio observations and the target sequence z is a sequence of characters.

28. The system of claim 24, wherein the sequence transducer generates no intermediate conversion into phonemes.

29. The system of claim 24, wherein the prediction network is implemented by a single-layer LSTM.

30. The system of claim 18, wherein:
the sequence transducer applies the transcription network and the prediction network to define a separate probability distribution Pr(k|t, u) over the output labels plus Ø for every pair (t, u), where t is the number of steps along the input sequence, and u is the number of steps along the target sequence.

31. The system of claim 30, wherein the sequence transducer provides the outputs of both the transcription network and the prediction network as inputs to a separate output network, the output network being a feed-forward neural network, wherein outputs of the output network are normalized with a softmax function to yield Pr(k|t, u).

32. The system of claim 31, wherein the output network is a linear layer, a tan h hidden layer, and a size K+1 softmax output layer, wherein each transcription vector rt is fed to the linear layer to generate an activation vector lt, each lt and pu is fed to the tan h hidden layer to yield ht,u, and each ht,u is fed to the size K+1 softmax output layer to determine Pr(k|t, u).

33. The system of system of claim 32, wherein the non-output layers are configured to be the same size:
||=|{right arrow over (h)}tn|=|pu|=|lt|=|ht,u|.

34. The system of claim 32, wherein Pr(k|t, u) is determined according to:



  
    
      l
      l
    
    =
    
      
        
          W
          
            
              
                h
                ←
              
              N
            
            ⁢
            l
          
        
        ⁢
        
          
            h
            ←
          
          t
          N
        
      
      +
      
        
          W
          
            
              
                h
                →
              
              N
            
            ⁢
            l
          
        
        ⁢
        
          
            h
            →
          
          t
          N
        
      
      +
      
        b
        l
      
    
  




  
    
      h
      
        t
        ,
        u
      
    
    =
    
      tan
      ⁢
      
        
      
      ⁢
      
        h
        ⁡
        
          (
          
            
              
                W
                lh
              
              ⁢
              
                l
                
                  t
                  ,
                  u
                
              
            
            +
            
              
                W
                pb
              
              ⁢
              
                p
                u
              
            
            +
            
              b
              h
            
          
          )
        
      
    
  




  
    
      y
      
        t
        ,
        u
      
    
    =
    
      
        
          W
          hy
        
        ⁢
        
          h
          
            t
            ,
            u
          
        
      
      +
      
        b
        y
      
    
  




  
    
      Pr
      ⁡
      
        (
        
          
            k
            |
            t
          
          ,
          u
        
        )
      
    
    =
    
      
        
          exp
          ⁡
          
            (
            
              
                y
                
                  t
                  ,
                  u
                
              
              ⁡
              
                [
                k
                ]
              
            
            )
          
        
        
          
            ∑
            
              
                k
                ′
              
              =
              1
            
            K
          
          ⁢
          
            exp
            ⁡
            
              (
              
                
                  y
                  
                    t
                    ,
                    u
                  
                
                ⁡
                
                  [
                  
                    k
                    ′
                  
                  ]
                
              
              )
            
          
        
      
      .

35. The system of claim 18, wherein:
the transcription network is initialized with weights of a pre-trained CTC network; and
the prediction network is initialized with weights of a pre-trained next-step prediction network.