2021年9月14日

方法 | 外文视频中文字幕生成

作者 awei

很多伙伴在翻译外文视频时,可能会遇到这样一个难点,即这些视频没有提供字幕。

因为没有字幕,在翻译和合成视频上会有两大困难,一方面需要逐句看视频并创建字幕,另一方面需要把字幕时间和视频内容对应起来。

以上两方面的工作,若用手工来操作的话,会耗费我们大量的时间,而且效果并不定好。

为了解决以上问题,今天我给伙伴们介绍一种字幕生成法。如果各位掌握这种方法,将极大提升工作效率和效果。

这个方法涉及两个步骤,分别是字幕生成和格式转换。

第一步 字幕生成

在使用此方法前,大家需要下载剪映软件

在使用时,先导入视频后,把视频添加到编辑区,如下:

然后,点击菜单栏中的「文本」,在左边出现的子菜单中选中「智能字幕」,接着选中「识别文字」栏下的「开始识别」按钮。

当点击按钮后,剪映开始识别并生成字幕

最后生成的字幕存档在「草稿参数」栏中的「保存位置」所指示的目录下

第二步 格式转换

因为剪映生成字幕的文件是json格式,不是通常使用的srt格式。因此我们这一步需要的工作是把该文件转换成srt文件。

在上一步中,剪映会把字幕文件保存在如下目录下:

  • Windows 系统:C:\Users\YourName\AppData\Local\JianyingPro\User Data\Projects\com.lveditor.draft\
  • MacOS 系统:/Users/YourName/Movies/JianyinPro/User Data/Projects/com.lveditor.draft/

其中YourName是指你登陆计算机时使用的用户名。

在转换文件格式,我们可以使用两种方式。第一种方式比较简单,适合于字幕文件比较小的情况;第二种方式适合于字幕文件较大(比如超过100k),这种方式在使用时会稍显复杂,需要用命令行,适合于有一定编程经验的伙伴。

方式一:在线转换

在浏览器中打开网址剪映 – 字幕导出 (mzh.ren)。在左栏中,点击「选择文件」选中待转换格式的文件或把文件内容拷贝到空白区域,然后点击中间的「生成」按钮即可完成格式转换。

方式二 命令行生成

这种方式适合文件比较大的情形。

在使用该方法前,你需要在系统上安装好python。另外还需安装好Jianying-to-srt

其中的main.py有一些问题,可以更改为如下代码:

#! encoding:utf-8 import sys from os import getenv from os.path import join, getctime import glob from draft_content import read_draft_content_src from simple_srt import tracks_to_srt_string from draft_meta_info import get_draft_name_from_content_path if __name__ == '__main__': drafts_parent = join(getenv("LOCALAPPDATA"), './JianyingPro/User Data/Projects/com.lveditor.draft/') print("Parent:" + drafts_parent) #drafts_contents = glob.glob(drafts_parent + './*/draft_content.json') #latest_draft_content = max(drafts_contents, key=getctime) #print('最新创建的剪映草稿文件如下。') #print(latest_draft_content) #draft_content = input("请输入 draft_content.json 的地址,留空则使用上面的文件。>>>") #if not draft_content: # draft_content = latest_draft_content draft_content = drafts_parent + sys.argv[1] + "/draft_info.json" tracks, _ = read_draft_content_src(draft_content) name = get_draft_name_from_content_path(draft_content) subtitle_filename = f'./{name}.srt' with open(subtitle_filename, 'w', encoding='utf-8') as f: f.write(tracks_to_srt_string(tracks)) print(f'请查收 {subtitle_filename}。') input('请按 Enter 继续. . .')

在使用时,需要设置环境变量LOCALAPPDATA为剪映安装目录,比如在我的电脑中为/Users/apple/Movie,则进行如下设置:

export LOCALAPPDATA=/Users/apple/Movies

设置完毕后,运行“python main.py 目录参数”即可进行文件转换。比如我要转换ABCD目录下的文件,输入“python main.py ABC”。

参考网站

1/ 剪映软件:https://lv.ulikecam.com/

2/ 剪映字幕导出网站:https://jy.mzh.ren/

3/ 命令行转换工具:https://github.com/YDX-2147483647/Jianying-to-srt

@2021 对话力 沪ICP备17039467号