从此以后,将硬件接入大语言模型(LLM)将变得如此简单~

一、前言

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

image.png

什么是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

下载地址: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

在这里插入图片描述

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

pm2 start ./index.js -i max

五、 客户端代码上传

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

然后将仓库中 client/client.ino 文件中的内容复制进去,修改代码中的 wifi 信息,然后上传到开发板中。

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

五、 引脚接线

INMP441(麦克风) 接线

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

Max98357A(放大器) 接线

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

LED 接线

ESP32-s3LED
GNDGND
18正极

六、 完成

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

七、 最后

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/748920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Databend 怎么看 OpenAI 收购实时数仓 Rockset?

6月21日(上周五),OpenAI 官方宣布完成对实时分析数据库 Rockset 的收购,一时引起数据库圈和 AI 圈热议,很多朋友也来询问 Databend 如何看待这个事件。这次收购表明了市场对实时数据分析和数据处理解决方案的高度重视,数据是 AI 发…

Win10扩充C盘(把其他盘存储空间分给C盘)

C盘虽然没有安装任何软件,但无奈安装某些软件(例如VS,QuarC等)总会占用C盘容量,且C盘内存很小(只有60G左右),看着D盘的三四十空闲内存,决定把D盘内存分给C盘30G&#xff…

C++入门 list的模拟实现

目录 list的节点类 list的迭代器类 list的模拟实现 要模拟实现list,必须要熟悉list的底层结构以及其接口的含义,通过之前学习,这些内容已基本掌握,现在我们来模拟实现list。 参照带头双向循环链表的结构,我们可以建…

ConvMixer 论文与代码解析

paper:Patches Are All You Need? official implementation:https://github.com/locuslab/convmixer 精度上去了,推理速度只有卷积和ViTs的四分之一! 出发点 文章讨论了卷积神经网络(CNN)在视觉任务中…

#### 广告投放 ####

以巨量引擎为例: 计费模式 eCPM(expected Cost Per Mile,估计千次展示收入) 概括: ecpm为千次展示的预估收益,是广告平台用来给广告排序的指标。 注意是展示而不是千次点击收益,展示了可能不…

从0到1:亮数据浏览器,为数据采集工作注入全新动力

亮数据浏览器提升数据采集效率 一、 导言1.1 引入亮数据浏览器的重要性1.2 简要介绍本文将涉及的主题和内容 二、 亮数据浏览器简介2.1. 什么是亮数据浏览器2.2. 亮数据浏览器的特点和优势 三、优化数据采集的核心功能3.1 自动化数据采集3.1.1 通过亮数据浏览器实现自动化数据采…

LangChain入门之 GPT 和小范大人不太熟?

前言 嗨,大家好!我是海鸽。 《庆余年2》刚刚完结,热度不减,我忍不住好奇:我们的AI伙伴GPT,是否也对剧中那位机智过人的小范大人有所耳闻? 不仅如此,最近我们还尝试了LangChain的调…

Xcode安装Simulator失败问题解决方法

Xcode安装Simulator_Runtime失败,安装包离线安装保姆级教程 Xcode更新之后有时候会提示要安装模拟器运行时环境,但是用Xcode更新会因为网络原因,我觉得基本上就是因为苹果服务器的连接不稳定导致的,更可气的是不支持断点续…

介绍几种 MySQL 官方高可用方案

前言: MySQL 官方提供了多种高可用部署方案,从最基础的主从复制到组复制再到 InnoDB Cluster 等等。本篇文章以 MySQL 8.0 版本为准,介绍下不同高可用方案架构原理及使用场景。 1.MySQL Replication MySQL Replication 是官方提供的主从同…

记录dinky0.6.7+flink1.14.5集成问题

先说一句mmp,这个jar包冲突搞吐我。如果有遇到math3问题需要注意少个包 看相关issue 以下为flink的lib目录 一、yarn-application和perjob模式 yarn session模式不依赖dlink-app-1.14-0.6.7-jar-with-dependencies.jar这个包,。但是yarn-application…

新能源行业知识体系-------蒙西电网需求侧响应

新能源行业知识体系-------主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/139946830 目录 一、背景介绍二、需求响应电能量收益介绍三、超额回收需求响应减免收益介绍四、参与需求侧响应五、蒙西电力现货特点六、交易中…

1012:Joseph

网址如下&#xff1a; OpenJudge - 1012:Joseph 其中一个解法 只想到了一个快速找到下一位处决的人的方法&#xff0c;本质上还是遍历&#xff0c;暂时没想到更优的方法了 代码如下&#xff1a; #include<cstdio> int k;bool judge(int tt, int m, int r){if(tt k) …

GPU技术全景:推动未来计算的新动力-4

7.中国厂家 在中国市场&#xff0c;也有几家本土企业在GPU领域崭露头角&#xff0c;虽然市场份额相对较小&#xff0c;但在国产替代和自主可控的浪潮下发展迅速&#xff0c;包括但不限于&#xff1a; •沐曦集成电路、壁仞科技、燧原科技、登临科技、摩尔线程等&#xff0c…

信号处理——时频分析

经典傅里叶变换的限制&#xff1a; 1、只能反映信号的整体特性&#xff1b;&#xff08;完全是时域或频域&#xff09; 2、要求信号满足平稳条件&#xff1b; 3、必须获得时域中的全部信息。 所以引入时频分析&#xff0c;同时使用时间和频率的联合函数来表示信号。 1 时频…

单段时间最优S型速度规划算法

一&#xff0c;背景 在做机械臂轨迹规划的单段路径的速度规划时&#xff0c;除了参考《Trajectory Planning for Automatic Machines and Robots》等文献之外&#xff0c;还在知乎找到了这位大佬 韩冰 写的在线规划方法&#xff1a; https://zhuanlan.zhihu.com/p/585253101/e…

Java基础知识-线程

Java基础知识-线程 1、在 Java 中要想实现多线程代码有几种手段&#xff1f; 1. 一种是继承 Thread 类 2. 另一种就是实现 Runnable 接口 3. 最后一种就是实现 Callable 接口 4. 第四种也是实现 callable 接口&#xff0c;只不过有返回值而已 2、Thread 类中的 start() 和 …

AI大模型会有意识的出千吗?

1. 引言 1.1 研究背景&#xff0c;AI系统中的规范游戏问题 在人工智能(AI)系统的发展过程中&#xff0c;规范游戏(specification gaming)一直是一个令研究者们头疼的问题。规范游戏指的是AI系统学习到一些意想不到的行为&#xff0c;这些行为虽然能够获得高奖励&#xff0c;但…

万字长文,解读大模型技术原理(非常详细)零基础入门到精通,收藏这一篇就够了

大模型是指具有大规模参数和复杂计算结构的机器学习模型。 本文从大模型的发展历程出发&#xff0c;对大模型领域的各个技术细节进行详细解读&#xff0c;供大家在了解大模型基本知识的过程中起到一定参考作用。 一、大模型的定义 大语言模型作为一个被验证可行的方向&#x…

客户案例|某 SaaS 企业租户敏感数据保护实践

近年来&#xff0c;随着云计算技术的快速发展&#xff0c;软件即服务&#xff08;SaaS&#xff09;在各行业的应用逐渐增多&#xff0c;SaaS 应用给企业数字化发展带来了便捷性、成本效益与可访问性&#xff0c;同时也带来了一系列数据安全风险。作为 SaaS 产品运营服务商&…

注意!!2024下《系统架构设计师》易混淆知识点来了,赶紧收藏

宝子们&#xff0c;在复习软考系统架构设计师中&#xff0c;是不是觉得有很多知识点含义比较相近&#xff0c;很多友友刚看的时候&#xff0c;估计会像我一样把它们弄混&#xff0c;作为一个软考老鸟&#xff0c;在这里给大家整理了系构学习过程中易混淆的知识点&#xff0c;大…