finance-explainer
GitHub自动化生成小Lin说风格财经解说视频,涵盖选题、事实核查、剧本创作、数字人驱动及Remotion合成全流程。
Trigger Scenarios
Install
npx skills add andyhuo520/digital-human-koubo --skill finance-explainer -g -y
SKILL.md
Frontmatter
{
"name": "finance-explainer",
"description": "「小Lin说」式财经\/科技解说视频工作室:选题打分 → 带出处的事实清单(Exa\/Tavily\/Serper\/Firecrawl)→ 按危机型\/收购战型\/悖论型骨架写有活人感的口播剧本(拍表 episode.json)→ 主播自录音频对齐跳切(或 MiMo 占位)→ 原创数字人出镜(Renoise:Wan 3.0 音频驱动口型 \/ Grok 1.5 原生说话+后换音色)→ 空镜与梗图(Renoise 便宜模型 + Unsplash\/Pexels\/Wikimedia)→ Remotion 引擎合成:主播全屏↔缩小↔圆形小窗的「放大缩小」、两代舞台主题(v1 紫色几何 \/ v2 深色玻璃)、日期贴纸、大数字滚动、术语卡、原文标黄、问题云、竞猜、卡通贴纸独白、章节卡、字幕、BGM 避让与音效。触发:做一期小Lin说那样的视频、财经解说、一口气了解 X、讲讲某个金融事件\/收购案\/国家经济、数字人口播财经、把这个新闻做成解说视频、复刻财经频道形式。不用于:单支品牌宣传片(用 promo-video)、系列课(用 ai-teardown)、冒充真实主播。"
}
财经解说工作室(小Lin说式)
把一个财经/科技话题做成 2–25 分钟的横屏解说片:一个有活人感的主播坐在书房里聊,配图表、文件、空镜和梗,镜头在「主播全屏」和「主播缩成小窗、旁边上图」之间来回切。
完整的频道拆解(160 支元数据、97 支字幕统计、6 支逐帧分类)在 references/channel-teardown.md,网页版报告:https://claude.ai/artifact/EzcUvSJmVqgFJBGpfn3G3Y
红线(每次都适用)
- **不冒充真人。**数字人只用原创形象:纯文字生成,或者用户本人 / 明确同意的人的照片。不用真实创作者(包括小Lin本人)的脸、改过发型眼镜的同一张脸、或从他们视频里克隆的声音——截图式「授权」、加水印加声明都不改变这一点。用户坚持时,说明理由并给原创方案。
- **不搬内容。**文案、布景、画面全部原创;只学结构和手法。不用影视剧片段、新闻台画面;真实人物用自由协议照片或文字名牌。
- **每个数字有出处。**事实清单 facts.md 里每条都带日期 + 来源 URL;剧本里的数字必须能在清单里找到;查不到的写 ⚠ 且不进剧本。拿不准的地方让主播直说「这个我没查到」——这本身就是活人感手法。
- **生成要花用户的 credits。**Renoise 任何 create_tasks 之前,先给出模型、提示词、参数、数量、estimate_cost 总价和余额,等用户在对话里明确同意。口型视频依赖最终音频:音频没定稿前,不要把整片口型都做掉(会付两次钱)。
流程
0. 准备
- 检索 key 在
~/.config/xiaolin-explainer/keys.env(EXA / TAVILY / SERPER / FIRECRAWL / UNSPLASH / 可选 PEXELS、PIXABAY)。只读这个文件,不要扫描系统找密钥。 - 引擎:
bash scripts/setup_engine.sh <项目目录>(复制 templates/engine,node_modules 优先从本机已有 Remotion 项目cp -c克隆,失败再 npm install)。
1. 选题(references/topic-and-titles.md)
五项打分卡 ≥3 才做;给 3 个标题候选(「一口气了解 + 大对象」「【硬核】」「带数字」「疑问句 + 竖线钩子」)。确认时长:完整版 15–25 分钟表现最好,演示/跑通先做 2 分钟。
2. 事实清单
python3 scripts/research.py multi "<查询>" 找线索 → 打开原文核对(research.py scrape <url>)→ 写 facts.md:分组、每条「事实(精确数字)— 日期 — 来源 + URL」,最后写「容易讲错的地方」。可派子智能体并行查,但交回后自己抽查关键数字。
3. 剧本 = 拍表 episode.json(references/narrative-playbook.md + episode-schema.md)
- 选骨架:A 危机/暴雷型(怎么死的)、B 收购/博弈型(怎么打的)、C 悖论型(为什么反常)。
- 每拍一段口播 + 一个主画面(host: full/side/pip/off,或 stage 图表、bg 空镜)+ 若干叠加卡片,口播里用
[[cue]]标卡点。 - 文案指标:成片约 6 字/秒(录音约 4.8)、每分钟 1–2 个设问、3–4 个带参照物的数字、1 个英文术语;至少放 3 个活人感手法(开场个人状态 / 替观众说质疑 / 拟人独白 / 生活比喻 / 坦白没查到 / 竞猜停顿 / 先说答案 / 结尾回扣)。
- 同时导出录音稿(每拍一段,去掉 cue 标记,写清读法:英文缩写、数字年份)。
4. 声音
- 首选:主播自录。
python3 scripts/align_recording.py 录音.m4a episode.json voice/→ 逐句对齐、口误重来只留最后一遍、拍内长停顿压到 0.16 秒,输出 timings.json。报告里 ⚠(对齐 <80%)的拍要人工听。 - 占位:
python3 scripts/narrate_mimo.py narration.json voice --gap 0.22 --lead 0.3(MiMo 预设音色,语气说明写进 voice.style)。占位就是占位,正式版换真人音频后整条流水线不变。
5. 数字人(references/production.md)
- 定妆照:Seedream 5.0 Pro 16:9 2k(≈6),书房中景、两侧留白放图表、有专属道具(霓虹名字灯、玩偶)。用户给了原创脸就作参考图,否则纯文字生成。
- **方案 W(Wan 3.0,音频驱动,便宜):**参考图 + 该拍音频 → 口型跟着声音走;480p ≈ 6 credits/秒。输出里音频比画面晚 0.23 秒,host.json 的 offset 填 0.23。缺点:眼神偏呆、细节一般。
- **方案 G(Grok Video 1.5,原生说话,更生动):**一张图 + 台词写进提示词 → 自带说话声和口型;720p 15 秒 255。之后用 Seed Audio 做「保留节奏换音色」替换成主播声音。适合全屏特写镜头。
- 小窗(pip)用 3 段 10 秒通用说话循环轮换即可,省掉约 40% 口型费用。
- 先做 10 秒测试:抽帧看停顿处嘴是否闭合、人物是否走样,再批量。
6. 空镜 / 梗 / 贴纸
- 空镜:Renoise Wan 3.0 480p 5–10 秒(audioGeneration=false),提示词写「无文字无 logo」;或
scripts/fetch_stock.py <id> "<关键词>" engine/public/assets --kind photo|video(自动记 credits.json,片尾署名)。 - 梗图:原创短片(如「小机器人一群围住大机器人」),不用影视片段。
- 卡通贴纸:grok-image 纯绿底 → 抠绿成透明 PNG(脚本见 production.md)。
7. 合成
python3 scripts/build_timeline.py episode.json voice/timings.json <engine>/public --assets assets.json --host host.json --bgm music/bgm.mp3 --badge "…" → npx remotion still Episode out/x.jpg --frame=N 抽帧检查(含过渡中间帧)→ npx remotion render Episode out/raw.mp4 --concurrency=6 → ffmpeg loudnorm=I=-16 + CRF 21 出片。
8. 质检清单
字幕按原文标点断句且 ≤13 字;卡片不压字幕、不出画;主播缩放过渡中间帧无残影;口型片段对齐(offset);数字与 facts.md 一致;角标/声明在;响度 -16 LUFS;片尾列出素材与数据出处。
目录
- references/channel-teardown.md — 频道数据与结论
- references/topic-and-titles.md — 选题打分卡、标题公式
- references/narrative-playbook.md — 三种骨架、活人感手法、语言习惯、文案指标
- references/visual-grammar.md — 16 种画面语法 ↔ 引擎组件 ↔ 拍表字段
- references/episode-schema.md — episode.json / host.json / assets.json 字段
- references/production.md — 数字人两方案、Renoise 提示词与价格、素材来源与授权、抠图、渲染与坑
- scripts/ — research.py、fetch_stock.py、narrate_mimo.py、align_recording.py、build_timeline.py、setup_engine.sh;频道分析工具 classify.py / sheet.py / copy_stats.py / vtt2txt.py(拆别的频道时用)
- templates/engine — Remotion 引擎(Episode 合成、Host、Stage、Overlays、Misc 组件,两代主题)
- examples/ai-chips — 「中国买不到顶级显卡,为什么还是世界第二 AI 大国」:facts.md、10 分钟拍表、2 分钟拍表、录音稿;examples/svb — 硅谷银行 3.5 分钟拍表
Version History
- f661a6c Current 2026-11-02 08:52


