您的位置: 首页 > 生活常识 >

mp3分割方法(用ChatGPT批量分割mp3音频文件)

100次浏览     发布时间:2024-10-01 08:50:24    

要批量分割mp3音频文件,可以用Python的pydub库来处理音频文件。首先我们需要安装这个库。可以在命令行中使用下列命令来安装pydub:pip install pydub

另外,要安装音频处理工具 Ffmpeg,下载地址:
https://www.gyan.dev/ffmpeg/builds/ffmpegFfmpeg是一个开源的音/视频处理工具,pydub需要它来处理mp3文件。

然后,在ChatGPT中输入提示词:

在ChatGPT中输入提示词:

你是一个Python编程专家,要完成一个批量分割mp3音频文件的任务,具体步骤如下:

打开文件夹:E:\英语跟读精听材料-AI播客

获取文件下mp3文件的标题名称;

新建一个和mp3文件标题名称一样的子文件夹;

将这个mp3文件按照每一段6分钟时长进行分割,分割后保存到子文件夹中;

注意:每一步都要输出相关信息

在建立子文件夹先检查是否已经有文件夹了,如果已经有了,就不需要新建;

在分割mp3文件前,先检查对应的子文件夹里面是否有mp3文件,如果已经有了,就不需要进行分割,直接跳过即可;

使用多线程或多进程来并行处理文件,以提高效率;

将主程序放在一个名为main的函数中,然后在文件的最后使用if __name__ == "__main__"来调用这个函数;

给出的Python源代码:

import os

from pydub import AudioSegment

from multiprocessing import Process

def process_file(file_name, folder_path):

print(f"Processing file: {file_name}")

base_name = os.path.splitext(file_name)[0]

subfolder_path = os.path.join(folder_path, base_name)

# 检查是否已经有子文件夹

if not os.path.exists(subfolder_path):

print(f"Creating subfolder: {subfolder_path}")

os.makedirs(subfolder_path)

# 检查子文件夹中是否已经有mp3文件

if not any(fname.endswith('.mp3') for fname in os.listdir(subfolder_path)):

print(f"Splitting file: {file_name}")

audio = AudioSegment.from_mp3(os.path.join(folder_path, file_name))

# 每段的长度(6分钟)

length_ms = 6 * 60 * 1000

# 分割音频文件

for i, chunk in enumerate(audio[::length_ms]):

chunk_name = f"{base_name}_{i}.mp3"

chunk_path = os.path.join(subfolder_path, chunk_name)

chunk.export(chunk_path, format="mp3")

print(f"Exported {chunk_path}")

else:

print(f"Skipping file: {file_name} as split files already exist")

def main():

# 定义文件夹路径

folder_path = "E:\\英语跟读精听材料-AI播客"

# 打开文件夹

processes = []

for file_name in os.listdir(folder_path):

# 检查是否是mp3文件

if file_name.endswith('.mp3'):

p = Process(target=process_file, args=(file_name, folder_path))

processes.append(p)

p.start()

# 等待所有进程完成

for p in processes:

p.join()

if __name__ == "__main__":

main()

完成的效果很好: