From a2c3da55cdb017e92c1ead3480d187a8ba623ea1 Mon Sep 17 00:00:00 2001 From: 3030332422 <3030332422@qq.com> Date: Tue, 12 May 2026 09:45:43 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E5=85=B3=E4=BA=8E=E5=AF=B9digit?= =?UTF-8?q?al-human=E7=9A=84markdown=E6=96=87=E6=A1=A3=E7=9A=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +- README.md | 2 +- README_de.md | 2 +- README_en.md | 2 +- README_pt_BR.md | 2 +- README_vi.md | 2 +- docs/Deployment.md | 2 +- docs/Deployment_all.md | 4 +- docs/all-in-one-digital-human-setup.md | 32 ++++++------ docs/firmware-build.md | 4 +- docs/mcp-endpoint-enable.md | 2 +- docs/mcp-endpoint-integration.md | 2 +- docs/mcp-vision-integration.md | 4 +- docs/paddlespeech-deploy.md | 2 +- main/README.md | 53 +++++++++++++++++++- main/xiaozhi-server/app.py | 2 +- main/xiaozhi-server/core/websocket_server.py | 2 +- 17 files changed, 88 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index 225766d9..308c325a 100644 --- a/.gitignore +++ b/.gitignore @@ -187,6 +187,7 @@ uploadfile !main/manager-mobile/**/.env* !main/manager-mobile/**/*.json !main/xiaozhi-server/**/*.json -main/xiaozhi-server/test/wakeword_runtime/models -main/xiaozhi-server/test/wakeword_runtime/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01 +!main/digital-human/**/*.json +main/digital-human/wakeword_runtime/models +main/digital-human/wakeword_runtime/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01 sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01.tar.bz2 diff --git a/README.md b/README.md index 43607867..704868ee 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,7 @@ Websocket接口地址: wss://2662r3426b.vicp.fun/xiaozhi/v1/ | 工具名称 | 位置 | 使用方法 | 功能说明 | |:---:|:---|:---:|:---:| -| 音频交互测试工具 | main》xiaozhi-server》test》test_page.html | 使用谷歌浏览器直接打开 | 测试音频播放和接收功能,验证Python端音频处理是否正常 | +| 音频交互测试工具 | main》digital-human》index.html | 在 `main/digital-human` 执行 `python start.py` 后访问 `http://127.0.0.1:8006/index.html` | 测试音频播放和接收功能,验证Python端音频处理是否正常 | | 模型响应测试工具 | main》xiaozhi-server》performance_tester.py | 执行 `python performance_tester.py` | 测试ASR(语音识别)、LLM(大模型)、VLLM(视觉模型)、TTS(语音合成)三个核心模块的响应速度 | > 💡 提示:测试模型速度时,只会测试配置了密钥的模型。 diff --git a/README_de.md b/README_de.md index 88437de4..eaf9a336 100644 --- a/README_de.md +++ b/README_de.md @@ -224,7 +224,7 @@ Dieses Projekt bietet die folgenden Testwerkzeuge, um Ihnen bei der Überprüfun | Werkzeugname | Standort | Verwendungsmethode | Funktionsbeschreibung | |:---:|:---|:---:|:---:| -| Audio-Interaktionstesttool | main》xiaozhi-server》test》test_page.html | Direkt mit Google Chrome öffnen | Testet Audio-Wiedergabe- und Empfangsfunktionen, überprüft, ob die Python-seitige Audioverarbeitung normal ist | +| Audio-Interaktionstesttool | main》digital-human》index.html | In `main/digital-human` `python start.py` ausführen und dann `http://127.0.0.1:8006/index.html` öffnen | Testet Audio-Wiedergabe- und Empfangsfunktionen, überprüft, ob die Python-seitige Audioverarbeitung normal ist | | Modell-Reaktionstesttool | main》xiaozhi-server》performance_tester.py | Ausführen `python performance_tester.py` | Testet die Reaktionsgeschwindigkeit von ASR (Spracherkennung), LLM (großes Modell), VLLM (Vision-Modell), TTS (Sprachsynthese) drei Kernmodulen | > 💡 Hinweis: Beim Testen der Modellgeschwindigkeit werden nur Modelle mit konfigurierten Schlüsseln getestet. diff --git a/README_en.md b/README_en.md index 070771a7..10540b87 100644 --- a/README_en.md +++ b/README_en.md @@ -224,7 +224,7 @@ This project provides the following testing tools to help you verify the system | Tool Name | Location | Usage Method | Function Description | |:---:|:---|:---:|:---:| -| Audio Interaction Test Tool | main》xiaozhi-server》test》test_page.html | Open directly with Google Chrome | Tests audio playback and reception functions, verifies if Python-side audio processing is normal | +| Audio Interaction Test Tool | main》digital-human》index.html | Run `python start.py` in `main/digital-human`, then open `http://127.0.0.1:8006/index.html` | Tests audio playback and reception functions, verifies if Python-side audio processing is normal | | Model Response Test Tool | main》xiaozhi-server》performance_tester.py | Execute `python performance_tester.py` | Tests response speed of three core modules: ASR(speech recognition), LLM(large model), VLLM(vision model), TTS(speech synthesis) | > 💡 Note: When testing model speed, only models with configured keys will be tested. diff --git a/README_pt_BR.md b/README_pt_BR.md index d9ed5562..5999f422 100644 --- a/README_pt_BR.md +++ b/README_pt_BR.md @@ -224,7 +224,7 @@ Este projeto fornece as seguintes ferramentas de teste para ajudá-lo a verifica | Nome da Ferramenta | Localização | Método de Uso | Descrição da Função | |:---:|:---|:---:|:---:| -| Ferramenta de Teste de Interação por Áudio | main》xiaozhi-server》test》test_page.html | Abrir diretamente com Google Chrome | Testa as funções de reprodução e recepção de áudio, verifica se o processamento de áudio no lado Python está normal | +| Ferramenta de Teste de Interação por Áudio | main》digital-human》index.html | Execute `python start.py` em `main/digital-human` e depois abra `http://127.0.0.1:8006/index.html` | Testa as funções de reprodução e recepção de áudio, verifica se o processamento de áudio no lado Python está normal | | Ferramenta de Teste de Resposta de Modelo | main》xiaozhi-server》performance_tester.py | Execute `python performance_tester.py` | Testa a velocidade de resposta dos três módulos principais: ASR(reconhecimento de fala), LLM(modelo de linguagem), VLLM(modelo de visão), TTS(síntese de voz) | > 💡 Nota: Ao testar a velocidade dos modelos, apenas os modelos com chaves configuradas serão testados. diff --git a/README_vi.md b/README_vi.md index 157c0a6f..a2dfb750 100644 --- a/README_vi.md +++ b/README_vi.md @@ -225,7 +225,7 @@ Dự án này cung cấp các công cụ kiểm tra sau để giúp bạn xác m | Tên công cụ | Vị trí | Phương pháp sử dụng | Mô tả chức năng | |:---:|:---|:---:|:---:| -| Công cụ kiểm tra tương tác âm thanh | main》xiaozhi-server》test》test_page.html | Mở trực tiếp bằng trình duyệt Google Chrome | Kiểm tra chức năng phát và nhận âm thanh, xác minh xử lý âm thanh phía Python có bình thường không | +| Công cụ kiểm tra tương tác âm thanh | main》digital-human》index.html | Chạy `python start.py` trong `main/digital-human`, sau đó mở `http://127.0.0.1:8006/index.html` | Kiểm tra chức năng phát và nhận âm thanh, xác minh xử lý âm thanh phía Python có bình thường không | | Công cụ kiểm tra phản hồi mô hình | main》xiaozhi-server》performance_tester.py | Thực hiện `python performance_tester.py` | Kiểm tra tốc độ phản hồi của ba module cốt lõi ASR(Nhận dạng giọng nói), LLM(Mô hình lớn), VLLM(Mô hình thị giác), TTS(Tổng hợp giọng nói) | > 💡 Gợi ý: Khi kiểm tra tốc độ mô hình, chỉ kiểm tra các mô hình đã cấu hình khóa. diff --git a/docs/Deployment.md b/docs/Deployment.md index aff1287e..28836f18 100644 --- a/docs/Deployment.md +++ b/docs/Deployment.md @@ -241,7 +241,7 @@ LLM: 250427 13:04:20[0.3.11_SiFuChTTnofu][__main__]-INFO-OTA接口是 http://192.168.4.123:8003/xiaozhi/ota/ 250427 13:04:20[0.3.11_SiFuChTTnofu][__main__]-INFO-Websocket地址是 ws://192.168.4.123:8000/xiaozhi/v1/ 250427 13:04:20[0.3.11_SiFuChTTnofu][__main__]-INFO-=======上面的地址是websocket协议地址,请勿用浏览器访问======= -250427 13:04:20[0.3.11_SiFuChTTnofu][__main__]-INFO-如想测试websocket请用谷歌浏览器打开test目录下的test_page.html +250427 13:04:20[0.3.11_SiFuChTTnofu][__main__]-INFO-如想测试websocket请启动digital-human模块,打开浏览器交互测试 250427 13:04:20[0.3.11_SiFuChTTnofu][__main__]-INFO-======================================================= ``` diff --git a/docs/Deployment_all.md b/docs/Deployment_all.md index f7d87cc3..ea68b6ef 100644 --- a/docs/Deployment_all.md +++ b/docs/Deployment_all.md @@ -198,7 +198,7 @@ docker logs -f xiaozhi-esp32-server ``` 25-02-23 12:01:09[core.websocket_server] - INFO - Websocket地址是 ws://xxx.xx.xx.xx:8000/xiaozhi/v1/ 25-02-23 12:01:09[core.websocket_server] - INFO - =======上面的地址是websocket协议地址,请勿用浏览器访问======= -25-02-23 12:01:09[core.websocket_server] - INFO - 如想测试websocket请用谷歌浏览器打开test目录下的test_page.html +25-02-23 12:01:09[core.websocket_server] - INFO - 如想测试websocket请启动digital-human模块,打开浏览器交互测试 25-02-23 12:01:09[core.websocket_server] - INFO - ======================================================= ``` @@ -431,7 +431,7 @@ python app.py ``` 25-02-23 12:01:09[core.websocket_server] - INFO - Server is running at ws://xxx.xx.xx.xx:8000/xiaozhi/v1/ 25-02-23 12:01:09[core.websocket_server] - INFO - =======上面的地址是websocket协议地址,请勿用浏览器访问======= -25-02-23 12:01:09[core.websocket_server] - INFO - 如想测试websocket请用谷歌浏览器打开test目录下的test_page.html +25-02-23 12:01:09[core.websocket_server] - INFO - 如想测试websocket请启动digital-human模块,打开浏览器交互测试 25-02-23 12:01:09[core.websocket_server] - INFO - ======================================================= ``` diff --git a/docs/all-in-one-digital-human-setup.md b/docs/all-in-one-digital-human-setup.md index fbee7aa1..ebee66d5 100644 --- a/docs/all-in-one-digital-human-setup.md +++ b/docs/all-in-one-digital-human-setup.md @@ -290,11 +290,11 @@ conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r #### 3. 上传项目文件 -将开发机上的 `main/xiaozhi-server/test/` 整个目录上传到一体机的 `~/test/` 目录: +将开发机上的 `main/digital-human/` 整个目录上传到一体机的 `~/digital-human/` 目录: ```bash # 在开发机上执行(将 <一体机IP> 替换为实际 IP) -scp -r main/xiaozhi-server/test/ xz@<一体机IP>:~/test/ +scp -r main/digital-human/ xz@<一体机IP>:~/digital-human/ ``` #### 4. 安装系统依赖 @@ -308,14 +308,14 @@ sudo apt install libportaudio2 portaudio19-dev libasound2-plugins -y #### 5. 安装 Python 依赖 ```bash -cd ~/test/wakeword_runtime +cd ~/digital-human/wakeword_runtime pip install numpy pip install -r requirements.txt ``` #### 6. 下载唤醒词模型 -模型文件不包含在项目中,需要单独下载配置,详见 `wakeword_runtime/README.md` 中的"模型下载"章节。 +模型文件不包含在项目中,需要单独下载配置,详见 [docs/digital-human-wakeword.md](digital-human-wakeword.md) 中的“模型下载”章节。 #### 7. 修改 Openbox 自启动脚本 @@ -376,7 +376,7 @@ while true; do --disable-external-intent-requests \ --autoplay-policy=no-user-gesture-required \ --use-fake-ui-for-media-stream \ - "http://127.0.0.1:8006/test_page.html" + "http://127.0.0.1:8006/index.html" sleep 2 done & EOF @@ -395,9 +395,9 @@ id -u $(whoami) 然后用查到的 UID 替换下面 `1000`(通常第一个用户就是 1000): ```bash -sudo tee /etc/systemd/system/xiaozhi-test.service << 'EOF' +sudo tee /etc/systemd/system/digital-human.service << 'EOF' [Unit] -Description=XiaoZhi Test Runtime +Description=Digital Human Runtime After=network.target sound.target [Service] @@ -405,9 +405,9 @@ Type=simple User=xz Environment=XDG_RUNTIME_DIR=/run/user/1000 Environment=PULSE_SERVER=unix:/run/user/1000/pulse/native -WorkingDirectory=/home/xz/test +WorkingDirectory=/home/xz/digital-human ExecStartPre=/bin/sleep 10 -ExecStart=/home/xz/miniconda3/envs/test/bin/python start_test_runtime.py +ExecStart=/home/xz/miniconda3/envs/test/bin/python start.py Restart=on-failure RestartSec=10 @@ -426,17 +426,17 @@ EOF ```bash sudo systemctl daemon-reload -sudo systemctl enable xiaozhi-test -sudo systemctl start xiaozhi-test +sudo systemctl enable digital-human +sudo systemctl start digital-human ``` #### 9. 常用服务管理命令 ```bash -sudo systemctl start xiaozhi-test # 立即启动 -sudo systemctl stop xiaozhi-test # 停止 -sudo systemctl restart xiaozhi-test # 重启 -sudo systemctl status xiaozhi-test # 查看状态 -journalctl -u xiaozhi-test -f # 查看实时日志 +sudo systemctl start digital-human # 立即启动 +sudo systemctl stop digital-human # 停止 +sudo systemctl restart digital-human # 重启 +sudo systemctl status digital-human # 查看状态 +journalctl -u digital-human -f # 查看实时日志 ``` diff --git a/docs/firmware-build.md b/docs/firmware-build.md index 64584b27..2e274464 100644 --- a/docs/firmware-build.md +++ b/docs/firmware-build.md @@ -13,9 +13,9 @@ http://192.168.1.25:8003/xiaozhi/ota/ ``` 如果显示“OTA接口运行正常,向设备发送的websocket地址是:ws://xxx:8000/xiaozhi/v1/ -你可以使用项目自带的`test_page.html`测试一下,是否能连上ota页面输出的websocket地址。 +你可以启动`digital-human`模块后打开`index.html`测试一下,是否能连上ota页面输出的websocket地址。 -如果访问不到,你需要到配置文件`.config.yaml`里修改`server.websocket`的地址,重启后再重新测试,直到`test_page.html`能正常访问。 +如果访问不到,你需要到配置文件`.config.yaml`里修改`server.websocket`的地址,重启后再重新测试,直到`index.html`能正常访问。 成功后,请往下进行第2步 diff --git a/docs/mcp-endpoint-enable.md b/docs/mcp-endpoint-enable.md index 2d86f802..5baf58e7 100644 --- a/docs/mcp-endpoint-enable.md +++ b/docs/mcp-endpoint-enable.md @@ -118,7 +118,7 @@ mcp_endpoint: ws://192.168.1.25:8004/mcp_endpoint/mcp/?token=def 250705[__main__]-INFO-mcp接入点是 ws://192.168.1.25:8004/mcp_endpoint/mcp/?token=abc 250705[__main__]-INFO-Websocket地址是 ws://192.168.1.25:8000/xiaozhi/v1/ 250705[__main__]-INFO-=======上面的地址是websocket协议地址,请勿用浏览器访问======= -250705[__main__]-INFO-如想测试websocket请用谷歌浏览器打开test目录下的test_page.html +250705[__main__]-INFO-如想测试websocket请启动digital-human模块,打开浏览器交互测试 250705[__main__]-INFO-============================================================= ``` diff --git a/docs/mcp-endpoint-integration.md b/docs/mcp-endpoint-integration.md index 91d62278..eec41963 100644 --- a/docs/mcp-endpoint-integration.md +++ b/docs/mcp-endpoint-integration.md @@ -23,7 +23,7 @@ 250705[__main__]-INFO-mcp接入点是 ws://192.168.1.25:8004/mcp_endpoint/mcp/?token=abc 250705[__main__]-INFO-Websocket地址是 ws://192.168.1.25:8000/xiaozhi/v1/ 250705[__main__]-INFO-=======上面的地址是websocket协议地址,请勿用浏览器访问======= -250705[__main__]-INFO-如想测试websocket请用谷歌浏览器打开test目录下的test_page.html +250705[__main__]-INFO-如想测试websocket请启动digital-human模块,打开浏览器交互测试 250705[__main__]-INFO-============================================================= ``` diff --git a/docs/mcp-vision-integration.md b/docs/mcp-vision-integration.md index dbeaa8c2..5d0cd8c6 100644 --- a/docs/mcp-vision-integration.md +++ b/docs/mcp-vision-integration.md @@ -58,7 +58,7 @@ docker restart xiaozhi-esp32-server 2025-06-01 **** - 视觉分析接口是 http://192.168.4.7:8003/mcp/vision/explain 2025-06-01 **** - Websocket地址是 ws://192.168.4.7:8000/xiaozhi/v1/ 2025-06-01 **** - =======上面的地址是websocket协议地址,请勿用浏览器访问======= -2025-06-01 **** - 如想测试websocket请用谷歌浏览器打开test目录下的test_page.html +2025-06-01 **** - 如想测试websocket请启动digital-human模块,打开浏览器交互测试 2025-06-01 **** - ============================================================= ``` @@ -133,7 +133,7 @@ docker restart xiaozhi-esp32-server 2025-06-01 **** - 视觉分析接口是 http://192.168.4.7:8003/mcp/vision/explain 2025-06-01 **** - Websocket地址是 ws://192.168.4.7:8000/xiaozhi/v1/ 2025-06-01 **** - =======上面的地址是websocket协议地址,请勿用浏览器访问======= -2025-06-01 **** - 如想测试websocket请用谷歌浏览器打开test目录下的test_page.html +2025-06-01 **** - 如想测试websocket请启动digital-human模块,打开浏览器交互测试 2025-06-01 **** - ============================================================= ``` diff --git a/docs/paddlespeech-deploy.md b/docs/paddlespeech-deploy.md index 94621eb5..7e094b02 100644 --- a/docs/paddlespeech-deploy.md +++ b/docs/paddlespeech-deploy.md @@ -91,7 +91,7 @@ TTS: ```py python app.py ``` -打开test目录下的test_page.html,测试连接和发送消息时paddlespeech端是否有输出日志 +启动`main/digital-human`下的`python start.py`后,打开`http://127.0.0.1:8006/index.html`,测试连接和发送消息时paddlespeech端是否有输出日志 输出日志参考: ``` diff --git a/main/README.md b/main/README.md index 962b7888..ed7f9bc3 100644 --- a/main/README.md +++ b/main/README.md @@ -9,6 +9,7 @@ * [3.2. `manager-api` (管理后端 - Java Spring Boot实现)](#32-manager-api-管理后端---java-spring-boot实现) * [3.3. `manager-web` (Web管理前端 - Vue.js实现)](#33-manager-web-web管理前端---vuejs实现) * [3.4. `manager-mobile` (移动管理端 - uni-app+Vue3实现)](#34-manager-mobile-移动管理端---uni-appvue3实现) + * [3.5. `digital-human` (数字人测试模块 - Python+Web实现)](#35-digital-human-数字人测试模块---pythonweb实现) 4. [数据流与交互机制](#4-数据流与交互机制) 5. [核心功能概要](#5-核心功能概要) 6. [部署与配置概述](#6-部署与配置概述) @@ -67,6 +68,13 @@ * 基于alova + @alova/adapter-uniapp实现网络请求,与manager-api无缝集成。 * 使用pinia进行状态管理,确保数据一致性。 +6. **`digital-human` (数字人测试模块 - Python+Web实现):** + 这是一个独立的数字人测试模块,提供本地测试页面、前端交互资源、唤醒词运行时与事件桥能力,用于联调整个数字人交互链路。其主要能力包括: + * 提供浏览器端的数字人测试页面,用于验证音频播放、接收和交互流程。 + * 集成本地唤醒词运行时,支持基于Sherpa-ONNX的关键词检测。 + * 通过事件桥将页面状态与本地运行时打通,便于调试唤醒词触发与交互效果。 + * 作为独立模块与`xiaozhi-server`、`manager-web`、`manager-api`并列,便于单独开发和部署。 + **高层交互流程概述:** * **语音交互主线:** **ESP32设备**捕捉到用户语音后,通过**WebSocket**将音频数据实时传输给**`xiaozhi-server`**。`xiaozhi-server`完成一系列AI处理(VAD、ASR、LLM交互、TTS)后,再通过WebSocket将合成的语音回复发送回ESP32设备进行播放。所有与语音直接相关的实时交互均在此链路完成。 @@ -80,7 +88,8 @@ xiaozhi-esp32-server ├─ xiaozhi-server 8000 端口 Python语言开发 负责与esp32通信 ├─ manager-web 8001 端口 Node.js+Vue开发 负责提供控制台的web界面 ├─ manager-api 8002 端口 Java语言开发 负责提供控制台的api - └─ manager-mobile 跨平台移动应用 uni-app+Vue3开发 负责提供移动版智控台管理 + ├─ manager-mobile 跨平台移动应用 uni-app+Vue3开发 负责提供移动版智控台管理 + └─ digital-human 数字人测试模块 Python+Web实现 负责本地测试页面、唤醒词运行时与事件桥 ``` --- @@ -366,6 +375,48 @@ xiaozhi-esp32-server --- +### 3.5. `digital-human` (数字人测试模块 - Python+Web实现) + +`digital-human` 组件是一个独立的数字人测试模块,负责提供本地测试页面、页面资源、唤醒词运行时和事件桥能力。它主要用于联调整个数字人交互链路,帮助开发者验证页面交互、音频能力和本地唤醒词流程。 + +* **核心目标:** + * 提供独立的本地测试页面,用于验证数字人交互效果。 + * 提供本地唤醒词运行时,支持关键词检测与事件上报。 + * 为前端页面和本地运行时提供事件桥,打通测试链路。 + * 以独立模块形式存在,便于单独开发、调试和部署。 + +* **核心技术栈:** + * **Python 3:** 作为测试运行时的主要语言,负责启动本地服务、管理唤醒词运行时和事件桥。 + * **原生HTML/CSS/JavaScript:** 用于构建数字人测试页面与交互逻辑。 + * **Sherpa-ONNX:** 用于本地唤醒词检测。 + * **ThreadingHTTPServer / WebSocket桥接:** 用于承载测试页面、健康检查和本地事件通信。 + +* **关键实现细节:** + + 1. **模块入口与页面资源:** + * `start.py` 是模块启动入口,负责初始化测试运行时。 + * `index.html` 是数字人测试页面入口。 + * `js/`、`css/`、`images/`、`resources/` 目录提供页面脚本、样式和资源文件。 + + 2. **本地测试运行时:** + * `wakeword_runtime/` 目录承载本地唤醒词运行时实现。 + * 运行时负责配置加载、日志初始化、音频采集、关键词检测和服务生命周期管理。 + * 模块默认通过本地HTTP服务暴露页面地址、事件桥地址和健康检查接口。 + + 3. **唤醒词检测链路:** + * 基于Sherpa-ONNX关键词检测模型,支持本地唤醒词触发。 + * 模型文件和关键词配置位于 `wakeword_runtime/models/` 及相应配置文件中。 + * 页面侧可结合事件桥观察唤醒词服务状态和触发结果。 + + 4. **调试与联调定位:** + * 启动后可通过浏览器访问本地页面,验证音频播放、接收和交互逻辑。 + * 通过事件桥可以将唤醒词状态同步到页面,便于排查本地链路问题。 + * 详细的模型下载、运行时配置和使用说明已整理在 `docs/digital-human-wakeword.md` 中。 + +`digital-human` 的存在使得数字人相关能力可以脱离主服务独立验证,降低了页面调试、唤醒词联调和本地环境搭建的复杂度。 + +--- + ## 4. 数据流与交互机制 `xiaozhi-esp32-server` 系统通过各组件间定义清晰的数据流和交互协议来协同工作。主要的通信方式依赖于针对实时交互优化的WebSocket协议和适用于客户端-服务器请求的RESTful API。 diff --git a/main/xiaozhi-server/app.py b/main/xiaozhi-server/app.py index ab085464..bdefe42d 100644 --- a/main/xiaozhi-server/app.py +++ b/main/xiaozhi-server/app.py @@ -116,7 +116,7 @@ async def main(): "=======上面的地址是websocket协议地址,请勿用浏览器访问=======" ) logger.bind(tag=TAG).info( - "如想测试websocket请用谷歌浏览器打开test目录下的test_page.html" + "如想测试websocket请启动digital-human模块,打开浏览器交互测试" ) logger.bind(tag=TAG).info( "=============================================================\n" diff --git a/main/xiaozhi-server/core/websocket_server.py b/main/xiaozhi-server/core/websocket_server.py index 0b419667..077f7f4d 100644 --- a/main/xiaozhi-server/core/websocket_server.py +++ b/main/xiaozhi-server/core/websocket_server.py @@ -93,7 +93,7 @@ class WebSocketServer: parsed_url = urlparse(request_path) query_params = parse_qs(parsed_url.query) if "device-id" not in query_params: - await websocket.send("端口正常,如需测试连接,请使用test_page.html") + await websocket.send("端口正常,如需测试连接,请启动digital-human测试") await websocket.close() return else: