🎬 Movie Narrator — 一句话,生成一部电影解说视频

:clapper_board: Movie Narrator — 一句话,生成一部电影解说视频

输入电影名 + 解说风格,全自动生成:文案 → 旁白 → 字幕 → 画面合成。从零到成片,一行命令搞定。


:waving_hand: 项目简介

Movie Narrator 是一个开源工具,解决的核心痛点很简单:

「我想做电影解说,但我不会写文案、不会配音、不会剪视频。」

用 TRAE 从零搭建,一条命令完成全流程:

pip install movie-narrator
mn create --movie "飞驰人生" --style "热血搞笑" --duration 60

就这么简单。中间不需要任何手动操作。


:bullseye: 它能做什么?

输入一个电影名,自动完成 8 步流水线:

步骤 功能 说明
1. 调研 LLM 剧情调研 自动搜索电影剧情,生成解说素材
2. 文案 LLM 脚本生成 按风格(热血搞笑 / 历史悬疑 / 温情催泪)撰写分镜解说
3. 场景 PySceneDetect 检测 自动切分电影画面为场景片段
4. 匹配 Embedding 语义匹配 解说片段 ↔ 场景画面智能咬合,速度因子 clamp 防忽快忽慢
5. 旁白 TTS 语音合成 默认 Edge-TTS(免费),支持 OpenAI / 小米 MiMo
6. 字幕 SRT 生成 + 多语言翻译 --subtitle-lang en 一键翻译,支持原版 / 翻译 / 三语叠加
7. BGM 背景音乐混音 自动混入,增益可调
8. 渲染 MoviePy + FFmpeg 合成最终视频,支持 16:9 / 9:16 竖屏

每一步都可以通过 YAML 配置独立开关。不需要的步骤直接跳过。


:light_bulb: 技术亮点

场景-解说智能匹配

用 embedding 余弦相似度匹配解说文案和电影画面,再用速度因子 clamp(0.5x ~ 3.0x)限制变速幅度。效果:解说说到「主角飙车」时,画面正好切到飙车场景,节奏自然不突兀。

多 TTS 引擎抽象层

统一 TTSProvider 协议,三个后端可切换:

  • Edge-TTS(默认,免费,微软在线语音)
  • OpenAI TTS(tts-1,6 种音色)
  • 小米 MiMo(3 种模型:命名音色 / 声音克隆 / 声音设计)

切换只需改一个环境变量:MN_TTS_PROVIDER=mimo

三层配置架构

这是我觉得设计得最干净的地方:

层级 文件 管什么 数量
env .env LLM + TTS 凭证、端点、模型 21 个
yaml job.yaml 所有流水线行为参数 32 个
CLI 命令行 运行时一次性参数 18 个

三层不交叉。改 BGM 增益去 yaml,改 API Key 去 env,临时跳过片段导出走 CLI --no-clips。每个示例文件都是单一真相源。

多语言字幕

LLM 翻译 + 分块重试 + 软降级。翻译失败不崩溃,原版兜底 + 警告。支持三种叠加模式:原版 / 翻译 / 双语。


:bar_chart: 项目数据

维度 数据
代码量 5000+ 行 Python
测试 270+ 用例,CI 全绿(Python 3.10 / 3.11 / 3.12 / 3.13)
PyPI 已发布,pip install movie-narrator
协议 AGPL-3.0 开源
版本 v0.4.8(已打 tag)

:desktop_computer: 不只是 CLI — 还有 Web UI

mn web

浏览器打开 Gradio 界面,表单操作,支持视频/BGM 上传、实时进度、协作式取消、产物下载。不习惯命令行的用户也能用。


:world_map: 用 TRAE 做了什么?

这个项目从架构设计到实现,全程在 TRAE 中完成:

  • 架构设计:用 TRAE 规划了 8 步流水线、三层配置边界、TTS 抽象层
  • 代码实现:5000+ 行代码,包括 LLM 调用、TTS 合成、场景检测、视频渲染
  • 测试 & CI:270+ 测试用例,GitHub Actions CI 矩阵(4 个 Python 版本)
  • 文档:中英双语 README + ARCHITECTURE + ROADMAP + CHANGELOG
  • 发布:PyPI 自动发布流水线,git tag 触发

TRAE 让我能专注在「做什么」而不是「怎么搭环境」上,从想法到发布全程在同一个工具里完成。


:paperclip: 链接


:ballot_box_with_ballot: 求投票!

如果你觉得「一句话生成电影解说视频」这个想法有意思,请到参赛帖给我投一票!

:backhand_index_pointing_right: 投票地址: 【生活娱乐】Movie Narrator — 一句话生成电影解说视频

也欢迎提问、提建议、分享你想解说的电影。每一个反馈都会让 Movie Narrator 更好。

谢谢你的支持! :clapper_board:

1 个赞