-
Notifications
You must be signed in to change notification settings - Fork 2
Description
一直以来都不懂写文章,这次写下这篇文章主要是希望把自己这段时间以来的一些个人理解分享给各位 rokid 的爱好者。文章开始前,首先特别要感谢 rokid 的李工,他是一位非常有耐心的工程师。
自从去年十月份接触了 ROKID 这个平台后,一直欣喜若狂,受益匪浅!我是一位从事中控工程的技术员,从2012年开始专做快思聪平台的智能家居工程应用及调试。虽然做了几年的所谓智能家居,我自己始终觉得那不算是真正的智能,顶多算得上是比传统操作更方便的家居系统。得益于快思聪系统的强大兼容性,可以把市场上绝大部分的灯光、空调、窗帘、背景音乐、可视对讲、安防、监控、家庭影院系统集中管理起来,通过一个触摸屏或者手机APP进行统一控制、一键式控制等等,这把以前繁琐的操作变得更加方便简单。
个人一直把这个称作系统级别的智能家居系统,虽然心里还是觉得它不算真正的智能。最近这两三年智能家居概念在国内兴起,再加上人工智能和物联网也如火如荼。把人工智能的技术应用于智能家居的领域将是一个完美的组合。这个一直是我最期待的,同时也打破自己內心一直的家居智能梦。兜了那么远,回到正题:基于语音控制的国内厂商很多都大力拓展自己的市场占有率,希望自己的智能音箱能控制更加多的家庭设备。因此,市面上出现很多专做智能音箱的厂家比如阿里的天猫精灵,小米的小爱,狗尾草的小白,ROKID 的若琪等,还有一大批生产支持语音控制的“智能家电”的厂商。很多人把一个语音音箱加一些无线插座,无线灯泡,无线吸尘器等集合在一起称作为一个智能家居系统。大部分做智能家居的厂家都在拓展自己的兼容性,希望自己的语音设备能控制更多的家电。我个人把这个方向的称之为设备级别的智能家居系统。
国内 ROKID 的若琪月石智能音箱是我最偏爱的一款语音识别系统。它的外观造型时尚而又不失美感,科技又充满灵性,简直令人爱不惜手,颜色和造型都非常酷,用在不同风格的家居里面显得非常高大上。我个人觉得这个是其它厂家的语音音箱不可比拟的。从技术角度来看,ROKID 的平台是开放的,你可以在它的云端平台跟进自己的需求进行自定义设计。包括不同的语音情景对话和功能。个人一直觉得这个是 ROKID 的杀手锏,尤其是目前市面上的那么多做智能家居语音识别的厂家,他们都是基于自己的一套封闭的系统去做对接应用。所以把 ROKID 的语音对话情景可编程加上中控系统对接可编程结合起来去应用在智能家居工程里面一定会眼前一亮,之后我还会把 ROKID 平台应用在智能家居领域的几个模块功能写一个技术交流总结。
我手上的是一台月石音箱。月石自己本身跑的是安卓系统,你可以在它上面进行 App 开发,在若琪的官网把它定义为 native skill。它的语义解析是在云端。也就是说,你对着月石说话,月石把用户说的话传送到云端服务器进行解析之后,再把处理的结果返回到月石,让它进行响应。例如让月石回答你的问题。如果你希望自己开发一个基于语音识别的应用,通常有两种方式,一种就是开发本地的APP,也就是本地技能 native skill;另外一种就是开发云端 App,也就是云端技能 Cloud skill。云端技能在若琪的框架里面其实就是跑在官方云服务器上的一个 App,这个 App 是用 JavaScript 写的一个应用。用户可以把这个应用代码加载到它的 JS Engine,并且在上面运行,调试等操作。这个是 ROKID 的非常重要的应用模块,另外还有一个应用模块叫做智能家居。
在官网上面有非常详细的协议文档,个人感觉写的可读性不是特别好,如果不是专门从事云端或者程序开发的人员去读懂它是非常吃力的。个人的理解其实它就是一个固化好的云端技能 Cloud Skill,它的应用方向就是专做智能家居。你可以通过手机 App 打开本地驱动,其实就是一个网络 TCP/HTTP 的接口。
你可以根据智能家居那边的协议规则去注册或者叫创建不同类型的设备。这个设备只是一个逻辑上的虚拟设备,它所具有的功能你可以根据它的官方文档去定义。整个官方文档最核心的概念就是 JSON 结构。这个对于不是从事软件开发的人员来讲是很吃力的。需要花点心思去了解一下这个概念。当你创建设备完成之后,你还需要在自己的控制系统去写自己的逻辑,通过若琪的 TCP/HTTP 的接口去通讯。比如说你在若琪的智能家居手机 APP 上面注册了一个灯光设备,同时你把这个设备分配到客厅这个区域上。你可以对着若琪说“打开客厅灯光”这时候若琪会把这句话传送到云端,云端解析完成后把结果按照协议的 JSON 格式返回给若琪,若琪再把数据通过前面说的 TCP/HTTP 的接口发送出去。此时你的控制系统监接收到这个 TCP/HTTP 接口上面的数据后,再进行开灯的动作。这样一个居于 ROKID 的智能家居模块的应用的简单实现流程就完成了。
使用 ROKID 自带的智能家居模块非常方便,你只需要在它的框架下安照协议的规则去定义不同的设备和功能即可。如果你是智能家居系统应用的工程商,你只需要在本地搭建的中控主机上面创建一个本地的 TCP Socket 去和若琪通讯。这样你就可以把若琪的语音控制添加到你原有的智能家居系统里面了。如果你是一个智能电器生产商,希望设计或者生产出能让 ROKID 兼容的家居设备,你只需要自己的设备按照 ROKID 的协议去跑即可。
当然,使用 ROKID 自带的智能家居模块也有自己的缺点,就是你只能按照它现有的功能去预设自己的语音指令。这样给人的感觉就是对话情景不够自然。比如说你想打开客厅灯光,你直接丢一条命令“打开客厅灯光”让它去执行。至于一些深层次的互动对话效果就没法做,也就是没有把若琪的杀手锏使出来。比如说,还是要实现打开客厅灯光这个功能,我加点互动的对话在里面:我先对若琪说:打开灯光,这是若琪回答:请问你要打开哪里的灯光?,这时我再说:客厅,此时若琪才把客厅灯光打开。当然这个只是一个举例,其实利用 ROKID 的对话可编程平台还可以实现很多更炫的互动效果。在智能家居的应用各种,如果能把控制和语音互动结合起来,那就非常完美了。如果要实现这个功能,单靠 ROKID 自带的智能家居模块就实现不了,这时候就要研究 ROKID 的云端技能 Cloud APP 的开发流程了。
本人也是从最初的智能家居模块过渡到云端技能的开发,做出来的互动效果比现成的智能家居模块好很多,同时也比市面上其它的很多语音音箱好很多。后续我会把云端技能的一些要点整理出来,再把现场的视频分享出来。