为了把不良人4中的bgm裁成铃声,本着自己动手丰衣足食的精神,使用python实现的mp3裁剪功能,主要使用了下列工具包,环境如下
eyed3==0.9.6
pydub==0.25.1
scipy
注意,pydub运行需要ffemg,在windows里面配置比较麻烦,我是在ubuntu20.04中执行的,代码如下:
from pydub import AudioSegment
from scipy.io import wavfile
from eyed3 import mp3
import os
song_path = '/home/v/exchange/naohai.mp3' #源音乐路径
song_save = "./nh.mp3" #裁剪后保存路径
start = 6 #开始时间/s
end = 36 #结束时间/s 裁剪后的音乐时间为end-start
temp_path1 = "temp1.wav"
temp_path2 = 'temp2.wav'
f = mp3.Mp3AudioFile(song_path)
_, bit_rate = f.info.bit_rate
sample_freq = f.info.sample_freq
print(bit_rate,sample_freq)
x = AudioSegment.from_mp3(song_path)
x.export(temp_path1,format="wav")
m = wavfile.read(temp_path1)
wavfile.write(temp_path2, sample_freq, m[1][start*sample_freq:end*sample_freq])
y = AudioSegment.from_wav(temp_path2)
if os.path.exists(temp_path1):
os.remove(temp_path1)
if os.path.exists(temp_path2):
os.remove(temp_path2)
y.export(song_save,format="mp3",bitrate="%d"%bit_rate)