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自动化工具日志查询分析脚本代码实现
Nov 26 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
opencv python 2D直方图的示例代码
Jul 20 Python
Win8下python3.5.1安装教程
Jul 29 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
学习python分支结构
May 17 Python
对python中的装包与解包实例详解
Aug 24 Python
Python 共享变量加锁、释放详解
Aug 28 Python
关于sys.stdout和print的区别详解
Dec 05 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
使用python turtle画高达
Jan 19 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 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
星际中的相关伤害
2020/03/04 星际争霸
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
JavaScript 全角转半角部分
2009/10/28 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
django下创建多个app并设置urls方法
2020/08/02 Python
Python如何实现机器人聊天
2020/09/10 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
写自荐信要注意什么
2013/12/26 职场文书
大学生党课思想汇报
2013/12/29 职场文书
小区消防演习方案
2014/02/21 职场文书
学前班学生评语
2014/12/29 职场文书
反邪教学习心得体会
2016/01/15 职场文书
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python