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?
filters
mfcc
cepstral-analysis
Andrea Spadaccini
quelle
quelle
Antworten:
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.
quelle
Der Schlüssel zum Verständnis von MFCC befindet sich am Anfang des Satzes im verlinkten Artikel:
MFCCs sind wie ein Spektrum eines logarithmischen Spektrums , das Cepstrum .
Das Cepstrum eines Signalsx ( t ) ist nur:
woherF 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.
quelle