Python根据语音识别让无字幕视频自动生成字幕!强不强?

 

问题

各大平台都有长语音转写的服务,但是收费昂贵,而且有次数和时间限制。

因此我想到了一个白嫖的好办法。将长音频根据语句停顿切割得到短音频,使用他们提供的短音频识别服务来识别长音频不是更好吗?粗略计算了下,可以使用的时长为50000分钟,白嫖。

至于视频声音的停顿时间也是很容易得到的。

最后根据文字与文字出现的时间很容易就得到了视频的srt字幕

 

解决

工程路径:voice_to_text.zip-互联网文档类资源-CSDN下载

注意字幕导出的地址,自己修改一下,你要是直接复制控制台信息我也无话可说

 

思路

导出视频声音,根据声音停顿得到短句,同时导出短句的时间信息

短句语音识别得到识别文字

识别文字与短句的时间信息处理得到视频srt字幕文件

导入srt字幕文件即可得到效果,如图

播放器推荐暴风影音,文字可以调节变色,大小,位置都比较方便。

 

原先视频是没有字幕的,经过上述处理得到srt文件就如同看字幕电影一样了。

得到的srt文件如图

 

接下来就一步一步开始吧,srt文件格式原理是什么,看我另一篇有关视频声音转为字幕的。那篇使用的长录音转文字接口,优惠力度不大,用几次就没了,所以特意写了这一篇可以白嫖而且时间非常长的,用个几个月都没有问题。

只需要关注srt格式就可以了

python-视频声音根据语音识别自动转为带时间的srt字幕文件_lidashent的博客-CSDN博客

导出音频分片,导出音频时间信息

先将视频声音导出,设定标准为16bit,8000hz,这里使用的au,adobe audition

(—解释—:)【这是短语音识别要求的】

(—解释—:)【这里需要注意的是,虽然切片对人声进行了保留,但是不乏切割到的音频有的是空白,因此需要一个大小判断,低于100kb可以默认为无声】

 

 

自动识别停顿,对声音切片

效果-诊断-标记音频

设置静默阈值,时长越低分片越多,反向同理

声音阈值,时长越长,分片越少,反向同理

设置合适的阈值,注意自动分割的音频片,极限60s,最好不要超过45s

有音频片长度过长也不行,影响字幕观看,你不想看视频的时候视频上都是字幕吧?我一般看到分片间隔10s就够了

然后点击扫描,

再点击全部标记,就会显示灰色的标记信息

 

点击到标记条,可以看到分片信息,

ctrl a全选,然后右键选择导出音频,导出csv

 

 

 

 

编写函数,对语音分片实现语音识别,得到文字信息

import os

from aip import AipSpeech#这是百度的aip包,

def get_need_music_file(file_path):

file_list=os.listdir(file_path)

real_list=[]

for i in file_list:

if i[-3:]=="wav":

real_list.ap

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值