智能体服务器xiaozhi-esp32-server配置与调试)
相关链接AI语音智能体开发日记一如何为“小智”服务器启用并调试 License 功能-CSDN博客AI语音智能体开发日记二解决 Wi-Fi 配网小程序的兼容性问题-CSDN博客AI语音智能体开发日记三解决小程序配网中的蓝牙命名与MAC地址获取问题-CSDN博客AI语音智能体开发日记四在FreeRTOS中构建线程安全的UART2通信模块-CSDN博客AI语音智能体开发日记五为智能设备注入“灵魂”——详解MCP工具的注册与使用-CSDN博客AI语音智能体开发日记六为智能体注入旋律——七牛云音乐服务的接入与避坑指南-CSDN博客AI语音智能体开发日记七搞定功放控制——详解GX8006平台Mute电平配置-CSDN博客AI语音智能体开发日记八LVGL 8.4.0 移植实战——从零构建嵌入式GUI-CSDN博客AI语音智能体开发日记九LVGL 8.4.0 中文字体配置全攻略-CSDN博客AI语音智能体开发日记十LVGL 图标字体实战——从 FontAwesome 到屏幕显示-CSDN博客AI语音智能体开发日记十一为智能设备“声”临其境——详解音频资源自动化生成流程-CSDN博客AI语音智能体开发日记十二GX8006 固件定制指南——从双唤醒词到 UART 音频传输-CSDN博客AI语音智能体开发日记十三一次由寄存器溢出引发的串口波特率“玄学”问题排查-CSDN博客推荐链接AI语音智能体架构解析一系统架构全景图-CSDN博客AI语音智能体架构解析二大模型AI 的大脑-CSDN博客AI语音智能体架构解析三智控台指挥中心-CSDN博客AI语音智能体架构解析四AI 语音终端执行器官-CSDN博客AI语音智能体架构解析五小程序/APP遥控器-CSDN博客推荐链接AI 应用 图文 解说 (一) -- 百度智能云 实现 语音 聊天-CSDN博客AI 应用 图文 解说 (二) -- 百度智能云 ASR LIM TTS 语音AI助手程序 -CSDN博客本文档记录了将小智 ESP32 服务器从默认配置FunASR / EdgeTTS / ChatGLMLLM迁移至腾讯云 ASR/TTS 和通义千问 LLM 的完整过程涵盖配置文件修改、报错排查与解决、服务验证与测试三个阶段。第一阶段配置文件修改本阶段主要涉及将 config.yaml 中的服务模块切换为腾讯云ASR/TTS和通义千问LLM并填入相应的密钥。1.关键配置项修改需要修改 config.yaml 文件通常位于 ~/server/xiaozhi-esp32-server/main/xiaozhi-server 目录下。配置模块修改项目标值/说明ASR改为 TencentASRTTS改为 TencentTTSLLM保持 AliLLMTencentASRappid / secret_id / key填入腾讯云语音识别服务的密钥TencentTTSappid / secret_id / key填入腾讯云语音合成服务的密钥AliLLMapi_key填入通义千问的 API Key2.快速修改命令Linux以下命令可直接在 Ubuntu 服务器终端运行用于批量替换配置注意需先替换命令中的占位符为真实密钥。cd ~/server/xiaozhi-esp32-server/main/xiaozhi-server# 1. 备份原配置cp config.yaml config.yaml.bak# 2. 修改选中的模块sed -i s/ASR: FunASR/ASR: TencentASR/ config.yamlsed -i s/TTS: EdgeTTS/TTS: TencentTTS/ config.yaml# 3. 修改腾讯云 ASR 密钥 (请替换为实际值)sed -i s/appid: 你的腾讯语音合成服务appid/appid: 你的AppID/ config.yamlsed -i s/secret_id: 你的腾讯语音合成服务secret_id/secret_id: 你的SecretID/ config.yamlsed -i s/secret_key: 你的腾讯语音合成服务secret_key/secret_key: 你的SecretKey/ config.yaml# 4. 修改腾讯云 TTS 密钥 (请替换为实际值)sed -i s/appid: 你的腾讯云AppId/appid: 你的AppID/ config.yamlsed -i s/secret_id: 你的腾讯云SecretID/secret_id: 你的SecretID/ config.yamlsed -i s/secret_key: 你的腾讯云SecretKey/secret_key: 你的SecretKey/ config.yaml# 5. 修改通义千问 API Keysed -i s/api_key: 你的deepseek web key/api_key: sk-你的通义千问API密钥/ config.yaml大语言模型设置第二阶段报错排查与解决在修改配置并尝试启动服务时遇到了报错经过分析发现是配置文件不同步导致的问题。1.报错现象运行 python app.py 后日志显示以下错误[core.providers.llm.openai.openai]-ERROR-配置错误: LLM 的 API key 未设置,当前值为: 你的chat-glm web key...初始化组件: llm成功 ChatGLMLLM注意日志显示系统仍在尝试初始化 ChatGLMLLM而不是配置的 AliLLM。2.原因分析• 配置未生效在 Windows 上修改了配置文件但 Ubuntu 服务器上运行的仍然是旧的配置文件。• 缓存覆盖可能存在 data/.config.yaml 文件覆盖了主配置。3.解决方案推荐直接在 Ubuntu 服务器上操作• 检查当前配置grep -A 10 selected_module: config.yaml如果显示的是 ChatGLMLLM说明配置未更新。• 强制更新配置# 修正 LLM 配置sed -i s/LLM: ChatGLMLLM/LLM: AliLLM/ config.yaml# 再次确认 ASR/TTS 配置sed -i s/ASR: FunASR/ASR: TencentASR/ config.yamlsed -i s/TTS: EdgeTTS/TTS: TencentTTS/ config.yaml• 检查覆盖文件# 检查是否存在覆盖配置ls -la data/.config.yaml# 如果存在且配置不对建议删除rm data/.config.yaml• 重启服务python app.py第三阶段服务验证与测试当报错消失日志显示 初始化组件: asr成功 TencentASR 等信息后说明服务已正常启动。可通过以下方式测试。测试错误test_page.html的hello消息❌ 失败json{type: hello,device_id: ...,device_name: ...,device_mac: ...,token: ...,features: {mcp: true}}缺少了 version、transport 和 audio_params 字段查看 helloHandle.py服务器会根据audio_params设置音频格式如果缺失可能导致后续音频处理失败。手动修改文件websocket.js找到 sendHelloMessage 方法约第29-38行将helloMessage修改为const helloMessage {type: hello,version: 1,transport: websocket,device_id: config.deviceId,device_name: config.deviceName,device_mac: config.deviceMac,token: config.token,features: {mcp: true},audio_params: {format: opus,sample_rate: 16000,channels: 1,frame_duration: 60,play_buffer_duration: 320}};2.验证终端里进入test文件夹python -m http.server 8006测试页面输入几点了大模型会回答当前时间。服务器后台也会打印对话