Python解决女朋友看电影没字幕的需求

 

一、故事情节

是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼。

我急中生智,紧急的解决了我女朋友的需求。

想到了使用Python做一个可以识别语音,然后翻译出来文字的软件。

 

 

如下图就是本片文章所要完成的效果,哈哈,是不是还不错,很棒的样子。

如果有兴趣可以给我点个赞,之后带来更多好玩、有趣的demo和实现的教程。

《甄嬛传》第一集的某一小段:

 

 

其实,是这样子的:

最近剧荒,偶然翻出了曾经下载的电视剧回味一番,经典就是经典,不论是剧情还是台词,都那么有魅力,咦?等等,台词,台词……作为一个IT从业者,我忽然灵光一现——现在语音识别技术这么发达,能否有什么办法能帮我保存下一些精彩桥段的台词呢?或许我也可以是个野生字幕君:p ,似乎也可以在此基础上顺手再翻译一下个别难懂的台词!

略加思索,我大概有了个想法——做个视频中提取音频的程序,而后去请求一个开放的语音识别API来帮我把语音转为文字。鉴于之前调用有道智云的愉快经验,我决定再次拿来为我所用,很快做出了这个demo(请忽略这丑丑的界面布局,能用就行……)。

 

 

欢迎关注我,一块来履行我之前的承诺,连更一个月之内,把几篇写完。

 

、开发前的准备工作

首先,是需要在有道智云的个人页面上创建实例、创建应用、绑定应用和实例,获取调用接口用到的应用的id和密钥。具体个人注册的过程和应用创建过程详见文章不到100行代码搞定Python做OCR识别身份证,文字等各种字体

 

 

 

三、开发过程详细介绍

下面介绍具体的代码开发过程。

 

(一)接口规范说明

首先分析有道智云的API输入输出规范。根据文档来看,调用接口格式如下:

有道语音识别API HTTPS地址:

 
 

https://openapi.youdao.com/asrapi

接口调用参数:

其中q为base64编码的待识别音频文件,“上传的文件时长不能超过120s,文件大小不能超过10M”,这点需要注意一下。

API的返回内容较为简单:

 

(二)项目开发

这个项目使用python3开发,包括maindow.py,videoprocess.py,srbynetease.py三个文件。

界面部分,使用python自带的tkinter库,提供视频文件选择、时间输入框和确认按钮;

videoprocess.py:来实现在视频的指定时间区间提取音频和处理API返回信息的功能;

srbynetease.py:将处理好的音频发送到短语音识别API并返回结果。

 

1、界面部分的实现

界面部分代码如下,比较简单。

其中sure_btn的绑定事件start_sr()做了简单的异常处理,并通过弹窗打印最终的识别结果:

 

2、处理音视频功能开发

(1)在videoprocess.py中,我用到了python的moviepy库来处理视频,按指定起止时间截取视频,提取音频,并按API要求转为base64编码形式:

(2)处理好的音频文件编码传到封装好的有道智云API调用方法中:

 

3、发送数据翻译功能的开发

srbynetease.py中封装的调用方法比较简单,按API文档“组装”好data{}发送即可:

 

四、效果展示

随手打开《甄嬛传》第一集的某一小段试试:

 

 

效果可以,断句的一点小瑕疵可以忽略。没想到这短语音识别API博古通今,古文语音识别也这么溜,厉害厉害!

如果需要获取本文代码 加群928874516

 

五、总结

一番尝试带我打开了新世界的大门,从今天开始我可以是一个不打字却能搬运字幕的野生字幕君了,后面再有时间可以试试识别完翻译成其他语言的操作,嗯,是技术的力量!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值