IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    扎克伯格分享自家AI管理系统Jarvis的构建过程

    Hunter发表于 2017-04-22 23:30:25
    love 0

    马克·扎克伯格在2016年12月19日发布了一篇博文,分享自己为家里构建AI管理系统、实现家居自动化控制的思路和过程。该AI管理系统被扎克伯格命名为Jarvis(《钢铁侠》中的贾维斯)。12月20日,扎克伯格又继续公布了一些Jarvis的使用视频。

    目前进展

    扎克伯格及家人可用语音向手机或计算机下达语音指令,实现灯光、温度、电器、音乐和安防设备的控制操作。该系统具备的学习功能可使其识别主人的偏好模式、学习新词汇与概念。

    Jarvis使用到的技术

    自然语言处理 natural language processing

    语音识别 speech recognition

    面部识别 face recognition

    强化学习 reinforcement learning

    Jarvis的编程实现使用了Python、PHP和Objective C。

    扎克伯格家中的可控制对象

    下面的设备都是文中提到的或在视频中出现的。(显然,任何一个家庭中的可控制对象数量要远远超过这个列表。)

    Crestron灯光

    Crestron温度调节器(中央空调)

    Crestron门锁

    窗帘

    Sonos音响设备

    三星电视

    Nest摄像头

    来自上世纪50年代的老古董烤面包片机

    DIY喂狗粮机 food dispenser for Beast

    DIY干净T恤发射器 t-shirt cannon

    “大绿蛋”牌(Big Green Egg)BBQ烤炉

    可控制对象的连接工作

    部分“现代”可控制对象自身联网,可直接通过API控制,但有些API无法直接通过电脑操作,扎克伯格不得不对这些API进行了逆向工程。

    非智能电器自身不联网,只能通过智能电源插座控制开关,如果想实现更高级的自动化只能DIY。比如,让老古董烤面包机在电源关闭时自动按下,这样在电源接通时就可以自动开始烤面包片了。

    视频截图:自动化老古董烤面包机

    视频截图:自动吐干净衬衫的t-shirt cannon

    用自然语言(英文)下达指令

    首先,把手写输入的自然语言指令转化为Jarvis的可执行指令。从简单到智能,Jarvis的升级分为不同阶段:

    提取关键字,如“卧室 bedroom”、“灯光 light”、“开启 on”

    学习新词汇,如“家庭活动室 family room”即等同于“客厅 living room“

    根据模糊指令自行判断要执行的指令

    以播放音乐为代表场景,不同模糊指令(open-ended request)的模糊程度是不同的,如:

    play someone like you 精确指令,请求系统播放歌曲“someone like you”

    play someone like adele 部分模糊指令,请求系统推荐类似Adele的歌手的歌曲

    play some adele 部分模糊指令,请求系统推荐歌手Adele的歌曲

    play me some music 完全模糊指令,请求系统自行推荐歌曲

    play something light 部分模糊指令,请求系统播放轻松类型的歌曲

    正常人平时说话以模糊指令居多,扎克伯格认为此类有针对性的模糊指令处理方案仍然蕴藏巨大的商机。

    至于将语音识别为文本,现成的实现方案很多,重要的仍然是场景识别。比如当扎克伯格向Jarvis说“我的房间”或者“放点音乐”时,Jarvis能够识别这是对扎克伯格的房间下达指令,而不会跑错了房间把娃吵醒。

    人脸识别

    Facebook的人脸识别智能在照片中已经具备相当的准确度。在实际应用中,为了在各种情况下都能够捕捉到人物的正脸,需要在多角度布置摄像头。从摄像头接收数据的服务器不间断的运行如下程序逻辑:

    有人进入摄像范围吗?

    如果有,则运行人脸识别程序,返回此人的身份,再进行相应的处理(如发送通知给扎克伯格)

    视频截图:扎克伯格的父母在大门口

    目前,该系统已经可以实现下述效果:

    检测娃是睡着了还是睡醒了,继而控制音响中要播放音乐还是中文课

    检测扎克伯格正在哪个房间,从而能够准确处理诸如“开灯“一类的模糊指令

    跟Jarvis交互

    Jarvis运行在扎克伯格自家的服务器上,为了更方便的在移动端跟Jarvis交互,扎克伯格使用Messenger构建了一个机器人好友Jarvis AI用于远程连接服务器。

    目前,该机器人可以实现如下功能:

    接收扎克伯格发来的文本指令并即时执行

    接受扎克伯格发来的语音指令并即时执行

    若有人访问,自动将访问者在门口的照片发送给扎克伯格

    给扎克伯格发送提醒信息

    在实际使用中,扎克伯格发现文本的使用频率要比语音高很多,因为他感觉文本更不容易打扰到身边的人,也更容易追踪管理。

    然而另一方面,当人对系统说话,而系统也用语音回复的时候,人在这种交互中投入的情感毕竟要更深入。因此,即使有了好友机器人,扎克伯格还是专门做了一个Jarvis App放在手机里。这个App打开后就长期在后台开启,持续监听周边的声音以捕捉扎克伯格给Jarvis发出的指令。同时,扎克伯格也给Jarvis植入了语音,并且不断为Jarvis添加有趣的台词。

    构造Jarvis用到的代码库

    Messenger Bot框架

    Nuclide软件包

    Buck构建系统

    FastText文本分类工具

    Facebook在AI方面更多的研究成果可以参阅他们的Facebook Research Github页面。

    整个2016年,扎克伯格在构建Jarvis上一共花费了约100小时。

    未来

    功能方面,扎克伯格仍在慢慢添加和调试。他的长期目标是让Jarvis能够自己学习一些新技能——而当前的AI技术尚难以实现这一目标,仍然需要基础层面一些更加显著的发展。

    扎克伯格还表示自己未来希望将这套系统开源,为此,需要构建一个抽象层,将一个通用系统从自家的设备、网络配置等隐私信息中抽离出来。



沪ICP备19023445号-2号
友情链接