"""
这个代码还可以解决
raise Error('unknown format: %r' % (wFormatTag,))
wave.Error: unknown format: 3
这个bug
"""
import os
import librosa
import soundfile as sf
def resample4wavs(frompath, topath, resamplerate):
'''
:param frompath: 源文件所在目录
:param topath: 重置采样率文件存放目录
源文件目录和重置采样率目录可以是一个目录但是会覆盖原来的文件
:param resamplerate: 重置采样率
:return:
'''
fs = os.listdir(frompath)
for f in fs:
try:
fromfile = frompath + f
print(fromfile)
tofile = topath + f
y, sr = librosa.load(fromfile)
to_y = librosa.resample(y, sr, resamplerate)
# librosa.output.write_wav(tofile, to_y, resamplerate)过时代码, 需要换成下面的代码
sf.write(tofile, to_y, resamplerate)
except Exception as e:
print('Error:', e)
#需要重置采样率的文件所在的文件夹
path_1 = r''
#重置采样率后的文件所在的文件夹
path_2=r''
#48000是重置后的采样率,这些都按照自己需要修改
resample4wavs(path_1, path_2, 48000)
转自:raise Error(‘unknown format: %r‘ % (wFormatTag,))wave.Error: unknown format: 3