Wie interpretiere ich den DCT-Schritt im MFCC-Extraktionsprozess?

20

Bei den meisten Audioverarbeitungsaufgaben ist eine der am häufigsten verwendeten Transformationen MFCC (Mel-Frequenz-Cepstral-Koeffizienten) .

Ich kenne hauptsächlich die Mathematik, die hinter dem MFCC steckt: Ich verstehe sowohl den Filterbankschritt als auch die Mel-Frequenzskalierung.

Was ich nicht bekomme, ist der DCT-Schritt (Discrete Cosine Transform): Welche Informationen erhalte ich in diesem Schritt? Was ist eine gute visuelle Darstellung dieses Schritts?

Andrea Spadaccini
quelle
1
Ich würde eine kurze Erklärung von MFCC oder zumindest einen Link hinzufügen: en.wikipedia.org/wiki/Mel-frequency_cepstral_coefficient
eine Art Roboter

Antworten:

16

Sie können sich die DCT als einen Komprimierungsschritt vorstellen. Typischerweise nehmen Sie bei MFCCs die DCT und behalten dann nur die ersten Koeffizienten bei. Dies ist im Grunde derselbe Grund, warum die DCT bei der JPEG-Komprimierung verwendet wird. DCTs werden ausgewählt, weil ihre Randbedingungen bei diesen Signaltypen besser funktionieren.

Vergleichen wir die DCT mit der Fourier-Transformation. Die Fourier-Transformation besteht aus Sinuskurven mit einer ganzzahligen Anzahl von Zyklen. Dies bedeutet, dass alle Fourier-Basisfunktionen mit demselben Wert beginnen und enden. Sie können keine Signale darstellen, die mit unterschiedlichen Werten beginnen und enden. Denken Sie daran, dass die Fourier-Transformation eine periodische Ausdehnung annimmt: Wenn Sie sich Ihr Signal auf einem Blatt Papier vorstellen, möchte die Fourier-Transformation dieses Blatt in einen Zylinder rollen, sodass sich die linke und die rechte Seite treffen.

Stellen Sie sich ein Spektrum vor, das ungefähr die Form einer Linie mit negativer Steigung hat (was ziemlich typisch ist). Die Fourier-Transformation muss viele verschiedene Koeffizienten verwenden, um dieser Form zu entsprechen. Andererseits hat die DCT Cosinus mit einer halben ganzen Anzahl von Zyklen. Es gibt zum Beispiel eine DCT-Basisfunktion, die ungefähr so ​​aussieht wie diese Linie mit negativer Steigung. Es wird keine Punktverlängerung (stattdessen eine gerade Verlängerung) vorausgesetzt, sodass diese Form besser angepasst werden kann.

Also, lassen Sie uns das zusammenstellen. Sobald Sie das Mel-Frequenzspektrum berechnet haben, haben Sie eine Darstellung des Spektrums, das ähnlich empfindlich ist wie das menschliche Gehör. Einige Aspekte dieser Form sind relevanter als andere. In der Regel ist die größere, übergreifendere Spektralform wichtiger als die verrauschten feinen Details im Spektrum. Sie können sich vorstellen, eine glatte Linie zu zeichnen, die der Spektralform folgt, und die von Ihnen gezeichnete glatte Linie sagt Ihnen möglicherweise genau so viel über das Signal aus.

Wenn Sie die DCT nehmen und die höheren Koeffizienten verwerfen, nehmen Sie diese Spektralform und behalten nur die Teile bei, die für die Darstellung dieser glatten Form wichtiger sind. Wenn Sie die Fourier-Transformation verwenden würden, wäre es nicht so gut, die wichtigen Informationen in den niedrigen Koeffizienten zu belassen.

Wenn Sie darüber nachdenken, die MFCCs als Merkmale einem Algorithmus für maschinelles Lernen zuzuführen, sind diese Koeffizienten niedrigerer Ordnung gute Merkmale, da sie einige einfache Aspekte der Spektralform darstellen, während die Koeffizienten höherer Ordnung, die Sie verwerfen, rauschähnlicher sind und sind nicht wichtig zu trainieren. Darüber hinaus wäre das Training der Mel-Spektrum-Größen selbst wahrscheinlich nicht so gut, da die jeweilige Amplitude bei verschiedenen Frequenzen weniger wichtig ist als die allgemeine Form des Spektrums.

schnarf
quelle
Interessant, diese Antwort auch auf eine verwandte Frage zu lesen .
Eric Platon
8

Der Schlüssel zum Verständnis von MFCC befindet sich am Anfang des Satzes im verlinkten Artikel:

Sie leiten sich aus einer Art Cepstraldarstellung des Audioclips ab ...

MFCCs sind wie ein Spektrum eines logarithmischen Spektrums , das Cepstrum .

Das Cepstrum eines Signals x(t)ist nur:

C(z)=F-1(Log(|F(x(t))|2)

woher F ist die Fourier-Transformation und F-1 es ist umgekehrt.

Der Grund, warum das Cepstrum ordentlich ist, ist, dass die zwischengeschaltete Logarithmusoperation bedeutet, dass Faltungen des ursprünglichen Signals als einfache Additionen im Cepstrum erscheinen .

Dieser Vorteil überträgt sich auf die MFCCs, obwohl das Liftering nicht so direkt ist wie beim Standard-Cepstrum.

Wo sich die MFCC unterscheidet, ist die Verwendung der diskreten Cosinustransformation (DCT) als endgültige Transformation anstelle der inversen Fouriertransformation.

Der Vorteil der DCT gegenüber der Fourier-Transformation besteht darin, dass die resultierenden Koeffizienten reell sind , was die nachfolgende Verarbeitung und Speicherung erleichtert.

Peter K.
quelle