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

Python|使用PIL增强视频画质 1、安装pillow和opencv-python pip install opencv-python pip install pillow 2、用opencv一帧一帧读取视频 3、用PIL进行画质增强 主要是用ImageEnhance类 阅读详情

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

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:961562169

文章目录

 

一、故事情节

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

其实,是这样子的:

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

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

在这里插入图片描述

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

序号预计完成时间开发dome名字以及功能&发布文章内容是否已写完文章链接
19月3文本翻译,单文本翻译,批量翻译demo。已完成优快云:点我直达 
微信公众号:点我直达
29月11OCR-demo,完成批量上传识别;在一个demo中可选择不同类型的OCR识别《包含手写体/印刷体/身份证/表格/整题/名片),然后调用平台能力,具体实现步骤等。已完成优快云:点我直达
微信公众号:
310月27语音识别demo,demo中上传—段视频,并截取视频中短语音识别-demo的一段音频进行短语音识别 优快云:
微信公众号:
49月17智能语音评测-demo 优快云:
微信公众号:
59月24作文批改-demo 优快云:
微信公众号:
69月30语音合成-demo 优快云:
微信公众号:
710月15单题拍搜-demo 优快云:
微信公众号:
810月20图片翻译-demo 优快云:
微信公众号:
     

二、开发前的准备工作

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

在这里插入图片描述

三、开发过程详细介绍

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

(一)接口规范说明

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

有道语音识别API HTTPS地址:

https://openapi.youdao.com/asrapi

接口调用参数:

字段名类型含义必填备注
qtext要翻译的音频文件的Base64编码字符串True必须是Base64编码
langTypetext源语言True支持语言
appKeytext应用 IDTrue可在 应用管理 查看
salttextUUIDTrueUUID
curtimetext时间戳(秒)true秒数
signtext签名,通过md5(应用ID+q+salt+curTime+密钥)生成True应用ID+q+salt+curTime+密钥的MD5值
signTypetext签名版本Truev2
formattext语音文件的格式,wavtruewav
ratetext采样率, 推荐 16000 采用率true16000
channeltext声道数, 仅支持单声道,请填写固定值1true1
typetext上传类型, 仅支持base64上传,请填写固定值1true1

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

API的返回内容较为简单:

字段含义
errorCode识别结果错误码,一定存在。 详细信息参加 错误代码列表
result识别结果,识别成功一定存在

(二)项目开发

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

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

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

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

1、界面部分的实现

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

root=tk.Tk()
root.title("netease youdao sr test")
frm = tk.Frame(root)
frm.grid(padx='50', pady='50')

btn_get_file = tk.Button(frm, text='选择待识别视频', command=get_file)
btn_get_file.grid(row=0, column=0,  padx='10', pady='20')
path_text = tk.Entry(frm, width='40')
path_text.grid(row=0, column=1)

start_label=tk.Label(frm,text='开始时刻:')
start_label.grid(row=1,column=0)
start_input=tk.Entry(frm)
start_input.grid(row=1,column=1)

end_label=tk.Label(frm,text='结束时刻:')
end_label.grid(row=2,column=0)
end_input=tk.Entry(frm)
end_input.grid(row=2,column=1)

sure_btn=tk.Button(frm, text='开始识别', command=start_sr)
sure_btn.grid(row=3,column=0,columnspan=3)
root.mainloop()

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

def start_sr():
    print(video.video_full_path)
 if len(path_text.get())==0:
        sr_result = '未选择文件'
    else:
        video.start_time = int(start_input.get())
        video.end_time = int(end_input.get())
        sr_result=video.do_sr()

    tk.messagebox.showinfo("识别结果", sr_result)

2、处理音视频功能开发

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

def get_audio_base64(self):
    video_clip=VideoFileClip(self.video_full_path).subclip(self.start_time,self.end_time)
    audio=video_clip.audio
    result_path=self.video_full_path.split('.')[0]+'_clip.mp3'
    audio.write_audiofile(result_path)
    audio_base64 = base64.b64encode(open(result_path,'rb').read()).decode('utf-8')
    return audio_base64

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

def do_sr(self):
    audio_base64=self.get_audio_base64()
    sr_result=srbynetease.connect(audio_base64)
    print(sr_result)
    if sr_result['errorCode']=='0':
        return sr_result['result']
    else:
        return "Something wrong , errorCode:"+sr_result['errorCode']

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

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

def connect(audio_base64):
    data = {}
    curtime = str(int(time.time()))
    data['curtime'] = curtime
    salt = str(uuid.uuid1())
    signStr = APP_KEY + truncate(audio_base64) + salt + curtime + APP_SECRET
    sign = encrypt(signStr)
    data['appKey'] = APP_KEY
    data['q'] = audio_base64
    data['salt'] = salt
    data['sign'] = sign
    data['signType'] = "v2"
    data['langType'] = 'zh-CHS'
    data['rate'] = 16000
    data['format'] = 'mp3'
    data['channel'] = 1
    data['type'] = 1

    response = do_request(data)

    return json.loads(str(response.content,'utf-8'))

四、效果展示

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

在这里插入图片描述

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

五、总结

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

Python练手项目之字幕识别 是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼。 我急中生智,紧急地解决了我女朋友的需求。想到了使用 Python 做一个可以识别语音,然后翻译出来文字的软件。 下图就是本篇文章所要完成的效果: 《甄嬛传》第一集的某一小段: 二、开发前的准备工作 首先,是需要在有道智云的个人页面上创建实例、创建应用、绑定应用和实例,获取调用接口用到的应用的 id 和密钥。具体个人注册的过程和应用创建过程详见文章不到 100 行... 阅读详情

相关推荐

视频去水印或字幕【通用】

文件结构 安装库 moviepy1.0.3 numpy1.21.5 opencv_python==4.5.5.62 安装库方法 pip install moviepy==1.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install numpy==1.21.5 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install opencv_python==4.5.5.62 -i h

Coder的博客 4841

python自动翻译视频字幕_python利用google翻译字幕文件方法代码示例

本篇文章小编给大家分享一下python利用google翻译字幕文件方法代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。首先加载模块pip uninstall googletransgit clone https://github.com/BoseCorp/py-googletrans.gitcd ./py-googletrans &&...

weixin_42349182的博客 830

连肌肉颤动都清晰可见!3D人体模型自动生成算法,一作来自北大图灵班 | SIGGRAPH...

我们在打游戏、看动漫的时候,遇到过不少这样的情况:感觉哪里不太对……现在,这些3D人体模型可以得到改进了~体态更逼真、...

迈微AI研习社 · 号主 903

处理网页视频中的字幕

我们经常看一些网页、美剧,或者一些英文课程、新闻、只有英文字幕,但是如果通过语音识别,有时候又会存在不太准确的问题,没有想到还可以通过扑捉设定区域,自动把英文字幕采集出来,显示中文字幕,、 步骤二:画出需要识别的区域,可以是网页,可以是视频播放器,注意该区域不要有遮挡物即可 软件会出现,预览识别区域,确定你的区域设置是否正确,然后点击【启动识别】 识别效果真是惊艳无比!瞬间让我们的英文字幕,变...

lazy_minmin的博客 1945

Python音视频编辑利器: MoviePy中文教程及可执行工具下载

总之,MoviePy是一个非常强大的音视频处理库,无论你是想要完成简单的音视频合并,还是想要添加复杂的特效和滤镜,MoviePy都能够帮助你实现。在Python中,MoviePy是一个非常强大的音视频剪辑库。对于想要学习音视频处理的开发者来说,MoviePy不仅简单易用,而且还提供了丰富的API文档,便于开发者快速入门。如果你需要在代码中添加特效,MoviePy也为开发者提供了非常丰富的API接口,让你可以轻松地实现各种特效效果。然后,我们添加了一个文本标签,并将其和拼接好的视频合并在一起,最后使用。

2301_79366177的博客 540

【电力电子控制】基于强化学习的单相逆变器并网电流控制

本文将尝试以 DQN(Deep Q-Network)为例,设计并训练一个面向单相逆变器的智能控制器,实现对并网电流的精准调节。

weixin_62596197的博客 463

MoviePy - 中文文档1-下载与安装

其实还有更简单的办法,让你快速使用MoviePy,告别繁琐的安装步骤,点击传送门 下载与安装 回到目录 1.环境确认 首先,确保当前系统中Python版本在2.7以上,pip正常工作 对于Mac用户,系统自带python,有可能大家会自己安装python,比如我是使用python3.7,系统中同时存在python2.7和3.7,在下面的过程中,如果使用python3来安装moviep...

ucsheep-You see sheep! 1万+

VMwareWorkstation安装UOS系统(1070版本)教程

UOS系统是一款国产信创操作系统。目前市面上主流的系统版本是1070,下面我们用虚拟机来安装一下这款系统。

欲买桂花同载酒的博客 4298

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

一、故事情节 是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼。 我急中生智,紧急的解决了我女朋友的需求。 想到了使用Python做一个可以识别语音,然后翻译出来文字的软件。 如下图就是本片文章所要完成的效果,哈哈,是不是还不错,很棒的样子。 如果有兴趣可以给我点个赞,之后带来更多好玩、有趣的demo和实现的教程。 《甄嬛传》第一集的某一小段: 其实,是这样子的: 最近剧荒,偶然翻出了曾经下载的电视剧回味一番,经典就是经典...

y4544159的博客 1322

拆解人形机器人:核心硬件与驱动系统

本文深入解析人形机器人的核心硬件系统,将其类比为"骨骼+肌肉+神经"的集成体。重点介绍了三大关键组件:驱动单元(无框力矩电机和空心杯电机)、传动单元(谐波减速器和行星滚柱丝杠)以及感知单元(力矩传感器、编码器和IMU)。文章指出一体化关节模组正成为行业趋势,能够实现更紧凑的结构和更高的可靠性。同时分析了硬件价值量分布,强调丝杠、电机等部件是当前技术高地和成本重心。最后指出随着技术进步,机器人价值将更多向"大脑"和"神经"转移。

小明的博客 1529

MTK6769平台Type-C充电全解析:从硬件管脚到PD协议实战(Android15环境)

本文深入解析了MTK6769平台在Android 15环境下Type-C充电的完整链路。从硬件管脚(特别是核心的CC引脚)功能与连接,到USB-PD协议报文抓取与实战分析,并结合MTK平台PD芯片驱动与充电IC驱动的软件框架,提供了从硬件设计到软件调试的系统性解决方案和常见问题排查案例。

ol78901234的博客 311

python自动关闭弹窗字幕_用Python解决女朋友看电影没字幕的需求

用Python解决女朋友看电影没字幕的需求一、故事情节二、开发前的准备工作三、开发过程详细介绍(一)接口规范说明(二)项目开发1、界面部分的实现2、处理音视频功能开发3、发送数据翻译功能的开发四、效果展示五、总结一、故事情节是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼。我急中生智,紧急的解决了我女朋友的需求。想到了使用Python做一个可以识别语音,然后翻译出来...

weixin_34119722的博客 646

Ollama最新快速上手指南:从安装到精通本地AI模型部署

想让Ollama跑你的"私房模型"?三种主流格式全支持,总有一款适合你!GGUF格式(推荐新手首选)创建Modelfile文件:执行创建命令:运行你的专属模型:PyTorch/Safetensors格式(适合进阶玩家)先用库测试模型能否正常加载确保模型结构完整后再导入Ollama官方文档有详细转换指南专业小贴士GGUF格式最轻量,PyTorch最灵活,Safetensors最安全遇到问题?试试用llama.cpp进行格式转换7B参数模型推荐使用q4_0量化级别想让AI用马里奥。

全世界的博客 2309

python base64编码_用Python解决女朋友看电影没字幕的需求

用Python解决女朋友看电影没字幕的需求一、故事情节二、开发前的准备工作三、开发过程详细介绍(一)接口规范说明(二)项目开发1、界面部分的实现2、处理音视频功能开发3、发送数据翻译功能的开发四、效果展示五、总结一、故事情节是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼。我急中生智,紧急的解决了我女朋友的需求。想到了使用Python做一个可以识别语音,然...

weixin_39593519的博客 866

TGRS 2026 即插即用 | 注意力篇 | SCFM:双向交叉显著性引导注意力,高层语义与低层细节的双向互补!

本文介绍了MPCNet中的语义引导交叉注意力融合模块(SCFM),该模块通过双向交叉显著性引导机制实现跨尺度特征融合。SCFM创新性地结合了高层语义和低层细节的互补信息,通过轻量局部空间注意力预增强和坐标注意力全局融合引导,显著提升了红外小目标检测的精度。实验表明,SCFM在多个数据集上达到SOTA性能,同时保持轻量高效的计算特性,支持端侧设备部署。 SCFM的核心贡献包括: 双向交叉显著性引导机制,实现语义与细节的互补融合 轻量局部空间注意力预增强模块,计算量仅为传统方法的1/10 坐标注意力全局融合引导

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 147

一键生成Microsoft Store应用直链下载:绕过商店故障的终极方案

遇到商店无法加载时,复制链接 → 粘贴到Adguard → 下载主程序包 → 开启开发者模式安装。整个过程耗时不超过2分钟,彻底摆脱商店依赖!

安德洛夫 2187

python 获取文件大小_Python解决女朋友看电影没字幕的需求

一、故事情节是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼。我急中生智,紧急的解决了我女朋友的需求。想到了使用Python做一个可以识别语音,然后翻译出来文字的软件。如下图就是本片文章所要完成的效果,哈哈,是不是还不错,很棒的样子。如果有兴趣可以给我点个赞,之后带来更多好玩、有趣的demo和实现的教程。《甄嬛传》第一集的某一小段:其实,是这样子的:最近剧荒,偶然翻...

weixin_39605905的博客 690

ZYNQ PS裸机开发RS485

RS485 是一种通用的通信标准,广泛用于数据采集和控制应用中。它的主要优点之一是它允许将多个 RS485 设备放在同一条总线上,这使得多个节点可以相互连接。RS-485是美国电子工业协会(EIA)在1983年批准了一个新的平衡传输标准(balanced transmission standard),EIA一开始将RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,已将RS改为EIA/TIA。

baidu_34971492的博客 831

女朋友看电影没字幕,让我想办法搞定!谁让我是程序员呢!

一、故事情节 是这样子的,女朋友晚上突然翻到了自己喜欢看的一个电影,但是没有字幕,这让她很苦恼。 我急中生智,紧急的解决了我女朋友的需求。不然还真不能上床睡觉 想到了使用Python做一个可以识别语音,然后翻译出来文字的软件。 如下图就是本片文章所要完成的效果,哈哈,是不是还不错,很棒的样子。 如果有兴趣可以给我点个赞,之后带来更多好玩、有趣的demo和实现的教程。 《甄嬛传》第一集的某一小段: 其实,是这样子的: 最近剧荒,偶然翻出了曾经下载的电视剧回味一番,经典就是经典,不论是剧

爬遍所有网站 2711

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

基于python Moviepy的视频字幕识别和合成!

前言:前几天看到一篇《用Python解决女朋友看电影没字幕的需求》,觉得很有意思。但是有道的识别没有做过,找了下其他的接口,发现讯飞的识别比较准确。就做了这个小程序。 讯飞接口:https://console.xfyun.cn/services/lfasr 申请api和SK。 免费时长:新用户可识别的视频时长能达到5个小时。用多少算多少。一个月的有效期。 下载调用示例demo:https://www.xfyun.cn/doc/asr/lfasr/API.html#%E8%B0%83%E7%94%A8%E7

zxl7725103的博客 5323

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何使用OpenCV的处理图像,文字变得锐利和清晰?(How to use OpenCV to process image so that the text become sharp and clea

问 题 Wanted to achieve something like this: http://www.leptonica.com/binarization.html While searching for solutions, most of the answers were general instructions such as advise to look

huobanjishijian的专栏 1万+

几行代码,实现Python捕获、播放和保存摄像头视频

今天先分享一下 Python 操作视频最基本的操作,包括读取和播放视频和保存视频。 读取视频 要捕获视频,你需要创建一个 VideoCapture 对象。它的参数可以是设备索引或视频文件的名称。所以,我们读取视频有两种方式,分别是从相机中读取视频和从文件中读取视频。 从相机中读取视频 对于有摄像头的设备,例如带摄像头的笔记本电脑,我们可以直接调起电脑的摄像头,读取摄像头的视频流。 import cv2 as cv cap = cv.VideoCapture(0) if not cap.isOpened():

z099164的博客 1014

【免费下载】 MoviePy 安装和配置指南

### 项目基础介绍 MoviePy 是一个用于视频编辑的 Python 库,支持视频剪辑、拼接、标题插入、视频合成(非线性编辑)、视频处理以及创建自定义效果等功能。它能够读取和写入大多数常见的音频和视频格式,包括 GIF,并且可以在 Windows、Mac 和 Linux 上运行,支持 Python 3.6+。 ### 主要编程语言 MoviePy 主要使用 Python 编程语言。 ## ...

gitblog_07750的博客 5486
上一篇: Python爬虫教程,slenium模拟登陆知乎2020
下一篇: Python通过百度api识别验证码,并结合selenium实现自动登陆功能
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值