再谈翻译配音后的声音、画面、字幕同步

视频翻译配音后的同步问题,一直是难点,原因就在于翻译为不同语言后,句子长度、发音用时通常都是不同的,原发音用时三秒,翻译为另一种语言并配音后,用时可能是5秒或者2秒。如果时长降低那还比较好处理,直接静音补白就好了。

难就难在时间变长了,原本3秒,配音后变成了5秒,多出的2秒怎么办?

最容易想到的方法就是加速呗,5秒强制加速到3秒说完,加速 1.67 倍,看起来似乎不错啊,可惜有时加速1.67倍 但有时可能要加速 3.67倍甚至更大 ,而有时不加速,声音变的忽快忽慢,快的时候啥也听不清,体验不好。

那视频慢放呢?也面临同样问题,慢的时候就成了慢动作。而且视频慢速处理起来非常慢,也容易出错。

那有没有完美办法呢?有自然是有,比如手动剪辑、精简翻译、添加补间画面、过渡动画、调节时间轴等,但效率太低。

自动化处理还有什么办法?

我们都知道,视频中说话声都是有停顿的,每句话之间前后都有空白静音段,那么在这里能不能做些文章呢?

对于翻译配音后很可能时长会变长的语言,事先设定一个较小的整体加速值,比如10%,尽量减小时长变化。

然后对配音移除末尾的静音,降低配音时长,之后再次判断配音新的时长。

如果发现配音时长还是大于原时长,再看看和下一句话之间有没有静音片段,有的话可以给配音使用,缩短这个静音片段,如果没有,继续往前看有没有可以利用的静音片段。

接着继续对声音加速,但不无限加速,设定一个最大值比如2.5,即最大加速到2.5倍,如果时长还是超过原时长,则顺延增加总时长,后边的时间依次后推。这必然导致画面在前而声音在后。

为减小影响,可以减小每个说话间也就是每条字幕之间的静音片段,例如原本1秒的静音片段,可以缩短到0.8秒,这样就又相应将画面提前了,抵消一些之前后推的影响

同时如果遇到原时长大于配音时长的,比如原时长3秒,配音后2秒,就多出了一秒空白,此时可将空白移除。更进一步降低后推影响。

通过设置 整体语速加速值、配音往前后延展、移除配音尾部静音(remove_silence)、原字幕时长大于配音时移除静音(remove_srt_silence)、缩小字幕之间存在的静音片段(remove_white_silence)、设定加速最大值(audio_rate)。共2个选项 4个变量,通过不同组合和不同数值变化统筹控制时长,尽量实现较合理也简单的同步效果。

这4个变量可在 videotrans/set.ini 文件中修改,至于多少合适,要视具体翻译前后语言不同 说话人语速不同 而不同,根据经验和不断尝试,找出最佳效果。

当然这个实现方式也不是很理想,比如有可能造成话已说完,人才开始张嘴,即声音提前了,但既简单容易实现,容易程序批量控制,又能效果完美的方法,目前还没有思绪,如果你有好的想法,欢迎留言。

相关推荐
CodeCraft Studio8 分钟前
国产化Excel开发组件Spire.XLS教程:使用Python批量删除Excel分页符
开发语言·python·excel·python开发·spire.xls·excel api库·excel开发组件
free-elcmacom8 分钟前
深度学习<2>从“看单帧”到“懂故事”:视频模型的帧链推理,藏着机器读懂时间的秘密
人工智能·python·深度学习·音视频
ZAz_10 分钟前
DAY 44 Grad-CAM与Hook函数
python
高洁0111 分钟前
基于Tensorflow库的RNN模型预测实战
人工智能·python·算法·机器学习·django
多米Domi01120 分钟前
0x3f第九天复习(考研日)(10.57-14:00)
python·算法
张彦峰ZYF21 分钟前
从路径抽象到安全归档 Python 文件组织实战
大数据·python·从路径抽象到安全归档·python 文件组织实战
大、男人21 分钟前
FastMCP高级特性之Message Handling
人工智能·python·mcp·fastmcp
特立独行的猫a22 分钟前
OpenHarmony开源鸿蒙应用签名机制深度解析与工具使用指南
华为·开源·harmonyos·签名
ShiMetaPi37 分钟前
【以开源之基,筑智能未来】视美泰开源技术事业部:定义AIoT时代的“硬实力”与“开放性”
开源
ULTRA??38 分钟前
基于range的函数式编程C++,python比较
c++·python·kotlin·c++20