|
|
@@ -47,39 +47,464 @@
|
|
|
- [ ] 人物模型AI生成尝试
|
|
|
- [ ] 情感控制人物表情动作支持
|
|
|
|
|
|
+## 项目启动方式
|
|
|
+
|
|
|
+### 方式一:一键启动脚本(推荐 - Windows)
|
|
|
+
|
|
|
+**适用场景:** 开发环境快速启动,自动打开 Chrome 全屏模式
|
|
|
+
|
|
|
+**使用方法:**
|
|
|
+1. 双击运行 `scripts/start-digital-human-chrome.bat`
|
|
|
+2. 脚本会自动:
|
|
|
+ - 启动后端服务(Python FastAPI,端口 8880)
|
|
|
+ - 启动前端服务(Next.js,端口 3000)
|
|
|
+ - 等待服务就绪后自动打开 Chrome 全屏模式
|
|
|
+ - 隐藏任务栏,防止系统休眠
|
|
|
+
|
|
|
+**前置要求:**
|
|
|
+- Python 3.x(已安装依赖:`pip install -r requirements.txt`)
|
|
|
+- Node.js 和 npm(已安装前端依赖:`cd web && npm install`)
|
|
|
+- Google Chrome 浏览器
|
|
|
+
|
|
|
+**停止服务:**
|
|
|
+- 关闭后端和前端服务窗口
|
|
|
+- 或使用 `scripts/stop-digital-human.bat` 脚本
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 方式二:手动启动(开发模式)
|
|
|
+
|
|
|
+**适用场景:** 需要查看详细日志的开发调试
|
|
|
+
|
|
|
+**后端启动:**
|
|
|
+```bash
|
|
|
+# 1. 安装依赖(首次运行)
|
|
|
+pip install -r requirements.txt
|
|
|
+
|
|
|
+# 2. 启动后端服务
|
|
|
+python main.py
|
|
|
+```
|
|
|
+后端服务默认运行在:`http://0.0.0.0:8880`
|
|
|
+
|
|
|
+**前端启动:**
|
|
|
+```bash
|
|
|
+# 1. 进入前端目录
|
|
|
+cd web
|
|
|
+
|
|
|
+# 2. 安装依赖(首次运行)
|
|
|
+npm install
|
|
|
+
|
|
|
+# 3. 启动前端服务(HTTPS模式)
|
|
|
+npm run dev
|
|
|
+
|
|
|
+# 或使用 HTTP 模式
|
|
|
+npm run dev:http
|
|
|
+```
|
|
|
+前端服务默认运行在:`https://localhost:3000`(需要 SSL 证书)
|
|
|
+
|
|
|
+**SSL 证书生成:**
|
|
|
+```bash
|
|
|
+# Windows
|
|
|
+scripts\generate_ssl_cert.bat
|
|
|
+
|
|
|
+# Linux/Mac
|
|
|
+scripts/generate_ssl_cert.sh
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 方式三:Docker Compose 部署(生产环境)
|
|
|
+
|
|
|
+**适用场景:** 生产环境部署,容器化运行
|
|
|
+
|
|
|
+**快速启动(使用预构建镜像):**
|
|
|
+```bash
|
|
|
+docker-compose -f docker-compose-quickStart.yaml up -d
|
|
|
+```
|
|
|
+
|
|
|
+**本地构建启动:**
|
|
|
+```bash
|
|
|
+# 1. 构建并启动所有服务
|
|
|
+docker-compose up -d
|
|
|
+
|
|
|
+# 2. 查看服务状态
|
|
|
+docker-compose ps
|
|
|
+
|
|
|
+# 3. 查看日志
|
|
|
+docker-compose logs -f
|
|
|
+
|
|
|
+# 4. 停止服务
|
|
|
+docker-compose down
|
|
|
+```
|
|
|
+
|
|
|
+**服务说明:**
|
|
|
+- `adh-nginx`: Nginx 反向代理(端口 8880)
|
|
|
+- `adh-web`: 前端 Web 服务(Next.js)
|
|
|
+- `adh-api`: 后端 API 服务(FastAPI)
|
|
|
+- `adh-funasr`: FunASR 语音识别服务(端口 10095)
|
|
|
+
|
|
|
+**环境变量配置:**
|
|
|
+在项目根目录创建 `.env` 文件,配置必要的环境变量:
|
|
|
+```env
|
|
|
+DASHSCOPE_API_KEY=your_api_key_here
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 方式四:Android APK 构建
|
|
|
+
|
|
|
+**适用场景:** 移动端应用部署
|
|
|
+
|
|
|
+**构建步骤:**
|
|
|
+```bash
|
|
|
+# Windows
|
|
|
+web\build-apk.bat
|
|
|
+
|
|
|
+# Linux/Mac
|
|
|
+web/build-apk.sh
|
|
|
+```
|
|
|
+
|
|
|
+构建完成后,APK 文件位于 `web/android/app/build/outputs/apk/` 目录
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 项目目录结构详解
|
|
|
+
|
|
|
+### 根目录文件
|
|
|
+
|
|
|
+```
|
|
|
+Uskyhuman/
|
|
|
+├── main.py # 项目主入口文件,启动后端服务
|
|
|
+├── requirements.txt # Python 依赖包列表
|
|
|
+├── package.json # 项目元数据配置
|
|
|
+├── docker-compose.yaml # Docker Compose 配置文件(本地构建)
|
|
|
+├── docker-compose-quickStart.yaml # Docker Compose 快速启动配置(使用预构建镜像)
|
|
|
+├── LICENSE # 开源许可证
|
|
|
+└── README.md # 项目说明文档
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 digitalHuman/ - 后端核心代码
|
|
|
+
|
|
|
+Python 后端服务的主要代码目录,包含所有业务逻辑。
|
|
|
+
|
|
|
+```
|
|
|
+digitalHuman/
|
|
|
+├── __init__.py # 包初始化文件
|
|
|
+├── protocol.py # 协议定义文件
|
|
|
+│
|
|
|
+├── bin/ # 启动相关
|
|
|
+│ └── app.py # 服务器启动逻辑,初始化引擎池和代理池
|
|
|
+│
|
|
|
+├── agent/ # Agent 代理模块
|
|
|
+│ ├── agentBase.py # Agent 基类定义
|
|
|
+│ ├── agentPool.py # Agent 池管理
|
|
|
+│ ├── builder.py # Agent 构建器
|
|
|
+│ └── core/ # Agent 核心实现
|
|
|
+│ ├── agentFactory.py # Agent 工厂类
|
|
|
+│ ├── cozeAgent.py # Coze Agent 实现
|
|
|
+│ ├── difyAgent.py # Dify Agent 实现
|
|
|
+│ ├── fastgptAgent.py # FastGPT Agent 实现
|
|
|
+│ ├── openaiAgent.py # OpenAI Agent 实现
|
|
|
+│ └── repeaterAgent.py # 测试用重复 Agent
|
|
|
+│
|
|
|
+├── engine/ # 引擎模块(ASR/TTS/LLM)
|
|
|
+│ ├── engineBase.py # 引擎基类
|
|
|
+│ ├── enginePool.py # 引擎池管理
|
|
|
+│ ├── builder.py # 引擎构建器
|
|
|
+│ ├── asr/ # 语音识别(ASR)引擎
|
|
|
+│ │ ├── asrFactory.py # ASR 工厂类
|
|
|
+│ │ ├── cozeASR.py # Coze ASR 实现
|
|
|
+│ │ ├── dashscopeASR.py # 阿里云 DashScope ASR
|
|
|
+│ │ ├── dashscopeStreamingASR.py # DashScope 流式 ASR
|
|
|
+│ │ ├── difyASR.py # Dify ASR 实现
|
|
|
+│ │ ├── funasrStreamingASR.py # FunASR 流式识别
|
|
|
+│ │ └── tencentASR.py # 腾讯云 ASR 实现
|
|
|
+│ ├── tts/ # 文本转语音(TTS)引擎
|
|
|
+│ │ ├── ttsFactory.py # TTS 工厂类
|
|
|
+│ │ ├── aliNLSTTS.py # 阿里云 NLS TTS
|
|
|
+│ │ ├── cozeTTS.py # Coze TTS 实现
|
|
|
+│ │ ├── difyTTS.py # Dify TTS 实现
|
|
|
+│ │ ├── edgeTTS.py # Edge TTS(微软)
|
|
|
+│ │ └── tencentTTS.py # 腾讯云 TTS 实现
|
|
|
+│ └── llm/ # 大语言模型(LLM)引擎
|
|
|
+│ └── llmFactory.py # LLM 工厂类
|
|
|
+│
|
|
|
+├── server/ # Web 服务器模块
|
|
|
+│ ├── app.py # FastAPI 应用实例
|
|
|
+│ ├── router.py # 路由配置
|
|
|
+│ ├── ws.py # WebSocket 处理
|
|
|
+│ ├── models.py # 数据模型定义
|
|
|
+│ ├── reponse.py # 响应格式化
|
|
|
+│ ├── header.py # HTTP 头处理
|
|
|
+│ ├── api/ # API 接口实现
|
|
|
+│ │ ├── agent/ # Agent 相关 API
|
|
|
+│ │ │ └── agent_api_v0.py
|
|
|
+│ │ ├── asr/ # ASR 相关 API
|
|
|
+│ │ │ └── asr_api_v0.py
|
|
|
+│ │ ├── tts/ # TTS 相关 API
|
|
|
+│ │ │ └── tts_api_v0.py
|
|
|
+│ │ ├── llm/ # LLM 相关 API
|
|
|
+│ │ │ └── llm_api_v0.py
|
|
|
+│ │ ├── face_detection/ # 人脸检测 API
|
|
|
+│ │ │ └── face_detection_api_v0.py
|
|
|
+│ │ └── common/ # 通用 API
|
|
|
+│ │ └── common_api_v0.py
|
|
|
+│ └── core/ # 服务器核心功能
|
|
|
+│ └── [核心处理逻辑文件]
|
|
|
+│
|
|
|
+├── core/ # 核心功能模块
|
|
|
+│ ├── openai.py # OpenAI 客户端封装
|
|
|
+│ └── runner.py # 运行器核心逻辑
|
|
|
+│
|
|
|
+├── utils/ # 工具函数模块
|
|
|
+│ ├── configParser.py # 配置文件解析器
|
|
|
+│ ├── env.py # 环境变量处理
|
|
|
+│ ├── logger.py # 日志工具
|
|
|
+│ ├── audio.py # 音频处理工具
|
|
|
+│ ├── func.py # 通用函数
|
|
|
+│ ├── registry.py # 注册表工具
|
|
|
+│ └── streamParser.py # 流解析工具
|
|
|
+│
|
|
|
+├── handlers/ # 处理器模块(预留扩展)
|
|
|
+│
|
|
|
+└── uniface/ # UniFace 人脸处理库
|
|
|
+ ├── analyzer.py # 人脸分析器
|
|
|
+ ├── face.py # 人脸处理主类
|
|
|
+ ├── face_utils.py # 人脸工具函数
|
|
|
+ ├── model_store.py # 模型存储管理
|
|
|
+ ├── onnx_utils.py # ONNX 工具函数
|
|
|
+ ├── detection/ # 人脸检测模块
|
|
|
+ ├── recognition/ # 人脸识别模块
|
|
|
+ ├── landmark/ # 关键点检测模块
|
|
|
+ └── attribute/ # 属性分析模块
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 web/ - 前端代码
|
|
|
+
|
|
|
+Next.js 前端应用,提供用户界面和交互。
|
|
|
+
|
|
|
+```
|
|
|
+web/
|
|
|
+├── package.json # 前端依赖配置
|
|
|
+├── next.config.ts # Next.js 配置文件
|
|
|
+├── tsconfig.json # TypeScript 配置
|
|
|
+├── tailwind.config.ts # Tailwind CSS 配置
|
|
|
+├── server.js # HTTPS 服务器(开发模式)
|
|
|
+├── capacitor.config.ts # Capacitor 移动端配置
|
|
|
+│
|
|
|
+├── app/ # Next.js App Router 页面
|
|
|
+│ ├── layout.tsx # 根布局组件
|
|
|
+│ ├── page.tsx # 首页
|
|
|
+│ ├── not-found.tsx # 404 页面
|
|
|
+│ ├── providers.tsx # 全局 Provider
|
|
|
+│ └── (products)/ # 产品相关页面
|
|
|
+│ └── sentio/ # Sentio 数字人页面
|
|
|
+│ └── [页面组件文件]
|
|
|
+│
|
|
|
+├── components/ # React 组件
|
|
|
+│ ├── header/ # 头部组件
|
|
|
+│ │ └── logo.tsx
|
|
|
+│ ├── icons/ # 图标组件
|
|
|
+│ ├── slider/ # 滑块组件
|
|
|
+│ └── tips/ # 提示组件
|
|
|
+│
|
|
|
+├── lib/ # 库和工具函数
|
|
|
+│ ├── api/ # API 调用封装
|
|
|
+│ │ ├── requests.ts # HTTP 请求封装
|
|
|
+│ │ ├── websocket.ts # WebSocket 封装
|
|
|
+│ │ └── server.ts # 服务器配置
|
|
|
+│ ├── live2d/ # Live2D 相关库
|
|
|
+│ │ ├── Core/ # Live2D 核心库
|
|
|
+│ │ ├── Framework/ # Live2D 框架
|
|
|
+│ │ ├── src/ # Live2D 源码
|
|
|
+│ │ └── live2dManager.ts # Live2D 管理器
|
|
|
+│ ├── store/ # 状态管理(Zustand)
|
|
|
+│ │ ├── common.ts # 通用状态
|
|
|
+│ │ └── sentio.ts # Sentio 状态
|
|
|
+│ ├── utils/ # 工具函数
|
|
|
+│ ├── constants.ts # 常量定义
|
|
|
+│ ├── protocol.ts # 协议定义
|
|
|
+│ ├── path.ts # 路径工具
|
|
|
+│ └── locale.ts # 国际化工具
|
|
|
+│
|
|
|
+├── hooks/ # React Hooks
|
|
|
+│ └── request.ts # 请求 Hook
|
|
|
+│
|
|
|
+├── i18n/ # 国际化配置
|
|
|
+│ ├── config.ts # i18n 配置
|
|
|
+│ ├── request.ts # 请求处理
|
|
|
+│ └── locales/ # 语言文件
|
|
|
+│ ├── zh.json # 中文
|
|
|
+│ └── en.json # 英文
|
|
|
+│
|
|
|
+├── styles/ # 样式文件
|
|
|
+│ ├── globals.css # 全局样式
|
|
|
+│ └── fonts/ # 字体文件
|
|
|
+│
|
|
|
+├── public/ # 静态资源
|
|
|
+│ ├── sentio/ # Sentio 模型资源
|
|
|
+│ │ └── [Live2D 模型文件:.moc3, .json, .png 等]
|
|
|
+│ ├── vad/ # VAD(语音活动检测)模型
|
|
|
+│ │ └── [.onnx, .wasm, .js 文件]
|
|
|
+│ ├── images/ # 图片资源
|
|
|
+│ ├── image/ # 图片资源
|
|
|
+│ ├── embed.js # 嵌入脚本
|
|
|
+│ └── index.html # 入口 HTML
|
|
|
+│
|
|
|
+└── android/ # Android 应用配置(Capacitor)
|
|
|
+ ├── app/ # Android 应用代码
|
|
|
+ ├── build.gradle # Gradle 构建配置
|
|
|
+ ├── gradle.properties # Gradle 属性
|
|
|
+ └── [其他 Android 配置文件]
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 configs/ - 配置文件目录
|
|
|
+
|
|
|
+所有服务的配置文件,采用 YAML 格式。
|
|
|
+
|
|
|
+```
|
|
|
+configs/
|
|
|
+├── config_template.yaml # 主配置文件模板
|
|
|
+│
|
|
|
+├── agents/ # Agent 代理配置
|
|
|
+│ ├── cozeAgent.yaml # Coze Agent 配置
|
|
|
+│ ├── difyAgent.yaml # Dify Agent 配置
|
|
|
+│ ├── fastgptAgent.yaml # FastGPT Agent 配置
|
|
|
+│ ├── openaiAPI.yaml # OpenAI API 配置
|
|
|
+│ └── repeaterAgent.yaml # 测试用重复 Agent 配置
|
|
|
+│
|
|
|
+└── engines/ # 引擎配置
|
|
|
+ ├── asr/ # ASR 引擎配置
|
|
|
+ │ ├── cozeAPI.yaml
|
|
|
+ │ ├── dashscopeAPI.yaml
|
|
|
+ │ ├── dashscopeStreamingAPI.yaml
|
|
|
+ │ ├── difyAPI.yaml
|
|
|
+ │ ├── funasrStreamingAPI.yaml
|
|
|
+ │ └── tencentAPI.yaml
|
|
|
+ ├── tts/ # TTS 引擎配置
|
|
|
+ │ ├── aliNLS.yaml
|
|
|
+ │ ├── cozeAPI.yaml
|
|
|
+ │ ├── difyAPI.yaml
|
|
|
+ │ ├── edgeAPI.yaml
|
|
|
+ │ └── tencentAPI.yaml
|
|
|
+ └── llm/ # LLM 引擎配置
|
|
|
+ └── openaiAPI.yaml
|
|
|
+```
|
|
|
+
|
|
|
+**配置文件说明:**
|
|
|
+- 主配置文件:`configs/config_template.yaml` 定义服务器端口、默认引擎等
|
|
|
+- 引擎配置:每个 YAML 文件定义对应服务的 API 密钥、端点等参数
|
|
|
+- Agent 配置:定义 Agent 类型、参数和接入方式
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 scripts/ - 脚本工具目录
|
|
|
+
|
|
|
+各种辅助脚本,用于自动化任务。
|
|
|
+
|
|
|
+```
|
|
|
+scripts/
|
|
|
+├── start-digital-human-chrome.bat # Windows 一键启动脚本(Chrome 全屏)
|
|
|
+├── stop-digital-human.bat # Windows 停止服务脚本
|
|
|
+├── test-env.bat # Windows 环境测试脚本
|
|
|
+├── generate_ssl_cert.bat # Windows SSL 证书生成脚本
|
|
|
+├── generate_ssl_cert.sh # Linux/Mac SSL 证书生成脚本
|
|
|
+├── hide-taskbar.ps1 # PowerShell 隐藏任务栏脚本
|
|
|
+├── show-taskbar.ps1 # PowerShell 显示任务栏脚本
|
|
|
+├── prevent-sleep.ps1 # PowerShell 防止系统休眠脚本
|
|
|
+└── setup-chrome-permissions.ps1 # PowerShell Chrome 权限设置脚本
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 docker/ - Docker 相关文件
|
|
|
+
|
|
|
+Docker 构建和部署相关文件。
|
|
|
+
|
|
|
+```
|
|
|
+docker/
|
|
|
+├── adhServer.Dockerfile # 后端服务 Dockerfile
|
|
|
+├── adhWeb.Dockerfile # 前端服务 Dockerfile
|
|
|
+├── ONNXRUNTIME_FIX.md # ONNX Runtime 修复说明
|
|
|
+├── nginx/ # Nginx 配置
|
|
|
+│ └── default.conf # Nginx 默认配置
|
|
|
+└── volumes/ # Docker 卷挂载资源
|
|
|
+ └── funasr-runtime-resources/ # FunASR 运行时资源
|
|
|
+ ├── models/ # FunASR 模型文件
|
|
|
+ └── sh/ # FunASR 启动脚本
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 build/ - 构建资源目录
|
|
|
+
|
|
|
+构建相关的资源文件。
|
|
|
+
|
|
|
+```
|
|
|
+build/
|
|
|
+├── icon.ico # 应用图标
|
|
|
+├── sdogu-08l3j-001.ico # 备用图标
|
|
|
+└── README.md # 构建说明
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 certs/ - 证书目录
|
|
|
+
|
|
|
+SSL/TLS 证书文件(用于 HTTPS)。
|
|
|
+
|
|
|
+```
|
|
|
+certs/
|
|
|
+├── server.key # SSL 私钥(需生成)
|
|
|
+├── server.crt # SSL 证书(需生成)
|
|
|
+└── README.md # 证书说明
|
|
|
+```
|
|
|
+
|
|
|
+**生成证书:**
|
|
|
+```bash
|
|
|
+# Windows
|
|
|
+scripts\generate_ssl_cert.bat
|
|
|
+
|
|
|
+# Linux/Mac
|
|
|
+scripts/generate_ssl_cert.sh
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📁 images/ - 图片资源目录
|
|
|
+
|
|
|
+项目使用的图片资源。
|
|
|
+
|
|
|
+```
|
|
|
+images/
|
|
|
+└── images/ # 产品展示图片
|
|
|
+ ├── 3-公司简介_01.jpg
|
|
|
+ ├── 4-无人机应用及服务介绍_01.jpg
|
|
|
+ ├── 5-智慧消防物联网产品介绍_01.jpg
|
|
|
+ ├── 6-智慧用电物联网产品介绍_01.jpg
|
|
|
+ ├── 7-智慧楼宇系统产品功能介绍_01.jpg
|
|
|
+ ├── 8-智慧园区系统产品功能介绍_01.jpg
|
|
|
+ ├── 9-智慧文旅系统产品功能介绍_01.jpg
|
|
|
+ └── 10-智慧政务系统产品功能介绍_01.jpg
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
## 部署&开发
|
|
|
+
|
|
|
* 部署说明文档
|
|
|
* Windows 部署指南(推荐)
|
|
|
* 开发说明文档
|
|
|
* 常见问题解答
|
|
|
* Edge 展台模式使用指南
|
|
|
* 启动说明文档
|
|
|
-* 项目结构说明文档
|
|
|
-
|
|
|
-### 快速启动(开发模式 + Chrome 全屏)
|
|
|
-项目提供了便捷的启动脚本,可以一键启动前端和后端服务,并自动在 Chrome 全屏模式下打开:
|
|
|
-
|
|
|
-**Windows 用户:**
|
|
|
-- **批处理脚本**(推荐):双击 `scripts/start-digital-human-chrome.bat` 文件
|
|
|
-- 详细使用说明请参考启动说明文档
|
|
|
-
|
|
|
-**功能说明:**
|
|
|
-1. 自动启动后端服务(Python FastAPI,端口 8880)
|
|
|
-2. 自动启动前端服务(Next.js,端口 3000)
|
|
|
-3. 自动检测服务就绪状态
|
|
|
-4. 服务就绪后自动使用 Chrome 全屏模式打开前端页面
|
|
|
-
|
|
|
-**使用要求:**
|
|
|
-- 已安装 Python 3.x 和所需依赖(运行 `pip install -r requirements.txt`)
|
|
|
-- 已安装 Node.js 和 npm
|
|
|
-- 已安装 Google Chrome 浏览器
|
|
|
-
|
|
|
-**注意事项:**
|
|
|
-- 首次运行会自动安装前端依赖(如果 node_modules 不存在)
|
|
|
-- 后端和前端服务会在独立窗口中运行,方便查看日志
|
|
|
-- 按 `Alt+F4` 退出 Chrome 全屏模式
|
|
|
-- 按 `F11` 切换全屏模式
|
|
|
-- 要停止服务,请关闭后端和前端服务窗口
|
|
|
+* 项目结构说明文档
|
|
|
|
|
|
## 关于永天科技
|
|
|
永天科技专注于为企业提供专业的数字人解决方案,致力于打造有温度、有灵魂的智能数字人服务。
|