簡體   English   中英

計算.wav文件窗口上的功率譜圖

[英]Calculating power-spectrogram on a window of a .wav file

我正在嘗試計算聲音文件的一部分的功率譜圖。 目前我正在使用librosa

我用20 * 1e-3 * samplerate計算我的windowsize。 我想知道的是結果(特別是t的長度),如下例所示:

44.1kHz的采樣率與20ms的時間幀相結合產生882個樣本的窗口。

In [2]: D = np.abs(librosa.stft(y[:882]))**2

In [3]: np.shape(D)
Out[4]: (1025, 2)

我得到的是我的結果中的2ms時間幀,這不是我的預期。 有人可以幫助我/指出我做錯了什么嗎?

默認情況下, librosa.stft使用的FFT大小為n_fft為2048,輸出的第一個維度與實際輸入信號的非冗余頻率分量的數量相匹配( 1+n_fft/2 ,在本例中為1025)。

第二個維度由時間片的數量決定,我認為這是你有點困惑的地方,期待你的882個樣本中的一個時間片。 但是, librosa.stft計算重疊時間片的輸出。 默認情況下,每個切片使用的樣本數設置為win_length / 4 ,因為您沒有指定win_length ,所以設置為n_fft / 4或512.充分利用您的882個樣本(並根據需要填充) ,這給你兩片:

  • 樣品0至2047;
  • 另一個用於樣本512到881,並添加零填充。

如果您不想重疊,可以將hop_length參數設置為與n_fft匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM