python pydub高级库

pydub

pydub 是一个 Python 库,用于处理音频文件,特别是方便地剪辑和转换音频文件。它基于 ffmpeg 工具,可以支持多种音频格式的导入导出,如MP3、WAV等。

安装

首先,你需要安装所需的库和ffmpeg工具:

pip install pydub

# 你也需要安装ffmpeg工具,并确保它能在命令行下访问‍

使用pydub裁剪音频文件


from pydub import AudioSegment

# 加载mp3文件

audio = AudioSegment.from_mp3("/path/to/audio.mp3")

# 截取前10秒

clipped_audio = audio[:10000] # 时间单位为毫秒

# 导出裁剪后的音频

clipped_audio.export("/path/to/clipped_audio.mp3", format="mp3")

合并多个音频片段


from pydub import AudioSegment

# 加载两个音频片段

audio1 = AudioSegment.from_mp3("/path/to/audio1.mp3")

audio2 = AudioSegment.from_mp3("/path/to/audio2.mp3")

# 合并两个音频片段

combined_audio = audio1 + audio2

# 导出合并后的音频

combined_audio.export("/path/to/combined_audio.mp3", format="mp3")

将音频文件转换为其他格式


from pydub import AudioSegment

# 加载wav文件

audio = AudioSegment.from_wav("/path/to/audio.wav")

# 转换为mp3格式

audio.export("/path/to/audio_converted.mp3", format="mp3")

调整音频音量


from pydub import AudioSegment

# 加载音频并增加音量

audio = AudioSegment.from_mp3("/path/to/audio.mp3").apply_gain(6) # 增加6dB音量

# 导出调整音量后的音频

audio.export("/path/to/increased_volume.mp3", format="mp3")

添加淡入淡出效果


from pydub import AudioSegment

# 加载音频并添加淡入和淡出效果

audio = AudioSegment.from_mp3("/path/to/audio.mp3")

audio = audio.fade_in(500).fade_out(500) # 淡入和淡出各500毫秒

# 导出处理后的音频

audio.export("/path/to/faded_audio.mp3", format="mp3")

分割音频文件


from pydub import AudioSegment

# 加载音频并按每10秒分割

audio = AudioSegment.from_mp3("/path/to/audio.mp3")

chunks = make_chunks(audio, 10000) # 每个chunk长度为10秒

for i, chunk in enumerate(chunks):

chunk.export(f"/path/to/chunk_{i}.mp3", format="mp3")

def make_chunks(sound, milliseconds):

chunks = []

for i in range(0, len(sound), milliseconds):

chunks.append(sound[i:i+milliseconds])

return chunks

更改音频采样率和位深度


from pydub import AudioSegment

# 加载音频并更改采样率和位深度

audio = AudioSegment.from_mp3("/path/to/audio.mp3")

audio = audio.set_frame_rate(44100).set_channels(2).set_sample_width(2)

# 导出处理后的音频

audio.export("/path/to/resampled_audio.mp3", format="mp3")

混合背景音乐与人声


from pydub import AudioSegment

# 加载背景音乐和人声

bg_music = AudioSegment.from_mp3("/path/to/bg_music.mp3")

voice = AudioSegment.from_mp3("/path/to/voice.mp3")

# 混合音频,假设人声音量减少一半

mixed_audio = bg_music.overlay(voice - voice.dBFS * 6)

# 导出混合音频

mixed_audio.export("/path/to/mixed_audio.mp3", format="mp3")

提取音频文件的元数据


from pydub import AudioSegment

# 加载音频并获取元数据

audio = AudioSegment.from_mp3("/path/to/audio.mp3")

metadata = audio.metadata

print(f"标题: {metadata.get('title', '未知')}, 艺术家: {metadata.get('artist', '未知')}, 长度: {len(audio)/1000:.2f}秒")

删除音频中的静默部分


from pydub.silence import detect_silence

# 加载音频并检测静默部分

audio = AudioSegment.from_mp3("/path/to/audio.mp3")

silent_parts = detect_silence(audio, min_silence_len=1000, silence_thresh=-32)

# 删除静默部分

non_silent_parts = audio.split_on_silence(min_silence_len=1000, silence_thresh=-32)

# 重新组合非静默部分

filtered_audio = sum(non_silent_parts, AudioSegment.empty())

# 导出处理后的音频

filtered_audio.export("/path/to/no_silence_audio.mp3", format="mp3")

请注意:

上述所有示例均需先正确安装并配置好 pydub 和 ffmpeg。同时,某些操作可能需要对音频片段进行适当的处理才能达到预期效果。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值