在做语音相关工作时,经常会遇到要转换音频文件格式。读取音频格式有很多python库,比如librosa、scipy.io.wavfile、soundfile、pydub等等,但是笔者在实现flac转wav时使用librosa.load死活load不进来flac文件(总是报除数为0的错误),于是探索一种转换文件格式的方法。
搜索发现有个叫做ffmpeg的工具非常强大,接下来讲解使用ffmpeg批量修改文件格式的方法。(windows10环境下)
下载ffmpeg,注意下载的是windows版本。解压后,将ffmpeg.exe所在路径加入环境变量path。使用如下代码:
def flac_to_wav(filepath, savedir):filename = filepath.replace('.flac', '.wav')savefilename = filename.split('\\')save_dir = savedir + '\\' + savefilename[-1]print(save_dir)cmd = 'ffmpeg.exe -i ' + filepath + ' ' + save_diros.system(cmd)audio_path = r"你的带转换的音频文件路径"savedir = r"新保存路径"flac_to_wav(audio_path, savedir)# 批量处理path = r'你的音频文件夹路径'for root, dirs, files in os.walk(path):for name in files:filepath = root + "\\" + nameif filepath.split('.')[-1] == "flac":flac_to_wav(filepath, savedir)
如果ffmpeg报错不存在的话,将ffmpeg.exe文件复制到你当前代码的目录下即可。如果要转换其他格式,修改代码第二行即可。