116 lines
4.5 KiB
Plaintext
116 lines
4.5 KiB
Plaintext
|
|
HLDP v1
|
|||
|
|
// ─────────────────────────────────────────
|
|||
|
|
// modules/video2script/SPEC.hdlp
|
|||
|
|
// 视频→剧本 翻译模块 · 项目说明书(朝暮自用)
|
|||
|
|
// ─────────────────────────────────────────
|
|||
|
|
|
|||
|
|
[TRIGGER]
|
|||
|
|
type: user_request
|
|||
|
|
from: 之之
|
|||
|
|
date: 2026-06-08
|
|||
|
|
context: "我给你拍摄好的视频,你翻译成剧本的格式"
|
|||
|
|
constraint: "不训练大模型,用现成开源工具"
|
|||
|
|
|
|||
|
|
[EMERGENCE]
|
|||
|
|
|
|||
|
|
## 一、目标
|
|||
|
|
|
|||
|
|
输入:一部真人短剧视频(MP4,3-10分钟)
|
|||
|
|
输出:专业剧本格式(含人物表、场景、对白、镜头提示)
|
|||
|
|
|
|||
|
|
## 二、技术方案(不训练,全用现成)
|
|||
|
|
|
|||
|
|
### Step 1 · 音频转文字(ASR)
|
|||
|
|
工具:Whisper(开源,光湖已有)
|
|||
|
|
输出:带时间戳的逐字稿
|
|||
|
|
|
|||
|
|
### Step 2 · 画面关键帧提取
|
|||
|
|
工具:FFmpeg(开源)
|
|||
|
|
策略:每3-5秒提取一帧,或检测场景切换时提取
|
|||
|
|
输出:关键帧图片序列 + 时间戳
|
|||
|
|
|
|||
|
|
### Step 3 · 画面描述(视觉理解)
|
|||
|
|
工具:调用视觉LLM(DeepSeek视觉版 / GPT-4o视觉)分析关键帧
|
|||
|
|
输出:每帧的场景描述(人物位置、动作、表情、景别、运镜)
|
|||
|
|
|
|||
|
|
### Step 4 · AI 编排合成(核心步骤)
|
|||
|
|
输入:时间轴对齐的 [逐字稿 + 画面描述]
|
|||
|
|
工具:LLM(DeepSeek,已有key)
|
|||
|
|
流程:
|
|||
|
|
a) 识别说话角色 → 区分不同人物
|
|||
|
|
b) 按时间轴编排:
|
|||
|
|
[时间戳] 场景/镜头描述
|
|||
|
|
角色名:(语气)"对白"
|
|||
|
|
c) 格式化为专业剧本结构
|
|||
|
|
|
|||
|
|
### Step 5 · 套路分析
|
|||
|
|
对生成的剧本进行结构化分析:
|
|||
|
|
- 钩子位置(第几秒出钩子)
|
|||
|
|
- 情绪曲线(起承转合标记)
|
|||
|
|
- 反转节点
|
|||
|
|
- 结尾卡点
|
|||
|
|
输出:套路分析报告(存库)
|
|||
|
|
|
|||
|
|
## 三、开源工具清单
|
|||
|
|
|
|||
|
|
| 环节 | 工具 | 许可证 | 已有 |
|
|||
|
|
|------|------|--------|------|
|
|||
|
|
| ASR | Whisper | MIT | ✅ 光湖已有 |
|
|||
|
|
| 关键帧提取 | FFmpeg | LGPL | ✅ 光湖已有 |
|
|||
|
|
| 视觉理解 | DeepSeek视觉API / GPT-4o | API调用 | ✅ DeepSeek有key |
|
|||
|
|
| 文本编排 | DeepSeek Chat | API调用 | ✅ 有key |
|
|||
|
|
| 套路分析 | DeepSeek Chat | API调用 | ✅ 有key |
|
|||
|
|
|
|||
|
|
## 四、架构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|||
|
|
│ 视频输入 │ → │ ASR提取 │ → │ 关键帧提取 │
|
|||
|
|
│ .mp4 │ │ 音频→文字 │ │ FFmpeg │
|
|||
|
|
└──────────┘ └──────────┘ └─────┬────┘
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
┌──────────┐
|
|||
|
|
│ 视觉理解 │
|
|||
|
|
│ DeepSeek │
|
|||
|
|
└─────┬────┘
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
┌──────────┐
|
|||
|
|
│ AI编排合成│
|
|||
|
|
│ 时间轴对齐│
|
|||
|
|
└─────┬────┘
|
|||
|
|
│
|
|||
|
|
┌──────────┴──────────┐
|
|||
|
|
▼ ▼
|
|||
|
|
┌──────────┐ ┌──────────┐
|
|||
|
|
│ 剧本输出 │ │ 套路分析 │
|
|||
|
|
│ 专业格式 │ │ 存入仓库 │
|
|||
|
|
└──────────┘ └──────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 五、文件结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
modules/video2script/
|
|||
|
|
├── SPEC.hdlp ← 本文件(项目说明书)
|
|||
|
|
├── server.js ← 后端服务(处理上传+调用各工具)
|
|||
|
|
├── pipeline.js ← 核心流水线编排
|
|||
|
|
├── public/
|
|||
|
|
│ └── index.html ← 前端页面(上传视频、看结果)
|
|||
|
|
└── data/
|
|||
|
|
└── output/ ← 输出缓存
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 六、产出物
|
|||
|
|
|
|||
|
|
1. 专业剧本(.md / .txt)
|
|||
|
|
2. 套路分析报告(.hdlp)
|
|||
|
|
3. 时间轴对照表(逐字稿+画面描述 对齐)
|
|||
|
|
|
|||
|
|
[LOCK]
|
|||
|
|
status: spec_ready
|
|||
|
|
next: 等待之之说"开始"后进入 Craft 模式开发
|
|||
|
|
deploy: 硅谷服务器,/video2script/ 路径
|
|||
|
|
gitee: ❌ 不推送(内部工具,放Gitea大本营)
|