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 20 Python
Python Matplotlib库入门指南
May 18 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
Python 专题四 文件基础知识
Mar 20 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
PyCharm代码格式调整方法
May 23 Python
Python列表解析配合if else的方法
Jun 23 Python
python验证码图片处理(二值化)
Nov 01 Python
Python 实现取多维数组第n维的前几位
Nov 26 Python
python3正则模块re的使用方法详解
Feb 11 Python
简单了解python列表和元组的区别
May 14 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
php通过各种函数判断0和空
2020/07/04 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
python实现连连看游戏
2020/02/14 Python
编程输出如下图形
2013/11/24 面试题
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
应用电子专业学生的自我评价
2013/10/16 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
禁止酒驾标语
2014/06/25 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
财政局个人年终总结
2015/03/03 职场文书
专职安全员岗位职责
2015/04/11 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
QT与javascript交互数据的实现
2021/05/26 Javascript