可令对口型
This commit is contained in:
155
docs/kling-integration.md
Normal file
155
docs/kling-integration.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# 可灵数字人功能集成报告
|
||||
|
||||
## 功能概述
|
||||
|
||||
基于302.ai的可灵API,我们成功集成了独立的人脸识别功能,为后续对口型服务提供基础支持。
|
||||
|
||||
## 后端开发
|
||||
|
||||
### 1. API客户端
|
||||
- **文件**: `yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/kling/KlingClient.java`
|
||||
- **功能**: 调用302.ai的Identify-Face接口
|
||||
- **复用**: 使用现有的LatentsyncProperties配置(API密钥已配置)
|
||||
|
||||
### 2. 业务服务
|
||||
- **Service接口**: `KlingService.java`
|
||||
- **Service实现**: `KlingServiceImpl.java`
|
||||
- **Controller**: `KlingController.java` (路径: `/webApi/api/tik/kling/identify-face`)
|
||||
|
||||
### 3. 数据传输对象
|
||||
- **请求VO**: `KlingIdentifyFaceReqVO.java`
|
||||
- **响应VO**: `KlingIdentifyFaceRespVO.java`
|
||||
- **DTO**: `KlingIdentifyFaceRequest.java`, `KlingIdentifyFaceResponse.java`
|
||||
|
||||
### API接口
|
||||
```
|
||||
POST /webApi/api/tik/kling/identify-face
|
||||
Content-Type: application/json
|
||||
|
||||
Request:
|
||||
{
|
||||
"videoUrl": "https://example.com/video.mp4"
|
||||
}
|
||||
|
||||
Response:
|
||||
{
|
||||
"code": 0,
|
||||
"data": {
|
||||
"sessionId": "session_xxxxx",
|
||||
"faceData": [
|
||||
{
|
||||
"faceId": "face_001",
|
||||
"faceImage": "https://...",
|
||||
"startTime": 1000,
|
||||
"endTime": 5000
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 前端开发
|
||||
|
||||
### 1. API服务
|
||||
- **文件**: `frontend/app/web-gold/src/api/kling.js`
|
||||
- **功能**: `identifyFace()` 方法
|
||||
|
||||
### 2. 页面组件
|
||||
- **文件**: `frontend/app/web-gold/src/views/kling/IdentifyFace.vue`
|
||||
- **功能**:
|
||||
- 视频上传(支持 .mp4/.mov)
|
||||
- 拖拽上传支持
|
||||
- 进度显示
|
||||
- 识别结果展示(人脸列表、时间段)
|
||||
- 科技极简风格UI(黑蓝紫色调)
|
||||
|
||||
### 3. 路由配置
|
||||
- **文件**: `frontend/app/web-gold/src/router/index.js`
|
||||
- **路径**: `/digital-human/kling`
|
||||
- **菜单项**: "可灵数字人"(位于"数字人"分组下)
|
||||
|
||||
## 技术特点
|
||||
|
||||
### 1. 配置复用
|
||||
- 复用了现有的 `LatentsyncProperties` 配置
|
||||
- API Key: `sk-0IZJ2oo7VCkegFuF3JRsSRtyFUsIvLoHNK8OpulnlsStFN78`
|
||||
- Base URL: `https://api.302.ai`
|
||||
|
||||
### 2. 代码架构
|
||||
- 遵循Yudao框架的分层架构
|
||||
- 复用现有的客户端模式(参考LatentsyncClient)
|
||||
- VO/DTO分层设计
|
||||
|
||||
### 3. 前端设计
|
||||
- 采用Vue 3 Composition API
|
||||
- 响应式设计(支持移动端)
|
||||
- 科技极简风格(渐变背景、毛玻璃效果)
|
||||
|
||||
## 文件结构
|
||||
|
||||
```
|
||||
yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/kling/
|
||||
├── KlingClient.java # API客户端
|
||||
├── KlingService.java # 服务接口
|
||||
├── KlingServiceImpl.java # 服务实现
|
||||
├── KlingController.java # REST控制器
|
||||
├── dto/
|
||||
│ ├── KlingIdentifyFaceRequest.java
|
||||
│ └── KlingIdentifyFaceResponse.java
|
||||
└── vo/
|
||||
├── KlingIdentifyFaceReqVO.java
|
||||
└── KlingIdentifyFaceRespVO.java
|
||||
|
||||
frontend/app/web-gold/src/
|
||||
├── api/
|
||||
│ └── kling.js # 前端API
|
||||
├── views/
|
||||
│ └── kling/
|
||||
│ └── IdentifyFace.vue # 识别页面
|
||||
└── router/
|
||||
└── index.js # 路由配置(含可灵路由)
|
||||
```
|
||||
|
||||
## 使用说明
|
||||
|
||||
### 1. 访问页面
|
||||
- 登录系统后,点击左侧菜单 **数字人** > **可灵数字人**
|
||||
|
||||
### 2. 上传视频
|
||||
- 支持格式:.mp4, .mov
|
||||
- 文件大小:≤ 100MB
|
||||
- 视频时长:2-60秒
|
||||
- 支持拖拽上传
|
||||
|
||||
### 3. 人脸识别
|
||||
- 点击"开始识别"按钮
|
||||
- 系统调用302.ai API进行分析
|
||||
- 显示识别结果:
|
||||
- 会话ID(用于后续操作)
|
||||
- 检测到的人脸列表
|
||||
- 每张人脸的可对口型时间段
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **视频URL**: 目前页面使用本地URL进行测试,生产环境需要先上传到OSS获取公网URL
|
||||
2. **API密钥**: 已使用现有的302.ai配置,无需额外配置
|
||||
3. **跨域**: 确保前端已配置API代理到后端
|
||||
|
||||
## 后续扩展
|
||||
|
||||
1. **口型同步功能**: 基于sessionId进行口型同步
|
||||
2. **批量处理**: 支持多个视频的批量识别
|
||||
3. **历史记录**: 保存识别历史到数据库
|
||||
4. **结果导出**: 支持导出识别结果
|
||||
|
||||
## 测试建议
|
||||
|
||||
1. 测试不同格式的视频文件
|
||||
2. 测试大文件上传(接近100MB)
|
||||
3. 测试网络异常情况
|
||||
4. 测试识别失败场景
|
||||
|
||||
---
|
||||
|
||||
**开发完成时间**: 2024-11-30
|
||||
**状态**: 后端API完成,前端页面完成,待测试联调
|
||||
Reference in New Issue
Block a user