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 socket网络编程步骤详解(socket套接字使用)
Dec 06 Python
python分割文件的常用方法
Nov 01 Python
python获取mp3文件信息的方法
Jun 15 Python
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
python实现拉普拉斯特征图降维示例
Nov 25 Python
Python爬虫实现模拟点击动态页面
Mar 05 Python
python中元组的用法整理
Jun 15 Python
python批量修改交换机密码的示例
Sep 22 Python
Python WSGI 规范简介
Apr 11 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
php生成图片验证码
2015/06/09 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
PHP中overload与override的区别
2017/02/13 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
python使用pygame框架实现推箱子游戏
2018/11/20 Python
python脚本后台执行方式
2019/12/21 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
庆元旦文艺演出主持词
2014/03/27 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
建筑投标担保书
2014/05/20 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
MySQL约束超详解
2021/09/04 MySQL
Pandas搭配lambda组合使用详解
2022/01/22 Python