🎵 🎵 🎵 当音乐遇上Python:用Pydub自动分割音频
随着短视频应用的普及,越来越多人开始了解并尝试制作自己的短视频作品。而在制作短视频时,背景音乐的选择和使用也是非常重要的一步。很多人喜欢选择一首长音乐,再通过剪辑软件将其剪成多段来使用,这种做法虽然可行,但效率较低。
在这种情况下,我们可以使用音频分割技术来快速剪辑出需要的音频段,以便于在短视频中使用。在 Python 中,我们可以使用 Pydub 库来进行音频分割。
🎵 🎵 🎵
I. 简介
pydub是Python的一个音频处理库,可以处理各种音频格式,如mp3、wav、flv等等。它是一个轻量级、快速且易于使用的库。silence库是pydub的一个扩展库,可以在音频文件中根据静默部分进行分割,非常方便。
🎵 🎵 🎵
II. 安装
使用pip安装pydub库:
pip install pydub
🎵 🎵 🎵
III. 使用
下面是一个使用pydub=分割音频文件的示例代码:
from pydub import AudioSegment
from pydub.silence import split_on_silence
# 读取音频文件
audio = AudioSegment.from_file("audio.mp3", format="mp3")
# 设置分割参数
min_silence_len = 700 # 最小静音长度
silence_thresh =-10 # 静音阈值,越小越严格
keep_silence = 600 # 保留静音长度
# 识别计算分割歌曲数量
num_segments = int(audio.duration_seconds/60/3) # 每首歌曲大概三分钟,计算歌曲数量
# 分割音频文件
for i in range(-10, 0):
segments = split_on_silence(audio, min_silence_len=min_silence_len, silence_thresh=i, keep_silence=keep_silence)
if len(segments) <= num_segments:
print(f"分割成功,共分割出 {len(segments)} 段")
break
else:
print(f"当前阈值为 {i},分割出 {len(segments)} 段,继续尝试")
上面的代码首先使用AudioSegment
类从audio.mp3
文件中读取音频数据,然后设置了分割参数min_silence_len
、silence_thresh
和keep_silence
。min_silence_len
是最小静音长度,silence_thresh
是静音阈值,keep_silence
是保留静音长度。这些参数的具体含义可以根据实际情况进行调整。最后,根据分割参数使用split_on_silence
函数对音频文件进行分割。