V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jukanntenn
V2EX  ›  智能家电

类巴法云服务(支持 NAS 部署)实现方案调研,邀大佬共议

  •  
  •   jukanntenn · 9 小时 28 分钟前 · 146 次点击

    开发动机

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

    预期功能

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

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

    方式一:直接接入

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

    方式二:云云接入

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

    方式三:小爱技能

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

    方式四:hack 方式

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

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

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

    • 目前小米服务的接口都是通过逆向破解的,可能存在风控问题
    • 需要一个机制路由语音命令,是直接给小爱控制还是给自部署的服务。例如我本身有一部分米家设备,当我说操作某某设备时,如果该设备属于米家,应该直接交由小米控制;非米家设备才交由自己的服务进行处理
    • 由于小爱音箱对用户的语音命令有自己的一套流程,且无法取消,可能存在打断不及时的问题。

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

    3 条回复    2025-09-24 16:35:49 +08:00
    frankzhang
        1
    frankzhang  
       8 小时 51 分钟前
    Homeassistant 了解下?
    jukanntenn
        2
    jukanntenn  
    OP
       8 小时 20 分钟前
    @frankzhang 这个是作为 Homeassistant 上游服务的,因为很多设备可以接入 HA 但无法接入米家,需要一个中间层桥接小米音箱和终端设备,目前这个中间层我了解到的服务有巴法云,HassLife ,我的目标是希望开发一个类似的服务,支持自部署。
    frankzhang
        3
    frankzhang  
       3 小时 45 分钟前
    看明白了,这么搞太折腾了。玩玩可以,长期用下来稳定性还是容易出问题,过了折腾的新鲜劲以后就容易废弃了。我的解决办法就是想被语音控制的全买小米(手动狗头),或者用实体按钮走 HA 控制。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3025 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 12:21 · PVG 20:21 · LAX 05:21 · JFK 08:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.