我正在浏览这两个 librosa 文档:melspectrogram和stft。
我正在研究可变长度的音频数据集,但我不太了解形状。例如:
(waveform, sample_rate) = librosa.load('audio_file')
spectrogram = librosa.feature.melspectrogram(y=waveform, sr=sample_rate)
dur = librosa.get_duration(waveform)
spectrogram = torch.from_numpy(spectrogram)
print(spectrogram.shape)
print(sample_rate)
print(dur)
Run Code Online (Sandbox Code Playgroud)
输出:
torch.Size([128, 150])
22050
3.48
Run Code Online (Sandbox Code Playgroud)
我得到的有以下几点:
我试图理解或计算:
n_fft是什么?我的意思是它到底对音频波做了什么?我在文档中读到以下内容:
n_fft : int > 0 [标量]
用零填充后加窗信号的长度。STFT 矩阵 D 的行数为 (1 + n_fft/2)。默认值 n_fft=2048 个样本,对应于 22050 Hz 采样率下的 93 毫秒物理持续时间,即 librosa 中的默认采样率。
这意味着在每个窗口中采集 2048 个样本,这意味着 --> 1/22050 * 2048 = 93[ms]。每 …