开放的平台,无限的可能——小度智能音箱及其背后的DuerOS
这不是一篇传统意义上的众测报告!
想看产品的开箱和外观,想知道小度音箱的音质如何,想了解小度音箱的资源丰富程度,请您移步查看其它值友的评测,100个众测名额,一定有满足您的要求的报告。
本文的主要内容,是小度智能音箱接入Home Assistant智能家居平台的过程和体会。如果您是一位产品经理或研发工程师,或者仅仅是一名智能家居爱好者,本文也许会有一些您感兴趣的内容。
一、小度音箱与DuerOS开放平台
智能音箱产品最近可谓小火了一把,IT行业各大厂家纷纷推出了自己的产品,并以低价切入市场。就拿小度智能音箱为例,除了具备普通蓝牙音箱的功能外,还搭载了自然对话交互方式,并提供丰富的在线资源。听歌讲故事,查天气找路线,小家伙统统不在话下。
区区69元的售价,不要说研发费用和向内容提供商支付的费用,能否收回硬件成本都是个未知数。厂家这样做的意图到底是什么?
答案就一句话:抢占智能设备生态圈的入口。
随着消费的升级和互联网的普及,智能家居的风口来了。行业大牛们高瞻远瞩,早早开始着手布局,希望占据这场战役的先发优势。对于百度来说,DuerOS就是为这场战役而准备的秘密武器。
可能有人对DuerOS还比较陌生,那么请让我来科普一下。
DuerOS是百度度秘事业部研发的对话式人工智能操作系统。广泛用于家居、车载、酒店、养老、地产等多种场景。搭载DuerOS的设备可让用户以自然语言对话的交互方式,实现影音娱乐、信息查询、生活服务等10大类目的500多项功能的操作,实现更智能的互动,加速产业升级。
回到小度音箱。小度智能音箱之所以能提供自然语音交互方式和丰富的在线资源,是因为其背后依托着一个强大而智能的云操作系统,这个系统就是DuerOS。
DuerOS是一个开放的平台,提供了完善的接口协议和开发文档,还有活跃的开发者社区。任何厂家、网络服务商甚至个人都可以根据公开的协议和文档,将自己的产品接入这个系统,成为DuerOS生态圈中的一员。
而小度音箱本身,不过是DuerOS的一个前端设备,一个人机接口而已。
可以这么说,有了小度智能音箱,就拥有了DuerOS智能系统生态圈的大门钥匙。这个生态圈最终能给你带来什么,听歌讲故事仅仅是个皮毛,相信随着系统的不断进化,接入的产品和服务不断增加,迟早DuerOS会出现在你周边各个角落,并在生活中占据重要的地位。
二、小度音箱控制智能家电初尝
虽然智能系统生态体系并非只有家居设备自动化这么简单,但对于个人用户来说,智能设备自动化是最容易上手的切入点,也一定是智能系统生态最先得到普及的领域。
在小度音箱配套的手机APP中,可以看到目前已有100多个智能家居品牌接入了小度音箱,也就是说,这些品牌智能家电的用户,不需要任何复杂的配置,即直接可通过小度音箱用语音控制智能设备。
在这一长串品牌logo中,我发现了几个熟悉的图标:Aqara、BroadLink、Domoticz......,其中的Aqara正是那个小米生态链企业绿米联创的产品品牌。大家所熟悉的小米ZigBee网关、空调伴侣、无线开关等,都是绿米联创的产品,小米生态链中采用ZigBee技术的产品基本都是它家出品的。
我决定就用Aqara来测试小度音箱语音控制家电的功能。
控制对象:我家的厨房灯,所用的开关是Aqara墙壁开关(单火双键版)。
点击Aqara右边的“绑定”按钮,用小米账号登录,局域网中能被小度音箱控制的绿米设备会自动出现。
默认的设备名可能不准确,可以修改,修改完成后就可以用语音控制设备了,比如:“小度小度,打开厨房灯”,或者类似的说法都可以,小度具备自然语义识别能力。
非常简单,完全没有门槛。
三、小度音箱接入Home Assistant平台,控制智能家电
虽然小度官方已接入了100多个智能家居品牌,但我家智能电器的主力品牌小米/米家却不见踪影。这也难怪,百度和小米两家在智能家居领域各自发力,各有各的布局,完全可以理解。
难道就没办法将小米的产品接入小度音箱吗?当然不是,否则也就不会有这篇文章了。
别忘了,小度智能音箱背后是DuerOS开放平台,本文前面也提到过,任何厂家和个人都可以根据公开的协议和文档,将自己的产品接入这个系统,成为DuerOS生态圈中的一员。
本人最近对开源的家庭自动化平台Home Assistant着迷,于是想到,只要将小度音箱接入Home Assistant,自然就实现了对小米产品的控制。
想法没错,实现起来却费了些周折。
在小度音箱官方技能中,具备了另一个开源智能家居平台Domoticz的接入能力,但暂时还不支持Home Assistant。不过,既然是开放平台,就有了无限可能。早已有网友开发了将Home Assistant接入DuerOS的接口程序,我要做的,就是按照教程一步一步实施就好了。
教程写得足够清晰详细,对有些linux基础的人来说不难理解,实施起来也很容易,这里就不罗嗦了。简单归纳,就是用百度账号登录DuerOS开放平台,创建技能,部署oauth2认证服务和接口服务。这样DuerOS就可以经oauth授权后,通过接口服务接入到Home Assistant之中,实现对设备的控制。
部署完成后,想要通过小度音箱控制的设备,还需要在hass.php中自行加入相关代码。比如,我希望让小度控制热水器和床头灯的开关(均为小米智能插座WiFi基础版),则需要在hass.php中加入代码:
array(
"actions" => array("turnOn", "timingTurnOn", "turnOff","timingTurnOff"),
"applianceTypes" => array("SWITCH"),
"additionalApplianceDetails" => array(),
"applianceId" => "switch.heater_switch ",
"friendlyDescription" => "小米插座",
"friendlyName" => "热水器",
"isReachable" => true,
"manufacturerName" => "Xiaomi",
"modelName" => "chuangmi.plug.m1",
"version" => "1.0"
),
array(
"actions" => array("turnOn", "timingTurnOn", "turnOff","timingTurnOff"),
"applianceTypes" => array("SWITCH"),
"additionalApplianceDetails" => array(),
"applianceId" => "switch.bed_lamp_switch",
"friendlyDescription" => "小米插座",
"friendlyName" => "床头灯",
"isReachable" => true,
"manufacturerName" => "Xiaomi",
"modelName" => "chuangmi.plug.m1",
"version" => "1.0"
)
一切完成后,重启Home Assistant,对小度音箱说:“发现设备”,小度回复:“发现新设备,你可以对我说……”。这些设备也会出现在手机app中,并有相关对话的提示。
至此就实现了对小米智能插座的语音控制。
说明一下,视频中听到的设备状态报告(“床头灯已打开”、“床头灯已关闭”),是由另外一个设备发出的。小度音箱对dlna的支持不太完善,Home Assistant内置组件dlna_dmr暂时还无法让小度音箱播放自定义文字。
四、小度音箱读取智能家居传感器数据
上一节实现了Home Assistant接入小度音箱,并通过语音控制小米智能插座的开关。那么,如何让小度读取已接入Home Assistant平台的传感器中的数据呢?
之所以有这个想法,是因为我家有一台小米空气净化器2代。这个产品中内置了温度、湿度、空气质量传感器,却没有显示屏。我想知道家里的舒适度如何,必须打开米家app才能看到这些数据。我希望问一下小度,让它把这些数据报给我听。
实现这个功能的依然是上一节提到的接口程序,不过这个程序不完整,只是一个开发示例,更多的功能需要玩家自己去补充代码。
DuerOS开发平台的文档非常规范,有清晰的解释和应用示例,这为设备适配开发提供了很好的条件。认真学习了DuerOS开发文档相关部分和大神的接口代码之后,对代码做了少许修改。
另一个问题,小米空气净化器的温度、湿度、空气质量这几项数据保存在Home Assistant设备属性(attribute)中,为了让小度接口程序能够读取到这些数据,需要将其转化为传感器(sensor)数据。
在Home Assistant的configuration.yaml中,增加3个虚拟传感器,其值就是相应的attribute值:
sensor:
- platform: template
sensors:
indoor_temperature:
friendly_name: "室内温度"
unit_of_measurement: '°C'
value_template: "{{ states.fan.xiaomi_air_purifier.attributes.temperature }}"
indoor_humidity:
friendly_name: "室内湿度"
unit_of_measurement: '%RH'
value_template: "{{ states.fan.xiaomi_air_purifier.attributes.humidity }} "
indoor_aqi:
friendly_name: "空气质量"
unit_of_measurement: 'μg/m3'
value_template: "{{ states.fan.xiaomi_air_purifier.attributes.aqi }}"
hass.php中增加这3个传感器的代码,与上一节的做法类似,这里就不再罗嗦了。
不过,发现设备后,系统给出的默认问句比较拗口,“空气净化器查一下空气质量”,实在太反人类了。这时app中的“小度训练师”派上了用场。在此可以定义几个比较顺口的说法,让它去执行指定操作。比如,用“查一下室内空气质量”这样的说法,让它去执行“空气净化器查一下空气质量”的动作。
训练完成后,就可以喊小度去查询传感器数据了。
不完美还是有的。小度训练师中,一个问句的回复只能添加一个操作指令,而不能添加多个。比如我希望当我问小度 “室内舒适度如何”时,它会依次播报室内温度、湿度和空气质量,这样的要求暂时就无法用小度训练师功能简单实现了。
五、收获
初次接触DuerOS开放平台,初次体验DuerOS设备接入的开发,借助强大完善的接口协议和清晰规范的开发文档,过程一切顺利,感觉十分容易上手。对DuerOS的首次接触,就体验到这一开放平台的成熟和活跃,也看到了它的发展潜力。
不起眼的小度智能音箱,其背后是庞大的DuerOS智能系统生态圈。对于厂家来说,如果选择将产品接入到DuerOS系统,那些让研发人员望而生畏的语音识别、自然语义理解、TTS等技术,完全可以交给DuerOS去实现,这将极大降低人工智能语音对话功能的开发门槛,更可以借助百度的海量信息与各项服务,将产品的市场竞争力提升一个档次。
虽然目前DuerOS接口协议在功能上尚有一些欠缺,但这一系统正在快速进化之中,有了众多厂家和开发者的支持,其发展潜力不可低估。
“从方向盘到客厅,AI正悄然重构我们的工作和生活”。
感谢阅读!您的鼓励,我的动力。
lrmagic
校验提示文案
來來不是来来
校验提示文案
拔丝_光年
校验提示文案
温柔如斯
校验提示文案
YongXMan
校验提示文案
值友1166484420
校验提示文案
cypress520
校验提示文案
李总好
校验提示文案
POKO哑虎呸呸
校验提示文案
y973970100
校验提示文案
值友1166484420
校验提示文案
YongXMan
校验提示文案
y973970100
校验提示文案
POKO哑虎呸呸
校验提示文案
温柔如斯
校验提示文案
拔丝_光年
校验提示文案
cypress520
校验提示文案
來來不是来来
校验提示文案
lrmagic
校验提示文案
李总好
校验提示文案