NEW从文字或图片生成 3D 模型 — 支持绑定、动画制作与导出。立即体验 3D
PopcraftPopcraft
A dot plot of integrated loudness across four scenes. The four text-to-speech readings sit inside a spread of half a loudness unit; the four readings from the finished clip's audio spread across 9.4.
产品1 分钟阅读

为什么你的 AI 主播每次剪辑后听起来都像换了个人

简而言之。 如果你的 AI 主播声音在每个片段间发生变化,问题大概率不在文本转语音,而在视频模型。Seedance 2.5 会在每次生成时重新演绎你的配音,并根据景别选择空间声学环境。将响度标准化到统一目标,保持所有说话镜头的景别距离一致;如果必须保留完全一致的原始声音文件,请使用 Wan 3.0 生成,它在测试中原封不动地保留了我们的音频。

我们对一个包含生成主播的教程中的四个场景测量了五项指标,结果证明文本转语音是无辜的。

一个女人,一个房间,一种声音,十二分钟的素材。每个片段单独看起来都很棒。但把它们剪辑在一起时,她的声音就崩了:在一个镜头中明亮且贴近,在下一个镜头中却沉闷且遥远,就好像她在句子说到一半时,从播客录音棚闲逛到了别人的厨房。

为什么 AI 主播在每个片段中听起来都不一样?

首先,停止盲目猜测。不断重新生成直到听起来合适不仅成本高昂,而且无法告诉你任何实质信息。因此,我们在四个场景中对文本转语音源音频和最终成品音频测量了相同的五项指标:音高、频谱亮度、综合响度、本底噪声和语音电平。一张表格就说明了全部问题。

场景间差异文本转语音源最终片段音频
响度0.5 LU9.4 LU
语音电平2.5 dB8.3 dB
音高(中值 F0)17.3 Hz9.5 Hz
环境音(本底噪声)10.6 dB4.8 dB

差异 = 最响场景到最安静场景,最高音高到最低音高。

文本转语音的效果近乎完美:四个场景分别为 −14.4、−14.9、−14.8 和 −14.9 LUFS。而视频模型返回的结果是 −21.8、−16.1、−17.7 和 −12.4。这 9.5 分贝的波动,正是“她每次剪辑听起来都不一样”的真正原因。

注意另外两行呈现的相反趋势。经过视频模型处理后,音高和环境音反而变得更加一致了。我们原以为会发生漂移的部分,实际上根本没有漂移。

视频模型是使用你的配音,还是重新生成配音?

有些模型会直接使用。有些则会重新合成。这一发现改变了我们的工作流。我们将源音频与每个最终片段中嵌入的音频进行了互相关分析,然后检查这种对齐是否成立。

模型与源音频的相关性片段内的漂移
Seedance 2.50.30 – 0.55120 – 440 ms
Wan 3.00.82 – 0.950 ms

Wan 3.0 会返回你的波形,仅带有固定的延迟。Seedance 2.5 则会返回一段全新的演绎:它以你的参考音频为条件,角色辨识度依然相同,但经过了重新合成。与源音频相比,它将音高降低了 0.2 到 1.3 个半音,并使音色变暗了 5% 到 19%,且每次生成的结果都不尽相同。

对于重新合成音频的模型,会产生两个重要后果。

没有任何提示词能修复这个问题。 这种差异发生在模型的音频合成内部,而不是你可以通过描述来解决的。我们曾花大量时间编写关于保持环境音一致的详细指令,后来才意识到环境音本身已经是一致的了。

你无法把干净的音频重新替换回去。 这看起来是个完美的解决方案——保留优质的画面,在底层铺上你纯净的原始音轨——但在 Seedance 上行不通,因为口型跟随的是模型自己重新调整时间后的演绎,到片段结尾时,它已经与你的文件产生了高达 440 ms 的漂移。

制作数字人播报视频应该使用哪个模型?

明确在生成过程中必须保留什么。

  • 必须保留完全一致的音频文件——克隆的品牌声音、必须逐字精准匹配的脚本,或客户已经批准的配音。请使用 Wan 3.0。它的输出与你的文件保持固定偏移量锁定,因此你可以消除延迟,并将原始音轨重新铺回画面下方。每次请求的音频参考总时长上限为 15 秒,因此请按此时长规划说话片段。
  • 演绎方式可以改变——模型自己的朗读效果可以接受,且你更看重画面而非精确的波形。Seedance 2.5 就可以胜任,本文的其余部分将介绍如何保持其多次生成结果的一致性。

无论哪种方式,声音本身都始于文本转语音生成器;一致的源音频是从来不曾出问题的环节。

为什么 AI 主播在远景镜头中听起来很远?

模型会根据镜头匹配房间声学。播客录音棚与厨房的听感差异来自于房间环境,因此我们测量了直达声与混响声的比例——即声音听起来有多干、多近,与周围空间感的对比——以及每个乐句后的衰减时间。

场景景别干声度房间衰减
倾诉节拍特写2.8116 ms
介绍特写3.181 ms
开场远景1.3139 ms
结尾远景0.3209 ms

同一房间内 AI 主播的远景与特写镜头对比。远景:干声度 0.3 到 1.3,房间衰减 139 到 209 ms。特写:干声度 2.8 到 3.1,房间衰减 81 到 116 ms。图中数据为绘制,非实拍。

远景镜头的空间感更强;两个特写镜头的声音则很干且亲密。模型会根据景别推断声学特征——从房间对面拍摄的人理应听起来更远,所以它就把声音推远了。这是很好的电影制作直觉。但当你把一个远景节拍与一个特写节拍剪辑在一起时,这种处理就会暴露无遗,让你的主播听起来像是瞬间移动了。

你能在后期修复不一致的AI视频音频吗?

能修复三分之二。我们搭建了一条匹配链路,并进行了如实测量。

处理前处理后
响度差异9.4 LU0.4 LU
音色差异2.9 dB1.1 dB
空间混响差异2.3 dB无变化

针对单一目标进行双遍响度标准化,可以彻底解决响度问题。这不需要任何成本,无论如何你都应该这么做。测量每个片段,然后使用测量返回的数值对其进行校正,对剪辑中的每个片段使用同一个目标值:

# pass 1: measure. Read the five measured_* values out of the JSON it prints.
ffmpeg -i clip.mp4 -af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json -f null -

# pass 2: correct, pasting pass 1's own numbers into the placeholders.
ffmpeg -i clip.mp4 -af loudnorm=I=-14:TP=-1.5:LRA=11:measured_I=<input_i>:measured_TP=<input_tp>:measured_LRA=<input_lra>:measured_thresh=<input_thresh>:offset=<target_offset>:linear=true -c:v copy out.mp4

对每个片段进行温和的搁架式EQ调节,就能让音色基本保持一致。

混响是唯一无法妥协的因素。我们为每个片段添加了一个小型的共享空间混响,让它们共享同一个尾音,结果却让差异变得更糟了,从 2.3 dB 增加到了 2.9 dB:共享混响会叠加在每个片段现有的尾音上,而不是替换它。匹配混响只能通过做减法来移除它,而这需要专门的去混响工具,而不是滤波链。

因此,对于“我能在后期修复它吗”这个问题,诚实的回答是:其中三分之二可以免费修复。剩下的三分之一,避免产生的成本比后期修复更低。

如何让AI主持人的声音在不同片段间保持一致?

靠构图纪律,而不是音频。让每个说话节拍保持相同的景别距离,房间声学特征就不会再发生变化,因为模型不再被要求去改变它。

我们从另一个方向得出了相同的结论。将每个片段通过视频理解模型作为质量把关,特写镜头的口型同步得分为 10 分中的 7 分,偏移量为零;全景镜头的得分为 4 到 6 分,偏移量为 40 到 100 ms。它的解释是:在全景构图中,人脸很小,所以嘴型看起来模糊不清。

两项独立的测量,一个答案:近距离拍摄你生成的虚拟主持人,并让她保持在这个距离。 将全景镜头用于动作、展示房间,或任何她没有说话的场景。如果你需要声学环境更加稳定,请在提示词中明确描述它,而不是让模型去推断。现在的每个提示词都要求声音靠近麦克风且干声,就像在距离一掌宽的领夹麦克风前一样,没有房间回声。

close and dry to the microphone, as if on a lapel mic a hand's width away, with no room echo

如何自动检查AI口型同步?

让模型为你打分。现代视频理解模型——任何当前接受视频输入的多模态模型——都会观看片段并对口型同步进行评分,这将主观争论变成了一个检查清单。我们的模型捕捉到了一个从未完全闭合的双唇辅音、一个没有随前景一起动画的背景镜子反射,以及模型自行添加的一个未经请求的眨眼动作。它还以毫秒为单位估算了音频偏移量,这正是你在两条路线之间做出选择所需的数值。有关口型同步模型最初是如何工作的,请参阅 AI口型同步技术解析。

一个注意事项:模型的选择比你想象的更重要。一个较旧的模型对每个片段的评分都完全相同,都是 10 分中的 6 分,并且拒绝估算任何偏移量——对排名毫无用处。一个较新的模型则清晰地将它们区分开来,并给出了偏移量。如果你的质量把关显示所有片段都一样,那就怀疑这个把关机制吧。

当质量把关在一个原本很好的镜头中标记出一个糟糕的细节时,编辑该片段而不是重新生成。

简短总结

  • 在重新生成之前先进行测量。跨场景的差异能在一张表中指出是哪个环节出了问题。
  • 你的文本转语音可能没有问题。
  • 有些视频模型会直接透传你的音频;有些则会重新合成。Seedance 2.5 会重新合成;Wan 3.0 则透传了我们的音频。这决定了你是否能把干净的音轨换回去。
  • 响度标准化是免费的,并且能解决最大的问题。
  • 混响无法通过添加更多混响来修复。我们验证过了。
  • 近距离拍摄说话镜头并保持距离恒定。这能同时修复声学环境和口型同步。

本页面上的所有数据均基于我们使用 Popcraft 生成的镜头测量得出。封面绘制了第一张表格中的响度数据。方法:通过 pYIN 算法在浊音帧上提取音高,使用 EBU R128 响度计测量响度,干声程度定义为每次发音起始后的前 50 ms 与随后 150 ms 的能量比,衰减定义为语音停止后下降 20 dB 所需的时间。

常见问题

为什么我的 AI 主播在每个片段中听起来都不一样?
通常是因为视频模型在每次生成时都会重新合成声音。在四个场景中,我们的文本转语音响度波动保持在 0.5 LU 以内;而最终生成的 Seedance 2.5 片段音频响度跨度达到了 9.4 LU,并且空间混响会随着每个景别的变化而改变。
我能把干净的原始音频替换回去吗?
这取决于模型。Seedance 2.5 会返回全新的表演,其音频在整个片段中与源文件的漂移高达 440 ms,因此口型跟随的是它的时间轴,而不是你的文件,替换进去的音轨会出现音画不同步。Wan 3.0 返回的波形具有固定的延迟且没有漂移,因此一旦消除该延迟,就可以将原始音轨重新铺回画面下方。
哪个 AI 视频模型能保持我的配音原封不动?
在我们的测试中,Wan 3.0:其输出与源音频的相关性在 0.82 到 0.95 之间,并在整个片段中保持固定的偏移量。Seedance 2.5 的相关性仅为 0.30 到 0.55,且漂移了 120 到 440 ms,因为它会重新合成声音。这两个模型均可在 Popcraft 上使用。
为什么她在远景镜头中听起来离得很远?
模型会根据景别推断声学环境。在四个场景中,两个远景构图的空间感最强,衰减时间分别为 139 ms 和 209 ms,而两个近景的衰减时间仅为 81 ms 和 116 ms。
仅靠响度标准化就够了吗?
它能解决最主要的问题且零成本:针对单一目标进行两遍标准化,将响度跨度从 9.4 LU 降低到了 0.4 LU。音色需要针对每个片段使用搁架式 EQ 进行调节,而混响则完全无法通过滤波链来处理。
AI 视频片段的响度应该标准化到多少?
选定一个目标值,并将其应用于剪辑中的每一个片段。我们使用 −14 LUFS 综合响度,配合 −1.5 dBTP 的真峰值上限,这适用于大多数流媒体和社交平台。片段之间的一致性比具体的数值更重要。

想要亲自体验吗?立即开始使用 Popcraft。

打开视频生成器