zmm-cut:口播成片剪辑
它管的是「拍完之后」。 拍之前的选题、写稿、审核归
/zmm-topic/zmm-script/zmm-review。🔴 边界:只删和重排,不加词(2026-09-05 说清楚)
这里只处理他实际说出来的那一版。在那一版之内:
✅ 能做 ❌ 不能做 删(废镜头、重复、水词、行话、断尾) 加任何他没说过的词 重排(容器层调顺序、把结果提到最前面) 顺句子、改语序、替换措辞 把补拍并进原素材 重排他推导结论的那一段(见 references/内容层重组.md§二.3)⚠️ 「本技能不改文案」的意思是不加词,不是不许动。 按文案规则做删除和重排,正是这个技能的主战场。
〇、启动顺序(不要跳)
- 🔴 先探环境,再决定怎么走(2026-09-05 订正):
- 有 ChatCut 插件版前置技能的宿主 → 先加载它,不要和 ChatCut 工具调用打包在同一轮
- Desktop MCP 直连(工具名形如
chatcut_desktop/*)→ 没有那个前置技能, 按服务端要求先跑一次只读定位(get_active_project)确认目标工程 - 一个都没有 / 报 signed out → 走
references/ChatCut实操.md§一 的降级路径: 告知下载 + 本机转写旁路(内容层的活全部不需要 ChatCut)
chatcut-talking-head-guide—— 口播剪辑的执行规范- 读
zmm/references/家族公约.md(读不到 → 明说「公约读不到,红线无法保证」并停下)zmm/references/交互规范.md(🔴 不是读一遍就算:收尾按 §四 三件套 —— Recap · Before/After · 下一步给编号选项;缺信息按 §四 用选择题问,一次只问一个;不适用的情况见 §五)
- 读
{vault}/00-规则与索引/口播拍摄基线.md(时间/地点/穿着一次定死) - 读记忆
{vault}/08-技能记忆/zmm-cut/+_通用/ - 🔴 要动内容(不只是去口癖)时,读
references/内容层重组.md - 🔴 第一次调 ChatCut 工具前,读
references/ChatCut实操.md(三个实测踩过的工具坑) - 🔴 剪完之后必须回到
口播稿输出格式.md§四之下「上传版」 —— 见本文 §五
本技能内置判据在 references/规则卡.md(判据 / 为什么 / 怎么查 / 强度),开工前读一遍;{vault} 里有对应的规则文件时以 vault 为准、规则卡为底。
⚠️ 按需读,不要一次读完。 本技能只在「拍完 → 成片」这一段, 不需要读选题层和写稿层的文件。
一、账号默认参数(🔴 已固化,不要再问用户)
🟢 詹明明 2026-08-27 定。这些是默认值,不是每次都要确认的问题。 用户没有说要改,就直接用;用户说了别的,以用户当次说的为准。
⚠️ 下表是「这一个账号」的实测值,不是通用推荐。 有
config就从config读;读不到就用下表,并说明用的是示例值。 换账号 / 换题材时,正文流程照走,只换这张表。
| 项 | 默认值 |
|---|---|
| 平台 | 抖音(竖屏 9:16) |
| 成片时长 | 保持原长 —— 不为了短而砍内容(判据是绝对观看时长不是完播率) |
| 整体速度 | 🔴 1.15×(在语音剪辑之后统一加速,不是逐段调) |
| 默认处理 | ① 语音剪辑(去口癖、停顿、重复)② 字幕 |
| 默认不做 | B-roll · MG 动画 · 背景音乐 —— 用户明确要才做 |
| 节奏风格 | 紧凑有力 |
字幕规格(🔴 已固化)
| 项 | 值 |
|---|---|
| 字体 | HarmonyOS Sans 粗体 |
| 描边 | 轻微 |
| 阴影 | 有,轻 |
| 整体观感 | 干净现代 |
| 高亮 | ★ 有,颜色 黄色 #FFE20A |
| 🔴 高亮关键词谁选 | 用户自己选。 出稿时给候选,不要替他定 |
二、工作流(七步,每步之间必须停)
🔴
talking-head-guide硬规则:多个处理之间有依赖,必须按顺序定稿,且每一大步之后单独跟用户确认,不许把多个 checkpoint 打包成一条回复。 上游改了,下游全部要重做(字幕对着加速前的时间轴写 = 全废)。
⓪ 素材清点与合并 → 停,说清有几条素材、哪条是补拍、要不要合并
① 素材进项目 → 停,确认转录出来了
② 语音剪辑 → 停,确认「他实际说的」这一版对不对
③ 整体加速 → 停,确认节奏(倍速见 §一)
④ 字幕 + 高亮 → 停,让用户选高亮关键词
⑤ 交付 → 只有用户明确说要导出/下载才导
⑥ 导出后验文件本身 → 抽帧确认字幕/B-roll/打码都烧进去了
⓪ 素材清点与合并(2026-09-05 加)
技能原来默认只有一条素材。实际经常是两条以上(原片 + 补拍、多机位、多次录)。
- 先逐条转写,分开读,不要一上来就拼
- 说清哪条是主素材、哪条是补拍,补拍要盖在哪一段
- 🔴 补拍进来就必须做「逐字重复扫描」 —— 见
references/内容层重组.md§二.2 - 合并按新顺序排,不是把补拍接在末尾
① 素材进项目
- 先
list_projects/create_project/target_project定下项目,再做别的 - 项目一建好立刻把编辑器亮出来(
preview_start),让用户能看着进度 - 素材有三条路进来:用户在编辑器里直接传 · 会话里给了本地路径(走
asset-import)· 用户已经传好了(先browse_assets找,不要上来就说找不到) - 等转录出来就可以开工,不用等原始字节传完(A-roll 只要文字稿)
② 语音剪辑(本技能的主战场)
🔴 这一步分两层,不要混着做: 机械层(固定口癖、批量停顿)不需要理解意思,工具能做; 内容层(哪些留、哪些删、哪些换位置)必须理解意思,判据在
references/内容层重组.md。⚠️ 只做机械层 = 只是把片子擦干净,没有改善它。 用户说「剪一下」通常两层都要,但内容层的每一处删改都要说清理由。
严格按 talking-head-guide 的 A-roll 流程:
read_script→ 读一遍timeline.md,看清结构- 先跑机械清理(
clean_script):只处理固定口癖(呃/额/嗯)和长停顿 - 🔴 跑完必须重读刷新后的
timeline.md—— 之前读的已经过期 - 再做内容层判断 —— 按
references/内容层重组.md的五条判据走: 识别废镜头 · 逐字重复扫描(补拍必做)· 推理链不许为悬念重排 · 开场要同时有钩子和共鸣 · 删之前问「删掉之后还讲得清楚吗」 apply_script落到时间轴- 读回来检查:接缝逻辑(缺不缺一座桥)· 前后一致性 · 相对时间还成不成立 · 结尾完不完整 · 停顿是不是太紧
🔴 这个账号特有的三条,别按通用规则剪掉
| 保留 | 为什么 |
|---|---|
| 口语噪声(呢 / 啊 / 哈 / 叠词 / 口误式重复) | 规则 每一句都工整 = 观众一秒听出在念稿。⚠️ 通用的「去口癖」会把这些一起清掉 —— 每 5–8 行留一处是设计好的,不是失误 |
| 邀请自查的插入句(「你仔细想想」「不知道你们有没有这种时候」) | 规则 它带一个动作指令,不是填充词 |
| 限定词(多半 / 很多时候 / 可能才是) | 规则 不许改成绝对化 |
🔴 判据:这个词删掉之后,这句话是变干净了,还是变得像稿子了?变得像稿子 = 别删。
停顿口径
- 明显长停顿(>0.8–1s)→ 压到约 0.3s
- 句子之间保留 0.3–0.5s —— 别压没了
- 转折、对比、强调处的停顿要留住,那是设计好的(稿子里标了 ⏸⏸ 的地方)
- 句内正常呼吸 → 不动
③ 整体加速 1.15×
🔴 必须在语音剪辑定稿之后做,顺序反了字幕全部要重来。 统一加速,不是逐段调速 —— 逐段调会让语调忽快忽慢。
④ 字幕 + 高亮
按 talking-head-guide 的 captions 规范,套 §一 的固化规格。
🔴 高亮关键词不许我替他定。 做法:
- 通读字幕,挑出每 8–12 秒一个的候选关键词(挑判断句、数字、转折词、落点句里的核心词)
- 列出来给用户选,标清在第几秒、原句是什么
- 用户勾完再上高亮
⚠️ 不要整句高亮 —— 高亮的作用是让眼睛在滑动中停一下,整句高亮等于没高亮。
⑤ 交付
🔴 默认交付的是「可编辑的 ChatCut 时间轴」,不是 MP4。
只有用户明确说导出 / 渲染 / 下载 / 最终交付才走 submit_export → track_export。
「剪一下」「清理一下」「做个版本」都不算导出意图。
二b、🔴 验收纪律:元数据会说谎(2026-09-05 加,实测三次)
行数、文字、画面,只能以全尺寸渲染帧为准。
| 骗过的 | 实际 |
|---|---|
| 字幕接口报「一行、不溢出」 | 渲出来折了两行 |
| 多宫格缩略图里看着字错了 | 全尺寸单帧证明是看错了 |
| 工具回执报「清理了 1 个词」 | 时间轴实际少了 4.9 秒 |
每一大步之后固定验两样:
- 数字 —— 帧数 / 时长 / 段数,和预期对不对得上
- 画面 —— 渲全尺寸帧,不看缩略图下结论
⚠️ 缩略图只用来做「挑哪一帧」的粗筛。
详见 references/ChatCut实操.md §三。
三、红线(剪辑环节独有)
| 规则 | |
|---|---|
| 不改内容 | 稿子拍摄时已定稿。剪辑只删不加,不许替他补话、顺句子、改语序 |
| 画面信息点 | 穿搭 / 桌搭 / 背景 / 墙上装饰都是信息点。剪的时候别把有信息的画面剪掉 |
| 不上 AI 截图 | 讲 AI 那一段的画面不要配 AI 界面截图 —— 会把人群窄掉(不要变成工具号) |
| 打大字的位置 | 稿子的「需要处理的点」里标了 ⏸ 打大字的行,剪辑时要对上 |
| 金额打码 | 任何出现后台数据/收款/客户信息的画面一律打码 |
四、说给谁听
单人自采自编。 拍摄、剪辑、发布都是他一个人:
- 方案要能一个人执行完,不假设有剪辑师
- 直接给判断和动作,不写「供参考」
- 零术语:不说「A-roll」,说「他说话那条主轨」;不说「ripple」,说「后面的会跟着往前挪」
五、🔴 剪完必须回填(这一步最容易漏)
成片发出去之后,把实际播出的文字稿转录回来,写进稿件的「上传版」那一节。
规范见 {vault}/00-规则与索引/口播稿输出格式.md §四之下「上传版」。
三块,缺一不可:
- 上传版全文(代码块 + 行号 + 气口)—— 🔴 只改 ASR 听错的专名和错别字,不改语序、不补顺句子
- 差异表(文案版 vs 他实际说的)—— 类型只用五个:加 / 删 / 改措辞 / 换结构 / 调顺序
- 从差异提炼的规则 → 入库
🔴 为什么不能省:稿子是写的,播出版是他说的。 两者之间每一处差异,都是他用嘴投出来的一票 —— 那是这个系统里最诚实的反馈。
⚠️ 例外:差异表里「改措辞」那一栏不适用「默认他的更好」—— 口述比写作更容易临场钝化。凡 AI 版更锋利的,单独标出来问。
六、绝对不做
- 不在没探清环境的情况下就调 ChatCut 工具(见 §〇.1)
- 不用
apply_script(preview:true)当只读预览 —— 它会报错的同时部分提交 - 不在改完字幕字号/框宽后复用旧的 Card id —— 会重新分页,id 是内容哈希
- 不拿工具回执和元数据当验收依据 —— 见 §二b
- 不编 ChatCut 的功能、路径、价格、版本号 —— 会变的产品事实要去查官方 Docs 当前页
- 不把多个 checkpoint 打包成一条回复
- 不自作主张加背景音乐 / B-roll / MG / 转场 —— 用户没要就不做
- 不替用户选高亮关键词
- 不用本地 ffmpeg 压一个拍平的 MP4 当主交付物(ffmpeg 只用于只读检查源文件)
- 不因为「剪一下」就去导出
七、记忆
结束前自查:
- 用户否了哪种剪法(记「纠正」,例:「口语噪声不许清」)?
- 哪个参数被实测验证有效(记「有效方法」,带数值)?
- 踩到了工具的哪个坑(记「纠正」,带取证方法:怎么发现的、怎么证伪了错误猜测)?
写入 {vault}/08-技能记忆/zmm-cut/,先查重。
不知道下一步 → 回 /zmm。