如何使用specshow以对数刻度绘制频谱图?

时间:2019-08-12 15:10:06

标签: python scale spectrogram librosa

我正在用Librosa的python中的以下代码绘制频谱图:

y, sr = librosa.load( file, sr=16000)
S_full, phase = librosa.magphase(librosa.stft(y, n_fft= 8192))
librosa.display.specshow(librosa.power_to_db(S_full, ref=np.max), sr= sr, x_axis='time', y_axis='log')

我的问题是我想在时间轴上更改比例(现在输出显示9分钟,但我想将其更改为24小时),为此,我知道我应该更改“ sr”和“ hop_length”,那么我将在下面使用此行:

librosa.display.specshow(librosa.power_to_db(S_full, ref=np.max), sr= 100, x_axis='time', y_axis='log', hop_length= 34)

我唯一的问题是,当我在specshow命令中使用“ sr”时,“ y_axis ='log'”不起作用,并且它显示了y轴的线性比例,但是我需要对数比例。我还尝试了plt.yscale('log'),但此命令无法正常运行。

0 个答案:

没有答案