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中的下划线详解
Jun 24 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
python实现浪漫的烟花秀
Jan 30 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
python数据挖掘需要学的内容
Jun 23 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
什么是python的自省
Jun 21 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
Python -m参数原理及使用方法解析
Aug 21 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
在php MYSQL中插入当前时间
2008/04/06 PHP
php集成动态口令认证
2016/07/21 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
python3中函数参数的四种简单用法
2018/07/09 Python
python语言基本语句用法总结
2019/06/11 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
小学教师学期末自我评价
2013/09/25 职场文书
文史专业毕业生自荐信
2013/11/17 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
安全生产检查通报
2014/01/29 职场文书
环境卫生倡议书
2014/08/29 职场文书
街道务虚会发言材料
2014/10/20 职场文书
社团个人总结范文
2015/03/05 职场文书
代理词怎么写
2015/05/25 职场文书
工程主管竞聘书
2015/09/15 职场文书