voiceover_wholegen · tag:test · 真机 task 32dd409f · 真实输入 M2DhAl

用你给的真实脚本跑了一遍 —— 整段出音频 + 改词自愈,听听看

6 段 "Tiles Survive!" 解说(你那条 M2DhAl.json 的 timeline)。整段一次 ElevenLabs 出音频, 按逐字 timestamps 切回 6 段对齐时间轴;两段不合身的(seg3 太短 / seg5 太长)被自动改写重生成,2 轮收敛。

▶ 最终整轨(6 段摆回时间轴,29.2s)—— 直接听这条
▶ 整段原始一次性出的音频(切分前,28.2s)—— 听整段 prosody 是不是连贯

这条是 wholegen 的核心区别:整段一次生成(不是逐句拼),所以语气/语速连贯。上面那条 final 是把它按 time_range 切回各段、各段微调速后摆回时间轴的成片。

6
段 · 全部对齐
2
改词轮 → 收敛
2
改写段 (3 加长 · 5 缩短)
57
词级 SRT cue

退出码:round1 3(needs_rewrite [3,5])→ round2 0(done)。rewrite_fallbacks: [] 没碰兜底。

自愈过程:6 段里 4 段一次过,2 段改了一轮就好

ROUND 1 · runner exit 3
整段生成 3 takes切回 6 段fit seg 0·1·2·4 fit ✓  ·  seg3 too_short · seg5 too_long needs_rewrite [3,5]
AGENT · 按 attempts[] 反馈改两段
seg3 加长 11→14 词(+~1.1s 补 0.74s gap) ·  seg5 缩短 7→5 词(砍 ~1.25s)重跑
ROUND 2 · runner exit 0 · DONE
6 段全 fit(0·1·2·4 走 accepted-cache 冻结,只 3·5 重评) SRT + 整轨 + 上传 → complete

实际改了哪两段(听改写前后)

seg 3 · lengthen · 窗口 6.0s(太短,下界 4.8s)
− But watch out for bottlenecks. The trucks are getting backed up.
+ But watch out for bottlenecks here. The trucks are really getting backed up now.
改写后这段成片(5.56s):

理由(agent 自填):"+3 words (11→14, ~+1.1s) to close +0.74s gap toward 4.8s target; meaning unchanged"。

seg 5 · shorten · 窗口 3.7s(太长,目标 3.35s)
− Every decision matters. Play Tiles Survive! today.
+ Decisions matter. Play Tiles Survive!
改写后这段成片(3.34s):

理由:"7→5 words to cut ~1.25s over toward 3.31s target; keeps 'decisions matter' message + product CTA 'Play Tiles Survive!'"。CTA 保住了。

逐段听 + 落点(全部装进时间窗)

seg0 · "Tired of fake ads? This is actual, relaxing gameplay."
窗 4.5s · 终 4.21s · fit
seg1 · "Watch how satisfying it is to process these resources."
窗 4.5s · 终 3.84s · fit
seg2 · "Let's upgrade our saws. Smart planning makes this pile grow fast."
窗 6.0s · 终 5.62s · fit
seg3 · 改写后 "But watch out for bottlenecks here. The trucks are really getting backed up now."
窗 6.0s · 终 5.56s · lengthen→fit
seg4 · "Upgrade the loading zones to optimize the entire flow."
窗 4.5s · 终 4.21s · fit
seg5 · 改写后 "Decisions matter. Play Tiles Survive!"
窗 3.7s · 终 3.34s · shorten→fit

词级 SRT(节选)

1 00:00:00,069 --> 00:00:00,313 Tired 2 00:00:00,365 --> 00:00:00,470 of 3 00:00:00,532 --> 00:00:00,783 fake 4 00:00:00,900 --> 00:00:01,331 ads? … 共 57 个词级 cue,绝对时间轴;line-groups 走 lb-v3,和 combo 同一套构建器

小结

  • 真实输入下,6 段里 4 段一次过,只有 2 段(太短/太长)触发改词,1 轮就收敛 —— 不是每段都折腾。
  • 两个方向都真机验过:加长(seg3)和缩短(seg5),改写后落点 5.56s / 3.34s 都进窗。
  • 改写保住原意 + CTA("Play Tiles Survive!" 没丢)。
  • 整段一次出 → prosody 连贯(听 whole-source 那条);切回各段对齐时间轴。

test-only,prod 未碰,代码未 commit。你听完觉得 OK → 促到 voiceover_align test tag。