python自动生成字幕_语音自动转文字和自动生成字幕

这篇博客介绍了如何利用Python解决生活中常见的语音转文字问题,如地铁听视频、学习英语等。作者通过切割音频文件并使用Baidu的语音识别服务,实现了自动为视频添加字幕的Demo,尤其适用于演讲类视频。项目已上传至GitHub,对于学习英语或音乐的人,此方法能将长音频切割成小片段,便于学习。
摘要由CSDN通过智能技术生成

经常生活中有些痛点。比如坐地铁的时候,如果用耳机看一个没有字幕的视频你会很难受,因为噪声大,你听不清视频里说什么,你也不可能把声音调的非常大,很伤耳朵。看英语视频的时候,如果没有中文字幕,英语水平差,你很难看懂。如果添加英文字幕,有点英语水平的可能能看个大概懂了。日常生活中,你可能有个录音文件,非常希望自动转化成文字。

以上的痛点说痛不痛,但如果有工具能自动帮我们做一些语音到文字的自动化工作该有多好啊。根据视频的语音信息,自动添加字幕youtube很早就有了,而且youtube上可以自动翻译。如果说句话识别成文字 科大讯飞,百度等有许多的产品。但是将很长的音频转成文字或者自动为视频添加字幕,这样自动化的软件并不常见。科大讯飞应该有这样的软件,不知道是不是要收钱。

自己是做软件的,生活中的这些痛点让自己觉得,不如用已有的资源做个添加字幕或者音频转文字的工作吧。于是花了一些时间做了一个Demo,对于一些比较好的视频,比如演讲视频,效果还是不错的。

我用 TED的演讲做了一个Demo,TED演讲者英语清晰,噪音也少:

在我的python脚本中,基本的思路是:

(1)将长语音文件切割成小的语音文件。

(2)直接用Baidu的语音识别,做小文件的语音到文字的识别

(3)小语音文件包括了语音的开始时间和结束时间,所以能做字幕

其实里面比较不容易处理的就是将长文件切割成小的语音文件,经过一些思考有了下面的一个切割过程:

(1)提取wav文件的数据,对数据做一些平滑处理

(2)将数据做归一化处理

(3)设定一个阈值,用来定义用户的停顿阈值(归一化以后我取 0.2)。对于语音的每一个数值超过这个阈值算说话,低于这个算停顿。统计连续的停顿和连续的说话点的长度。

(4)对于所有的统计的长度数据,按照停顿的时间长短排序

(5)按照排序的数据做切割,越靠前面的越是应该被切割。切割什么时候停止?切割以后的所有小音频小于某个指定的指定试讲长度就停止。基本上根据我的经验可以设定这个值为17S左右。

(6)有了这些小音频,就可以用已有的语音识别技术做语音到文字的识别了,甚至添加字幕。

以后也可以加些自动翻译的东西进去。

如果是码农请参见,我的项目:github

如果想听一下切割效果,点击下面链接看百度网盘。切割文件按照 ID_起始时间_结束时间命名的( ID 从1开始)</

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值