system: [SYSTEM]

user: 2. 融合唇部特征的语音识别模型 2.1. 实验数据集 本文使用的数据集为GRID数据集，该数据集是一个支持语音感知联合计算–行为研究的大型多语言视听句子语料库。由34名说话者(18名男性，16名女性)每人说出1000句话的高质量音频和视频(面部)录音组成。 数据集说话人视频为mpg格式，分辨率为360 × 288，帧率为25帧/秒。音频文件为wav格式，采样率为50 kHz，音频长度与视频相同，标注文件为align格式，标注文件对单词进行了标注。 2.2. 音频数据预处理及特征提取 语音信号预处理是对语音信号进行转换，使其适合计算机处理，同时符合特征提取的要求。提取出能表示语音信号本质的特征参数，语音识别才可以高效地进行。语音信号预处理包括预加重、分帧和加窗 [ 8 ] 处理。 首先对音频信号进行预加重处理，通过高斯滤波器提高信号中的高频分量，以此提升信号的信噪比，传递函数如式(1)所示，其中 值大小接近1，通常取0.97。然后将信号以25 ms帧长实行分帧操作，设置10 ms帧移长度，模拟出发音时的连续状态。分帧后帧边缘部分还依旧剧烈变化，因此进行加窗操作如式(2)所示，加窗减少了频谱泄露，使得相邻帧过渡平稳，增加了频谱平滑程度。 H ( z ) = 1 − μ z − 1 (1) C ( n ， a ) = ( 1 − a ) − a × cos ( 2 π n N − 1 )       ( 0 ≤ n ≤ N − 1 ) (2) 不同汉明窗a值不同，a值大小通常取0.46，N为帧的大小，n表示第n帧。 音频特征提取可以获得比原始语音信号更小的表征力特征。音频特征提取采用MFCC (Mel Frequency Cepstral Coefficient) [ 9 ] 算法，如式(3)所示，将线性频谱映射到梅尔尺度频谱上，可以很好的表示音色特征，反映人的听觉特征。 MFCC ( t ， i ) = 2 N ∑ j = 1 N lg [ E m e l ( t ， j ) ] cos [ i ( j − 0.5 ) π N ] (3) N为滤波器个数； E m e l 为t时刻第j个滤波器输出的能量； MFCC ( t ， i ) { i = 1 ， 2 ， ⋯ ， P } 为t时刻对应的MFCC参数，P为阶数。 对加窗过的信号进行快速傅里叶变换，得到频谱图以及三维时域图。经过梅尔滤波器组与过离散余弦变换，计算得到13维倒谱系数。MFCC正是由13维倒谱系数、13维一阶差分系数和13维二阶差分系数组成的39维特征向量，在此语音信息变为39维特征向量表征。 2.3. 视频预处理及特征提取 利用爬虫将视频数据集下载解压分类，部分视频存在质量不高，花屏情况，利用级联的残差回归树算法 [ 10 ] (GBDT)检测视频中是否每帧都存有人脸信息，将质量不达标视频剔除，得到可用的视频数据集。视频预处理及特征提取结构如图1所示。 图1. 视频预处理及特征提取结构 视频信息预处理按照25帧每秒的形式将视频切分为图像集合，对图像进行去噪处理，进行唇部定位，去除非唇部部分完成唇部图像的提取。人脸中唇部变化对语音的影响最为重要，因此选择唇部的参数作为视觉特征的参数，人脸检测(face detection) [ 11 ] 可以将人脸位置从帧图像中识别出来，对唇部定位有很大帮助。 输入含有关键点信息的唇部图像序列集数据，对图像进行对齐操作，将其转换为特征点形式图像，并将其对齐到基准图像上。调用dlib库的face_landmarks模型对唇部特征点进行提取，最后得到嘴唇特征点位置坐标。 图2. 外唇角度 图3. 内唇角度 若 α 角对应的点为a， θ 角对应点为b， β 对应点为c， θ 的角度如式(4)所示。 a b 表示a点指向b点的向量， b c 表示b点指向c点的向量。 θ = arccos ( a b ⋅ b c | a b | | b c | ) (4) 在唇部一共有20个特征坐标点，若全部提取相关信息作为视频特征，会造成特征维度过大，为了既能准确表征视频特征，又能降低特征维度，于是分别对外唇以及内唇提取特征角度，如图2与图3所示，外唇以及内唇左角度 α 和右角度 β 可以看作相等大小，所以统一取左边角度 α 表征。最后得到内外唇的 α 、 θ 、 γ 共6个角度表征唇部特征，将唇部图像的角度保存为特征矩阵形式。在噪声不明显的情况下，过多的视觉特征加入反而影响多模态的识别准确率，经过对视觉特征的多次调整，最后选择使用6个角度表征视觉特征。 2.4. 特征融合 在时域上将视觉特征和听觉特征进行融合，保证同一时刻音视频信息相互对应。在融合时又分为两种方式，第一种方式是先将特征融合继而统一进行归一化处理，第二种是先将特征分别归一化，最后再融合，两种方式带来的结果差别很大。本文采用的方法为后者，具体流程如图4所示。 图4. 插值融合流程 前文已完成特征提取以及降维操作，由于视频流的速率与音频流并不相等，需要对视频流进行插值操作，让音视频流具有同样的速率。对插值操作后将两个特征分别进行归一化处理，最后进行特征拼接。每一帧的音视频信息都可以分别表示为一个不同特征向量，在融合过程中需要保证两者同一时刻上是相互对应的，利用numpy模块的column_stack函数，将两个向量拼接为一个特征向量。将帧的个数看作向量的个数，特征拼接之后得到音视频融合的特征矩阵。特征融合很好地解决了时序异步情况，并且可以最大程度保留原始数据，让模型很好学习到两者的特征关系。 2.5. 端到端的多模态发音检测模型 总体模型网络基本流程如图5所示： 图5. 总体检测模型 本文引入循环神经网络，利用视频中人脸和语音的时间序列信息来得到更稳定的识别效果。而LSTM是一种特殊的循环神经网络，可以防止梯度消失和梯度爆炸，解决了传统RNN的长期依赖的问题。它的结构如图6所示。 图6. 长短期记忆网络 LSTM主要由三部分组成，分别是遗忘门，输入门和输出门。其中遗忘门如式(5)所示， σ 表示取Sigmoid函数值， W t 表示权重矩阵， h t − 1 表示上一层 LSTM神经网络的输出， x t 表示输入， b f 表示偏置量。 f t 的元素取值范围是0到1，表示遗忘的程度，0表示全忘，1表示全记住。输入门如式(6)、(7)所示，其中 i t 表示输入状态量， c t 表示对 i t 的筛选。遗忘门和输入门决定了当前神经网络层的状态信息，即得到式(8)。输出门如式(9)、(10)所示。 f t = σ ( W t [ h t − 1 ， x t ] + b f ) (5) i t = σ ( W i [ h t − 1 ， x t ] + b i ) (6) c t = tanh ( W c [ h t − 1 ， x t ] + b c ) (7) c t = f t ⋅ c t − 1 + i t ⋅ c t (8) o t = σ ( W o [ h t − 1 ， x t ] + b i ) (9) h t = o t ⋅ tanh ( c t ) (10) 双向长短期记忆网络(BiLSTM)结构是指在LSTM中当前时刻不仅连接到下一时刻还连接到上一时刻，通过信息的双向传递来更好地获得序列间的联系，经过Alex等验证在语音识别上取得了比普通单向LSTM更好的效果。在人脸和语音的多模态身份识别任务中，需要综合一段时间内的连续信息来进行识别，为了更好地获取一段时间序列中人脸特征和语音特征的上下文联系，本文也将采用BiLSTM对人脸语音融合特征序列学习。BiLSTM结构如图7所示。 为了处理连续语音识别问题中的语音序列长短差距比较大的问题，视频与音频的融合特征交给传入到BiLSTM网络中，并且计算CTC (连接时序分类)损失函数，最后根据CTC函数求得的值传入一个到全连接层，求得最大可能性的字符，这样就完成了融合特征序列到文本序列的一个转换，得到语音识别的结果。 CTC主要解决的问题是，在给定输入序列X及其对应的标签序列Y前提下，如何将X和Y一一对应。CTC损失函数的训练通常是利用 RNN来实现，因为RNN对序列型数据训练的效果比较好。对于单个的 输入输出匹配(X，Y)来说，CTC的计算如式(11)所示， ∏ t = 1 T p ( a t | X ) 是对单个路径概率进行计算，模型训练的目的就是将 P ( Y | X ) 即Y的路径之和最大化。CTC损失函数如式(12)所示。对于数据集G，模型的 优化的目的是将CTC损失函数最小化。 图7. 双向长短期记忆网络 P ( Y | X ) = ∑ A ∈ A x ， y ∏ t = 1 T p ( a t | X ) (11) L o s s ( CTC ) = ∑ ( X ， Y ) ∈ G − log p ( Y | X ) (12)