发现一个问题,做了视频,没有字幕,大家听着我的8级川普肯定特难受。
于是有了下边的内容,决定给视频加上字幕,还是用Python来实现。
好像还可以,代码整理完毕
先看下一readme
Python实战案例6-自动化办公如何给视频添加字幕
*************************************
# 需求分析
视频已经做好,不会再重新剪辑,如何给原视频加上字幕,我们用Python来实现。
我们的思路就是提取音频,进行语音识别,生成字幕文本,原视频+字幕重新组合成有字幕的视频。
改进后是先把音频分片,再识别组装,大大提高了字幕时序匹配程度。
# 程序逻辑
提取音频》切割音频~分段识别》生成srt字幕》重新组合视频》输出目标视频
# 核心技术
pydub, ffmpeg , [百度aip](https://ai.baidu.com/ai-doc/SPEECH/Vk38lxily)
* 提取音频 (一)
`ffmpeg -i input.mp4 -f mp3 output.mp3`
* 生成srt字幕文件(二)
实现函数
`gen_srt`
* 重新组合视频 (三)
`ffmpeg -i input.mp4 -vf subtitles=words.srt -y output.mp4`
* 以下为关键音频处理函数
from pydub.silence import split_on_silence
from pydub.silence import detect_nonsilent
# 运行环境
bin目录需要加入到环境变量
# 运行命令
**需要顺序执行**
`python exec.py gen_mp3 {videopath}` 提取mp3音频
`python exec.py gen_srt {videopath}` 生成srt字幕
`python exec.py gen_video {videopath}` 重新合成新的视频
*本案例代码仅用于学习交流,请勿用于商业*
##### 编程学习交流平台 [括知星球](https://www.kozmos.cn)
##### 编程学习交流Q群 `922484347`
***
*本课程案例源码已发布至 www.kozmos.cn*
核心一点就是普通话了, 不标准自然就很多错别字,然后就是断句,语速过快过慢都会有影响字幕的显示。
看一下效果
二、优化字幕显示
由于音频没有做切割,字幕时序会有问题,目前在优化程序以适应快速的语速。
Ok , 优化结束,来看一下效果