李宏毅语音识别课程摘要

语音识别Overview

  1. 语音识别输出的数据类型(Token)分类
  • Phoneme:发音的基本单位(类似于音标)
    需要一个lexicon记录word与phonemes的对应关系:
    在这里插入图片描述

  • Grapheme:书写的基本单位
    中文:一个字
    英文:26个英文单词
    无需lexicon的映射关系

  • word:词
    不同语言的词汇都非常的多

-morpheme:有意义的基本单位(长度在word和grapheme之间)
例如unbreakable的morepheme可以拆分成:“un” “break” “able” 三个morepheme
但是morpheme的获得比较麻烦,需要语言学家或者统计的方式获得

目前这四种输出的占比为:可以看出用grapheme和phoneme的占据了70%以上
在这里插入图片描述
2. 语音识别的输入
通常语音识别的输入可以看成长度是T,维度是d的向量集合。
如下图:
在这里插入图片描述
对于一段声音信号:首先会经过一个window(25ms)得到一个向量,再经过采样、(39-dim)MFCC或者(80-dim)fbank:
在这里插入图片描述

  1. ASR深度学习模型介绍
  • LAS(listen、attend、spell)
  • CTC(Connectionist Temporal Classification)
  • RNN-T(RNN Transducer)

LAS

LAS:由三个部分组成Listen、Attend、Spell

  • Listen相当于一个编码器,编码器可以由RNN、CNN、Self attention组成。
    通常还有有一些下采样的手段,比如Truncated self-attention是在一个范围内进行attention。
    在这里插入图片描述
  • Attend:
    这里的attention与之前用的attention并没有什么区别,
    在这里插入图片描述
    match的方式常见的有Dot-product:
    h,z分别经过一个矩阵进行transform在进行dot product得到一个a。
    在这里插入图片描述
    对于不同的h经过match后的结果,在经过一个softmax得到c,c就是decoder的输入。
    在这里插入图片描述
  • Spell:
    根据attention得到的c作为输入,再经过一个RNN网络进行译码:
    在这里插入图片描述
  • 训练过程:
    在这里插入图片描述
    这里的训练过程大体与分类问题一致,将预测的结果通过交叉熵之后再进行反向传播。其中的一个trick是Teacher Forcing, 因为decoder在预测一个输出的时候需要上一个的结果,因此必须保证上一个预测结果是正确的,才能保证此输出是正常的,因此引入了一个Teacher Forcing,强制输入的是上一个的正确输出。

CTC

因为一个窗口的语音信号非常的短(10ms),很有可能这段acoustic features包含的信息非常少,因此ctc加入了一个空符号代表一个不知道该输出什么。
目前CTC通常用在decoder中,其主要解决的问题是输入的音频特征与输出token的对齐问题alignment。
在这里插入图片描述
CTC的问题:CTC的decoder的每个输出是独立地,并且只输入了一个向量。
在这里插入图片描述
解决CTC出现的两个问题,提出了RNA模型,其实就是将decode的output用RNN连接起来,添加了输出与输出之间的依赖性。
在这里插入图片描述

RNN-T

与RNA最大的不同就是,可以当输入一个h的时候可以持续的输出output直到结束。
例如“th”就只有一个发音但是却有两个字母。
在这里插入图片描述
此外为了方便训练RNN-T在output之上又加入了一层RNN,去忽略产生为空的output
在这里插入图片描述

一些ASR网络的总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值