我正在使用以下代码从大约30秒的录制音频信号中获得梅尔频谱图:

spectrogram =  librosa.feature.melspectrogram(y=self.RawSamples,sr=self.SamplingFrequency, n_mels=128, fmax=8000)

    if show:
        plt.figure(figsize=(10, 4))
        librosa.display.specshow(librosa.power_to_db(self.Spectrogram, ref=np.max), y_axis='mel', fmax=8000, x_axis='time')
        plt.colorbar(format='%+2.0f dB')
        plt.title('Mel spectrogram')
        plt.tight_layout()

频谱图:Mel spectrogram

您能解释一下为什么时间轴描绘的是持续时间的两倍(应该是30秒)。代码出了什么问题?

最佳答案

您需要将采样率传递给librosa.display.specshow(sr = self.SamplingFrequency)。如果不是,则默认为20050;如果self.SamplingFrequency是其他值,它将显示错误的长度。

关于python - 为什么librosa库中的频谱图的持续时间是实际音轨的两倍?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51305317/

10-09 17:07