鉴于传统架构的语音识别方法在其他的回答中已经有了详细的介绍,这里主要介绍end-to-end语音识别架构,主要涉及到RNN神经网络结构以及CTC。
Outline:
1、 语音识别的基本架构
2、 声学模型(Acoustic Model,AM)a) 传统模型
b)CTC模型
c) end-to-end模型
3、 语言模型
4、 解码
----------------------------------------------------
1、 语音识别的基本架构
上式中W表示文字序列,Y表示语音输入。公式1表示语音识别的目标是在给定语音输入的情况下,找到可能性最大的文字序列。根据Baye’ Rule,可以得到公式2,其中分母表示出现这条语音的概率,它相比于求解的文字序列没有参数关系,可以在求解时忽略,进而得到公式3。公式3中第一部分表示给定一个文字序列出现这条音频的概率,它就是语音识别中的声学模型;第二部分表示出现这个文字序列的概率,它就是语音识别中的语言模型。
无论是传统的方法也好,现在火热的深 度神经网络的方法也罢,目前的语音识别架构都没有脱离上面的公式,也就是说都离不开AM和LM。下面分别对这两部分进行介绍
2、 声学模型(Acoustic Model,AM)
声学模型可以理解为是对发声的建模,它能够把语音输入转换成声学表示的输出,更准确的说是给出语音属于某个声学符号的概率。
a) 传统模型
在英文中这个声学符号可以是音节(syllable)或者更小的颗粒度音素(phoneme);在中文中这个声学符号可以是声韵母或者是颗粒度同英文一样小的音素。那么公式3中的声学模型就可以表示为下面的公式4的形式:
其中Q表示发音单位的序列。从公式中可以看到,声学模型最终转换成了一个语音到发音序列的模型和一个发音序列到输出文字序列的字典。这里的发音序列通常是音素,到此为止声学模型是从语音到音素状态的一个描述。为了对不同上下文的音素加以区分,通常使用上下文相关的“三音子”作为建模单元。可以用下图表示:
其中字典部分表示为如下公式5,其意义是把每个文字拆分成若