git:20261105.42a1fd2 to git:20261105.6541fe5

2 added, 0 removed. Audit A to A.

---
name: laohan-laowai
description: 老外博主数字人全流程总控(含 laohan-yinse)。同一博主优先复用已验声音模型和适用形象素材;首次缺模型才服务器微调。覆盖模型与参考资产保护、整稿合成、same-voice口型、双语字幕及发布复盘。Use when 复刻老外博主、数字人账号、老外数字人、复刻博主做视频、老外IP起号、数字人全流程、新博主资料包、数字人怎么生成。
---
# laohan-laowai — 老外博主复刻数字人全流程
## 使命与合同
**用选定形象、专属音色与教育/文化内容制作数字人口播**。本skill是七阶段总控,本机/服务器CLI自动化,不走网页向导;确需基础素材时才按项目授权调用产品API。首个Deborah/海思博士案例是历史实例,当前形象/稿件/接受状态以各项目STATUS为准;用户当前指令和项目合同优先于本skill。
## 0. 前置(项目根与索引)
- 本项目根固定为 `/Users/hanzhmacbookair/Documents/laowai/1chengzhang`(下文记 `$PROJECT_ROOT`);执行本 skill 前 `cd $PROJECT_ROOT` 或全程用绝对路径。**不要**在 `~/Documents/laohanvideo` 根执行本项目命令——那是 Motion 项目,仅借用其 `motion/tools/` 工具。
- 先读 `$PROJECT_ROOT/AGENTS.md` 与 `$PROJECT_ROOT/docs/INDEX.md`;文中 `assets/...`、`docs/...`、`subtitles-epXX.ass` 等相对路径均相对项目根解析。
- 预检:`test -f docs/INDEX.md` 失败即停并报缺项,不猜路径、不换项目根。
## 七阶段流程
**先分流再执行**:按稳定的博主/形象身份查项目声音资产登记。同一博主后续视频默认复用同一个已选模型版本;换集数、稿件、服装、场景或参考风格不等于新博主,也不触发重新训练。已有形象素材先核本期适用性,不强制重下载整套训练素材。新博主缺模型才从①/②首建;有备份但运行目录缺失时恢复组装,不重新训练。详细分流与依赖核对见 yinse 第0步。
**每集最短路径**:定稿/违规与事实核对 → 既有模型和参考身份检查 → 新稿整轨WAV及音文/听感检查 → 适用clean形象的same-voice → 一次组装/后期 → 连续有声审片及交付。训练数据清洗、多ASR训练校对、模型A/B/稳定性、参考池建设属于首建或具名变更,不每集重跑;字幕单改不回到训练/口型。具体改动影响、并行准备与复核合批见[按改动执行](references/episode-execution.md)。它是已有入口的操作方法,不是自动路由器或跳门授权。
**教育账号稿件先过自然讨论检查**:人设服务本题,不每条报姓名/地区/三娃/履历;不要把自然分享年龄、零花钱数额改成模板“扣1/扣2”。不编评论、亲历和效果来补叙事,不凑90秒或300词。具体使用边界和独立任务包见[教育账号文案](references/education-copy.md),项目合同与最新反馈优先,不改变既定人设。
**有对标或表现力反馈时**:先按[表现力与BGM方法](references/performance-bgm.md)拆出时间点证据,写清本期冲突/转折/情绪,再选同一形象适用素材和既有声音参考。常驻标题、逐句字幕及音乐一起放入一个代表性短样,不新增每环节复审或多版全片。未改风格时复用已定设计;学习对标不等于换人设、复制事实或重训。
### ① 博主选型与资料包
- 选型标准:教育者可信度 > 第一视角口播形态(talking head,非 vlog/skit/旁白)> 数据 > 类型差异
- 下载 5-8 条视频(laohan-xiazai:TikTok 用 yt-dlp 直下)+ info.json 元数据
- **口播形态逐帧验证**(抽帧+视觉模型确认正脸对镜头说话;抽帧落在无字幕间隙≠干净,必须多点验证)
- 选定博主不等于肖像/音色使用权、学历与亲历陈述已核实;不能以“改用虚构姓名”或“尚未商业化”宣称这些问题已解决。按项目合同核身份/来源/使用范围,不冒用真人身份、履历或接受记录。
- 换/加博主同步当前项目的素材追踪清单;素材数量与历史流量只作取样依据,实际可用性需本期核验。
### ② 声音资产(已验模型为前置,默认复用)
**调用 skill `laohan-yinse` 第0步**:先核本博主既有模型版本、权重SHA、底模/配置、参考音频及逐字文本、原验收证据。可用则直达第7步生成本期配音;需恢复则只恢复同一模型。确无已建模型才按8–10分钟净语料→服务器微调→回迁/登记/验收首建。重新训练或切换默认模型须有具名原因与负责人明确决定,新版本另存,不覆盖已选版和回滚资产。
### ③ 形象素材处理
+ - **造型库存按实际占用管理**:同一博主人设/声音照常复用,但不能把同源不同起播/裁剪、不同ID的同套衣着场景当全新造型。成长项目先按 `docs/ops/footage-lifecycle.md` 使用 `scripts/footage-registry.py` 预占准确批次版本,并把本期clean/manifest/final绑定;制作与五文件建包同门。其他项目先按自身INDEX查实际台账,不能复制成长项目库存。
- **分清入口限制**:竖版/短边≥720/时长≥8秒/≤30fps/MP4/<200MB是历史产品资产上传要求,不能当当前same-voice CLI的通用硬门;确需产品上传先读该产品现行合同。same-voice按当前工具核输入与几何,prepare转25fps并保持源画幅;原生清晰度、正脸/嘴部可见、字幕/遮挡与连续画面由本期视觉检查裁决,不靠升采样冒称细节达标。
- **不把产品上传门当same-voice适配验收**:576宽可通过本机prepare不证明TBDub实际效果;720宽也不证明全程无字/无遮挡。连续检查并先做已授权小样,不能拿几张无字截图保证整段干净。
- **字幕必须去除**(会被引擎复制进成片):博主视频普遍带字幕 → 底部 crop 或换无字幕条;多点抽帧验证(首/中/尾/多段)
- 项目选用顶部常驻标题时,在prepare/口型前确认同一形象素材全段有标题留白,包含头部起伏、举手与平台顶部界面;先按[标题与字幕方法](references/title-subtitle-layout.md)试排。首帧有空位不足以证明整段可用,不等口型算完才发现标题无处放。
- 同时核表情、眼神、手势是否适合本期语义与情绪,避免安慰段持续指责、严肃段不断大笑或醒目的动作循环。same-voice主要改嘴部,不能指望它把任意母版变成本期所需的表演;不合适先在同一形象已授权素材中选,不自动换博主。
- 转码H.264、保存clean素材和剪辑边界/SHA;项目方法入口按项目INDEX读取,不恢复旧`docs/dh-production-guide.md`根路径。
### ④ 形象与声音资产(复用已有素材,不走产品注册)
- **形象素材:已有博主视频直接复用**(prepare 前多点抽帧验证全程同一正脸;开头 B-roll 插入画面必须掐掉——见⑤坑)
- **声音:laohan-yinse 微调模型整稿合成**(见②调用,24kHz PCM16 WAV 由 yinse 第 7 步产出)
- ~~产品 avatar-assets/voice-assets API 注册~~ **已淘汰**(2026-10-28):那是产品网页向导链(零样本参考录音+29积分/次渲染),与本 skill 的 same-voice 路线互斥,且违反"声音不走零样本"红线。历史踩坑记录(MIME 显式 type / consentVersion=voice-reference-v2 / loudnorm 电平门禁)仅当未来确需产品链时参考。
### ⑤ 同声口型渲染(DH-ROUTE 路线④,2026-10-28 实战验证——唯一正确流程)
**方法真源:`~/Documents/laohanvideo/motion/mastery/DH-ROUTE.md` + `motion/tools/README-same-voice.md`(本节只是入口索引,冲突以真源为准)。**
DH-ROUTE是Jeffrey/Motion项目的方法;本项目借用同声工具、时钟与资源保护,不继承其v3-05、历史首单验收/发布、Motion接入状态或提前候选授权。当前博主用自己的已验模型,本期输入/接受/发布仍看本项目合同与STATUS。以下`motion/...`命令从`~/Documents/laohanvideo`根执行,本项目音频/形象/输出均用真实绝对路径,不在当前内容项目臆造motion目录。
不走的路(都验证过不是正路):产品 lease/operations 报价链(29积分/次,网页向导已淘汰)、ispeech 图+音频(另一条产品链)、直控生产 worker。
```
① 最终 WAV:音色模型在 pro6000-a 合成整稿(laohan-yinse 流程)→ 24kHz 单声道 PCM16
② 形象素材:已有素材直接复用(无需产品订单)
③ Mac prepare:python3 motion/tools/same-voice-local.py prepare \
--audio <24k.wav绝对路径> --avatar <形象.mp4绝对路径> --max-input-frames <本期已核上限> --out <全新目录绝对路径>
④ validate manifest → 上传 manifest/inputs/chunks/run-same-voice-remote.py 到
pro6000-a:/root/autodl-tmp/laohan/motion-same-voice/<小写实验名>/
⑤ 预检(无 --run)→ 真跑:--run(total_timeout 3600s,单块 480s 上限)
⑥ Mac assemble:same-voice-local.py assemble → same-voice-candidate.mp4(原 WAV 主声)
```
**坑(全部实战踩过)**:
- ★形象素材开头可能是插入 B-roll(案例画面)——prepare 前多点抽帧验证全程同一正脸;mediapipe 丢脸 >10 帧直接 RuntimeError(chunk-001 判例:开头 5 秒小女孩 B-roll)
- ★生产活动保护触发即保存STOP现场。仅旧执行者及子进程组退出、检查点SHA/原基线/原范围/原截止均满足时,才按README显式恢复一次;生产基线改变不能用resume重置,更不能换目录无限重试同一失败块。
- 音频必须24k单声道PCM16;分块上限在11—300内按本期几何/算力已核条件选择并记录。180仅是pro6000-a/1080×1920的历史参考,不保证其他几何内存安全;不提高20GiB等冻结阈值、不改已运行manifest绕过恢复约束
- 冻结SHA对象是安全模块`/root/autodl-tmp/laohan/motion-method-v2-20261019/run-isolated-pilot.py`,须等于`469d820e11e5b89820a2c3874c08553ed83dfb8cb18952bbc20dd83b4b471487`。本次上传的`run-same-voice-remote.py`另记实际SHA,不能拿469d当其文件SHA或编造校验参数
- 完成证据:assemble产物全帧数与清单相符,ffmpeg完整解码无错误(ffprobe只核元数据/帧数);状态为候选待连续复看与Jeffrey接受。
**Motion模板包装、字幕与BGM**按本期已核交付范围执行。只交口型样片时不擅自扩为模板项目;需要完整Motion包装时再加载V4/PIPELINE及其生产门,不能把口型机械通过当模板或全片验收。
### ⑤.4 音频听审卡点(2026-10-28 补录)
⑤ 的 prepare/推理启动前,最终 WAV 必须已过本期整轨音文与听感检查,默认由Jeffrey听审;只有明确委派涵盖该项时才按yinse“验收角色与委派”执行并如实记受托人、实际有声检查及限制。源素材校对或模型选型的委派不自动覆盖新WAV。听感不过→回yinse第7步,不进推理浪费GPU。
本项目若已有用户明确的系列持续配音委派,直接按其范围执行,不再等Jeffrey听英文或重复确认角色;负责人负责实际检查与必要修正,能力/结论限制留证。用户另已明确允许持续制作技术候选时,可在该授权内推进候选,但未完成的听感项仍如实保留,不能改写为已听/接受,更不能由此自动发布。
DH-ROUTE一B步骤2的“听感默认通过”仅属Motion项目授权,不适用本项目;借用同声工具不转移该授权。
### ⑤.5 成片统一加速(老方法既有项,2026-10-28 补录——别漏)
默认只生成已选速度的一版正式候选;没有选档则保持原速,不自动生成1.05/1.10全片对照。确需倍率按本期确认,先查上游是否已应用speed,记录来源与累计倍率,只在一个明确阶段应用一次。下面仅用于音画已对齐且同起点的输入,不用各自归零掩盖原有偏移;它是派生示例,不是免测的同步保证:
```bash
ffmpeg -n -i <成片>.mp4 -filter_complex "[0:v]settb=AVTB,setpts=(PTS-STARTPTS)/<S>[v];[0:a]asetpts=PTS-STARTPTS,atempo=<S>[a]" -map "[v]" -map "[a]" -fps_mode vfr -enc_time_base:v filter -c:v libx264 -preset slow -crf 14 -c:a aac -b:a 128k <加速发布衍生>.mp4
# S 常用 1.05(微紧凑)/1.10(抖音节奏),音高不变;首期 Jeffrey 选档后每期固定
# 输出帧率策略还须满足本期交付合同;需要CFR时另核帧取整与首尾偏移,不把vfr当平台通用要求
# 单独atempo声音而不调整画面会破坏原唇音时钟,不用来冒充同因子派生
```
加速版是新派生:记录倍率、输入与输出SHA、A/V起点与时长;外置字幕/词锚先按倍率换算,再对派生实际音频复核,不能只凭理论除倍率。已烧录字幕随画面变速,不再重复施加倍率;若实听词锚错位则重制字幕。`atempo`也可能改变局部边界,重跑受影响的听感、首末词、唇音/累计偏移、接缝和机械门,通过后才可复用原推理结果;不过则保留原速或另做有证据的修正,不以同因子免验。原WAV作为来源保留,不宣称加速后音轨与其逐样本一致,不直接沿用旧SRT。
### ⑥ 后期
- **默认入口**:当前批次 `post-one.sh <EP> <DUR>`(成长项目新批次从 `docs/handoff/EP05_ANGER_20261105/post-one.sh` 读取已修实现:ffmpeg-full 与同一语义/字形门;旧11-02入口只作历史)。输入均相对该批次:`work/EPxx/same-voice-candidate.mp4/same-voice-candidate.mp4`、`EPxx/subtitles.ass`、`work/EPxx/voice-raw.wav`;另需本期 `EPxx/` 的 cue/字形与输入绑定。BGM按项目既有资源。输出 `final/EPxx/` 的混音/母版/发布版。出片前必须调用本项目 `scripts/episode-caption-qa.py --verify-only` 核实际烧录输入;具体参数按当前 `--help` 和[字幕方法](references/subtitle-validation.md)。缺本期证据拒绝,禁止手搓ffmpeg绕过;必要故障回退仍须同一硬门、25fps CFR与无损母版。
- **成长系列画质与居中固定要求**:新制作先读[最高保真与全画面居中](references/quality-and-centering.md)。画质优先于时间/体积;严格最清晰须可核的无损后期母版,兼容有损MP4不冒签;四轨以全画面W/2为排版中轴,同时核实际字形,不能为右侧UI整体左移。新参数不自动追改用户要求保留的旧片。
- 字幕:**中文大在上、英文小在下**(同屏成对;英文口播,中文主读、英文辅读)
- 字幕先看本期实际画面再排:按语义切短句;字体/颜色/底条是本期设计选择,未获接受的样式不得写成通用“美观公式”。只改字幕时,从本期已核无字底片另存新候选并复用原音轨/口型。内容实质改稿则重新生成当期WAV与口型。模型/原始输入按资产合同保护;用户明确要求删除的错误交付副本在新版验证后按清单移除,不继续混在当前交付位置。
- **生成→出片→建包三处同门**:按[字幕校验方法](references/subtitle-validation.md)执行最终WAV绑定、全局词序不回溯、不失配假补、双语同窗、逐句不重叠及真实字形边界。旧ASS、错音轨、旧字形报告或缺字幕都应非0拒绝;不是加一段文字规范就算接线完成。
- **成长系列断句硬门(Jeffrey 2026-11-05)**:每屏必须完整表达一个意思,禁止按字数/时长机械截成半句话;条件、否定、转折、动作对象和固定词组不得跨屏拆散。长句先按完整分句重组,必要时同屏换行并留足空间,不缩字。生成/出片/建包同门核当前WAV/稿件/双语表绑定的全量独立语义回执;缺、漏、未决、旧回执或残句均拒绝。真实方法与反例见上方字幕校验方法。
- 有用户视觉参考时,先拆字形/字重、中英字号比例、颜色对比、成组行距、意群切换与画面留白,再放到本期相同画面比较;不照搬参考的低字幕位置、翻译错误或不适合本场景的配色。动态效果须实际看时间序列,抽帧不足时明确未知。安全与可读通过不代表美观已接受,最终看实际样片与用户反馈。
- 主题标题、开场钩子与逐句字幕分轨:形式先读项目方法与本期决定;已选常驻时,顶部短双语主题标题覆盖全片,下方双语字幕跟口播逐句切换,不能拿3秒开场提示代替。项目未指定时按实际内容/留白试排,不替所有账号统一默认。标题概括整条内容,不增加未经核实的身份、履历或事实,不替换原话字幕;无空间先换适用素材或做布局小样,需改变已定形式时留明原因回到本期决定,不自行取消常驻要求。完整步骤、教程及ASS样例见[标题与字幕方法](references/title-subtitle-layout.md)。
- **抖音遮挡检查**:整块字幕须避开底部标题/文案/账号/导航与右侧互动栏,并避开人物嘴部;按字形、描边、阴影及底条/背景框(如有)的完整视觉边界检查。同屏中英之间也检查实际字形间距,只测合并外框不能证明内部不叠字。分别实看中文/英文最长实际条目、各自多行条(如有)及不同背景,不能只核MarginV或首帧;没有多行记不适用,不为检查强造两行,三行过密/相撞/超界时先重分句再测。优先核当前平台/剪辑器的实际预览;只能用自定遮挡模拟时,标明模拟尺寸与假设,不能把经验像素说成官方通用安全区或保证所有机型不挡。字幕样片仍交Jeffrey接受。
- BGM按[表现力与BGM方法](references/performance-bgm.md)执行:先选情绪与可用来源,口型完成后再混入;口型输入始终是本期已验干声WAV。同一区间/相同声道分别测人声、音乐及duck后音乐,按本期目标校准增益,再核混音整体响度/真峰值;不把10%/15%示例照抄后继续重压,也不把总响度合格当听感通过。音乐须有可听存在感,重音/尾字不能被盖;用户反馈“听不见”即该试听REVISE,检查压低/回升和首尾衔接。只改音乐或非时序电平处理不重训/重算口型;改人声内容或时序则按影响表重做。违规检测仍绑定当前稿与当前版本,不复用其他批次CLEAR。
- AI平台声明与片内水印分别按当前项目合同、Jeffrey最新明确指令核对。**本项目明确禁止任何片内AI标识**时,字幕/标题模板不得自带AI文字或角标;核原片、raw与最终交付的全画面和四边,不仅看字幕区。发布声明不等于允许往画面烧标,也不因处理片内画面而自动改平台开关。不能凭历史判例断言所有same-voice产物都有引擎水印或套固定delogo坐标,先核本期真实文件;包装/字幕仅在本期要求范围内执行。
### ⑦ 发布与复盘
- 抖音账号注册、养号与发布时间由Jeffrey主导;不把“养号2–3天”当平台硬规定或流量保证。账号装修按本期已确认人设,不自动搬用旧专家履历。
+ - **发表/废弃后回收占用**:实际任一平台发表就永久锁定该版本造型;仅明确废弃且确认所有平台未发布的版本才能release。待接受/暂未发/旧文件仍在不等于废弃;同组其他版本还占用则不回库。只变更使用状态和保留历史,不因此删除原片/声音资产、撤回附件或删线上作品。真实发布回读与未知项处理按项目生命周期方法执行。
- **成品交付规范(2026-11-04 Jeffrey 精简;2026-11-05 扩封面)**:每期 `EPxx-多平台发布包.zip` 严格五文件:`成片.mp4`、**`封面.jpg`(编号大字模板,3:4的720×960;必须复用成长项目已有 `scripts/make-cover.py`,不另造重复排版脚本;规格/选帧/质检真源=`docs/ops/cover-spec.md`,编号永远干净序号)**、`抖音.txt`、`视频号.txt`、`小红书.txt`。无损母版仍按质量合同在项目内保留;manifest/说明/审核/过程文件只进内部证据区,不进用户包。五文件构建入口 `docs/handoff/EP05_ANGER_20261105/tools/build-pubpk.py --src <当前批次> --eps 05 --titles <JSON文件>`,先看当前help,不把JSON字面量当文件;11-02脚本保留历史四文件行为,新五文件批次不得走旧默认建包/verify-existing绕门。建包前核字幕/当前final/封面审阅绑定,回下载按内部清单核SHA。桌面仅可选中转,已被取代的错误本地/云盘交付按明确授权和精确清单删除,线上作品另核发布指令。
- **发布文案规范(2026-10-29 Jeffrey 定,2026-11-04 更新段落格式)**:抖音、小红书标题≤20字(视频号用平台自己的短标题,不套 20 字限);抖音标签≤5个;**不带 `#AI新星计划`**(那是老韩AI主号的标签,本系列账号不带);视频号平实家庭向、小红书表达生活化,正文均按自然段分开,不强制emoji或分点;用 CC BY BGM 时文案末尾独立署名。
- **可复制的发布文案**:标题、介绍、标签分别独立分区并真实换行;介绍按自然段分开,段间空行,不把整段塞在“介绍:”后。删除音色模型/声音复刻/配音流程/“声音与口型”等制作介绍;必要平台身份声明与BGM版权署名单独处理,不由此变更平台开关或许可。
- **双引擎文案(发布前必做;定义=独立成稿后融合,不是让 Gemini 审本地稿)**:先独立写完整英文口播、中文表达与三平台标题/介绍/标签;再用**同一任务包**(不含本地初稿、片段或结构摘要)让 Gemini 出一套独立稿;保留双方原稿、逐项取舍与融合确稿(`gemini-draft.md` / `fusion.md` / `dual_engine_contract.json`),最后对融合确稿与标题重跑 weigui。渠道顺序:① 已登录 `gemini.google.com/app`「老外文案」会话(Pro/最高档;huashu-chrome / ego-browser / kimi-webbridge 或宿主原生输入)→ ② 桌面 `Gemini.app`(`/Applications/Gemini.app`)→ ③ `https://aistudio.google.com/prompts/new_chat`(记录实际模型,不冒签 gemini.google.com)→ ④ 三通道全不可用记录`BLOCKED_GEMINI`并停在草稿,不进入配音/口型。Jeffrey 2026-11-04明确本项目所有文章必须Gemini全文参与,只有完整口播/中文表达/三平台标题介绍标签均取得并融合才算FUSED;不能用SKIPPED或仅审标题绕过。任务包约束见[教育账号文案](references/education-copy.md),方法真源 `docs/ops/gemini-review.md`。
- **Gemini 真实完成判据**:先核当前会话、准确草稿和既有消息,发送后必须取得本次新回复完整正文并留档;新气泡、草稿清空和"正在输入"只算在途;气泡消失、草稿恢复或报错记失败;HTTP200/"已点击"不算完成。通道动作无效时按渠道顺序降级,不重复轰炸同一通道、不扩大外发对象/内容。网页提交退回草稿或客户端专属问题时,按[Gemini客户端实证方法](references/gemini-client.md)操作:完整草稿上核指定模型/最高档,取得完整回复与 SHA。
- 数据:opencli douyin stats/videos 拉取;10 条内决策点(引流款 vs 人设款占比调整)
- 发布前单独核:目标账号身份/登录态就绪、当前项目片内AI标识的允许/禁止要求与平台声明分别已核、当前候选的发布批准明确。只记账号标识/就绪结论,不归档凭据;缺项只阻发布,不把内容接受冒作发布许可,也不阻无关素材准备
## 完成证据(四道质量门,源自 Jeffrey 声音方法 v2.2,缺一不可)
① **听感门**:本期最终WAV绑定SHA并完成上述真实整轨音文/听感检查,之后才做口型;② **唇音同步门**:连续播放复看口型、节奏与接缝,可同一次成片有声审片核字幕/标题;③ **机械门**:帧数/时钟一致、ffmpeg完整解码无错误、响度实测,ffprobe只负责元数据;④ **成片接受门**:Jeffrey看片明确接受。候选可在技术检查后交看片,发布批准另按项目合同处理,不把机械绿、候选交付或片子接受冒作已发布。**发布前另有标题/文案门**:双引擎(本项目必须Gemini全文参与并FUSED)+ 融合稿与标题 weigui CLEAR,缺一不放行发布。
## 声音绑定与登记纪律(DH-ROUTE §五,2026-10-28 补录)
- 每期声音记录绑定完整 WAV 的路径/SHA/采样数/实测时长/听感接受记录;ASR、字幕、口型、后续混音**共用本期绑定**,新稿必有新 WAV
- **候选 ≠ 验收**:听审PENDING只能登记声音试听/文档候选,不放行本项目prepare或口型推理;最终整轨听审与本期SHA绑定后才交口型,接受后记录真实结论,不挪用参考项目的历史提前候选授权
## 故障诊断顺序(源自声音方法 §4,补录)
- 口型跟不上/错位 → **先查声音来源与时钟再重合成**:①核成片人声来源=本次干声WAV及混音/变速登记(混音AAC不要求与WAV逐样本一致)②查时间轴PTS偏移、首末词与接缝③确属语速问题才回重合成(换沉稳参考+重过听感门)
- 音色不像 → 核风格路由 → 换相邻风格对比 → 仍不像报 Jeffrey(触发重训评估)
- GPU准入/止损(与生产共卡):合成前显存>10G;卡>5分钟或生产桥报错→按yinse任务启动收据重新核PID/PGID、命令与cwd,只停已核本任务独立组并确认退出。无法核归属则保留现场报告;不按进程名批量杀、不动生产bridge/服务、不盲重试
- **凭据零入档**:lease/token 只存在于运行时内存与既定凭证文件,不写进 skill/项目档案/git
## 反触发(不用本 skill 的场景)
- 真人实拍/老韩本人出镜项目(走 laohanvideo 真人路线)
- 只做选题/文案/装修(单一环节走对应 skill:chuangzuo/weigui 等;本 skill 是复刻数字人全流程总控)
- 声音模型单环节细节(进入 laohan-yinse,本 skill 只在②处调用它)
## 失败路径
- 声音模型未建成 → 全流程停在②,不跳过训练直接渲染(零样本已被禁用)
- 形象素材字幕去不净/硬门槛不达 → 换素材条或重新选型,不降门槛上传
- 渲染链失败 → 按DH-ROUTE/README保留失败现场、原预算和检查点,执行其有限恢复条件;不得新增“再试三次”、换目录清零失败次数或退回网页/产品链绕路。
- 验收不过按原因回退:画质/遮挡等视觉问题回本期素材候选;音色/自然度回yinse核数据、模型和参考;口型问题先核音轨身份、PTS和接缝再决定重算。保留原STOP/预算/检查点,不一律换人、不硬发
## 关键红线
1. 正式声音必须本博主服务器微调;基模仅作同条件A/B基线,不进正式WAV/口型交付,不据此调用产品零样本绕路
2. 当前同声路线用本机/服务器CLI,不退回网页向导;基础素材API须另按项目现有授权
3. 不冒充真实存在的人(虚构人设身份)
4. pro6000-a 是生产算力机:训练限 cosyvoice-train 目录,不碰生产进程
5. 当前用户与项目合同优先;历史案例不授权更改平台声明、片内标识或覆盖安全/验收要求
## 素材资产清单(每个博主资料包标准结构)
```
assets/
persona-candidates/ 原始视频(形象候选)
upload/ 形象上传母版(无字幕/达标)
voice-training/ 声音素材(逐条 WAV + 拼接主素材)
voice-models/ 长期声音资产:已选权重、回滚版、参考音频/文本、配置与voice-asset.json
benchmark/ 对标视频库+转录
docs/
INDEX.md 按当前项目索引进入人设、脚本、运营;不假定旧根路径仍有效
```
## 清理临时产物,保护长期声音资产
- 本地与服务器一体核对,先读项目存储规则和本博主 `voice-asset.json`。**模型是跨期资产,不是本期垃圾**:已选权重、明确保留的回滚版、参考池WAV/逐字文本、配置/底模版本依赖、合成入口与验收/来源/SHA登记均长期保留。存于 `data/`、`exp/`、`model-*` 或任务runtime内也不改变其保护身份;未完成验收的候选按待裁决状态保留,不因“尚未接受”就删。
- 后续仍用的服务器推理目录继续保留复用,不执行“回迁完即删服务器副本”。确要撤下该副本,须先核本地完整归档及SHA、在目标环境恢复加载与短句合成通过、默认模型路径已切换且原路径不再被脚本/登记/在途任务使用;只有文件存在或复制成功不满足条件。最后可用副本、参考对或必要配置不得进入过程清理。
- 仅对已终结且无消费者的本任务临时包、可重建特征、已不再消费的口型缓存、冗余检查点等逐项计划清理。禁止按通配符或整目录清 `data-*`/`model-*`/`exp/`/runtime;父目录内有保护资产或依赖即排除,内部链接也先核恢复用途。按项目既有 guard 的 plan→复核→apply 与逐项回执执行,不用裸 `rm` 绕门。
- `voice-asset.json` 是执行者必须读取的资产登记,不冒称现有 guard 已自动解析它;自动清单范围内的保护项须另登记为非 temporary/checkpoint 的保护类型并保留消费者,范围外资产不得为纳入清单而扩大删除根。无法核完整依赖或安全归属时停止该项清理,不以重训兜底。
- PAUSE 等协调文件只有本任务拥有且已无协调用途才释放;不动其他工作线、共享底模/环境、生产服务或他人资产。正式弃用模型另按明确授权处理,不随每期收尾删除。
## 服务器协作判例(2026-10-28 实战,pro6000-a)
- **网络/worker故障**须由具名生产维护任务处置;内容制作不得据历史判例重启worker或结束其它工作线进程。只读核实并让路,只能回收本任务已核身份的离线进程组。
- **resume基线变化**是保护条件,不能当成“脏了就换目录绕过”。保留原STOP/基线/次数;生产空闲且旧执行者已退后,确需继续时由root按README显式登记尚未计算范围的新有限阶段,不伪造旧阶段成功。
- `--expected-checkpoint-sha256`是batch-state.json文件本身SHA;内存增量或生产活动保护触发时不提高阈值、不盲重试、不清全局缓存。
- 该SHA在服务器只读运行`sha256sum <本次实验绝对目录>/outputs/batch-state.json`取得;不是模型权重的checkpoint SHA,也不是manifest SHA。保留原STOP文件不改字节,runner会再次核同一文件与真实成功回执
- **分块断点**:从真实batch-state读成功范围。仅已成功0—16块、未算第17块时,零基左闭右开`--start-chunk 17 --end-chunk 18`才表示18块中的最后一块;它不另授恢复/续时权限。按README核原预算/范围/恢复或显式新有限阶段条件;assemble用`--additional-outputs`合并,消费旧STOP的成功前缀还必须显式`--include-verified-stopped-prefix`,逐块核成功退出回执/SHA/几何/帧数,失败块不接纳
- **2026-11-02 判例:算力机不可达时的正确动作**。pro6000-a SSH 失败时禁止乱试其他服务器(gpu5090/ECS 均非本项目算力机)和本地重组推理环境(绕过 binding/voice-asset/guard 资产保护合同,Jeffrey 定性严重错误)。正确顺序:①grep 本 skill 与 ~/.ssh/config 确认真源主机名 ②真源主机也连不上 → 报告 BLOCKED 等负责人,不降级到本地/他机。经验:机器 ICMP 通但 SSH 端口 refused = sshd 挂,重试无意义。
## kb78769 全链实战判例(2026-10-29 首期出片)
> 本次环境的排障记录,不是跨输入/机器的最优参数或耗时保证。同一博主下期优先复用已建资产,不重跑首建流程;不得承诺素材30分钟、训练70分钟、字幕20分钟或口型必定一次成功。
### 素材判定(Qwen听感不可信,用信号法)
- **Qwen2.5-Omni-3B 的 music/reverb 判断不可用**(校准集实测:加明显合成音乐报"no music"、自然声全报 echo uncertain)——语言模型听感≠声学仪器,只当第三路 ASR 参考
- **停顿RMS只作筛查线索**:源级停顿残留、最深停顿dBFS、响停顿数量帮助定位疑段;本次阈值不能证明全段无BGM,音乐可能只在语音期间出现,残留无节拍也不能判定必是词隙尾音。结合实际有声检查与已校准能力逐段裁决;不确定则保留PENDING/弃段,不以信号阈值或ASR多数票冒作声学接受。
- 转写终稿=Whisper基准+双ASR词级diff+语境裁决(SenseVoice 分词伪影 navaro/fuckinguck 系统性不采;W 把 spaces 听成 's faces 这类靠 S+Q 2:1 纠)
- 孤立环境声(0.3-0.4s)直接弃段不微裁——总量够时弃用优于精修
### 训练(pro6000-a)
- 入口必须 `launch_voice.py pipeline --run --timeout 3600`(直接 pipeline --run 会被 STOP);远端 python 用绝对路径 `/root/autodl-tmp/cosyvoice-train/venv/bin/python`(非交互 PATH 无 python3)
- **首次组装须区分训练checkpoint与推理权重**:训练件含 epoch/step 时另存剥离副本,并登记两份SHA;不原地覆盖训练原件。已有可用推理包直接复用,不为每期重复剥离/新建模型。
- 训练retention必须核实际部署链`single_worker→train_with_retention→train.py`,源码有实现不代表远端已接。本期首跑旧链未接中间层;不把本机修复候选写成远端成功执行。
- 耗时纠正:本期60段555s/14epoch成功流水收据为334.84秒(含特征等准备),日志Epoch0训练到Epoch13验证约284.44秒;先前“约70分钟”不是该成功训练的实测,应撤回。排障/等待另计,不能据单次结果固定下次预算。
- 同任务避免重复训练:先核其他工作线的实际任务与资源归属。campplus speaker embedding相似度仅作A/B辅助比较,不替代Jeffrey盲听、本期整轨听审和成片接受,也不因相似度高自动批准模型或新WAV。
### 口型(same-voice)
- 本次180帧分块触发RAM门,120帧配置完成23块;仅作本期输入/负载的参考,下期重新核几何与资源,不能保证一次跑通。
- 本次曾处理 sample.pkl/file cache;这些是处置记录,不是通用清理授权。缓存仅在任务终结、无恢复/组装消费者且有释放证据时按项处理;共享生产机不自动制造大内存压力或清全局缓存绕过RAM门。
- 同一范围仅按README恢复一次且不延长原截止;再次失败不能靠新目录重试同一失败块。真实生产基线改变时,只有旧执行者退出、生产空闲、root显式登记尚未计算的独立有限阶段等README条件全部满足才可新建阶段;保留原STOP与次数,assemble仅接纳真实成功块。
- assemble 前上传三件套别漏:manifest.json + inputs/voiceover.wav + chunks/(scp 多文件+tail 截断会漏看错误,传完 find 数文件数)
### 字幕与成片(Mac 本地)
- 本次本机ffmpeg 9和远端现有ffmpeg缺libass;已用本机ffmpeg@7完整路径渲染。下次先核现有`-filters`里的ass/subtitles,不每集安装或把本机结果推广成所有ffmpeg 9均不支持。
- zsh 滤镜参数含 `=` 时用引号包整串(`-vf 'subtitles=/path'`)。same-voice输出需显式25fps CFR:本机用`-r 25 -fps_mode cfr`,远端旧FFmpeg用已实测的`-r 25 -vsync cfr`;不能因弃用提示改VFR。四处时钟/实际解码与反例见[短片制作判例](references/episode-execution.md#短片连续制作的新判例2026-10-30)。
- **字幕时间轴用最终WAV的全局词流对齐**:先统一数字/专名并核全稿,词索引只能向前且不能跨句复用。失配回到对齐/补核,不按邻句时间自动假补;更不能对连续失配句复用同一窗口。具体硬门见[字幕校验方法](references/subtitle-validation.md)。
- 首期黄字黑底v2仍被Jeffrey否决且字幕偏低;该样式不是已接受模板。后续按⑥的短句/实际字形边界/抖音遮挡检查试排,不固定套用该配色与MarginV;若长句溢为三行或中英相撞,须重新分句与复核时轴,不能仅缩字塞满底部。
- 加速是 `setpts=PTS/SP`(`SP*PTS`是减速反方向);Jeffrey 本期定**原速**为标准,加速档出对比不默认
- AI 视觉质检会误读形近字(十岁→七岁),对照原文复核再信
### 同卡守卫、resume 与冗余清理(2026-11-02 实证)
- 守卫不是 GPU 锁:启动时记录 GPU compute-apps 的 pid 基线,之后出现任何非本任务 CUDA 进程 → 本任务父进程收到 `STOP_UNKNOWN_CUDA_PID` 并中止;两个窗口同时跑,先启动者被顶掉(EP04 实测被 yiren-c26b 顶掉)。开工前先 `nvidia-smi --query-compute-apps` 确认除常驻 tbdub/cv3 外无任务;命中后先确认冲突方停手,不要立刻 resume 浪费唯一一次恢复。
- resume 只允许一次:仅 `attempt==1` 且 `status=STOP_NO_AUTOMATIC_RETRY` 才 resume,resume 写 attempt=2;**`RUNNING` 一律不 resume**(会撞活 runner),确认无本任务 runner 后只允许 `--mode fresh`。`--expected-checkpoint-sha256` 取 `sha256(batch-state.json)`。production log 基线变化会被 `STOP_PRODUCTION_LOG_CHANGED` 拒(EP07 实测),此时走 fresh:旧 outputs `mv` 到 `/dev/shm/stage-20261102/epXX-...`,不 rm。
- `/dev/shm` 计入 cgroup `memory.current`:守卫比较启动时 `memory_baseline` 与 current(BUDGET=20GiB)及剩余(RAM_FLOOR=12GiB)。shm 残留 20G+ 会让下一期一启动即 `STOP_CONTAINER_INCREMENT_20_GIB` / `STOP_CGROUP_RAM_AT_OR_BELOW_12_GIB`;跑新任务前先清 shm 残留,run 期间不要做大文件 move。
- 清理走服务器 janitor,不在本机裸 rm:`/root/laohan-janitor.py`(allowlist:`/dev/shm/stage-*` 超 24h、`/root/attic-*` 超 14d;episode outputs 只接受显式 `--purge-outputs` 且 batch-state 完成态),`/root/laohan-janitor-loop.sh` 每 30 分钟跑一次,日志 `/root/laohan-janitor.log`。本机执行 rm 会被 shadow-auditor(enforce)拦截,旧产物一律 mv。
- 驱动统一用 `docs/handoff/EP03_07_REDO_20261102/work/redrive.sh`(校验 runner 终态、远端/本地块数、逐块 SHA、assemble 退出码、post 后 final mtime+时长);旧 `recover*/finish*` 脚本已归档 `work/archive-20261102/`,不得再作为入口。
- 任何模型/会话按以下入口重放,不要凭记忆手搓命令(脚本自身无密钥,环境变量可覆盖;路径相对批次根 `docs/handoff/EP03_07_REDO_20261102/`):`redrive.sh <EP>` 重跑 GPU(内置 EP03–07 时长,EP>07 必须传 `--dur`);`post-one.sh <EP> <DUR>` 出片;`tools/build-pubpk.py --eps … --titles …` 构建发布包(默认 EP03–07);`tools/publish-feishu.sh` 一键交付(先 `--dry-run`);`tools/ensure-janitor.sh` 幂等恢复 janitor。**这些是 EP03-07 批次工具,不是项目根通用入口**;新一期复制到新批次目录并显式传参。成功判据写在脚本内(终态/块数/SHA/时长/`ok:true`),失败必须非 0。
- 容器重启自启(三层自愈):pro6000-a 无 systemd(offline)、无 crontab、supervisord 配置已不存在;① 平台启动钩子 `/init/bin/customer.cmd.sh` 末尾调用 `/root/laohan-janitor-anchor.sh`(幂等)拉起 loop,2026-11-02 实测停 loop 后重跑钩子拉起 64305、二次运行仍 1 实例;② `/root/.ssh/rc` 在任意 ssh 连接时后台幂等 anchor(静默、不阻塞);③ `/etc/profile.d/zz-laohan-janitor.sh` 在登录 shell 时 anchor。停 loop 后仅一次 ssh 即拉起(66157),连续 5 次连接仍 1 实例。若平台重建 `/init` 或 `/root` 脚本丢失,跑一次 `tools/ensure-janitor.sh`(redrive 也会自动 ensure);残余:重启后无任何连接时不自动清理(也无任务在跑)。
- 并发保护:`redrive.sh` 在 runner 外持远端 `/tmp/laohan-redrive-ep<EP>.lock`(flock -n),同 EP 第二个实例直接退出 3;不要把脚本回退成"先 pgrep 再启动"的 check-then-act 写法。
- 媒体入库门:`scripts/project-policy.py` 的 commit 门拒绝已跟踪 `.mp4/.mov/.mkv/.m4a`(staged mp4 实测拒绝);大媒体只在本地/云盘。
- `tools/ensure-janitor.sh` 默认把 `laohan-janitor.py`/`laohan-janitor-loop.sh`/`laohan-janitor-anchor.sh` 部署到 `/root` 并核 sha(`DEPLOY=0` 跳过);缺失时安装 `/root/.ssh/rc` 与 `/etc/profile.d/zz-laohan-janitor.sh`(已存在非本项目配置时只告警、不覆盖);容器重启后即使 `/root` 脚本丢失也能恢复。
- 第四轮 GLM 复审闭环证据:`docs/handoff/EP03_07_REDO_20261102/review/`(glm-review-*.md、adjudication-20261102.md);改这些脚本前先读裁决文档的残余 P3/UNVERIFIED 清单。
### 交付
- 标题/文案双引擎(发布前必做):所有新写/重写口播/中文表达及三平台标题/介绍/标签必须"本地稿 + Gemini 独立稿"各出一套再融合,融合后重跑 weigui;两稿不得互喂初稿。渠道按顺序:① 已登录 Chrome `gemini.google.com/app`「老外文案」会话(Pro/最高档,可用 huashu-chrome/ego-browser/kimi-webbridge 等)→ ② 网页不可用 → 桌面 `Gemini.app`(`/Applications/Gemini.app`)→ ③ App 不可用 → `https://aistudio.google.com/prompts/new_chat`(2026-11-02 实测可打开)→ ④ 全不可用记录BLOCKED_GEMINI,停在草稿,不进入配音/口型。所有新写/重写文章均须完整英文口播、中文表达和三平台标题/介绍/标签的Gemini原稿及逐项融合,不能只审标题。任务包/融合/落盘验收真源:`/Users/hanzhmacbookair/Documents/laowai/1chengzhang/docs/ops/gemini-review.md`;本期 `gemini-draft.md`/`fusion.md` 与发布包一起留档。
- **飞书通知统一「老韩AI通知」**(Jeffrey 2026-11-05再次明确):固定 `--profile laohan-notify --as bot`,AppId=`cli_aa3c149d3bf8dcc0`,chat=`oc_6a5b224a3370d166774567930a9d4601`;发送后核chat/sender确为该bot,旧「github每日推送」仅历史名,不恢复旧应用、不切全局默认profile。个人云盘另显式 `laohan-assistant --as user`,不能将通知误发为助手用户身份。当前上传/大附件/回下载方法只维护于成长项目 `docs/ops/feishu-delivery.md`。
- 大文件交付按项目现行飞书方法:用户要求聊天附件时,先用实际可达的CLI或已登录客户端发送原文件,不能据IM接口上限改成“只能云盘”。客户端附件可由当前宿主受控操作,发后核实际清单并回下载;客户端不可用或用户指定云盘时,再用 `drive +create-folder/+upload` 后备。成长项目具体路径与真实判例只维护于上方 `docs/ops/feishu-delivery.md`,不降低正式画质以凑附件限制。
- 既有脚本附件失败仍可能exit0,须核实际附件成功,不能只看卡片或总退出码。客户端附件可能嵌在`post.files`,不能只筛`file`消息;绑定本期文件名/大小,能回下载时核SHA。状态不明先核消息,避免重复发送;发送成功不代签手机打开或听感接受。CLI1.0.40的`--markdown -`是字面短横线,必须用参数数组传入MD全文;发送后mget核当前文件夹URL、完整文件名、chat与sender,不能只凭message_id。正文错误只修该消息步骤,不重建云盘或重复上传。
- 每期结束后按「清理临时产物,保护长期声音资产」节逐项处理本地/远端临时产物;先保护模型与参考依赖,输出仍有验收/恢复用途时保留。
### 成片AI标识:按真实文件定位(EP01纠正)
- EP01已核raw(SHA以7315807开头)与v4.1(64b2628开头),本地`ep01-subtitles-v4.1.ass`含AI样式及覆盖0–84.12秒的“AI生成”事件;字幕链会打标,不能写成“本机不打标”。本次直接从raw删去该AI样式/事件重烧,标题/对白事件和音轨不变。
- 旧“双处引擎常驻水印/服务端无法关标”断言不能从该raw的实际条带与渲染记录得到支持,不能泛化为引擎必然行为或固定后期工序。其它输入是否自带标识必须另核来源、文件身份和真实画面,不以OCR、灰度std或模型一句话作确定归因。
- 检查范围覆盖首/中/尾、四角与上下左右条带,并保留带AI角标的旧帧作检测正对照;OCR/抽帧仅作定位,不能证明任意隐藏标记不存在。保留本期真实检查范围,不把抽帧说成逐帧人眼验收。
- 优先从已核无标raw与不含AI轨的ASS重出,避免对干净区域盲套delogo造成画面损伤。若本期raw确有标识,则按实际证据与已授权范围另处理并复核,不照搬另一片的坐标。只改后期不重训、不重新算口型,不删声音模型/参考。
### EP02 制作提速判例(2026-10-29,同条件下期目标 35-40 分钟)
- **★回迁一律远端 assemble(最大坑 25 分钟的解法)**:GPU 块产物单块 300-400MB 共约 5GB,scp 回 Mac 单线程约 1MB/s 要 80 分钟、4 路并发仍 25+ 分钟。正确做法:`scp motion/tools/same-voice-local.py 到服务器 → 远端 venv python 跑 assemble(纯 ffmpeg 拼接无 GPU 依赖)→ 只回传必要成品目录`(该次约116MB/4分钟,大小与耗时按当期实测,不固定为新片门槛)。本机已传的部分块可中途弃用不清理服务器(服务器 outputs 按清理纪律另收)
- scp 花括号多源(`host:path/{a,b,c}`)经命令 substitution 组装会静默失败且 `2>/dev/null` 吞错——多源传输用 `xargs -P 4 -I{} scp host:path/{} dest/` 显式路径;rsync 多 source 加尾斜杠在部分版本直接打 usage,别依赖
- **渲染一次链**:本例历史使用`-vf "delogo=右上,delogo=底部,ass=字幕.ass"`一次CRF17编码;CRF17已被2026-10-30最高保真要求取代,不是新片默认。现按[画质方法](references/quality-and-centering.md)一次滤镜得到无损后期母版,再派生兼容MP4,不再分"烧字幕+delogo"两代;仅确有标识才清标,必要delogo在ass前。
- **字幕与 GPU 并行**:最终WAV词锚与意群表生成cue可与GPU并行,但先核词锚内容、时间与WAV绑定,cue必须不重叠;不能靠强行令下一句start等于上句end掩盖错误对齐。后期和建包仍执行相同校验,不把“字幕准备完成”当成验收。
- GPU 推理节奏参考:约 75s/块(16 块 89.96s 成片用 20.5 分钟);块完成数用 `outputs/ | grep -c chunk.*attempt` 监控
- 丢句/SHA 联动/合成入口判例见 laohan-yinse 整稿合成执行判例节(2026-10-29 同日沉淀)
### EP02 重制判例(2026-10-30 Jeffrey 驳回 EP02 成片,三项执行缺陷)
- **字幕出屏根因**:cue 生成后用"事后修重叠"脚本只推 ZH 层没推 EN 层→中英时间错位;长中文句(>14字)靠折行未预拆→多行+叠显溢出屏幕。**规矩:cue 生成时直接保证**(ZH/EN 同窗同起止、句 start≥上句 end、长中文句预拆成多条 cue),禁止生成后再跑修补脚本
- **EP01 质检链是每期必跑全套,不是可选**:glyph-bounds 逐条字形边界(每条字幕实际渲染边界在屏内)、negative-internal-overlap(同屏多块字幕不相撞)、最长条/多行条专项、中英实际间距。EP02 跳链→出屏才被 Jeffrey 发现。质检链命令与参数见 EP01 handoff(glyph-bounds.json/negative-internal-overlap.json 生成方式)
- **常驻标题规定执行失败**:production-guide 2026-10-29 已定"EP02 起顶部双语主题标题常驻全片、不悄悄改回3秒"——EP02 仍照抄 EP01 的 3 秒退场式。**规矩:字幕/标题制作开工前必读项目 production-guide 的常驻标题与字幕节**,不从记忆或上一期样式复制
- **制作卡硬门禁(字幕/标题)**:①读 production-guide 标题节 ②cue 生成(同步窗口+预拆长句)③EP01 质检链全套 ④含字幕区+四角的五点目视 ⑤发布包前帧差异门禁。缺任一不交付
- **2026-10-30 字号与断句纠正**:成长系列720×1280默认中文对白52、中文标题72,英文对白29、英文标题34(ASS/libass,非剪映字号;1080×1920按1.5倍等比)。实际字形、描边/阴影、手机尺寸预览和最长句复核仍必做,不靠字号数字冒通过;不合适先按意群重拆,不缩字塞长句。生成前处理中文>14字、句末孤立“的/房租”等碎片及中英语义对应,同窗生成,禁止事后单推某语言。详见[字号与断句方法](references/title-subtitle-layout.md#成长系列固定起点2026-10-30)。