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

news2024/10/7 12:26:04

一、前言

本文中将使用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 支持下吧~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每个 Node.js 开发人员都应该知道的13个库(上)

1. Sequelize Sequelize是一个基于promise的Node.js对象关系映射器(ORM),它使开发人员更容易使用关系数据库。 支持PostgreSQL,MySQL,MariaDB,SQLite和更多数据库。 Sequelize使用JavaScript对象对数据库…

如何在浏览器中添加控制播放速度的插件-Global Speed

有时候我们觉得看视频的过程中视频播放的太慢了,希望能够加快一点播放的速度,Edge里面有很多有意思的插件。例如、Global Speed就可以控制视频播放的速度。 我们打开浏览器,点击设置,也就是三个点。 然后找到扩展,点…

LeeCode 994. 腐烂的橘子

原题链接994. 腐烂的橘子 - 力扣(LeetCode) 思路:采用bfs遍历图,将烂橘子加入队列,然后将被烂橘子感染的橘子也加入队列,bfs的具体细节就不多说了,可以自己去搜,很简单,…

flink使用StatementSet降低资源浪费

背景 项目中有很多ods层(mysql 通过cannal)kafka,需要对这些ods kakfa做一些etl操作后写入下一层的kafka(dwd层)。 一开始采用的是executeSql方式来执行每个ods→dwd层操作,即类似: def main(…

Java洗鞋小程序预约系统源码

💥洗鞋神器来袭!轻松预约,让你的鞋子焕然一新👟 🎉 告别洗鞋烦恼,洗鞋预约小程序来啦! 你是不是常常为洗鞋而烦恼?手洗太累,送去洗衣店又贵又麻烦。现在,好…

什么是一维正态分布?

正态分布,也以高斯分布而被人熟知。换句话说,正态分布也称为高斯分布。我们都清楚正态分布是用于处理连续型数据的好工具,尤其是当我们的研究对象符合正态分布时。 对于一维正态分布这个名字我其实比较不认可。在英文中,它叫“Un…

电脑怎么保存图片?4个方法,快速保存!

在数字时代的浪潮中,我们与图片的关系愈发密切。从社交媒体上的精美瞬间,到工作项目中的专业图表,再到个人收藏夹里的珍贵回忆,图片已然成为我们生活与工作中不可或缺的一部分。 然而,你是否曾想过,这些看…

拿3个点差价,这家骑手外包公司一年收入近10亿……

最近,有这么一家名不经传的公司突然走进大众视野,因为其冲击资本市场的一份招股书,戳到了不少吃瓜群众的神经…… 这家公司名为博尔捷,前不久,其正式向港交所递交了招股书。招股书数据显示,这家公司2021年至…

【java】【控制台】【javaSE】 初级java家教管理系统控制台命令行程序项目

更多项目点击👆👆👆完整项目成品专栏 【java】【控制台】【javaSE】 初级java家教管理系统控制台命令行程序项目 获取源码方式项目说明:功能点数据库涉及到: 项目文件包含:项目运行环境 :截图其…

零点到两点,我部署了一个es

一开始的准备 实在是水平有限,Clash虚拟机网出不去,研究了LAN方案,还在咸鱼买了一单,搞不定,没辙,那我老老实实下载tar包得了,就不docker了 下载安装 直接官网给它安个es https://www.elasti…

js异常处理方案

文章目录 异常处理方案同步代码的异常处理Promise 的异常处理async await 的异常处理 感谢阅读,觉得有帮助可以点点关注点点赞,谢谢! 异常处理方案 在JS开发中,处理异常包括两步:先抛出异常,然后捕获异常。…

理解MySQL核心技术:外键的概念、作用和应用实例

引言 在数据库管理系统(DBMS)中,外键(Foreign Key)是维持数据一致性和实现数据完整性的重要工具。本文将详细介绍MySQL外键的基本概念、作用,以及相关的操作指南和应用实例,帮助读者掌握并灵活…

MHA、MMM高可用方案及故障切换

目录 一、MHA高可用方案 1、MHA的组成 2、MHA的工作原理 3、部署MHA架构 第一部分:一主两从数据库架构部署 1、全部更改主机名、初始化操作、开启mysql服务、设置主机名管理、时间同步 2、MySQL服务器做主从复制 3、测试主从效果 第二部分:MHA架…

mysql岗位实习----教务系统管理

教务管理系统 一、DDL CREATE TABLE users (user_id int(11) NOT NULL AUTO_INCREMENT COMMENT 用户ID,username varchar(50) NOT NULL COMMENT 用户名,password varchar(255) NOT NULL COMMENT 密码,gender enum(男,女) NOT NULL COMMENT 性别,email varchar(100) DEFAULT N…

Flutter 小技巧之为什么推荐 Widget 使用 const

今天收到这个问题,本来想着简单回复下,但是感觉这个话题又可以稍微展开讲讲,干脆就整理成一篇简单的科普,这样也能更方便清晰地回答这个问题。 聊这个问题之前,我们需要把一个“老生常谈”的概念拿出来说,那…

推荐一个AI导航网站和一篇文章:精益开发

第49期 AI 驿站 一个超级全面AI、的导航网站 https://www.51mskd.com/ “精益开发”的精益是什么? 最流行的软件开发模式,现在是“敏捷开发”(agile development)。 但是,很多人不知道,敏捷只是一种价值…

企业数据治理的下一步是数据资产管理?

随着信息技术的飞速发展和数字化转型的深入推进,企业数据已成为驱动业务增长和创新的核心要素。当企业数据治理工作取得显著成效后,如何进一步发挥数据的价值,实现数据资产的有效管理,成为企业面临的重要课题。 数据治理的基石作用…

倒计时日期 桌面倒数日 重要日期倒计时提醒

在工作、学习、生活中,我们往往会有很多重要的日子需要我们去标记。在工作中的季度考核、学习中的关键时间点、生活中的各种纪念日……等等,都需要我们去对未来这些重要的时间节点做一个倒计时提醒。 日期倒计时让我们对未来的时间,有一个非…

Kafka入门到精通(一)-安装Scala

Scala 简介 Scala 是 Scalable Language 的简写,意味着这种语言设计上支持大规模软件开发,是一门多范式的编程语言,Scala 语言是由 Martin Odersky 等人在 2003 年开发的,并于 2004 年首次发布。Scala 运行于 Java 平台&#xff0…

应用案例 | Panorama SCADA:开创性的铁路电气控制系统

案例概况 客户:英国铁路网运营商Network Rail 合作伙伴:Telent Technology Services Ltd 应用:实现对铁路牵引电网的高效管理与精准控制 应用产品:宏集Panorama E2 SCADA系统 一、应用背景 英国铁路网运营商Network Rail计划…