python实现给视频添加字幕,并根据字幕添加语音

文章目录

  • 前言
  • 一、"pyttsx3"实现“文字到音频”的转换
  • 二、"pydub"处理音频
    • 1.安装
    • 2.测试
  • 三、“moviepy”合成字幕和音频
    • 1.安装
    • 2.测试
  • 总结


前言

最近尝试用python实现给一个视频添加字幕和语音,查了很多博客后有了一个拼拼凑凑的方法:

  1. 使用"pyttsx3"来实现“文字到音频”的转换;
  2. 使用"pydub"来对得到的音频进行加工和处理;
  3. 使用"moviepy"来合成字幕和语音文件。

(注:本篇仅作为个人小白的学习记录)


一、"pyttsx3"实现“文字到音频”的转换

pyttsx3是一个很方便的实现从“文字”到“语音”的库,安装和使用都很简单,windows下安装只需要:

	pip install pyttsx3

如果要简单实现“文字段”的语音播放也很简单:

import pyttsx3
#	语音模块初始化
engine = pyttsx3.init()
#	设置要播报的字符串
text = "哈哈哈哈哈哈"
engine.say(text)
#	等待运行
engine.runAndWait()

还可以在这基础上将音频文件保存下来:

outFile = "output.aiff"
engine.save_to_file(text, outFile)
#	注意下面这句不能少,否则无法正常生成音频文件
engine.runAndWait()

这里需要注意的一点是,使用pyttsx3能够将文字转为音频,但是其编码格式特殊,保存下来的文件也是"aiff"格式的音频文件,所以如果要使用"MP3"格式则需要pydub中的AudioSegment模块来对其进行更改:

AudioSegment.from_file(outFile).export("Python.mp3", format="mp3")

当然,我也尝试了强行利用“save_to_file”将文件保存为“MP3”格式,虽然能够正常播放,但是这个文件是存在问题的(比如后面使用pydub进行处理的时候会因为无法读入而报错)

参考博客:https://blog.csdn.net/qq_19394437/article/details/97567298?spm=1001.2014.3001.5506

二、"pydub"处理音频

1.安装

pip install pydub

安装完pydub之后还需要安装ffmpeg,可以选择去github下载安装包,我这里给出网盘分享(某位老哥分享了网盘链接,我找不到原文链接了抱歉)

链接: https://pan.baidu.com/s/1dsE8p9YL-ji48Mg0vTfaMA
提取码: irxi

解压后在bin文件夹下有以下三个文件:
在这里插入图片描述
复制bin文件路径,添加到环境变量中,然后在cmd窗口运行如下命令:

ffmpeg -version

若正常输出则代表安装完了
在这里插入图片描述
(当然这里安装完了,在后面实际使用的时候还可能会出问题)

2.测试

from pydub import AudioSegment#	读入MP3音频文件
audio = AudioSegment.from_mp3('Python.mp3')#	简单加一段空白(静音)片段
X = 2000	#ms
silent = AudioSegment.silent(duration=X)
new_audio = silent + audio#	保存文件
new_audio.export("new_Python.mp3", format="mp3")

代码运行到这里一般都会报错,类似于"RuntimeWarning: Couldn’t find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn(“Couldn’t find ffmpeg or avconv - defaulting to ffmpeg, but may not work”, RuntimeWarning)”,或者是"RuntimeWarning: Couldn’t find ffprobe or …"

我也不知道具体为什么,可能是因为环境路径的问题?
直接给出解决办法:

报错应该会给一个"pydub"中的一个叫“utils.py”文件的路径,
第一步:找到该文件
第二步:找到一个叫"which(program)"的函数
第三步:添加前面下载的"ffmpeg"的“bin”文件路径
第四步:重启电脑

补充(第三步实例):
在这里插入图片描述
重启后应该能够正常运行了。

三、“moviepy”合成字幕和音频

1.安装

pip install moviepy
#	实际上安装moviepy的时候会自动安装下面两个库
pip install imageio
pip install imageio-ffmpeg

另外需要单独安装ImageMagick软件并添加到环境变量中

2.测试

from moviepy.editor import *def videocaption(src_mp4, dst_mp4, dottemp):# input:#   src_mp4: the path of wait-to-dispose video#   dst_mp4: the path of after-dispose video#	dottemp--字幕列表['text1','text2','text3',...]#	加载视频video = VideoFileClip(src_mp4)# 逐句添加字幕time = [2,2,2,...]	#	字幕持续时间,自行设置start = [4,6,8,10,...]	#	字幕开始时间,自行设置position = ['bottom','center',...]	#	显示位置,自行设置txts = []for si,sentence in enumerate(dottemp):txt = (TextClip(sentence, fontsize=40,font='SimHei', size=(1900, 40),align='center', color='red').set_position(position[si]).set_duration(time[si]).set_start(start[si]))txts.append(txt)# 合成字幕video = CompositeVideoClip([video, *txts])# 合成音频videos = video.set_audio(AudioFileClip('Python.mp3'))# 保存视频,注意加上参数audio_codec='aac',否则音频无声音videos.write_videofile(dst_mp4, audio_codec='aac')if __name__ == '__main__':#	输入输出路径src_mp4 = r'input.mp4'dst_mp4 = r'output.mp4'#	字幕列表dottemp = ['test1','test2','test3']#	合成视频videocaption(src_mp4,dst_mp4,dottemp)

代码可能会有点问题,自行调试修改

参考博客:https://blog.csdn.net/dongfuguo/article/details/104939046?spm=1001.2014.3001.5506


总结

新手上路,小心谨慎,收获良多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53330.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手把手教会你视频转文字怎么操作,快来get

由于近几年不可抗力的因素,许多课程以及会议都转变为线上的形式,那你们有没有遇到以下这几个情况:老师讲课的语速的过快,导致记知识点的速度跟不上;又或者是领导开会时,中间还夹杂着他人不同的观点&#xf…

PC端视频中语音实时转文字

PC端视频中语音实时转文字 Win系统语音功能设置 设置哪些软件可以使用麦克风 设置语音输入来源 全局设置 局部软件设置 总结 TOC PC端视频中语音实时转文字 我比较喜欢看视频来学习,特别是那些基础的技术,但是我又有做笔记的习惯,因此一边看…

用GPT4写2023高考语文作文,新课标I卷,Ⅱ卷

文章目录 新课标Ⅰ卷新课标Ⅱ卷总结 每年的高考语文题目都会是热议的话题,今年同样也不例外。但是今年讨论的话题除了作文题目本身之外,对于chatgpt写出的作文会是什么样子的也​让广大网友同样期待 新课标Ⅰ卷 好的故事,可以帮我们更好地表达…

九龙证券|沪指收获2010年以来最强1月 北向资金净买入额刷新历史纪录

昨日,A股小幅调整,2023年1月行情随之收官。全体来看,1月A股商场拾级而上,盘面出现普涨格局,价值与生长风格均有亮眼体现。三大股指中,上证指数1月上涨5.39%,创2010年以来最佳局面。深证成指、创…

发送邮件那些事

邮件历史 世界的第一封电子邮件 1969年10月世界上的第一封电子邮件是由计算机科学家Leonard K.教授发给他的同事的一条简短消息。 据《互联网周刊》报道世界上的第一封电子邮件是由计算机科学家Leonard K.教授发给他的同事的一条简短消息(时间应该是1969年10月),…

对邮件发送系统的深刻解析(一般程序员都不一定搞的懂)

前言 在几年以前,相信不少朋友都听说过,马云同志创办阿里巴巴的时候,还不会发邮件。也不知道在阿里巴巴上市之后,他学会收发邮件了没有!呵呵。我是曾经从内心里“瞧不起”过,至少认为在这一点上我比他强很多…

使用python在Lotus Notes发送邮件

使用python在Lotus Notes发送邮件 环境: 1、python 2.7.9 2、Lotus Notes 8.5 说明: 1、server_name地址查看步骤: 登录邮箱—>文件—>场所—>管理场所—>编辑—>服务器—>宿主/邮件服务器 2、db_name查看步骤&#xff…

Linux发送邮件

linux、ubuntu系统发送邮件,linux系统配置邮箱,linux配置qq邮箱 一、打开qq邮箱,开启smtp服务 按如下操作,发完短信后,点击我已发送,这是会弹出一个授权码,记住这个授权码 后面配置邮件有用到 …

python 发送邮件(收到的邮件要有发送方才能回复)

Python使用SMTP(简单邮件传输协议)发送邮件 普通文本邮件 普通文本邮件发送的实现,关键是要将MIMEText中_subtype设置为plain ## -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText#导入MIMEText类 from email import encoders from emai…

Linux发送接收邮件

目录 一、实验 1.linux用户发送给linux中的其它用户 2.linux用户发送给外网用户 一、实验 1.linux用户发送给linux中的其它用户 (1)使用命令 yum install -y sendmail 安装sendmail软件 (2)使用yum install -y mailx 安装 mail…

程序员,你真的懂得收发电子邮件吗?

前言 在几年以前,相信不少朋友都听说过,马云同志创办阿里巴巴的时候,还不会发邮件。也不知道在阿里巴巴上市之后,他学会收发邮件了没有!呵呵。我是曾经从内心里“瞧不起”过,至少认为在这一点上我比他强很…

linux mutt工具收发邮件

mutt工具收发邮件 软件:mutt-1.5.20-9.20091214hg736b6a.el6.x86_64 yum install -y mutt发邮件 发给rootcentos6用户一份test标题的邮件 mutt -s “test” rootcentos6 连续回车会显示,to给哪个邮箱、subject,然后进入vi界面,进行邮件body编…

震惊,我发邮件让小张查个数据,居然10秒不到就邮件回复我了,怎么这么快?...

然后,我真的震惊了,本以为小张至少要查个20分钟的,结果10秒不到就回复我了: 好奇心超强的我等回到公司,马上问小张,为什么能这么快?居然不告诉我。 但是好奇心超强的我,并不会因此放…

程序员,你真的懂得收发电子邮件吗?(转)

http://www.cnblogs.com/rootq/articles/1320266.html 前言 在几年以前,相信不少朋友都听说过,马云同志创办阿里巴巴的时候,还不会发邮件。也不知道在阿里巴巴上市之后,他学会收发邮件了没有!呵呵。我是曾经从内心里“…

用Python发送电子邮件?这也太丝滑了吧(21)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 欢迎和猫妹一起,趣味学Python。 今日主题 猫爸赚钱养家,细想起来真的不容易啊! 起早贪黑,都是6点早起做早饭,送…

邮件群发-不仅仅是自己想的那么简单(HTTP发送)

不管是工厂还是外贸公司,或者是SOHO,利用“伪EDM邮件营销”都可以用最小的代价,来获取询盘和订单。 而“伪EDM邮件营销”的核心技术,则是“裙发邮件”。 裙发邮件的作用:以最高效的方式把邮件推送给客户,增…

Anthropic对ChatGPT产品Claude发布,可以对外体验(目前并不支持中文)

Claude是下一代人工智能助手,基于 Anthropic 对训练有用、诚实和无害的人工智能系统的研究。Claude 可通过我们的开发人员控制台中的聊天界面和 API 进行访问,能够执行各种对话和文本处理任务,同时保持高度的可靠性和可预测性。 克劳德可以帮…

落地为王,「大模型」走出发布会

©️深响原创 作者|吴鸿键 大模型,大机遇。舆论喧嚣了几个月,有能力的企业都在抢占生态位。 芯片层,英伟达凭借其GPU优势,成为ChatGPT热潮中最先赚到钱的人,博通、微软、谷歌也都紧盯着芯片机遇&#…

Python 给视频添加背景音乐 | Python工具

目录 前言 环境依赖 代码 总结 前言 本文提供给视频添加背景音乐的python工具,一如既往的实用主义。 环境依赖 ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部署_阿良的博客-CSDN博客 本文主要使用到的不是ffmpeg&#x…

微信对话生成器,生成微信聊天记录,聊天记录生成器,制作微信聊天记录,可生成文字、语音、转账、红包,朋友圈装X神器~

软件使用方法 解压压缩包,得到一个文件夹,内容如下 双击【wechat.exe】运行,可以看到程序有两个子菜单,每一个菜单都能对聊天界面进行部分设置 我们进入【对话设置】子菜单,这里可以设置聊天对象的头像,…