可以批量的将一种格式的音频文件转化成指定的格式,
如:mp3,wav , ogg ,flac 的格式之间可以相互转换,
转换后的文件名与原文件相同。
注意:运行代码除了需要安装库pydub之外,还需安装软件ffmpeg.exe,否则会报错,
RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
代码如下:
#批量转换音频文件格式,默认测试为flac转mp3,保存后的文件名为原文件名import os
from pydub import AudioSegmentsource = "./source/" #源文件夹
target = "./target/" #输出文件夹
source_form = "flac" #原格式
target_form = "mp3" #输出格式files = os.listdir(source) #返回源文件夹下的所有文件和目录名
for file in files: #遍历文件length = len(source_form)if source_form == "flac":song = AudioSegment.from_file(source+file) #读取音频文件elif source_form == "mp3":song = AudioSegment.from_mp3(source+file)elif source_form == "wav":song = AudioSegment.from_wav(source+file)elif source_form == "ogg":song = AudioSegment.from_ogg(source+file)else:print("没有这种格式!")song.export(target+f"{file[:-length]}"+target_form,format=target_form) #保存音频为新的格式print(f"{file[:-length]}"+target_form) #输出结果
其中,
source 路径存放源文件;
target 路径存放输出的文件;
source_form 是文件的原格式;
target_form 是文件输出的格式。
文件存放结构如下图:
测试时,将flac格式音乐转换成了mp3
转换前:
转换后: