← 中文口播智能粗剪CONTENT HISTORY

Update to 中文口播智能粗剪

Snapshot Sep 30, 2026 · 23:13 UTC · version 1.1.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "剪辑中文单人或轻对谈口播视频:通过词级时间轴清理前摇、口误、NG、多 take、重复、语气词和场外插话,复查逻辑后精确渲染 MP4;还可添加通用字幕、主题与身份包装、花字、推近、故事暗角、引语滤镜、BGM、定点音效和剪辑报告。用户要求口播粗剪、去废话、字幕包装或完整后期时使用。",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 359
    },
    {
      "relative_path": "assets/config.example.json",
      "size_in_bytes": 1089
    },
    {
      "relative_path": "assets/fonts/NOTICE.md",
      "size_in_bytes": 391
    },
    {
      "relative_path": "assets/fonts/SourceHanSerif-LICENSE.txt",
      "size_in_bytes": 4463
    },
    {
      "relative_path": "assets/postproduction_plan.template.json",
      "size_in_bytes": 1682
    },
    {
      "relative_path": "assets/reviewer_fixture/README.txt",
      "size_in_bytes": 412
    },
    {
      "relative_path": "assets/reviewer_fixture/audio.wav",
      "size_in_bytes": 877812
    },
    {
      "relative_path": "assets/reviewer_fixture/expected/preview.mp4",
      "size_in_bytes": 377524
    },
    {
      "relative_path": "assets/reviewer_fixture/expected/render_offsets.json",
      "size_in_bytes": 43
    },
    {
      "relative_path": "assets/reviewer_fixture/final_cuts.json",
      "size_in_bytes": 424
    },
    {
      "relative_path": "assets/reviewer_fixture/segments.json",
      "size_in_bytes": 8089
    },
    {
      "relative_path": "assets/reviewer_fixture/synthetic_talking_head.mp4",
      "size_in_bytes": 390226
    },
    {
      "relative_path": "assets/reviewer_fixture/timeline.edited.md",
      "size_in_bytes": 346
    },
    {
      "relative_path": "assets/reviewer_fixture/timeline.md",
      "size_in_bytes": 697
    },
    {
      "relative_path": "assets/reviewer_fixture/transcript.json",
      "size_in_bytes": 12431
    },
    {
      "relative_path": "references/audio_mix.md",
      "size_in_bytes": 2463
    },
    {
      "relative_path": "references/brand_overlays.md",
      "size_in_bytes": 2195
    },
    {
      "relative_path": "references/conversion_video_patterns.md",
      "size_in_bytes": 2829
    },
    {
      "relative_path": "references/editing_rules.md",
      "size_in_bytes": 4845
    },
    {
      "relative_path": "references/filler_rules.md",
      "size_in_bytes": 3017
    },
    {
      "relative_path": "references/koubo_logic.md",
      "size_in_bytes": 4403
    },
    {
      "relative_path": "references/postproduction_design.md",
      "size_in_bytes": 3197
    },
    {
      "relative_path": "references/postproduction_modules.md",
      "size_in_bytes": 26240
    },
    {
      "relative_path": "references/runtime.md",
      "size_in_bytes": 2845
    },
    {
      "relative_path": "references/volc_asr_setup.md",
      "size_in_bytes": 21263
    },
    {
      "relative_path": "references/windows_setup.md",
      "size_in_bytes": 4563
    },
    {
      "relative_path": "requirements-optional.txt",
      "size_in_bytes": 77
    },
    {
      "relative_path": "requirements.txt",
      "size_in_bytes": 55
    },
    {
      "relative_path": "scripts/analyze_paired_effects.py",
      "size_in_bytes": 23303
    },
    {
      "relative_path": "scripts/analyze_reference_effects.py",
      "size_in_bytes": 7220
    },
    {
      "relative_path": "scripts/apply_visual_filters.py",
      "size_in_bytes": 11931
    },
    {
      "relative_path": "scripts/bootstrap_windows.ps1",
      "size_in_bytes": 7454
    },
    {
      "relative_path": "scripts/build_timeline.py",
      "size_in_bytes": 2660
    },
    {
      "relative_path": "scripts/compile_postproduction_plan.py",
      "size_in_bytes": 9497
    },
    {
      "relative_path": "scripts/config_loader.py",
      "size_in_bytes": 1518
    },
    {
      "relative_path": "scripts/doctor.py",
      "size_in_bytes": 8878
    },
    {
      "relative_path": "scripts/init_config.py",
      "size_in_bytes": 1497
    },
    {
      "relative_path": "scripts/make_draft.py",
      "size_in_bytes": 2566
    },
    {
      "relative_path": "scripts/make_report.py",
      "size_in_bytes": 2694
    },
    {
      "relative_path": "scripts/make_subtitles.py",
      "size_in_bytes": 37488
    },
    {
      "relative_path": "scripts/mix_bgm_sfx.py",
      "size_in_bytes": 7012
    },
    {
      "relative_path": "scripts/probe.py",
      "size_in_bytes": 1680
    },
    {
      "relative_path": "scripts/render_from_timeline.py",
      "size_in_bytes": 10607
    },
    {
      "relative_path": "scripts/render_preview.py",
      "size_in_bytes": 6093
    },
    {
      "relative_path": "scripts/review_readthrough.py",
      "size_in_bytes": 5351
    },
    {
      "relative_path": "scripts/runtime_support.py",
      "size_in_bytes": 2110
    },
    {
      "relative_path": "scripts/selftest.py",
      "size_in_bytes": 5468
    },
    {
      "relative_path": "scripts/snap_cuts.py",
      "size_in_bytes": 3454
    },
    {
      "relative_path": "scripts/transcribe_pipeline.py",
      "size_in_bytes": 2940
    },
    {
      "relative_path": "scripts/transcribe_volc.py",
      "size_in_bytes": 5900
    },
    {
      "relative_path": "scripts/upload_tos.py",
      "size_in_bytes": 2477
    },
    {
      "relative_path": "scripts/validate_postproduction_plan.py",
      "size_in_bytes": 10341
    }
  ],
  "name": "rough-cut",
  "skill_md_contents": "---\nname: rough-cut\ndescription: 剪辑中文单人或轻对谈口播视频:通过词级时间轴清理前摇、口误、NG、多 take、重复、语气词和场外插话,复查逻辑后精确渲染 MP4;还可添加通用字幕、主题与身份包装、花字、推近、故事暗角、引语滤镜、BGM、定点音效和剪辑报告。用户要求口播粗剪、去废话、字幕包装或完整后期时使用。\n---\n\n# 口播粗剪流程(timeline.md 改文字机制)\n\n按顺序执行。真值有两份:`segments.json`(词级时间,机器读)+`timeline.md`(转写稿,\n④在上面剪)。只有第④步动脑,其余调脚本。目标不是只抠几个口水词,而是删干净前摇、\n收工、作废 take、过程话、真重复和不回收的跑题,同时守住连接骨架和原意。\n\n## 运行约定\n\n把本文件所在目录记为 `SKILL_DIR`,把任务产物目录记为 `OUT`。实际命令必须使用 Skill\n目录中的脚本,不依赖当前工作目录:\n\n- Windows:`PYTHON=<venv>\\Scripts\\python.exe`;首次使用先读\n  `references/windows_setup.md`,按其中命令运行 `scripts\\bootstrap_windows.ps1`。\n- macOS/Linux:`PYTHON=<venv>/bin/python`;首次使用先读 `references/runtime.md`。\n\n开始前运行:\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/doctor.py --config <CONFIG>\n<PYTHON> <SKILL_DIR>/scripts/probe.py --help\n```\n\n自动转写前还必须读 `references/volc_asr_setup.md`。如果检测到用户尚未配置火山,立即\n进入该文档的“Agent 首次配置带领方式”,把它当作交互式开户向导执行,不得只列字段后让\n用户自行研究:\n\n1. 先用生活化语言说明为什么需要豆包语音和临时 TOS,不先抛出 `resource_id`、AK/SK、\n   Endpoint 等实现术语。\n2. 一次只布置一个明确动作,并等用户完成或发截图后再讲下一步:注册/实名 → 开通录音\n   识别 → 取得语音鉴权 → 创建私有桶 → 取得 TOS 密钥 → 本地填写 → 体检。\n3. 每一步说明“打开哪里、点什么、完成后应看到什么、如何回复”;界面不同时让用户发不含\n   密钥的截图,Agent根据截图继续指路。\n4. 在用户取得所需服务和凭证之前,不让用户打开 `config.json`,也不发送整张工程字段表。\n5. 首次阻塞回复优先解决开户,不用大段硬件、编码器和内部流水线状态淹没用户。\n\n安装者只能使用自己的火山 ASR 和 TOS 配置;不得搜索、复制、输出或复用他人的\n`config.json`,也不得让用户把密钥粘贴到聊天中。任务已有合格词级转写并明确跳过转写\n时,环境检查可加 `--allow-no-asr`。\n\n## 硬性规则\n\n1. 原片只读;所有中间文件和成片写入 `OUT`,绝不覆盖原片。\n2. 音视频处理只调用 `scripts/` 中的现成脚本;不得临时拼 FFmpeg 或音频命令。\n3. 删减只在 `timeline.md` 上裁决,不手猜毫秒时间码。\n4. 删除完整语义块;句内划删必须逐词兑现,不能留下半句或切断字尾。\n5. 拿不准就保留,并在行尾标 `%待确认:理由%`。\n6. 渲染前必须完成剪后逐字稿通读;渲染后必须抽听所有删除接口。\n7. 带货和引流内容必须执行合规检查;合规要求优先于 keep-biased。\n8. 脚本失败就停止并说明失败步骤和错误,不反复破坏性重试。\n9. **病句不等于无效内容。** 主讲人句子即使有口误、ASR 错字或量词重复,只要包含独有的\n   方法、步骤、人物身份、数字、例子、因果或承接信息,就必须优先局部划删并保留信息骨架;\n   不得因为删后“大意还能接上”而整句删除。\n10. 自动转写会把抽取音频临时上传到用户自己的 TOS,并交由火山语音识别处理,可能产生\n    存储、流量和识别费用。每个任务首次上传前说明数据流、尽力删除但可能需要人工清理的\n    边界,并取得用户确认;用户提供合格词级转写时优先使用本地流程。\n\n## 主流程\n\n主交付是 `preview.mp4` 和 `剪辑报告.md`。字幕、包装、音效和剪映草稿属于可选交付。\n\n### 1. 探测原片并抽音频\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/probe.py <VIDEO> --out <OUT>\n```\n\n确认生成 `meta.json` 和 16kHz 单声道 `audio.wav`。\n\n### 2. 生成词级转写\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/transcribe_pipeline.py <OUT>/audio.wav \\\n  --out <OUT> --config <CONFIG>\n```\n\n该脚本负责上传到用户自己的 TOS、调用火山 ASR、写入 `transcript.json`,并在成功或失败\n后尝试删除临时对象。必须取得逐句文字和词级时间戳;缺失时停止。\n\n### 3. 生成文字剪辑稿\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/build_timeline.py <OUT>/transcript.json --out <OUT>\n```\n\n确认生成 `segments.json`(机器时间真值)和 `timeline.md`(内容裁决稿)。\n\n### 4. 编辑 `timeline.md`\n\n编辑语法:\n\n- 删词:`[s5] 这一句~~呢~~话`\n- 删句:删除整行\n- 重排:移动整行\n- 编导或非主讲人:删除整行或加 `@编导`\n- 存疑:行尾加 `%待确认:理由%` 并保留\n\n开始裁决前必须读取 `timeline.md` 和:\n\n- `references/koubo_logic.md`:通用口播结构、说话意图、NG 与场外提示信号;\n- `references/editing_rules.md`:删留、承接、重复和连接骨架;\n- `references/filler_rules.md`:语气词和口水词;\n- 引流、卖课、卖货、导直播间时额外读 `references/conversion_video_patterns.md`。\n\n**按四关做,不得跳步:**\n\n1. **说话人过滤**\n   - 先判断是单人口播还是与编导/嘉宾对谈。\n   - 编导的“对对、是是是、叫什么”本身默认不进成片,但删除前必须先读懂它携带的剪辑\n     信号。\n   - “重来一遍、最后一句再来、这条不行、最好也不行”表示前面的 take 已作废;必须回头\n     删除作废版、保留后面的干净重录版,不能只删编导提示却把作废内容留下。\n\n2. **找真正话头和话尾**\n   - 真话头应当是设问、观点、现象钩子或金句前置;它之前的试麦、对词、暖场和找状态\n     全部删除。\n   - 找到最后一句能完整收束主题的话;它之后的“好了吧、这条过了、就这样”和继续闲聊\n     全部删除。\n   - 前摇和收工常占原片 20%~35%,不能只删几个语气词就算完成。\n\n3. **归纳主线**\n   - 在裁决跑题前,先写出一句话主题和从话头到话尾的要点链。\n   - 某段只有推进主题、提供新论据、举例或完成回收时才保留。\n   - 同一意思换说法原地打转、偏离后不回收、只服务录制现场而不服务观众的内容删除。\n   - 判断“重复”前先做**信息增量检查**:分别列出相邻句中的方法、步骤、限定条件、人物\n     身份、数据、例子、因果和承接作用。只有后一句完整覆盖前一句的全部有效信息,才允许\n     整句选优删除;“怎么找到人 → 找到后怎么聊”这类相邻步骤不是重复。\n   - 不得设定目标时长、目标删减比例或“合格压缩区间”,也不得根据历史成片比例倒推还\n     要删多少。有效论证、必要背景、让观点成立的例子和连接骨架必须优先保留;删减比例\n     只能在裁决完成后作为描述性统计。\n\n4. **逐句清理**\n   - 对 `timeline.md` 的**每一句**都逐项检查,不能只处理大块废段:\n     - NG、多 take、说错重说:选信息完整、声音干净、表达自然的一条,其余整句删除;\n     - 被“不对、等下、我重说、又讲偏了”推翻的内容:删被推翻版本,留纠正后的版本;\n       作废范围只覆盖信号直接指向的未完成句或当前 take,不得向前扩大删除已经完整成立的\n       方法、人物身份、案例背景或承接句。\n     - 跑题:先确认后文没有回收;确实不回收才删除;\n     - 主讲人的过程话和盘算话:如“想想啊、这么讲、对啊是是是、开头就用那个、接下来\n       讲什么”,一律删除;\n     - 同义两句:留更完整、更干净、更能独立成句的一条;夹着编导声或重叠声的版本优先\n       删除;\n     - 句内语气词、磕巴、假起头和机械重复:用 `~~ ~~` 逐词清理,不得只在文字上改写\n       却让错误原声留在成片。\n   - 删除前必须读前后 2~3 句,判断她此刻是在“讲给观众”还是“讲给自己”。讲给自己\n     的录制过程话,即使单句看似通顺也要删除。\n   - 删除完整语义块,不删半句。句内划删必须逐词兑现。\n   - 遇到字面病句时,按“确认是否 ASR 错字 → 拆出仍成立的语义块 → 只划删错误起头、\n     口误或重复词 → 做承接测试”的顺序处理。病句里的人物资历、信息来源、寻找渠道、\n     个性化背景和后文因果落点默认属于信息骨架,不能随病句一起清空。\n   - 主讲人整句删除前必须回答两问:“后文哪一句完整覆盖它?”“删除会不会丢失一个\n     可单独复述的新事实或新步骤?”第二问为“会”、第一问答不出时,不得整句删除;\n     局部无法安全清理就保留并标 `%待确认:病句含独有信息%`。\n   - 每一处删除都做承接测试:把删除前一句结尾和删除后一句开头连起来读,主语、指代、\n     转折和论证关系必须仍然成立。\n   - 磕巴句里如果包含下一句需要的主语、指代或连接词,只清理磕巴,保留连接骨架。\n   - 带货/引流口播必须清理广告法绝对化用语;有合规重录版就删违规版、留重录版。\n   - 拿不准是否属于有效信息时保留并标 `%待确认:理由%`;但明确的过程话、作废 take、\n     真重复、收工、前摇和不回收跑题不得以“保守”为理由漏删。\n\n裁决时按需要生成:\n\n- `corrections.json`:ASR 错字和品牌名纠正;\n- `emphasis_plan.json`:少量语义重点词及颜色;\n- `zoom.json`:结论、金句或 CTA 的克制推近计划。\n\n### 5. 通读剪后逐字稿\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/review_readthrough.py \\\n  <OUT>/timeline.md <OUT>/segments.json\n```\n\n剪的时候想的是“删什么”,观众听到的是“删完后剩下的连读”。必须真的从头到尾阅读脚本\n打印的成片逐字稿,并逐项检查:\n\n1. 逻辑是否顺;有没有删掉背景、主语或指代后,让下一句凭空蹦出来;\n2. “所以、但是、然后、这、那、他”等连接和指代是否仍有明确落点;\n3. 有没有删过头,导致完整观点、卖点、论据或连接骨架丢失;\n4. 有没有漏掉明确的口误、磕巴、假起头、重复词、过程话、编导场外话和作废 take;\n   对每句句首的“对、然后、那、其实、就是、所以、但是、嗯、啊”必须结合上一句逐个做\n   承接测试:有明确回应或逻辑关系才留;无承接对象、停顿后重启表达、删除后更顺的按\n   口水词或磕巴删除;\n5. 每个分句的主谓宾和修饰关系是否字面成立;不能因为“猜得到她想说什么”就放过病句;\n6. 播放顺序是否仍是一条主题线;开头是否有钩子,结尾是否完整收束;\n7. 带货/引流内容的绝对化用语和合规问题是否已经清理;\n8. 整体是否仍像本人自然说话,而不是被切成机器人。\n9. **信息损失审计**:把原稿中被整句删除的主讲人内容再扫一遍。凡是含具体方法、渠道、\n   人物身份、数字、案例、限定条件、因果或个性化背景的句子,必须指出成片中哪一句覆盖了\n   它;无法指出就返回第④步,恢复有效骨架后只清理口误。\n\n发现任何问题就返回第④步修改 `timeline.md`,然后重新运行本步骤。至少完成两轮:\n第一轮检查结构与逻辑,第二轮逐句扫漏清和病句;另做一次被删主讲人内容的信息损失审计。\n三项都无硬伤才允许生成切割清单。\n\n### 6. 生成切割清单\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/render_from_timeline.py \\\n  <OUT>/timeline.md <OUT>/segments.json <OUT>/audio.wav --out <OUT>\n```\n\n确认生成 `final_cuts.json`。字尾被截时,只能依据听感用\n`--boundary-overrides <OUT>/boundary_overrides.json` 做受边界保护的局部补偿;不得手改\n毫秒切点或全局放宽所有接口。\n\n### 7. 渲染 MP4\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/render_preview.py \\\n  <VIDEO> <OUT>/final_cuts.json --out <OUT> [--zoom <OUT>/zoom.json]\n```\n\n确认生成 `preview.mp4` 和 `render_offsets.json`。默认使用硬切和短音频淡化;只有用户明确\n要求柔和转场时才用 `--transition crossfade`。逐个抽听删除接口,发现切字或带回废话就\n修正边界并重新渲染。\n\n### 8. 生成报告\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/make_report.py <OUT> --out <OUT>\n```\n\n确认生成 `剪辑报告.md`,包含删减情况、待确认项和成片位置。\n\n## 可选交付\n\n### 字幕、主题与人物身份包装\n\n需要字幕时运行:\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/make_subtitles.py \\\n  <VIDEO_IN> <OUT>/final_cuts.json <OUT>/transcript.json <OUT>/segments.json \\\n  --out <OUT> [--emphasis-plan <OUT>/emphasis_plan.json] \\\n  [--corrections <OUT>/corrections.json] [--brand-plan <OUT>/brand_plan.json] \\\n  [--subtitle-overrides <OUT>/subtitle_overrides.json]\n```\n\n默认使用 Skill 内的开源字体和通用字幕规格。需要主题大字或人物名牌时先读\n`references/brand_overlays.md`。必须逐条通读脚本生成的 `字幕审查.md`;只调整分页的\n`subtitle_overrides.json` 必须逐字守恒,数字、单位、百分号和英文词组不得拆开。\n\n### 完整视觉后期\n\n用户要求花字、章节、推近、故事暗角、引语滤镜或完整包装时,读取:\n\n- `references/postproduction_modules.md`:执行规范、模块和计划格式;\n- `references/postproduction_design.md`:通用视觉、听觉条件规则。\n\n根据最终逐字稿生成 `postproduction_plan.json`,然后依次执行:\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/validate_postproduction_plan.py <OUT>/postproduction_plan.json\n<PYTHON> <SKILL_DIR>/scripts/compile_postproduction_plan.py \\\n  <OUT>/postproduction_plan.json --out <OUT>\n<PYTHON> <SKILL_DIR>/scripts/apply_visual_filters.py \\\n  <OUT>/preview.mp4 <OUT>/visual_plan.json --out <OUT>\n```\n\n先渲染底层画面滤镜,再叠主题、花字和字幕,最后混音。`postproduction_manifest.json`\n中标为 `renderer_pending` 的模块只能报告为待实现,不能声称已经渲染。B-roll 仅在用户\n提供或明确指定素材时处理。\n\n### BGM 与定点音效\n\n需要配乐或音效时先读 `references/audio_mix.md`,生成并验证 `audio_plan.json`:\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/mix_bgm_sfx.py \\\n  <VIDEO_IN> <OUT>/audio_plan.json --out <OUT> --dry-run\n<PYTHON> <SKILL_DIR>/scripts/mix_bgm_sfx.py \\\n  <VIDEO_IN> <OUT>/audio_plan.json --out <OUT>\n```\n\n人声优先。音乐风格与议题不匹配时宁可不加;不要用 BGM 掩盖底噪,音效只落在明确语义\n触发点。\n\n### 剪映草稿\n\n只有用户明确需要且剪映版本兼容时运行:\n\n```text\n<PYTHON> <SKILL_DIR>/scripts/make_draft.py \\\n  <VIDEO> <OUT>/final_cuts.json --out <OUT> --name <TASK_NAME>\n```\n\n剪映草稿不是主交付,失败不影响 MP4 成片。\n\n## 开发与规则标定工具\n\n以下工具不属于每条视频的正常剪辑流程:\n\n- `scripts/selftest.py`:安装或升级后验证路径、FFmpeg、渲染、视觉滤镜和音效混音;\n- `scripts/analyze_paired_effects.py`:对齐原片与编导成片,反向分析后期变化;\n- `scripts/analyze_reference_effects.py`:对参考成片抽帧并匹配本地音效候选;\n- `scripts/upload_tos.py`、`scripts/transcribe_volc.py`:转写底层模块和人工排错入口;\n- `scripts/snap_cuts.py`:旧切点兼容工具,不进入当前 timeline 主流程。\n\n分析结果只能用于补充证据;低置信度音效或视觉匹配不得硬认。更新规则时只把可迁移的普遍\n规律写入 `references/`,不要写入某条素材的具体剪辑答案。\n\n## 完成标准\n\n交付前确认:\n\n- 原片未修改;\n- 剪后逐字稿已通读;\n- 所有删除接口已抽听;\n- `preview.mp4` 可播放且音画正常;\n- `剪辑报告.md` 已生成;\n- 用户要求的字幕、包装或音效版本已完成全量审查;\n- 待确认内容带时间点列出。\n\n向用户汇报:删掉了哪些结构和口误、成片时长、待确认数量及时间点、最终 MP4 路径。\n"
}

SHA-256 of public snapshot: ca81802f3991c0e3425a59639cdc3ecdc7035cab4b25b9f7918aefa60aedfece