语音识别——TDNN时延神经网络

参考:http://www.inf.ed.ac.uk/teaching/courses/asr/lectures-2019.html
https://blog.csdn.net/richard2357/article/details/16896837
https://zhuanlan.zhihu.com/p/28283265
http://pelhans.com/2018/02/11/kaldi-note8/
相当于CNN的前身,相当于1dcnn,即一维CNN。它的共享权重被限制在单一的维度上,并且没有池化层,适用于语音和时间序列的信号处理。
TDNN最早是在1989年,由Hinton提出,目的在于解决音素的识别。
通常神经网络识别音素的结构如下图所示,识别因素为B,D,G,其中0-12代表每一帧的特征向量。
语音识别——TDNN时延神经网络_第1张图片
这种结构只考虑了一帧的特征,我们知道上下文信息对于序列模型是很有帮助的,我们需要考虑更多帧。当考虑延时为2时,则连续的3帧都会被考虑。其中隐藏层起到特征抽取的作用,输入层每一个矩形内共有13个小黑点,代表该帧的13维MFCC特征。假设每个隐藏层有10个节点,那么连接的权重的数目是3 * 13* 10=390个,用图表示为:
语音识别——TDNN时延神经网络_第2张图片
为了显示更多帧,紧凑表示为:
语音识别——TDNN时延神经网络_第3张图片
其中一条彩色线就代表13*10=130个权重值。如果我们持续的对网络进行输入,就变成了下图:
语音识别——TDNN时延神经网络_第4张图片
其中各色线的权重相同,相当于把权重延时。隐藏层和输出层之间也可以采用该方法,这样整体的权重就大大减少。便于训练。
TDNN网络的训练方法和传统方法一样,反向传播就可以。
语音识别——TDNN时延神经网络_第5张图片
文献中TDNN网络结构,input layer为语谱图,黑块为大值,灰块为小值。输入层纵向为经过mel滤波器的16个特征(没用MFCC,用的是fBank),横向为帧。Input Layer的延时为2,映射对Hidden layer1为16 *3->8,Hidden layer1 8个节点,权值个数为384。Hidden Layer1的延时为4,映射到Hidden Layer2的关系是8 *5->3,权值个数为120。Hidden Layer2的延时为8,映射到输出层的关系为3 *9->3,权值个数为81。合计权值为384+120+81=585。输出的三个单元分别代表“B”“D”“G”的得分。

  1. TDNN训练方法
    a.和传统的反向传播算法一样;
    b.TDNN有快速算法。
  2. 总结TDNN网络的优点:
    a.网络是多层的,每层对特征有较强的抽象能力;
    b.能表达语音特征在时间上的关系;
    c.权值具有时间不变性;
    d.学习过程中不要求对所学的标记进行精确的时间定位;
    e.通过共享权值,方便学习。

论文:
A time delay neural network architecture for efficient modeling of long temporal contexts 2015 Danial Povey, interspeech
RNN可以对时间有效地对时间依赖帧进行建模,但是由于训练时的时间序列性,训练时间比较长。RNN并行化程度不如前向神经网络,而TDNN也可以对长时依赖序列建模,并使用子采样来减少计算量,可以让TDNN训练时间和标准前向神经网络差不多。
使用特征:基于神经网络自适应的ivector特征,具有区分性,自适应说话人和环境,不用像使用fMLLR自适应技术后需要两次解码。
RNN,FDNN,TDNN都适用于从短时特征学习长时动态上下文。
TDNN网络结构
语音识别——TDNN时延神经网络_第6张图片
TDNN初始层学习较窄的上下文信息,更高层则学习到更广的上下文信息。
语音识别——TDNN时延神经网络_第7张图片
sub-sampling子采样:在原始的TDNN是一个全连接的前馈神经网络。但事实上,相邻时间点所包含的上下文信息有很大部分重叠的,因此可以采用取样的方法,只保留部分的连线,可以获得原始模型近似的效果,同时能够大大减小模型的计算量。子采样拼接帧不超过2。
使用子采样加快训练时间,减小声学模型的大小。
what is 瓶颈特征????
使用非对称输入上下文,左侧有更多的上下文,是为了减少在线解码过程中神经网络的延时。也能减少字错误率。
非对称上下文窗口一般是从过去的16帧到之后的9帧这个区间内。使用L2范数。
输入特征
MFCC特征和对数梅尔特征。
在每帧40维MFCC特征的基础上,增加100维i_vector特征。其中,MFCC不用做CMVN,目的时使ivector可以提供说话人数据的均值偏移信息。
DNN训练
分层监督训练,用随机梯度下降处理更新,使用指数学习率。DNN并行设置最多达18GPU完成,使用模型平均技术。
序列区分性训练
基于状态级别的最小音素错误(MPE),称为sMBR准则用来完成DNN上的序列训练。

语音识别——TDNN时延神经网络_第8张图片
语音识别——TDNN时延神经网络_第9张图片
结论
TDNN在处理较宽的上下文输入时很有效。输入上下文的宽度是[t-13,t+9]时是最优的。使用子采样技术在训练是进行加速。与DNN相比,性能相对提升6%,比使用说话人自适应特征的RNN结构相对好2.6%。下一步从p范数非线性切换到Relu,据说在TDNN上很好用。

你可能感兴趣的:(语音识别)