2017-04-05 67 views
1

我使用Kaldi的「egs/tidigits」代碼,使用23個採樣率,20kHz採樣率,25ms窗口和10ms偏移量生成「七個」話語的頻譜圖。頻譜似乎是通過MATLAB於imagesc功能如下顯現:使用Librosa生成的頻譜圖與Kaldi看起來不一致?

kaldi "seven" spectrogram

我用Librosa作爲替代Kaldi試驗。我使用與上面相同的bin數,採樣率和窗口長度/移位來設置我的代碼。

time_series, sample_rate = librosa.core.load("7a.wav",sr=20000) 
spectrogram = librosa.feature.melspectrogram(time_series, sr=20000, n_mels=23, n_fft=500, hop_length=200) 
log_S = librosa.core.logamplitude(spectrogram) 
np.savetxt("7a.txt", log_S.T) 

然而,當我想象的一樣WAV的產生Librosa譜圖文件看起來不同:

librosa "seven" spectrogram

是否有人可以幫助我瞭解爲什麼這些看起來如此不同?在我嘗試過的其他WAV文件中,我注意到,使用上面的Librosa腳本,我的摩擦音(如上例中的/ s /在「seven」中)被截斷,這極大地影響了我的數字分類準確性。謝謝!

+0

這個問題屬於http://dsp.stackexchange.com –

回答

2

Kaldi在dct輸出中默認應用提升器,這就是爲什麼上層係數被衰減的原因。看詳情here

+0

我明白了,是的,我很熟悉升降的概念。你知道是否有一種方法可以在Librosa中將提升應用到我的腳本中?我也遇到了這個庫(http://python-speech-features.readthedocs.io/en/latest/),它似乎有更常見的ASR選項 – kashkar

+0

它應該是一個向量上的標準乘法。您可以在提取要素之前預先計算矢量。 –

相關問題