git:20261027.3c589f2 to git:20261029.deb004d

152 added, 27 removed. Audit A to A.

---
name: laohan-laowai
- description: 老外博主复刻→数字人→抖音视频全流程总控(含调用 laohan-yinse)。从"选一个外国博主"到"数字人视频发布"的端到端自动化流程:博主选型与资料包下载→声音模型(服务器微调,硬性前置,调 laohan-yinse)→形象素材处理(字幕检测/裁剪/硬门槛)→same-voice 同声口型本地工具链(pro6000-a 音色合成+TBDub 口型)→双语字幕后期→发布与流量复盘。Use when 复刻老外博主、数字人账号、老外数字人、复刻博主做视频、老外IP起号、数字人全流程、新博主资料包、数字人怎么生成。
+ description: 老外博主数字人全流程总控(含 laohan-yinse)。同一博主优先复用已验声音模型和适用形象素材;首次缺模型才服务器微调。覆盖模型与参考资产保护、整稿合成、same-voice口型、双语字幕及发布复盘。Use when 复刻老外博主、数字人账号、老外数字人、复刻博主做视频、老外IP起号、数字人全流程、新博主资料包、数字人怎么生成。
---
# laohan-laowai — 老外博主复刻数字人全流程
## 使命与合同
- **用老外的脸+外国独特教育/文化内容,做中国家长/观众共鸣的数字人爆款**。本 skill 是总控:七阶段端到端,全自动(API 直调,不上网页)。首个实战案例:`~/Documents/laowai/1chengzhang`(海思博士账号,Deborah 形象)——细节合同以该项目 docs/ 为准。
+ **用选定形象、专属音色与教育/文化内容制作数字人口播**。本skill是七阶段总控,本机/服务器CLI自动化,不走网页向导;确需基础素材时才按项目授权调用产品API。首个Deborah/海思博士案例是历史实例,当前形象/稿件/接受状态以各项目STATUS为准;用户当前指令和项目合同优先于本skill。
## 七阶段流程
+ **先分流再执行**:按稳定的博主/形象身份查项目声音资产登记。同一博主后续视频默认复用同一个已选模型版本;换集数、稿件、服装、场景或参考风格不等于新博主,也不触发重新训练。已有形象素材先核本期适用性,不强制重下载整套训练素材。新博主缺模型才从①/②首建;有备份但运行目录缺失时恢复组装,不重新训练。详细分流与依赖核对见 yinse 第0步。
+
+ **每集最短路径**:定稿/违规与事实核对 → 既有模型和参考身份检查 → 新稿整轨WAV及音文/听感检查 → 适用clean形象的same-voice → 一次组装/后期 → 连续有声审片及交付。训练数据清洗、多ASR训练校对、模型A/B/稳定性、参考池建设属于首建或具名变更,不每集重跑;字幕单改不回到训练/口型。具体改动影响、并行准备与复核合批见[按改动执行](references/episode-execution.md)。它是已有入口的操作方法,不是自动路由器或跳门授权。
+
+ **有对标或表现力反馈时**:先按[表现力与BGM方法](references/performance-bgm.md)拆出时间点证据,写清本期冲突/转折/情绪,再选同一形象适用素材和既有声音参考。常驻标题、逐句字幕及音乐一起放入一个代表性短样,不新增每环节复审或多版全片。未改风格时复用已定设计;学习对标不等于换人设、复制事实或重训。
+
### ① 博主选型与资料包
- 选型标准:教育者可信度 > 第一视角口播形态(talking head,非 vlog/skit/旁白)> 数据 > 类型差异
- 下载 5-8 条视频(laohan-xiazai:TikTok 用 yt-dlp 直下)+ info.json 元数据
- **口播形态逐帧验证**(抽帧+视觉模型确认正脸对镜头说话;抽帧落在无字幕间隙≠干净,必须多点验证)
- - 合规决策先行:形象克隆+虚构新身份(绝不冒用真人姓名/履历);起号期灰色可接受、商业化前换纯生成
+ - 选定博主不等于肖像/音色使用权、学历与亲历陈述已核实;不能以“改用虚构姓名”或“尚未商业化”宣称这些问题已解决。按项目合同核身份/来源/使用范围,不冒用真人身份、履历或接受记录。
+ - 换/加博主同步当前项目的素材追踪清单;素材数量与历史流量只作取样依据,实际可用性需本期核验。
- ### ② 声音模型(硬性前置,唯一方法=服务器微调)
+ ### ② 声音资产(已验模型为前置,默认复用)
- **调用 skill `laohan-yinse`**:8-10 分钟素材 → pro6000-a 服务器 CosyVoice3 微调 → 模型回迁。视频生成前必须完成,否则声音违和。
+ **调用 skill `laohan-yinse` 第0步**:先核本博主既有模型版本、权重SHA、底模/配置、参考音频及逐字文本、原验收证据。可用则直达第7步生成本期配音;需恢复则只恢复同一模型。确无已建模型才按8–10分钟净语料→服务器微调→回迁/登记/验收首建。重新训练或切换默认模型须有具名原因与负责人明确决定,新版本另存,不覆盖已选版和回滚资产。
### ③ 形象素材处理
- - 硬门槛(laohanagent 官方):竖版(高>宽)/短边≥720p/时长≥8s(推荐 30-60s,越长越好)/≤30fps/MP4/<200MB
+ - **分清入口限制**:竖版/短边≥720/时长≥8秒/≤30fps/MP4/<200MB是历史产品资产上传要求,不能当当前same-voice CLI的通用硬门;确需产品上传先读该产品现行合同。same-voice按当前工具核输入与几何,prepare转25fps并保持源画幅;原生清晰度、正脸/嘴部可见、字幕/遮挡与连续画面由本期视觉检查裁决,不靠升采样冒称细节达标。
+ - **不把产品上传门当same-voice适配验收**:576宽可通过本机prepare不证明TBDub实际效果;720宽也不证明全程无字/无遮挡。连续检查并先做已授权小样,不能拿几张无字截图保证整段干净。
- **字幕必须去除**(会被引擎复制进成片):博主视频普遍带字幕 → 底部 crop 或换无字幕条;多点抽帧验证(首/中/尾/多段)
- - 转码 h264;处理实录与判例参照项目 docs/dh-production-guide.md
+ - 项目选用顶部常驻标题时,在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 180 --out <全新目录>
+ --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)
- - ★生产活动保护:GPU 有生产 TBDub 任务时本任务自动 STOP_UNKNOWN_CUDA_PID 让路——等生产空闲 --resume(已存在 outputs 目录不能重跑,只能 resume)
- - 音频必须 24k 单声道 PCM16;180 帧分块上限(1080 宽输入 20GiB 内存保护)
- - 隔离 runner SHA 必须匹配 `469d820e...`(冻结保护)
- - 完成证据:assemble 产物 same-voice-candidate.mp4 全帧数一致+完整解码;状态=候选待听审,Jeffrey 过目后才算验收
+ - ★生产活动保护触发即保存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 模板包装(⑥后期):不需要学习/执行**(Jeffrey 2026-10-28 指示——口型成片即交付物)。
+ **Motion模板包装、字幕与BGM**按本期已核交付范围执行。只交口型样片时不擅自扩为模板项目;需要完整Motion包装时再加载V4/PIPELINE及其生产门,不能把口型机械通过当模板或全片验收。
+ ### ⑤.4 音频听审卡点(2026-10-28 补录)
+
+ ⑤ 的 prepare/推理启动前,最终 WAV 必须已过本期整轨音文与听感检查,默认由Jeffrey听审;只有明确委派涵盖该项时才按yinse“验收角色与委派”执行并如实记受托人、实际有声检查及限制。源素材校对或模型选型的委派不自动覆盖新WAV。听感不过→回yinse第7步,不进推理浪费GPU。
+
+ 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 -crf 22 -c:a aac -b:a 128k <加速版>.mp4
+ # S 常用 1.05(微紧凑)/1.10(抖音节奏),音高不变;首期 Jeffrey 选档后每期固定
+ # 输出帧率策略还须满足本期交付合同;需要CFR时另核帧取整与首尾偏移,不把vfr当平台通用要求
+ # 单独atempo声音而不调整画面会破坏原唇音时钟,不用来冒充同因子派生
+ ```
+
+ 加速版是新派生:记录倍率、输入与输出SHA、A/V起点与时长;外置字幕/词锚先按倍率换算,再对派生实际音频复核,不能只凭理论除倍率。已烧录字幕随画面变速,不再重复施加倍率;若实听词锚错位则重制字幕。`atempo`也可能改变局部边界,重跑受影响的听感、首末词、唇音/累计偏移、接缝和机械门,通过后才可复用原推理结果;不过则保留原速或另做有证据的修正,不以同因子免验。原WAV作为来源保留,不宣称加速后音轨与其逐样本一致,不直接沿用旧SRT。
+
### ⑥ 后期
- - 字幕:**中文大在上、英文小在下**(同屏成对;目标语言 > 中文观众阅读优先级)
- - BGM(低音量钢琴避让人声)+ **AI 生成标识(平台声明必勾)**
- - 违规检测过 laohan-weigui;后期管线可接 laohanvideo(Remotion 出片)
+ - 字幕:**中文大在上、英文小在下**(同屏成对;英文口播,中文主读、英文辅读)
+ - 字幕先看本期实际画面再排:按语义切短句;字体/颜色/底条是本期设计选择,未获接受的样式不得写成通用“美观公式”。只改字幕时,用本期已核无字幕底片本机另存新候选,直接复用原音轨及口型时钟;保留旧片、原音轨、模型与回滚资产,不重复训练/口型、不进入模型清理。
+ - 有用户视觉参考时,先拆字形/字重、中英字号比例、颜色对比、成组行距、意群切换与画面留白,再放到本期相同画面比较;不照搬参考的低字幕位置、翻译错误或不适合本场景的配色。动态效果须实际看时间序列,抽帧不足时明确未知。安全与可读通过不代表美观已接受,最终看实际样片与用户反馈。
+ - 主题标题、开场钩子与逐句字幕分轨:形式先读项目方法与本期决定;已选常驻时,顶部短双语主题标题覆盖全片,下方双语字幕跟口播逐句切换,不能拿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坐标,先核本期真实文件;包装/字幕仅在本期要求范围内执行。
### ⑦ 发布与复盘
- - 抖音:养号 2-3 天再发;账号装修(人设简介前 3 行钩子)
+ - 抖音账号注册、养号与发布时间由Jeffrey主导;不把“养号2–3天”当平台硬规定或流量保证。账号装修按本期已确认人设,不自动搬用旧专家履历。
+ - **成品交付规范(2026-10-29 Jeffrey 定,EP01 起固定)**:每期成品=桌面一个文件夹(`EPxx-多平台发布包/`),内含:成片视频副本 + 三平台发布文案(抖音/视频号/小红书**各自差异化**的标题、介绍、标签)+ 说明txt(视频路径/SHA)。Jeffrey 用完即删整个文件夹,不影响项目原件;项目内同 SHA 留档。过程文件不散放桌面。
+ - **发布文案规范(2026-10-29 Jeffrey 定)**:标题≤20字;抖音标签≤5个;**不带 `#AI新星计划`**(那是老韩AI主号的标签,本系列账号不带);视频号/小红书标题与介绍按平台调性差异化(视频号平实家庭向、小红书第一人称+emoji+分点+文末多tag);用 CC BY BGM 时文案末尾带署名行。
+ - **双引擎文案**:先独立写三平台版,再把同份提示词经 huashu-chrome 发到 Gemini「老外文案」既有会话,保留双方原稿、逐项取舍和融合确稿,最后对当前确稿做违规扫描。Gemini 稿是必需输入,不能以旧回复、自稿或发送动作代替。
+ - **Gemini 真实完成判据**:先核当前会话、准确草稿和既有消息,发送后必须取得本次新回复完整正文并留档;看到新用户气泡、草稿清空和“正在输入”只算在途。若随后气泡消失、草稿恢复或报错,记失败;HTTP200/“已点击”都不算完成。已在生成时不重复发送。huashu 动作无效时,现有会话与同份文本授权内可用宿主原生输入;仍失败则留 PENDING 并请用户处理实际卡点,不臆称已恢复,不扩大外发对象/内容。
+ - 网页提交退回草稿而用户指定本地客户端时,按[Gemini客户端实证方法](references/gemini-client.md)操作:完整草稿上再核指定模型/最高档,取得本期完整回复与SHA,不沿用“填稿前已选高”或浏览器剪贴板接口的空结果。
- 数据:opencli douyin stats/videos 拉取;10 条内决策点(引流款 vs 人设款占比调整)
+ - 发布前单独核:目标账号身份/登录态就绪、当前项目片内AI标识的允许/禁止要求与平台声明分别已核、当前候选的发布批准明确。只记账号标识/就绪结论,不归档凭据;缺项只阻发布,不把内容接受冒作发布许可,也不阻无关素材准备
- ## 完成证据(全流程怎么算完成)
+ ## 完成证据(四道质量门,源自 Jeffrey 声音方法 v2.2,缺一不可)
- ① 最终 WAV 绑定 SHA 且 Jeffrey 整轨听审通过;② assemble 产物 same-voice-candidate.mp4 全帧数一致+完整解码(ffprobe 无错);③ 字幕/AI 标识在成片可见;④ **发布前必须 Jeffrey 明确批准**(外部发布授权不可由 agent 自拍板)——发布动作本身另按项目合同执行。
+ ① **听感门**:本期最终WAV绑定SHA并完成上述真实整轨音文/听感检查,之后才做口型;② **唇音同步门**:连续播放复看口型、节奏与接缝,可同一次成片有声审片核字幕/标题;③ **机械门**:帧数/时钟一致、ffmpeg完整解码无错误、响度实测,ffprobe只负责元数据;④ **成片接受门**:Jeffrey看片明确接受。候选可在技术检查后交看片,发布批准另按项目合同处理,不把机械绿、候选交付或片子接受冒作已发布。
+ ## 声音绑定与登记纪律(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 排障;同一故障重试上限 3 次,仍失败报阻塞并上报 Jeffrey(不无限重试、不退回网页/产品链绕路)
- - 验收(深肤色还原/口型/音色)不过 → 回退候选形象名单(persona-candidates 排序),不硬发
+ - 渲染链失败 → 按DH-ROUTE/README保留失败现场、原预算和检查点,执行其有限恢复条件;不得新增“再试三次”、换目录清零失败次数或退回网页/产品链绕路。
+ - 验收不过按原因回退:画质/遮挡等视觉问题回本期素材候选;音色/自然度回yinse核数据、模型和参考;口型问题先核音轨身份、PTS和接缝再决定重算。保留原STOP/预算/检查点,不一律换人、不硬发
## 关键红线
- 1. 声音不走零样本(Jeffrey 钉死,唯一=服务器微调)
- 2. 全流程 API 自动化,不退回网页手动操作
+ 1. 正式声音必须本博主服务器微调;基模仅作同条件A/B基线,不进正式WAV/口型交付,不据此调用产品零样本绕路
+ 2. 当前同声路线用本机/服务器CLI,不退回网页向导;基础素材API须另按项目现有授权
3. 不冒充真实存在的人(虚构人设身份)
4. pro6000-a 是生产算力机:训练限 cosyvoice-train 目录,不碰生产进程
- 5. 数字人视频必带 AI 生成声明
+ 5. 当前用户与项目合同优先;历史案例不授权更改平台声明、片内标识或覆盖安全/验收要求
## 素材资产清单(每个博主资料包标准结构)
```
assets/
persona-candidates/ 原始视频(形象候选)
upload/ 形象上传母版(无字幕/达标)
voice-training/ 声音素材(逐条 WAV + 拼接主素材)
- voice-models/ 微调模型 checkpoint(服务器回迁)
+ voice-models/ 长期声音资产:已选权重、回滚版、参考音频/文本、配置与voice-asset.json
benchmark/ 对标视频库+转录
docs/
- persona-*.md 人设卡 topic-library-*.md 选题库
- scripts-*.md 文案 account-setup.md 装修
+ 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/几何/帧数,失败块不接纳
+
+ ## 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'`);`-vsync` 已废弃改 `-fps_mode vfr`
+ - **字幕时间轴用全局词流对齐**:whisper word_timestamps 词流 × 文案句表(逐句中英对照)做 SequenceMatcher 全局对齐——单锚点 fallback 会连锁错位(thirteen 被识成 13 就脱轨出 7 秒 gap)
+ - 首期黄字黑底v2仍被Jeffrey否决且字幕偏低;该样式不是已接受模板。后续按⑥的短句/实际字形边界/抖音遮挡检查试排,不固定套用该配色与MarginV;若长句溢为三行或中英相撞,须重新分句与复核时轴,不能仅缩字塞满底部。
+ - 加速是 `setpts=PTS/SP`(`SP*PTS`是减速反方向);Jeffrey 本期定**原速**为标准,加速档出对比不默认
+ - AI 视觉质检会误读形近字(十岁→七岁),对照原文复核再信
+
+ ### 交付
+ - 用户明确要求飞书交付时才调用既有入口:`node ~/.local/share/github-digest/push-feishu.mjs "文本" 附件.mp4`(单附件);默认只发指定正式候选,不自动多版本或抖音发布。
+ - 先核当期附件大小与入口限制:[机器人文件上传](https://open.feishu.cn/document/server-docs/im-v1/file/create)当前上限30MB。超过时可在已登录飞书客户端的同一获准收件会话按本地文件/原文件发送,保留正式片画质;不能为套接口限制把压缩版冒作原文件。客户端不可用则明确交付阻塞,不擅自扩大收件人或公开文件。
+ - 既有脚本附件失败仍可能exit0,须核实际附件成功,不能只看卡片或总退出码。客户端附件可能嵌在`post.files`,不能只筛`file`消息;绑定本期文件名/大小,能回下载时核SHA。状态不明先核消息,避免重复发送;发送成功不代签手机打开或听感接受。
+ - 每期结束后按「清理临时产物,保护长期声音资产」节逐项处理本地/远端临时产物;先保护模型与参考依赖,输出仍有验收/恢复用途时保留。
+
+ ### 成片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),不再分"烧字幕+delogo"两代;delogo 必须在 ass 前(水印清除在原帧域,字幕最后叠)
+ - **字幕与 GPU 并行**:词锚(合成后 ASR 的 words.json)+对照表生成 cue 与 GPU 推理同时进行,GPU 完成时字幕已就绪;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)。