AI个人学习
和实操指南
讯飞绘镜

xiaozhi-esp32-server:小智AI聊天机器人开源后端服务

综合介绍

xiaozhi-esp32-server 是一个为 小智AI聊天机器人(xiaozhi-esp32)提供后端服务的工具。它用 Python 编写,基于 WebSocket 协议,帮助用户快速搭建一个控制 ESP32 设备的服务器。这个项目适合已经购买 ESP32 硬件并想自己动手搭建后端的人。它的功能很实用,比如支持语音对话、多语言识别和智能家居控制。项目在 GitHub 上开源,最新更新是 2025 年 3 月,官方文档详细,社区活跃。注意,它还在开发中,不建议直接用在生产环境。

xiaozhi-esp32-server:小智AI聊天机器人开源后端服务-1


 

功能列表

  • WebSocket 通信:用 xiaozhi-esp32 协议与硬件实时交换数据。
  • 语音对话:支持唤醒对话、手动对话和实时打断,长时间没用会自动休眠。
  • 意图识别:用大模型识别用户意图,还能调用函数执行指令。
  • 多语言支持:能听懂中文、粤语、英语、日语和韩语,默认用 FunASR。
  • 语言模型切换:默认用 ChatGLM,也支持阿里百炼、DeepSeek 等。
  • 语音合成:支持 EdgeTTS 和火山引擎 TTS,生成自然语音。
  • 记忆模式:有超长记忆、本地总结和无记忆三种选择。
  • 智能家居控制:能连 HomeAssistant,控制家电开关。

 

使用帮助

安装流程

要用 xiaozhi-esp32-server,你得先准备好硬件和环境。以下是具体步骤:

1. 准备工作

  • 硬件:一台支持 xiaozhi-esp32 固件的 ESP32 设备,具体型号看官方列表
  • 电脑:建议 4 核 CPU、8GB 内存。如果用 API 跑语音识别,2 核、2GB 也行。
  • 软件:安装 Python 3.10 和 Conda。

2. 下载项目

  • 打开 https://github.com/xinnan-tech/xiaozhi-esp32-server。
  • 点击 "Code",选 "Download ZIP" 下载。
  • 解压后,把文件夹改名为 "xiaozhi-esp32-server"。

3. 配置 Conda 环境

  • 打开命令行,运行:
conda create -n xiaozhi-esp32-server python=3.10 -y
conda activate xiaozhi-esp32-server
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda install libopus -y
conda install ffmpeg -y
  • 检查每步输出,确保没报错。

4. 安装依赖

  • 进入项目文件夹:
cd xiaozhi-esp32-server/main/xiaozhi-server
  • 设置国内源并安装:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt

5. 下载模型

  • 默认用 FunASR 语音识别。去官方指引(见 README)下载模型,放进 "models" 文件夹。
  • 检查 "SenseVoiceSmall" 文件夹里有没有 "model.pt",没有就下载。

6. 修改配置

  • 打开 "config.yaml" 文件,调整设置:
  • 语言模型:默认 ChatGLM,可改成 DeepSeek 或 HomeAssistant。
  • 语音合成:默认 EdgeTTS,可换火山引擎 TTS。
  • 沉默时间:把 min_silence_duration_ms 调到 1000(适合慢说话)。
  • 保存文件。

7. 启动服务器

  • 在 "xiaozhi-server" 文件夹运行:

python main.py

  • 看到 "Server running on port 8000" 就成功了。

8. 更新固件

  • 把服务器地址(比如 http://你的IP:8000)写进 xiaozhi-esp32 固件。
  • 固件编译指引重新编译并烧录。

其他部署方式

  • Docker 快速部署:适合新手。运行 docker pull xinnan-tech/xiaozhi-esp32-server,按指引启动。
  • Docker 源码运行:适合改代码的人。先装 Docker,再用官方文档跑项目。
  • 详情看部署文档

功能操作

语音对话

  • 唤醒:说唤醒词(固件里设),服务器会回应。
  • 手动触发:按设备按钮开始对话。
  • 打断:说话时插话,设备会立刻处理。
  • 操作:对着设备说 "你好",听回复。

多语言识别

  • 支持五种语言。配置文件里可调优先级。
  • 操作:说 "Hello" 或 "こんにちは",设备都能懂。

语音合成

  • 配置 TTS 后,文字会变语音。
  • 操作:用测试脚本输入 "今天天气",设备会念出来。
  • 切换:改配置文件里的 TTS 接口。

智能家居

  • 连接 HomeAssistant:填入 token。
  • 操作:说 "开灯",灯就亮。
  • 测试:跑 python performance_tester.py 检查速度。

注意事项

  • 网络:保持稳定,WebSocket 靠实时连接。
  • 安全:公网部署要开防护(auth: enabled: true)。
  • 调试:看命令行日志,解决问题。

 

应用场景

  1. 智能家居
  • 连上 HomeAssistant,说 "关空调",空调就停。
  1. 语音助手
  • 放桌上,问 "明天天气",它会告诉你。
  1. 语言练习
  • 用英语对话,设备帮你练发音。

 

QA

  1. 识别出乱七八糟的语言怎么办?
  • 检查 "models/SenseVoiceSmall" 里有没 "model.pt"。没有就去指引下载。
  1. TTS 出错说文件不存在?
  • 确认装了 libopus 和 ffmpeg。没装就跑 conda install conda-forge::libopus 和 conda install conda-forge::ffmpeg
  1. 响应太慢怎么办?
  • 换快点的模型,比如 AliLLM + DoubaoTTS。跑 python performance_tester.py 测一下。
  1. 说话慢被抢话怎么办?
  • 在 "config.yaml" 里把 min_silence_duration_ms 改成 1000。
  1. 怎么控制家电?
  • 配置里选 HomeAssistant,填 token,说指令就行。
未经允许不得转载:首席AI分享圈 » xiaozhi-esp32-server:小智AI聊天机器人开源后端服务

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文