進階擴充點:網路形態、喚醒詞、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。