扎克伯格本周二在facebook发布了一篇文章,介绍自己利用个人时间开发的一套在自己家里使用的AI系统,并将它命名为Jarvis,对!就是电影钢铁侠里的AI助手Jarvis。
文章并没有讲细节的技术coding,更像一篇人工智能技术在工程应用上的科普, 推荐大家都读一读。本文末尾有英文文章的链接地址。
实现了哪些功能
能够通过手机或者电脑向Jarvis发出文本或者语音命令,来控制家里的灯光,温度,电器,音乐播放和安全防卫; 能够学习了解Mark的某些兴趣(比如听歌),能够学习新的词语和概念。
使用了哪些人工智能技术
自然语言处理,语音识别,人脸识别,增强学习
使用了哪些开发语言
PHP,Python,Objective C
系统架构
Home Systems包括各种家庭设施,比如电灯,温度调节器,门,音响设备,摄像头,烤面包机等,由Crestron(世界领先的控制和自动化系统的制造商)系统在硬件层面和这些设施进行连接。
User Interface包括一个聊天机器人,一个iOS语音App和摄像头;
AI Systems提供人工智能的相关技术,都是用的facebook的已有系统;
Jarvis Server作为中枢系统,逻辑步骤:
1. 从User Interfaces接收文本,语音,图像输入
2. 调用AI Systems接口对输入进行命令识别
3. 根据识别的命令向Home Systems里的设备发送控制命令
根据原文的描述,大致可以推断出:
Messenger Bot是基于facebook Messenger提供的Framework做开发;
iOS Voice App使用Objective C开发;
Jarvis Server 使用PHP/Python开发;
连接家居
首先使用了Crestron系统来连接控制家居设备,包括:电灯,温度调节器和门,使用Spotify(全球最大的正版流媒体音乐服务平台)音乐服务的Sonos(世界领先的家庭智能无线音响制造商)音响设备,三星电视,Nest牌的摄像头。
为了连接某些设备,Mark还逆向研究了这些设备的API,最终实现类似于通过电脑发送命令的方式来打开电灯或者播放某一首歌的功能。
而有的设备的连接则需要对设备本身硬件进行修改,比如他特别提到了连接烤面包机,为了能够自动烤面包,他最终找到了一台1950年代的面包机,并给它装配了一个智能开关。
最后得出结论,如果想让更多的人使用类似于Jarvis这样的智能助理来控制家里的一切,那么更多的设备需要被连接,而且整个智能家居行业也需要开发制定出通用的API和标准,使得各种设备能够很方便的进行通信。
自然语言处理
Mark提到实现语音控制分为两个步骤:1. 能够通过文本信息来控制家居硬件。2. 将语音识别成文本信息。
他从最简单的关键词开始入手,比如当Jarvis接收到"bedroom", "lights"和"on"的词语时,就将卧室的灯打开。
但很快发现Jarvis要有识别近义词的能力,比如"family room", "living room"在Mark家里都是一个意思。这意味着需要有某种方式来教会Jarvis识别近义词。
对于AI来说,能够理解上下文语境也至关重要,如果Mark或者他的妻子Priscilla在不同的房间对Jarvis说相同的话,比如"把灯光调暗一些",那么Jarvis要能够识别出到底是把哪个房间的灯光调暗一些。
而控制音乐播放的语义理解则更加复杂,比如对于灯的控制,只有"turned up or down"两个选择,而对于音乐播放的控制,"play x"则会有多种意思。
想一下关于Adele的三个语句:"play someone like you", "play someone like adele", and "play some adele".
"play someone like you"的意思是是播放一首歌,"play someone like adele"的意思是推荐一位和adele类似的歌手并播放他的歌曲,"play some adele”是推荐一些adele的歌曲并播放。
通过一个正负反馈系统,能够训练Jarvis理解这些语句的不同。
AI拥有的上下文信息越多,处理开放请求(而不是某种特定的命令)的能力就越强大。
Mark经常向Jarvis说"play me some music”,Jarvis通过查询Mark以往的听歌历史就能够大概率给推荐出他喜欢听的歌曲。
如果不喜欢它推荐出的某首歌曲,那么就可以告诉Jarvis: "that's not light, play something light”,从这句话里Jarvis不但能够学习到这首歌的分类还能够立刻对Mark的推荐进行调整。
视觉和人脸识别
对于AI来说,要能够理解图像和视频中正在发生什么,比如追踪(比如Max醒了,在她的婴儿床里来回动),对象识别(房间里有一个动物或者一个毛毯),人脸识别(是谁在门口),Facebook在这方面已经做得很好。
Mark在自家门口安装了一些摄像头,能够从各个角度拍摄图像,之后他构建了一个监控摄像头图像的服务器:1. 运行人脸探测技术来发现是否有人进入摄像头视野。 2. 发现了一张人脸后,运行人脸识别技术来确认此人是谁。一旦确认出此人身份,server将从白名单对比是否允许此人进门。
聊天机器人
为了能够使用手机和Jarvis通信,Mark基于Messenger开发了一个Messenger bot,也称为Jarvis bot。Messenger提供了一个开发bot的框架,这个框架可以在ios和android上运行。
向Jarvis bot输入text后, 它将text转发到Jarvis sever。
语音识别
Mark开发了一个ios app用于接收语音输入,并使用了facebook的语音识别系统进行语音识别。他将这个app安装在多台手机上,每个房间里放一个手机来随时接收语音输入。
在原文里,Mark用了更多的篇幅讲述语音识别并分享了自己一些有趣的发现。比如他会教Jarvis在和女儿Max交流时多一些幽默感。
Facebook的工程开发环境
在这个部分,Mark首先以自己的这段亲身coding体验表达了在facebook做开发工程师的感受:"it's impressive" --- 令人印象深刻的。
之后他称赞了自家的开发环境和开源项目:
"一直令我印象深刻的是facebook的代码库组织的如何的好,从中找到想要找的东西是如何的简单,比如人脸识别,语音识别,聊天机器人框架或者IOS开发的相关知识"
"由facebook开源的Nuclide(用于GitHub's Atom)大大提高了开发效率;用于大型项目的构建系统Bulk为我节省了更多时间;由我们开源的AI文本分词工具FastText也是值得checkout下来的;并且如果你对AI开发感兴趣,那么整个的Facebook Research的github仓库也是值得一看的"
最后他提到了facebook的价值观之一"move fast", "在facebook你将比在任何其他地方更快的开发一个应用,在facebook的基础设施和AI工具的支撑下,你将有更高的开发效率"
---------------
原英文地址:Jarvis
在文章末尾Mark提到目前代码里涉及到很多他家里的信息,所以还不能开源,但他计划在代码层面再加一个抽象层屏蔽敏感信息后便可以开源。
以下是文中提到的各种开发工具和项目:
Facebook Messenger Platform: 开发者能够快速的构建一个聊天机器人
https://developers.facebook.com/docs/messenger-platform
nuclide: Facebook开源的一个基于Atom的IDE,用于网络和手机开发
https://github.com/facebook/nuclide
Buck: Facebook开发的高性能构建工具
fastText: Facebook开源的文本分类器
https://github.com/facebookresearch/fastText
Facebook Research: Facebook开源的各种AI工具
https://github.com/facebookresearch
相关推荐
jarvis:JARVIS-Tools:用于数据驱动的原子材料设计的开源软件包
JarvisAI 上次更新时间:2021年2月21日什么是Jarvis AI? 先决条件入门-如何使用? 如何贡献? 未来?1.什么是Jarvis AI- Jarvis AI是一个Python模块,能够执行聊天机器人,助手等任务。它为任何助手应用程序提供...
**Python-Jarvis用于Linux的私人助理** Python-Jarvis是一款专为Linux系统设计的开源私人助理项目。它利用Python编程语言的强大功能,为用户提供了一种交互式、语音控制的智能助手,旨在帮助用户执行日常任务,提高...
Jarvis是轻量级的管理框架 一,职能 登录(多租户,切换租户) 登出 登记 重设密码 轮廓 租户信息 租户管理(CRUD) 组织管理(CRUD,权限数据) 帐户管理(CRUD,角色,锁定/解锁) 角色管理(CRUD,权限功能)...
在百度开发者大会上,Jarvis通过点石-大数据众智平台的DataLab板块进行了邀测,其增强版基础开发环境内置的丰富算子库和AI开放接口受到了用户的积极评价。 综上所述,Jarvis大数据分析挖掘平台是一个全面的解决...
Jarvis家庭自动化 注意:经过3年的中断,我终于可以升级Jarvis,使其可以与新版本的Home Assistant一起使用。 我可能要花点时间才能使所有功能正常工作,但我会尽一切努力保持更新。 Jarvis是一个家庭助理( )...
JARVIS:只是一个非常智能的系统 该项目是JARVIS系统的API部分。 它是用于管理您的忙碌生活的各种插件的集合。 (将用于UI前端。) 安装 您将需要来运行服务器。 安装完成后,在项目文件夹中运行npm install以安装...
贾维斯 概述和完整文档可在Jarvis.sh是轻量级的可配置多语言语音助手在上运行家庭自动化的含义(例如:Raspberry Pi) 自动安装您选择的和引擎由于繁多,因此可高度扩展支持的语言(用于语音识别和语音合成): :...
Jarvis算法,又称礼品包装算法,是计算几何领域中用于寻找给定点集的凸包的经典算法。这个算法由Marvin Jarvis于1973年提出,主要用于处理二维空间中的点集问题。在Java编程语言中,我们可以实现这个算法来创建一个...
JARVIS-只是另一个基本的言语指令壳(BETA)目录[宏和变量](#macros-and-variables介绍JARVIS可帮助您围绕库或API编写基本的英语包装,如下所示: // wrap your JavaScript function with an English API:jarvis ....
**Arduino教程:JARVIS v1 - 家庭自动化项目开发** Arduino是一个开源电子平台,非常适合初学者和专业开发者进行物联网(IoT)项目。在这个教程中,我们将探索如何使用Arduino构建一个名为JARVIS(Just A Rather Very...
Jarvis后端节点 协议的第一个节点实现。 快速安装 这是一个Beta版本,同时还包含一个Beta安装过程:只是看一下。 cd /tmp/ mkdir jarvis cd jarvis npm install git+...
Sapra-Jarvis Consulting 我最近从UBC毕业,并以优异的成绩获得了机械工程学位。 在过去的几年中,随着我的兴趣从机械工程转向计算机,我在整个大学里都自学了计算机科学的概念。 我已经完成了多个项目,这些项目使...
Colab是Google推出的一个免费的Jupyter Notebook服务,允许用户在浏览器上编写、运行和分享Python代码,特别适合数据科学、机器学习和人工智能的学习与实践。 首先,让我们深入了解一下Jupyter Notebook。Jupyter ...
Jarvis后台管理模板是专为开发人员设计的一款高效、智能的网页模版,适用于构建企业级后台管理系统。这款模板基于Jarvis Smart Admin框架,旨在提供一个直观、响应式且易于定制的界面,以提升开发效率并优化用户体验...
Jarvis。 还有很多工作要做 节点 Jarvis 由一系列节点组成,如下所示。 想象 声音 输入:wave 文件 ID 播放波形文件。 文字转语音 在:文本字符串 使用 Google Speech 将字符串转换为波形文件。 声音服务器 Jarvis ...
您的应用程序说明 JARVIS 终极家庭自动化系统。 描述页面: :
Jarvis.djs-AI JavaScript不和谐库这不能完全正常工作! 请不要下载和投诉,因为这正在进行中! 公关欢迎!目录要求Node.JS => 14.0.0 最小RAM => 50MB安装Jarvis(以钢铁侠中的超级计算机命名)是一个JavaScript ...
JARVIS的灵感来自Marvel钢铁侠电影中Tony Stark的AI“ JARVIS”。 为我的梦想铺平道路,让我创建一个机器人,使我保持知情,更新和高效的状态,从而在自动化方面为我提供帮助。 运行JARVIS需要哪些python软件包...
在本文中,我们将深入探讨基于Laravel框架的“jarvis-menus”项目,这是一个专为Laravel开发设计的菜单管理工具。"jarvis-menus"是Laravel应用中实现动态、可配置菜单的一个强大解决方案,它允许开发者轻松地创建、...