🎬 个人项目:AI 短视频自动化剪辑智能体 (AI Video Agent)
📌 项目简介
本项目是一款桌面端**“全链路”短视频自动化创作智能体。它打破了传统剪辑软件繁琐的时间线拖拽,开创了”意图即成品”**的 Agent 工作流。
作为一名前 B站 UP 主与深度游戏玩家,我深刻痛点于游戏二创与带货视频的高门槛,因此主导开发了这款工具。用户只需输入极其模糊的自然语言(如提供一个《三国杀》官网公告链接,并要求生成带货视频),智能体即可自主完成网页信息提取、文案创作、本地原声与 AI 配音的无缝接力、音画帧级对齐,以及底层脏数据的自动净化。
核心价值: 本项目不仅是对大语言模型 (LLM) 落地应用的一次成功探索,更展现了在复杂多模态管线中,如何平衡”AI 泛化创作”与”用户精准控制”的产品哲学。
💡 设计思路与反思 (Product Philosophy)
- 把控制权还给用户(AI PM 思维): 纯粹的全自动往往是灾难。我为系统设计了”双重人格”开关。用户既可以选择让 AI 化身编剧自由发挥,也可以通过强制指令要求 AI 变身”无情提取器”。在”智能”与”可控”之间找到了最佳的产品平衡点。
- 防御性编程与优雅降级(鲁棒性设计): 现实世界的数据是”脏”的。无论是大模型输出的不稳定 JSON,还是带有乱码元数据的游戏音频,亦或是响应超时的服务器。系统不应直接崩溃,而应通过底层拦截、正则模糊匹配、FFmpeg 强制格式化等手段,在后台悄无声息地化解危机,保障核心渲染管线的畅通。
- 贴合游戏宣发场景(游戏策划视角): 在设计 Prompt 引擎时,深度考虑了游戏生态内容的产出需求(如角色台词提取、实装音效展示、技能机制解说)。让 AI 不仅懂剪辑,更懂如何写出有”网感”和”临场感”的游戏宣发文案。
🛠️ 技术栈
| 模块 | 技术选型 | 核心作用 |
|---|---|---|
| 应用架构 | Python 3.10+, Tkinter | 构建异步与同步混合渲染的桌面端架构 |
| 大模型与 RAG | OpenAI API, requests, BeautifulSoup4 | 接入 LLM,实现网页嗅探与结构化内容提取 |
| 音视频多模态 | MoviePy 2.0+, edge-tts & asyncio, FFmpeg | 视频合成内核、微软异步语音生成、底层视音频调度与清洗 |
| 数据结构与匹配 | JSON, Re | 结构化指令解析、正则意图匹配与模糊降错 |
🚀 核心功能
- 🕸️ 基于 RAG 的网页嗅探引擎: 突破大模型无法联网的限制。用户直接输入官方公告链接,系统自动爬取清洗网页文本,作为”外挂大脑”投喂给 LLM,彻底杜绝 AI 编造虚假上线时间与活动机制的”幻觉”。
- 🎛️ 混合音轨动态调度: 行业首创的”本地原声优先 + AI 语音接力”机制。通过给字幕打上
original与creative标签,实现用户上传的游戏原声音效与 AI 解说词的无缝拼接,保留游戏临场感。 - ⏱️ 帧级音画强锚定系统: 彻底重构底层合成循环,强制将字幕 (
TextClip) 与画面片段的 duration 锚定于当前流音频(本地或 TTS)的绝对时长,解决由于大模型随机分句导致的严重音画错位问题。 - 🛡️ 脏数据自动净化 (Auto-Sanitize): 针对游戏解包音频常带的复杂元数据(Metadata/Chapters)导致渲染引擎崩溃的行业痛点,内置了调用底层 FFmpeg 的”无损净化”指令,一键剥离干扰标签,转储纯净波形。
⚔️ 技术亮点与挑战 (Challenges & Solutions)
挑战一:LLM 结构化输出失控与 JSON 脆性陷阱
- 问题: 处理长文本时,LLM 极易将多行台词合并,或篡改关键 JSON 标签(如将
original改为Original或原声),导致底层音频分发彻底错乱。在修改 Prompt 时,Python 的 f-string 又极易与 JSON 花括号产生转义冲突。 - 方案: 在提示词工程中引入严格的双层
{{}}转义;为大模型施加”按行切分”与”强注音替换(如 UP主 -> 阿普主)“的紧箍咒;在 Python 接收端引入.lower().strip()结合子串模糊匹配 ('orig' in type) 的防呆逻辑,彻底解决了格式脆性问题。
挑战二:多模态资源的”异步”与”同步”交织
- 问题: 爬取网页需要处理网络 I/O 阻塞,TTS 语音生成需要在 asyncio 事件循环中跑,而 UI 界面与视频渲染却是极其严格的阻塞同步逻辑,极易导致线程卡死。
- 方案: 利用同步包装器将 TTS 彻底封装为独立的管线,结合长达 30s 的容错 timeout 机制,实现了极高稳定性的串行工作流。
挑战三:素材数量与台词数量的不等价映射(防崩轮播)
- 问题: 用户只提供了 1 张底图,但 LLM 创作了 10 句台词,传统逻辑会直接报越界错误
IndexError。 - 方案: 引入以”台词长度为基准,素材取余 (
%) 无限轮播”的兜底分发算法,即使输入极少素材,也能完美延展出匹配整个解说时长的完整视频。
📝 结语
“AI Video Agent” 的开发是一次极度浓缩的产品迭代之旅。它让我跳出了单纯”写出能跑的代码”的程序员思维,转而以 AI 产品经理 的视角去审视人机交互的边界:
- 大模型的黑盒输出该如何约束?
- 边缘的脏数据该如何兜底?
- 用户真正的痛点是在于需要一个复杂的剪辑时间线,还是仅仅需要一个**“能听懂话的赛博助手”**?
未来,我希望能将这种对用户体验的极致追求、对复杂 AI 管线的把控能力,带入到更多的 AI 产品线与游戏生态建设中,创造出真正让人惊叹的体验。