V2EX 09月24日 11:24
自建服务接入小爱音箱,实现非米家设备语音控制
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

用户家中同时存在米家和非米家设备,目前通过巴法云实现非米家设备的语音控制。为解决巴法云的局限性,用户计划开发一个本地化部署的类巴法云服务,支持自主迭代和功能拓展。该服务旨在解析小爱语音指令,通过特定协议(如 TCP 或 MQTT)下发给终端设备(如 Home Assistant),从而实现对非米家智能设备的语音控制。通过分析小米官方文档和开源项目,用户排除了直接接入、云云接入和小爱技能等方式,认为“hack 方式”(逆向接口轮询对话记录)是目前最有希望的方案,但同时也提出了接口风控、命令路由以及语音打断等潜在挑战,并寻求更优的解决方案。

💡 **开发本地化服务以克服现有方案局限**:用户家中设备构成复杂,部分为米家,部分为非米家。当前通过巴法云接入非米家设备,虽然效果尚可,但巴法云的拓展性和灵活性受限。因此,用户计划自主开发一个本地部署的服务,类似于巴法云,以实现对非米家设备的语音控制,并拥有完全自主的迭代升级和功能拓展能力。

🗣️ **核心功能:语音指令解析与协议下发**:新开发的服务核心目标是接收并解析小爱音箱的语音指令,将其转化为结构化的数据。随后,通过特定的网络协议(如 TCP 或 MQTT,与巴法云类似)将这些数据发送至终端设备(如 Home Assistant 或其他自定义服务),最终实现通过小爱音箱控制非米家智能设备。

🛠️ **“Hack 方式”为当前最优解,但伴随挑战**:在探索多种接入方式后,用户认为通过逆向工程破解小米服务接口,轮询小爱音箱对话记录并解析处理,是目前最有潜力的方案。然而,该方式面临接口风控风险、需要智能的命令路由机制(区分米家与非米家设备指令)以及小爱音箱自身语音交互流程可能带来的打断问题等挑战。

开发动机

家中一部分米家设备,一部分非米家,目前通过巴法云将非米家设备接入米家,从而实现小爱音箱语音控制。总体来说效果不错,但由于巴法云的限制,缺失一定的拓展性和灵活性,所以想开发一个类巴法云的服务,支持本地化部署,实现迭代升级、功能拓展的自主可控。

预期功能

同巴法云类似,可将小爱语音解析为格式化的数据,通过特定协议(例如巴法云支持的 TCP 或者 MQTT )下发给终端(例如 HA ),从而实现使用小爱语音控制非米家智能设备。

根据小米的官方文档和小爱音箱相关的开源项目,我总结了这几种可能的接入方式。

方式一:直接接入

我的理解是通过这种方式接入后,可在米家直接添加设备并在设备列表中显示。该方式无法满足预期的功能,因为每个产品上线都需要小米审核,而巴法云是可以直接同步任意设备的。

方式二:云云接入

感觉这应该就是巴法云的方式,官方文档说目前采用限制性准入机制,仅对受邀合作伙伴开放。该方式似乎也无法满足预期的功能,因为我们的服务是自部署的,云云接入有准入机制,每一个自部署的服务都申请云云接入不现实。

方式三:小爱技能

官方文档显示目前已暂停开发,且交互方式似乎需要特定唤醒词唤醒,然后进行交互,不够简洁。

方式四:hack 方式

这是目前大部分小爱音箱有关的开源项目采用的方式,其实现原理是通过逆向得到的接口轮询小爱音箱对话记录,然后根据对话内容做相应处理。

我们的服务也可以采用类似的机制,大体流程可能是这样的:监听小爱音箱对话列表 -> 本地训练一个小参数 AI 模型,解析对话后通过特定协议(例如巴法云使用 MQTT )下发 -> 终端(可以是 HA ,也可以是自己开发的服务)根据下发的数据操作对应的设备。

这个方案基本能满足预期的功能需求,不过可能有一些难点需要攻克或者存在无法绕开的限制:

以上是我了解到的一些方案,目前来看只有方式四最有希望,但依然还是存在一些限制,不能做到像巴法云一样的完美,不知道大佬们是否还了解一些其他可能的方式,望不吝赐教!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

小爱音箱 智能家居 米家 非米家设备 语音控制 本地化部署 巴法云 Home Assistant 逆向工程 DIY XiaoAi Speaker Smart Home Mi Home Non-Mi Home Devices Voice Control Local Deployment Bafangyun Home Assistant Reverse Engineering DIY
相关文章