服务端搭建说明
搭建之前必须满足两点
nodejs版本:v18.20.4
npm 版本:9.3.1
如果你的npm版本不是9.3.1,请用下面命令安装以下
npm install -g npm@9.3.1 --registry=https://registry.npmmirror.com
创建配置文件
随便创建一个文件夹,并在这个文件夹里创建index.js,比如我创建了一个espai文件夹
我们用vscode打开目录,为了方便,我去掉了官方多余注释,并且这里以讯飞平台作为演示,这样代码看起来更加简洁
我们只关注和修改红框里的代码
const espAi = require("esp-ai");
const config = {
gen_client_config: ()=>({
// 调用讯飞语音识别
iat_server: "xun_fei",
iat_config: {
// 讯飞:https://console.xfyun.cn/services/iat 。打开网址后,右上角三个字段复制进来即可。
appid: "xxx",
apiSecret: "xxx",
apiKey: "xxx",
},
// 调用讯飞LLM
llm_server: "xun_fei",
llm_config: {
appid: "xxx",
apiSecret: "xxx",
apiKey: "xxx",
llm: "v4.0",
// llm_server 中可配置的其他配置项...
},
tts_server: "xun_fei",
tts_config: {
appid: "xxx",
apiSecret: "xxx",
apiKey: "xxx",
// is_clone: false, // 是否为克隆的音色
// tts_server 中可配置的其他配置项...
},
llm_init_messages: [
{ role: 'system', content: '你是小明同学,是一个无所不能的智能助手。' },
]
})
};
const espAiIns = espAi(config);
// 在合适的时机可以调用方法来在服务端实现设备操作
// espAiIns.restart("[device_id]") // 重启设备
// espAiIns.tts("[device_id]", "你好啊") // 让设备说话
// ...
注册讯飞平台
注册完成之后,打开这个网址
https://console.xfyun.cn/services/iat
我们所需要的都在这里
注意,这里有一个细节,你可能需要免费开通大模型4.0
修改配置文件
回到代码中,将APPID,APISecret,APIKey 复制到代码中
安装依赖并启动服务
npm install esp-ai --registry=https://registry.npmmirror.com
回到文件夹中,点击这里输入cmd回车
出现上面界面就表示成功了
启动服务
node ./index.js
到现在为止,服务端搭建完成
如果你想使用docker快速搭建,可以参考这篇文章
客户端搭建说明
Arduino IDE:最新版即可
Arduino IDE esp32插件: 2.x
Arduino IDE环境搭建
参考这篇文章
安装库文件
所有需要的文件都在这里
依赖文件
将依赖解压到 C:\Users\[用户名]\Documents\Arduino\libraries
(注意 用户名自己改成你电脑用户名,并且删除中括号。)
代码编译
- 创建一个文件
example/example.ino
,注意:可以在任意地方创建,比如说桌面,文件必须放到一个文件夹里,文件夹名字必须和文件一样 - 用
Arduino IDE
打开example.ino
文件 - 写入下面代码,注意改为你服务端的ip和地址,还有wifi 配置
#include <esp-ai.h>
ESP_AI esp_ai;
void setup() {
Serial.begin(115200);
// [必 填] 是否调试模式, 会输出更多信息
bool debug = true;
// wifi 配置: { wifi 账号, wifi 密码 } 注意:要用双引号!
// 不填则需要打开配网页面进行配网。
ESP_AI_wifi_config wifi_config = { "Xiaomi_FANFAN", "yangfan0522", "ESP-AI" };
// 服务地址,用开发者平台,只需要配置为空
//ESP_AI_server_config server_config = { };
// 或者配置为自己部署的服务: { 服务IP, 服务端口, "连接自己业务服务的请求参数,用多个参数&号分割,服务端用 auth 接收" }
ESP_AI_server_config server_config = { "http", "192.168.31.54", 8088, "p1=111&p2=test" };
// 离线唤醒方案:{ 方案, 识别阈值 }, "edge_impulse" | "diy",为 "diy" 时可调用 esp_ai.wakeUp() 方法进行唤醒
ESP_AI_wake_up_config wake_up_config = {};
strcpy(wake_up_config.wake_up_scheme, "asrpro"); // 唤醒方案
strcpy(wake_up_config.str, "start"); // 串口和天问asrpro 唤醒时需要配置的字符串,也就是从另一个开发版发送来的字符串
// 开始运行 ESP-AI
esp_ai.begin({debug, wifi_config, server_config, wake_up_config });
}
void loop() {
esp_ai.loop();
}
简单的解释一下,开发板和我选择的一样,服务端填这里的信息
上传代码前请检查你的 Arduino IDE 设置是否正确。这一步很重要
编译上传
编译成功
没有回复内容