提取视频中的音频 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 29 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
Python 中的Selenium异常处理实例代码
May 03 Python
Pytorch 实现权重初始化
Dec 31 Python
Python交互环境下打印和输入函数的实例内容
Feb 16 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
Python中random模块常用方法的使用教程
Oct 04 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 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循环获取GET和POST值的代码
2008/04/09 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
php常用数学函数汇总
2014/11/21 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
FireFox JavaScript全局Event对象
2009/06/14 Javascript
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
python里对list中的整数求平均并排序
2014/09/12 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
python抖音表白程序源代码
2019/04/07 Python
python默认参数调用方法解析
2020/02/09 Python
Python sorted对list和dict排序
2020/06/09 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
公司请假条范文
2014/04/11 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers