斯坦福大学-自然语言处理与深度学习(CS224n)笔记 第十二课 语音处理的端对端模型

课程概要

1、自动语音识别(ASR)
2、语音识别:经典的方法
3、端对端训练模型

  • Connectionist Temporal Classification(CTC)
  • 基于attention的序列对序列音频模型
  • 在线序列对序列模型
  • 卷积神经网络在LAS中应用
  • 选择正确的输出目标
  • 模型的缺陷以及改进

4、未来的研究方向

一、自动语音识别(ASR)

将语音信号转化为转为对应的文字信息。
在这里插入图片描述为什么使用ASR?

  • 语音是与人类交流的一个自然的交互方式
    • 可以进行自由交流
    • 人类与之交互不需要学习新技术
  • 有更多的应用
    • 控制简单的设备:车内设备、家用设备等等
    • 和智能设备交互:聊天机器人等

二、语音识别:经典的方法

建立一个文本序列Y= y1y2…yL到音频序列X = x1x2…xT的统计模型。基于N元模型,然后利用发言模型(pronunciation models)转化为每一个部分的发音,利用高斯混合模型构成组成连续音频。在给定X的情况下,选择使得概率最大的Y作为预测的结果。

因此,在经典方法中,在每个不同的部分都会使用不同的统计模型。
在这里插入图片描述 上述每一个部分的模型都可以使用神经网络模型来替代,将N元语言模型改为神经语言模型,将发音表(pronunciation tables)改为基于神经网络的发音模型,将高斯混合模型改为DNN-HMMs和LSTM-HMMs。
在这里插入图片描述

  • 但是由于,这个过程中,每一部分的神经网络模型都是以不同的目标函数分别进行训练的。每个部分的错误和其他部分的错误结合在一起可能就无法表现得很良好。所以,就有了将所有的部分组合在一起的训练模型(端对端模型),这里主要有两种
    • Connectionist Temporal Classification (CTC)
    • 序列对序列(听到写)

三、端对端训练模型

给定语音X = x1x2…xT 和对应的输出文本Y= y1y2…yL ,其中 y ∈ {a, b, c, d, … z, ?, !, …}。Y表示文本序列,X表示语音/处理过的声谱。通过学习概率模型p(Y|X)来进行语音识别。
在这里插入图片描述

1、Connectionist Temporal Classification(CTC)

是一个应用于语音识别的分类模型,基本结构是双向RNN。最后一层基于词汇的softmax,备选分类包含字母、一些语气词和空格<b>。在时间点t的softmax可以给出分数s(k,t)=log Pr(k,t|X)也就是在时间t的时候输出分类为k的分数。
在这里插入图片描述
在进行预测的时候,有一个限制:每个音素(phoneme)要么被预测为和前一个音素一样的音素,要么被预测为/。比如下面这个cat的发音。基于此,我们可以利用一个动态规划的算法。
在这里插入图片描述对于同一个发音而言,我们可以得到很多种发音的可能性:
在这里插入图片描述
每一种可能的得分是不同时间点(time step)各自分类的得分之和。每个发音( transcript )的概率,是其对应的可能性的概率相加。

下面是Connectionist Temporal Classification(CTC)的一些结果
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述从上面的例子中我们可以看到,CTC的语音转化为文本效果已经挺好的了,但是问题是这些文本虽然听上去和原来的语音差不多,但是却缺少正确的拼写和语法。我们可以使用语言模型来对备选可能排序来修正这个问题,可以将单词错误率(WER)从原来的30.1%降到8.7%。谷歌也使用了这个方法来降低错误。

下面这个例子是直接在单词的层面进行的识别。右边红色的是原来的句子,左边上面是7K词汇的时候的翻译结果,左边下面是90K词汇的时候的翻译效果,我们可以看到diet在90K的时候依旧没有被翻译正确,所以需要一个语言模型进行修正。
在这里插入图片描述

2、基于attention的序列对序列音频模型

这个模型类似于之前提到的针对翻译的模型包含两个部分encoder和decoder。因为语音一般都会比较长,所以更加需要关注长距离的信息消失问题,所以需要引入attention机制。
在这里插入图片描述具体的attention结构如下:通过构建等级型的解码器,可以降低计算的时间
在这里插入图片描述不同的模型对同一个语音输入的输出都是不一样的。
在这里插入图片描述LAS模型的效果很好,和传统的模型相比,使用一个简单的LAS模型就可以得到很大程度的提升。
在这里插入图片描述LAS模型的局限

  • 不是一个线上模型,在进行输出之前输入必须全部完成
  • attention机制是一个计算瓶颈,因为每个输入时间点都需要计算attention机制。
  • 输入的长度会大大影响模型的准确程度
    在这里插入图片描述

3、在线序列对序列模型

  • 该模型的优点
    • 克服了原有的序列对序列模型的局限性:不需要等到全部输入在进行转化;attention机制是局部侧重的。
    • 当输入进行时也进行输出需要解决一个问题:
  • 该模型的一个主要变化是将序列对序列的过程缩小到了块(chunk)中。
    • 这样一来的话,每个块中可能会发生长时间的沉默,所以需要引入<e>标记停顿。
    • 对每个块进行输入之后进行输出的转化,这样一定程度上能保证前面的转化对后面转化的影响。
    • 同时这样的处理增加了一个对齐(alignment)问题:输入与输出的对齐问题。
      在这里插入图片描述
  • 输出y基于输入会有很多种可能性,通过使用束搜索(beam search)来找到最有可能的输出。
    在这里插入图片描述
  • 训练
    在这里插入图片描述
  • 找到最好的路径:束搜索(beam search)有问题,我们选择使用近似动态规划来解决寻找最佳对齐的问题,一般是在三个中找到效果最好的那个(这个虽然不是完全的动态规划,因为我们无法保证得到的是最优解,但是在实践中效果足够好)
    在这里插入图片描述
  • 模型结果:在下面window表示的是chunk的大小,当window比较小的时候,不需要使用attention机制;当window变大的时候,需要加入attention机制,否则模型的效果随之会变差。
    在这里插入图片描述

4、卷积神经网络在LAS中应用

在构建的循环神经网络的部分使用卷积神经网络
在这里插入图片描述加入卷积之后,模型的效果
在这里插入图片描述

5、选择正确的输出目标

  • 实际使用的不是单词(word),字符(character)或者单词+字符作为输出目标。而是使用单词片(word piece),简单来说就是几元的字符组合。
    在这里插入图片描述
  • 这里需要关注的问题:由于同音词的原因,一段语音会被解读成很多种分解方法,比如HELLO可以是【H E L L O】【HE L L O】【HE LLO】【H ELLO】。所以,就需要解决如何选择正确的单词片(word pieces)的问题。这里采用的是极大似然估计(MLE),就是选择使得出现的组合概率最高的单词片,比如【H E L L O】和【HE L L O】而言,如果HE的概率比H+E的概率高的话,就使用【HE L L O】。
    在这里插入图片描述
  • 模型效果:从结果来看,N元的N数字越大,效果越好
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

5、模型的缺陷以及改进

  • 单词首字母和开始部分更有可能出现模糊
    在这里插入图片描述
  • 对单词边界的错误判断很有可能会导致识别的错误,可以使用entropy regularization,这个模型会对计算出来太确定的概率进行惩罚。
    在这里插入图片描述
  • 缺少生成惩罚(generative penalty):模型倾向于很早就结束序列,甚至跳过一部分输入,因为那样损失比较小。
    在这里插入图片描述解决办法是照常训练,但是在进行测试的时候加入生成惩罚(generative penalty),对给定输出时间步的概率之和小于阈值的结果进行惩罚。
    在这里插入图片描述
  • 与现有的语言模型结合:语言模型可以帮助LAS模型纠正下一步的预测。
    在这里插入图片描述
    在这里插入图片描述
  • 模型一般考虑的是下一步的预测,而没有考虑到预测的长期影响。下面这些研究做了一些尝试:
    在这里插入图片描述

四、未来的研究方向

  • 多音源处理
    在这里插入图片描述
  • 同声传译
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章