提取视频中的音频 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怎么学好python?
Oct 07 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
Python中用format函数格式化字符串的用法
Apr 08 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
python中argparse模块用法实例详解
Jun 03 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
详解python里的命名规范
Jul 16 Python
Pandas透视表(pivot_table)详解
Jul 22 Python
Python如何实现爬取B站视频
May 20 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php数据库抽象层 PDO
2011/05/07 PHP
谷歌音乐搜索栏的提示功能php修正代码
2011/05/09 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
function foo的原型与prototype属性解惑
2010/11/19 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
django的ORM模型的实现原理
2019/03/04 Python
python跳出双层for循环的解决方法
2019/06/24 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
建筑毕业生自我鉴定
2013/10/18 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
论文致谢词范文
2015/05/14 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书