当前位置: 首页 > news >正文

ESP32利用大模型做聊天机器人

ESP32功能十分强大,不仅有强大的数据处理能力,还支持海量的传感器,还自带蓝牙和wifi。

利用手边有的esp32,复刻了别人的项目,还没来得及二次开发,感觉做作者还是很用心的,功能nice,带屏幕,带麦克风,带喇叭,对接迅飞语音识别和大模型,可以直接语音对话,也可以在线播放mp3,音质一般,可能和喇叭有关,初次研究esp32语音图像处理,对硬件还不是很了解。可以唤醒和设置命令,感觉可以替代语音模块。

硬件列表,ESP-WROOM-32、INMP441全向麦克风、MAX98357 I2S音频放大器模块、喇叭、1.8寸(128x160)RGB_TFT屏幕,一共大概三十多块,ESP32和屏幕是大头一共要二十多块,其他小部件几块一个。没壳,如果能找个打印的壳,出门手机开个热点就能带着聊天了。esp32如果有就能直接使用,不需要刻意买。要语音对话,麦克风是必需的,要让设置说话,MAX98357 I2S音频放大器模块、喇叭也是必须的,tft屏幕不要也可以,省十几块,就是调试和使用没屏幕显示错误,初次接触的出问题只能打串口看log。

代码挺完善,本地开发使用vscode配个esp-idf就可以了,下载使用pio-home,都是vscode可以直接配置的插件,配置好环境,自己申请讯飞的免费API,开通大模型和语音识别功能,把获得的appid,APISecret,APIKEY等三个参数配置到代码里,编译下载一气呵成。

软件代码:GitHub - Explorerlowi/ESP32_AI_LLM: 本项目使用esp32接入讯飞星火大模型(现已支持豆包、通义千问大模型(流式调用))实现语音对话聊天功能,支持语音唤醒、连续对话、音乐播放等功能,同时外接了一块显示屏实时显示对话的内容。

WIFI配置使用网页模式,也可以改代码把家里的wifi直接写进去。不修改代码esp32系统启动后会开启一个默认的热点,热点:ESP32-Setup,初始密码为:12345678,手机或者电脑加入热点,然后访问本地网址:http://192.168.4.1,这是esp32开启的一个本地服务,用来添加mp3和添加家里的wifi,完成退出esp32就使用家里的wifi上网了。

硬件接线:

麦克风:

  • VDD -> 3.3v
  • GND -> GND
  • SD -> GPIO22
  • WS -> GPIO15
  • SCK -> GPIO4

音频放大模块:

  • Vin -> VIN
  • GND -> GND
  • LRC -> GPIO27
  • BCLK -> GPIO26
  • DIN -> GPIO25

1.8寸OLED屏幕:

  • VDD -> VIN
  • GND -> GND
  • SCL -> GPIO18
  • SDA -> GPIO23
  • RST -> GPIO12
  • DC -> GPIO32
  • CS -> GPIO5

我新手,用了一块esp32拓板,原来的大佬用的面包板,效果还是很赞的,可以和对话机器人结合,值得研究一下,喜欢的朋友可以试试,有屏幕能显示开机过程。


http://www.mrgr.cn/news/16788.html

相关文章:

  • 华为手机永久关闭自动亮度 | 使用智慧场景
  • 后端输出二进制数据,前端fetch接受二进制数据,并转化为字符输出
  • [H贪心] lc3273. 对 Bob 造成的最少伤害(贪心+排序+推公式+双周赛138_4)
  • K8S - 理解volumeMounts 中的subpath
  • 功能需求文档-自适应巡航控制ACC
  • 阻塞队列ArrayBlockingQueue与LinkedBlockingQueue
  • 学习记录:js算法(二十):子数组最大平均数 I、无重复字符的最长子串
  • 黑神话悟空-提高画质、防卡顿、修复等各种功能、各种CT表、各种存档、武器包、人物、装备替换等193+MOD合集
  • torch.nn.functional.interpolate(最近邻插值,双线性插值)
  • C语言:字符串存在哪?
  • xxe漏洞
  • 【MySQL】索引使用规则——(覆盖索引,单列索引,联合索引,前缀索引,SQL提示,数据分布影响,查询失效情况)
  • 物联网架构之CDH详解
  • 基于SSM的咖啡馆管理系统
  • 【Godot4.3】MarkDown解析和生成类 - MDdoc
  • 【MyBatis】MyBatis的一级缓存和二级缓存简介
  • 29. 双耳配对
  • FastAPI+Vue3零基础开发ERP系统项目实战课 20240831上课笔记 路径参数
  • OCI编程高级篇(十五) 设置字段数据入口
  • 【Kubernetes知识点问答题】第二篇