AI批量去除mp3音频文件的开头和结尾

向量数据库大模型NoSQL数据库

文件夹中有很多由视频转为mp3的音频文件,要去掉开头的43秒;

picture.image

还有结尾的倒数51秒;

picture.image

在deepseek中输入提示词:

你是一个Python编程专家,要完成一个音频处理任务,具体步骤如下:

打开文件夹:E:\avideo\Avatar - The Last Airbender (2005 - 2008) [1080p]\Avatar - The Last Airbender 音频;

读取里面所有的mp3音频文件;

删除每个mp3音频文件开头的43秒和结尾的51秒;

注意:每一步都要输出信息到屏幕上

picture.image

Deepseek的回复:

首先,我需要打开指定的文件夹并读取其中所有的mp3文件。我得确保路径是正确的,可能需要处理一下路径分隔符。

然后,我需要读取每个mp3文件并删除开头的43秒和结尾的51秒。我可能需要用到pydub库来处理音频文件。

在删除指定时间段时,我得确保时间单位是毫秒,因为pydub使用毫秒来处理音频剪辑。

我还需要在每一步都输出信息到屏幕上,这样可以跟踪程序的执行情况。

可能需要注意文件的编码问题,确保文件名不会出错。

另外,要确保ffmpeg已经安装并且在系统路径中,因为pydub依赖它来处理音频文件。

最后,测试一下代码,看看是否真的删除了开头和结尾的指定时间,确保没有只删除结尾的情况。

为了完成这个音频处理任务,我们需要使用 Python 的 os 模块来处理文件和文件夹,并使用 pydub 库来处理音频文件。以下是详细步骤和代码:

步骤 1: 安装必要的库

确保你已经安装了 pydub 和 ffmpeg。如果没有安装,可以使用以下命令进行安装:

bash

复制

pip install pydub

pydub 依赖于 ffmpeg,所以也需要安装 ffmpeg 并将其添加到系统路径中。

步骤 2: 编写代码

Python

import os

from pydub import AudioSegment

定义文件夹路径

folder_path = r"E:\avideo\Avatar - The Last Airbender (2005 - 2008) [1080p]\Avatar - The Last Airbender 音频"

输出文件夹路径

print(f"打开文件夹: {folder_path}")

获取文件夹中的所有mp3文件

mp3_files = [f for f in os.listdir(folder_path) if f.endswith('.mp3')]

输出找到的mp3文件数量

print(f"找到 {len(mp3_files)} 个mp3文件")

定义要删除的时间(以毫秒为单位)

start_trim = 43 * 1000 # 43秒

end_trim = 51 * 1000 # 51秒

遍历每个mp3文件

for mp3_file in mp3_files:

输出正在处理的文件名

print(f"正在处理文件: {mp3_file}")

构建完整的文件路径

file_path = os.path.join(folder_path, mp3_file)

读取音频文件

audio = AudioSegment.from_mp3(file_path)

打印原始音频长度

print(f"原始音频长度: {len(audio)} 毫秒")

计算新的结束时间

new_end = len(audio) - end_trim

确保新的结束时间不小于开始时间

if start_trim < new_end:

删除开头和结尾的部分

trimmed_audio = audio[start_trim:new_end]

打印处理后的音频长度

print(f"处理后的音频长度: {len(trimmed_audio)} 毫秒")

保存处理后的音频文件

output_file_path = os.path.join(folder_path, f"trimmed_{mp3_file}")

trimmed_audio.export(output_file_path, format="mp3")

输出处理完成的信息

print(f"处理完成: {output_file_path}")

else:

print(f"文件 {mp3_file} 过短,无法进行剪辑。")

输出所有文件处理完成的信息

print("所有文件处理完成")

代码解释

导入模块:

os 模块用于处理文件和文件夹路径。

pydub.AudioSegment 用于处理音频文件。

定义文件夹路径:

指定音频文件所在的文件夹路径。

获取所有mp3文件:

使用 os.listdir 获取文件夹中的所有文件,并筛选出以 .mp3 结尾的文件。

定义要删除的时间:

将秒转换为毫秒,因为 pydub 使用毫秒作为时间单位。

遍历每个mp3文件:

对每个文件执行以下操作:

读取音频文件。

打印原始音频长度。

计算新的结束时间,并确保新的结束时间大于开始时间。

剪辑音频文件,删除开头和结尾的部分。

打印处理后的音频长度。

保存处理后的音频文件,并输出处理完成的信息。

输出所有文件处理完成的信息。

注意事项

文件覆盖:处理后的文件以 trimmed_ 前缀保存,避免覆盖原始文件。如果需要覆盖原始文件,请修改 output_file_path。

音频文件长度:确保音频文件足够长,能够支持删除开头和结尾的部分。

路径分隔符:在 Windows 系统中,确保路径分隔符正确,或者使用 raw string (如 r"path").

通过以上步骤和代码,你可以成功删除每个 mp3 文件开头的 43 秒和结尾的 51 秒,并且每一步都会输出信息到屏幕上。

picture.image

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论