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实现将doc转化pdf格式文档的方法
Jan 19 Python
python爬虫之自动登录与验证码识别
Jun 15 Python
Python 中的lambda函数介绍
Oct 10 Python
对Django 中request.get和request.post的区别详解
Aug 12 Python
python实现LRU热点缓存及原理
Oct 29 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
Python调用jar包方法实现过程解析
Aug 11 Python
python能做哪些生活有趣的事情
Sep 09 Python
详解Anaconda 的安装教程
Sep 23 Python
Django websocket原理及功能实现代码
Nov 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实现自动对图片进行滚动显示的方法
2015/03/12 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
JavaScript 继承的实现
2009/07/09 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
js基本算法:冒泡排序,二分查找的简单实例
2016/10/08 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python解析xml文件实例分析
2015/05/27 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
Python实现爬取并分析电商评论
2020/06/19 Python
简述 Python 的类和对象
2020/08/21 Python
基于python实现操作redis及消息队列
2020/08/27 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
如何获得EntityManager
2014/02/09 面试题
企业行政文员岗位职责
2013/12/03 职场文书
物业保安主管岗位职责
2013/12/25 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
看雷锋电影观后感
2015/06/10 职场文书
Go语言怎么使用变长参数函数
2022/07/15 Golang