项目>小智AI>小智 AI 自定义唤醒词、字体、表情与背景

小智 AI 自定义唤醒词、字体、表情与背景

摘要:字体、表情、聊天背景可网页端在线修改;唤醒词与界面语言属编译参数,先跑 build.py --list-wake-words 查可选值,早期边界按当前文档重估。

可以自定义的界面资源与唤醒词

按 2026-11-12 抓取的官方 main 分支 README,小智 AI 支持自定义唤醒词、字体、表情与聊天背景,其中字体、表情与聊天背景可通过官方 Assets 生成器(78/xiaozhi-assets-generator)在网页端在线修改。

界面语言提供 38 种,语音提示优先使用本地化资源,缺失时自动回退到英文。唤醒词与界面语言则属于编译期构建参数,需要搭好 ESP-IDF 环境后用构建脚本指定,两条路径不要混淆。

动手前先查可选值

官方自定义开发板指南(docs/custom-board_zh.md)把语言和唤醒词归为用户构建参数,并给出查询命令,逐字如下:

python scripts/build.py --list-languages
python scripts/build.py --list-languages --json
python scripts/build.py --list-wake-words
python scripts/build.py --list-wake-words --json

改唤醒词之前,先在源码目录里跑一遍查询,确认当前固件实际提供了哪些选项:

  1. 进入 xiaozhi-esp32 源码根目录并加载 ESP-IDF 环境(README 要求最低 v6.0.1、推荐 release/v6.1 分支,不再支持 5.x)。预期结果:在该目录执行 python scripts/build.py 不带参数时打印帮助信息。
  2. 若尚未生成 managed_components/ 目录,先执行 idf.py reconfigure。预期结果:目录中出现 managed_components/,唤醒词列表从其中已解析的 ESP-SR 组件读取。
  3. 执行 python scripts/build.py --list-wake-words。预期结果:终端以文本列出当前可用的唤醒词模型;追加 --json 后以 JSON 格式输出,便于比对与脚本处理。
  4. 执行 python scripts/build.py --list-languages。预期结果:列出 main/assets/locales/ 下已有的界面语言,同样支持 --json。
  5. 从列表选定后编译,官方文档示例为 python scripts/build.py my-custom-board --language en-US --wake-word wn9_jarvis_tts。预期结果:默认生成 build/merged-binary.bin,烧录后按新参数生效。

构建参数的取值与查询命令如下:

参数 取值
--language 接受 main/assets/locales/ 下已有的 locale
--wake-word 接受 ESP-SR 模型名、nihaoxiaozhi(自动选择与目标芯片兼容的模型)或 disabled
--list-languages 列出 main/assets/locales/ 下已有的界面语言,支持 --json
--list-wake-words 列出当前可用的唤醒词模型,支持 --json

ESP32-C3/C5/C6 仅支持 WakeNet9s(wn9s_*)模型;ESP32-S3/P4/S31 构建会自动使用 AFE 唤醒引擎。另外官方指南明确:不要在板子的 config.json 中选择语言或具体唤醒词,这些属于用户构建选项,应统一通过 menuconfig 或构建脚本参数配置,方便 CLI、Agent 和在线编译接口共用同一套参数。

源码内置的字体与表情

做自定义开发板或源码编译时,CMakeLists 中还可指定内置字体与表情集合,官方指南按屏幕尺寸给出的参考为:

屏幕尺寸 字体参考
小屏幕(128x64 OLED) font_puhui_basic_14_1 与 font_awesome_14_1
中小屏幕(240x240) font_puhui_basic_16_4 与 font_awesome_16_4
中等屏幕(240x320) font_puhui_basic_20_4 与 font_awesome_20_4
大屏幕(480x320+) font_puhui_basic_30_4 与 font_awesome_30_4

表情集合可选 twemoji_32(32x32 像素,小屏幕)或 twemoji_64(64x64 像素,大屏幕)。

更换唤醒词的边界

官方早期问答 Q19 的口径是:更换唤醒词「代码编译支持」,需要自己或找到人配置 IDF 开发环境,修改开源项目代码,在配置 SDK 或 menuconfig 中修改唤醒词,当时可选的为 25 个左右;同时「本开源项目暂时不能定制自定义唤醒词,ESP32乐鑫官方的离线唤醒词识别需要向官方申请,涉及语料和商业费用」。

这属于早期固件口径,可选数量与申请流程以仓库 main 分支与官方文档当前状态为准,动手前以 --list-wake-words 的实际输出为准。

官方问答 Q20 还区分了两个容易混淆的概念:在 xiaozhi.me 控制台改的是大模型配置的智能体角色名字,改完保存后对话时角色知道自己叫什么;离线唤醒词是设备端模型,两者不存在关联,设备唤醒词没有更换时仍用默认唤醒词唤醒。

默认唤醒词本身在官方文档里有两个互相矛盾的说法(问答页写「你好小智」并排除「小智小智」,FAQ 页写「小智小智」),以设备实机首次播报或屏幕提示为准。

三条路径归纳:字体、表情、聊天背景走网页端 Assets 生成器在线修改;界面语言与唤醒词走构建参数,改前先查列表;角色名字走控制台。互不替代,按需选用。

资料来源

  • 78/xiaozhi-esp32 官方 README
  • 78/xiaozhi-esp32 官方开发者文档
  • 小智 AI 官方常见问题 Q&A

相关内容

FireBeetle 2 ESP32-P4小智AI桌面伴侣实践DFR1221圆屏适配小智AI:触摸修复与动态角色实践行空板K10变身AI PassPort:语音问答与猜谜互动实践行空板K10小智AI聊天机器人:固件烧录与配置实践语音指挥农夫自动寻路!行空板K10+MCP打造AI 3D农场实践AI健身助手 · 行空板K10+姿势识别实践