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

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

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

相关推荐
AI生存日记2 小时前
百度文心大模型 4.5 系列全面开源 英特尔同步支持端侧部署
人工智能·百度·开源·open ai大模型
步、步、为营3 小时前
.net开源库SignalR
开源·.net
烛阴3 小时前
简单入门Python装饰器
前端·python
好开心啊没烦恼3 小时前
Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy
面朝大海,春不暖,花不开3 小时前
使用 Python 实现 ETL 流程:从文本文件提取到数据处理的全面指南
python·etl·原型模式
2301_805054564 小时前
Python训练营打卡Day59(2025.7.3)
开发语言·python
万千思绪5 小时前
【PyCharm 2025.1.2配置debug】
ide·python·pycharm
国服第二切图仔6 小时前
文心开源大模型ERNIE-4.5-0.3B-Paddle私有化部署保姆级教程及技术架构探索
百度·架构·开源·文心大模型·paddle·gitcode
钱彬 (Qian Bin)6 小时前
一文掌握Qt Quick数字图像处理项目开发(基于Qt 6.9 C++和QML,代码开源)
c++·开源·qml·qt quick·qt6.9·数字图像处理项目·美观界面
步、步、为营6 小时前
.net开源物联网项目IoTSharp
物联网·开源·.net