Python中音频处理库pydub的使用教程


Posted in Python onJune 07, 2017

前言

pydub是Python中用户处理音频文件的一个库。本文主要介绍了关于Python音频处理库pydub使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

安装:

  1、安装pip工具:sudo apt-get install python-pip

  2、安装pydub:sudo pip install pydub

  3、pydub依赖于ffmpeg,所以还需要安装ffmpeg,由于Ubunbtu14.04官方源移除了ffmpeg,因此通过ppa源安装:

sudo apt-add-repository ppa:mc3man/trusty-media
 sudo apt-get update
 sudo apt-get install ffmpeg

使用:

AudioSegment方法能够将一个音频文件打开成AudioSegment示例,并使用各种方法处理音频,使用前先调用from pydub import AudioSegment

打开音频:

sound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav") //默认mp3格式

sound2 = AudioSegment.from_file("/path/to/another_sound.mp3", format="mp3")等价于sound1
 = AudioSegment.from_mp3("/path/to/sound.mp3")

音量处理:

louder = sound1 + 6 //sound1 声音提高6dB

quieter = sound1 - 6 //sound1 声音降低6dB

combined = sound1 + sound2  //sound1 和sound2叠加

duration_in_milliseconds = len(sound1)  //获取sound的时长

beginning = sound1[:5000] //获取sound1的前5秒音频数据

end = sound1[-5000:]  //获取sound1的后5秒音频数据

注意:

1、对于多个音频的计算,需要多个音频之间的通道数、帧数、采样率以及比特数都一样,否则低质量的音频会向高质量的转换,单声道会向立体声转换,低帧数向高帧数转换。

2、AudioSegment原生就支持wav和raw,如果其他文件需要安装ffmpeg。raw还需要,sample_width,frame_rate,channels三个参数。

生成文件:

export()方法可以使一个AudioSegment对象转化成一个文件。

sound = AudioSegment.from_file("/path/to/sound.wav", format="wav") 

file_handle = sound.export("/path/to/output.mp3", format="mp3")  //简单输出

file_handle = sound.export("/path/to/output.mp3", 
       format="mp3",
       bitrate="192k",
       tags={"album": "The Bends", "artist": "Radiohead"})   //复杂输出

AudioSegment.empty():

AudioSegment.empty()用于生成一个长度为0的AudioSegment对象,一般用于多个音频的合并。

sounds = [
 AudioSegment.from_wav("sound1.wav"), 
 AudioSegment.from_wav("sound2.wav"), 
 AudioSegment.from_wav("sound3.wav"), 
]
playlist = AudioSegment.empty()
for sound in sounds:
 playlist += sound

AudioSegment.silent():

ten_second_silence = AudioSegment.silent(duration=10000) //产生一个持续时间为10s的无声AudioSegment对象

获取参数:

此外,还能通过AudioSegment获取音频的参数,同时还能修改原始参数。

具体详见:https://github.com/jiaaro/pydub/blob/master/API.markdown

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现数组插入新元素的方法
May 22 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
python中的常量和变量代码详解
Jul 25 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
解决python3 pika之连接断开的问题
Dec 18 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
pandas修改DataFrame列名的实现方法
Feb 22 Python
简单了解Python3里的一些新特性
Jul 13 Python
Python3如何在服务器打印资产信息
Aug 27 Python
Python 图片添加美颜效果
Apr 28 Python
python中defaultdict的用法详解
Jun 07 #Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 #Python
python面向对象_详谈类的继承与方法的重载
Jun 07 #Python
windows下python连接oracle数据库
Jun 07 #Python
Python使用剪切板的方法
Jun 06 #Python
Python实现单词翻译功能
Jun 06 #Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 #Python
You might like
记录几个javascript有关的小细节
2007/04/02 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
Pycharm更换python解释器的方法
2018/10/29 Python
详解python中的Turtle函数库
2018/11/19 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
西班牙购买隐形眼镜、眼镜和太阳镜网站:Lentiamo.es
2020/06/11 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
中学教师教育感言
2014/02/21 职场文书
献爱心活动总结
2014/05/07 职场文书
幼儿发展评估方案
2014/06/11 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
奠基仪式致辞
2015/07/30 职场文书
入党心得体会
2019/06/20 职场文书
导游词之青岛崂山
2019/12/27 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
python神经网络 使用Keras构建RNN训练
2022/05/04 Python