首次推出xiaozhi-esp32-server-mini、xiaozhi-esp32-server、xiaozhi-esp32-webui;

This commit is contained in:
waxgourd
2025-04-24 20:01:52 +08:00
parent 3d99d2296d
commit 065e754376
26 changed files with 907 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
# 更新日志
## 1.0.3
- 添加 ASR语音识别配置选项到 Home Assistant 界面
- 支持选择不同的语音识别模型FunASR、SherpaASR、DoubaoASR、TencentASR
- 为在线语音识别服务添加 API 凭据配置
- 修复音乐目录递归软链接的问题
- 优化脚本代码结构,删除冗余注释,提高可读性
- 修复唤醒词配置保存时出现的空行累积问题
## 1.0.2
- 添加 LLM 模型名称配置选项,允许用户自定义模型名称
- 修复翻译文件格式问题
- 优化配置文件更新逻辑,避免文件格式损坏
- 改进文件管理方式,使用软链接减少存储空间占用
## 1.0.1
- 修复 Home Assistant 加载项配置同步功能
- 添加自动将加载项配置应用到.config.yaml 的功能
- 完善配置同步机制,支持所有加载项配置参数
- 更新文档,详细说明配置方法和故障排除
## 1.0.0
- 首次发布
- 支持小智 ESP32 语音识别服务
- 自动下载模型和配置
- 使用 S6 Overlay 进行服务管理

View File

@@ -0,0 +1,206 @@
# 小智 AI Server 最简化版
本加载项提供小智 ESP32 语音识别服务器功能,可与 ESP32 设备配合使用实现语音识别功能。
## 安装
1. 在 Home Assistant 的加载项商店中添加此仓库地址或复制到本地加载项目录
2. 安装"小智 AI Server 最简化版"加载项
3. 配置加载项
## 配置参数
| 参数 | 描述 |
| ------------------------------------ | --------------------------------- |
| timezone | 时区设置 |
| server.auth.enabled | 是否启用设备认证(可选) |
| server.auth.tokens | 设备认证令牌列表(可选) |
| log_level | 日志级别 (INFO/DEBUG) |
| llm.type | 大语言模型类型 |
| model_name | 大语言模型名称 |
| llm.api_key | 大语言模型 API 密钥 |
| tts.type | 语音合成服务类型 |
| tts.appid | TTS 服务应用 ID (DoubaoTTS 需要) |
| tts.access_token | TTS 服务访问令牌 (DoubaoTTS 需要) |
| tts.voice | TTS 音色 (DoubaoTTS 可选) |
| asr.type | 语音识别服务类型 |
| asr.appid | ASR 服务应用 ID在线服务需要 |
| asr.access_token | ASR 服务访问令牌(在线服务需要) |
| asr.secret_key | ASR 服务密钥(腾讯 ASR 需要) |
| plugins.get_weather.api_key | 和风天气 API 密钥 |
| plugins.get_weather.default_location | 默认天气查询位置 |
| plugins.home_assistant.base_url | Home Assistant 地址 |
| plugins.home_assistant.api_key | Home Assistant 长期访问令牌 |
| plugins.home_assistant.devices | Home Assistant 设备列表 |
## 使用说明
安装并启动后,服务器会在 8000 端口启动 WebSocket 服务。您可以通过 ESP32 设备连接到此服务进行语音识别。
### 配置方式说明
本加载项支持两种配置方式:
1. **通过 Home Assistant 加载项页面配置**:在 Home Assistant -> 设置 -> 加载项 -> 小智 AI Server 最简化版 中配置基本参数
- 这些配置会自动应用到服务器的.config.yaml 文件中
- 每次重启加载项时Home Assistant 配置会自动覆盖相应的.config.yaml 设置
2. **手动编辑配置文件**
- 配置文件位于: `/config/data/.config.yaml`(通过文件编辑器访问)
- 适合进行高级配置调整,如不在加载项页面提供的参数
**注意**:所有需要的 ASR 和 LLM 参数都应当在 Home Assistant 加载项配置页面中设置,这是推荐的配置方法。修改后需要重启加载项才能生效。
### 具体配置路径
1. **加载项配置页面**:
- Home Assistant → 设置 → 加载项 → 小智 AI Server 极速版 → 配置
- 在此页面可以设置所有主要参数,包括 ASR 类型、appid、access_token、LLM 类型、model_name 和 api_key 等
2. **通过文件编辑器**:
- Home Assistant → 设置 → 加载项 → 文件编辑器
- 导航到 `/config/data/.config.yaml` (加载项配置文件)
- 此文件包含更详细的配置,但每次重启加载项后会被加载项配置页面的设置覆盖
### 模型文件
使用 FunASR 模型时,需要使用 SenseVoiceSmall 模型文件才能正常工作。系统会自动下载模型文件并放置在以下位置:
```
/config/models/SenseVoiceSmall/model.pt
```
如果自动下载失败,您需要手动下载并放置模型文件。
### 语音识别服务 (ASR)
本插件支持以下语音识别服务:
1. **FunASR**:本地语音识别模型,需要下载模型文件。无需配置 API 密钥。
2. **DoubaoASR**:豆包 ASR 服务,需要配置 appid 和 access_token。
3. **TencentASR**:腾讯云 ASR 服务,需要配置 appid、access_token 和 secret_key。
**注意**:如果您选择 DoubaoASR 或 TencentASR但未提供完整的配置信息系统将无法启动相应服务。请确保提供所有必要的参数。
### 大语言模型服务 (LLM)
本插件支持以下大语言模型服务:
1. **DoubaoLLM**:豆包大语言模型服务
2. **ChatGLMLLM**:智谱 AI 大语言模型服务
3. **DeepSeekLLM**DeepSeek 大语言模型服务
每种 LLM 服务都需要配置相应的 model_name 和 api_key。
### 如何获取各服务的配置信息
#### DoubaoASR (豆包语音识别)
- **获取地址**: [火山引擎语音服务](https://console.volcengine.com/speech/app)
- **appid**: 申请开通火山引擎语音合成服务后获取的 appid
- **access_token**: 开通后获取的访问令牌
#### TencentASR (腾讯云语音识别)
- **密钥申请**: [获取密钥](https://console.cloud.tencent.com/cam/capi)
- **免费资源**: [领取免费资源](https://console.cloud.tencent.com/asr/resourcebundle)
- **appid**: 腾讯云语音识别服务应用 ID
- **secret_id**: 获取的腾讯云语音识别 SecretID
- **secret_key**: 获取的腾讯云语音识别 SecretKey
#### DoubaoLLM (豆包大语言模型)
- **开通地址**: [开通服务](https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&OpenTokenDrawer=false)
- **获取密钥**: 开通后,进入[这里](https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D)获取
- **适用模型**: 推荐模型名 `doubao-pro-32k-functioncall-241028`
- **免费额度**: 开通后提供 500000 token 的免费额度
#### ChatGLMLLM (智谱 AI 大语言模型)
- **获取密钥**: [智谱 AI 平台](https://bigmodel.cn/usercenter/proj-mgmt/apikeys)
- **推荐模型**: `glm-4-flash` (免费模型,但需要注册并填写 API 密钥)
- **API 访问**: 模型通过 `https://open.bigmodel.cn/api/paas/v4/` 接口访问
#### DeepSeekLLM (DeepSeek 大语言模型)
- **获取密钥**: [DeepSeek 平台](https://platform.deepseek.com/)
- **模型名称**: 如 `deepseek-chat`
- **访问地址**: https://api.deepseek.com
### 语音合成服务 (TTS)
本插件支持多种语音合成服务:
#### EdgeTTS (微软 Edge 浏览器 TTS)
- **无需 API 密钥**: 免费使用的本地 TTS 服务
- **默认语音**: `zh-CN-XiaoxiaoNeural`,中文女声
#### DoubaoTTS (豆包/火山引擎 TTS)
- **配置参数**: 需要设置`tts.appid``tts.access_token``tts.voice`(可选)
- **获取地址**: [火山引擎语音合成](https://console.volcengine.com/speech/service/8)
- **购买建议**: 建议购买付费服务,起步价 30 元可获得 100 并发,免费版本只有 2 个并发
- **特色音色**: 湾湾小何音色可在[此处开通](https://console.volcengine.com/speech/service/10007)
- **音色设置**: 默认使用`BV001_streaming`,湾湾小何音色设置为`zh_female_wanwanxiaohe_moon_bigtts`
- **开通说明**: 购买服务后,可能需要等待约半小时才能使用
- **验证要求**: 系统会在启动时验证 appid 和 access_token如果缺少将无法启动
### FunASR 才会使用下面模型文件
您可以通过以下方式下载模型文件(正常情况下会自动下载):
1. 线路一:[阿里魔塔下载 SenseVoiceSmall](https://www.modelscope.cn/models/iic/SenseVoiceSmall/summary)
2. 线路二:[百度网盘下载 SenseVoiceSmall](https://pan.baidu.com/s/1HW_UmfLiXhWwMjzS0GIpWg?pwd=qvna) 提取码:`qvna`
下载后,请将模型文件放置在上述路径中,或通过文件编辑器上传到 addon 配置目录的 models/SenseVoiceSmall 文件夹中。
### 配置文件
配置文件位于加载项配置目录:
```
/config/data/.config.yaml
```
如果未找到配置文件,系统会自动创建默认配置文件。首次运行时,会提示您修改配置文件中的 API 密钥等重要信息。
### 初次运行
首次启动插件时,会出现以下流程:
1. 检查模型文件,不存在则自动下载
2. 检查配置文件,不存在则自动创建
3. 提示您修改配置文件中的 API 密钥和其他设置
4. 配置好后需重启插件应用更改
这些提示只会在首次运行时显示,后续启动不会重复提示。
## 技术实现
本插件基于以下技术实现:
1. 使用 Home Assistant 标准加载项结构
2. 采用 S6-Overlay 进行服务管理,提高稳定性和可靠性
3. 使用 addon_config 目录存储配置和模型文件,符合 Home Assistant 最佳实践
4. 自动同步 Home Assistant 加载项配置到服务器配置
## 连接 ESP32 设备
1. 确保 ESP32 设备与 Home Assistant 在同一网络
2. WebSocket 服务地址:`ws://<您的Home Assistant IP>:8000/xiaozhi/v1/`
3. 将 ESP32 设备配置为连接上述 WebSocket 地址
## 故障排除
如果遇到以下问题,请参考处理方法:
1. **语音识别出现韩文、日文、英文**:检查模型文件是否正确加载
2. **TTS 任务出错或超时**:检查网络连接和配置文件设置
3. **连接问题**:确保 ESP32 设备与 Home Assistant 在同一网络
4. **无法自动下载模型**:网络问题或服务器故障,请尝试手动下载
5. **配置问题**:如果在加载项页面修改的配置未生效,请重启加载项并检查日志
6. **ASR 配置不完整错误**:确保您选择的 ASR 服务(如 DoubaoASR 或 TencentASR已配置所有必要的参数
7. **TTS 配置不完整错误**:当选择 DoubaoTTS 时,确保已配置 appid 和 access_token

View File

@@ -0,0 +1,24 @@
# 冬瓜甄选addons小智 AI Server 最简化版
适用于 Home Assistant 的小智 AI Server 最简化版加载项。
## 功能特点
- 基于 WebSocket 的语音识别服务
- 支持多种语音识别服务FunASR 本地模型、豆包 ASR 在线服务、腾讯 ASR 在线服务)
- 支持大语言模型对话功能
- 自动下载模型和配置
- 支持常见架构aarch64 和 amd64
- 使用 S6-Overlay 管理服务
## 使用方法
1. 安装加载项
2. 配置语音识别服务 (ASR) 和大语言模型 (LLM) 参数
3. 点击启动,并查看日志,等待小智客户端接入
详细使用说明请参阅 DOCS.md 文档。
## 支持与反馈
本项目基于[xinnan-tech/xiaozhi-esp32-server](https://github.com/xinnan-tech/xiaozhi-esp32-server) 开发。

View File

@@ -0,0 +1,21 @@
name: "小智 AI Server 最简化版"
version: "0.3.4"
slug: "xiaozhi_esp32_server"
description: "小智 AI Server 最简化版 - 提供语音识别、对话和控制功能支持与ESP32设备通信"
url: "https://github.com/xinnan-tech/xiaozhi-esp32-server"
arch:
- aarch64
- amd64
startup: application
boot: manual
ports:
8000/tcp: 8000
ports_description:
8000/tcp: "WebSocket服务端口"
map:
- addon_config:rw
host_network: false
init: false
watchdog: "tcp://[HOST]:[PORT:8000]"
journald: true
image: r.hassbus.com/wghaos/xiaozhi-esp32-server

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB