我遇到了使用librosa为音频文件生成log-mel频谱图的两种不同方法,我不知道它们在最终输出中为什么不同,哪一种是“正确的”,或者一种与另一种有多大的不同。
#1
path = "path/to/my/file"
scale, sr = librosa.load(path)
mel_spectrogram = librosa.feature.melspectrogram(scale, sr, n_fft=2048, hop_length=512, n_mels=10, fmax=8000)
log_mel_spectrogram = librosa.power_to_db(mel_spectrogram)
librosa.display.specshow(log_mel_spectrogram, x_axis="time", y_axis="mel", sr=sr)
#2
path = "path/to/my/file"
scale, sr = librosa.load(path)
X = librosa.stft(scale)
Xdb = librosa.amplitude_to_db(abs(X))
librosa.display.specshow(Xdb, sr=sr, x_axis='time', y_axis='hz')
相应的图像为:
**编辑**现在我将mel条柱的数量指定为= 64,我获得了如下所示的谱图:
如果我想处理许多这样的光谱图,我是否应该修剪上面的蓝色粗体部分,因为它对所有人都是常见的?粗体的深色区域代表什么?建议使用fmax参数来修剪它吗?
发布于 2021-05-09 16:50:38
第二个谱图不是mel谱图,而是STFT (有时称为“线性”)谱图。它拥有快速傅立叶变换的所有频段,(n_ FFT /2)+1个频段,1025个n_fft=2048频段。其中-因为mel频谱图应用了mel过滤器,从而将波段数减少到n_mels (通常为32-128),在您的示例中设定为10。
https://stackoverflow.com/questions/67451239
复制相似问题