最新版本请转下面这篇 [post cid=“210” /]
这是什么
起因是我做视频懒得说话,最多在视频做好后加上字幕,但光有字幕没语音感觉还是差了点意思。市面上有很多文本朗读器,可是我并没有找到一款能朗读字幕的应用,我这里的朗读字幕指语音能自动和字幕时间轴匹配。虽然有几款播放器(potplayer、kmplayer、VLC)自带字幕朗读功能,通过一边朗读一遍录音的话就可以得到我想要的音频,但这种做法过于笨拙。本着学习的目的,我试着用py写了一个小程序实现了字幕朗读的功能。
实现原理
充分利用已有的轮子
代码
写完了发现比想象中要简单,几行代码就搞定了。目前只支持SRT格式的字幕文件,反正字幕文件间可以互相转,对于复杂的字幕可能引发的bug现在一概忽略(比如字幕重叠、一句话语音过长,多轨字幕等)。
另外目前都是单线程,速度可能有点慢,程序可能出现假死无响应状态,只要后台文件一直在增加,大可不用管。(因为语音平台都是限制并发数的,感觉多线程有必要?)
现已添加多线程。
[scode type=“green”]代码地址:https://github.com/kizx/subtitle2audio[/scode]
下载
[button color=“success” icon=“fa fa-download” url=“https://pan.2bboy.com/Public/Software/%E5%AD%97%E5%B9%95%E6%9C%97%E8%AF%BB/” type=""]onedrive下载地址[/button]
[button color=“success” icon=“fa fa-download” url=“https://wws.lanzous.com/b01hhub9g” type=""]蓝奏云下载 密码:gyb3[/button]
使用
[tabs]
[tab name="v1.0 控制台版"]
- 安装依赖
pip install -r requirements.txt - 安装 ffmpeg
- 下载解压ffmpeg
- 将解压的 ffmpeg/bin 路径添加到系统环境变量
- 填写百度 KEY在百度 AI 平台获取相关 KEY ,打开 main.py 填写相应 KEY
- 启动
python main.py [.srt文件][/tab] [tab name="v1.1 web-gui版"] - 安装 ffmpeg
- 下载解压ffmpeg
- 将解压的 ffmpeg/bin 路径添加到系统环境变量
安装依赖
python -m venv venv venv\Scripts\activate pip install -r requirements.txt启动
flask run浏览器打开 http://127.0.0.1:5000/ 获取并填写相关 key 后点击生成,所有生成的文件在 output 文件夹内。
[/tab]
[tab name=“v2.x pyqt-gui版” active=“true”]安装 ffmpeg
- 下载运行 下载地址 使用前需自行获取相关key
由于申请不了谷歌api,目前做不了谷歌接口 报毒请添加白名单或者信任,我自己电脑都报毒→_→,不放心自己下载源码运行
[/tab]
[/tabs]
视频案例演示
后记
后来发现一个有同样功能的软件:http://www.cross-plus-a.com/cn/balabolka.htm 打开工具->字幕转换器功能就是,这功能藏的太隐秘当初都没找到。
后后来发现一个叫字幕说的网站也有类似的服务,不过介绍来看,这个是输入文本,然后生成同步的语音和字幕。虽然节省了做字幕的功夫,但这种只适合那种一刻不停的说的视频,适用性还有待提高(有空我也可以整合实现这种功能)。
