Skip to main content

talking-head-cut

口播类视频(口播/演讲/访谈/直播)的轻剪辑——ASR 转写拿逐字时间戳,去口气词/结巴/静音,或识别高光段剪成集锦。仅做基于人声的轻剪辑,不出脚本不烧字幕;纯画面类素材的集锦剪辑走 video-edit。

Quellinformationen

Repository
TeamWiseFlow/xiaobei
Letzte Quellaktivität
16. September 2026 um 22:58
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
8.574
Forks
1.455

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
talking-head-cut
description
口播类视频(口播/演讲/访谈/直播)的轻剪辑——ASR 转写拿逐字时间戳,去口气词/结巴/静音,或识别高光段剪成集锦。仅做基于人声的轻剪辑,不出脚本不烧字幕;纯画面类素材的集锦剪辑走 video-edit。
metadata
{"openclaw":{"emoji":"🎙️","requires":{"bins":"[Truncated]"}}}
# 口播视频轻剪辑(talking-head-cut) ## 适用场景 用户提供一段**有人说话**的视频(口播、演讲、访谈、直播回放等),要求: - **去口气词**:删掉嗯/呃/结巴/长静音/假起头/重复句,让口播更干净(`--mode filler`) - **高光剪辑**:自动识别精彩发言段,剪接成短集锦(`--mode highlight`) - 两者都要:先去口气词再标高光(`--mode both`) 典型输入:一段 5–60 分钟的口播视频 + 目标时长(如"剪成 60 秒的高光集锦")。 不适用: - 视频没有人声、或精彩与否要看**画面**而不是听内容 → 走 `video-edit` 的画面集锦流程 - 用户已经明确告诉剪哪几段 → 直接用 `video-edit extract` 手工抽段拼接 - 需要从零生产视频 → 委托 content-producer - 需要烧字幕、加 BGM → 剪完后走 `video-edit subtitles` / `video-edit audio-mix`(BGM 来源优先公共 `bgm-library` 技能:`bgm-library pick "<主题>"` 选曲下载,免 key、免版税、自动署名;定制风格用 `aigc-video-gen music`) --- ## 工作区 平台内容用平台运营项目目录 `<platform>/outputs/<video-name>/` 作项目目录;其他零散任务在 `output_videos/` 下建项目文件夹: ``` <project-dir>/ # 即 <platform>/outputs/<video-name>/ 或 output_videos/<project-en-slug>/ ├── source.mp4 # 用户提供的原始视频(重命名后的副本或软链) ├── cut_plan.json # 检测产物:[{keep, start, end, reason}] └── highlight.mp4 # 最终成片 ``` --- ## 流程 ### Step 1:检测生 cut_plan.json ```bash talking-head-cut <source.mp4> \ --mode highlight \ --language zh \ --output <project-dir>/cut_plan.json ``` 参数: | 参数 | 默认 | 说明 | |------|------|------| | `--mode` | `filler` | `filler` 去口气词 / `highlight` 高光剪辑 / `both` 先去口气词再标高光 | | `--language` | `zh` | 语气词清单选择:`zh` 嗯/呃/额/唔/哎/诶/欸;`en` um/uh/uhm/er | | `--silence-gap` | `0.6` | 静音段判据:相邻 word gap > 此秒数 | | `--stutter-repeat` | `4` | 结巴段判据:单字重复 ≥ 此次数 | | `--similarity-threshold` | `0.6` | 重复句段判据:句间 Jaccard > 此阈值 | | `--output` | `cut_plan.json` | 计划产物路径 | 产物 `cut_plan.json`: ```json { "ok": true, "source": "source.mp4", "duration": 1832.5, "mode": "highlight", "plan": [ {"keep": true, "start": 12.3, "end": 45.8, "reason": "highlight"}, {"keep": false, "start": 45.8, "end": 50.1, "reason": "silence"}, {"keep": true, "start": 50.1, "end": 88.2, "reason": "highlight"}, {"keep": false, "start": 88.2, "end": 91.0, "reason": "filler"}, ... ] } ``` `reason` 枚举: | reason | 含义 | mode=filler 时 keep | mode=highlight 时 keep | |--------|------|--------------------|-----------------------| | `filler` | 语气词段 | false | — | | `silence` | 静音段 | false | false | | `stutter` | 结巴段 | false | — | | `false_start` | 假起头段 | false | — | | `repeat` | 重复句段 | false | — | | `highlight` | 高光段 | — | true | | `normal` | 常规段 | true | false | > 高光判据(`detect_highlight`):utterance 字数/时长 > 4 字/秒(zh)或 3 词/秒(en),且与全片文本 Jaccard < 0.3("新颖段")。 ### Step 2:用户确认 cut_plan.json(关键闸门) cut_plan.json 落盘后**必须先让用户看一眼**再剪: - 报告:总时长、keep 段总时长、keep 段数、remove 段数、按 reason 分类的段数与累计时长 - 若 keep 段总时长与用户目标时长差距大(>20%)→ 调阈值重跑 Step 1,不要硬剪 - 用户认 plan 后才进 Step 3 ### Step 3:按 cut_plan.json 剪拼成片 剪拼由 `video-edit` 技能的 apply-cut 子命令执行: ```bash video-edit apply-cut <source.mp4> <project-dir>/cut_plan.json \ --output <project-dir>/highlight.mp4 \ --fade-ms 40 ``` 参数: | 参数 | 默认 | 说明 | |------|------|------| | `--output` | `<input>_cut.mp4` | 成片输出路径 | | `--fade-ms` | `40` | 段间 triangular fade 毫秒数(防咔点,0 关闭) | 流程: 1. 读 cut_plan.json,滤 `keep=true` 段 2. ffmpeg `-ss`/`-t` 逐段抽出(libx264 crf 20 + aac 128k + 保持源分辨率帧率) 3. 段间加 `--fade-ms` 毫秒 triangular fade 防咔点 4. ffmpeg `concat` 拼接成片,`+faststart` 优化 ### Step 4:成片自检(强制闸门) 剪拼完成后**必须**跑成片自检,自检不过不得交付: ```bash video-review <project-dir>/highlight.mp4 ``` > video-review 是成片自检闸门,verdict=pass 才交付;verdict=fail 按 review 提示修。详见 `video-review` 技能 SKILL.md。 ### Step 5:用户确认 向用户展示: - 成片(发文件本体) - 关键参数:成片时长、keep 段数、总压缩比(成片时长/源时长) - cut_plan.json 概要(按 reason 分类的段数与累计时长) 用户确认后流程结束。后续发布由各 publish 技能执行。 --- ## 依赖 | 依赖 | 来源 | 说明 | |------|------|------| | ffmpeg / ffprobe | 系统 | 抽 WAV、剪拼、concat | | 公共 ASR 路由 | env 任一组凭据 | 火山极速版(`VOLC_ASR_*`)→ 百炼业务空间 → 百炼 agent plan;拿 word 级时间戳 | | requests | 仓根 requirements.txt | 调 ASR HTTP API | | `video-edit` 技能 | 同 workspace | Step 3 剪拼(apply-cut)+ 后续加 BGM(audio-mix) | | `video-review` 技能 | 公共 skills | Step 4 成片自检 | | `bgm-library` 技能 | 公共 skills | 加 BGM 时的曲源(ccMixter 免版税,免 key,优先于 aigc-video-gen music) | **ASR 凭证**(任一组):火山 `VOLC_ASR_APP_ID` + `VOLC_ASR_ACCESS_KEY`(旧控制台双头)或 `VOLC_ASR_APP_KEY`(新控制台单头);百炼业务空间 `WORKSPACE_ID` + `MODELSTUDIO_API_KEY`/`DASHSCOPE_API_KEY`;百炼 agent plan `AWK_API_KEY`。全部未配置时退出码 2 并提示走 viral-chaser 开通流程。 --- ## 脚本清单 | 调用 | 用途 | 退出码 | |------|------|--------| | `talking-head-cut <source> [参数...]` | ASR 转写 + 多层检测生 cut_plan.json | 0 成功 / 1 参数错 / 2 ASR env 未配 / 3 ffmpeg 不存在 | | `video-edit apply-cut <source> <plan> [参数...]` | 按 cut_plan.json ffmpeg 剪拼成片 | 0 成功 / 1 参数错 / 3 ffmpeg 不存在 | --- ## 禁止事项(强制) - **禁止跳过 video-review 交付**:剪拼完必须跑成片自检,verdict=pass 才交付 - **禁止硬剪不确认 plan**:cut_plan.json 落盘后必须先让用户确认 keep/remove 段再剪 - **禁止直接写 ffmpeg 命令**:所有 ffmpeg 调用走本技能与 video-edit 的标准化脚本,不在 exec 中拼 ffmpeg 命令
Auf GitHub ansehen