Commençons par le début. La méthode standard de calcul du cepstre est la suivante:
C( x ( t ) ) = F- 1[ journal( F[ x ( t ) ] ) ]
Dans le cas des coefficients MFCC, le cas est un peu différent, mais toujours similaire.
Après la préaccentuation et le fenêtrage, vous calculez la DFT de votre signal et appliquez la banque de filtres des filtres triangulaires qui se chevauchent, séparés en échelle de mel (bien que dans certains cas, l'échelle linéaire soit meilleure que mel):
En ce qui concerne la définition du cepstre, vous représentez maintenant l'enveloppe du spectre (spectre réduit) à l'échelle de fréquence de mel. Si vous représentez cela, alors vous verrez qu'il ressemble un peu à votre spectre de signal d'origine.
L'étape suivante consiste à calculer le logarithme des coefficients obtenus ci-dessus. Cela est dû au fait que le cepstre est censé être une transformation homomorphe qui sépare le signal de la réponse impulsionnelle du tractus vocal, etc. Comment?
Un signal de parole original s ( t ) est principalement convolué avec une réponse impulsionnelle h ( t ) du tractus vocal:
s^( t ) = s ( t ) ⋆ h ( t )
Dans le domaine fréquentiel, la convolution est une multiplication des spectres:
S^( f) = S( f) ⋅ H( f)
Journal( a ⋅ b ) = log( a ) + journal( B )
Nous nous attendons également à ce que la réponse impulsionnelle ne change pas au fil du temps, elle peut donc être facilement éliminée en soustrayant la moyenne. Vous voyez maintenant pourquoi nous prenons les logarithmes de nos énergies de bande.
F- 1ifft
Alors maintenant, vous voyez que maintenant il est assez difficile de comprendre à quoi ressemblait le spectre d'origine. De plus, nous ne prenons généralement que les 12 premiers MFCC, car les plus élevés décrivent des changements rapides dans les énergies logarithmiques, ce qui aggrave généralement le taux de reconnaissance. Donc, les raisons de faire du DCT étaient les suivantes:
À l'origine, vous devez effectuer l'IFFT, mais il est plus facile d'obtenir les coefficients réels de DCT. De plus, nous n'avons plus de spectre complet (tous les bacs de fréquences), mais des coefficients d'énergie dans les bancs de filtres mel, donc l'utilisation de l'IFFT est un peu exagérée.
Vous voyez sur la première figure que les banques de filtres se chevauchent, donc l'énergie des uns à côté des autres est répartie entre deux - DCT permet de les décorréler. N'oubliez pas que c'est une bonne propriété par exemple dans le cas des modèles de mélange gaussiens, où vous pouvez utiliser des matrices de covariance diagonale (pas de corrélation entre les autres coefficients), au lieu de pleines (tous les coefficients sont corrélés) - cela simplifie beaucoup les choses.
Une autre façon de décorréler les coefficients de fréquence du mel serait l'ACP (analyse en composantes principales), technique utilisée uniquement à cette fin. Pour notre chance, il a été prouvé que le DCT est une très bonne approximation de l'ACP en ce qui concerne la décorrélation des signaux, d'où un autre avantage de l'utilisation de la transformation cosinus discrète.
Quelques publications:
Hyoung-Gook Kim, Nicolas Moreau, Thomas Sikora - MPEG-7 Audio et au-delà: indexation et récupération de contenu audio