使用 os、pydub 模块
# 设置默认注释:settings->editor->file and code Templates
import os # 文件系统操作对象
from pydub import AudioSegment
def audio_sound(path, length):
for file_name in os.listdir(path):
# print('.' in file_name)
if '.' in file_name:
file_path = os.path.join(path, file_name)
print(file_path)
# 读取文件有很多方式,有直接from_file(),也有from_mp3()、from_wav(),下面的两个读取语句是等价的:
# sound = AudioSegment.from_file("mp3/正常.m4a", "m4a")
# sound = AudioSegment.from_mp3("mp3/15test.mp3")
sound = AudioSegment.from_file(file_path)
print(len(sound))
print('时长:{} s'.format(len(sound) / 1000))
chunk_num = int(len(sound) / 1000 / length)
start_time = 0
end_time = length * 1000
save_file_path = os.path.join(path, file_name[:-4])
if not os.path.exists(save_file_path):
os.makedirs(save_file_path)
for n in range(chunk_num):
# print(start_time, end_time)
# 切割文件
part = sound[start_time:end_time]
# 保存路径
save_name = os.path.join(save_file_path, '{}{}.wav'.format(n+1, file_name[:-4]))
# 保存文件
part.export(save_name, format="wav")
start_time += length
end_time += length
if __name__ == '__main__':
# 音频所在目录
dir_path = 'mp3'
# 每段剪辑长度 3s
audio_length = 3
# 执行
audio_sound(dir_path, audio_length)