xiaozhi-esp32-server-java Ubuntu部署教程

小智ESP32服务器Ubuntu部署指南

【小智Ai服务端java版本 服务器部署配置 小智对接个人服务器完整教程 xiaozhi-esp32-server-java】

视频教程

一、系统要求

1. 操作系统

  • Ubuntu 20.04/22.04 LTS(推荐20.04)
  • 安装模式:最小化安装 + 构建工具

2. 硬件配置

  • 内存:最低2GB(推荐4GB)
  • 存储:至少10GB可用空间

二、系统环境准备

1. 安装基础工具

sudo apt update
sudo apt install -y wget curl git vim unzip build-essential

2. 防火墙配置

sudo ufw allow 8084/tcp    # 后端服务端口
sudo ufw allow 3306/tcp    # MySQL数据库端口
sudo ufw enable            # 启用防火墙
sudo ufw status            # 验证端口开放状态

3. 获取项目代码

#可以从github拉不下来 可以用gitee
git clone https://github.com/joey-zhou/xiaozhi-esp32-server-java.git
git clone https://gitee.com/joey-zhou/xiaozhi-esp32-server-java.git

三、核心服务安装

1. MySQL 5.7安装

# 添加MySQL官方仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb

# 安装时选择5.7版本(在交互界面中选择)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C
sudo apt update
sudo apt install -y mysql-server=5.7.* mysql-client=5.7.*

# 启动服务
sudo systemctl start mysql
sudo systemctl enable mysql

2. Maven安装

sudo apt install -y maven
mvn -v  # 验证版本(需显示3.6+)

3. Node.js 16安装

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
node -v && npm -v  # 验证版本(需显示v16.x)

4. FFmpeg安装

sudo apt install -y ffmpeg
ffmpeg -version  # 验证安装

四、数据库配置

1. 创建数据库用户

-- 登录MySQL
mysql -u root -p
-- 执行以下SQL命令
CREATE DATABASE xiaozhi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'xiaozhi'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON xiaozhi.* TO 'xiaozhi'@'localhost';
FLUSH PRIVILEGES;
exit;

2. 导入初始化数据

cd xiaozhi-esp32-server-java
mysql -u root -p xiaozhi < db/init.sql  # 输入root密码

五、语音模型部署

cd xiaozhi-esp32-server-java
wget https://alphacephei.com/vosk/models/vosk-model-cn-0.22.zip
unzip vosk-model-cn-0.22.zip
mkdir -p models && mv vosk-model-cn-0.22 models/vosk-model

六、项目部署

1. 后端部署

cd xiaozhi-esp32-server-java
mvn clean package -DskipTests

# 启动服务(后台运行)
nohup java -jar target/xiaozhi.server-1.0.jar > server.log 2>&1 &
tail -f server.log  # 观看日志

2. 前端部署

cd web
npm install --force  # 强制解决依赖冲突
npm run build

# 启动开发服务器
nohup npm run dev > frontend.log 2>&1 &

七、访问验证



八、ESP32设备配置

1.配置模型

获取apikey

模型名称:GLM-4-Plus

API URL:https://open.bigmodel.cn/api/paas/v4/

2.修改小智的服务器连接

WebSocket配置
1. 获取WS地址
tail -f server.log  # 查找类似日志:WebSocket started on ws://0.0.0.0:8091/ws/xiaozhi/v1/
2. 公网地址转换
将内网地址转换为公网地址:
 ws://[公网IP]:8091/ws/xiaozhi/v1/
(示例:ws://114.132.95.9:8091/ws/xiaozhi/v1/)
# 设置编译目标
idf.py set-target esp32s3

# 配置参数(需修改WS地址 删除OTA 换到WS协议)
idf.py menuconfig

# 编译
idf.py build 
# 烧录
idf.py flash monitor

九、维护操作

1. 日志管理

tail -f server.log        # 实时查看日志
grep "ERROR" server.log  # 过滤错误日志

2. 代码更新

git pull origin main
mvn clean package -DskipTests
sudo systemctl restart xiaozhi  # 需配置服务(可选)

3. 数据库备份

mysqldump -u root -p xiaozhi > xiaozhi_backup_$(date +%Y%m%d).sql

注意事项

  1. 公网访问:确保云服务器安全组开放 80848091 端口
  2. MySQL兼容性:必须使用5.7版本,高版本可能不兼容
  3. 语音模型路径:确保 models/vosk-model 目录存在且包含模型文件
<think>好的,我需要帮助用户找到关于小智(Xiaozhi)和ESP32相关的技术资料或项目教程开发文档。首先,我得先理解用户提到的“小智”具体指的是什么。根据用户提供的引用内容,特别是引用[1]提到的“虾哥的项目”,这里可能存在发音或翻译的问题,比如“虾哥”和“小智”可能是同一人或项目的不同称呼,或者用户可能有拼写错误。我需要进一步确认这一点。 首先,查看引用[1]中的信息:“虾哥的项目里,介绍说是使用ESP32S3,同时还支持虾哥自己的Mini ESP32C3”。这里提到的“虾哥”可能是一个开发者或项目负责人的昵称,而用户提到的“小智”可能是指同一个项目,或者另一个类似的项目。由于中文昵称可能存在谐音或翻译差异,我需要考虑可能的拼写错误或不同称呼。 接下来,引用[3]提到了ESP32S3的开发环境搭建,使用VSCode和ESP-IDF插件。这可能与用户寻找的教程相关。另外,引用[2]提到了基于ESP32的智能语音控制系统,这可能也是相关项目的一部分。 用户需要的是Xiaozhi ESP32项目的教程或文档,但由于信息有限,我需要从现有引用中提取可能的线索。可能的步骤包括: 1. **确认项目名称或开发者**:检查是否有“Xiaozhi”对应的正确拼写,比如“虾哥”可能被误写为“小智”。如果用户指的是“虾哥的项目”,那么可以直接参考引用[1]中的内容,即使用ESP32S3和Mini ESP32C3的项目。 2. **查找开发文档**:根据引用[3],VSCode的开发环境搭建教程已经存在,这可能是一个重要的资源。此外,ESP-IDF的官方文档也是必须的。 3. **项目案例参考**:引用[2]中的智能语音控制系统可能是一个应用案例,用户可以参考其开发流程和环境配置。 4. **硬件信息**:引用[1]提到ESP32S3和Mini ESP32C3,特别是8MB Flash的配置,这可能涉及到具体的硬件设置,需要相应的文档支持。 可能的解决方案包括: - 建议用户查看虾哥的项目文档,特别是关于ESP32S3和Mini ESP32C3的部分,确认是否有相关教程- 推荐ESP-IDF的官方文档和VSCode环境配置指南(如引用[3])。 - 提供智能语音控制系统的开发案例作为参考(引用[2])。 同时,需要确保回答符合格式要求,如使用正确的LaTeX格式,生成相关问题等。需要检查是否有遗漏的信息,并确保所有引用正确标注。</think>关于小智(Xiaozhi)与ESP32相关的项目资料,根据现有信息推测可能涉及以下方向: ### 1. 硬件开发文档 根据引用[1],虾哥的ESP32项目使用$ESP32S3$和$ESP32C3$芯片,其中$ESP32C3$版本配备8MB Flash存储。这类项目通常需要以下技术文档: - ESP32系列芯片的硬件设计指南(如GPIO分配、电源管理) - RISC-V架构的$ESP32C3$与Xtensa架构的$ESP32S3$差异对比 - 外设接口驱动开发(SPI/I2C/UART) 建议访问乐鑫官方文档库:$$https://docs.espressif.com$$[^3] ### 2. 开发环境搭建 引用[3]详细描述了基于VSCode的ESP32开发环境配置流程: ```python # 开发环境核心组件 components = ["ESP-IDF插件", "Python 3.8+", "CMake 3.16+"] ``` 具体步骤包括: 1. 安装VSCode后搜索安装`ESP-IDF`插件 2. 通过插件自动部署工具链 3. 使用`COMMANDS`面板执行固件编译下载 ### 3. 典型项目案例 引用[2]展示的智能语音控制系统可作为参考模板: $$系统架构 = [语音采集模块] \rightarrow [WiFi传输层] \rightarrow [云平台解析] \rightarrow [本地执行]$$ 关键开发点: - 语音数据包通过$WiFi$传输时的流量优化 - 使用$FreeRTOS$实现多任务调度 - 低功耗模式下的唤醒机制设计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值