简介
在我们正式的开始开发之前最好来参考一些官方已经有的代码设计(除去官方提供的BSP不说)可以帮助我们节省很多时间.比如说参考官方库ESP-BOX的example. 其中正好提供了一个和ChatGPT对话的demo.
ChatGPT demo 烧录
根据Demo的readme文档我们可以快速的构建这个项目. 需要注意的一点是这个整个项目构建起来占用的硬盘空间有点大. 大概都800MB + 了.
1- 首先使用Gitbash clone 远程仓库到本地
git clone https://github.com/espressif/esp-box
2- clone本地之后进入example 目录下的chatgpt_demo/下的factory_nvs
cd examples/chatgpt_demo/factory_nvs
3- 在menuconfig里配置对应的硬件适配
4- 构建factory_nvs (注意这里一定要先构建这个factory_nvs, 否则直接构建项目会报错)
5- 返回上一级目录,然后使用idf.py menuconfig 来配置和下载依赖的包组件
6- 构建项目 (当前路径在chatgpt_demo下)
idf.py build
构建好了之后我们可以在build目录下找到这个固件,然后我们需要使用idf.py 进行烧录. 或者直接使用ESP-IDF插件进行烧录也是可以的. 烧录的时间较长,我们这里需要耐心等待一下.
烧录完成之后ESP-BOX就会重启了, 进入了设置页面. 如下图所示.
现在它会在本地虚拟出来了一个U盘的盘符,从而使我们连接WIFI
其中需要配置WIFI和openAI的key
我也在OPENAI的平台上创建了账户和拿到了KEY,但是这里的KEY并没有免费试用额度. 因此虽然我可以将KEY配置好,但是会出现无法访问的情况.
我们先将配置文件保存,然后弹出USB设备, 然后重启ESP-BOX,这样的话, ESP-BOX会进行wifi连接,虽然我们没办法使用OPENAI的服务,但是至少我们可以看到乐鑫提供的交互方式.
然后在配网结束之后我们可以看到具体的访问流程页面.
首先,使用HI ESP命令可以唤醒ESP-BOX, 然后提问问题的话是录音十秒钟的时间. 紧接着等待响应. 如果进入睡眠模式的话,点击屏幕可以进行唤醒.
由于KEY无效的原因,请求并不会成功. 接下来我们尝试一下烧录小智的固件.
小智固件烧录
小智这边有编译好的固件, 我们下载上述的固件到本地.
由于我电脑使用的是MACOS因此没办法使用flash download tool, 所以按照小智的教程文档我选择的是乐鑫的在线烧录.
此时我们可以看到烧录工作已经在进行了.
完成后点击重启按钮来重启box.
此时小智烧录成功. 我们来进行配网连接. 配网成功后,便可以访问小智了(由于我这里已经在小智的平台上注册过这个设备了,经过固件的更新貌似这个配置信息并没有被覆盖,所以并不需要二次配置, 如果没有配置的话需要在https://xiaozhi.me/ 进行配置)
此时便可以流畅的使用小智了! 经过实际的测试, 当前的1.4.4版本在ESP-BOX版本中播放音乐可能存在bug(当然也有可能是我的网络不是很好). 当要求小智播放音乐的时候将会出现死机的情况.
测试视频如下:
https://www.bilibili.com/video/BV1H69UYEEzs/?vd_source=fa81ee8dac5a78e9ccb692c6642f6fe2