En reconnaissance vocale, le système frontal traite généralement les signaux pour permettre l'extraction des caractéristiques du flux audio. Une transformée de Fourier discrète (DFT) est appliquée deux fois dans ce processus. La première fois, c'est après le fenêtrage. Après cela, Mel est appliqué, puis une autre transformation de Fourier.
J'ai toutefois remarqué qu'il est courant dans les systèmes de reconnaissance vocale (le frontal par défaut dans CMU Sphinx , par exemple) d'utiliser une transformation en cosinus discrète (DCT) au lieu d'une transformation DFT pour la deuxième opération. Quelle est la différence entre ces deux opérations? Pourquoi voudriez-vous faire DFT la première fois et ensuite un DCT la deuxième fois?
Réponses:
Les transformées de Fourier discrète (DFT) et de transformée de cosinus discrète (DCT) remplissent des fonctions similaires: elles décomposent toutes les deux un vecteur à temps discret de longueur finie en une somme de fonctions de base mises à l'échelle et décalées. La différence entre les deux est le type de fonction de base utilisé par chaque transformation; la DFT utilise un ensemble de fonctions exponentielles complexes liées de manière harmonique, tandis que la DCT utilise uniquement des fonctions cosinus (à valeurs réelles).
La DFT est largement utilisée pour les applications générales d’analyse spectrale qui s’inscrivent dans divers domaines. Il est également utilisé comme élément de base pour les techniques qui tirent parti des propriétés de la représentation du domaine fréquentiel des signaux, telles que les algorithmes de convolution rapide avec recouvrement et ajout-chevauchement.
Le DCT est fréquemment utilisé dans les applications de compression de données avec pertes, telles que le format d'image JPEG. La propriété de la DCT qui la rend tout à fait adaptée à la compression est son degré élevé de "compactage spectral"; au niveau qualitatif, la représentation DCT d'un signal tend à concentrer davantage son énergie dans un petit nombre de coefficients par rapport à d'autres transformations telles que la transformation DFT. Ceci est souhaitable pour un algorithme de compression; Si vous pouvez représenter approximativement le signal d'origine (dans le domaine temporel ou spatial) à l'aide d'un ensemble relativement petit de coefficients DCT, vous pouvez réduire vos besoins en stockage de données en ne stockant que les sorties DCT contenant des quantités d'énergie significatives.
la source
J'ai constaté que certains détails du wiki DCT (également partagé par Pearsonartphoto) soulignent que le DCT est bien adapté aux applications de compression. La fin de section Aperçu informel est utile (les caractères gras sont les miens).
De plus, vous pouvez trouver que cette réponse est également utile (de math.stackexchange.com). Il est dit:
la source
La transformation de Fourier appliquée à deux reprises lors du processus d'extraction de fonctionnalités s'explique par le fait que les fonctionnalités sont basées sur un concept appelé cepstrum. Cepstrum est un jeu de spectre de mots. L’idée est essentiellement de transformer un signal en domaine de fréquence par transformée de Fourier, puis d’effectuer une autre transformation comme si le spectre de fréquences était un signal.
Alors que le spectre de fréquences décrit l’amplitude et la phase de chaque bande de fréquences, le cepstre caractérise les variations entre les bandes de fréquences. Les caractéristiques dérivées du cepstre décrivent mieux la parole que les caractéristiques tirées directement du spectre de fréquences.
Il existe quelques définitions légèrement différentes. À l'origine, la transformée cepstrale était définie par la transformée de Fourier -> logarithme complexe -> la transformée de Fourier [1]. Une autre définition est transformée de Fourier -> logarithme complexe -> transformée de Fourier inverse [2]. La motivation de cette dernière définition réside dans sa capacité à séparer les signaux convolués (la parole humaine est souvent modélisée comme la convolution d’une excitation et d’un conduit vocal).
Un choix populaire qui s’est avéré efficace dans les systèmes de reconnaissance vocale est l’application d’une banque de filtres non linéaire dans le domaine fréquentiel (le mél binning dont vous parlez) [3]. L'algorithme particulier est défini comme étant une transformation de Fourier -> un carré de magnitude -> une banque de filtres mel -> un logarithme réel -> une transformation en cosinus discrète.
Ici, DCT peut être sélectionné comme seconde transformation, car pour une entrée à valeur réelle, la partie réelle de la DFT est une sorte de DCT. La préférence est donnée à DCT parce que la sortie est approximativement décorrélée. Les entités décorrélées peuvent être modélisées efficacement sous la forme d'une distribution gaussienne avec une matrice de covariance diagonale.
[1] Bogert, B., Healy, M. et Tukey, J. (1963). La série des séries chronologiques de Quefrency pour Echoes: Cepstrum, Pseudo-Autocovariance, Cross-Cepstrum et Saphe Cracking. Dans Actes du symposium sur l'analyse des séries chronologiques, p. 209-243.
[2] Oppenheim, A. et Schafer, R. (1968). Analyse homomorphique de la parole. Dans IEEE Transactions on Audio et Electroacoustics 16, p. 221-226.
[3] Davis, S. et Mermelstein, P. (1980). Comparaison des représentations paramétriques pour la reconnaissance de mots monosyllabique dans les phrases parlées en continu. Dans Transactions IEEE sur l'acoustique, le traitement de la parole et des signaux 28, p. 357-366.
la source
La différence entre une transformation discrète de Fourier et une transformation discrète en cosinus réside dans le fait que la DCT utilise uniquement des nombres réels, tandis qu'une transformation de Fourier peut utiliser des nombres complexes. L'utilisation la plus courante d'un DCT est la compression. Cela équivaut à une FFT de deux fois la longueur.
la source