当前位置:主页 > python教程 > Python中音频处理库pydub的使用教程

介绍Python音频处理库pydub的使用方法

发布:2020-03-06 17:45:05 149


为找教程的网友们整理了Python相关的编程文章,网友扈瑜璟根据主题投稿了本篇教程内容,涉及到python、pydub、Python中音频处理库pydub的使用教程相关内容,已被529网友关注,相关难点技巧可以阅读下方的电子资料。

Python中音频处理库pydub的使用教程

前言

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实现不一样的猜数字游戏的示例代码

    发布:2023-04-21

    大家知道“猜数字”这个游戏吗?顾名思义就是一个人想一个数字,另一个人猜。本文就来用Python实现一款不一样的猜数字游戏,感兴趣的可以了解一下


  • 详解python scatter散点图用循环分类法加图例

    发布:2020-01-20

    这篇文章主要为大家详细介绍了python scatter散点图用循环分类法加图例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • 分享Python中字典创建,遍历,添加等实用基础操作技巧合集

    发布:2020-02-19

    字段是Python是字典中唯一的键-值类型,本文讲述了Python中字典如何创建 遍历 添加等实用基础操作技巧,内容非常基础但非常重要,一定要熟练掌握


  • python打包exe能运行但是没有结果解决方案

    发布:2019-06-27

    在本篇文章里小编给大家整理了关于python打包exe能运行但是没有结果解决方案以及相关扩展知识内容,需要的朋友们参考学习下。


  • Python关于维卷积的理解

    发布:2023-04-21

    这篇文章主要介绍了Python关于维卷积的理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • Python快速查找list中相同部分的实例代码

    发布:2019-08-16

    今天小编就为大家分享一篇Python快速查找list中相同部分的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • python如何使用zip同时迭代多个序列

    发布:2021-05-10

    这篇文章主要介绍了python使用 zip 同时迭代多个序列,结合实例形式分析了Python使用zip遍历迭代长度相等与不等的序列相关操作技巧,需要的朋友可以参考下


  • 解决python3 安装不了PIL的问题

    发布:2022-04-24

    今天小编就为大家分享一篇解决python3 安装不了PIL的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


网友讨论