提取视频中的音频 Python只需要三行代码!


Posted in Python onMay 10, 2021

身处数据爆炸增长的信息时代,各种各样的数据都飞速增长,视频数据也不例外。我们可以使用 python 来提取视频中的音频,而这仅仅需要安装一个体量很小的 python 库,然后执行三行代码!

语音数据在数据分析领域极为重要。比如可以分析语义、口音、根据人的情绪等等。可以应用于偏好分析、谎话检测等等。

一、提取音频

需要用到 python 的 moviepy 库

moviepy的 github 地址:https://github.com/Zulko/moviepy

命令行 pip 安装上 moviepy 即可!

pip install moviepy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

提取视频中的音频 Python只需要三行代码!

提取音频:假设有一个 mp4 文件路径为"D:\python\pycharm2020\my_program\video_process\test_01.mp4",我们想提取其中的音频保存到"D:\python\pycharm2020\my_program\video_process\vst01.mp3",三行 Python 代码实现如下:

import moviepy.editor as mpy


# 截取背景音乐
audio_background = mpy.AudioFileClip(r'D:\python\pycharm2020\my_program\video_process\test_01.mp4').subclip(1, 60)
audio_background.write_audiofile(r'D:\python\pycharm2020\my_program\video_process\vst01.mp3')

结果如下:

提取视频中的音频 Python只需要三行代码!

执行上面的三行代码,就会发现音频文件已经成功提取到指定文件夹啦~ ~这里的视频格式和音频格式都支持其他格式,比如读取 mp4 格式视频,抽取其中的背景音乐保存为 MP3 格式音频。

二、引力波绘制

提取视频中的音频 Python只需要三行代码!

数据来源:

从配置文档中读取时间相关数据

import numpy as np  # 科学计算所用的numpy库
import matplotlib.pyplot as plt  # 绘图所用的库matplotlib
from scipy.io import wavfile  # 读取波形文件所用的库


rate_h, hstrain = wavfile.read(r"H1_Strain.wav", "rb")   # 读取音频文件
rate_l, lstrain = wavfile.read(r"L1_Strain.wav", "rb")
# reftime, ref_H1 = np.genfromtxt('GW150914_4_NR_waveform_template.txt').transpose()
reftime, ref_H1 = np.genfromtxt('wf_template.txt').transpose()  # 使用python123.io下载txt文件

构造应变数据

htime_interval = 1 / rate_h
ltime_interval = 1 / rate_l
fig = plt.figure(figsize=(12, 6))  # 创建大小为12*6的绘图空间

# 丢失信号起始点
htime_len = hstrain.shape[0] / rate_h  # 读取数据第一维的长度,得到函数在坐标轴上总长度
htime = np.arange(-htime_len / 2, htime_len / 2, htime_interval)  # (起点,终点,时间间隔)

使用来自 “H1” 探测器的数据作图

plth = fig.add_subplot(221)  # 设置绘图区域
plth.plot(htime, hstrain, 'r')  # 画出以时间为x轴,应变数据为y轴的图像,‘y'为黄色
plth.set_xlabel('Time (seconds)')
plth.set_ylabel('H1 Strain')
plth.set_title('H1 Strain')

绘制 L1 Strain 和Template

ltime_len = lstrain.shape[0] / rate_l
ltime = np.arange(-ltime_len / 2, ltime_len / 2, ltime_interval)
pltl = fig.add_subplot(222)
pltl.plot(ltime, lstrain, 'k')
pltl.set_xlabel('Time (seconds)')
pltl.set_ylabel('L1 Strain')
pltl.set_title('L1 Strain')

pltref = fig.add_subplot(212)
pltref.plot(reftime, ref_H1, 'purple')
pltref.set_xlabel('Time (seconds)')
pltref.set_ylabel('Template Strain')
pltref.set_title('Template')
fig.tight_layout()  # 自动调整图像外部边缘

保存并显示图像

plt.savefig("Gravitational_Waves_Original.png")  # 保存图像为png格式
plt.show()
plt.close(fig)

结果如下:

提取视频中的音频 Python只需要三行代码!

提取视频中的音频 Python只需要三行代码!

以上就是提取视频中的音频 Python只需要三行代码!的详细内容,更多关于python 提取视频中的音频的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python生成验证码图片代码分享
Jan 28 Python
python编写简单爬虫资料汇总
Mar 22 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
python如何将图片转换为字符图片
Aug 19 Python
python数字图像处理之高级形态学处理
Apr 27 Python
基于python实现百度翻译功能
May 09 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
tensorflow2.0的函数签名与图结构(推荐)
Apr 28 Python
python实现猜单词游戏
May 22 Python
Python 没有main函数的原因
Jul 10 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
Python中的min及返回最小值索引的操作
May 10 #Python
发工资啦!教你用Python实现邮箱自动群发工资条
在Django中使用MQTT的方法
May 10 #Python
You might like
php创建多级目录代码
2008/06/05 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
js中值引用和地址引用实例分析
2019/06/21 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
python迭代器的使用方法实例
2013/11/21 Python
python处理大数字的方法
2015/05/27 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
pandas实现选取特定索引的行
2018/04/20 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
python实现单机五子棋
2020/08/28 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
程序集与命名空间有什么不同
2014/07/25 面试题
大二自我鉴定
2014/01/31 职场文书
聘任书模板
2014/03/29 职场文书
终止合同协议书
2014/04/17 职场文书
元旦晚会活动总结
2014/07/09 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python