我嘞个豆,将物件接入AI这么简单?(esp32接入AI)
创始人
2024-11-30 17:05:09
0

一、前言

本文中将使用ESP-AI开源库来实现将硬件接入AI,整个过程将非常的轻松~

image.png

本库支持的平台很多,包括 TTS 支持各种音色等。

什么是ESP-AI?

为你的开发板提供全套的AI对话方案,包括但不限于 ESP32 系列开发板的 IAT+LLM+TTS 集成方案。

交流群

QQ 交流群: 854445223

技术栈

ESP-AI 分为了服务端和客户端两套代码:

  • 服务端是封装好的库,直接引用后执行即可,除开必要的配置外,一行代码就可以运行起来。服务端使用Nodejs 开发。
  • 客户端封装好的文件,引入到代码中即可。客户端使用 Arduino 开发。

整体上技术栈为 javascriptc 两种语言的组合。 不用担心,都是配置化的,无需担心不会写这两语言。你只需要大概能看懂配置即可~

插件地址

ESP-AI 仓库地址:https://github.com/wangzongming/esp-ai

效果演示

【超快速的ESP32 AI对话方案。已开源!快接入你的机器人吧~】 https://www.bilibili.com/video/BV1xS421o7hi/?share_source=copy_web&vd_source=041c9610a29750f498de1bafe953086b

二、软件准备

1. 安装 Nodejs

下载地址:https://nodejs.org/en/blog/release/v15.0.0

滚动到最下面,然后选择适合自己电脑位数的安装包下载后安装即可。

2. 安装 Arduino IDE(v2.x)

下载地址:https://www.arduino.cc/en/software
选择合适的安装包安装即可。

三、硬件准备

下面是按演示视频中的配置来的

硬件数量价格
esp32s3(N16R8)125
INMP44118
Max98357A15
LED10.5
小喇叭16
面包板15
杜邦线若干1

三、服务端代码

  1. 新建一个目录(最好用英文名字)
  2. 在目录中打开终端
  3. 在终端中执行npm i esp-ai 命令,用于安装ESP-AI
  4. 在目录中新增一个 index.js 文件
  5. 在文件中写入下面代码
const espAi = require("esp-ai"); espAi({      api_key: {         // 讯飞:https://console.xfyun.cn/services/iat  。打开网址后,右上角三个字段复制进来即可。         xun_fei: {             appid: "xxx",             apiSecret: "xxx",             apiKey: "xxx",             // LLM 版本             llm: "v3.5",               }, }); 

注意代码中实际上就执行了一个方法,然后给方法传入了一些参数,比如上面的案例中传入了讯飞的key, 这时候需要先去注册讯飞账号,然后将key放进去即可。

四、服务端运行

执行下面代码即可运行服务

node ./index.js 

image.png

生成环境中请使用 pm2 来运行服务以保证服务的可靠和性能。

pm2 start ./index.js -i max 

五、 客户端代码上传

头文件

需要提前将/client/libraries中的文件下载放到Arduino IED的依赖目录中,这个目录默认在:C:\Users\用户名\Documents\Arduino\libraries(路径没有的话,自己百度一下在 arduino ide中查找这路径的方法)

注意:将仓库中libraries里面的压缩包都解压出来,然后放到本地中。

除此之外,还需要提前安装好 esp32(v2.x,版本不能大于2) 开发板环境。

文件名备注
xiao_ming_tong_xue_inferencing离线识别的模型
esp-ai主要依赖
arduino-audio-tool最新版IDE可以直接搜索安装
arduinoWebSockets最新版IDE可以直接搜索安装

代码上传

客户端代码位于仓库代码的 example/example.ino中,需要在本地新增一个 example 目录(必须是这个名字),
然后在目录中新增一个 example.ino 文件。

然后将仓库中 example/example.ino 文件中的内容复制进去,修改 example.ino 代码中的下面这几个配置。

// [必  填] 是否调试模式, 会输出更多信息 bool debug = true; // [必  填] wifi 配置: { wifi 账号, wifi 密码 }  注意:要用双引号! ESP_AI_wifi_config wifi_config = { "oldwang", "oldwang520" }; // [必  填] 服务配置: { 服务IP, 服务端口 } ESP_AI_server_config server_config = { "192.168.1.5", 8080 }; // [必  填] 离线唤醒方案:{ 方案, 识别阈值 }, "edge_impulse" | "diy",为 "diy" 时可调用 esp_ai.wakeUp() 方法进行唤醒 ESP_AI_wake_up_config wake_up_config = { "edge_impulse", 0.7 };  

因为有一个离线语音识别模型,首次编译会很慢,配置不好的电脑至少半个小时以上的时间~

六、 引脚接线

INMP441(麦克风) 接线

ESP32-s3INMP441
3v3VDD
GNDGND
GNDL/R
5WS
4SCK
6SD

Max98357A(放大器) 接线

ESP32-s3Max98357A
3v3VDD
GNDGND
17LRC
16BCLK
15DIN

LED 接线

ESP32-s3LED
GNDGND
18正极

七、 完成

到这里就完成啦。
对着麦克风喊一声 “小明同学” 吧。

八、 最后

该仓库还在持续完善中,开源不易,点个 Star 支持下吧~

相关内容

热门资讯

截至目前!wepoker透视脚... 截至目前!wepoker透视脚本免费app(透视)其实是真的辅助平台(有挂辅助)-哔哩哔哩1、实时w...
外挂积累!steampoker... 外挂积累!steampokermaster辅助,xpoker辅助助手-一直是真的有辅助方法(哔哩哔哩...
最新技巧!拱趴大菠萝挂怎么安装... 最新技巧!拱趴大菠萝挂怎么安装,打哈儿辅助,原来存在有辅助安装(证实有挂)最新技巧!拱趴大菠萝挂怎么...
为了进一步!epoker透视底... 为了进一步!epoker透视底牌(透视)果然是真的辅助平台(有挂辅助)-哔哩哔哩1、打开软件启动之后...
玩家科普!pokemmo辅助器... 玩家科普!pokemmo辅助器,如何使用掌酷十三张脚本,本来是真的有辅助神器(有挂秘籍)如何使用掌酷...
外挂策略!xpoker辅助,p... 外挂策略!xpoker辅助,pokernow辅助工具-原来一直总是有辅助技巧(哔哩哔哩)1、让任何用...
透视中牌率!wepoker免费... 透视中牌率!wepoker免费脚本咨询(透视)总是真的有辅助工具(真实有挂)-哔哩哔哩1、首先打开w...
外挂项目!德州透视是真的假的,... 外挂项目!德州透视是真的假的,聚星ai辅助工具激活码-切实一直都是有辅助攻略(哔哩哔哩)聚星ai辅助...
最新技巧!wpk俱乐部有没有辅... 您好,海贝之城有辅助吗这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩...
透视总结!wepoker有没有... 透视总结!wepoker有没有挂(透视)本来有辅助修改器(有挂教学)-哔哩哔哩1、这是跨平台的wep...