Ist dies eine korrekte Interpretation des DCT-Schritts in der MFCC-Berechnung?


9

Dies ist eine Fortsetzung der Diskussion hier . Ich würde dort einen Kommentar abgeben, aber ich habe keine 50 Wiederholungen, also stelle ich eine neue Frage.

So verstehe ich den DCT-Schritt im MFCC-Berechnungsprozess: Der Grund dafür ist, die Korrelation in den logarithmischen Spektralgrößen (von der Filterbank) aufgrund der Überlappung der Filter zu trennen. Im Wesentlichen glättet die DCT die Spektraldarstellung, die durch diese logarithmischen Spektralgrößen gegeben ist.

Wäre es richtig zu sagen, dass die blaue Linie im Bild unten das Spektrum darstellt, das durch den Vektor der logarithmischen Spektralgrößen dargestellt wird, und die rote Linie ist dieser Vektor, sobald er DCT-ified ist?

DCT-ified log-spektrale Größen (dh MFCCs) vs. lediglich log-spektrale Größen ???


Wo kann ich Ihren Code zum Testen herunterladen?
Auraham

Das Bild unten? Kein Bild in der Post.
Eric Platon

Antworten:


16

Lassen Sie mich von vorne beginnen. Die Standardmethode zur Berechnung des Cepstrums lautet wie folgt:

C.(x(t))=F.- -1[Log(F.[x(t)]])]]

Bei den MFCC-Koeffizienten ist der Fall etwas anders, aber immer noch ähnlich.

Nach dem Hervorheben und Fenstern berechnen Sie die DFT Ihres Signals und wenden die Filterbank der überlappenden Dreiecksfilter an, die in der Mel-Skala getrennt sind (obwohl in einigen Fällen die lineare Skala besser ist als die Mel-Skala):

Geben Sie hier die Bildbeschreibung ein

In Bezug auf die Cepstrum-Definition haben Sie nun die Hüllkurve des Spektrums (reduziertes Spektrum) in der Mel-Frequenzskala dargestellt. Wenn Sie das darstellen, werden Sie sehen, dass es Ihrem ursprünglichen Signalspektrum ähnelt.

Der nächste Schritt besteht darin, den Logarithmus der oben erhaltenen Koeffizienten zu berechnen. Dies liegt an der Tatsache, dass Cepstrum eine homomorphe Transformation sein soll, die das Signal von der Impulsantwort des Vokaltrakts usw. trennt. Wie?

s(t)h(t)

s^(t)=s(t)h(t)

Im Frequenzbereich ist die Faltung eine Multiplikation von Spektren:

S.^(f)=S.(f)H.(f)

Log(einb)=Log(ein)+Log(b)

Wir erwarten auch, dass sich die Impulsantwort im Laufe der Zeit nicht ändert, sodass sie leicht durch Subtrahieren des Mittelwerts entfernt werden kann. Jetzt sehen Sie, warum wir die Logarithmen unserer Bandenergien nehmen.

F.- -1ifft

Geben Sie hier die Bildbeschreibung ein

Jetzt sehen Sie, dass es ziemlich schwer zu verstehen ist, wie das ursprüngliche Spektrum aussah. Zusätzlich nehmen wir normalerweise nur die ersten 12 MFCCs, da höhere schnelle Änderungen der logarithmischen Energien beschreiben, was normalerweise die Erkennungsrate verschlechtert. Die Gründe für die Durchführung von DCT waren also folgende:

  • Ursprünglich müssen Sie IFFT durchführen, aber es ist einfacher, die reellen Koeffizienten von DCT zu erhalten. Außerdem haben wir nicht mehr das gesamte Spektrum (alle Frequenzbereiche), sondern Energiekoeffizienten innerhalb der Mel-Filterbänke. Daher ist die Verwendung von IFFT ein wenig übertrieben.

  • Sie sehen in der ersten Abbildung, dass sich Filterbänke überlappen, sodass die Energie von nebeneinander liegenden Bänken auf zwei verteilt wird - DCT ermöglicht es, sie zu dekorrelieren. Denken Sie daran, dass dies eine gute Eigenschaft ist, zum Beispiel bei Gaußschen Mischungsmodellen, bei denen Sie diagonale Kovarianzmatrizen (keine Korrelation zwischen anderen Koeffizienten) anstelle von vollständigen (alle Koeffizienten sind korreliert) verwenden können - dies vereinfacht die Dinge erheblich.

  • Eine andere Möglichkeit, Mel-Frequenzkoeffizienten zu dekorrelieren, wäre PCA (Principal Component Analysis), eine Technik, die ausschließlich für diesen Zweck verwendet wird. Zu unserem Glück wurde bewiesen, dass DCT eine sehr gute Annäherung an PCA ist, wenn es um das Dekorrelieren von Signalen geht, daher ein weiterer Vorteil der Verwendung der diskreten Cosinustransformation.


Einige Literatur:

Hyoung-Gook Kim, Nicolas Moreau und Thomas Sikora - MPEG-7 Audio und darüber hinaus: Indizierung und Abruf von Audioinhalten


1
Warum können wir den absoluten Wert der komplexen Zahlen nicht aus der IFFT entnehmen? Wenn die komplexen Zahlen viel schwieriger zu handhaben sind, warum nehmen wir bei der Berechnung eines Cepstrums jemals die IFFT und nicht immer die DCT? Danke für die Erklärung. Diese Zahl war besonders hilfreich.
Acannon828

1
@ acannon828: Bitte sehen Sie die letzten 3 Punkte meiner bearbeiteten Antwort. Ich hoffe, dass es jetzt alles erklärt.
Jojek

Tolle Resonanz. Jede Literatur, die Sie dazu anhängen könnten.
Bob Burt

1
@ BobBurt: Los geht's!
Jojek

Danke für das Buch. Die meisten Dinge scheinen in diesem erklärt zu sein. Behandelt das Buch auch die Theorie über den Stimmapparat - ich scheine nichts in der Lage zu sein, etwas damit zu tun.
Bob Burt

3

Mehr als das Glätten der DCT reduziert die Anzahl der Dimensionen, die zur Darstellung des Spektrums erforderlich sind. DCT eignet sich gut zur Verringerung der Dimensionalität, da es dazu neigt, den größten Teil der Energie des Spektrums in den ersten Koeffizienten zu verdichten.


Vielen Dank. Dies half mir zu verstehen, was @pichenettes unter Dimensionsreduktion meinte.
Acannon828

3

Das Grundprinzip dahinter besteht darin, die Korrelation in den logarithmischen Spektralgrößen (von der Filterbank) aufgrund der Überlappung der Filter zu trennen. Im Wesentlichen glättet die DCT die Spektraldarstellung, die durch diese logarithmischen Spektralgrößen gegeben ist.

Das ist falsch. Es besteht eine Korrelation zwischen den logarithmischen Spektralgrößen, nicht nur, weil sie sich überlappen, sondern auch, weil keine Folge von Zahlen eine "bedeutungsvolle" (wie in natürlicher Sprache und Ton vorkommende) Reihe von logarithmischen Spektralgrößen darstellt. "bedeutungsvolle" logarithmische Spektralgrößen sind tendenziell ziemlich glatt, mit einer Gesamtabnahme der Energie in den höheren Frequenzen usw. Man würde sagen, dass die Dimension des Raums aller "bedeutungsvollen" logarithmischen spektralen Größenvektoren kleiner als 40 oder ist welche Anzahl von Bändern Sie verwenden; und die DCT kann als Dimensionsreduktion angesehen werden, um die 40-Kanal-Daten auf diesen kleineren Raum abzubilden.

Im Wesentlichen glättet die DCT die Spektraldarstellung, die durch diese logarithmischen Spektralgrößen gegeben ist.

Das DCT führt keine Glättung durch. Sie sehen eine Glättung bei der Rekonstruktion aus den DCT-Daten - die Glättung ist auf den Informationsverlust durch die DCT und die folgende Koeffizientenabschneidung zurückzuführen.

Die MFCC-Koeffizienten speichern jedoch nicht das geglättete Spektrum - sie speichern eine Folge von nicht korrelierten DCT-Koeffizienten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.