当前位置: 首页 > 编程日记 > 正文

仅用语音,AI就能“脑补”你的脸! | 技术头条

640?wx_fmt=gif点击上方↑↑↑蓝字关注我们~

640?wx_fmt=png

2019 Python开发者日」,购票请扫码咨询 ↑↑↑


作者 | Wav2pix 研究团队

译者 | 刘畅

编辑 | Jane

出品 |  AI科技大本营(公众号id:rgznai100)


【导语】之前我们为大家介绍过一项非常酸爽的研究“Talking Face Generation”:给定音频或视频后(输入),可以让任意一个人的面部特征与输入的音视频信息保持一致,也就是说出输入的这段话。当时营长就想到了“杨超越的声音+高晓松的脸”这样的神仙搭配。不过,近期一项新研究再度抓到了营长的眼睛!在最新的研究中,研究者仅需要音频信息就生成了人脸... ...如此鬼畜的操作,此乃头一次见啊!接下来营长就为大家介绍一下这项工作!


640?wx_fmt=jpeg


音频和图像是人类最常用的两种信号传输模式,图像传达的信息非常直观,而语音包含的信息其实比我们想象的要更丰富,包括说话人的身份,性别和情绪状态等等。从这两个信号中提取的特征通常是高度相关的,可以让人仅聆听声音就可以想象他的视觉外观。WAV2PIX 的工作就是仅利用语音输入,来生成说话者的人脸图像。其实这就是一个跨模态的视觉生成任务。

 

谈到这项研究的贡献,主要有三点:


  • 提出了一个能够直接从原始的语音信号生成人脸的条件GAN:WAV2PIX;

  • 提供了一个在语音和人脸两方面综合质量很高的一个数据集:Youtubers;

  • 实验证明论文的方法可以生成真实多样的人脸。

 

论文收集了大V用户(Youtubers)上传到 Youtube 的演讲视频,这些视频通常具有高质量的说话环境、表达方式、人脸特征等。Youtubers 数据集主要由两部分组成:一个是自动生成的数据集和一个手动处理后的高质量的子集。


主要的预处理工作:

 

  • 音频最初下载的是高级音频编码(AAC)格式,44100 Hz,立体声。因此转换为 WAV 格式,并重新采样到 16 kHz,每个样例占 16 位并转换为单声道。

  • 采用基于 Haar 特征的人脸检测器来检测正脸。仅采纳置信度高的帧

  • 保存检测出来的那帧图像及前后两秒的语音帧,以及一个标签(identity)。

 

方法介绍

640?wx_fmt=png      


研究主要由三个模块构成:一个是语音编码器,一个是图片生成网络,一个是图片判别网络。


语音编码器(Speech Encoder):已有的方法大多数是手工提取音频特征,并不是针对生成网络的任务进行优化的,而 SEGAN 提出了一种在波形上用于语音处理的方法。因此作者在已有的工作 SEGAN 上进行修改。修改为具有 6 层一维网络,并且每层的 kernel 大小是 15x15,步长为 4,然后每层卷积网络后面使用 LeakyReLU 激活函数,网络的输入通道是 1。输入 16kHZ 下1 秒的语音片段,上述的卷积网络可以得到一个 4x1024 的张量,然后采用三个全连接网络将特征数量从 4x1024 降到 128。作为生成器网络的输入。

 

图片生成器(Image Generator Network):输入是语音编码器的 128 向量。采用二维转置卷积、插值、dropout 等方式将输入转为 64x64x3 或者 128x128x3 的张量。在 G 的损失函数中添加了一个辅助损失用于保持说话人的标签(Identity)。

 

图片判别器(Image Discriminator Network):判别器由几层步长为 2,kernel 大小是 4x4 的卷积网络组成,并使用谱归一化和 LeakyReLU 激活函数。当张量为 4x4 时,作者拼接了语音的输入,并采用最后一层网络来计算 D 网络的分数。

 

实验过程


训练:将手动处理后的数据集作为训练集,采用数据增强等手动。值得注意的是,在处理时将每张图像复制了 5 次,并将其与 4 秒音频里面随机采样的 5 个不同的1秒音频块进行匹配。因此总共有 24K 左右的图像-音频对用于模型训练。其它超参数采用参考的文献设置。


评估:下图给出了可视化的结果,虽然生成的图像都比较模糊,但基本可以观察到人的面部特征,并且有不同的面部表情。


640?wx_fmt=png      

作者进一步微调了一个预训练的 VGG-FACE Descriptor 网络,用于量化测试结果,在作者提供的数据集上,可以达到 76.81% 的语音识别准确率和 50.08% 的生成图像准确率。

 

为了评估模型生成图像的真实程度,作者定义了一个 68 个人脸关键点的精度检测分数。如下图所示,测试结果精度可以达到 90.25%。表明在大多数情况下生成的图像保留了基本的面部特征。


640?wx_fmt=png      


感兴趣的小伙伴们可以下载阅读研究一下~


640?wx_fmt=png


(本文为 AI大本营编译文章,转载请微信联系 1092722531


精彩推荐


「2019 Python开发者日」演讲议题全揭晓!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。

640?wx_fmt=jpeg


推荐阅读:

  • 定了!人社部等发布13项新职业,AI、无人驾驶、电竞上榜

  • 技术头条

  • 何恺明等人提TensorMask框架:比肩Mask R-CNN,4D张量预测新突破

  • 极客头条

  • 争论不休的TF 2.0与PyTorch,到底现在战局如何了? | 技术头条

  • 零门槛!手把手教你打造AI应用

  • 分析11年21部漫威电影,一览导演、主演、口碑票房最佳......

  • 靠找Bug赚了6,700,000元!他凭什么?

  • 30位90后霸榜! 福布斯: 比你年轻、比你有颜、比你有才华, 就是他们了!

  • 程序员深夜逆行被拦后崩溃欲自杀:老板在催我!女朋友在催我!

  • 微软 CTO 韦青:“程序员 35 岁就被淘汰”是个伪概念 | 人物志

  • OpenStack已死?恐怕你想多了 | 技术头条

640?wx_fmt=png

点击“阅读原文”,查看历史精彩文章。

相关文章:

如何在SAP云平台上使用MongoDB服务

首先按照我这篇文章在SAP云平台上给您的账号分配MongboDB服务:如何在SAP云平台的Cloud Foundry环境下添加新的Service 然后从这个链接下载SAP提供的例子程序。 1. 使用命令行 cf marketplace查看当前SAP云平台的MongoDB的版本号:在我使用的SAP云平台上是…

C#中将dll汇入exe,并加壳

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 1、合并file1.dll、file2.dll到destination.dll ILmerge /ndebug /target:dll /out:C:\destination.dll /log C:\file1.dll C:\file2.dll 2、合并file1.dll、file2.dll以及myApp.exe…

【AI】dlib中图像标注工具 imglab 详细说明

一、基本用法 imglab是一个在图像上标注矩形的工具。基本方法 1> 获取图片列表&#xff1a;./imglab -c mydataset.xml /tmp/images&#xff0c;/tmp/images为保存图像的文件夹 2> 标注每个图片&#xff1a;./imglab mydataset.xml&#xff0c;使用shift鼠标左键拖动来选…

最萌算法学习来啦,看不懂才怪!| 码书

普通程序员&#xff0c;不学算法&#xff0c;也可以成为大神吗&#xff1f;对不起&#xff0c;这个&#xff0c;绝对不可以。可是算法好难啊~~看两页书就想睡觉……所以就不学了吗&#xff1f;就一直当普通程序员吗&#xff1f;如果有一本算法书&#xff0c;看着很轻松……又有…

Redis 缓存设计原则

基本原则 只应将热数据放到缓存中 所有缓存信息都应设置过期时间 缓存过期时间应当分散以避免集中过期 缓存key应具备可读性 应避免不同业务出现同名缓存key 可对key进行适当的缩写以节省内存空间 选择合适的数据结构 确保写入缓存中的数据是完整且正确的 避免使用耗时…

最强大,最简洁的【禁止输入中文】

方法一&#xff1a;禁止中文输入法 <input type"text" style"ime-mode:disabled">方法二&#xff1a;禁止黏贴&#xff0c;禁止拖拽&#xff0c;禁止中文输入法&#xff01;这种方法是最强的禁止 中文输入 <input type"text" οnpaste…

无监督机器学习中,最常见4类聚类算法总结 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑编译 | 安然、狄思云来源 | 读芯术&#xff08;ID&#xff1a;AI_Discovery&#xff09;在机器学习过程中&#xff0c;很多数据都具有特定值的目标变量&#xff0c;我们可以用它们来训练模…

自动红眼移除算法 附c++完整代码

说起红眼算法&#xff0c;这个话题非常古老了。 百度百科上的描述&#xff1a; “红眼”一般是指在人物摄影时&#xff0c;当闪光灯照射到人眼的时候&#xff0c;瞳孔放大而产生的视网膜泛红现象。 由于红眼现象的程度是根据拍摄对象色素的深浅决定的&#xff0c;如果拍摄对象的…

【Dlib】在GPU环境中运行dlib中的例子dnn_mmod_ex报错...dlib::cuda_error...Error while calling cudaMalloc...

1、问题描述 在GPU环境下运行dlib中的例子dnn_mmod_ex时&#xff0c;报错&#xff1a; terminate called after throwing an instance of dlib::cuda_errorwhat(): Error while calling cudaMalloc(&data, new_size*sizeof(float)) in file /home/laoer/tools/dlib/dlib…

Exchange 2010正式发布了

2009年11月9号&#xff0c;Exchange 2010正式发布了&#xff0c;下载地址&#xff1a;http://www.microsoft.com/downloa ... 0-879f-d74208d6171d简体中文64位120天试用版转载于:https://blog.51cto.com/287416363/657202

【python】使用python脚本将CelebA中图片按照 list_attr_celeba.txt 中属性处理(删除、复制、移动)

1、目的 CelebA中的照片有四十种属性&#xff0c;参见&#xff1a; 【AI】CelebA数据介绍、下载及说明 根据需求从celebA中获取我们想要的图片&#xff0c;方法是将CelebA中图片按照 list_attr_celeba.txt 中属性执行删除、复制或移动操作。 命令格式&#xff1a; python3 C…

firefly 编译opencv3.3.1, CMake报错

更换gcc编译器可以解决 -D CMAKE_C_COMPILER/usr/bin/gcc-4.8转载于:https://www.cnblogs.com/gabrialrx/p/9001554.html

AI时代,为何机器人公司无法盈利只能走向倒闭?

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | Bram Vanderborght译者 | 弯月责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;导语&#xff1a;机器人专家需要公开诚实地讨论我们的成功&#xff0c;而不…

Google Objective-C Style Guide

看题目就知道了&#xff5e;哪天有空翻译成中文的&#xff5e;不多说了&#xff5e;上链接&#xff5e;Google Objective-C Style Guide转载于:https://blog.51cto.com/lulala/659124

ICPC 2019国际大学生程序设计竞赛,中国高校未能夺冠

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;一年一度的国际大学生程序设计竞赛&#xff08;International Collegiate Programming Contest&#xff0c;ICPC&am…

完爆Facebook/GraphQL,APIJSON全方位对比解析(一)-基础功能

相关阅读&#xff1a; 完爆Facebook/GraphQL&#xff0c;APIJSON全方位对比解析(二)-权限控制 完爆Facebook/GraphQL&#xff0c;APIJSON全方位对比解析(三)-表关联查询 自APIJSON发布以来&#xff0c;不断有网友拿来和Facebook的GraphQL对比&#xff0c; 甚至有不少人声称“完…

【AI】吴恩达斯坦福机器学习中文笔记汇总

1、吴恩达机器学习和深度学习课程的字幕翻译以及笔记整理参见&#xff1a; 以黄海广博士为首的一群机器学习爱好者发起的公益性质项目&#xff08;http://www.ai-start.com&#xff09;。 2、黄海广博士公益项目介绍 https://www.jianshu.com/p/16a749e332db 3、吴恩达 斯坦…

【C++】C++命名空间重定向

参见博客&#xff1a; namespace使用总结 命名空间的重定向的格式&#xff1a; namespace newName oldName; 在caffe源码走读时&#xff0c;遇到namespace的重定向用法&#xff0c;以前没有用过&#xff0c;源码如下&#xff0c;其中 GFLAGS_GFLAGS_H_是为了检测gflags的版…

宝宝都能看懂的机器学习世界

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | 武博士、宋知达、袁雪瑶、聂文韬来源 | 大鱼AI&#xff08;ID&#xff1a;DayuAI-Founder&#xff09;人类需要经过各式各样的学习才有办法认识这个世界。 当小朋友第一次看到猫后…

iOS LLDB调试命令(Low Lever Debug)

断点 设置断点 $breakpoint set -n XXX set 是子命令 -n 是选项 是--name 的缩写!查看断点列表 $breakpoint list删除 $breakpoint delete 组号禁用/启用 $breakpoint disable 禁用 $breakpoint enable 启用遍历整个项目中满足Game:这个字符的所有方法 $breakpoint set -r Game…

TCP通信速率与延时关系

刚刚研究了链路延时对TCP速率的影响&#xff0c;占位&#xff0c;有空会写一下。转载于:https://blog.51cto.com/csnas/659983

十三、序列化和反序列化(部分转载)

json和pickle序列化和反序列化json是用来实现不同程序之间的文件交互&#xff0c;由于不同程序之间需要进行文件信息交互&#xff0c;由于用python写的代码可能要与其他语言写的代码进行数据传输&#xff0c;json支持所有程序之间的交互&#xff0c;json将取代XML&#xff0c;由…

【C++】google gflags详解

参考博客&#xff1b;https://blog.csdn.net/lezardfu/article/details/23753741 0、简介 gflags是google的一个开源的处理命令行参数的库&#xff0c;使用c开发&#xff0c;具备python接口&#xff0c;可以替代getopt。gflags使用起来比getopt方便&#xff0c;但是不支持参数…

何恺明等人新作:效果超ResNet,利用NAS方法设计随机连接网络 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑译者 | 刘畅编辑 | 一一出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;受人工设计的启发&#xff0c;用于图像识别的神经网络从简单的链状模型发展为具有多个分支的网络。ResN…

网络规划设计师考试命题模式持续在变   你变不变

命题模式持续在变 你变不变深入分析2009下半年&#xff5e;2010下半年3次网络规划设计师考试试卷中项目管理模块&#xff08;约有5~8题&#xff0c;约占总分数的6.67%~10.67%&#xff09;的命题规律&#xff0c;心中最强烈的一份感觉体现在一个字——变。“变”是事物持续发…

【C++】google glog详解

0、简介 glog是google的日志管理系统&#xff0c;配合gflags库&#xff0c;通过命令行参数管理日志。 源码下载&#xff1a;https://github.com/google/glog ubuntu安装&#xff1a; sudo apt-get install libgoogle-glog*参考博客&#xff1a; https://blog.csdn.net/jcjc91…

仿抖音注册界面制作

话说上次完成了仿抖音我的界面制作之后&#xff0c;今天抽空又把注册界面给做了&#xff0c;还是做了些小改动&#xff0c;将第三方登录去掉了 注册还是老规矩直接奉上psd源码&#xff1a;仿抖音注册界面psd源码 个人博客https://myml666.github.io

00后的AI开发者进阶之道:从入门到鏖战MIT编程大赛 | 人物志

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | 若名出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;当所有中国的高中生都在拼命为跨过高考这道窄门疲惫不堪时&#xff0c;美国的准高中毕业生们也开始申请大学&#x…

js的全部替换函数replaceAll

JS替换功能函数&#xff0c;用正则表达式解决&#xff0c;js的全部替换&#xff0c;学习js的朋友可以参考下。 alert("abacacf".replace(a,9)); alert("abacacf".replace(/a/g,9)); 第一个运行的结果 9bacaf 这个只是替换了第一个 第二个运行的结果 9b9c9f…

【C++】Google Protocol Buffer(protobuf)详解(一)

1、简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准&#xff0c; Protocol Buffers 是一种轻便高效的结构化数据存储格式&#xff0c;可以用于结构化数据串行化&#xff0c;或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通…