关于
这篇帖子是关于服务端部署的docker版本,docker版本的优势在于无需安装nodejs环境以及依赖,很多朋友在安装依赖经常会出现各种问题,而这篇帖子的意义就在于有解决你的所有问题
注意:废话多是因为怕表达不清楚,并不是这个东西难,反复试错,才会成功!
linux请使用Debian或者Ubuntu的系统
官方服务端搭建文档
https://espai.fun/guide/server-dev/
前置条件
- 一台安装了docker的服务器或者pc
- 一个esp32s3开发板
- 熟练使用客户端代码
开始部署
开始之前确保你已经搞定了客户端
Arduino IDE客户端环境搭建
参考这篇文章
这里以linux为演示,由于我习惯将任何东西都放到opt目录里,所有这次也不例外
编辑配置文件
进入目录并创建配置文件
cd /optsudo mkdir espaicd espainano index.jscd /opt sudo mkdir espai cd espai nano index.jscd /opt sudo mkdir espai cd espai nano index.js
将以下配置文件内容写入进去,注意将代码里的东西改为自己的
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",},// 调用火山引擎LLMllm_server: "volcengine",llm_config: {// 1. 注册:https://console.volcengine.com/ark// 1. 开通: https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&tab=LLM// 2. 创建接入点: https://console.volcengine.com/ark/region:ark+cn-beijing/endpointapiKey: "xxx",epId: "ep-xxx", // 接入点ID},// 调用火山引擎TTStts_server: "volcengine",tts_config: {// 1. 注册:https://console.volcengine.com/speech/app// 2. 音色开通: https://console.volcengine.com/speech/service/8?AppID=6359932705// 3. 授权: xxx// 服务接口认证信息appid: "xxx",accessToken: "xxx",rate: 24000, //采样率,只支持 16k 或者 24k,大模型语音合成必须使用 24k// voice_type: "BV007_streaming", // 清切女声voice_type: "BV051_streaming", // 奶气萌娃},})};const espAiIns = espAi(config);// 在合适的时机可以调用方法来在服务端实现设备操作// espAiIns.restart("[device_id]") // 重启设备// espAiIns.tts("[device_id]", "你好啊") // 让设备说话// ...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: "volcengine", llm_config: { // 1. 注册:https://console.volcengine.com/ark // 1. 开通: https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&tab=LLM // 2. 创建接入点: https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint apiKey: "xxx", epId: "ep-xxx", // 接入点ID }, // 调用火山引擎TTS tts_server: "volcengine", tts_config: { // 1. 注册:https://console.volcengine.com/speech/app // 2. 音色开通: https://console.volcengine.com/speech/service/8?AppID=6359932705 // 3. 授权: xxx // 服务接口认证信息 appid: "xxx", accessToken: "xxx", rate: 24000, //采样率,只支持 16k 或者 24k,大模型语音合成必须使用 24k // voice_type: "BV007_streaming", // 清切女声 voice_type: "BV051_streaming", // 奶气萌娃 }, }) }; const espAiIns = espAi(config); // 在合适的时机可以调用方法来在服务端实现设备操作 // espAiIns.restart("[device_id]") // 重启设备 // espAiIns.tts("[device_id]", "你好啊") // 让设备说话 // ...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: "volcengine", llm_config: { // 1. 注册:https://console.volcengine.com/ark // 1. 开通: https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&tab=LLM // 2. 创建接入点: https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint apiKey: "xxx", epId: "ep-xxx", // 接入点ID }, // 调用火山引擎TTS tts_server: "volcengine", tts_config: { // 1. 注册:https://console.volcengine.com/speech/app // 2. 音色开通: https://console.volcengine.com/speech/service/8?AppID=6359932705 // 3. 授权: xxx // 服务接口认证信息 appid: "xxx", accessToken: "xxx", rate: 24000, //采样率,只支持 16k 或者 24k,大模型语音合成必须使用 24k // voice_type: "BV007_streaming", // 清切女声 voice_type: "BV051_streaming", // 奶气萌娃 }, }) }; const espAiIns = espAi(config); // 在合适的时机可以调用方法来在服务端实现设备操作 // espAiIns.restart("[device_id]") // 重启设备 // espAiIns.tts("[device_id]", "你好啊") // 让设备说话 // ...
然后按CTRL+O,出现以下界面按回车保存
再按CTRL+X退出即可
拉取镜像
docker pull 2362400196/espai:latestdocker pull 2362400196/espai:latestdocker pull 2362400196/espai:latest
启动容器
docker rm -f esp 2>/dev/nulldocker create --name esp -p 8088:8088 2362400196/espai:latest node /opt/espai/index.jsdocker cp ./index.js esp:/opt/espai/index.jsdocker start espdocker rm -f esp 2>/dev/null docker create --name esp -p 8088:8088 2362400196/espai:latest node /opt/espai/index.js docker cp ./index.js esp:/opt/espai/index.js docker start espdocker rm -f esp 2>/dev/null docker create --name esp -p 8088:8088 2362400196/espai:latest node /opt/espai/index.js docker cp ./index.js esp:/opt/espai/index.js docker start esp
查看日志
docker logs espdocker logs espdocker logs esp
每一步操作都标出来了
配置客户端
客户端里填自己服务器的IP和端口