https://zhuanlan.zhihu.com/p/33464788
基于CTC的语音识别基础与实现
首先明确语音识别的任务是怎样的。输入input是音频wav文件,保存的一般是经过抽样量化编码之后数字信号,也就是每个样点的值,即我们经常看到的波形序列(图1的cat的波形)。输出是文字序列,代表这段音频的内容。很显然,按照现在对深度学习任务的划分,这是一个Sequence-to-Sequence的问题。也可以理解为是一个序列标注的问题。该问题与机器翻译,连续手写数字体识别类似,可以划分到一类。
但是语音识别的问题远没有这么简单。
想象一下如果人在听一句话的时候,如果这句话具有很强的领域性,在没有相关领域的知识情况下,可能很难得到这句话正确的内容。比如某个词你没有学过,你可能能复述发音,但是是无法书写出来并且理解的。
所以只有wav文件的信息是不够的,需要语言学的先验知识,所以语言模型(Language Model)在语音识别的过程中是必不可少的。
而对wav作为输入得到的模型叫做声学模型(Acoustic Model)。另外在传统的语音识别过程中,声学模型的输出单元一般为音素或者是音素的状态,而语言模型一般是词级别的语言模型,两者的联合解码(也就是一般的测试推断过程)时需要知道每个词(word)是由哪些音素(phoneme)组成的,也就是这个词是怎么发音的。所以中间需要一个发音词典,一般也被叫做音素模型(Phoneme Model)。