Ceci est la suite de la discussion ici . Je ferais un commentaire là-dessus, mais je n'ai pas 50 représentants, alors je pose une nouvelle question.
Voici comment je comprends l'étape DCT dans le processus de calcul du MFCC: La raison derrière cela est de séparer la corrélation dans les amplitudes log-spectrales (du banc de filtres) en raison du chevauchement des filtres. Essentiellement, le DCT lisse la représentation spectrale donnée par ces grandeurs log-spectrales.
Serait-il exact de dire que la ligne bleue dans l'image ci-dessous représente le spectre représenté par le vecteur des grandeurs log-spectrales, et la ligne rouge est ce vecteur une fois qu'il a été DCT?
Réponses:
Commençons par le début. La méthode standard de calcul du cepstre est la suivante:
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 originals ( t ) est principalement convolué avec une réponse impulsionnelle h ( t ) du tractus vocal:
Dans le domaine fréquentiel, la convolution est une multiplication des spectres:
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.
ifft
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:
la source
Plus qu'un lissage, le DCT réduit le nombre de dimensions nécessaires pour représenter le spectre. Le DCT est bon pour la réduction de dimensionnalité car il a tendance à compacter la plupart de l'énergie du spectre dans les premiers coefficients.
la source
Ceci est une erreur. Il existe une corrélation entre les grandeurs log-spectrales non seulement parce qu'elles se chevauchent, mais aussi parce qu'aucune séquence de nombres ne représente une série "significative" (comme dans, se produisant dans la parole et le son naturels) de magnitude log-spectrale. les grandeurs log-spectrales "significatives" ont tendance à être plutôt lisses, avec une diminution globale de l'énergie dans les fréquences plus élevées, etc. On dirait que la dimension de l'espace de tous les vecteurs de magnitude log-spectrale "significatives" est inférieure à 40 ou quel que soit le nombre de bandes que vous utilisez; et le DCT peut être considéré comme une réduction de dimensionnalité pour mapper les données à 40 canaux sur cet espace plus petit.
Le DCT n'effectue aucun lissage. Vous voyez le lissage lors de la reconstruction à partir des données DCT - le lissage étant dû à la perte d'informations par le DCT et à la troncature des coefficients qui suit.
Mais les coefficients MFCC ne stockent pas le spectre lissé - il stocke une séquence de coefficients DCT non corrélés.
la source