【Python】pydub按一定比特率、采样率压缩音频文件
使用Python第三方库pydub按一定bitrate,frame_rate压缩音频文件
安装pydub
pip install pydub
注: pydub支持wav格式音频读取,本文处理的是MP3格式,所以需要安装ffmpeg.
Linux下安装ffmpeg
sudo apt install ffmpeg
读取、压缩MP3格式文件
from pydub import AudioSegment
# 音频文件路径
path = "file's path"
# 读取音频文件,设置采样率<default=44100>
song = AudioSegment.from_mp3(path).set_frame_rate(22050)
# 按32k的bitrate导出文件到指定路径,这里是直接覆盖原文件
song.export(path, format='mp3', bitrate='32k')
扩展
"""
pydub提供了对mp3, wav, ogg, flv等格式的音频文件的支持,
对应有from_mp3, from_wav, from_ogg, from_flv等Classmethod;
支持设置sample_width, frame_rate, channels,
值得注意的是在AudioSegment初始化时,不可设置单个特征值,否则会报以下错误:
pydub.exceptions.MissingAudioParameter: Either all audio parameters or no parameter must be specified
对应的提供了设置单个特征值的方法:set_frame_rate, set_sample_width, set_channels;
"""
# pydub的源码相对简单, 下面是此次运用的两个方法的源代码:def export(self, out_f=None, format='mp3', codec=None, bitrate=None,parameters=None, tags=None, id3v2_version='4', cover=None):"""Export an AudioSegment to a file with given optionsout_f (string):Path to destination audio file. Also accepts os.PathLike objects onpython >= 3.6format (string)Format for destination audio file.('mp3', 'wav', 'raw', 'ogg' or other ffmpeg/avconv supported files)codec (string)Codec used to encoding for the destination.bitrate (string)Bitrate used when encoding destination file. (64, 92, 128, 256, 312k...)Each codec accepts different bitrate arguments so take a look at theffmpeg documentation for details (bitrate usually shown as -b, -ba or-a:b).parameters (string)Aditional ffmpeg/avconv parameterstags (dict)Set metadata information to destination filesusually used as tags. ({title='Song Title', artist='Song Artist'})id3v2_version (string)Set ID3v2 version for tags. (default: '4')cover (file)Set cover for audio file from image file. (png or jpg)"""passdef set_frame_rate(self, frame_rate): # default: frame_rate=44100if frame_rate == self.frame_rate:return selfif self._data:converted, _ = audioop.ratecv(self._data, self.sample_width,self.channels, self.frame_rate,frame_rate, None)else:converted = self._datareturn self._spawn(data=converted,overrides={'frame_rate': frame_rate})
pydub对音频文件的处理是是磁盘IO操作,耗时较长,在web应用中建议做异步后台处理,笔者使用的是django框架做后台开发, django提供有django-rq和django_celery支持异步操作,关于celery和django_rq的使用在笔者其他文章中有所介绍。
【Python】pydub按一定比特率、采样率压缩音频文件相关推荐
- python 将一段文字转为mp3音频文件
最近想实现利用python将文本文件转换成mp3--听书,pyttsx3是一款优秀的文字转语音的模块,它生成的音频文件也比较具有个性化. #encoding=utf8''' python将一段文字转为 ...
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 目录 利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 1.先下载ff ...
- 压缩音频文件怎么弄?这篇文章告诉你怎么实现
嘿,小伙伴们,如果你需要将音频文件上传到云端或通过电子邮件发送给他人,但是文件过大而无法上传或发送,那么压缩音频文件就能够为你解决这个问题.通过使用压缩音频文件的软件,你可以将音频文件有效地压缩,并减 ...
- linux 音频文件长度,Linux下压缩音频文件
安装工具 sudo apt-get install lame 具体用法可以查看帮助 lame --help 通过更改音频文件的帧数 可以让文件变小 但是音质也会随之下降 现在比较多的mp3文件是1 ...
- python 单词发音-在python中的单词上拆分语音音频文件
更简单的方法是使用pydub模块.最近的silent utilities增加了所有的重任,如设置沉默threahold,设置沉默长度.与提到的其他方法相比,显着简化了代码. 这是一个演示实现,灵感来自 ...
- 音频比特率_将音频文件转换为更高的比特率有意义吗?
音频比特率 When converting audio files, it would make sense to avoid converting into a higher bitrate, as ...
- 没事脱脱发,Python爬取“手机铃声”网站的音频文件
一.目标网站:https://www.13400.com/ 二.获取最近铃声模块的音频内容 三.涉及库:request.bs4.xpinyin.time 开干!!!! 1.检查网页元素 我发现歌曲名字 ...
- 20行Python代码爬取2W多条音频文件素材【内附源码+详细解析】新媒体创作必备
大家好,我是辣条. 今天的内容稍显简单,不过对于新媒体创作的朋友们还是很有帮助的,你能用上的话记得给辣条三连! 爬取目标 网站:站长素材 工具使用 开发工具:pycharm 开发环境:python3. ...
- php能转换音频采样率吗,音频采样频率怎么设置-音频采样率转换软件下载
如果你是一个音乐爱好者,又或者是你很喜欢听音乐,那么你应该会注意到歌曲的采样率,很多的歌曲的采样率是不一样的,不过大部分来说都是48000Hz的.那么音频采样率是什么?音频采样率跟音质有什么关系吗?又 ...
- 搞定音频文件过大的问题,这些音频压缩软件帮你轻松压缩
当我们想在手机或电脑上存储大量的音乐文件的时候,是否会遇见存储空间不足的情况.其实这个时候,我们可以用音频压缩软件把音乐文件的大小减小到合适的范围,以便在设备上存储更多的音乐.那你们知道可以压缩音频文 ...
最新文章
- SVN Access Manager 0.5.5.14 发布 - SVN 管理工具
- Android开源框架——依赖注入ButterKnife
- boost::regex模块captures相关的测试程序
- 在Python中使用MongoDB
- Vue is not defined;at App onLaunch function;at api getSystemInfo success callback function
- Spring课程 Spring入门篇 总结
- c语言实现的optics算法,基于深度学习的光学系统设计方法
- matlab语言主要功能,2014年秋季学期《MATLAB语言及应用》课程试题-2
- 【软件工程】基准配置(基线配置)
- coreldraw快速撤回_CorelDRAW快捷键:常用快捷键(1)
- 管理员权限自动注册Dll文件
- 软件测试(四)——正交实验法、功能图法、其他测试用例设计方法等
- linux命令键盘快捷键,如何将Linux命令设置成键盘快捷键
- linux 运维安全,运维安全有哪些分类呢?linux学习线路图
- 2021年关于Delphi/Object Pascal编程语言的现状和历史
- 京东自营售前客服考试
- 软实力:权力,从硬实力到软实力
- 九龙证券|半导体又涨嗨了!券商再喊牛市起点!
- 如何让自己打计算机打字快起来,电脑快速打字的技巧
- .Net iTextSharp 给Pdf添加图片水印