Files
QingLong/XiaoZhi/xiaozhi-esp32-server/docs/firmware-build.md
2025-08-15 09:13:13 +08:00

4.6 KiB
Raw Blame History

编译esp32固件

第1步 配置环境

先按照这个教程配置项目环境《Windows搭建 ESP IDF 5.3.2开发环境以及编译小智》

第2步 打开配置文件

配置好编译环境后,下载虾哥xiaozhi-esp32项目源码,进入虾哥项目,打开xiaozhi-esp32/main/Kconfig.projbuild文件。

第3步 修改WEBSOCKET地址

找到WEBSOCKET_URLdefault的内容,把wss://api.tenclass.net/xiaozhi/v1/ 改成你自己的地址,例如,我的接口地址是ws://192.168.1.25:8000/xiaozhi/v1/,就把内容改成这个。

修改前:

config WEBSOCKET_URL
    depends on CONNECTION_TYPE_WEBSOCKET
    string "Websocket URL"
    default "wss://api.tenclass.net/xiaozhi/v1/"
    help
        Communication with the server through websocket after wake up.

修改后(示例)

config WEBSOCKET_URL
    depends on CONNECTION_TYPE_WEBSOCKET
    string "Websocket URL"
    default "ws://192.168.1.25:8000/xiaozhi/v1/"
    help
        Communication with the server through websocket after wake up.

注意:你的地址是ws://开头,不是wss://开头,一定不要写错了。

注意:你的地址是ws://开头,不是wss://开头,一定不要写错了。

注意:你的地址是ws://开头,不是wss://开头,一定不要写错了。

第4步 修改OTA地址

如果你是全模块部署本项目就修改OTA接口如果你只是部署了8000端口的xiaozhi-server可以继续沿用虾哥团队的OTA接口。如果你不修改OTA接口请直接忽略本第4步直接看第5步

找到OTA_VERSION_URLdefault的内容,把https://api.tenclass.net/xiaozhi/ota/ 改成你自己的地址,例如,我的接口地址是http://192.168.1.25:8002/xiaozhi/ota/,就把内容改成这个。

修改前:

config OTA_VERSION_URL
    string "OTA Version URL"
    default "https://api.tenclass.net/xiaozhi/ota/"
    help
        The application will access this URL to check for updates.

修改后:

config OTA_VERSION_URL
    string "OTA Version URL"
    default "http://192.168.1.25:8002/xiaozhi/ota/"
    help
        The application will access this URL to check for updates.

第5步 设置编译参数

设置编译参数

# 终端命令行进入xiaozhi-esp32的根目录
cd xiaozhi-esp32
# 例如我使用的板子是esp32s3所以设置编译目标为esp32s3如果你的板子是其他型号请替换成对应的型号
idf.py set-target esp32s3
# 进入菜单配置
idf.py menuconfig

图片

进入菜单配置后,再进入Xiaozhi Assistant,将CONNECTION_TYPE设置为Websocket 回退到主菜单,再进入Xiaozhi Assistant,将BOARD_TYPE设置你板子的具体型号 保存退出,回到终端命令行。

图片

第6步 编译固件

idf.py build

如果是vscode安装的idf可以使用F1或者ctrl+shift+p,输入idf然后直接选择进行编译

还可以直接进行烧录不用接下来的操作

第7步 打包bin固件

cd scripts
python release.py

编译成功后,会在项目根目录下的build目录下生成固件文件merged-binary.bin。 这个merged-binary.bin就是要烧录到硬件上的固件文件。

注意如果执行到第二命令后报了“zip”相关的错误请忽略这个错误只要build目录下生成固件文件merged-binary.bin ,对你没有太大影响,请继续。

第8步 烧录固件

将esp32设备连接电脑使用chrome浏览器打开以下网址

https://espressif.github.io/esp-launchpad/

打开这个教程,Flash工具/Web端烧录固件无IDF开发环境。 翻到:方式二ESP-Launchpad 浏览器WEB端烧录,从3. 烧录固件/下载到开发板开始,按照教程操作。

烧录成功且联网成功后通过唤醒词唤醒小智留意server端输出的控制台信息。

常见问题

以下是一些常见问题,供参考:

1、为什么我说的话小智识别出来很多韩文、日文、英文

2、为什么会出现“TTS 任务出错 文件不存在”?

3、TTS 经常失败,经常超时

4、使用Wifi能连接自建服务器但是4G模式却接不上

5、如何提高小智对话响应速度

6、我说话很慢停顿时小智老是抢话

7、我想通过小智控制电灯、空调、远程开关机等操作