当前位置: 首页 > 科技观察

Python多音乐格式批量转换实用教程_0

时间:2023-03-12 09:44:20 科技观察

Pydub是一个基于ffmpeg的Python音频处理模块,封装了很多ffmpeg底层接口,用它来进行音乐歌曲文件格式转换非常方便。如果你看过我们之前的文章,你就会知道Pydub有多么强大。今天给大家介绍一下它的音乐文件格式转换功能,支持几乎所有的音乐音频格式,非常强大。1、安装Pydub之前,需要先安装ffmpeg:(可选)Mac(打开终端(Terminal),用homebrew安装):brewinstallffmpeg--with-libvorbis--with-sdl2--with-theora(可选)2)Linux:apt-getinstallffmpeglibavcodec-extra(可选3)Windows:1.进入http://ffmpeg.org/download.html#build-windows,点击windows对应的图标,进入下载界面,单击下载以下载按钮。2.将下载的zip文件解压到指定目录。3、将解压后的文件目录下的bin目录(包括ffmpeg.exe)添加到path环境变量中。(必选)按照上面的ffmpeg安装步骤后,可以打开命令提示符(cmd)或终端(Terminal)安装pydub:pipinstallpydub2.mp3towavorotherformats将单个mp3音频文件转换为wav音频格式:frompydubimportAudioSegmentdeftrans_mp3_to_wav(filepath):"""将mp3文件转换为wav格式Args:filepath(str):文件路径"""song=AudioSegment.from_mp3(filepath)filename=filepath.split(".")[0]song.export(f"{filename}.wav",format="wav")可以继续封装这个函数,将单个mp3文件转换成任何其他音乐音频格式:frompydubimportAudioSegmentdeftrans_mp3_to_any_audio(filepath,audio_type):"""将mp3文件转换成任意音频文件格式Args:filepath(str):文件路径audio_type(str):文件格式"""song=AudioSegment.from_mp3(filepath)filename=filepath.split(".")[0]song.export(f"{filename}.{audio_type}",format=f"{audio_type}")如ogg格式:trans_mp3_to_any_audio("Alone.mp3","ogg")as只要是ffmpeg支持的音乐音频格式,都可以转换,支持几十种格式。让我简要地列出一些:wavavimp4flvoggflacapemp2aiffvocau3。更通用的转换功能只是mp3到任何音频格式。我希望将它作为任何音频格式写入任何音频格式:frompydubimportAudioSegmentdeftrans_any_audio_types(filepath,input_audio_type,output_audio_type):"""将任何音频文件格式转换为任何音频文件格式Args:filepath(str):文件路径input_audio_type(str):输入音频文件格式output_audio_type(str):输出音频文件格式"""song=AudioSegment.from_file(filepath,input_audio_type)filename=filepath.split(".")[0]song.export(f"{filename}.{output_audio_type}",format=f"{output_audio_type}")如ogg音乐转换音频格式转flv音乐音频格式:trans_any_audio_types("Alone.ogg","ogg","flv")或者MP4格式,总之一般能满足你需要的格式trans_any_audio_types("Alone.ogg","ogg","mp4")4.批量转换音频格式现在,尝试将文件夹中的所有非mp3音频格式文件转换为mp3音频格式:deftrans_all_file(files_path,target="mp3"):"""批量转换音频音乐格式args:files_path(str):文件夹路径target(str,optional):目标音乐格式。默认为"mp3"。"""forfilepathinos.listdir(files_path):#路径处理modpath=os.path.dirname(os.path.abspath(sys.argv[0]))datapath=os.path.join(modpath,files_path+filepath)#拆分成文件名和后缀并加载文件input_audio=os.path.splitext(datapath)song=AudioSegment.from_file(datapath,input_audio[-1].split(".")[-1])#exportsong.export(f"{input_audio[0]}.{target}",format=target)只需输入文件夹名称,该文件夹下的所有音乐文件都可以转换为mp3格式:trans_all_file("F:\\push\\20200607\\music\\")阅读后今天我们的教程,学会这个技巧,你再也不用担心被骗了格式之间的版本。您可以使用pydub模块轻松解决??这些问题。如果本文对您有帮助,请在文末点赞支持。