自动化字幕制作工程
date
Mar 16, 2024
slug
auto-subtitles
status
Published
tags
Website
summary
记录一下字幕制作自动化的个人流程
type
Post
网址
URL
记录一下字幕制作自动化的个人流程,这里的字幕是相对比较复杂的场景,比如下面这种情况:

说是自动化,其实用起来也是相当麻烦,后续有需求再看看怎么优化吧;
前期准备
需要准备的材料:
1、一张字幕框底图:

2、带角色名的txt文本
每一行构成: 角色名:台本内容(注意分割符“:”,后续python脚本中需要指定对应的分隔符,另外每一行的字数不宜过多,保证能全部显示在字幕框中)

3、不带角色名的txt文本
注意这里的每一行和上面txt文本中每一行台本内容要对应上
这个文本也可以在后续的脚本中自动生成;

4、音频文件
尽量使用纯人声的音频文件,可以提高后续自动打轴的识别精度;
需要使用的工具:
1、Arctime Pro
个人非常推荐的字幕打轴软件,付费,但是也不贵,15分钟的音频自动打轴,需要大概5块钱;支持语音识别+自动打轴,对于没有台本的情况非常实用;
2、python
自动化工程主体部分是基于python脚本,需要了解python安装和运行,具体脚本代码会给出;
制作流程
制作的基本思路是:1、先使用Arctime Pro进行打轴,得到含有字幕时间序列的XML文件;2、使用python的PIL库进行图片处理,将角色名和台本内容叠到字幕框图上,得到特定样式的字幕PNG文件;3、将XML序列中的字幕链接到python生成的png文件;
制作字幕时间序列XML文件

自动识别出来的轴还是需要自己手动微调,调整完成后导出XML+PNG

现在得到了带有时间序列的字幕轴XML文件;
批量生成带有角色名和台词的PNG文件
这一步直接使用编写好的脚本,修改对应的参数即可
修改参数后,执行
得到叠加了角色名和台词的PNG文件;

链接PNG图片到XML序列中
这一步非常简单,因为在脚本批量生成时图片的命名已经修改为xml中指定的命名规则,将生成的png文件全部复制到xml文件所在的文件夹,全部替换即可;

在使用时,将xml文件拖入pr中,就可以获得打好轴的特定样式字幕!
