lanshu-create-ai-presenter-video 拆解:数字人口播的授权与成本治理范本

Skill 拆解 · 2026-10-27 · cclank/lanshu-create-ai-presenter-video
11.5 / 12
方法论沉淀度
单一真相源
自检协议
上下文经济学
无关性设计
边界感

rubric 实评 11.5/12。数字人口播类的顶配方法论——它把『拿别人的脸和声音出片』这件事里全部的法律与金钱风险,写成了一组前置闸门和状态机;narration 是 master clock 这一条,是所有配音驱动产线都该抄的单一真相源设计。

lanshu-create-ai-presenter-video 拆解

拆解对象:cclank/lanshu-create-ai-presenter-video(2818★,活跃至 2026-10,327 文件,带 CI 与 tests) 拆解方式:GitHub API 直连文件树 + 通读 SKILL.md 全文(215 行)与 explainer/、references/、scripts/ 结构核对。生成实测需付费 provider,本期为结构实评。 口播形态对照:本拆解重点关注其与「资讯播报类口播视频」(比特新语类)的可迁移性。

1. 它解决什么问题

数字人口播的默认事故不是「做不出来」,是三件事:侵权(拿没授权的肖像和声音生成视频)、烧钱(口型没对齐就全片重渲、付费 API 反复试错)、对不上(配音改了一个词,字幕/图形/剪辑全部漂移)。大多数同类 skill 只管「生成」,这个 skill 的 SKILL.md 里最重的部分全是治理:授权确认链、付费审批五要素、修改路由表。

它的双路由设计也源于现实约束:有授权肖像的用户走 presenter(数字人出镜),没有的走 styled(12 种风格化解说替演)——并且「Never fall back to presenter silently:它需要用户可能没有的肖像」,不静默降级、开口问一次。

2. 怎么设计的

2.1 授权链:在掏钱之前逐项确认

Operating rules 第一组就是授权四件套:图像权利、成人状态、远程上传批准、声音克隆授权——「在相关远程动作之前」确认。两条配套铁律:「Never infer a real voice from an image」(不能从照片推断出真人声音——声音必须来自授权样本或选定库声)、「Never pass 用户已录旁白 as --voice-sample」(那是锁定音频,不是克隆素材)。这是对 AI 换脸/克隆事故带(国内已有多起数字人维权案)的正面回应,同类 skill 里独一份。

2.2 付费纪律:五要素 + hash 寻址防重复

「Treat remote generation as potentially billable」——第一次付费调用前必须报:上传了什么资产、请求的秒数/单位、已知成本、试跑规模、重试上限、预期产出。「Reuse an approval already given for that exact plan」——同一计划的批准可复用,但换计划重新问。topic-to-digital-human 同款思路的 hash 寻址(「approved this exact hash-addressed package → 不再问也不再重渲」)在这里表现为状态机复用。

2.3 master clock:locked narration 统治一切时间轴

「The final narration is the master clock for presenter motion, captions, graphics, cuts, and delivery duration.」定稿配音之后:ASR 回验(漏字/加字/数字/人名/口吃五类错误清单)、「Record real durations. These durations now define the timeline.」、provider 时长上限时用 ASR 时间戳切分而不是猜(plan_segments.py --timings sentences.json)。剪辑侧「deterministic timeline driven by the locked audio」,字幕和关键词图形「only after audio and selected media are final」——上锁顺序写死。

2.4 交付即审计:finalize_delivery.sh 的九项检查

母版/分享双编码 + 两遍响度归一化(-16 LUFS 默认,目标平台不同用 PROGRAM_LUFS 覆盖——这个环境变量设计本身就是「平台无关」的正确写法)+ 全解码验证 + 交付响度实测 + 黑帧/冻结帧计数 + 九帧 contact sheet。「builds everything in a temporary directory and publishes nothing unless every check passes」——不通过就不发布,fail-fast 的交付版。check_state.py --write 推进 job.json 状态到 verified,形成状态机闭环。

2.5 修改路由表:改什么就从哪重跑

Resume 规则精确到资产类型:词改 → research 起;发音改 → spoken 起;换声 → TTS 起;口型问题 → 只重做受影响 HeyGen 段;截图/封面/字幕 → Remotion only;编码问题 → render only。配套「Never spend HeyGen credits to fix a local composition or subtitle problem」——付费段和本地段的责任边界,把「改字幕重渲数字人」这种最冤的钱堵死了。

2.6 工程化程度:327 文件里的职业素养

CI(.github/workflows/validate.yml)+ tests/(smoke、story_timing、explainer_smoke)+ CHANGELOG + VERSION + 双语 README + agents/openai.yaml(跨 harness 声明)。explainer/ 子系统自成一体(STYLES.md 风格菜单 + gallery 缓存图 + GOTCHAS.md 坑典 + KITS.md + 工具链 14 个脚本)。job artifacts 目录契约 14 项标准化(job.json/docs/assets/qa/renders/outputs)。

3. 六维实评

维度 实评 证据
方法论沉淀度 2/2 双路由分流判据 + 12 风格体系 + 四阶段主流程 + resume 路由表 + 状态机(check_state → verified)
单一真相源 2/2 master clock 明文 + job.json 全程记录(prompt/参数/版本/区域/task ID/秒数/验收注记归档)
自检协议 2/2 ASR 回验五类错误 + finalize 九项 + contact sheet 人工复核点 + 「全过才发布」
上下文经济学 1.5/2 Reference routing 表清晰(按 route/阶段读对应文件);但 SKILL.md 215 行单文件密度偏高,presenter/styled 双路由共享主文件,分文件可更省——小扣
无关性设计 2/2 provider-neutral 明文 + 「capability-based 选模型并记录实际选择」+ PROGRAM_LUFS 环境变量 + 免费降级路径(无肖像→styled)
边界感 2/2 「本 skill 做 explainer,宣传片/广告/footage montage 另请高明」+ 不静默回退 presenter + 无肖像时明确告知

4. 实测记录

5. 可偷的设计模式(回灌自产线)

  1. master clock(锁定音频统治时间轴) → 资讯视频产线的字幕/画面/剪辑全部挂配音时间戳,词改则全片重对位——与 anything2explainer「定稿后帧号锁定」同一条定律的两个表述,自产线应统一采用。
  2. 付费前五要素报价 → 一切调付费 API 的 skill(生图/生视频/TTS)都该有:资产/单位/成本/试跑规模/重试上限。配 hash 寻址防重复付费。
  3. 修改路由表 → 「改 X 只重跑 Y」矩阵直接适用于视频产线与 kb 产线(改图不重排全文、改译文不动术语表)。
  4. 不通过就不发布 → deploy.sh 预检的同律加强版:临时目录构建、全检通过才落 outputs——可作为自产线视频交付的终点设计。
  5. 授权四件套前置 → 用户未来若做数字人分身,「疯了再说」IP 授权链(肖像/声音/上传/克隆)应从第一天就按这个清单留痕。
  6. PROGRAM_LUFS 式平台参数 → 平台差异(响度/画幅/时长)用环境变量外置而不是写死分支,工具页工程同款思路。

6. 边界与风险