如何使用librosa获取特定形状的log mel谱图

问题描述 投票:0回答:1

我有一些音频文件,我想将其转换为对数梅尔频谱图。我需要对梅尔频谱图的形状为

(512,512)
。我将 n_mels 更改为 512,以获得第一个维度 512,但我无法将所有音频的第二个维度更改为 512。我尝试通过反复试验来尝试 hop_length 值,在某些音频文件中它可以工作,而在其他音频文件中则不能。我们如何使用 librosa 获得特定形状的对数梅尔频谱图?

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=512, 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) ``` 

python audio librosa spectrogram mel
1个回答
0
投票

频谱图的第二个维度是时间。因此,如果您的音频剪辑具有可变的持续时间,则此尺寸。

标准方法是将音频剪辑/流划分为固定长度的时间窗口。例如,窗口长度为 1 秒。然后您可以设置 hop_length 使其变为 512 个 bin。请注意,窗口的长度以及每帧的长度是一个重要参数,会影响分析的容易程度。 声音数据一帧长度的传统选择是 10-40 毫秒,相当于每秒 100-25 帧。 对于数据分析,通常会计算具有一定重叠的窗口,例如 50% 甚至 90%。

© www.soinside.com 2019 - 2024. All rights reserved.