方法 | 外文视频中文字幕生成
很多伙伴在翻译外文视频时,可能会遇到这样一个难点,即这些视频没有提供字幕。
因为没有字幕,在翻译和合成视频上会有两大困难,一方面需要逐句看视频并创建字幕,另一方面需要把字幕时间和视频内容对应起来。
以上两方面的工作,若用手工来操作的话,会耗费我们大量的时间,而且效果并不定好。
为了解决以上问题,今天我给伙伴们介绍一种字幕生成法。如果各位掌握这种方法,将极大提升工作效率和效果。
这个方法涉及两个步骤,分别是字幕生成和格式转换。
第一步 字幕生成
在使用此方法前,大家需要下载剪映软件
在使用时,先导入视频后,把视频添加到编辑区,如下:
当点击按钮后,剪映开始识别并生成字幕
第二步 格式转换
因为剪映生成字幕的文件是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