配音整形链 v4→v7 与 raw 直出定案全录(2026-11-12/13)

适用:本机知识/解说视频产线配音层(OmniVoice 引擎 + step2 整形链)。 结论优先级最高的一句话:引擎原声(raw)优于一切后处理整形;调语速唯一正规途径是换更缓的参考段重新注册音色,变速链(atempo 等)永久禁用。

一、事件脉络

  1. 11-12 委托三交付后用户反馈:蓝图版配音"听感不如旧版",且某角色"总在不该停的地方停"。
  2. 归因不靠耳朵猜,把三层整形链拆开逐项量化:
    • respunct 停顿整形:句内插静音 0.62s / 句间 0.45s;
    • 呼气 duck:句头音量压 15%;
    • loudnorm:-14 LUFS 母带。
  3. 同文本无缓存重合成 raw 版,飞书发 A/B 盲听对比 + 全场 raw 原声,给三档裁决(A 维持现状 / B 全 raw / C 折中)。
  4. 用户裁决:raw 引擎原声听感更好 → 定案零处理直出(11-12 批五)。
  5. 断句修复需求仍在(有些句子引擎确实不停),于是走 v4→v7 迭代,目标是"只补引擎真没停的位置,其余一律不动"。

二、v4→v7 迭代中的误诊与真根因(教训主体)

版本做法结果教训
v4标点整形:按逗号/句号强制插停顿一期 385s 稿被硬插 132 处静音,听感"处处卡"标点密度 ≠ 呼吸需求。稿件逗号密度 8.5 字/标点时,按标点插停顿必然过密。整形层对稿不对症
v5断句修复加回 + 换女声试验停顿问题依旧音色与停顿病不同源,混在一起改会掩盖归因
v6怀疑限幅器泵浦(pumping),换轨处理无效——误判“听感怪"先做 A/B 排除法定位层,别对着猜测层连环施治
v7只做三件事:①仅在引擎未停位处补停顿(目标值放缓)②句内不插③拼接处 5ms 弧角防爆音交付 v7 终版 385.4s / -14.4 LUFS,用户接味道通过整形层的正当职责=补缺,不重排

配套硬规矩(同日成文):

  • ⛔ respunct 硬补停顿;⛔ 强限幅;⛔ 任何变速(10-22 的 atempo 闸门路线早已掉头,本次钉死为永久禁令)。
  • 语速慢/快的唯一正规调节途径:换参考段重新注册音色(例如"知识分享男声v3缓"就是用更缓参考段注册的槽位)。

三、工程落位(11-13 已接线全产线)

  • 正源:shape_v7.py(全产线唯一整形实现,三正源 step2 升 v16 引用)。
  • 指纹联动:step2 的 RESP_VER 由 shape_v7.__code__ 等代码指纹哈希构成——改整形代码=指纹变=全量重配音,缓存不会拿旧版冒充新版。
  • 金样例门禁:门禁 v7shape(黄金自测样例入 ~/kf-video/_gate-audit,改判据必先跑 gate_selftest)。

四、方法论提炼(跨产线通用)

  1. 听感投诉的拆层归因:把整形链每一层做成可开关/可旁路,raw 版是永远要留的对照组;没有 raw 对照,任何"某层有问题"的结论都不成立。
  2. A/B 盲听交给人耳裁决,AI 只提供量化证据和素材,不自封听感结论。
  3. “修一处引入一处”(v6)典型特征是改动方向与症状层不同源——先证症状在哪一层,再动那一层。
  4. 缓存指纹必须覆盖代码本体(co_code 哈希),否则代码修复后旧产物静默复用,线上看不到修复效果。