进阶扩展点:网络形态、唤醒词、MCP 与资源定制

进阶扩展点:网络形态、唤醒词、MCP 与资源定制

基础的板级适配和对话功能跑通之后,固件还提供了几类扩展入口。本页只做导航:说明每类能力在源码中的位置,并指向详细文档,不重复写没有上游依据的实现方案。

一、网络形态

main/boards/common/ 为不同网络提供了基类,具体板子继承其一:

基类用途
WifiBoardWi-Fi 联网,配网流程见首次启动与网络配置
Ml307Board通过 ML307 模组使用 4G Cat.1 网络
DualNetworkBoard在 Wi-Fi 与 ML307 之间切换,网络类型保存在 Settings 中,默认值由板级构造参数给出
EthernetBoard、RndisBoard、Nt26Board其他网络形态的基类,具体用法请参考使用它们的板子目录

bread-compact-ml307 等板子是 ML307 4G 的参考实现,接线见硬件搭建指南中的 4G 模块部分。

二、唤醒词与音频处理

  • 唤醒词类型由 Kconfig 的 WAKE_WORD_TYPE 选择:AFE 唤醒词、无 AFE 的 WakeNet、MultiNet 自定义唤醒词或关闭,各芯片的可选项见芯片支持与存储规格。
  • 自定义唤醒词有两条路径:编译选项(CUSTOM_WAKE_WORD 等)或打包进 assets.bin,详见自定义 Assets 指南。
  • 打开 SEND_WAKE_WORD_DATA 时,唤醒后会把最近约两秒的音频作为对话的第一条消息发给服务器(PSRAM 环形缓冲,见 main/audio/README.md)。

三、MCP 工具

设备端通过 main/mcp_server.* 注册工具,供大模型控制设备,也有仅限用户调用的工具(如 self.assets.set_download_url)。注册方式和内置工具列表见 MCP 物联网控制用法,协议流程见 MCP 协议。板子可以在自己的初始化代码里添加工具,例如 bread-compact-esp32 用 LampController 做灯控示例。

四、通知、字体补充与表情

五、配网与升级

六、电源管理

Board 定义了三个省电级别:LOW_POWER、BALANCED、PERFORMANCE,由板级的 SetPowerSaveLevel() 实现;boards/common/ 还提供 power_save_timer、sleep_timer 与电池监测等辅助类。是否进入睡眠由 Application::CanEnterSleepMode() 判断。具体行为因板而异,请阅读目标板子的源码。

相关文档

对照来源:78/xiaozhi-esp32 v2.5.2 的 main/boards/common/、main/Kconfig.projbuild、main/mcp_server.cc、main/audio/README.md。