利用Python让图片开口说话

图片

如果需要一张照片开口说话,你可能想到,替换一个动画的嘴巴进来就可以了。

但周洋同学不这么想,因为那么,说话并不自然,看起来很假。

那么就让我们来看看这位同学的作品。

可以看到,无论是真人,还是卡通人物,都有不错的效果。

他的关键点在哪呢?

没错,就是不是简单的张嘴就行了,还要摇头晃脑。

如果你想是固定的晃动动作就行了,那么你想的太简单了。

这位同学,通过对影片人物的动作捕捉,进行机器学习,捕捉不同角度的人物,说话时,不同的动作特征。

再把这个模型应用于照片说话。

这还不算完!

后来又增加了同步的语音与画面的同步学习。

也就是说,每一个字的发音,会有不同的动作特征。

这样给一段音频+一张照片 就能生成一段非常生动的说话视频了!!

该研究的主要贡献如下:
  • 提出一种基于深度学习的新架构,能够仅基于语音信号预测面部特征点,捕捉嘴唇、下巴、眉毛、鼻子和头部的姿势;
  • 基于分离开的语音内容和说话人表征生成包含面部表情和头部动态的动画;
  • 针对矢量风格卡通图像和真实人物面部图像各提出一种图像合成方法。这些方法可以处理训练过程中未出现的新人脸图像和卡通人物图像
  • 提出一组定量度量指标,并对头部动画方法的评估进行了用户调研。

如上图所示,给出一段音频和一张面部图像,MakeItTalk 架构可以生成说话人的头部状态动画,且声画同步。

在训练阶段,研究者使用现成可用的人脸特征点检测器对输入图像进行预处理,提取面部特征点。然后使用输入音频和提取到的特征点直接训练使语音内容动态化的基线模型。为了达到高保真动态效果,研究者尝试将输入音频信号的语音内容和说话人嵌入分离开来,进而实现面部特征点的预测。

具体而言,该研究 使用声音转换神经网络将语音内容和说话人身份信息分离开 。

语音内容与说话人无关,仅捕捉嘴唇及周围区域的运动(参见图 2「Speech Content Animation」)。说话人的身份信息则决定了动作的细节和说话人的其余头部动态(参加图 2「Speaker-Aware Animation」)。

例如,不管谁说单词「Ha!」嘴唇都会张开,这与说话人无关,仅取决于说话内容。而嘴唇的形状和张开的幅度,以及鼻子、眼睛和头部的动态则取决于说话人的身份。

基于语音内容和说话人身份信息,MakeItTalk 模型为给定音频输出预测特征点序列。

为了生成光栅图像,研究者开发了两种特征点-图像合成(landmark-to-image synthesis)算法

对于非真人图像,如油画或矢量图,该研究使用基于德劳内三角剖分(Delaunay triangulation)的简单换脸方法。

对于真人图像,则使用图像转换网络(类似于 pix2pix)将真人面部图像和底层特征点预测动态化(参见上图 2「Image2Image Translation」)。

之后结合所有图像帧和输入音频,就可以得到最终的说话状态头部动画了。

未经允许不得转载:萌萌guo angline - Apprentissage » 利用Python让图片开口说话

赞 (1) 打赏

评论 0

Protected with IP Blacklist CloudIP Blacklist Cloud

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏