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写一个windows下的定时关机脚本(推荐)
Mar 21 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python将每个单词按空格分开并保存到文件中
Mar 19 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
python tkinter组件摆放方式详解
Sep 16 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
python 控制台单行刷新,多行刷新实例
Feb 19 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/01/17 PHP
php二维数组用键名分组相加实例函数
2013/11/06 PHP
如何使用php实现评委评分器
2015/07/31 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python实现带百分比的进度条
2016/06/28 Python
基于Python闭包及其作用域详解
2017/08/28 Python
TensorFlow如何实现反向传播
2018/02/06 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
python nmap实现端口扫描器教程
2020/05/28 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
2014年创卫工作总结
2014/11/24 职场文书
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers