raise Error(‘unknown format: %r‘ % (wFormatTag,))wave.Error: unknown format: 3

这个问题我看很多文章都说用什么sox解决, 我嫌麻烦.偶然发现了这个函数可以解决问题

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)

这个函数不是我写的, 来自于下面这个文章, 我偶然做重置采样率的时候发现可以解决这个问题

RNN语音分类-普通话广东话分类_~扬之水~的博客-CSDN博客

侵删

你可能感兴趣的:(python)