马克·扎克伯格在2016年12月19日发布了一篇博文 ,分享自己为家里构建AI管理系统、实现家居自动化控制的思路和过程。该AI管理系统被扎克伯格命名为Jarvis(《钢铁侠》中的贾维斯)。12月20日,扎克伯格又继续 公布了一些Jarvis的使用视频 。
扎克伯格及家人可用语音向手机或计算机下达语音指令,实现灯光、温度、电器、音乐和安防设备的控制操作。该系统具备的学习功能可使其识别主人的偏好模式、学习新词汇与概念。
Jarvis的编程实现使用了Python、PHP和Objective C。
下面的设备都是文中提到的或在视频中出现的。(显然,任何一个家庭中的可控制对象数量要远远超过这个列表。)
部分“现代”可控制对象自身联网,可直接通过API控制,但有些API无法直接通过电脑操作,扎克伯格不得不对这些API进行了逆向工程。
非智能电器自身不联网,只能通过智能电源插座控制开关,如果想实现更高级的自动化只能DIY。比如,让老古董烤面包机在电源关闭时自动按下,这样在电源接通时就可以自动开始烤面包片了。
视频截图:自动化老古董烤面包机
视频截图:自动吐干净衬衫的t-shirt cannon
首先,把手写输入的自然语言指令转化为Jarvis的可执行指令。从简单到智能,Jarvis的升级分为不同阶段:
以播放音乐为代表场景,不同模糊指令(open-ended request)的模糊程度是不同的,如:
正常人平时说话以模糊指令居多,扎克伯格认为此类有针对性的模糊指令处理方案仍然蕴藏巨大的商机。
至于将语音识别为文本,现成的实现方案很多,重要的仍然是场景识别。比如当扎克伯格向Jarvis说“我的房间”或者“放点音乐”时,Jarvis能够识别这是对扎克伯格的房间下达指令,而不会跑错了房间把娃吵醒。
Facebook的人脸识别智能在照片中已经具备相当的准确度。在实际应用中,为了在各种情况下都能够捕捉到人物的正脸,需要在多角度布置摄像头。从摄像头接收数据的服务器不间断的运行如下程序逻辑:
视频截图:扎克伯格的父母在大门口
目前,该系统已经可以实现下述效果:
Jarvis运行在扎克伯格自家的服务器上,为了更方便的在移动端跟Jarvis交互,扎克伯格使用 Messenger 构建了一个机器人好友Jarvis AI用于远程连接服务器。
目前,该机器人可以实现如下功能:
在实际使用中,扎克伯格发现文本的使用频率要比语音高很多,因为他感觉文本更不容易打扰到身边的人,也更容易追踪管理。
然而另一方面,当人对系统说话,而系统也用语音回复的时候,人在这种交互中投入的情感毕竟要更佳深入。因此,即使有了好友机器人,扎克伯格还是专门做了一个Jarvis App放在手机里。这个App打开后就长期在后台开启,持续监听周边的声音以捕捉扎克伯格给Jarvis发出的指令。同时,扎克伯格也给Jarvis植入了语音,并且不断为Jarvis添加有趣的台词。
Facebook在AI方面更多的研究成果可以参阅他们的 Facebook Research Github页面 。
整个2016年,扎克伯格在构建Jarvis上一共花费了约100小时。
功能方面,扎克伯格仍在慢慢添加和调试。他的长期目标是让Jarvis能够自己学习一些新技能——而当前的AI技术尚难以实现这一目标,仍然需要基础层面一些更加显著的发展。
扎克伯格还表示自己未来希望将这套系统开源,为此,需要构建一个抽象层,将一个通用系统从自家的设备、网络配置等隐私信息中抽离出来。