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语言实现获取主机名根据端口杀死进程
Mar 31 Python
python实现用户登录系统
May 21 Python
python遍历 truple list dictionary的几种方法总结
Sep 11 Python
Python+Wordpress制作小说站
Apr 14 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Python函数参数操作详解
Aug 03 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
如何在Windows中安装多个python解释器
Jun 16 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 23 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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多进程之pcntl_fork的实例详解
2017/10/15 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
Python argparse模块使用方法解析
2020/02/20 Python
解决Django no such table: django_session的问题
2020/04/07 Python
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
幼儿园教师的自我评价范文
2014/09/17 职场文书
学年个人总结范文
2015/03/05 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
2016年情人节广告语
2016/01/28 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
Java实现二分搜索树的示例代码
2022/03/17 Java/Android