# 小智 AI Server 最简化版 本加载项提供小智 ESP32 语音识别服务器功能,可与 ESP32 设备配合使用实现语音识别功能。 ## 安装 1. 更换成小智AI音箱(HA专用固件),烧录地址:https://xzfw.wghaos.com/ 并配置网络 1. 在 Home Assistant 的加载项商店中添加此仓库地址或复制到本地加载项目录 1. 安装"小智 AI Server 最简化版"加载项 1. 配置加载项 ## 配置参数 | 参数 | 描述 | | ------------------------------------ | --------------------------------- | | 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