Pydub是一个基于ffmpeg的Python音频处理模块,封装了很多ffmpeg底层接口,用它来进行音乐歌曲文件格式转换非常方便。今天给大家介绍一下它的音乐文件格式转换功能,支持几乎所有的音乐音频格式,非常强大。1、安装Pydub之前,需要先安装ffmpeg:(可选)Mac(打开终端(Terminal),用homebrew安装):brewinstallffmpeg--with-libvorbis--with-sdl2--with-theora(可选)2)Linux:apt-getinstallffmpeglibavcodec-extra(选项3)Windows:输入http://ffmpeg.org/download.ht...,点击windows对应的图标,进入下载界面,点击下载按钮.将下载的zip文件解压到指定目录。将解压后的文件目录下的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):"""Convertanyaudiofile将格式转换为任意音频文件格式Args:filepath(str):文件路径input_audio_type(str):输入音频文件格式output_audio_type(str):输出音频文件格式路径"""song=AudioSegment.from_file(filepath,input_audio_type=filename).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])#导出song.export(f"{input_audio[0]}.{target}",format=target)只需输入文件夹名称,此文件夹下的所有音乐文件都可以转换为mp3格式:trans_all_file("F:\push\20200607\music\")按照我们今天的教程,之后学会这个技巧,你再也不用为转换b而烦恼了etween格式,您可以使用pydub模块轻松解决??这些问题。如果本文对您有帮助,请在文末点击支持。以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能收到海量学习资料,涵盖Python电子书和教程,数据库编程、Django、爬虫、云计算等。或者去编程学习网了解更多编程技术知识。
