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语法快速入门指南
Oct 12 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
python scrapy重复执行实现代码详解
Dec 28 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
详解Python中namedtuple的使用
Apr 27 Python
python实现邮件循环自动发件功能
Sep 11 Python
Python猫眼电影最近上映的电影票房信息
Sep 18 Python
手把手教你实现PyTorch的MNIST数据集
Jun 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
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
pyhton列表转换为数组的实例
2018/04/04 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
pandas 对group进行聚合的例子
2019/12/27 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
某公司Java工程师面试题笔试题
2016/03/27 面试题
会计顶岗实习心得
2014/01/25 职场文书
校园广播稿500字
2014/02/04 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
跑操口号
2014/06/12 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
2014年医务科工作总结
2014/12/18 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS