用机器学习还原《隐秘的角落》那些被修改的台词
来源 | 东泽聊技术
责编 | Carol
前两天,作者一口气看完了电视剧《隐秘的角落》,剧情相当精彩。美中不足的是,剧组为了让片子过审, 导致11集,12集的剪辑顺序被打乱,甚至台词被修改,以至于片中有几个处演员口型与台词对不上,剧情也有点让人摸不到头脑。因此我尝试通过人工智能技术还原了被修改的台词,从而还原了一部分原本的剧情,一个更加黑暗的真相。
因要过审而被修改的台词
被修改的台词主要集中在 12 集,朱朝阳、严良两人火海逃生后在天台上的对话:
严良:「告诉警察吧」
朱朝阳:「像我爸希望的那样 」
朱朝阳:「你想报警么」
这段对话其实被后期修改过了,口型和内容不吻合。至于「隐秘」剧组为什么要修改这段台词,我也是在还原了原对话之后才知道答案,因为原对话实在过于黑暗了,坐实了朱朝阳的黑化,是不可能过审的。那么原对话到底是什么?往下看,我用深度学习来告诉你答案。
用机器学习识别唇语,还原对话
这部分主要演示用机器学习的手段识别唇语,唇语识别就是靠分析人说话时嘴唇与面部的特征来解读人说话的内容。这里我并不介绍唇语识别模型的基础架构(篇幅太长,后面有机会单独讲),而是通过以识别张朝阳唇语为例,演示一下唇语识别的一个简单流程。这个案例中的模型我选使用基于 Tensorflow 的 Facemash 模型进行二次训练。Facemash 的主要作用是获取面部表情的特征。
之后通过分析嘴唇的运动特征,来预测出说话内容的汉语拼音的声母和韵母。(直接通过嘴型预测汉字难度太大,所以我要先预测出拼音,之后再根据剧情+拼音还原出原对话)
第一步先通过 Facemash 拿到朱朝阳对话的面部特征,如图:
这张「面膜」就是 Facemash 模型识别出来的特征点间的连接,下图是某一帧的面部识别数据:
我们将一系列连续的数据展示在3D空间坐标轴下的话,就是一张对话中的的脸了。
拿到嘴唇和面部特征后,就要进行预测了,这部分我直接给大家展示动态流程图:
利用这种方法,我还原了这句原台词汉语拼音的几种可能:
ni ba xiao ba chou me
ni ba xiang ba chou me
ni bu xiang bao chou me
这些拼音翻译过来是啥呢?我把每组拼音用输入法测试了一遍,发现 「ni bu xiang bao chou me」这句的结果与剧情最贴切:「你不想报仇么?」
把「你不想报仇么」带入对话,发现口型也对上了。bingo,这才是原台词呀:
同样的方法,我又还原了几处原对话,如下:严良:「那该怎么办」而不是「告诉警察吧」
朱朝阳:「除非让他被抓...」而不是「像我爸希望的那样」
朱朝阳:「你不想报仇么」而不是「你想报警么」
好了,以上就是我用机器学习 + 剧情联想还原的天台对话。接下来我就要来解读剧情了,解读为什么这段对话会坐实朱朝阳的黑化,不能过审。
解读被修改的台词
过审有两个重要的原则:1、不能出现悬案;2、坏人必须被绳之以法
知道了这个前提,我们再来审视一下被修改的台词。全剧出现了三张内存卡,原卡最后给了张东升,空卡给了严良,而复制卡一直在朱朝阳手里。也就是说 11 集大火之后,朱朝阳本可以将复制卡交给警察,从而将张东升绳之以法。但是这时候的朱朝阳并不敢报警,因为他并不知道普普是否将朱晶晶的真实死因告诉了严良,因此他不敢冒险。
那么对于朱朝阳来说,此时此刻对于自己最有利的方案就是:利用张东升的手杀死严良,然后再把复制卡交给警察,逮捕张东升。所以根据上面还原的台词,天台上的真实对话很可能是:
严良问:「那该怎么办?」朱朝阳应该说了一个抓捕张东升的计划,这里由于被剪辑过,不知道剧情,还原难度比较大,但我还是还原了一句话:「除非让他被抓...」。根据还原的这句话,我认为朱朝阳告诉严良的计划应该是这样的:1.朱朝阳把张东升约到船头2.张东升与严良冲突3.朱朝阳立刻报警当场抓住张东升犯罪事实
然而这时候,严良对朱朝阳没有了之前的信任,因此对这个计划有些犹豫。最后朱朝阳补刀:「你不想报仇么?」
最终善良的严良为替普普报仇,还是同意了这个计划。
以上就是我结合剧情大致还原的对话。朱朝阳的目的是借张东升的手杀死严良,利用这个计划借刀杀人,让严良送死的。而朱朝阳内心真实计划我想是这样的:
1.引导张东升与严良见面发生冲突(自己并不报警,后面警察来了之后朱朝阳的表情是震惊的,因为并不是他报警的)
2.如果胜利回来的是严良,那么他就会乘其不备杀死严良(朱朝阳和严良学过打架),然后嫁祸给张东升
3.如果胜利回来的是张东升,那么他就会跳进大海逃生(朱朝阳一直在练习憋气),然后把复制卡交给警察。
分析到这里,朱朝阳的内心的阴暗已经不忍直视。可能这也正是「隐秘」剧组原本想要呈现的坏小孩。
就像原著小说「坏小孩」里说的那样「在成年人眼里,小孩子永远是简单的。即使小孩会撒谎,那谎言也是马上能戳穿的,他们根本想象不到小孩子的诡计多端,哪怕他们自己也曾经当过小孩。」
推荐阅读
阿里巴巴副总裁司罗:达摩院如何搭建NLP技术体系?
重磅!CSDN 发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单
疫情排查节时86%?不会代码也能玩转模型训练?腾讯大神揭秘语音语义及AutoML黑科技 | 内含福利
张钹院士:探索第三代人工智能,需要勇闯无人区的人才
AI ProCon 2020 圆满落幕,百位专家与万名开发者共同拉开人工智能新篇章
厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶
Balancer因通缩代币STA遭遇闪电贷攻击,价值50万美元资产被黑
你点的每个“在看”,我都认真当成了AI
相关文章:

在ASP.NET下实现数字和字符相混合的验证码
作者:kwklover(原作) 出处:CSDN 在ASP.NET下实现数字和字符相混合的验证码 经常在论坛里看到有问怎么实现验证码的帖子,其实关于验证码的文章在CSDN,DEV-CLUB等网站上都有很多,但是很多文章只讲诉了如何输出一个随机生成数字…

多节点CDN缓存加速系统wdcdn2.4版本发布(20111213)
多节点CDN缓存加速系统wdcdn2.4版本发布(20111213) Wdcdn是一套基于Linuxapachesquid架构开发的CDN缓存加速系统及管理系统 可帮助大中小站长或大中小企业低成本,快速简单,构建自己的CDN网络及服务器群,提供更好的在线服务,更快速的网络和网站,我们也致力…

Attribute在.net编程中的应用
作者:niwalker 出处:csdn SqlCommandGenerator类的设计 SqlCommandGEnerator类的设计思路就是通过反射得到方法的参数,使用被SqlCommandParameterAttribute标记的参数来装配一个Command实例。 引用的命名空间://SqlCommandG…

RouterOS连载3:架设PPPoE服务
让ROS提供PPPoE服务,可对客户端提供类似ADSL的认证上网方式。具体设置步骤如下: 一、创建地址池 从Winbox联入ROS,单击“IP”-〉“Pool”,如下图 打开“IP Pool”对话框 单击“”按钮,添加地址池,Name: pppoepool1 …
免费技术直播:唐宇迪带你一节课了解机器学习经典算法
常常有小伙伴在后台反馈:机器学习经典算法有哪些?自学难度大又没有效果,该怎么办?CSDN为了解决这个难题,联合唐宇迪老师为大家带来了一场精彩的直播【一节课掌握机器学习经典算法-线性回归模型】。本次直播将帮大家了解…

初学markdown
分段与标题 分段 正如markdown文档所说的,段落是由若干行组成的,段落之间以一行空行分开。(也就是每一段的前后都要有一个空行) 一个 Markdown段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上…

C++中关于流的概念
怎么从键盘中读取一个整数并包括错误处理 int a; while (cin.get(ch1)) { if (ch1\n) cout<<"input the right number:"; //第一次输入换行; else if (cin.get(ch2),ch2\n) { ach1-0; …
成为人工智能视觉应用工程师需要多久?我用了45天!
说到计算机科学中最热门的几个方向,毫无疑问会提到计算机视觉!不管是最近大火的人脸识别,还是计算机视觉、自动驾驶、VR影像,不管是教育、医疗、还是安防、娱乐,计算机视觉的应用场景开始变得越来越广。在6月23~24日的…

一个请求从 URL 字符串到 HTML 代码的“漫长曲折”之路
作者:Dino Esposito 出处:msdn ASP.NET HTTP 运行时 一个请求从 URL 字符串到 HTML 代码的“漫长曲折”之路 Dino EspositoWintellect 2003年7月10日 摘要:本文详细介绍了 HTTP 运行时的组成部分,以及在处理对 ASP.NET 应用程…

asp.net webapi 序列化为xml 时实体属性增加![CDATA[]]防止特殊字符
有时webapi在序列化xml时,可能需要给某些带有html或特殊字符(如 < > & /)的字段加上<![CDATA[]]> 已防止影响xml正常数据,如果使用.aspx视图那可直接在前台绑定字段时直接加入<![CDATA[]]>,weba…

C#中读取数据库中Image数据
作者:未知 请与本人联系DataReader 的默认行为是在整个数据行可用时立即以行的形式加载传入数据。但是,对于二进制大对象 (BLOB) 则需要进行不同的处理,因为它们可能包含数十亿字节的数据,而单个行中无法包含如此多的数据。Comman…
创新工场提出中文分词和词性标注模型,性能分别刷新五大数据集| ACL 2020
出品 | AI科技大本营(ID:rgznai100)中文分词和词性标注是中文自然语言处理的两个基本任务。尽管以BERT为代表的预训练模型大行其道,但事实上,中文中基于全词覆盖 (whole word masking)的预训练模型比直接使…

使用XML在MSSQL把字串分解
今天要在mssql里处理一串Email地址。以分号分开的。以前自己写过一个split函数的。这次想使用xml来处理。mssql 2000和mssql 2005数据库对xml的支持有些不同。至少mssql 2005的功能多些。代码一:这个代码在MSSQL 2005测试成功, 在mssql 2000不通过。最后生成一个表变…
tomcat中server.xml文件详解
原文:http://www.cnblogs.com/starhu/p/5599773.html Tomcat Server的结构图如下:该文件描述了如何启动Tomcat Server <Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources <Service> …
想提前目睹人到中年的发型?试试这款自制秃头生成器
要说最近哪部剧最红,我说是《隐秘的角落》没人有意见吧?看了这部片子,全国观众除了被男主张东升提醒爬山有风险之外,片中的另一个场景也颇让人印象深刻,容易让人产生共鸣,那就是张东升看到自己二十年后的样…

Windows Phone实用开发技巧(32):照片角度处理
在实际项目中,可能需要用户从相册中选择图片然后进行相应的处理。但是不知道大家有没有发现这样一种情况,就是手机里看是竖着的,但是上传到微博或者哪里的时候确实横着的。一种情况是你拿手机竖着拍照得话,照片就是横着的…

ubuntu 12 JDK 编译
下载openjdk源码 http://jdk7.java.net/source.html 安装Ubuntu上面的依赖包: 1、参考原书 环境变量配置: 1、去www.hzbook.com上面将深入理解java虚拟机,周志明写的那本书的代码download2、ALT_BOOTDIR变量最好引用 jdk1.7.0_04,…
“编程能力差,90%是输在这点上!”谷歌AI开发专家:逆袭并没那么难!
Google 人工智能开发者专家彭靖田老师说——超90%的程序员在初学Python 人工智能时,都会遇到下面3个问题:1.想入门人工智能,但不知从何学起,也不知道该选择什么方向...2.Python语法、机器学习/深度学习框架、算法都能看懂…

文本的DES加密 MD5散列值 DSA的数字签名
作者:未知文本的DES加密为了对称加密的安全,将密码进行封装,先新建一个用于保存密码的类库cl:using System;using System.Text ;namespace cl{ /// <summary> /// Class1 的摘要说明。 /// </summary> public class C…

在SQL Server中调用.NET程序集
使用到这东西完全是个巧合和无奈之举。不小心在数据库中插入了一些HttpUtility.UrlEncodeUnicode之后的数据。数据库里的一些字段成了%uxxxx%uxxxx这样的结构。 搜索了半天T-SQL UrlDecode的函数,发现都不支持上面这种Unicode的。自己对T-SQL又不熟悉,时…

AngularJS2 + ASP.NET MVC项目
环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问题。 通过下面的若干配置最终向项目build成功。 转载于:https://www.cnblogs.com/1zhk/p/5831567.html
干货!仅有 100k 参数的高效显著性检测方法
作者 | 南开大学 程明明、依图科技 颜水成责编 | Carol封图 | CSDN 下载自视觉中国显著性目标检测模型通常需要花费大量的计算成本才能对每个像素进行精确的预测,因此这使得其几乎不适用于低功耗的设备。本文旨在通过提高网络计算效率来缓解计算花费与模型性能之间的…

如何将一个彩色图像转换成黑白图像
作者:未知彩色图像转换为黑白图像时需要计算图像中每像素有效的亮度值,通过匹配像素 亮度值可以轻松转换为黑白图像。 计算像素有效的亮度值可以使用下面的公式: Y0.3RED0.59GREEN0.11Blue 然后使用 Color.FromArgb(Y,Y,Y) 来把计算后的值…

修改Activity响应音量控制键修改的音频流
转自:http://rainhomepage.appspot.com/2010/05/hardware-volume-controls-audio-stream-setvolumecontrolstream 当开发多媒体应用或者游戏应用的时候,需要使用音量控制键来设置程序的音量大小。在Android系统中有多中音频流,通过Activity中…

css3选择器二
在HTML中,通过各种各样的属性可以给元素增加很多附加的信息,了解和掌握css3一些的选择器,是很有必要的。 :enabled 和 :disabled选择器表单元素有可用(“:enabled”)和不可用(“:disabled”)状态…

结合ashx来在DataGrid中显示从数据库中读出的图片
作者:木子 http://blog.csdn.net/derny/下面利用ashx文件可以方便实现从数据库中读取图片并显示在datagrid当中 //---------------------------------------BindImage.aspx ---------------------------------------- <% Page language"c#" Codebehi…
如何度过二十多岁这段又穷又迷茫的岁月?
我们在后台常常会收到读者的留言我马上毕业了,但是现在很迷茫,不知道学校里学的,能不能真正的适应工作...我工作两三年,还是不知道怎么规划自己的技术成长路线,不知道该学什么来提升自己的竞争力...人生需要长线的经营…

Qt 自定义信号与槽
注 对象与槽理解 //第一个参数lineEdit是激发事件对象,信号中的方法必须在对象中存在,并在对象类头文件signals下定义,//第二个参数信号,//第三个参数this是槽方法所属类的对象,且必须在对象类的头文件的slots下定义//第四个参数槽…

php解析ip列表并入库
前一段时间因为要开发一个新项目,需要一个ip库,由于公司原本无这样一个库,所以急需从文件中匹配ip地址然后存库。下面是我下的一段程序,可能效率不是很高,代码也没有做过多的优化,有些地方比较繁琐…
AI 领域新突破,腾讯发布首个AI药物研发平台「云深智药」
7月9日,2020世界人工智能大会云端峰会开幕。会上,腾讯首席运营官任宇昕公布了用AI助力药物研发领域的最新进展——由腾讯自主研发的首个AI驱动的药物发现平台“云深智药(iDrug)”正式对外发布。云深智药平台的推出,将帮…