给没有字幕的视频或者音频自动生成字幕文件,现阶段没有免费又好用的软件。大致阵营分为两类:
太多了,网上一搜一堆。特点是好用,准确,功能丰富。果然钞能力就是不一样。
没有现成的免费软件。一般网上会告诉你上传youtube后可以自动生成字幕,我发现现在这个功能也没了。还有facebook好像也有(国内视频或者社交网站目前都没有自动生成字幕功能,生成中文字幕应该更复杂且收费)
唯一的希望落在了一个开源项目autosub:
BingLingGroup/autosub: Command-line utility to transcribe/translate from video/audio/subtitles to subtitles (github.com)https://github.com/BingLingGroup/autosub
项目的开源者显然花费了巨大的精力来写代码,然而用户安装也需要一定的技术基础并花费大量的精力。终于理解为什么自动生成字幕的软件都收费了,因为很少有程序员愿意花这么多精力写一个好用的软件却不拿一分钱,而且也很难有不怕麻烦也有点技术基础的人(比如我)愿意折腾这么长时间去用一个开源的免费软件。总之,就是天下没有免费的午餐(还是感谢autosub的开源者)
进入正题,安装方法:
我是用源码安装在windows上面。参考官方说明
BingLingGroup/autosub: Command-line utility to transcribe/translate from video/audio/subtitles to subtitles (github.com)https://github.com/BingLingGroup/autosub#install-on-windows
不推荐用release page封装好的环境直接安装(因为旧版googletrans接口失效)。而且更推荐在ubuntu下面直接pip安装。
windows下源码安装具体步骤如下:
pip install git+https://github.com/BingLingGroup/autosub.git@dev ffmpeg-normalize
现在打开cmd命令行,输入autos ub就应该显示说明文档了,说明安装autosub成功。
为了避免可能出现的报错,可能还需要安装4.0.0版本的googletrans(这也是不用封装好的软件的原因,只有这样下载源码才能用到pip更新googletrans)
pip install googletrans==4.0.0rc1
这其实很简单,官网下载安装并添加环境变量就可以了。参考:
Windows下安装使用ffmpeg - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/118362010打开命令提示符窗口。输入命令“ffmpeg –version”。如果命令提示窗口返回FFmpeg的版本信息,那么就说明安装成功了。
autosub的帮助说明:
autosub -h
autosub -SRC en -S en-US -surl translate.google.com -slp 0.1 -i "E:\a.m4a"
其中-SRC -surl -slp都是新加入的,是为了解决一个JSON object must be str, bytes or bytearray, not 'NoneType'的报错
-SRC后是机器模型识别的语言,-S是识别语言,-D是翻译输出语言,这里不需要翻译,直接输出英语字幕,因此省略-D。-i后面"E:\a.m4a"是待识别的文件路径(音频或者视频或者字幕)
autosub -SRC en -S en-US -D zh-cn -surl translate.google.com -slp 0.1 -i "E:\a.m4a"
同上,字幕输出是英语翻译后的汉语简体。
autosub -SRC en -S en-US -D zh-cn -of bilingual -surl translate.google.com -slp 0.1 -i "E:\audio.m4a"
同上,输出双语字幕。其实用记事本打开输出的srt字幕文件,你就会发现它是英语字幕文件后面接了汉语字幕文件内容。
生成过程展示:
生成过程有点慢,跟文件大小和网速有关(好像要求能连谷歌,fan-qiang请设置全局模式)。
输出srt格式的字幕文件在原文件目录下。
这个识别中文效果怎么样我还不知道。
下一个问题:如何将srt字幕文件和视频合并到一起?这个好像也没有很好用的免费软件?