小智Pro支持固件在线更新:原理+流程拆解(续)

前文分享了小智AI自定义唤醒词+表情包+背景图的基本原理:

小智AI 如何自定义唤醒词+背景图:原理+流程拆解

远程控制+文字唤醒,小智Pro开放API调用,释放小智无限潜力

有朋友好奇:

浏览器生成的assets.bin是如何发送给设备的?

今日分享,聊聊前端-后端-设备端的三方通信逻辑。

基于此,给出小智Pro的具体实现方案。

1. 架构设计

回到前文的问题:

浏览器生成的assets.bin如何发送给设备端

参考:https://github.com/78/xiaozhi-assets-generator

来看小智的实现思路:一个非常巧妙的三方通信架构:

  • 前端 ↔️ 后端:WebSocket (控制通道)
  • 设备 ↔️ 后端:HTTP (数据通道)
  • 后端:作为中间协调者,连接两端

简单画个流程图:

为啥要这么搞?

  • 解耦设计:前端不直接与设备通信
  • 协议桥接:WebSocket ↔ HTTP 的实时数据转发
  • 状态同步:通过事件机制实现三端状态一致
  • 安全机制:临时URL,防止未授权访问

2. 完整流程

了解了架构,我们来看完整流程:

阶段1-2:前端准备阶段

前端通过WebSocket告诉后端:“我要上传一个文件”

const createMessage = { type: 'create_file', fileName: 'assets.bin', fileSize: blob.size }; this.ws.send(JSON.stringify(createMessage));

阶段3:后端生成URL

后端创建临时文件会话并返回下载URL:

阶段4:前端配置设备

前端拿到URL后告诉设备去下载:

await callMcpTool('self.assets.set_download_url', { url: downloadUrl // 这就是上面的download_url })

阶段5:设备端HTTP下载

// 设备端直接HTTP GET请求 if (!http->Open("GET", url)) { ESP_LOGE(TAG, "Failed to open HTTP connection"); return false; }

阶段6:后端转发数据给设备

当设备请求下载时,后端检测到这个请求对应某个session,不从文件系统读取,而是实时转发前端通过WebSocket发送的二进制数据:

阶段7:后端通知前端传输开始

当后端开始向设备提供HTTP数据时,发送transfer_started事件给前端:

case 'transfer_started': this.currentSession.transferStarted = true if (this.onTransferStarted) { this.onTransferStarted() // 通知前端可以开始发送数据了 }

阶段8:前端传输完成 & 后端下载完成

当前端传输的数据,被后端全部接收后,销毁session,完结撒花!

3. 小智Pro 实现

免费体验👇:

https://mkwyqeoebedx.sealosbja.site

基于以上原理和流程,小智Pro 服务端,现已支持自定义唤醒词+背景图

注:需下载小智Pro-v2.0.5.1及以上版本固件体验:

https://github.com/hougeai/xiaozhiPro/releases

写在最后

本文分享了小智AI实现固件更新前端-后端-设备端的三方通信逻辑。。

如果对你有帮助,不妨点赞收藏备用。

欢迎来聊。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成立于2020年的拓竹科技,仅用5年时间便登顶全球消费级3D打印市场,成为该赛道的“隐形王者”

成立于2020年的拓竹科技,仅用5年时间便登顶全球消费级3D打印市场,成为该赛道的“隐形王者” 目录成立于2020年的拓竹科技,仅用5年时间便登顶全球消费级3D打印市场,成为该赛道的“隐形王者”(一)核心锚点&am…

具身智能时代,从“白虎”开始:白虎数据集构建通用机器人数据底座

当机器人智能逐步从单一动作执行走向复杂任务协作,行业对通用机器人能力的期待不断提高。相比模型结构本身,能够真实反映多本体、多任务、多场景操作的数据,正在成为制约具身智能发展的关键因素。 在这一背景下,OpenLoong 开源社区…

优质SCI论文的完整框架设计

优质SCI论文的完整框架设计 目录优质SCI论文的完整框架设计一、Title(标题)二、Abstract(摘要)150-250词三、Introduction(引言)六、Discussion(讨论)七、Conclusion(结论…

【AI】AI大模型之流式传输(前后端技术实现)

流式传输技术详解:从概念到实现的全过程 目录 什么是流式传输?流式传输的实现要求流式传输的三个层面适配层与包装层的实现消息类型分类逻辑完整流程示例总结与最佳实践 什么是流式传输? **流式传输(Streaming)**是…

2025.8大众点评(武汉)全品类数据

截至2025年6月,大众点评数据已覆盖全国30重点城市,全品类商户总量超80万。其中:上海(80w)、北京(68w)、成都(88w)为数据量前三城市;品类包含美食、丽人、亲子…

分子动力学模拟-油气界面张力和最小混相压力计算

关键词:页岩油,分子动力学,lammps,gromacs,界面张力,最小混相压力摘要:分子模拟方法在探究纳米尺度下分子间相互作用方面展现出巨大的技术优势。因此,本文采用分子动力学模拟方法&am…

刷题日记 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:intervals [[1,3…

2007-2024年健康城市试点政策DID数据

政策背景 健康城市试点政策源于世界卫生组织(WHO)倡导的全球战略行动,旨在通过综合措施解决城市化带来的健康挑战。2016年,中国全国爱国卫生运动委员会发布《关于开展健康城市试点工作的通知》,正式启动健康城市试点工…

使用Python打造Markdown转EPUB电子书生成工具

前言 在数字阅读时代,EPUB格式已成为电子书的主流标准。作为一名内容创作者或开发者,你是否想过将自己的Markdown笔记、文章快速转换成精美的电子书?今天,我将带你使用Python和wxPython构建一个简洁实用的Markdown转EPUB转换工具。…

2005-2025年各省、地级市、上市公司人工智能创新发展试验区DID数据

在数字经济与人工智能深度融合的背景下,人工智能创新发展试验区作为国家推动 AI 技术落地、产业升级的核心载体,其政策实施效果的精准评估对优化创新治理体系具有关键意义。本数据基于双重差分(DID)方法构建,可有效剥离…

c++qt开发第三天 摄像头采集视频

capture_thread.h 一、这个文件是干嘛的?(一句话先懂)👉 这是一个用 Qt 的 QThread 写的“视频采集线程类”作用大致是:从 Linux 摄像头设备 /dev/video1 采集视频把采集到的图像转换成 QImage通过 Qt 信号 发给界面显…

从零构建:手写一个支持“高度定制化排版”的 Chrome 网页摘录插件

在碎片化阅读时代,我们经常需要将网页上的精彩段落保存下来,整理成 PDF 或 EPUB 放入电子书阅读器中。现有的插件(如 Evernote、Pocket)虽然强大,但往往存在两个痛点: 格式混乱:直接抓取网页 H…

晶台光耦在储能系统中的作用

光耦在储能系统中通过电气隔离实现高压与低压电路的安全隔离,是保障系统稳定运行的关键器件。晶台光耦KL1018/KL1019系列采用LSOP4封装,具备5KV隔离电压及-55~110℃宽温特性,广泛应用于太阳能储能逆变器。其红外发射二极管与光电晶体管耦合结…

基于时间和空间的大规模电动汽车入网网损调度 建立MISOCP模型,分时段优化,并行计算(实时优化)

基于时间和空间的大规模电动汽车入网网损调度 建立MISOCP模型,分时段优化,并行计算(实时优化)。 并对比了优化和未优化结果,验证了调度的有效性。 考虑到电动汽车的机动性,市区可分为三类功能区&#xff1a…

软考高项—信息系统项目管理师,2026全新汇总!

软考高项—信息系统项目管理师,2026全新汇总! 链接:https://pan.quark.cn/s/30a4d39e1726

远程代打卡难根治?深度解析盖雅蓝牙打卡如何从底层杜绝考勤舞弊

在数字化办公日益普及的今天,考勤打卡作为企业管理的基础环节,正面临前所未有的信任挑战。市场上层出不穷的代打卡服务和各种模拟定位软件,让本应严肃的职场规则变成了一场技术博弈。这种被称为灰色产业链的现象,不仅让企业承担了…

20亿并购背后的AI Agent核心密码:LangChain与Manus联合揭秘上下文工程三大策略

2025年AI行业最重磅的新闻之一,莫过于Meta以20亿美金并购AI Agent领域的明星企业Manus。这笔天价交易让整个行业为之震动,也让Manus打造的颠覆性Agent成为焦点。为什么Manus的Agent能获得巨头如此青睐?它背后究竟隐藏着怎样的技术逻辑&#x…

网站meta标签添加Meta property=og协议的OG标签优化详解教程

1、网站meta标签添加Meta propertyog协议的OG标签优化详解教程<meta property"og:title" content"论文查重" />肯定有人见过这种的meta标签&#xff0c;那就会有人问这种是什么标签&#xff0c;干什么用的呢&#xff1f;2、Meta Propertyog是什么协议…

2026年最新爆火AI论文工具盘点:7款神器实测,知网维普查重一把过不留痕!

凌晨三点&#xff0c;论文查重率还在50%徘徊&#xff1f;导师的修改意见看得你头皮发麻&#xff0c;deadline只剩最后48小时&#xff1f; 别慌&#xff01;2026年最新爆火的AI论文工具已经帮你把“不可能”变成了“30分钟交稿”。这不再是科幻&#xff0c;而是无数研究生、本科…

当Ada记录类型含有可变长数组分量时的逆向分析

请看IDA生成的以下伪代码&#xff1a;char *a7;//函数的输入参数int v31; // ecxint v32; // ecxint v33; // edxint v34; // ebxint v35; // ecxint v36; // ecxint v37; // edxint v38; // eaxint v39; // edxv31 *a7;if ( v31 > 99 )v31 99;v32 (~(532 * v31 532) &g…