• 0

  • 449

国内智能音箱接入对比

2星期前

国内智能音箱接入对比

万物互联的物联网一直被认为是下一个爆点,而越来越多的智能家电似乎也都证明了一点。Amazon Alexa 的出现也让大家找到了智能家电的入口——智能音箱。将产品接入智能音箱,也成了智能产品的标配之一。

最近正好有相关的需求,因此对国内主要的智能音箱平台做了一次调研。与国外 Alexa “大一统” 的情况不同,国内主要分为「小米、阿里、百度、华为」四大厂。做接入的话,自然是同样的功能要做 「4」 遍了。

下面将从「平台接入条件、产品支持、接入方式(以云云对接为主)、功能实现、技术支持」五个与接入较为紧密的方面进行对比。希望给有接入需求的小伙伴带来参考。(不愿意看文章的小伙伴可以直接看小结部分

「小米 MIoT」

一般提到智能家电,第一反应都会是小米的产品。米家的生态链覆盖了许多生活场景,除了日益增多的智能家电之外,还天然地能配合小米手机和小爱同学使用。

  1. 接入条件

    小米的接入平台为 「MIoT」。目前「不对」个人开放,仅对企业开放注册。审核通过后才能进行开发。

  2. 产品支持

    官方文档上支持的有 「50」 种左右,从灯、开关、空气净化器到冰箱、洗衣机、扫地机器人等。品类集中在生活家电方面。可接入的设备日后还会增加。

  3. 接入方式

    分为支持直接接入和云云对接两种方式。

    • 直接接入主要分为模组嵌入(WIFI、BLE、ZigBee)。支持模组嵌入和 SDK 兼容开发。不过项目不涉及直接接入,并且也不熟悉硬件开发因此这部分略过。

    • 云云接入便是「小米的服务器与设备提供商的服务器」对接。小米服务器只负责命令的转发,实际对智能设备的操作由设备提供商的服务器进行(可以看下图)。服务器之间的认证采用 「OAuth2.0」 的 Authorization Code 的方式认证。不熟悉 OAuth2.0 的小伙伴可以找机会学习一下,是常用的第三方授权方案。

  4. 功能实现

    小米对于智能设备的操作限制较大,主要在于小米「不支持」自定义技能(更大的可能是不对外开放)。接入小米的设备能做的操作与设备类型是「强绑定」的。换句话说,就是小爱同学的接收的语言是规定好的,超出规定的范围小爱同学就无能为力了。

    随之而来的问题便是小米不支持设备类型就无法接入。除了套用类似设备类型外,只能的与小米洽谈合作或者是等待支持了。

    对于服务端这边的开发,也没有对应的官方 SDK,需要参考官方文档自己对请求处理进行封装。这一点对开发者来说不是很友好(纯体力活了)。

  5. 技术支持

    主要以官方文档为主。文档记载的还是比较详细的,整个产品的开发到上线的周期都有涵盖。除了必要的地方外,示例代码很少。Debug 方面可能需要下一定的功夫。

    遇到问题时以提工单的形式为主,同事提过一些回复速度还是挺快的。官方论坛、社区或者 QQ 群暂时没有发现。

「阿里 AliGenie」

天猫精灵作为阿里的智能音响,现在已经整合到 IoT 开放平台中。由于阿里旗下并没有自己的智能生态,天猫精灵基本都是和国内几家较大的家电厂商合作,可以通过天猫精灵来进行操控。

  1. 接入条件

    阿里的接入平台为「IoT开放平台」,支持个人和企业开发。

  2. 产品支持

    官方文档支持的设备为 「109」 种。基本的品类也和小米类似,还多了和健康相关的手环、血糖仪、血压仪。

  3. 接入方式

    接入方式分为直接接入与云云对接两种方式。对于使用哪种方式,阿里也给出了相关建议。

    • 直接接入为蓝牙 Mesh 和 WIFI 直连接入,只对「企业用户」开放。需要通过平台申请获取对应的 SDK。

    • 云云接入与小米类似,只是这一次服务器换成了阿里。同样的,服务器之间的认证仍然采用 OAuth 2.0 的 Authorization Code 方式。

  4. 功能实现

    阿里对于智能设备的操作就没有那么多的限制了。因为拥有类似 AWS 的 Lambda 服务,阿里支持自定义技能,可以利用「阿里云的 FaaS 服务」直接编写,省去了搭建自定义技能的环境(阿里云还自带了网页版的 VSCode,代码写完一键部署)。只是要吐槽的是,阿里对于 Node 的支持不高, async/await「不支持」的,老老实实用 Promise 吧。

    开发者可以自定义意图(使用者会说的命令),阿里的服务器会将语音进行解析后传到对应的技能,之后再由技能调用开发者的服务器从而完成对设备的操作。比如控制电灯时,就可以定义 “灯开/关了吗“ 这样的语句,甚至还可以定义毫不相关的语句来实现操作。因为这部分在开发者手中,所以自由度很高。

    也正因为如此,自定义技能不仅可以「无关设备类型」地对接智能设备,也可以成为一个「语音控制的小程序」。开发者也可以自由地定义各种奇怪的语义来控制设备或者操作。不过技能上架还是需要经过阿里审核的。

  5. 技术支持

    作为出过许多开源库的大厂,文档方面的支持还是很详细的。但是在智能音响这块,由于进行过整合,因此会看到新旧不同版本的文档(在支持的设备数量上差的很多)。在查看文档时,要尽量从首页的入口进去。

    在遇到问题时除了提供单,还有对应的钉钉群。在技术支持方面,要比小米多一些。

「百度 DuerOS」

百度的智能音箱就叫做小度。与阿里一样,在百度的 DuerOS 中可以进行开发。同样地作为软件为主的大厂,百度在智能家居方面也主要和家电大厂合作为主。

  1. 接入条件

    百度的接入平台为**DuerOS开放平台,**支持个人和企业开发。

  2. 产品支持

    官方文档支持 「59」 种设备。基本的范围与小米和阿里相同,同样囊括了大部分的家电。

  3. 接入方式、

    接入方式与前两家一样分为直接接入与云云对接两种方式。

    • 直接接入为小度闪连,支持蓝牙 mesh 和 WIFI 直连。同样的设备放需要使用支持小度的芯片,然后使用 SDK 开发。
    • 云云对接与阿里一样,只是基础设施换为了百度云。服务器之间也同样采用 OAuth 2.0 的 Authorization Code 方式进行认证。

  4. 功能实现

    All in AI 为主的百度,「既支持自定义技能又划出了智能家居类别」。智能家居类别的技能不能自定义语义,但百度对通用的操作定义了对应的语义。而一个智能家居拥有哪些操作(对应哪些语义)则是由开发者来定义的。这样既减少了开发量,又不与设备类型强行绑定。

    而自定义技能则与阿里类似,可以直接使用「百度的 FaaS 服务」一键部署(百度没有网页 VSCode,需要手动 zip 代码上传),也可以和百度云或者自己的服务器对接。另外百度的 Node 支持到 12,「各种 ES6 语法可以放心使用」

  5. 技术支持

    百度的文档是四家大厂中写的最清晰的(个人感觉),文档方面很详细。代码示例之外,在 GitHub 上也有开源的 SDK 和 sample,为开发带来了很多方便。对比下来的开发体验是最好的。

    在遇到问题时,DuerOS 没有工单系统,但拥有官方的 QQ 群。只是群里对于问题的回复速度有些慢。

「华为 HLink」

华为的智能音响是小艺。作为硬件出身的大厂,华为也有一套自己的智能生态。不过项目最终以百度、阿里为主,因此华为也没有继续深入调研。只能根据官方文档的信息作出对比。

  1. 接入条件

    华为的接入平台在「华为开发者联盟」中,接入的项目为 HLink。目前只对「企业用户」开放**。**

  2. 产品支持

    官方文档支持的设备为 「15」 种,基本在空调、照明、开关等常用的家电。

  3. 接入方式

    接入方式同样分为直接接入和云云对接。

    • 直接接入分为 WIFI 接入和 BLE 接入两种。与小米类似既可以模组嵌入,也支持 SDK 兼容开发。
    • 云云接入则与其他厂家一样。通过 OAuth 2.0 认证。

  4. 功能实现

    华为的实现与小米类似,「不支持」自定义技能,产品的类别与语义强绑定。对于不支持的产品只能与华为方面进行沟通或者等待支持。另外与其他大厂不同的是,除了设备技能的实现,华为还需要开发前端 H5 界面。有一定的规范要求,需要使用华为提供的设计平台进行开发。

    另外由于没有提供 SDK,对于请求体和逻辑都需要开发者自己来实现。对于开发来说会增加不少难度。

  5. 技术支持

    文档方面主要的流程都有记载,但细节部分并不多。同样没有对应的 SDK (服务端)需要开发者自己造轮子。

    在遇到问题时可以提工单,工单的回复速度还是挺快的。

「小结与展望」

出身的基因决定了对待产品的态度。从上面的对比中,可以明显感觉出两种不同的态度。

硬件出身的小米和华为,对开发者的限制较多,对智能音箱的定位在控制智能家居的声音遥控器。由于本身就拥有硬件体系,他们更愿意让别人遵循他们的体系而不是开放。这一点在拥有各种“米”的小米上更为明显。

而软件出身的阿里与百度,则对开发者放开了限制,对智能音箱的定位也不仅是声音遥控器,还可能是一个「声控小程序」。他们利用云资源为开发者减少了开发的困难,让开发者更好地去加入到他们的体系。

两种态度没有优劣之分。从开发的角度来说,我推荐从百度上手。除了文档比较清晰之外,GitHub 的 Sample 代码可以降低我们上手的难度。

  接入条件 产品支持 接入方式 功能实现 技术支持
小米 仅对企业用户 官方文档 50 种设备 硬件 + 云云对接
采用 OAuth 2.0 认证
1. 自由度低,语音与设备类型强绑定
2. 没有 SDK 需要自己造轮子
工单 + 文档
阿里 企业 + 个人 官方文档 109 种设备 硬件 + 云云对接
采用 OAuth 2.0 认证
1. 自由度高,支持自定义语义
2. 有配套 FaaS 服务支持
3. 有配套 SDK,支持的 Node 版本低
工单 + 文档 + 钉钉
百度 企业 + 个人 官方文档 59 种设备 硬件 + 云云对接
采用 OAuth 2.0 认证
1. 自由度高,支持自定义语义
2. 有配套 FaaS 服务支持
3. 有配套 SDK,有 Sample 支持 Node 12
文档 + 官方 QQ 群
华为 企业 官方文档 15 种设备 硬件 + 云云对接
采用 OAuth 2.0 认证
1. 自由度低,语音与设备类型强绑定
2. 没有 SDK 需要自己造轮子
工单

本文首发于公众号:“此方的手账” 一个分享技术和生活感悟的公众号,欢迎大家来玩。

本文使用 mdnice 排版

免责声明:文章版权归原作者所有,其内容与观点不代表Unitimes立场,亦不构成任何投资意见或建议。

程序员

449

相关文章推荐

未登录头像

暂无评论