深度学习
  • 前言
  • 第一章:经典网络
    • ImageNet Classification with Deep Convolutional Neural Network
    • Very Deep Convolutional Networks for Large-Scale Image Recognition
    • Going Deeper with Convolutions
    • Deep Residual Learning for Image Recognition
    • PolyNet: A Pursuit of Structural Diversity in Very Deep Networks
    • Squeeze-and-Excitation Networks
    • Densely Connected Convolutional Networks
    • SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
    • MobileNet v1 and MobileNet v2
    • Xception: Deep Learning with Depthwise Separable Convolutions
    • Aggregated Residual Transformations for Deep Neural Networks
    • ShuffleNet v1 and ShuffleNet v2
    • CondenseNet: An Efficient DenseNet using Learned Group Convolution
    • Neural Architecture Search with Reinforecement Learning
    • Learning Transferable Architectures for Scalable Image Recognition
    • Progressive Neural Architecture Search
    • Regularized Evolution for Image Classifier Architecture Search
    • 实例解析:12306验证码破解
  • 第二章:自然语言处理
    • Recurrent Neural Network based Language Model
    • Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
    • Neural Machine Translation by Jointly Learning to Align and Translate
    • Hierarchical Attention Networks for Document Classification
    • Connectionist Temporal Classification : Labelling Unsegmented Sequence Data with Recurrent Neural Ne
    • About Long Short Term Memory
    • Attention Is All you Need
    • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  • 第三章:语音识别
    • Speech Recognition with Deep Recurrent Neural Network
  • 第四章:物体检测
    • Rich feature hierarchies for accurate object detection and semantic segmentation
    • Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
    • Fast R-CNN
    • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
    • R-FCN: Object Detection via Region-based Fully Convolutuional Networks
    • Mask R-CNN
    • You Only Look Once: Unified, Real-Time Object Detection
    • SSD: Single Shot MultiBox Detector
    • YOLO9000: Better, Faster, Stronger
    • Focal Loss for Dense Object Detection
    • YOLOv3: An Incremental Improvement
    • Learning to Segment Every Thing
    • SNIPER: Efficient Multi-Scale Training
  • 第五章:光学字符识别
    • 场景文字检测
      • DeepText: A Unified Framework for Text Proposal Generation and Text Detection in Natural Images
      • Detecting Text in Natural Image with Connectionist Text Proposal Network
      • Scene Text Detection via Holistic, Multi-Channel Prediction
      • Arbitrary-Oriented Scene Text Detection via Rotation Proposals
      • PixelLink: Detecting Scene Text via Instance Segmentation
    • 文字识别
      • Spatial Transform Networks
      • Robust Scene Text Recognition with Automatic Rectification
      • Bidirectional Scene Text Recognition with a Single Decoder
      • multi-task learning for text recognition with joint CTC-attention
    • 端到端文字检测与识别
      • Reading Text in the Wild with Convolutional Neural Networks
      • Deep TextSpotter: An End-to-End Trainable Scene Text Localization and Recognition Framework
    • 实例解析:字符验证码破解
    • 二维信息识别
      • 基于Seq2Seq的公式识别引擎
      • Show and Tell: A Neural Image Caption Generator
      • Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
  • 第六章:语义分割
    • U-Net: Convolutional Networks for Biomedical Image Segmentation
  • 第七章:人脸识别
    • 人脸检测
      • DenseBox: Unifying Landmark Localization with End to End Object Detection
      • UnitBox: An Advanced Object Detection Network
  • 第八章:网络优化
    • Batch Normalization
    • Layer Normalization
    • Weight Normalization
    • Instance Normalization
    • Group Normalization
    • Switchable Normalization
  • 第九章:生成对抗网络
    • Generative Adversarial Nets
  • 其它应用
    • Holistically-Nested Edge Detection
    • Image Style Transfer Using Convolutional Nerual Networks
    • Background Matting: The World is Your Green Screen
  • Tags
  • References
由 GitBook 提供支持
在本页
  • 介绍
  • 算法细节
  • MFCC
  • 多层双向LSTM
  • RNN Transducer
  • 总结

这有帮助吗?

  1. 第三章:语音识别

Speech Recognition with Deep Recurrent Neural Network

上一页第三章:语音识别下一页第四章:物体检测

最后更新于4年前

这有帮助吗?

介绍

语音识别是具有巨大市场和研究潜力的一个领域,语音识别已经有了几十年的研究历史了。2000年前,涌现了大量的语音识别技术,例如:混合高斯模型(GMM),隐马尔科夫模型(HMM),梅尔倒谱系数(MFCC),n元祖语言模型(n-gram LM)等等(图1)。在21世纪的第一个十年,这些技术被成功应用到实际系统中。但同时,语音识别的技术仿佛遇到了瓶颈期,不论科研进展还是实际应用均进展非常缓慢。

2012年,深度学习兴起。仅仅一年之后,Hinton的著名学子Alex Graves的这篇使用深度学习思想解决语音识别问题的这篇文章引起了广泛关注,为语音识别开辟了新的研究方向,这篇文章可以说是目前所有深度学习解决语音识别方向的奠基性文章了。目前深度学习均采用和其类似的RNN+CTC的框架,甚至在OCR领域也是采用了同样的思路。

图1: 语音识别传统模型

算法细节

在这篇论文涉及的实验里,使用了MFCC提取音频特征,多层双向RNN 编码特征(节点使用LSTM),CTC构建声学模型。由于CTC没有构建语音模型的能力,论文使用了RNN Transducer 联合训练声学模型和语言模型。结构如图2。

图2:基于深度学习的语音识别架构

MFCC

首先,作者使用MFCC将音波的每个时间片转换成一个39维的特征向量。MFCC(Mel-Frequency Cepstral Coefficients)的全称是梅尔频率倒谱系数,是一种基于傅里叶变换的提取音频特征的方法。之后也有使用一维卷积提取特征的方法,由于MFCC和深度学习关系不大,需要详细了解的可以自行查阅相关文档,在这里可以简单理解为一种对音频的特征提取的方法。

多层双向LSTM

BRNN添加了一个沿时间片反向传播的节点,计算方式和RNN隐节点相同,但是第t个时间片的计算需要使用第t+1个时间片的隐节点

正向:h⃗t=σ(Wxh⃗xt+Wh⃗h⃗h⃗t−1+bh⃗)\vec{h}_t = \sigma(W_{x\vec{h}}x_t + W_{\vec{h}\vec{h}}\vec{h}_{t-1} + b_{\vec{h}})ht​=σ(Wxh​xt​+Whh​ht−1​+bh​)

反向:h′⃗t=σ(Wxh′⃗xt+Wh′⃗h′⃗h′⃗t+1+bh′⃗)\vec{h'}_t = \sigma(W_{x\vec{h'}}x_t + W_{\vec{h'}\vec{h'}}\vec{h'}_{t+1} + b_{\vec{h'}})h′t​=σ(Wxh′​xt​+Wh′h′​h′t+1​+bh′​)

yt=Wh⃗yh⃗t+Wh′⃗yh′⃗t+byy_t = W_{\vec{h}y}\vec{h}_t + W_{\vec{h'}y}\vec{h'}_t + b_yyt​=Why​ht​+Wh′y​h′t​+by​

其中,h⃗t\vec{h}_tht​和h′⃗\vec{h'}h′分别表示正向和反向传输的隐层节点的输出。多层RNN的实现是通过stacking的形式完成的,即第n层,第t个时间片的节点使用第n-1层和第t-1个时间片的隐层节点的输出作为输入,

htn=σ(Whn−1hnhtn−1+Whnhnht−1n+bhn)h_t^n = \sigma(W_{h^{n-1}h^n}h_t^{n-1} + W_{h^{n}h^{n}}h_{t-1}^{n} + b_h^n)htn​=σ(Whn−1hn​htn−1​+Whnhn​ht−1n​+bhn​)

对于一个N层的RNN,第t个时间片的输出是

yt=WhNyhtN+byy_t = W_{h^Ny}h^N_t + b_yyt​=WhNy​htN​+by​

RNN Transducer

CTC使用RNN得到的特征向量作为输入,所以CTC建模的是声学模型,但是很多时候我们也需要在模型中加入语言模型。RNN Transducer便是一种联合建立声学模型和语言模型的一种方法。更具体的讲,CTC建模的是每个时间片yty_tyt​的概率分布

Pr(k∣t)=exp(yt[k])∑k′=1Kexp(yt[k′])Pr(k|t) = \frac{exp(y_t[k])}{\sum_{k'=1}^{K}exp(y_t[k'])}Pr(k∣t)=∑k′=1K​exp(yt​[k′])exp(yt​[k])​

而RNN Transducer建模的是当前时间片yty_tyt​和上个时间片输出的概率分布pup_upu​的联合概率

lt=Wh⃗Nlh⃗t+Wh′⃗Nlh′⃗t+bll_t = W_{\vec{h}N_l}\vec{h}_t + W_{\vec{h'}N_l}\vec{h'}_t + b_llt​=WhNl​​ht​+Wh′Nl​​h′t​+bl​

ht,u=tanh(Wlhlt,u+Wpbpu+bh)h_{t,u} = tanh(W_{lh}l_{t,u} + W_{pb}p_u + b_h)ht,u​=tanh(Wlh​lt,u​+Wpb​pu​+bh​)

yt,u=Whyht,u+byy_{t,u}=W_{hy}h_{t,u} + b_yyt,u​=Why​ht,u​+by​

Pr(k∣t,u)=exp(yt,u[k])∑k′=1Kexp(yt,u[k′]Pr(k|t,u) = \frac{exp(y_{t,u}[k])}{\sum_{k'=1}^{K}exp(y_{t,u}[k']}Pr(k∣t,u)=∑k′=1K​exp(yt,u​[k′]exp(yt,u​[k])​

总结

作为深度学习进行语音识别的开山之作,这篇文章提供了MFCC+LSTM+CTC的框架流程。后面几年的深度学习相关论文均是在其基础上的扩展,虽然内容很简单,但是熟悉这一套流程框架还是有必要的。

在这篇实验中,作者使用多层双向LSTM提取音频的时序特征,关于LSTM能解决RNN的梯度消失/爆炸以及长期依赖的问题已在本书节分析过,此处不再赘述。双向LSTM(BLSTM)和双向RNN(BRNN)的不同之处仅在于BLSTM的隐节点使用和LSTM带有三个门机制的节点。所以我们首先讲解一下BRNN。

RNN Transducer的解码依然可以使用beam search,CTC和beam search的讲解在已详细分析。

2.4
2.3节