【发布时间】:2018-07-12 12:07:59
【问题描述】:
我正在使用以下代码从录制的大约 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 秒)。代码出了什么问题?
【问题讨论】:
-
你的原始样本是来自立体声文件吗?
-
是的,这是一个立体声wav文件@PaulR
-
OK - 因此,如果您将样本视为单个通道,那么您将获得两倍的持续时间。
-
您知道在从 librosa 调用频谱图方法时是否需要设置任何属性以避免这种情况?顺便说一句,非常感谢您的回答,这对@PaulR 很有帮助
-
我不熟悉特定的库,但是提取单个(左或右)通道或将两个通道组合成单个(单)通道应该相当简单,然后处理。
标签: python audio spectrogram librosa