From 69735207e605046478cc494c7954b5ab41a42f5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A3=E5=8D=97=E7=A7=91=E6=8A=80?= Date: Sun, 9 Mar 2025 22:33:45 +0800 Subject: [PATCH] =?UTF-8?q?update:=E6=A0=B9=E6=8D=AE=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9B=B4=E6=96=B0=E6=95=99=E7=A8=8B=E6=96=87=E6=A1=A3?= =?UTF-8?q?=20(#252)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update:增加意图识别、记忆功能 * update:根据新版本更新教程文档 --------- Co-authored-by: hrz <1710360675@qq.com> --- README.md | 79 +++++++++++++++++++++++------------------- docs/Deployment.md | 17 ++++++++- docs/docker-build.md | 45 +++++------------------- docs/firmware-build.md | 16 +++++++++ 4 files changed, 84 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index 08df7e62..ece6f772 100644 --- a/README.md +++ b/README.md @@ -153,16 +153,18 @@ server: ### LLM 语言模型 -| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | -|:---:|:------------------:|:---------------------:|:--------:|:-----------------------------------------------------------------:| -| LLM | 阿里百炼 (AliLLM) | openai 接口调用 | 消耗 token | [点击申请密钥](https://bailian.console.aliyun.com/?apiKey=1#/api-key) | -| LLM | 深度求索 (DeepSeekLLM) | openai 接口调用 | 消耗 token | [点击申请密钥](https://platform.deepseek.com/) | -| LLM | 智谱(ChatGLMLLM) | openai 接口调用 | 免费 | 虽然免费,仍需[点击申请密钥](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) | -| LLM | OllamaLLM | ollama 接口调用 | 免费/自定义 | 需预先下载模型(`ollama pull`),服务地址:`http://localhost:11434` | -| LLM | DifyLLM | dify 接口调用 | 消耗 token | 本地化部署,注意配置提示词需在 Dify 控制台设置 | -| LLM | GeminiLLM | gemini 接口调用 | 免费 | [点击申请密钥](https://aistudio.google.com/apikey) | -| LLM | CozeLLM | coze 接口调用 | 消耗 token | 需提供 bot_id、user_id 及个人令牌 | -| LLM | Home Assistant | homeassistant语音助手接口调用 | 免费 | 需提供home assistant令牌 | +| 类型 | 平台名称 | 使用方式 | 收费模式 | 备注 | +|:---:|:------------------:|:---------------------:|:-----------:|:-----------------------------------------------------------------------------------------------------------------------:| +| LLM | 阿里百炼 (AliLLM) | openai 接口调用 | 消耗 token | [点击申请密钥](https://bailian.console.aliyun.com/?apiKey=1#/api-key) | +| LLM | DoubaoLLM | openai 接口调用 | 消耗 token | [点击申请密钥](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-pro-32k&projectName=undefined) | +| LLM | 深度求索 (DeepSeekLLM) | openai 接口调用 | 消耗 token | [点击申请密钥](https://platform.deepseek.com/) | +| LLM | 智谱(ChatGLMLLM) | openai 接口调用 | 免费 | 虽然免费,仍需[点击申请密钥](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) | +| LLM | OllamaLLM | ollama 接口调用 | 免费/消耗 token | 需预先下载模型(`ollama pull`),服务地址:`http://localhost:11434` | +| LLM | DifyLLM | dify 接口调用 | 免费/消耗 token | 本地化部署,注意配置提示词需在 Dify 控制台设置 | +| LLM | FastgptLLM | fastgpt 接口调用 | 免费/消耗 token | 本地化部署,注意配置提示词需在 Fastgpt 控制台设置 | +| LLM | GeminiLLM | gemini 接口调用 | 免费 | [点击申请密钥](https://aistudio.google.com/apikey) | +| LLM | CozeLLM | coze 接口调用 | 消耗 token | 需提供 bot_id、user_id 及个人令牌 | +| LLM | Home Assistant | homeassistant语音助手接口调用 | 免费 | 需提供home assistant令牌 | 实际上,任何支持 openai 接口调用的 LLM 均可接入使用。 @@ -174,10 +176,16 @@ server: |:---:|:----------------------:|:----:|:--------:|:-------------------------------------------------------------------------:| | TTS | EdgeTTS | 接口调用 | 免费 | 默认 TTS,基于微软语音合成技术 | | TTS | 火山引擎豆包 TTS (DoubaoTTS) | 接口调用 | 消耗 token | [点击创建密钥](https://console.volcengine.com/speech/service/8);建议使用付费版本以获得更高并发 | +| TTS | AliyunTTS | 接口调用 | 消耗 token | [点击创建密钥](https://nls-portal.console.aliyun.com/applist) | | TTS | CosyVoiceSiliconflow | 接口调用 | 消耗 token | 需申请硅基流动 API 密钥;输出格式为 wav | +| TTS | TTS302AI | 接口调用 | 消耗 token | [点击创建密钥](https://dash.302.ai/apis/list) | | TTS | CozeCnTTS | 接口调用 | 消耗 token | 需提供 Coze API key;输出格式为 wav | +| TTS | ACGNTTS | 接口调用 | 消耗 token | [联系网站管理员购买密钥](www.ttson.cn) | +| TTS | OpenAITTS | 接口调用 | 消耗 token | 境外使用,境外购买 | | TTS | FishSpeech | 接口调用 | 免费/自定义 | 本地启动 TTS 服务;启动方法见配置文件内说明 | | TTS | GPT_SOVITS_V2 | 接口调用 | 免费/自定义 | 本地启动 TTS 服务,适用于个性化语音合成场景 | +| TTS | GPT_SOVITS_V3 | 接口调用 | 免费/自定义 | 本地启动 TTS 服务,适用于个性化语音合成场景 | +| TTS | MinimaxTTS | 接口调用 | 免费/自定义 | 本地启动 TTS 服务,适用于个性化语音合成场景 | --- @@ -245,39 +253,18 @@ server: 点这里查看[固件编译](./docs/firmware-build.md)的详细过程。 -编译成功且联网成功后,通过唤醒词唤醒小智,留意server端输出的控制台信息。 +烧录成功且联网成功后,通过唤醒词唤醒小智,留意server端输出的控制台信息。 --- ## 常见问题 ❓ -### 1、TTS 经常失败,经常超时 ⏰ - -建议:如果 `EdgeTTS` 经常失败,请先检查是否使用了代理(梯子)。如果使用了,请尝试关闭代理后再试; -如果用的是火山引擎的豆包 TTS,经常失败时建议使用付费版本,因为测试版本仅支持 2 个并发。 - -### 2、我想通过小智控制电灯、空调、远程开关机等操作 💡 - -建议:在配置文件中将 `LLM` 设置为 `HomeAssistant`,通过 调用`HomeAssistant`接口实现相关控制。 - -### 3、我说话很慢,停顿时小智老是抢话 🗣️ - -建议:在配置文件中找到如下部分,将 `min_silence_duration_ms` 的值调大(例如改为 `1000`): - -```yaml -VAD: - SileroVAD: - threshold: 0.5 - model_dir: models/snakers4_silero-vad - min_silence_duration_ms: 700 # 如果说话停顿较长,可将此值调大 -``` - -### 4、为什么我说的话,小智识别出来很多韩文、日文、英文?🇰🇷 +### 1、为什么我说的话,小智识别出来很多韩文、日文、英文?🇰🇷 建议:检查一下`models/SenseVoiceSmall`是否已经有`model.pt` 文件,如果没有就要下载,查看这里[下载语音识别模型文件](docs/Deployment.md#模型文件) -### 5、为什么会出现“TTS 任务出错 文件不存在”?📁 +### 2、为什么会出现“TTS 任务出错 文件不存在”?📁 建议:检查一下是否正确使用`conda` 安装了`libopus`和`ffmpeg`库。 @@ -288,7 +275,12 @@ conda install conda-forge::libopus conda install conda-forge::ffmpeg ``` -### 6、如何提高小智对话响应速度? ⚡ +### 3、TTS 经常失败,经常超时 ⏰ + +建议:如果 `EdgeTTS` 经常失败,请先检查是否使用了代理(梯子)。如果使用了,请尝试关闭代理后再试; +如果用的是火山引擎的豆包 TTS,经常失败时建议使用付费版本,因为测试版本仅支持 2 个并发。 + +### 4、如何提高小智对话响应速度? ⚡ 本项目默认配置为低成本方案,建议初学者先使用默认免费模型,解决“跑得动”的问题,再优化“跑得快”。 如需提升响应速度,可尝试更换各组件。以下为各组件的响应速度测试数据(仅供参考,不构成承诺): @@ -319,7 +311,6 @@ LLM 性能排行: |:-----------|:-----------|:--------| | AliLLM | 0.547s | 1.485s | | ChatGLMLLM | 0.677s | 3.057s | -| OllamaLLM | 0.003s | 0.003s | TTS 性能排行: @@ -346,6 +337,22 @@ TTS 性能排行: - LLM:`AliLLM` - TTS:`DoubaoTTS` +### 5、我说话很慢,停顿时小智老是抢话 🗣️ + +建议:在配置文件中找到如下部分,将 `min_silence_duration_ms` 的值调大(例如改为 `1000`): + +```yaml +VAD: + SileroVAD: + threshold: 0.5 + model_dir: models/snakers4_silero-vad + min_silence_duration_ms: 700 # 如果说话停顿较长,可将此值调大 +``` + +### 6、我想通过小智控制电灯、空调、远程开关机等操作 💡 + +建议:在配置文件中将 `LLM` 设置为 `HomeAssistant`,通过 调用`HomeAssistant`接口实现相关控制。 + ### 7、更多问题,可联系我们反馈 💬 我们的联系方式放在[百度网盘中,点击前往](https://pan.baidu.com/s/1x6USjvP1nTRsZ45XlJu65Q),提取码是`223y`。 diff --git a/docs/Deployment.md b/docs/Deployment.md index 84b962ed..97a11c84 100644 --- a/docs/Deployment.md +++ b/docs/Deployment.md @@ -294,4 +294,19 @@ LLM: 这个信息很有用的,后面`编译esp32固件`需要用到。 -接下来,你就可以开始 [编译esp32固件](firmware-build.md)了。 \ No newline at end of file +接下来,你就可以开始 [编译esp32固件](firmware-build.md)了。 + + +以下是一些常见问题,供参考: + +[1、为什么我说的话,小智识别出来很多韩文、日文、英文](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[2、为什么会出现“TTS 任务出错 文件不存在”?](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[3、TTS 经常失败,经常超时](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[4、如何提高小智对话响应速度?](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[5、我说话很慢,停顿时小智老是抢话](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[6、我想通过小智控制电灯、空调、远程开关机等操作](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) diff --git a/docs/docker-build.md b/docs/docker-build.md index bbce9de5..45102a7d 100644 --- a/docs/docker-build.md +++ b/docs/docker-build.md @@ -8,41 +8,14 @@ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin ``` 2、编译docker镜像 ``` -#进入xiaozhi-server目录 -cd main/xiaozhi-server/ -# 普通编译 -docker build -t xiaozhi-esp32-server:local -f ./Dockerfile-pip . -``` -3、测试本地镜像 -``` -docker stop xiaozhi-esp32-server -docker rm xiaozhi-esp32-server - -docker run -d --name xiaozhi-esp32-server --restart always -p 8000:8000 -v $(pwd)/data/.config.yaml:/opt/xiaozhi-esp32-server/config.yaml xiaozhi-esp32-server:local - -docker logs -f xiaozhi-esp32-server +#进入项目根目录 +# 编译server +docker build -t xiaozhi-esp32-server:server_latest -f ./Dockerfile-server . +# 编译web +docker build -t xiaozhi-esp32-server:web_latest -f ./Dockerfile-web . +# 编译完成后,可以使用docker-compose启动项目 +# docker-compose.yml你需要修改成自己编译的镜像版本 +cd main/xiaozhi-server +docker-compose up -d ``` -5、发布腾讯云镜像 -``` -# amd64 -docker tag xiaozhi-esp32-server:local ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest-amd64 -docker push ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest-amd64 - -# arm64 -docker tag xiaozhi-esp32-server:local ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest-arm64 -docker push ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest-arm64 - -# 推送最新版本 -docker manifest rm ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest -docker manifest create ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest-amd64 ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest-arm64 --amend -docker manifest inspect ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest -docker manifest push ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest - -``` -6、运行线上镜像 -``` -cd /Users/hrz/myworkspace/docker-java-env/thirddata/ -docker run -d --name xiaozhi-esp32-server --restart always -p 8000:8000 -v $(pwd)/config.yaml:/opt/xiaozhi-esp32-server/config.yaml ccr.ccs.tencentyun.com/xinnan/xiaozhi-esp32-server:latest -docker logs -f xiaozhi-esp32-server -``` \ No newline at end of file diff --git a/docs/firmware-build.md b/docs/firmware-build.md index cacfd45f..b726826c 100644 --- a/docs/firmware-build.md +++ b/docs/firmware-build.md @@ -87,3 +87,19 @@ https://espressif.github.io/esp-launchpad/ 打开这个教程,[Flash工具/Web端烧录固件(无IDF开发环境)](https://ccnphfhqs21z.feishu.cn/wiki/Zpz4wXBtdimBrLk25WdcXzxcnNS)。 翻到:`方式二:ESP-Launchpad 浏览器WEB端烧录`,从`3. 烧录固件/下载到开发板`开始,按照教程操作。 + +烧录成功且联网成功后,通过唤醒词唤醒小智,留意server端输出的控制台信息。 + +以下是一些常见问题,供参考: + +[1、为什么我说的话,小智识别出来很多韩文、日文、英文](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[2、为什么会出现“TTS 任务出错 文件不存在”?](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[3、TTS 经常失败,经常超时](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[4、如何提高小智对话响应速度?](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[5、我说话很慢,停顿时小智老是抢话](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-) + +[6、我想通过小智控制电灯、空调、远程开关机等操作](../README.md#1tts-%E7%BB%8F%E5%B8%B8%E5%A4%B1%E8%B4%A5%E7%BB%8F%E5%B8%B8%E8%B6%85%E6%97%B6-)