提取视频中的音频 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编程中一些重用与缩减的建议
Apr 14 Python
使用Python脚本操作MongoDB的教程
Apr 16 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
Python3内置模块random随机方法小结
Jul 13 Python
python2 对excel表格操作完整示例
Feb 23 Python
python列表切片和嵌套列表取值操作详解
Feb 27 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
python实现进度条的多种实现
Apr 29 Python
python 下划线的多种应用场景总结
May 12 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原理之异常机制深入分析
2010/08/08 PHP
php中批量替换文件名的实现代码
2011/07/20 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
php 删除cookie方法详解
2014/12/01 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
python常量折叠基础知识点讲解
2021/02/28 Python
音乐教学反思
2014/02/02 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
保密承诺书
2014/03/27 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
学生上课说话检讨书
2014/10/25 职场文书
会计专业自荐信范文
2019/05/22 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers