前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零代码编程:用ChatGPT批量分割mp3音频文件

零代码编程:用ChatGPT批量分割mp3音频文件

作者头像
AIGC部落
发布2024-06-24 15:32:08
860
发布2024-06-24 15:32:08
举报
文章被收录于专栏:Dance with GenAIDance with GenAI

要批量分割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()

完成的效果很好:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dance with GenAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
媒体处理
媒体处理(Media Processing Service,MPS)是一种云端音视频处理服务。基于腾讯多年音视频领域的深耕,为您提供极致的编码能力,大幅节约存储及带宽成本、实现全平台播放,同时提供视频截图、音视频增强、内容理解、内容审核等能力,满足您在各种场景下对视频的处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档