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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python字符串中查找子串小技巧
Apr 10 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
Django csrf 验证问题的实现
Oct 09 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
python将字典内容写入json文件的实例代码
Aug 12 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
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
jquery JSON的解析方式
2009/07/25 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
如何抽象一个Vue公共组件
2017/10/17 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
Windows下PyMongo下载及安装教程
2015/04/27 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
交通事故赔偿协议书
2014/04/15 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
研究生个人学年总结
2015/02/14 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技
springboot读取nacos配置文件
2022/05/20 Java/Android
git中cherry-pick命令的使用教程
2022/06/25 Servers
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers