麻省理工学院的Speech2Face是一项通过语音信号生成说话者面部的研究。但是,它不使用一种模型执行语音到面对面的转换,而是将现有研究的结果用于不同目的进行组合以产生令人印象深刻的结果。 (第一作者是吴泰-教授,目前在浦项大学)
第一项是现有的从图像中提取面部向量的研究,而VGGFace专门研究了面部图像,例如ImageNet等,一直在进行图像分类研究。通常,VGGFace的fc7层(4096d)用作特征向量,可以用于其他目的,例如面部分类,年龄识别和面部搜索。 Speech2Face使用具有VGG样结构的7层CNN将语音信号转换为复杂的频谱图(598x257x2),并将其转换为4096d向量。训练的目的是当将语音放入该模型中作为语音-人脸对时,获得VGGFace获得的人脸向量4096d。换句话说,Speech2Face可以看作是VGGFace的频谱图。
第二步是通过输入VGGFace的特征向量来生成面部图像,这项研究是Google和MIT合作创建的一项独立技术,Speech2Face利用了该技术。该技术也不是像GAN这样的端到端直接生成模型,它通过面部矢量创建两个明显的特征,面部标志和面部纹理,然后通过变形“合成”它们。这样做的原因是,尽管分别学习这两个特征更为有效,但该技术的最初目的是将正在注视并表达表情的人的图像转换为正面的不露脸的脸。为此,我们有两个模块,分为输入图像到面部向量和面部向量到输出图像,Speech2Face使用第二个模块。作为参考,到地标的面部矢量使用MLP,到纹理的面部矢量使用CNN。
我在阅读本文时感觉到的一件事是,通过循环利用和结合AI的基本单元技术模块来创造新价值的方法似乎是未来的主要趋势之一。 (就发展而言,是快速原型设计,微服务架构)上面的论文似乎将语音与面部矢量相结合,而面部矢量与面部图像相结合。我认为,将来,如果您在这里将语音与情感结合起来,您将能够从语音信号中创建人脸和表情。
当前,AI API倾向于被设计为易于服务应用程序的高级(例如语音识别-语音到文本),但是,每个模型(或概念)使用了许多低级API(例如语音到矢量)。通过在上层进行设计和网格划分,我认为我们可以更快,更高效地创建多个服务。
没有公开Speech2Face的完整源代码。但是,在下面的(1)中实现了针对面部向量的语音,而针对面部图像的面部向量是3D,因此略有不同,但是您可以参考以下(2)。
- Speech2Face的语音转面部矢量模块
- 人脸矢量到人脸图像(3D)模块(不相同,仅供参考)
附加相关链接。