开发动机
家中一部分米家设备,一部分非米家,目前通过巴法云将非米家设备接入米家,从而实现小爱音箱语音控制。总体来说效果不错,但由于巴法云的限制,缺失一定的拓展性和灵活性,所以想开发一个类巴法云的服务,支持本地化部署,实现迭代升级、功能拓展的自主可控。
预期功能
同巴法云类似,可将小爱语音解析为格式化的数据,通过特定协议(例如巴法云支持的 TCP 或者 MQTT )下发给终端(例如 HA ),从而实现使用小爱语音控制非米家智能设备。
根据小米的官方文档和小爱音箱相关的开源项目,我总结了这几种可能的接入方式。
方式一:直接接入
我的理解是通过这种方式接入后,可在米家直接添加设备并在设备列表中显示。该方式无法满足预期的功能,因为每个产品上线都需要小米审核,而巴法云是可以直接同步任意设备的。
方式二:云云接入
感觉这应该就是巴法云的方式,官方文档说目前采用限制性准入机制,仅对受邀合作伙伴开放。该方式似乎也无法满足预期的功能,因为我们的服务是自部署的,云云接入有准入机制,每一个自部署的服务都申请云云接入不现实。
方式三:小爱技能
官方文档显示目前已暂停开发,且交互方式似乎需要特定唤醒词唤醒,然后进行交互,不够简洁。
方式四:hack 方式
这是目前大部分小爱音箱有关的开源项目采用的方式,其实现原理是通过逆向得到的接口轮询小爱音箱对话记录,然后根据对话内容做相应处理。
我们的服务也可以采用类似的机制,大体流程可能是这样的: 监听小爱音箱对话列表 -> 本地训练一个小参数 AI 模型,解析对话后通过特定协议(例如巴法云使用 MQTT )下发 -> 终端(可以是 HA ,也可以是自己开发的服务)根据下发的数据操作对应的设备。
这个方案基本能满足预期的功能需求,不过可能有一些难点需要攻克或者存在无法绕开的限制:
以上是我了解到的一些方案,目前来看只有方式四最有希望,但依然还是存在一些限制,不能做到像巴法云一样的完美,不知道大佬们是否还了解一些其他可能的方式,望不吝赐教!
1
frankzhang 8 小时 51 分钟前
Homeassistant 了解下?
|
2
jukanntenn OP @frankzhang 这个是作为 Homeassistant 上游服务的,因为很多设备可以接入 HA 但无法接入米家,需要一个中间层桥接小米音箱和终端设备,目前这个中间层我了解到的服务有巴法云,HassLife ,我的目标是希望开发一个类似的服务,支持自部署。
|
3
frankzhang 3 小时 45 分钟前
看明白了,这么搞太折腾了。玩玩可以,长期用下来稳定性还是容易出问题,过了折腾的新鲜劲以后就容易废弃了。我的解决办法就是想被语音控制的全买小米(手动狗头),或者用实体按钮走 HA 控制。
|