用xiaozhi-server搭建一个私有小智后台

本案例需要你懂一些【docker】、【linux】知识

故事背景

最近在捣鼓小智AI,目前社区还是挺完善的,MCU支持也很足,但是我不太想用小智的后台系统,一直想搭建一个自己的 mcp 服务,所以一直在找一个可以替代的方案。

功夫不负有心人,找到了 xiaozhi-server 这个项目。

这篇文章用来记录一下在搭建项目的流程和碰到的一些坑。

环境介绍

  1. 香橙派 zero 3 * 1 (搭载了 linux22 系统)
  2. esp32-s3 小智开发板 * 1 (自主烧录小智固件)

操作步骤

本教程只提供 docker版操作教程,目前docker版有两种操作方式:

  1. 懒人脚本一键下载(推荐)
  2. docker 手动部署

1. 懒人脚本一键部署(推荐)

1.1 下载脚本

执行以下命令以下载懒人脚本:

bash 复制代码
curl -L -o docker-setup.sh https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/main/docker-setup.sh

如果以上脚本无法执行,并且报错如下所示:

vbnet 复制代码
curl: (7) failed to connect to raw.githubusercontent.com port 443 after 1 ms: couldn't connect to server

因为这个域名对应的是外网ip,如果你没有开魔法的话则没有办法,如果你开了魔法,那就好办了,按照下面的命令依次执行;

登陆www.ipaddress.com网站查询 raw.githubusercontent.com 对应ip ,示例如下:

把查询到的ip写入host 文件,如下:

arduino 复制代码
sudo vi /etc/hosts 

// hosts 文件写入
185.199.108.133 raw.githubusercontent.com

最后再尝试执行脚本即可。

1.2 执行脚本

如果您的电脑是windows系统,请使用 Git Bash、WSL、PowerShell 或 CMD 运行以下命令:

arduino 复制代码
# Git Bash 或 WSL
sh docker-setup.sh
# PowerShell 或 CMD
.\docker-setup.sh

如果您的电脑是linux 或者 macos 系统,请使用终端运行以下命令:

arduino 复制代码
chmod +x docker-setup.sh
./docker-setup.sh

脚本会自动完成以下操作:

  1. 创建必要的目录结构
  2. 下载语音识别模型
  3. 下载配置文件
  4. 检查文件完整性

执行完成后,请按照提示配置 API 密钥。

1.3 修改配置文件

主要修改以下几个位置:

yml 复制代码
selected_module:
  # 将根据配置名称对应的type调用实际的LLM适配器
  LLM: DoubaoLLM
  # TTS将根据配置名称对应的type调用实际的TTS适配器
  TTS: DoubaoTTS

LLM:
  DoubaoLLM:
    # 定义LLM API类型
    type: openai
    # 先开通服务,打开以下网址,开通的服务搜索Doubao-1.5-pro,开通它
    # 开通地址:https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&OpenTokenDrawer=false
    # 免费额度500000token
    # 开通后,进入这里获取密钥:https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D
    base_url: https://ark.cn-beijing.volces.com/api/v3
    model_name: doubao-1-5-pro-32k-250115
    api_key: ******(在豆包平台上申请)
    
TTS:
  # 当前支持的type为edge、doubao,可自行适配
  EdgeTTS:
    # 定义TTS API类型
    type: edge
    voice: zh-CN-XiaoxiaoNeural
    output_dir: tmp/
  DoubaoTTS:
    # 定义TTS API类型
    type: doubao
    # 火山引擎语音合成服务,需要先在火山引擎控制台创建应用并获取appid和access_token
    # 山引擎语音一定要购买花钱,起步价30元,就有100并发了。如果用免费的只有2个并发,会经常报tts错误
    # 购买服务后,购买免费的音色后,可能要等半小时左右,才能使用。
    # 普通音色在这里开通:https://console.volcengine.com/speech/service/8
    # 湾湾小何音色在这里开通:https://console.volcengine.com/speech/service/10007,开通后将下面的voice设置成zh_female_wanwanxiaohe_moon_bigtts
    api_url: https://openspeech.bytedance.com/api/v1/tts
    voice: zh_female_meilinvyou_moon_bigtts(音色可自定义)
    output_dir: tmp/
    authorization: "Bearer;"
    appid: *****(在豆包上申请)
    access_token: *****(在豆包上申请)
    cluster: volcano_tts
    speed_ratio: 1.0
    volume_ratio: 1.0
    pitch_ratio: 1.0

1.4 检验容器运行情况

执行以下命令来部署服务:

bash 复制代码
docker-compose up -d

执行完后,再执行以下命令,查看日志信息。

vbscript 复制代码
docker logs -f xiaozhi-esp32-server

测试

进入 xiaozhi-server/test 文件夹,打开 test_page.html 文件,来通过输入文本或者是语音来测试项目是否部署成功。(注意端口的映射关系)

总结

以上就是小智服务端的搭建过程,下一期我介绍一下如何通过 esp32-s3 开发板来接入小智AI模型实现联动。

相关推荐
fanstuck17 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
墨舟的AI笔记19 小时前
React 组件库的 Tree Shaking:按需加载与副作用的工程化治理
人工智能
qq_5896660520 小时前
TypeScript 完整入门教程
前端·javascript·typescript
WoooChi20 小时前
DailyTech-20260724
人工智能·科技·业界资讯
zh路西法20 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
雨辰AI20 小时前
全集实战:企业级大模型服务化部署全栈指南|FastAPI 封装 + Nginx 负载均衡 + 高可用架构 从单机到生产一步到位
人工智能·ai·负载均衡·fastapi·ai编程
触底反弹20 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
咖啡屋和酒吧21 小时前
健康管理:现代生活的科学守护
人工智能·生活·精选
星栈独行21 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
开发语言·javascript·人工智能·程序人生
没有梦想的咸鱼185-1037-166321 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer