视频翻译配音中的声音、画面、字幕 同步对齐与最佳实践


点击上方蓝色文字“视频翻译与配音”关注我,及时获得最新教程和信息
大家都知道,不同语言即使对于同一句话,发音时长也是不同的,比如一句话用中文2s就能说完,但翻译为英语后,句子可能变的很长,需要3s或更多时间才能讲完。如下面的例子,中文读完用时2.3s,而翻译为英文配音后读完需要3.8s(来自deepl.com)。
例子:
中文:用时 2.300 秒
00:00:13,530 --> 00:00:15,830
本期我们介绍电磁阀的功用原理
英文:用时 3.800 秒
“In this issue, we introduce the functional principle of electromagnetic valves.”
这种情况就导致在对视频进行字幕翻译并配音后,新视频的时长同原视频的时长不相等,从而造成 “画面、声音、字幕” 无法对齐。

如何解决该问题呢,一种思路是尽量精简译文,保持翻译短小精悍,但除非人工翻译,机器翻译几乎无法做到这一点,因此忽略这种方法。
另外有2种比较容易实现的思路,也是目前我所采用的。
  一是强制配音加快语速:

在原时长内必须说完,看上面的例子,英文配音后,正常语速需要 3.8秒,为了让它在 2.3秒 内讲完,需将语速提升为原语速的 1.65 倍,从而实现了 声音、画面、字幕对齐。
但很显然,这种方式必然导致语速时快时慢,而且有时太快,压根听不清说的什么,体验很不好。
  二是强制视频慢放延长画面:

以配音后时长为准,将原时长内的视频片段慢速播放,将时长延长到配音时长。
还是看上面例子,原用时 2.3秒,配音时长3.8秒,将原视频里 00:00:13,530 --> 00:00:15,830 这2.3秒时间段内的视频片段截取出来,然后通过 ffmpeg 滤镜 setpts 将视频延长至原来的 1.65 倍,时长就变为了 3.8秒,这样就和配音时长一致了,从而实现了对齐,而配音并不需要加快语速。
这种方法避免了语速的时快时慢,但很显然又带来了另一个问题:画面变的时快时慢,有时候慢的像是在进行慢动作回放,体验同样不好。
能否同时结合上面两点呢,自然是可以的。
还是看上面示例,同时采用 “配音加速” 和 “视频慢放” ,原时长2.3s,配音后时长3.8s,相比原时长多出了1.5s,如果是单独只加快音频语速,直到抵消掉多出的1.5s,需加速至1.65倍,若是只加速一半,即抵消掉多出来的1.5s的一半 0.725s,需加速到 2.3+0.725s=3.025s 时间内播放完原本的内容,那么需要加快语速至 1.256 倍,而不是1.65倍。
同样视频慢速播放,也不再是慢速延长视频片段,直到 2.3s的视频延长到3.8s,而是将 2.3s 的视频片段延长到 0.725s到3.025s。需加速1.256倍,而不是 1.65倍

  仍不完美,再对前后存在的静音片段进行占用处理
若是采用人工调整,无论是精简翻译,还是调整配音语速或者视频抽插帧,方法都很多,但效率太低,我想要的是程序自动化实现。
一种思路是在配音后,先检测原视频中,对应每条字幕结尾到下一条字幕开始之前是否存在静音区间,如果有,那就延长本条字幕结尾时间,直到达到配音时长,或者达到了下一条字幕开始时间。
看前文例子,原中文这条字幕:00:00:13,530 --> 00:00:15,830,时长只有2.3s,距离正常播放完毕3.8s的英文配音还差1.5s,此时检测下一条字幕和本条字幕结束时间 00:00:15,830 之间是否存静音时段,这里假如下一条字幕开始时间是 00:00:17,830 ,显然存在2s的区间,那么配音就无需加速,只需要将本条字幕显示结尾时长延长1.5s就可以了。。
这是比较顺利的情况,如果后边没有间隔,或者间隔不足 1.5s 怎么办,此时再检测距离同上一条字幕结束是否存在静音片段,如果有,那么就将本条字幕开始时间往前移动,直到延长1.5s或者达到上条字幕结束时间。

但更多见的情况是,前后都移动了仍然无法正常语速播放完毕怎么办呢?
那就强制语音加速,为避免加速太多导致无法听清,设置一个最大加速倍数如2.5倍,超出就不再加速。
那不还是不同步吗?
别忘了还可以继续视频慢速,到了这一步,只能强制视频慢放,直到全部对齐。
视频是无限慢速吗,不是的,为了防止过度慢放导致体验糟糕到无法接受,设置了一个最大值,超过就不再慢放。
  经过以上所有处理后,时长仍然大于原时长怎么办
那就无可奈何了,只好在视频最后时刻,复制最后一帧画面,然后静态延长直到配音播放完毕。
  有最佳实践吗
以目前能想到和实现的方案而言,我总结的最佳实现方式如下:
在配音时设置一个较小的总体语速加速值,比如 10% 、20%,即在正常语速之上,增加10%达到110%语速。
配音后如果时长仍大于原时长,再检测前后是否存在静音片段区间,如果存在,就占用该区段
上述两步之后仍然大于原时长,再分别执行每条字幕对应的语音加速和慢速加速

这4个配置项就是用来调整声音、画面、字幕对齐的,分别实现了上述的思路。同时选中并设置较小“配音语速”,应该能取得可以接收的效果。
到顶部