Skip to content

Repository files navigation

redub

model-first 影视译制质检 + 直接出片 CLI。

redub 把一条影视母带从「需求澄清 → 大模型全片检查(合规 + 所有音视频缺陷)+ 确定性检测兜底 → 有问题就整段剪掉(音视频同步)或派单重录 → 直接出成片」的全流程收进一条命令 redub run recipe.yaml, 产出成片 + 甲方 QC 报告 + 重录派单。为影视出海(多语种译制)打造。


🤖 给 AI 的一句话

把下面这句话给任何 AI(Claude Code / Cursor / …),它就能下载并会用 redub:

redub 是一个 model-first 的影视译制质检+直接出片 CLI。安装:
`git clone https://github.com/EricSun0218/redub && cd redub && pip install -e ".[all,brain]"`
(另需 `brew install ffmpeg`)。云端多模态大脑**可插拔、契约不绑厂商**;参考实现接阿里云百炼:
把 key 写进 `~/.redub/dashscope.env`(内容 `DASHSCOPE_API_KEY=sk-xxx`)。核心命令
`redub run <recipe.yaml>` 一条龙跑「需求澄清 → 云端大脑全片查合规+所有音视频缺陷
(确定性检测兜底)→ 有问题就剪(音视频同步)或派单重录 → 直接出成片」。
`redub --help` 看全部子命令,详见仓库 README.md。

这是什么

一句话:云端大脑是主检查,确定性检测兜底,有问题就剪(音频也可派单重录),直接出成片。

  • model-first:整片切成视频段喂可插拔云端多模态大脑,一遍同时查合规违规 + 所有画面/声音缺陷。 大脑没有"单特征盲区",它是全面覆盖那一层。大脑契约不绑厂商——参考实现接阿里云百炼,可换。
  • 确定性兜底:本地 FFmpeg / faster-whisper / VAD / 声纹 做帧精确检测,抓大脑忽略的单帧级缺陷、 给帧精确时码。
  • 直接出片:大脑判了就是处置,自动过闸门,成片直接产出(exit 0),不卡人审。宁可错杀。
  • 有问题就剪:任何问题一律整段剪掉(视频剪哪儿,对应音频同步剪);音频问题另可派单重录
  • 合规可配:合规规则在需求澄清时展示给你,你在对话里告诉 AI 就能改(不用手编配置)。

安装

git clone https://github.com/EricSun0218/redub
cd redub
pip install -e ".[all,brain]"     # all=asr+ocr+comply 本地检测;brain=可插拔云端大脑
brew install ffmpeg               # FFmpeg 8.x,不走 pip

分级安装:核心(pip install -e .)只需 numpy/pyyaml/openpyxl,够跑 doctor/ingest/qc/trim/render; 重型 ML 按需装 .[asr](语种/漏配/声纹)、.[ocr](画面文字)、.[comply](NudeNet)、.[brain](云端大脑)。

云端大脑凭据(可插拔、不绑厂商;下为参考实现=阿里云百炼,用 model-first 主检查必需):

mkdir -p ~/.redub && cat > ~/.redub/dashscope.env <<'EOF'
DASHSCOPE_API_KEY=sk-你的云端多模态大脑key
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
EOF
chmod 600 ~/.redub/dashscope.env      # 库外存放,绝不进 git

换厂商:实现 redub/brain/contract.pyBrain 契约再在 get_brain 注册即可,主流程不改。

redub doctor 自检环境(ffmpeg / 依赖 / 大脑凭据)。


快速开始

一条命令跑完整流程:

redub run recipe.yaml

最简 recipe(直接出片):

job: demo
source: "/path/to/母带.mp4"
target_lang: en
stages: [ingest, clarify, qc, comply, process, sign, render]
clarify: { region: 中东 }                       # 目标播出区域(定合规尺度)
qc:      { clip_s: 30, concurrency: 3 }          # 大模型全片检查 + 确定性兜底
render:  { out: work/成片.mp4, cut_defects: true }

输出:成片(绝对路径打印在末尾)、--emit-redub-order order.json 出重录派单、report: 出甲方 QC 表。

退出码:0=出片成功 · 10=待重录(派单已出,配音棚补录后 Pass-2 出片)· 20=致命阻断 · 4=合规未审。


处理全流程

① 需求澄清    读需求书 → 目标播出地区/期望轨/问题窗口;**展示合规规则**给你确认
② 全片检查    大模型全片查(合规+所有A/V缺陷,主) + 确定性 signal QC(兜底) → 合并去重
③ AI 处理     每个问题按下面「处置规则」自动处理
④ 派单        处理不了的音频问题 → 配音棚重录工单
⑤ 直接出片    帧精确剪+整合 → 成片(有待重录则 Pass-1 暂停,重录回填后 Pass-2 出)

处置规则(核心):

问题 处置
视频缺陷(黑屏/红蓝绿屏/彩条/坏帧/冻结/混叠/色度) 整段剪掉(音视频同步)
合规违规(露点/国旗/争议地图/政治/宗教/极端血腥) 整段剪掉
配音错位(timing) 自动对位(conform)
漏录/改词/读错/语种错/角色撞戏 派单重录
落在剪辑区间内的音频问题 随画面一起剪,不重录
未翻译画面文字 字幕翻译

三条铁律:①模型判即处置,直接出片,不卡人审;②合规只判真正违规(男性赤裸上身/泳装/亲吻不算裸露); ③剪=帧精确+音视频同步(无接缝鬼影)。


检测能力

云端大脑全片 clip pass(主检查)redub/qc/filmwatch.py:整片切连续视频段传可插拔云端大脑, 一遍报出合规违规 + 所有 A/V 缺陷,片内相对秒由 CLI 反算绝对时码。

确定性 signal QC(兜底)redub/qc/signal.py,11 检测项:

  • 视频:黑场 · 彩条 · 异常颜色(红蓝绿屏)· 坏帧跳帧(YDIF,含孤立性判据不误报硬切)· 混叠重影帧(blendframe)· 纯色度坏帧(chromabad)· 场景切换 · 横向撕裂(tearframe,按需)
  • 音频:静音 · 缺配音(missing_dub,音频有声但无对白)

配音质检redub runqc-dub 阶段:大模型词句层(改词/读错/漏字,需 dub 的 ASR)+ 确定性(漏配 / 配音错位 timing / 声纹角色撞戏)。语种=langmap,未翻译画面文字=ocr-translate


合规:可配 + 澄清时展示

合规规则存 redub/policies/<region>.yaml(通用 / 中东 / 中国 / 非洲),每类规则含 counts(什么算违规)+ excludes(什么明确不算,防误判)。

你不用手编 yaml——这是 AI 操作的 CLI,直接告诉 AI 就能改:

  • 「男性上身不算裸露」→ AI 把它写进 nudity 的 excludes
  • 「酒也要剪」→ AI 把 alcohol 挪进 counts
  • 「非洲宗教从宽」→ AI 改 africa.yaml

需求澄清(clarify)阶段会打印本区完整规则给你看,确认/调整后再往下处理。


常用命令

redub run recipe.yaml [--emit-redub-order order.json]  # 全流程编排(一条命令)
redub filmwatch SRC --region 中东 --with-deterministic  # 大模型全片查 + 确定性兜底
redub qc SRC [--checks blackframe,silence,...]          # 确定性 signal QC
redub qc-dub --dub d.wav --script s.xlsx --asr a.json   # 配音质检
redub doctor                                            # 环境自检
redub --help                                            # 全部子命令

架构

        redub run recipe.yaml(DAG 编排)
                 │
   需求澄清 → 全片检查(大模型主 + 确定性兜底 merge)→ AI处理 → 派单 → 直接出片
                 │
   大模型只判、不估绝对时码(片内相对秒 + clip 起点由 CLI 反算)
  • 大脑契约:redub/brain/(contract + dashscope_omni + mock),get_brain / run_asks
  • 编排:redub/orchestrator.py(STAGE_ORDER + 各 _stage_*)。
  • 详见 ARCHITECTURE.md

无凭据 / 离线时,确定性核心(FFmpeg/ASR/VAD/信号检测)照常跑;大模型环节退回本地检测 + 人审兜底(合规未审 fail-closed,绝不静默放行)。


许可

MIT。见 LICENSE

About

model-first 影视译制质检 + 直接出片 CLI:大模型全片查合规+所有音视频缺陷,确定性检测兜底,有问题就剪或派单重录,直接出成片

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages