一、项目简介
小智AI聊天机器人是一款基于ESP32开发板智能语音交互设备,旨在以低成本、高扩展性的方式实现AI语音对话功能。项目通过集成语音识别(ASR)、自然语言处理(NLP)和语音合成(TTS)技术,结合通义千问(Qwen)、DeepSeek等大语言模型(LLM),支持多语言实时对话与个性化角色设定(如“幽默助手”、“温柔女友”)。硬件方面,设备兼容Wi-Fi/4G联网、OLED/LCD屏幕、声纹识别(SenseVoice)及离线唤醒(ESP-SR)模块,用户可通过3D打印外壳和模块化设计快速搭建原型。项目采用MIT开源协议,提供一键烧录固件(如`xiaozhi-esp32`),无需编程即可运行,同时支持进阶开发者自定义功能。凭借低门槛开发、灵活AI模型集成及丰富的硬件生态,小智AI聊天机器人既适合教育领域的编程教学与多语种学习,也可应用于智能家居控制、情感陪伴及商业客服场景。
二、已实现功能
Wi-Fi / ML307 Cat.1 4G
BOOT 键唤醒和打断,支持点击和长按两种触发方式
离线语音唤醒 ESP-SR
流式语音对话(WebSocket 或 UDP 协议)
支持国语、粤语、英语、日语、韩语 5 种语言识别 SenseVoice
声纹识别,识别是谁在喊 AI 的名字 3D Speaker
大模型 TTS(火山引擎 或 CosyVoice)
大模型 LLM(Qwen, DeepSeek, Doubao)
可配置的提示词和音色(自定义角色)
短期记忆,每轮对话后自我总结
OLED / LCD 显示屏,显示信号强弱或对话内容
支持 LCD 显示图片表情
支持多语言(中文、英文)
立创·实战派 ESP32-S3 开发板
乐鑫 ESP32-S3-BOX3
M5Stack CoreS3
AtomS3R + Echo Base
AtomMatrix + Echo Base
神奇按钮 2.4
微雪电子 ESP32-S3-Touch-AMOLED-1.8
LILYGO T-Circle-S3
虾哥 Mini C3
Moji 小智AI衍生版
璀璨·AI吊坠
无名科技Nologo-星智-1.54TFT
SenseCAP Watcher
compact_wifi_board.cc中),各种物联网设备通过ThingManager注册到系统中ThingManager分发给对应的设备执行ThingManager收集并发送回AI服务器,保持状态同步灯(Lamp)
灯是一个简单的物联网设备示例,通过GPIO控制LED的开关状态:
class Lamp : public Thing {private:gpio_num_t gpio_num_ = GPIO_NUM_18; // GPIO引脚bool power_ = false; // 灯的开关状态public:Lamp() : Thing("Lamp", "一个测试用的灯") {// 初始化GPIOInitializeGpio();// 定义属性:power(表示灯的开关状态)properties_.AddBooleanProperty("power", "灯是否打开", [this]() -> bool {return power_;});// 定义方法:TurnOn(打开灯)methods_.AddMethod("TurnOn", "打开灯", ParameterList(), [this](const ParameterList& parameters) {power_ = true;gpio_set_level(gpio_num_, 1);});// 定义方法:TurnOff(关闭灯)methods_.AddMethod("TurnOff", "关闭灯", ParameterList(), [this](const ParameterList& parameters) {power_ = false;gpio_set_level(gpio_num_, 0);});}};
扬声器(Speaker)
class Speaker : public Thing {public:Speaker() : Thing("Speaker", "扬声器") {// 定义属性:volume(当前音量值)properties_.AddNumberProperty("volume", "当前音量值", [this]() -> int {auto codec = Board::GetInstance().GetAudioCodec();return codec->output_volume();});// 定义方法:SetVolume(设置音量)methods_.AddMethod("SetVolume", "设置音量", ParameterList({Parameter("volume", "0到100之间的整数", kValueTypeNumber, true)}), [this](const ParameterList& parameters) {auto codec = Board::GetInstance().GetAudioCodec();codec->SetOutputVolume(static_cast<uint8_t>(parameters["volume"].number()));});}};
七、UI展示

1、本网站名称:帝企吧
2、本站永久网址:https://www.diqiba.com
3、本网站的文章部分内容可能来源于网络及作者投稿,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
7、本站所有资源来源于互联网,仅用于学习及参考使用,切勿用于商业用途,如产生法律纠纷本站概不负责! 8、资源除标明原创外均来自网络转载,版权归原作者所有,若侵犯到您权益请联系我们删除,我们将及时处理! 9、若您需使用非免费的软件或服务,请购买正版授权并合法使用!

评论(0)