← 博客首页 实验室总入口 SKills实验室 实验索引 / short-video-producer
无尘阁 · 自研 Skill
LAB / SKILLS · 自研 · v2.1 · 2026-11-07

一条口播片,从选词到出厂

自研 WorkBuddy Skill · short-video-producer · 863 个文件 / 21.8 MB

说一句「短视频生产」,它先问你走哪条线:查数据从零选题,还是贴一篇文章,还是脚本已经写好了只做成片。定下路线,八个站一路推下去——选词、采集、写稿、配音、分镜、合成、混音、验收,每一站都有能数出来的判据,不符合就不许往下一站走。

自研 三线出稿 八站流水线 133 条硬规则 两道确认门
3条取稿路线
8站流水线
133条硬规则
863个文件
01 / WHAT IT DOES

它管的是一条产线,不是一个环节

触发词:短视频生产 / 做一条视频号 / 出一条口播 / 从选词到成片 / 按这篇文章出脚本 / 出片 / 换个风格重做。

做视频号口播的人,卡点通常不在拍,也不在剪,而在前面那一大段没有章法的活:这期讲什么、别人讲过没有、稿子写到什么程度算能念、字幕该切多碎、音效该多大。每一步都能凭感觉做,做出来就每次都长得不一样。

这个技能把这些判断全部落成数字。稿子不超过 800 个汉字,最长句子不超过 36 个字,十来个字的短句要占到四分之一以上;成片语速落在每分钟 230 到 250 字之间;音效比人声低 16 到 18 分贝;单场静帧不超过 10 秒。数字定下来,返工就有依据,吵架也有依据。

它的第二条骨架是两道确认门。脚本写完先给你看,你点头才做分镜图;分镜图出来再给你看,你点头才合成视频。中间不许自己往下冲——因为一旦冲错,返工的不是一段文字,是十几张图加一条片子。

判据

先量结果,再反推参数

产线上九成的返工,都是顺序做反了:先拍一个参数,再拿眼睛判断结果对不对。所以每一步都先定义「什么算对」。

素材

只认界面实读的数

微信指数、红心、在看、评论,只采界面上真实读到的。联网搜索只用来核实案例出处,不许拿它补数据。

人声

只用真人录音,不用合成音

语速、断句、重音是作者的态度。合成音等于替他拍成另一个人的片子,所以这条是红线。

02 / THREE ROUTES

三条线,开工先选一条

路线是时间决策,交给用户选;切口、主词、用哪一版稿属于专业判断,不许做成选择题。

线 1 / RESEARCH

只给一个词

查微信指数定需求,量竞争度定稀缺,采 20 条对标视频加 20 篇公众号,读评论区找别人没讲的缺口,给 5 个角度候选,你选完再按七段骨架写稿。

约半天出第一版
线 2 / REWRITE

贴一篇文章

拆它的观点、找它没讲的缺口,给 2 个切口候选,你选完按顾问式四段写完,交三份:拆解、带接缝表的脚本、纯文本。

2–3 小时
线 3 / PRODUCE

脚本已经有了

不改稿,只体检。体检完出分镜、写每场出图提示词、合成、混音、验收,一路送到出厂。

1–2 小时

三条线在第 3 站合流,合流之后共用同一套标准:800 字、一个论点、一个案例、结尾回扣标题。也就是说不管前面从哪儿起步,后面的活没有区别。

线 1 的三块不能省:微信指数(需求)、搜一搜(竞争度)、视频号与公众号正文(别人讲到哪儿)。采不满就降级——20+20 采不到退 10+10,再退 5+5,绝不换源。 SKILL.md · 采集纪律
03 / PIPELINE

八个站,一站一份产物

每一站都有明确产出物落盘。中间还有一个配音站插在 3 与 4 之间,编号 3.5,因为它决定后面所有时间轴。

00ROUTE

选路与环境自检

先给三个选项让你定路线,再花 60 秒把依赖跑一遍:微信登录状态、kimi-cu、ffmpeg、om、327手绘、Python 包。哪一样不通就停手报障,不自己找替代方案。

环境自检报告
01TOPIC

选题(仅线 1)

选题是二维的:需求乘供给。只查指数不看竞争度,等于只做了一半。判定分四档——蓝海、可做、有窗口、红海,每一档对应不同打法。

01-素材与选题卡.md
02COLLECT

采集(仅线 1)

20 条视频号加 20 篇公众号,再看评论区。采集走 Windows 上的微信自动化脚本,白屏一律不点、采完立刻关页面、素材只用两年以内的。

原始数据/ + 04-研究进度.md
03SCRIPT

写稿

线 1 给 5 个角度候选,线 2 给 2 个切口候选,你选完才动笔。写完全机器自检:precheck.py 退出码为 1 就是有 FAIL,不许交稿。

口播脚本.md(≤800 字)
3.5VOICE

配音整理

先剪停顿,再换 1.5 倍速,顺序不许反。产出干声与一份新的时间轴 JSON——后面分镜场数、字幕起止全部按新时间轴重算,不许把老时间轴整体除以 1.5。

voice-tight.wav + timeline.json
04STORYBOARD

分镜与出图

场数按换速后的真实时长反算。画风默认走 327手绘,调性接不住才翻内置画风包。定下来就锁死,一个片子只准一种画风。

images/seq/ 逐帧图
05COMPOSE

合成

一个片子一个 HTML 加一条 GSAP 时间轴,由 Python 生成器写,不手改。标题常驻两行、字幕落在画面下方、取景框按内容归一化,全部走同一份版式规则代码。

film/index.html
06MIX

混音

无声渲染,再把人声与音效轨合起来。剪过气口的配音不能交给自动混音,否则人声会被当成背景音乐压掉二十几分贝。

成片vN-9x16.mp4
07QC

验收出厂

抽帧叠框、量字幕位置、量节奏、量电平、核帧数、念一遍断行。交付时报四个数:时长、体积、md5、削顶系数。

交付说明
04 / STRUCTURE

包里装了什么

863 个文件,21.8 MB。主体是十四份参考文档、八个校验脚本、一条 Windows 采集链,以及一个十三 MB 的内置画风包。

short-video-producer/
├── SKILL.md                        主流程:三线八站 + 三十一条速览(62 KB)
├── README.md                        一页速览:三条线、依赖、四条采集红线
├── references/                        十四份规范,规则唯一权威在这一层
│   ├── 01-硬规则.md                133 条,A–AL 段(149 KB)★
│   ├── 02-脚本-三线出稿.md         三条线怎么走、降级表、确认门
│   ├── 03-脚本-结构与文风.md       七段骨架、硬指标、句法指纹
│   ├── 04-成片-版式与取景.md       标题、字幕、取景框归一化
│   ├── 05-成片-音效与音乐.md       视觉重音表、混音、电平
│   ├── 06-工具-om链与混音.md       om 五条命令、五个必设
│   ├── 07-踩坑记录.md              坑按字母编号 A–AV
│   ├── 08-验收清单.md              出厂逐项打勾
│   ├── 09-迁移与依赖.md            换机器带什么
│   ├── 10-采集-微信Windows.md      采集实战:坐标、遮挡、评论区(44 KB)
│   ├── 11-词库.md                  十三个方向词 + 无关词黑名单
│   ├── 12-踩坑台账.md              念稿三问、机器查不到的六条坑
│   ├── 13-字幕布局高级版.md         第二档版式:12 项实装 + 13 项不实装
│   ├── 14-正面样例-口播语料.md      语体与站位的唯一正面基准
│   ├── example-成片实例-T08战略/      出厂标准答案:成片 + 15 张分镜 + 复盘
│   └── 截图-*.png                   「发现」面板与搜一搜结果页长什么样
├── scripts/
│   ├── precheck.py                交稿前机器自检,退出码 1 = 不许交(26 KB)
│   ├── caption_rules.py            版式规则唯一实现:字号、位置、档位
│   ├── caption_wrap.py             断行:动态规划选切点 + 自检
│   ├── fit_voice.py                剪停顿 + 换速 + 出新时间轴
│   ├── asr_check.py                配音验真:念的是哪一版、念完没有
│   ├── encode_timeline.py          铺帧:帧数由构造保证,可校验
│   ├── frame0_check.py             首帧有没有画,从成片里解帧验
│   ├── subgap_check.py             字幕间隙检查
│   └── wx/win/                    Windows 采集链:搜词、扫卡、开播放器、读评论
└── vendor/
    └── illustration-skills-pack/    内置画风包,733 个文件 / 11 MB
        └── INDEX.md                唯一入口:内容调性 → 用哪个画风

八个脚本,各守一道门

脚本它拦的是什么
precheck.py稿子层面的所有硬指标。字数、句长、主题词、动宾搭配、数字口径、因果方向,一次跑完。
caption_wrap.py断行。按词边界切,不许把「修改」劈成「修 / 改」,也不许切出孤零零一个字的一行。
asr_check.py配音验真。一次性回答三件事:念的是哪一版稿子、有没有念完、语速对不对。
encode_timeline.py铺帧。帧数由构造保证,顺带核对切换点有没有漂移。
fit_voice.py剪停顿与换速。剪完必须出新时间轴,不许复用旧的。
frame0_check.py首帧。从成片 mp4 里解第一帧看有没有画,不看工程文件。
subgap_check.py字幕间隙。间隙太短会闪,太长会断气。
caption_rules.py版式的唯一实现。字号、位置、档位全在这里,别处不许再写一份。

画风包是三件外部依赖里的一件

外部只依赖三样东西:327手绘(默认画风,借它的画风编号与提示词写法)、内置画风包(调性不对时换风格,唯一入口是 INDEX.md)、huashu-motion 的 om 命令(合成)。路径与命令在 SKILL.md 里写死,就是为了防止开工时到处翻「那个技能在哪儿」。

05 / SPECS

能被数出来的那些要求

全部来自 references/01-硬规则.md,冲突时以该文件为准。

项目定值为什么是它
字数≤800 汉字,含标点 ≤850超了先砍案例,不砍观点。削短每句话就变电报体,只能整块删。
第一句≤15 字,必须是判断前三秒只给判断,不铺垫、不自我介绍。
句长平均 ≤18,最长 ≤36十来个字的短句要占到 25% 以上,念起来才有呼吸。
案例一个,必须带媒体与日期一个论点配一个案例,只列症状不给动机,老板点头但记不住。
语速230–250 字/分超过 260 赶,低于 200 拖。快慢是用户的取向,不替人权衡。
单场静帧≤10 秒超了先在同一张图里切第二机位,还不够就补图。
音效电平比人声低 16–18 dB音效跟这一行有没有高亮词走,不跟「这句是不是金句」走。
字幕粒度一句一片一屏,6–14 字整句一次性亮出就是「一下子圈出来」,要按标点切成小句随字音出。
字幕断行行首不许是「的、了、着」行尾落在「把、被、在」也算不合格,孤字行同样不算。
削顶系数Flat factor 必须为 0不为零就是有削顶,交付时报的这个数自己也要能过。

133 条规则是怎么来的

翻 01-硬规则.md 会发现一个现象:几乎每条规则后面都挂着一个日期,和一句「用户打回」的记录。规则不是先想好再写下来的,是一条片子被退回一次,就长出一条。

这是第 0 条,也是第一死规则:用最全的表达,不用最省的表达。「中途不挪」要写成「中途不能挪用」,「重新动人」要写成「重新动人头」。自检就一句话:听众要不要给你补一个字?要补,就是错。 01-硬规则.md · 第 0 条(115,11-01 12:58 打回后置顶)

往后翻还有数字口径那条:一组数据只留一个对比,大定、退订、交付、上险是五种口径,放在同一句话里观众就会按同一个口径算,算出来就是「总共才订三千,退了一万多」。判据很朴素——抄到纸上,小学算术过一遍,过不了就是错。

这套东西的价值不在条数多,而在于每一条都对应一次真实的返工。它把一个反复踩坑的过程,压缩成了一份可以照着执行的清单。

06 / DOWNLOAD

拿走它

解压后把整个 short-video-producer/ 目录放进技能目录。包里的画风包原样保留,不要去改它的内部结构。

short-video-producer v2.1

863 个文件 · 21.8 MB 原始体积 · ZIP 13.8 MB · 含主流程、十四份参考文档、八个校验脚本、Windows 采集链与内置画风包

文件 short-video-producer.zip 大小 13.8 MB 版本 2.1 发布 2026-11-07

装法

# 1. 解压(Windows 上中文文件名建议用 7-Zip 或 Bandizip)
unzip short-video-producer.zip -d /tmp/skill

# 2. 放进技能目录
mv /tmp/skill/short-video-producer ~/.workbuddy/skills/

# 3. 交稿前自检,先跑一次看看门槛长什么样
python ~/.workbuddy/skills/short-video-producer/scripts/precheck.py --help

这个包的采集链是为 Windows 写的(微信桌面客户端自动化 + om 合成),脚本里的路径也是 Windows 路径。换到别的系统,要按 references/09-迁移与依赖.md 改一遍依赖与路径。纯出稿、纯体检的部分不依赖系统。