四博智联的`AI-01开发板`,基于乐鑫ESP32-C2 + 专属定制的离线语音模组

四博智联的`AI-01开发板`,基于乐鑫ESP32-C2 + 专属定制的离线语音模组,能够完美的接入小智AI服务平台,再使用开源后端服务,就能够搭建一个完整的小智AI服务系统了,下面是具体的搭建过程。

1. 硬件连接

`AI-01开发板`没有板载USB转串口功能,需要自己通过`USB转串口工具`来连接到电脑,以便下载固件和查看日志输出信息。

参考官方提供的接线指导:

具体连线如下:

在实际使用中,`USB转串口工具`仅需连接到`AI-01开发板`的TX、RX、GND即可。然后用Tyep-C数据线给`AI-01开发板`供电即可。

需要注意的是,因为`AI-01开发板`没有提供RESET按钮,所以后续需要通过插拔Tyep-C数据线来重新上电,实现`AI-01开发板`的重启运行。

按照接线指导连接好以后,将`USB转串口工具`连接到电脑,再打开电脑的设备管理器,确保正确识别到对应的串口,并显示在`端口(COM和LPT)`中:

可以拔掉`USB转串口工具`,对应的设备会消失。然后过几秒,再重新连接到电脑的USB口,会重新出现。

2. 建立ESP-IDF 开发环境

小智AI系统硬件设备的开源代码,可以在VSCode中安装ESP-IDF的扩展和编译工具,来进行编译和烧录。

2.1 安装ESP-IDF 扩展

首先安装VSCode,可以从https://code.visualstudio.com/download下载。

安装后,打开VSCode,点击右侧导航栏的3+1方块图标,进入扩展安装,然后搜索esp-idf安装即可:

2.2 安装ESP-IDF 编译工具

安装完ESP-IDF扩展后,点击右边导航栏的乐鑫圆形图标,在`Advanced`中点击`配置ESP-IDF扩展`,然后选择`EXPRESS`进入安装配置:

在安装配置界面中,按照下图选择从中国服务器下载(for China),并选择v5.3.3版本,再点击`Install`安装:

然后,耐心等待安装完成:

2.3 设置ESP-IDF 扩展

安装完成后,从`ESP-IDF`扩展的安装界面,先设置图标,再选择设置:

在设置界面中,先搜索`flash`,设置烧录的波特率为921600:

再搜索monitor,设置串口监视的波特率为74880:

2.4 编译运行示例程序

现在开发环境已经安装配置好了,为了确保能够正常使用,可以运行一个示例程序进行检验。

点击右边导航栏的乐鑫圆形图标,在`Advanced`中点击`展示示例项目`,在列出的项目中,选择`hello_world`,然后点击`Select location for hello_world project`:

点击后,会提示示例项目保存目录,设置一个目录保存即可。

创建成功后,会自动打开新建的`hello world`的项目工作界面:

然后按照下图,点击选择之前在设备管理器中显示的`USB转串口工具`设备端口号,以及芯片类型esp32c2:

再点击构建图标,即可编译`hello_world`的源码:

编译成功后,会显示如下的内存占用情况:

在下一步操作之前,需要从电脑先断开`AI-01开发板`的Tyep-C数据线,再按住`AI-01开发板`上的按键不放,然后重新连接到电脑上,让`AI-01开发板`进入下载固件模式。连接完成后,可以松开按键。

操作完成后,再点击底部的`ESP-IDF:构建、烧录和监视`图标,并在顶部弹出列表中选择`UART`:

随后,会自动完成编译源码,烧录固件到`AI-01开发板`,并启动串口监视:

当VSCode下部的窗口,显示上述信息后,重新插拔`AI-01开发板`的Tyep-C数据线,`AI-01开发板`将重新上电运行前面烧录的程序,并输出`Hello World`:

在进行下一步操作之前,需要点击上述信息输出界面右则各任务输出窗口的`回收站图标`终止任务,否则后续操作中,烧录和监视串口会有问题。

成功完成以上各项操作后,ESP-IDF开发环境就准备好了,可以进行后续操作,编译小智AI系统硬件设备的开源代码了。

3. 编译运行DOIT 小智AI 开源代码(SoftAP 配网)

因为`AI-01开发板`使用的是乐鑫ESP32-C2 + 专属定制的离线语音模组,在小智AI官方的开源代码中没有适配,所以四博智联基于小智AI官方的开源代码,提供了对应的分支版本DOIT_AI,和官方版本的功能没有差异。

3.1 下载源码

DOIT_AI的源码,可以从DOIT_AI https://github.com/SmartArduino/需要自己学会如何访问GitHub,并且会下载DOIT_AI最新版本代码:

在上述界面中,可以使用`git`工具`clone`源码,也可以直接下载源码的压缩包。

3.2 设置编译参数

使用VSCode打开下载的源码,参考前面`hello world`,设置串口端口号和芯片类型esp32c2。

另外,还需要通过`SDK配置编辑器(menuconfig)`,开设置Xiaozhi的`Board Type`为`Doit-AI-01-Kit`:

保存设置后,点击底部的构建来编译源码:

编译成功后,显示如下信息:

3.3 烧录运行

在下一步操作之前,需要从电脑先断开`AI-01开发板`的Tyep-C数据线,再按住`AI-01开发板`上的按键不放,然后重新连接到电脑上,让`AI-01开发板`进入下载固件模式。连接完成后,可以松开按键。

操作完成后,再点击底部的`ESP-IDF:构建、烧录和监视`图标,并在顶部弹出列表中选择`UART`:

界面会显示如下信息,表示正在烧录固件:

如果执行后,出现下面的错误,说明串口被占用,或者连接不正确:

烧录完成后,显示信息如下:

当VSCode下部的窗口,显示上述信息后,重新插拔`AI-01开发板`的Tyep-C数据线,`AI-01开发板`将重新上电运行前面烧录的程序,并输出小智AI运行的信息:

3.4 配网运行

首次烧录运行后,会输出上述配网信息,并语音播报进入`配网模式`。

此时,使用手机连接`Xiaozhi`开头的热点:

就能进入配网界面,设置当前环境所使用的WiFi名称和密码:

配置成功后,`AI-01开发板`运行的小智AI系统会自动重启,并输出如下的信息:

3.5 激活设备

首次配置网络后,会提示需要激活设备,并语音播报激活信息。访问小智AI服务平台官网https://xiaozhi.me/,进入控制台注册账号并登录:

然后,添加新的智能体:

添加后,点击添加设备:

然后输入播报或者显示的数字:

激活成功后,系统会自动重新启动,启动完成,会听到嘟的一声响:

现在,就可以使用`你好小智`唤醒小智AI,然后进行对话了。也可以使用按键进行唤醒,然后进行对话。

4. 编译运行DOIT 小智AI 开源代码(小程序Blufi 配网)

网页在线烧录体验: ++https://xiaozhi.doit.am/details.html?id=75++

4.1 下载源码

DOIT_AI的源码,可以从DOIT_AI https://github.com/SmartArduino/需要自己学会如何访问GitHub,并且会下载DOIT_AI最新版本代码:

在上述界面中,可以使用`git`工具`clone`源码,也可以直接下载源码的压缩包。

4.2 设置编译参数

使用VSCode打开下载的源码,参考前面`hello world`,设置串口端口号和芯片类型esp32c2。

通过`SDK配置编辑器(menuconfig)根据下图配置选项:

1.Board Type选择`Doit-AI-01-Kit`切换Net Configuration Mode为`Blufi`

2.搜索MBEDTLS_DHM_C打开选项红框中的选项

3.打开Bluetooth选项

4.搜索BT_GATTC_ENABLE,关闭下图红框中的选项

5.搜索BT_BLE_SMP_ENABLE,关闭下图红框中的选项

6.搜索BT_NIMBLE_ENABLED,将HOST选择为NimBLE-BLE only

7.搜索BT_NIMBLE_ROLE_CENTRAL,将Enable BLE Central role选项关闭

8.搜索BT_NIMBLE_ROLE_OBSERVER,将Enable BLE Observer role选项关闭

9.搜索BT_NIMBLE_50_FEATURE_SUPPORT,将Enable BLE 5 feature选项关闭

10.搜索BT_NIMBLE_SECURITY_ENABLE,把选项Enable BLE SM feature选项关闭

  1. 搜索BT_NIMBLE_CRYPTO_STACK_MBEDTLS,把Override TinyCrypt with mbedTLS for crypto computations选项关闭
  1. 搜索BT_NIMBLE_BLUFI_ENABLE,打开选项Enable blufi functionality
  1. 搜索BT_CTRL_RUN_IN_FLASH_ONL,打开选项Reduce BLE IRAM usage (READ DOCS FIRST) (EXPERIMENTAL)

保存设置后,点击底部的构建来编译源码,编译成功后,显示如下信息:

4.3 烧录运行

在下一步操作之前,需要从电脑先断开`AI-01开发板`的Tyep-C数据线,再按住`AI-01开发板`上的按键不放,然后重新连接到电脑上,让`AI-01开发板`进入下载固件模式。连接完成后,可以松开按键。

操作完成后,再点击底部的`ESP-IDF:构建、烧录和监视`图标,并在顶部弹出列表中选择`UART`:

界面会显示如下信息,表示正在烧录固件:

如果执行后,出现下面的错误,说明串口被占用,或者连接不正确:

烧录完成后,显示信息如下:

当VSCode下部的窗口,显示上述信息后,重新插拔`AI-01开发板`的Tyep-C数据线,`AI-01开发板`将重新上电运行前面烧录的程序,并输出小智AI运行的信息:

4.4 配网运行

首次烧录运行后,会输出上述配网信息,并语音播报进入`配网模式`。

此时,手机微信打开`四博小助手小程序`,可以扫描下图二维码:

进入小程序后,首先创建一个新的智能体,智能体的名称可以自行设置,如下图所示:

创建完成后,点击`设备配置`

点击`Blufi配网添加`

这时候可以扫描到对应的小智设备,点击进行配网,不同设备的MAC地址(78:1C:3C:4C:34:10)不同,图中仅做参考:

按照小程序提示的流程输入对应的wifi名称和密码:

配置成功后,`AI-01开发板`运行的小智AI系统会自动重启,现在,就可以使用`你好小智`唤醒小智AI,然后进行对话了。也可以使用按键进行唤醒,然后进行对话。

5. 搭建开源后端服务

在`AI-01开发板`运行的小智系统,默认会连接到小智AI官方的服务平台。
我们可以使用开源后端服务的源码,来运行自己的小智AI后端服务,让`AI-01开发板`连接到自己的后端服务。

5.1 下载后端服务源码

https://github.com/xinnan-tech/xiaozhi-esp32-server/releases 可以下载最新发布的开源后端服务的源码:

下载后解压源码,找到如下的目录,准备后续的操作:

5.1 下载语音识别模型文件

开源后端服务可以在本地运行语音识别服务(ASR),但需要下载对应的模型文件:

https://modelscope.cn/models/iic/SenseVoiceSmall/resolve/master/model.pt

下载后,将该文件放置到`main/xiaozhi-server/models/`目录中:

5.2 安装 Anaconda

要运行开源后端服务,还需要Anaconda来安装python环境运行。从 https://www.anaconda.com/download/success

下载Windows对应的Anaconda安装包

https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Windows-x86_64.exe

下载完成后,打开安装包安装,并在配置时,全部打钩:

安装完成后,搜索`Anaconda`,打开`Anaconda Prompt`:

打开后,进入`xiaozhi-server`对应的目录,并执行下面的命令以查看conda版本,检测是否安装成功:

conda -V

5.3 创建Python运行环境

然后,执行下面的命令,创建需要的Python运行环境:

conda create -n xiaozhi-esp32-server python=3.10 -y

执行成功后,会输出如下的信息:

再依次执行下面的每一条命令,使用创建的环境,并安装需要的支持包:
```
conda activate xiaozhi-esp32-server

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

conda install libopus -y
conda install ffmpeg -y

安装完成后,执行下面命令,检验是否安装正确:

python -V
conda list opus
conda list ffmpeg

最后,执行下面的命令,安装开源后端服务所依赖的包:

安装成功后,会输出如下信息:

5.4 获取大模型apikey

开源后端服务运行时,需要调用LLM(大语言模型)接口,完成AI对话工作。
默认的LLM使用的是ChatGLM,去ChatGLM的官网https://bigmodel.cn/注册登录,然后添加新的Api Key,就可以免费使用:

5.5 配置后端服务

要运行小智后端服务,还需要做一些基础的配置。

首先,如果电脑上有多块网卡,或者运行了VMWare等虚拟机服务的话,上面显示的IP地址不一定是实际联网使用的,可以查看网络连接的属性,来获取当前使用的IP地址:

然后,执行下面的命令生成默认的配置文件:

mkdir data
copy config.yaml data\.config.yaml

再用VSCode打开后端服务源码目录xiaozhi-server,并打开data目录中的.config.yaml修改配置:

根据配置中的提示,修改如下位置:

修改websocket的地址,使用前面查看网络属性得到的IPv4地址,端口使用8000即可。

ChatGLMLLM的api key:

将ChatGLMLLM的api_key,设置为前面获取的ChatGLM的apikey即可。

5.6 运行后端服务

上述操作都成功完成后,执行下面的命令,运行后端服务:
```
python app.py
```
运行成功后,将会出现如下的信息:

如果出现下面的提示,一定要点击允许:

根据前面获取的IPv4地址,最终的服务地址如下:

* OTA接口地址:http://192.168.1.182:8002/xiaozhi/ota/
* WebSocket接口地址:ws://192.168.1.182:8000/xiaozhi/v1/

5.7 测试后端服务

打开如下目录中的test.html,可以通过网页测试后端服务是否正常:

在测试界面中,填入上一步最终得到的OTA接口地址和WebSocket接口地址,就可以连接测试:

5.8 配置说明

开源后端服务配置文件中,有很多方面参数可以配置。
例如可以设置AI的人设,以及调用的LLM和TTS配置:

开源后端服务默认使用的LLM是ChatGLM,免费且速度快,但智能的能力并不是最好的,而使用的语音合成(TTS)服务是EdgeTTS,免费但是速度不快。
如果要想使用更好的效果,可以详细查看开源后端服务配置文件的说明,去开通相应平台的账号,获取对应的连接参数填入:

并启用对应的配置:

设置好对应的配置以后,重新启动后端服务即可生效。

另外,上面搭建的是简化版本的开源后端服务,让大家快速体验自己搭建整套小智服务系统。
如果参考开源后端服务的文档,搭建完整版的后端服务,还包括管理界面,功能非常的强大:

6. 设置AI-01开发板OTA地址

现在开源后端服务已经成功运行了,只需要将`AI-01开发板`OTA地址,设置为上一节中最后获取的OTA接口地址,就可以连接到自己的后端服务了。

6.1 配置OTA地址

使用VSCode打开设备端DOIT_AI源码,参考之前`设置编译参数`,通过`SDK配置编辑器(menuconfig)`,设置OTA地址:

6.2 重新编译源码

设置了OTA参数后,点击底部的构建项目图标,重新编译源码:

构建成功后,会输出如下信息:

6.3 烧录运行

在烧录运行之前,需要把之前打开的监视窗口关闭,否则串口无法重复连接。

在下一步操作之前,需要从电脑先断开`AI-01开发板`的Tyep-C数据线,再按住`AI-01开发板`上的按键不放,然后重新连接到电脑上,让`AI-01开发板`进入下载固件模式。连接完成后,可以松开按键。

操作完成后,再点击底部的`ESP-IDF:构建、烧录和监视`图标,自动完成编译、烧录、监视操作:

烧录完成后,会输出如下的信息:

待输出上面信息后,重新插拔`AI-01开发板`的Tyep-C数据线,`AI-01开发板`将重新上电运行前面烧录的程序,并输出小智AI运行的信息,并听到嘟的一声响:

现在,说`你好小智`唤醒小智AI,或者使用按键唤醒小智AI,开始对话:

从上面的输出信息可以看到,现在使用的是自己的后台服务地址了。

查看后端服务的输出日志,可以看到请求和返回的过程:

7. 演示效果

下面的演示中,服务端配置中,使用了DoubaoLLM和DoubaoTTS:

具体演示效果如下:

,时长01:34

从上面的演示中可以看到,使用`AI-01开发板`和开源后端服务搭建环境,可以顺利的运行提供服务,让我们能够拥有自己的小智服务系统了。
另外,演示环境是在本地电脑搭建的,如果是在服务器上搭建的,反馈的速度会更快。如果有充足的显卡资源,还可以自建LLM服务和TTS服务。

8. 鸣谢

* 感谢虾哥开源小智AI设备端源码:https://github.com/78/xiaozhi-esp32

*感谢开源团队开发后端服务:https://github.com/xinnan-tech/xiaozhi-esp32-server

*本项目开源地址:https://github.com/SmartArduino/DOIT_AI

相关推荐
试着43 分钟前
【投资学习】腾讯控股(0700.HK)
大数据·人工智能·业界资讯·腾讯
百泰派克生物科技43 分钟前
液相色谱-质谱(LC-MS)肽段分析
人工智能·生物学·质谱·实验外包
刘洪峰IoT44 分钟前
【睿擎派】CANOpen总线之IO模块读写(DS401协议)
物联网·睿擎派
CodeCraft Studio1 小时前
让项目管理更智能:基于 DHTMLX Gantt + AI 的自然语言项目构建方案
人工智能·项目管理·甘特图·dhtmlx·dhtmlx gantt·gantt
合合技术团队1 小时前
论文解读-潜在思维链推理的全面综述
大数据·人工智能·深度学习·大模型
大千AI助手1 小时前
贝叶斯错误率:机器学习性能的理论极限
人工智能·机器学习·贝叶斯·大千ai助手·贝叶斯误差率·ber·模型性能
数据智研1 小时前
【数据分享】浙江统计年鉴(1984-2024)
大数据·人工智能
北京耐用通信1 小时前
协议转换新标杆!耐达讯自动化Ethernet IP转CC-Link方案,让编码器‘说话‘更高效“
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
科普瑞传感仪器1 小时前
从“盲操作”到“智能感知”:六维力传感器解决装配卡死的创新方案
人工智能·科技·物联网·机器人·无人机·1024程序员节