【Ray教程】

资料链接:https://github.com/Zeng-Guo/xiaozhi 小智AI服务端代码:https://github.com/xinnan-tech/xiaozhi-esp32-server# 小智AI硬件代码:https://github.com/78/xiaozhi-esp32 小智AI百科全书:https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb

视频教程地址:手把手本地部署小智前后端代码教程_哔哩哔哩_bilibili

官方教程:xiaozhi-esp32-server/docs/Deployment_all.md at main · xinnan-tech/xiaozhi-esp32-server · GitHub

一、创建小智服务端的数据库
前置准备:下载并安装小皮面板(phpstudy)

下载地址:Windows 版 phpstudy 下载 - 小皮面板 (phpstudy)

具体操作步骤
  1. 打开小皮面板,进入「软件管理」功能模块,找到并安装 MySQL 8.0.12 版本数据库。
  2. 仍在「软件管理」界面,搜索并安装 Redis 3.0.504 版本(小智服务端需 Redis 做缓存)。
  3. 继续在「软件管理」中,下载数据库管理工具 phpMyAdmin 4.8.5 版本。
  4. 返回小皮面板首页,依次启动以下服务:apache 2.4.39、MySQL 8.0.12、Redis 3.0.504(确保所有服务状态为 “已启动”)。
  5. 进入面板「数据库」模块,找到「修改 root 密码」选项,将密码修改为 123456 并保存(记牢该密码,后续连接数据库需用)。
  6. 点击页面右上方的「数据库管理工具」按钮,在弹出选项中选择「phpmyadmin」。
  7. 在跳转的 phpMyAdmin 网页登录界面,输入用户名 root、密码 123456,点击「登录」完成验证。
  8. 登录成功后,点击左侧 / 主界面的「新建」按钮,在「数据库名」输入框中填写 xiaozhi_esp32_server排序规则选择 utf8_unicode_ci,点击「创建」完成数据库初始化。
二、搭建小智服务端开发运行环境(JDK21 + Maven + VSCode)
1. 安装并配置 JDK21 环境(小智服务端核心运行依赖)
2. 安装并配置 Maven 环境(Java 项目构建 / 依赖管理工具)
3. 安装 VSCode 并配置 Java 开发插件
  • 参考教程:VSCode 安装配置使用教程(最新版超详细保姆级含插件)一文就够了_vscode 使用教程 - CSDN 博客

  • 具体操作:

    ① 下载并安装 VSCode(建议选择 Windows 64 位版本);

    ② 打开 VSCode,点击左侧栏「扩展」图标(快捷键 Ctrl+Shift+X),在搜索框输入

    Java Extension Pack
    

    点击「安装」(该插件包包含小智服务端开发所需的 Java 语言支持、调试、代码提示等核心功能);

    ③ 安装完成后重启 VSCode,确保插件生效;

    ④ 可选补充:额外安装

    Chinese (Simplified) Language Pack
    

    插件,将 VSCode 切换为中文界面,降低新手操作难度。

三、启动小智服务端 Java 后端
前置准备

小智服务端项目地址:GitHub - xinnan-tech/xiaozhi-esp32-server(核心后端代码仓库)

具体操作步骤
  1. 下载并整理项目文件

    ① 从 GitHub 下载项目压缩包,解压后默认文件夹名称为 xiaozhi-esp32-server-main,将其重命名为 xiaozhi-esp32-server

    ② 打开 VSCode,点击「文件」→「打开文件夹」,选择重命名后的 xiaozhi-esp32-server 文件夹,确认打开(VSCode 会自动加载 Java 项目依赖)。

  2. 修改数据库连接核心配置

    ① 在 VSCode 的文件管理器中,找到路径:xiaozhi-esp32-server\main\manager-api\src\main\resources,打开 application-dev.yml 文件(开发环境配置文件,核心配置入口);

    ② 找到数据库(MySQL)和 Redis 相关配置项,按以下内容修改(匹配第一步创建的数据库信息):

    # 数据库配置(关键修改项)
    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/xiaozhi_esp32_server?useUnicode=true&characterEncoding=utf8mb4&useSSL=false&serverTimezone=Asia/Shanghai
        username: root
        password: 123456  # 对应第一步修改的MySQL root密码
      # Redis配置(匹配小皮面板的Redis服务)
      redis:
        host: 127.0.0.1
        port: 6379
        password: ''  # 小皮面板默认Redis无密码,若有则填写
    

    ③ 保存 application-dev.yml 文件(快捷键 Ctrl+S),确保配置修改生效。

  3. 启动后端程序

    ① 在 VSCode 文件管理器中,找到路径:xiaozhi-esp32-server\main\manager-api\src\main\java\xiaozhi,打开 AdminApplication.java 文件(这是后端项目的启动类,含 main 方法);

    ② 点击文件顶部 / 代码左侧的「运行」按钮(或右键选择「运行 Java」),启动程序;

    ③ 观察 VSCode 下方「终端」面板:若输出 “Started AdminApplication in XX seconds”(无红色报错),说明后端启动成功;若提示 “数据库连接失败”“Redis 连接失败”,需检查第一步的服务是否启动、配置文件的账号密码是否正确。

四、启动小智服务端 Web 前端并配置 AI 模型
1. 安装并验证 Node.js 环境(前端运行核心依赖)
2. 进入前端项目目录

① 右键点击「开始菜单」→ 选择「Windows 终端(管理员)」(或「命令提示符(管理员)」),以管理员身份打开 CMD;

② 在终端中执行目录切换命令(替换为你的实际项目路径):

# 示例:若项目放在D盘根目录,路径为D:\xiaozhi-esp32-server
cd D:\xiaozhi-esp32-server\main\manager-web
3. 安装前端项目依赖

① 在当前终端执行依赖安装命令:

npm install
4. 启动 Web 前端服务

① 依赖安装完成后,执行启动命令:

npm run server

② 验证启动成功:终端输出 “Compiled successfully” 或 “Server running at http://127.0.0.1:8001”(无红色报错);

③ 打开浏览器,访问地址:http://127.0.0.1:8001,即可进入小智服务端管理前端页面。

5. 配置智谱 AI API 密钥(核心功能)

① 首次访问页面,点击「注册账号」完成注册(第一个注册的用户自动成为超级管理员,需记牢账号密码);

② 用注册的账号登录系统,点击顶部菜单「模型配置」,左侧导航栏选择「大语言模型」;

③ 找到「智谱 AI」选项,点击右侧「修改」按钮;

④ 前往智谱 AI 开放平台获取 API 密钥(链接:智谱 AI 开放平台,需先注册并实名认证);

⑤ 将获取的 API 密钥(api_key)填入输入框,点击「保存」,完成大语言模型的核心配置(保存后即可正常使用语音对话、AI 问答功能)。

五、安装 Python 环境并运行小智核心语音服务
1. 安装 Anaconda(Python 环境管理工具)
2. 创建并配置专属 Python 虚拟环境

启动「Anaconda Prompt」(非管理员模式即可),按顺序逐行执行以下命令(每执行一行等待完成,建议复制输出结果给AI核对是否有报错):

# 先删除同名旧环境(若有),避免冲突
conda remove -n xiaozhi-esp32-server --all -y
# 创建名为xiaozhi-esp32-server的虚拟环境,指定Python 3.10版本(核心依赖要求)
conda create -n xiaozhi-esp32-server python=3.10 -y
# 激活该虚拟环境(激活后终端前缀会显示(xiaozhi-esp32-server))
conda activate xiaozhi-esp32-server

# 添加清华源(解决conda下载包缓慢/失败问题)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge


# 安装语音处理依赖(libopus用于音频编码,ffmpeg用于音频格式转换)
conda install libopus -y
conda install ffmpeg -y
3. 安装项目 Python 依赖

① 打开「Anaconda Powershell Prompt」(或继续使用已激活环境的 Anaconda Prompt);

② 切换到小智服务端 Python 项目目录(替换为你的实际路径):

# 示例:若项目在D盘,路径为D:\xiaozhi-esp32-server
cd D:\xiaozhi-esp32-server\main\xiaozhi-server

③ 逐行执行以下命令(每执行一行核对无报错):

# 确保激活目标虚拟环境
conda activate xiaozhi-esp32-server
# 配置阿里云pip镜像(解决pip下载依赖缓慢)
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 安装项目所需全部依赖(核心步骤,耐心等待完成)
pip install -r requirements.txt
4. 下载语音识别模型文件

① 下载地址:SenseVoiceSmall 模型文件

② 将下载的model.pt文件放入文件夹(文件夹路径:xiaozhi-esp32-server\main\xiaozhi-server\models\SenseVoiceSmall),确认文件路径无误(模型文件缺失会导致语音识别功能失效)。

5. 配置项目核心参数文件

① 先确保 Web 前端已启动,访问智控台:http://127.0.0.1:8001,用超级管理员账号登录;

② 点击顶部菜单「参数管理」,在参数列表中找到参数编码为 server.secret的项,复制其对应的「参数值」;

③ 回到项目目录:xiaozhi-esp32-server\main\xiaozhi-server,新建文件夹命名为data

④ 将该目录下的config.yaml文件复制到data文件夹中,并重命名为.config.yaml(注意开头有英文句号,是隐藏文件);

⑤ 打开.config.yaml文件,删除原有所有内容,粘贴以下配置(替换你的server.secret值为实际复制的参数值):

manager-api:
  url: http://127.0.0.1:8002/xiaozhi  # 后端API地址,默认无需修改
  secret: 你的server.secret值        # 替换为复制的server.secret参数值

⑥ 保存文件(确保无格式错误,如空格缩进、冒号后空格)。

6. 运行 Python 核心服务

① 确保终端仍在xiaozhi-server目录下,且已激活虚拟环境((xiaozhi-esp32-server)前缀);

② 执行启动命令:

python app.py

③ 验证启动成功:终端输出 “WebSocket server started on xxx”“TTS service ready” 等日志,无红色报错(若提示 “config.yaml not found”,检查.config.yaml路径和名称是否正确);

④ 启动成功后,小智服务端的语音识别、AI 对话、TTS 合成等核心功能即可正常使用。

六、编译固件

GitHub - 78/xiaozhi-esp32: Build your own AI friend

(1)vscode打开加载xiaozhi-esp32

(2)下载esp-idf(5.3.2)dl.espressif.cn/dl/esp-idf/?idf=4.4

(3)Vscode安装esp-idf参考【教程】使用VSCode安装ESP-IDF烧录小智AI固件_哔哩哔哩_bilibili

(3)打开xiaozhi-esp32\main下文件Kconfig.projbuild

OTA接口:

http://你电脑局域网的ip:8002/xiaozhi/ota/

Websocket接口:

ws://你电脑局域网的ip:8000/xiaozhi/v1/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择你的硬件信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

打开sdk编译器,参考我的配置内容

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择好确认之后点击小火苗一件三连

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

build

OTA接口:

http://你电脑局域网的ip:8002/xiaozhi/ota/

Websocket接口:

ws://你电脑局域网的ip:8000/xiaozhi/v1/

[外链图片转存中…(img-MGNxq3Wx-1772005182397)]

选择你的硬件信息

[外链图片转存中…(img-6DFq0EWT-1772005182400)]

打开sdk编译器,参考我的配置内容

[外链图片转存中…(img-iyvBg9mJ-1772005182401)]

选择好确认之后点击小火苗一件三连

[外链图片转存中…(img-IixZUcVM-1772005182401)]

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐