视频剪辑智能体开发日志(Week 1)——从0开始搭建整个Pipeline
开发时间:2026.06.26 - 2026.07.02
本周主要工作:完成项目整体架构设计,打通 Pipeline 主流程,完成 ASR、视频分段、重复检测、脚本匹配等核心模块,为后续视频渲染做好准备。
一、本周开发进展
这周没有继续做最终的视频渲染,而是把更多时间放在了整个工程框架上。
刚开始做的时候,我以为重点应该放在去重算法或者字幕同步上,真正写下来以后才发现,真正影响开发效率的其实是整个 Pipeline 的设计。
如果数据流没有统一,后面每增加一个模块,就意味着前面的代码可能都要跟着改。
所以这周主要完成了两件事:
- 重新设计整个 Pipeline
- 重新整理整个 Job 数据结构
这也是后面所有模块能够独立开发的基础。
二、项目架构设计
整个视频剪辑智能体目前已经拆成了两个阶段。
第一阶段负责素材处理。
第二阶段负责分析、匹配以及最终生成视频。
整个流程如下。
从流程上来看,每一个模块只负责自己的任务。
例如:
- 视频信息读取不会负责 ASR
- ASR 不负责字幕
- Timeline 不负责渲染
所有模块之间全部通过 JSON 进行通信。
这样最大的好处就是:
任何一个模块出现问题,都可以单独重新运行,而不用重新执行整个 Pipeline。
三、Job 生命周期与数据组织
随着模块越来越多,我发现如果所有文件都放在一起,后面基本没办法维护。
于是重新设计了整个 Job 目录。
每一次运行都会创建一个新的 Job。
所有中间结果全部保存在对应目录。
整个目录按照功能进行了划分。
例如:
- input 保存原始素材
- transcript 保存 ASR 结果
- segments 保存视频片段
- timeline 保存最终时间轴
- output 保存最终结果
这样做最大的好处就是:
以后无论调试哪个模块,都能直接找到对应的数据,而不是重新跑完整个流程。
四、Timeline 核心调度设计
这是这一周改动最大的地方。
刚开始的时候,每个模块都在计算自己的时间。
字幕有自己的时间。
Render 有自己的时间。
播放器又重新计算了一遍。
虽然每一个模块看起来都没有问题,但是最终字幕总会出现轻微偏差。
后来干脆把 Timeline 独立出来。
以后所有模块全部读取 timeline.json。
整个系统开始变成:
现在:
- 字幕读取 Timeline
- Render 读取 Timeline
- Player 读取 Timeline
整个项目只有一个时间来源。
后面维护起来简单了很多。
五、脚本匹配模块开发
目前已经完成了脚本和视频片段的自动匹配。
每一句脚本都会计算自己的匹配得分。
最终选择得分最高的视频片段。
例如下面就是目前所有脚本的匹配结果。
可以看到,目前不同脚本之间的匹配质量差异还是比较明显。
有些已经可以达到比较高的匹配分。
但仍然有几句脚本匹配效果一般。
为了更加直观,又把所有匹配结果重新划分成了三个等级。
目前:
- 强匹配:1 个
- 可能匹配:3 个
- 低置信度:4 个
整体平均得分还存在进一步优化空间。
六、系统运行效果分析
为了方便后面继续调试,我又增加了一套综合诊断页面。
运行结束以后,可以直接看到整个 Pipeline 当前的运行状态。
包括:
- 平均匹配得分
- 问题严重程度
- 匹配等级分布
- 当前建议
相比以前只能查看日志,现在基本可以一眼看到整个项目当前的问题集中在哪。
调试效率提升了很多。
七、关键问题定位与修复
虽然整体流程已经能够正常运行,但调试过程中还是发现了一些比较明显的问题。
例如:
- Semantic 匹配正常。
- Fuzzy 匹配几乎全部失效。
- 部分脚本主题理解仍然不足。
- 候选片段之间区分度不够。
于是把这些问题重新整理成了一份诊断报告。
其中最明显的问题就是:
Fuzzy 匹配基本没有发挥作用。
于是又把 Semantic 和 Fuzzy 单独拆出来进行了分析。
从目前的数据来看:
Semantic 分支已经能够正常工作。
真正需要继续排查的是 Fuzzy 匹配链路。
后面准备继续定位这个问题。
八、匹配算法优化规划
目前虽然已经能够找到对应片段。
但是还有另外一个问题。
有些候选片段之间得分非常接近。
例如:
Top1 得分:
0.71
Top2 得分:
0.69
这种情况下,很容易选错视频。
于是又增加了一项新的分析。
如果 Top1 和 Top2 得分差距过小,就说明:
当前匹配还不够稳定。
后面会继续优化候选区分能力。
九、素材利用率分析
除了匹配准确率之外,我还比较关注另外一个问题。
就是素材到底有没有真正利用起来。
目前增加了素材利用率统计。
目前来看:
- 已使用素材约 43%
- 未使用素材约 57%
这说明还有不少素材没有参与最终剪辑。
后面可以继续优化片段选择策略,提高素材利用率,同时避免重复片段被频繁使用。
十、本周开发总结
这一周最大的感受就是:
真正花时间的并不是模型本身,而是整个工程的组织方式。
如果没有统一的数据结构,没有统一的时间轴,没有统一的 JSON 规范,那么后面每增加一个功能,都会不断返工。
目前整个 Pipeline 已经能够稳定完成:
- 视频读取
- 音频提取
- ASR
- 视频分段
- 重复检测
- 脚本匹配
- Timeline 构建
- 字幕映射
- 数据诊断
下一步会继续完善:
- Script Match 精度
- Timeline 调度策略
- 视频渲染模块
- AiPy 前端联调
争取尽快实现从输入素材到最终视频输出的完整自动化流程。
