视频翻译并配音后声音、字幕、画面同步问题与应对方法

视频在翻译为其他语言并使用该语言配音后,通常都会出现 声音、字幕、画面 无法对齐即不同步问题,这也是一个难点,本文简单解释下原因和应对方法。

为何会出现声音、字幕、画面不同步

在不同种类的语言互相翻译后,句子长度是会变化的,发音时长一般也是会变化的,比如从中文翻译为英文,句子长短肯定有所不同,而读出这句中文所用时长和读出这句英文所用时长,一般也是不同的。

中:有多远滚多远

英:Get out of here as far as you can!

中:滚远点

日:ここから出て行け。

原始视频中文发音用时2s,翻译为英文并配音后,时长可能是4s,这必然导致不同步。

如何让它们同步,不在意效果,只要同步

像上面所说,翻译前时长2s,翻译后时长4s,如果仅仅只需要它们能同步即可,不在乎语速快慢或视频画面快慢,可以直接让音频加速2倍,4s的时长就能缩短为2s,自然实现了同步对齐。或让视频慢放,延长原2s片段到4s,也可实现对齐。

音频加速实现对齐具体操作方式:

  1. 软件界面中选择"自动音频加速"
  2. videotrans/set.ini 中,将 audio_rate=1.8 改为 audio_rate=100

即可实现同步,但弊端显而易见,语速忽快忽慢。

视频慢放实现对齐操作:

  1. 取消软件界面中的"自动音频加速"
  1. videotrans/set.ini中,将 video_rate=20调整为video_rate=50

这样也可实现对齐,语速保持不变,视频慢放,但同样视频变的忽快忽慢。

如果你只是想要单纯的对齐,不在意效果,可以采取这两种方式。

更好的可接受的同步方法

很显然上面的同步方式没有实用性,音频太快或视频太慢都难以接受,体验太差。为了更好的效果,可以同时启用 "自动音频加速"、"语音前后扩展"、"视频慢速",这三项内容。

具体操作:

  1. 软件界面中选中"自动音频加速"、"语音前后扩展",同时设定一个较小的总体加速值,比如 10%
  1. videotrans/set.ini中通过变量audio_rate为音频加速设置一个最大值,防止加速太快,默认是1.8,audio_rate=1.8,即最大语速加速到正常的1.8倍,你可以手动修改为2或1.5等大于1的数值。
  2. videotrans/set.ini中通过变量video_rate为视频慢速设置一个最大值,防止慢放太慢,默认是20,video_rate=20, 即慢放到正常的0.05倍。你可以改为 2或5等大于1的数值。
  3. 在上述1-3的操作后,仍然可能不对齐,因为限定了最大值,当达到最大值还未对齐,就会放弃而直接后延,那么可以继续通过将变量 remove_silence=true设为 true,变量remove_srt_silence=false改为 true,变量remove_white_ms=0设为 100 或 200,来进一步对齐。

remove_silence:涵义是去除配音的前后静音,以缩减配音时长

remove_srt_silence :是当原始字幕时长大于当前配音时长时,移除多余的静音,比如原时长5s,配音后3s,是否移除这2s静音

remove_white_ms:移除2条字幕间的静音长度ms,比如100ms,即如果两条字幕间的间隔大于100ms时,将移除100ms

上述3个变量的共同作用都是去除静音片段,缩减配音时长,以避免配音后延,尽量使配音对齐。

在进行上述1-4步操作后,效果应该会好很多,当然这也会引入新的问题,例如: remove_srt_silence=trueremove_white_ms=100 的使用,使原本的字幕静音间隔缩短,后边语音的开始时刻提前,可能导致语音已经播放了,说话人还未张嘴。

有没有完美同步方法

除了人工参与手动处理,比如精简翻译、添加过渡画面等,目前尚未找到可以程序自动化实现的完美方法。

要同时保证在很长或很短的视频中,在任意语言翻译配音中,通过程序自动化实现 "音频加速范围可接受"、"视频慢速范围可接受"、"张嘴闭嘴时刻和语音起始时刻吻合" 这几个目标,目前看来似乎是个不可能完成的任务。除了人工参与调整,并无完美方法。

如果你有思路,欢迎留言讨论。

相关推荐
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
ClkLog-开源埋点用户分析8 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
funnyZpC11 小时前
quartz集群增强版🎉
java·分布式·开源·集群·定时任务
vvw&17 小时前
如何使用Netdata部署高性能的服务器监控平台
linux·运维·服务器·docker·开源·服务器监控·netdata
Goboy1 天前
0帧起步:3分钟打造个人博客,让技术成长与职业发展齐头并进
程序员·开源·操作系统
Kagol1 天前
🎉TinyVue v3.19.0 正式发布!Tree 组件终于支持虚拟滚动啦!UI 也升级啦,更更符合现代审美~
前端·vue.js·开源
工作不忙1 天前
关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法
开发语言·c++·windows·开源·开源软件