2017-04-05 3 views
1

Ich generierte Spektrogramm einer "sieben" Äußerung mit dem "egs/tidigits" -Code von Kaldi, mit 23 Bins, 20kHz Abtastrate, 25ms Fenster und 10ms Shift. Spektrogramm wird wie folgt über MATLAB imagesc Funktion visualisiert:Spektrogramme, die mit Librosa erstellt wurden, sehen nicht wie Kaldi aus?

kaldi "seven" spectrogram

Ich experimentiere mit der Verwendung von Librosa als Alternative zu Kaldi. Ich habe meinen Code wie unten beschrieben mit der gleichen Anzahl von Bins, Abtastrate und Fensterlänge/Verschiebung wie oben beschrieben eingerichtet.

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) 

Allerdings, wenn ich die resultierende Librosa Spektrogramm der gleichen WAV-Datei visualisieren sieht es anders aus:

librosa "seven" spectrogram

Kann jemand bitte helfen Sie mir zu verstehen, warum diese so anders aus? Über andere WAV-Dateien, die ich ausprobiert habe, stelle ich fest, dass mit meinem obigen Librosa-Skript meine Frikative (wie das/s/in "seven" im obigen Beispiel) abgeschnitten werden, was meine Genauigkeit der Ziffernklassifizierung stark beeinflusst. Vielen Dank!

+0

Diese Frage gehört zu http://dsp.stackexchange.com –

Antwort

2

Kaldi wendet Heber standardmäßig auf den Ausgang dct an, deshalb werden die oberen Koeffizienten gedämpft. Siehe Details here.

+0

Ich sehe, ja ich bin vertraut mit dem Konzept der Liftering. Weißt du, ob es auch in Librosa eine Möglichkeit gibt, Lifting auf mein Skript anzuwenden? Ich stieß auch auf diese Bibliothek (http://python-speech-features.readthedocs.io/en/latest/), die ASR-Optionen häufiger zu haben scheint – kashkar

+0

Es sollte eine Standard-Multiplikation auf einem Vektor sein. Sie können Vektor vor dem Extrahieren von Features vorberechnen. –

Verwandte Themen