基于语音生成口型视频的方法与流程

文档序号:15463502发布日期:2018-09-18 18:44阅读:673来源:国知局

本发明属计算机视觉、图形处理技术领域,具体涉及一种基于语音生成口型视频的方法。



背景技术:

随着视频聊天逐渐替代了传统的语音交流方式,人们在享受着面对面谈话乐趣的同时,也催生出了一些新的问题。受限于不同地区的不同网络环境,视频聊天在网络条件较差的情况下稳定性较差,这给用户带来了很不好的体验。其中音频文件较小,即使在较差的网络环境下也可以获得流畅的通讯体验,而视频信息却由于文件相对较大会出现画面卡顿的现象。为解决这个问题,可以通过分析讲话者的音频信息,生成与之相对应的口型,让不连贯的画面得到补偿,尽可能地改善低网络速率下的视频聊天体验。Fan等人在文献“B.Fan,L.Wang,F.K.Soong and L.Xie,“Photo-real talking head with deep bidirectional LSTM”,ICASSP 2015,pp.4884-4888,2015”中介绍了一种通过双向LSTM(Long short-term memory)重新连接人脸下半部分的方法,以重新复制来自不同音频源的目标视频。LSTM从保存的目标帧的字典中选择一个目标口型区域,而不是生成图像,因此需要数据量庞大的唯一目标身份的视频帧,以从中进行选择,这需要视频聊天的设备拥有海量的存储空间和强劲的性能,这在实际生活中是很难被满足的。而且这种方法只是从已经存在图像信息中进行筛选后补偿画面,如果遇到没有可供挑选的图像信息时显得无能为力。Garrido等人在文献“P.Garrido,L.Valgaerts,H.Sarmadi,et al.“VDub:Modifying Face Video of Actors for Plausible Visual Alignment to a Dubbed Audio Track”,Computer Graphics Forum,pp.193-204,2015.”中改进了上述方法,将配音者视频中的口形转移到目标视频,从而合成目标说话人的人脸,但是这种方法要求视频当中的配音者说出语音片段,这样就无法保证实时性,无法满足视频聊天的基本要求。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于语音生成口型视频的方法,即利用人的音频和面部图像来生成讲话时的人脸视频的方法。在视频卡顿时使用音素生成与音频同步的脸部图像,不依赖已有的讲话视频片段,直接通过学习原始音频和视频图像中口型变化的关系,利用语音音频生成包含对应口型人脸的静止图像,作为视频的下一帧图像,从而缓解视频卡顿现象,提升人们视频通话体验。

一种基于语音生成口型视频的方法,其步骤如下:

步骤1:检测当前视频通话流畅度,若视频发生卡顿,则截取当前视频通话的静止画面,并提取前0.35秒至当前的音频片段;

步骤2:使用由King提出的基于HOG的DLIB人脸检测器对所截取的静止画面进行检测,得到静止画面中的人脸图像;以100Hz的采样频率对所提取的音频片段进行采样,得到35个离散的样本,再分别计算其MFCC系数,得到MFCC系数矩阵,矩阵的每一列即为每个样本的特征;

步骤3:对改进的深度网络Speech2Vid模型进行训练,然后,将步骤2得到的人脸图像和MFCC系数矩阵输入到训练好的Speech2Vid模型中,得到与音频对应口型的人脸图像;

所述的改进的Speech2Vid模型由生成模块和去模糊模块构成;生成模块分别提取人脸图像和MFCC系数矩阵的256维特征,再对其进行解码生成对应口型的人脸图像,共包括三个分支:第一个分支包含5个卷积层、2个池化层以及2个全连接层,其第一层卷积层Conv1-1、第二层卷积层Conv1-2、第二层池化层Pool1-2、第三层卷积层Conv1-3、第四层卷积层Conv1-4、第五层卷积层Conv1-5、第五层池化层Pool1-5、第六层全连接层FC1-6及第七层全连接层FC1-7顺序相连,第一层卷积层Conv1-1包含64个3*3大小的卷积核,第二层卷积层Conv1-2包含128个3*3大小的卷积核,第二层池化层Pool1-2包含一个3*3大小的卷积核且卷积核移动步长为2,第三层卷积层Conv1-3包含256个3*3大小的卷积核,第四层卷积层Conv1-4包含256个3*3大小的卷积核,第五层卷积层Conv1-5包含512个3*3大小的卷积核,第五层池化层Pool1-5包含512个的卷积核且卷积核移动步长为2,第六层全连接层FC1-6包含512个卷积核,第七层全连接层FC1-7包含256个卷积核;第二分支包含5个卷积层、2个池化层以及2个全连接层,其第一层卷积层Conv2-1、第一层池化层Pool2-1、第二层卷积层Conv2-2、第二层池化层Pool2-2、第三层卷积层Conv2-3、第四层卷积层Conv2-4、第五层卷积层Conv2-5、第六层全连接层FC2-6及第七层全连接层FC2-7顺序相连,第一层卷积层Conv2-1包含96个7*7大小的卷积核且卷积核移动步长为2,第一层池化层Pool2-1包含1个3*3大小的卷积核且卷积核移动步长为2,第二层卷积层Conv2-2包含256个5*5的卷积核且卷积核移动步长为2,第二层池化层Pool2-2包含一个3*3大小的卷积核且卷积核移动步长为2,第三层卷积层Conv2-3包含512个3*3大小的卷积核,第四层卷积层Conv2-4包含512个3*3大小的卷积核,第五层卷积层Conv2-5包含512个3*3大小的卷积核,第六层全连接层FC2-6包含512个卷积核,第七层全连接层FC2-7包含256个卷积核;第三分支包含6个卷积层以及1个全连接层,其第一层全连接层FC3-1、第二层卷积层Conv3-2、第三层卷积层Conv3-3、第四层卷积层Conv3-4、第五层卷积层Conv3-5、第六层卷积层Conv3-6及第七层卷积层Conv3-7顺序相连,第一层全连接层FC3-1包含128个卷积核,第二层卷积层Conv3-2包含512个6*6大小的卷积核且卷积核移动步长为2,第三层卷积层Conv3-3包含256个5*5大小的卷积核且卷积核移动步长为2,第四层卷积层Conv3-4包含96个5*5大小的卷积核且卷积核移动步长为2,第五层卷积层Conv3-5包含96个5*5大小的卷积核且卷积核移动步长为2,第六层卷积层Conv3-6包含64个5*5大小的卷积核且卷积核移动步长为2,第七层卷积层Conv3-7包含3个5*5大小的卷积核;其中,生成模块的第二分支的第二层卷积层Conv2-2的输出结果输入到其第三分支的第四层卷积层Conv3-4,第二分支的第一层池化层Pool2-1的输出结果输入到第三分支的第五层卷积层Conv3-5;

去模糊模块对生成的人脸图像进行锐化,共包括9个顺序连接的卷积层,每个卷积层都包含64个3*3大小的卷积核;

步骤4:利用相似变换对步骤3得到的人脸图像与步骤1得到的静止画面中人脸的眼睛和鼻子进行对齐,点对点替换步骤1得到静止画面中面部图像像素,得到新的静态图像,将得到的新的静态图像作为视频的下一帧,输出到视频通话中;

步骤5:判断视频是否结束,若视频未结束,返回步骤1,否则,结束处理。

本发明的有益效果是:利用Speech2Vid模型生成与音频对应口型的人脸图像而不是从口型字典库匹配对应口型图片,因此无须存储庞大的口型字典库,占用内存小;该模型直接学习音素(语音的最小单位)和口型之间的对应关系,只输入音素和人脸图像就可以直接生成相应的口型的面部图像,不需要完整的音节,也不需要提前获取语音片段;由于只利用视频中讲话者的语音部分和其对应人脸图像,生成与语音部分对应口型人脸图像,并将其替代初始静止图像的人脸,成为视频的下一帧,该过程无需考虑视频中背景等其它区域,计算量小,生成对应音频的视频更加实时,短时间内即可输出与音频同步的视频画面。

附图说明

图1是本发明的一种基于语音生成口型视频的方法流程图

图2是本发明的Speech2Vid模型网络结构示意图

具体实施方式

下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。

本发明提供了一种基于语音生成口型视频的方法,如图1所示,主要包括以下步骤:

1、首先,检测当前视频通话流畅度,判断视频画面是否出现卡顿。由于说话者的口型只取决于当前所说的音素(语音中的最小单位),0.35秒的音频片段可以获取足够口型信息。再者,网络视频一般不会低于25帧,考虑到人的口型并不可能一秒变化25次。因此,把时间间隔设置为0.35秒,即比较当前画面与0.35秒前的画面,若完全一致,则可以判断视频卡顿,此时,截取当前视频通话的静止画面,并提取前0.35秒至当前的音频片段。

2、使用由King提出的基于HOG的DLIB人脸检测器对所截取的静止画面进行检测,得到静止画面中的人脸图像。同时,对所提取的音频片段以100Hz的采样率进行采样,得到35个离散的样本,分别计算其MFCC系数,生成12*35维的MFCC系数矩阵,矩阵的每列是每个样本的MFCC特征。

所述的由King提出的基于HOG的DLIB人脸检测器记录在文献“Davis E.King,“Dlib-ml:A Machine Learning Toolkit”,Journal of Machine Learning Research 10,pp.1755-1758,2009”中。MFCC系数计算方法记录在文献“S.B.Davis,and P.Mermelstein,"Comparison of Parametric Representations for Monosyllabic Word Recognition in Continuously Spoken Sentences,"in IEEE Transactions on Acoustics,Speech,and Signal Processing,vol.28(4),pp.357–366,1980.”中。

3、对改进的深度网络Speech2Vid模型进行训练,然后,将步骤2得到的人脸图像和MFCC系数矩阵输入到训练好的Speech2Vid模型中,得到与音频对应口型的人脸图像。

深度网络Speech2Vid模型由生成模块和去模糊模块构成,如图2所示。其中:

生成模块共包括三个分支:

第一个分支的作用是提取MFCC特征矩阵的256维特征,包含5个卷积层、2个池化层以及2个全连接层,其第一层卷积层Conv1-1、第二层卷积层Conv1-2、第二层池化层Pool1-2、第三层卷积层Conv1-3、第四层卷积层Conv1-4、第五层卷积层Conv1-5、第五层池化层Pool1-5、第六层全连接层FC1-6及第七层全连接层FC1-7顺序相连,第一层卷积层Conv1-1包含64个3*3大小的卷积核,第二层卷积层Conv1-2包含128个3*3大小的卷积核,第二层池化层Pool1-2包含一个3*3大小的卷积核且卷积核移动步长为2,第三层卷积层Conv1-3包含256个3*3大小的卷积核,第四层卷积层Conv1-4包含256个3*3大小的卷积核,第五层卷积层Conv1-5包含512个3*3大小的卷积核,第五层池化层Pool1-5包含512个的卷积核且卷积核移动步长为2,第六层全连接层FC1-6包含512个卷积核,第七层全连接层FC1-7包含256个卷积核。将MFCC特征矩阵输入第一分支即可得到其256维特征。

第二分支的作用是提取人脸图像的256维特征,包含5个卷积层、2个池化层以及2个全连接层,其第一层卷积层Conv2-1、第一层池化层Pool2-1、第二层卷积层Conv2-2、第二层池化层Pool2-2、第三层卷积层Conv2-3、第四层卷积层Conv2-4、第五层卷积层Conv2-5、第六层全连接层FC2-6及第七层全连接层FC2-7顺序相连,第一层卷积层Conv2-1包含96个7*7大小的卷积核且卷积核移动步长为2,第一层池化层Pool2-1包含1个3*3大小的卷积核且卷积核移动步长为2,第二层卷积层Conv2-2包含256个5*5的卷积核且卷积核移动步长为2,第二层池化层Pool2-2包含一个3*3大小的卷积核且卷积核移动步长为2,第三层卷积层Conv2-3包含512个3*3大小的卷积核,第四层卷积层Conv2-4包含512个3*3大小的卷积核,第五层卷积层Conv2-5包含512个3*3大小的卷积核,第六层全连接层FC2-6包含512个卷积核,第七层全连接层FC2-7包含256个卷积核。将人脸图像输入第二分支即可得到其256维特征。

第三分支的作用是生成与语音对应口型的人脸图像,包含6个卷积层以及1个全连接层,其第一层全连接层FC3-1、第二层卷积层Conv3-2、第三层卷积层Conv3-3、第四层卷积层Conv3-4、第五层卷积层Conv3-5、第六层卷积层Conv3-6及第七层卷积层Conv3-7顺序相连,第一层全连接层FC3-1包含128个卷积核,第二层卷积层Conv3-2包含512个6*6大小的卷积核且卷积核移动步长为2,第三层卷积层Conv3-3包含256个5*5大小的卷积核且卷积核移动步长为2,第四层卷积层Conv3-4包含96个5*5大小的卷积核且卷积核移动步长为2,第五层卷积层Conv3-5包含96个5*5大小的卷积核且卷积核移动步长为2,第六层卷积层Conv3-6包含64个5*5大小的卷积核且卷积核移动步长为2,第七层卷积层Conv3-7包含3个5*5大小的卷积核。由于提取面部高层语义信息会丢失大量的面部细节信息,所以通过两个跳跃式连将第二分支提取的面部细节的底层特征加入第三分支,即生成模块的第二分支的第二层卷积层Conv2-2的输出结果输入到其第三分支的第四层卷积层Conv3-4,第二分支的第一层池化层Pool2-1的输出结果输入到第三分支的第五层卷积层Conv3-5。

将第一分支和第二分支输出的两个256维特征矩阵按列拼接成的矩阵输入到第三分支即可得到与语音对应口型的人脸图像。

去模糊模块共包括9个顺序连接的卷积层,其作用是对生成的人脸图像进行锐化。由于深度卷积网络生成的图像分辨率普遍较低,利用去模糊模块,可以有效的锐化图像,使图像更加清晰。9个卷积层都包含64个3*3大小的卷积核,通过九个卷积层提取人脸图像的细节信息,最后将九个卷积层输出结果与输入的人脸图像点对点相加,得到更加锐化的人脸图像。

为达到好的图像生成效果,需事先对网络模型进行训练,具体为:

(1)数据集预处理。使用由Chung和Zisserman在文献“J.S.Chung,A.Zisserman,“Out of Time:Automated Lip Sync in the Wild”,ACCV Workshops(2)2016,pp.251-263,2016”提出的SyncNet网络对VoxCeleb和LRW数据集进行处理,确定数据集里视频中讲话的人物,然后利用基于HOG的DLIB人脸检测器检测讲话人物的人脸序列,所得到的人物的人脸序列与原数据集中与人物对应的语音即构成了预处理后数据集。这种处理不需要手动标注人脸,节省了大量的人力物力。

其中,VoxCeleb数据集来自“Arsha Nagrani,Joon Son Chung,Andrew Zisserman,“VoxCeleb:A Large-Scale Speaker Identification Dataset”,INTERSPEECH 2017,pp.2616-2620,2017”,LRW数据集来自“Joon Son Chung,Andrew Zisserman,“Lip Reading in the Wild”,ACCV(2)2016,pp.87-103,2016”。两个数据集由名人访谈和广播新闻视频组成,视频中大部分视频中的面孔是面向镜头、说话清晰、没有背景噪音,是进行网络训练的理想数据集。

(2)生成模块训练。将预处理后的数据集的80%作为生成模块的训练集,剩下的20%作为生成模块的测试集。将训练集中成对的人脸和音频输入到生成模块,并利用随机梯度下降法进行训练,得到初步训练后的生成模块。

(3)生成模块测试。将测试集中成对的人脸和音频成输入至步骤(2)得到的生成模块,计算生成图像C与真实图像T的L1损失值,如果损失值小于10-3,则认为网络达到收敛,步骤(2)得到的生成模块即为最终的生成模块,否则,返回步骤(2)继续进行训练。

L1损失值的计算公式为:

其中,cijk表示表示生成图像C矩阵(i,j,k)位置的元素,tijk表示真实图像T矩阵(i,j,k)位置的元素。

(4)去模糊模块训练。将步骤(1)预处理后数据集中成对的人脸和音频输入步骤(3)得到的生成模块中,生成相应口型的面部图像,以所得到面部图像的80%作为去模糊模块的训练集,剩下的20%作为去模糊模块的测试集。将训练集中的面部图像输入到去模糊模块,并利用随机梯度下降法进行训练,得到初步训练后的去模糊模块。

(5)去模糊测试。将去模糊测试集中的面部图像输入到去模糊模块进行测试,如果生成图像与真实图像的L1损失值小于10-3,则认为网络达到收敛,步骤(4)得到的去模糊模块即为最终的去模糊模块,否则,返回步骤(4)继续进行训练。

至此,即得到训练好的网络,将上一步骤检测得到的人脸图像和计算得到的MFCC系数矩阵输入到训练好网络中,即得到与音频对应口型的人脸图像。

4、利用相似变换将Speech2Vid模型生成的人脸图像与步骤1得到的静止画面中人脸的眼睛和鼻子对齐,点对点替换步骤1得到静止画面中面部图像像素,得到新的静态图像,将得到的新的静态图像作为视频的下一帧,输出到视频通话中;所述的相似变换主要包括缩放、旋转、平移。

5、判断视频通话是否结束,如果未结束,则返回步骤1,若视频结束,则结束算法。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1