使用Librosa生成的频谱图与Kaldi看起来不一致?

使用Librosa生成的频谱图与Kaldi看起来不一致?

问题描述:

我使用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 –

Kaldi在dct输出中默认应用提升器,这就是为什么上层系数被衰减的原因。看详情here

+0

我明白了,是的,我很熟悉升降的概念。你知道是否有一种方法可以在Librosa中将提升应用到我的脚本中?我也遇到了这个库(http://python-speech-features.readthedocs.io/en/latest/),它似乎有更常见的ASR选项 – kashkar

+0

它应该是一个向量上的标准乘法。您可以在提取要素之前预先计算矢量。 –