librosa提取melspectrogram代码
audio, _ = librosa.load(file_path, sr=16000, mono=True)
mel_spec = librosa.feature.melspectrogram(y=audio, sr=sample_rate, n_mels=n_mels)
报错内容
这样会显示第二句报错:
librosa.util.exceptions.ParameterError: data must be floating-point
解决方法
方法一
看到有博客这样写:
提示输入的y必须是浮点型,如果直接强制转换整形的y为浮点型效果不好,实际上我也没有成功,于是我们可以将y=sig直接归一化
sig = sig/max(abs(sig))
但是我这么做了还是会报错
方法二
我们需要改动load的方式
audio, _ = librosa.load(str(file_path), sr=16000, mono=True)
把路径转换成string型,这样读出来的audio才会是正确的datatype。