如何可视化librosa.stft()的结果

时间:2019-07-04 17:13:27

标签: python c librosa

我正在尝试通过C代码获取 stft 的wav文件。所以我也遵循python的librosa库。但是我在这里对hop_length和frame_length的概念感到困惑。

y, sr = librosa.load("sample.wav")  
print(sr)
y.shape
OUTPUT -> 22050
          (739329,)
z = y[0:2048]      #take first 2048 samples only
z.shape
OUTPUT -> (2048,0)
D = librosa.stft(z,n_fft=2048,hop_length=512)          #stft of z
D.shape  
OUTPUT -> (1025,5)

在这里,我采用了由前2048个样本组成的 z 窗口,只是为了简化操作。在 z stft(n_fft = 2048,hop_length = 512)之后,我得到的形状矩阵为(1025,5)

我的理解是什么->

第一个stft将从样本编号0到2048计算。(由于它是对称的,因此只会保存1025个值)

下一步,它将计算从样本数512到2560的stft。(它将在2048之后将值视为零)

第三步,从1024到3072

从1536年到4584年的第四步

从2048到4096的第五步<<-这超出了示例窗口 z 的范围。这不应该被计算

那为什么输出矩阵的形状为(1025,5)?应该为(1025,4)。

也许我的理解在这里是完全错误的。

0 个答案:

没有答案