最近在玩自媒体,发现添加字幕很麻烦,所以想自己设计一个自动添加字幕的软件,思路是利用网络上的语音识别引擎进行语音识别,发送音频数据到引擎,返回语音识别数据。
目前市面上的语音识别引擎还是比较多的,主要有百度、腾讯、讯飞,对比之后,发现百度没有录音文件识别,讯飞和腾讯有录音文件的识别,但是讯飞的识别价格比较高,最后选择腾讯的语音识别引擎。
第一步我们需要从视频中分离音频,分离音频我们选择ffmpeg的命令行就可以,人家已经做好了成熟的运行库,拿来主义就可
从视频中分离音频的命令行是
ffmpeg -i E:\a.mp4 -vn -y E:\a.mp3
E:\a.mp4 输入视频路径
E:\a.mp3 输出音频路径
-y:应该是覆盖原文件的意思
-vn:是video no 的意思,就是去掉视频的意思。
这样我们就完成了取出音频的工作,取出音频以后,我们还要对音频进行处理,主要是对音频进行重采样,和分割音频,因为几乎所有的语音识别都需要将音频转换为单通道,16k音频,并且上传音频的大小还有限制,所以下一步我们对音频进行处理
第二步,对音频进行重采样 重采样的命令
ffmpeg -i 输入音频路径 -ac 1 -ar 16000 -y 导出音频路径
这样我们就完成了音频的重采样。
第三步,我们对音频进行分割,因为腾讯语音识别引擎的要求是识别文件的大小不能超过5M,所以我们要对音频进行切割处理,因为ffmpeg没有找到按大小切割的命令,所以我们按时间进行切割
fmpeg -i 输入音频 -ss 开始时间 -t 结束时间 -y -acodec copy 导出音频
开始时间格式:00:00:10
结束时间格式:00:00:20
这样我们就完成了音频的切割,下一步,我们发送语音到识别引擎进行识别,请关注下一篇文章。
软件已经开发完成,下载地址 字幕助手