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

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

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

相关推荐
Eiceblue3 分钟前
Python读取PDF:文本、图片与文档属性
数据库·python·pdf
weixin_5275504016 分钟前
初级程序员入门指南
javascript·python·算法
程序员的世界你不懂36 分钟前
Appium+python自动化(十)- 元素定位
python·appium·自动化
DisonTangor1 小时前
【小红书拥抱开源】小红书开源大规模混合专家模型——dots.llm1
人工智能·计算机视觉·开源·aigc
CryptoPP1 小时前
使用WebSocket实时获取印度股票数据源(无调用次数限制)实战
后端·python·websocket·网络协议·区块链
树叶@1 小时前
Python数据分析7
开发语言·python
老胖闲聊2 小时前
Python Rio 【图像处理】库简介
开发语言·图像处理·python
码界奇点3 小时前
Python Flask文件处理与异常处理实战指南
开发语言·python·自然语言处理·flask·python3.11
浠寒AI3 小时前
智能体模式篇(上)- 深入 ReAct:LangGraph构建能自主思考与行动的 AI
人工智能·python
行云流水剑4 小时前
【学习记录】如何使用 Python 提取 PDF 文件中的内容
python·学习·pdf