ParameterError : data must be floating-point (librosa)

ParameterError : data must be floating-point (librosa)

参考:https://github.com/librosa/librosa/blob/master/examples/LibROSA%20demo.ipynb

代码:

import librosa

S = librosa.feature.melspectrogram(samples, sr=sample_rate, n_mels=128)

log_S = librosa.power_to_db(S, ref=np.max)
plt.figure(figsize=(12,4))

librosa.display.specshow(log_S, sr=sample_rate, x_axis='time', y_axis='mel')

plt.title('mel power spectrogram')

plt.colorbar(format='%+02.0f dB')

plt.tight_layout()

我得到的错误:

下面方法中的参数 --> samples 不正确。

S = librosa.feature.melspectrogram(samples, sr=sample_rate, n_mels=128)

我们正在从读取的 wavfile 中获取样本。

sample_rate, samples = wavfile.read(str(train_audio_path) + filename)

这里指定了问题wave file read wrong

所以使用下面的代码行获取 samples 正确的数据类型。

samples, sample_rate = librosa.load(str(train_audio_path)+filename)

参考:librosa.github.io