我的想法估计听起来荒诞不经,像是天方夜谭:我想要制造出一个和雯雯一样的人工智能。
在嘲笑我之前,请听我做一番解释。我无意也没有能力制造出一个科学怪人来。到底能不能制造出能像人类一样思考的人工智能,这仍旧是一个未解难题。我的想法其实很简单,就是想写出一个计算机程序合成雯雯的样貌和声音。我想再见雯雯一次,哪怕是虚拟的也好。依靠现在的人工智能技术,这个目标完全能够实现。我不能继续沉沦,再这样无所事事。无论想法多荒唐,这至少能让我忙起来。我在网上租用了昂贵的服务器,全身心投入到这个项目中。
我从相对简单的任务着手:合成雯雯的声音。过去一年里雯雯给我发了很多视频、音频,我有足够多的声音素材。想要重现每一个字的读音并不困难,可以说只要截取雯雯的发音就可以了。但是这样的声音必然是机械化的,冰冷生硬,没有人类的感情。当人讲话时,词语和句子间会有间隔,音调会有高低起伏,速度时快时慢,此外还有个人化的发音习惯、口音特点。我用了现成的人工智能朗读引擎,把雯雯的声音素材导入进去,再一点点地调整模型参数。这一步进展的很顺利,很快我就听到与雯雯十分相似的声音了。
接下来是模拟雯雯的外形。我从图像专业公司购买了人体数字模型,这个模型可以做动作、做表情,模拟讲话时的口型,等等。当然这个模型是计算机动画,与雯雯长得一点都不像。我的下一步就是给模型换脸。这一技术非常热门,在网上有数不清的技术资源。我使用了深度学习技术,用雯雯的照片和视频来训练一个人工神经网络,把我电脑中的模型变成雯雯的样子。
原理说起来简单,实际做起来还是要费非常多的功夫。我夜以继日地不断调整模型,以求获得最佳效果。
我采用的都是已有的成熟技术,只不过是把各种内容拼凑起来。如果有足够的资源和时间,任何一个合格的软件工程师都能做出来,实际上一些电影镜头就是这样拍出来的。但是耗费如此多的心力来重塑自己的亲人,恐怕只有我才会这样做吧。大概用了两周,我的模型终于完成了。
我运行程序,雯雯清秀的面容出现在电脑屏幕上,带着浅浅的微笑,望着我。
我对着电脑说「我想你」,然后输入指令,让程序说「我也想你」。
雯雯说:「我也想你。」
那一瞬间,我的泪水决堤了。我放声痛哭,把积攒至今的悲痛一股脑地释放出来。我这份心情,只有失去过自己最爱的人,才能真正体会。
我擦掉泪水,洗了把脸,重新平复心情,继续和雯雯聊天。说是聊天,其实不过是我自言自语罢了。我向雯雯发问,再替她作答,只不过是借用程序发声。尽管如此,我还是忘我地聊到了深夜。
到了第二天,我开始思考一个问题,怎样才能让程序自动地跟我聊天呢?
自然语言处理,也就是让人工智能理解人类的语言,是人工智能领域的一门显学。对于人工智能来说,理解单个词或者单个句子并不十分困难。可是人类的语言是精妙的,经常出现内容省略,每一句话都要在上下文语境中理解。比如说,我先讲了「我母亲下星期过生日」,之后又问「买什么礼物好」,那么人工智能需要明白我的意思是「我母亲过生日,我要给她买什么礼物」。这样的上下文语境可能会有很长的时间跨度,比如前两天说的笑话,甚至于去年一起看过的电影,在对话中我一提起这些话题来,对方就应该明白我的意思,而不需要我长篇大论把整个笑话、整部电影情节复述一遍。人类对话中还会大量使用文化典故,比如形容一个人是「猪八戒」「诸葛亮」,人工智能要准确地理解其中的隐含意义,而不是误以为在谈论小说和历史中的人物。家人、朋友、情侣之间会有更私人的谈话方式,有小圈子里的、只属于彼此的称呼、笑话、隐喻,这些就更没有规律、更加复杂了。而且人类讲话是连贯的,一句接着一句,这就要求人工智能要及时响应,运行速度要快,而不是每次讲话都停顿好久。
与之前一样,我再次借用了已有的成熟技术。我安装好人工智能语言会话模型,再把我和雯雯之间所有的聊天记录全部导入进去。随着训练时长的增加,这个模型的对话能力越来越强,逐渐能够流畅地与我交流。然后我又补充了聊天记录之外的、自己与雯雯相处时两人共同的回忆,只要是我能想起来的,一处细节也不放过。就这样,人工智能生成的会话越来越像雯雯了。
最后一步是为人工智能增添额外的部件:语音识别、人像识别、表情识别等等。这些都是通用的技术,只需要一点点调整就能用了。这样一来人工智能就能通过摄像头看到我,认出我,直接通过语音与我对话、无需文字输入。
就这样,我前后忙了一个多月,终于大功告成。
评论
发表评论