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

视频翻译配音后的同步问题,一直是难点,原因就在于翻译为不同语言后,句子长度、发音用时通常都是不同的,原发音用时三秒,翻译为另一种语言并配音后,用时可能是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 文件中修改,至于多少合适,要视具体翻译前后语言不同 说话人语速不同 而不同,根据经验和不断尝试,找出最佳效果。

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

相关推荐
youcans_22 分钟前
2025年数学建模美赛 A题分析(4)楼梯使用人数模型
python·数学建模
查理零世2 小时前
【算法】数论基础——约数个数定理、约数和定理 python
python·算法·数论
Eiceblue3 小时前
Python 合并 Excel 单元格
开发语言·vscode·python·pycharm·excel
boonya5 小时前
Yearning开源MySQL SQL审核平台
数据库·mysql·开源
customer086 小时前
【开源免费】基于SpringBoot+Vue.JS贸易行业crm系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源
weixin_421133416 小时前
编写python 后端 vscode 安装插件大全
开发语言·vscode·python
hshpy7 小时前
start using Python 3.11 after installation
windows·python·python3.11
李智 - 重庆7 小时前
Python3 【高阶函数】水平考试:30道精选试题和答案
经验分享·python·编程技巧·案例学习·错误分析
日日行不惧千万里8 小时前
ultralytics 是什么?
python
我想学LINUX8 小时前
【2024年华为OD机试】 (C卷,200分)- 机器人走迷宫(JavaScript&Java & Python&C/C++)
java·c语言·javascript·python·华为od·机器人