155 lines
4.4 KiB
Markdown
155 lines
4.4 KiB
Markdown
# Phase 9: 智能自动剪辑与内容增强设计
|
||
|
||
> 状态:规划中
|
||
> 前置:Phase 8 模板编排引擎上线并通过公网 smoke
|
||
> 原则:能力逐项真实接入,未接入能力不得在 UI 中假装可用
|
||
|
||
## 一、目标
|
||
|
||
Phase 9 的目标是把 Phase 8 的规则模板自动剪辑,升级为带字幕、配音、BGM、转场和内容理解的智能自动剪辑 2.0。
|
||
|
||
一句话:用户输入剪辑目标或脚本,系统自动理解素材、生成剪辑计划、补字幕/配音/BGM,并输出可下载成片。
|
||
|
||
## 二、不做范围
|
||
|
||
- 不做无门禁的外部 AI 大模型调用。
|
||
- 不做真实支付前的计费扣费闭环。
|
||
- 不做未经审核的公网模板市场。
|
||
- 不把“实验能力”包装为稳定生产功能。
|
||
|
||
## 三、核心能力
|
||
|
||
1. 字幕能力
|
||
- ASR 转写音频。
|
||
- 生成 SRT/VTT。
|
||
- FFmpeg 烧录字幕或输出外挂字幕。
|
||
|
||
2. 配音能力
|
||
- TTS 生成配音音频。
|
||
- 音频与视频时长对齐。
|
||
- SMTP 仍保持独立,不与 TTS 混用配置。
|
||
|
||
3. BGM 与音频混合
|
||
- BGM 资源库。
|
||
- 自动音量 ducking。
|
||
- 视频原声、配音、BGM 三轨混合。
|
||
|
||
4. 转场与包装
|
||
- 基础转场:淡入淡出、交叉溶解、硬切。
|
||
- 片头/片尾占位。
|
||
- Logo/水印可配置。
|
||
|
||
5. 智能脚本到剪辑计划
|
||
- 用户输入脚本/主题。
|
||
- 系统提取段落、关键词、时长目标。
|
||
- 匹配素材分类与标签。
|
||
- 生成 `EditPlan`。
|
||
|
||
## 四、架构设计
|
||
|
||
### Domain
|
||
|
||
- `Transcript`
|
||
- `SubtitleTrack`
|
||
- `VoiceoverTrack`
|
||
- `MusicTrack`
|
||
- `AudioMixPlan`
|
||
- `ScriptBrief`
|
||
- `ContentIntent`
|
||
|
||
### Ports
|
||
|
||
- `SpeechToTextService`
|
||
- `TextToSpeechService`
|
||
- `MusicRepository`
|
||
- `ContentUnderstandingService`
|
||
- `SubtitleRenderer`
|
||
- `AudioMixer`
|
||
|
||
### Application Use Cases
|
||
|
||
- `CreateTranscriptUseCase`
|
||
- `GenerateSubtitleUseCase`
|
||
- `CreateVoiceoverUseCase`
|
||
- `CreateAudioMixPlanUseCase`
|
||
- `CreateEditPlanFromScriptUseCase`
|
||
- `RenderEnhancedVideoUseCase`
|
||
|
||
### Adapters
|
||
|
||
- ASR/TTS 适配器必须配置驱动。
|
||
- 缺少凭证时只能返回明确未配置错误,不 fallback 假数据。
|
||
- FFmpeg audio/video renderer 负责真实合成。
|
||
|
||
### API
|
||
|
||
- `POST /api/v1/transcripts`
|
||
- `GET /api/v1/transcripts/{id}`
|
||
- `POST /api/v1/subtitles`
|
||
- `POST /api/v1/voiceovers`
|
||
- `POST /api/v1/audio-mix-plans`
|
||
- `POST /api/v1/edit-plans/from-script`
|
||
|
||
## 五、配置与环境
|
||
|
||
- 新增外部服务配置必须进入 `.env.example`、`docs/CONFIGURATION.md`、release env validation。
|
||
- CI 不依赖真实外部 ASR/TTS 凭证。
|
||
- 真实外部 smoke 仅在配置完整的 staging/production 上运行。
|
||
- 生产仍使用独立 production DB/Redis/Generated 路径。
|
||
|
||
## 六、数据与任务
|
||
|
||
- 长任务全部走 Celery Worker。
|
||
- 每个增强步骤必须有可查询状态和错误信息。
|
||
- 任务状态禁止只靠前端轮询猜测。
|
||
- 生成文件必须持久化到 OSS 或 production generated 路径。
|
||
|
||
## 七、前端页面
|
||
|
||
- 生成页增加“智能生成”模式。
|
||
- 新增脚本输入区域。
|
||
- 新增字幕/配音/BGM 开关。
|
||
- 未配置能力显示“服务未配置/暂未开放”。
|
||
- 结果页显示字幕、配音、BGM、转场使用情况。
|
||
|
||
## 八、安全与权限
|
||
|
||
- 所有 workspace/project/media/generation/enhancement API 必须校验 workspace 权限。
|
||
- 上传和生成需限制文件大小、类型和任务频率。
|
||
- 外部 AI 请求不得记录用户原文到公开日志。
|
||
- 不打印密钥,只显示 configured/missing 状态。
|
||
|
||
## 九、测试与验收
|
||
|
||
### 单元测试
|
||
|
||
- ASR/TTS adapter 配置缺失行为。
|
||
- 字幕时间轴生成。
|
||
- 音频混合计划。
|
||
- 脚本到 edit plan 的确定性规则。
|
||
|
||
### 集成测试
|
||
|
||
- 上传视频 → 生成 transcript → 字幕 → edit plan → enhanced generation。
|
||
|
||
### 公网 smoke
|
||
|
||
- 使用一段小视频和短脚本。
|
||
- 输出 MP4。
|
||
- 验证 `video/mp4`、文件头、生成任务 completed、字幕/音轨 metadata。
|
||
|
||
## 十、发布门禁
|
||
|
||
- 所有新增能力必须有 feature flag 或配置门禁。
|
||
- 没配置外部服务时 UI 显示未配置,不显示假成功。
|
||
- Alembic、pytest、前端 type-check/build、公网 smoke 全部通过。
|
||
- 生产部署继续禁止生产机前端构建。
|
||
|
||
## 十一、里程碑
|
||
|
||
1. Week 1:字幕/ASR 数据模型、任务状态、配置门禁。
|
||
2. Week 2:TTS 配音与音频混合计划。
|
||
3. Week 3:BGM/转场/水印真实 FFmpeg 合成。
|
||
4. Week 4:脚本到剪辑计划、前端智能生成入口。
|
||
5. Week 5:公网 smoke、监控、发布。
|