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 相关文章推荐
详解Swift中属性的声明与作用
Jun 30 Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
zookeeper python接口实例详解
Jan 18 Python
python删除服务器文件代码示例
Feb 09 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
详解Python 切片语法
Jun 10 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
python变量的作用域是什么
May 26 Python
python 元组的使用方法
Jun 09 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 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
header()函数使用说明
2006/11/23 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
joomla数据库操作示例代码
2016/01/06 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
element中的$confirm的使用
2020/04/26 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python使用python-pptx删除ppt某页实例
2020/02/14 Python
工作自我评价分享
2013/12/01 职场文书
社团活动总结模板
2014/06/30 职场文书
小学生春游活动方案
2014/08/20 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
创先争优宣传标语
2014/10/08 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
速龙x4-860k处理器相当于i几
2022/04/20 数码科技
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL