文章目录
- 1 古人看语音辨识
- 2 什么是语音辨识
- 2.1 输出部分 - Token
- 2.2 输入部分 - 声音信号特征
- 3 数据集
- 4 模型
本文为李弘毅老师【Speech Recognition - Overview】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。
下文中用到的图片均来自于李宏毅老师的PPT,若有侵权,必定删除。
文章索引:
下篇 - 1-2 LAS
总目录
1 古人看语音辨识
50年前的人们是如何看待语音辨识的?有一位比较有权威的人物认为语音辨识就像是把水变成汽油,从海底捞金,治愈癌症或者登上月球。该观点也让那个时代的许多人放弃了进行语音辨识方向的相关研究。
而如今,已经无需置疑语音辨识的可行性,几乎每一只手机里都有着语音辨识。
2 什么是语音辨识
简而言之,语音辨识就是输入一段声音信号,经过模型处理后,输出对应的文字信息。
其中的输入的声音信号是由TTT个长度为ddd的vector组成,而输出的文本则是NNN个token,token的种类会被限制,种类的数量为vvv,可以理解为一个大小为vvv的词库。通常来说,TTT要远大于NNN。
2.1 输出部分 - Token
目前被使用的token可以归为五类:
- Phoneme: 发音的基本单元
- Grapheme: 书写的基本单元
- Word: 词
- Morpheme: 语义的基本单元
- Byte: 字节😲
Phoneme可以看成是音标,比如英文可以转化成如下的样子。在深度学习还不怎么流行的时候,Phoneme是一个不错的选择,因为它和声音的关系十分直接,但它有一个缺点就是在模型得到Phoneme之后,还需要将其再转换成word,这需要额外的语言学知识。
Grapheme是书写的基本单元,比如在英文当中就是字母。当然,对于模型来说,只有字母是不够的,还需要有空白符,甚至需要一些标点符号。在中文当中,Grapheme就是方块字,中文和英文不同的在于,中文不需要空白符。Grapheme有一个好处就是,它不需要额外的语言学知识,模型的输出即是最终的结果。不过,Grapheme对模型来说也是一个挑战,因为它和声音信号之间没有直接的关系。
Word就是词汇,对于英文来说,用空格分隔的就是一个Word,但对中文来说就不太好分了。用Word来做是一个不推荐的选择,因为对于语言来说Word实在是太多了!
Morpheme是可以传达语义的最小单位,它比Word要小,比Grapheme要大。如下图就是几个例子,但Morpheme的定义也比较模糊,局限性很大。
还有一种很狂的方法,就是直接用Byte!比如所有的语言都用UTF-8来表示,这样就不需要考虑是什么语言了。个人认为这是一种特殊的Grapheme。
李宏毅老师的助教们收集了2019年INTERSPEECH’19, ICASSP’19, ASRU’19中超过100篇论文中使用token的比例,如下图所示,感谢助教们!👍
2.2 输入部分 - 声音信号特征
通常利用滑窗法将声音信号变为一个T×dT \times dT×d的向量。如下图所示,我们使用长度为25ms的窗口,在一个16KHz的的声音信号上进行滑动,每次滑动的间隔为10ms,得到的截片被称为是frame,那么一个1s的声音信号就可以被分为100个frames(T=100T=100T=100)。每个frame中有400个采样点,可以直接使用这400个点的数值作为这个frame的特征(d=400d=400d=400),但不推荐这样做。目前都会采用MFCC(d=39d=39d=39)或者filter bank output(d=80d=80d=80)的方法将这个原始信号进行转换。
声音信号在进行特征抽取时,需要进行多个变换,每一个步骤得到的结果都可以直接被用于模型的输入。离散傅里叶变换将原始声音信号转换成频谱图,据李老师说,可以用人眼从频谱图中看出来这个信号是什么🙈!得到频谱图后,对其进行采样,经过多个设计过的filter,得到了filter bank output的特征结果,一般会取一个log。log的结果再进行离线余弦变换后可以得到MFCC的特征结果。
同样地,辛勤的助教们也在2019年INTERSPEECH’19, ICASSP’19, ASRU’19中统计了使用的输入信号特征的结果。再次感谢助教们!👍
3 数据集
语音辨识的一些公开数据集如下图所示,用于商业的模型使用的数据集是远大于下面的数据集的。
4 模型
本课程会介绍的语音辨识模型有如下几种:
- Listen, Attend, and Spell (LAS) (2015)
- Connectionist Temporal Classification (CTC) (2006)
- RNN Transducer (RNN-T) (2012)
- Neural Transducer (2016)
- Monotonic Chunkwise Attention (MoChA) (2018)
而目2019年的论文中,各个模型的使用情况如下如所示: