Esta es una continuación de la discusión aquí . Yo comentaría allí, pero no tengo 50 repeticiones, así que estoy haciendo una nueva pregunta.
Así es como entiendo el paso DCT en el proceso de cálculo de MFCC: la razón detrás de esto es separar la correlación en las magnitudes logarítmicas espectrales (del banco de filtros) debido a la superposición de los filtros. Esencialmente, el DCT suaviza la representación del espectro dada por estas magnitudes log-espectrales.
¿Sería correcto decir que la línea azul en la imagen a continuación representa el espectro representado por el vector de las magnitudes log-espectrales, y la línea roja es ese vector una vez que ha sido DCT?
Respuestas:
Dejame empezar por el principio. La forma estándar de calcular cepstrum es la siguiente:
En el caso de los coeficientes MFCC, el caso es un poco diferente, pero sigue siendo similar.
Después de pre-énfasis y ventanas, calcula el DFT de su señal y aplica el banco de filtros de los filtros triangulares superpuestos, separados en escala mel (aunque en algunos casos la escala lineal es mejor que mel):
Con respecto a la definición de cepstrum, ahora representó la envoltura del espectro (espectro reducido) en la escala de frecuencia de mel. Si representa eso, verá que se parece a su espectro de señal original.
El siguiente paso es calcular el logaritmo de los coeficientes obtenidos anteriormente. Esto se debe al hecho de que se supone que el cepstrum es una transformación homomórfica que separa la señal de la respuesta al impulso del tracto vocal, etc. ¿Cómo?
En el dominio de frecuencia, la convolución es una multiplicación de espectros:
También esperamos que la respuesta al impulso no cambie con el tiempo, por lo que puede eliminarse fácilmente restando la media. Ahora ves por qué tomamos los logaritmos de las energías de nuestra banda.
ifft
Así que ahora ves que ahora es bastante difícil entender cómo se veía el espectro original. Además, generalmente solo tomamos los primeros 12 MFCC, ya que los más altos describen cambios rápidos en las energías de registro, lo que generalmente empeora la tasa de reconocimiento. Entonces, las razones para hacer DCT fueron las siguientes:
Originalmente debe realizar IFFT, pero es más fácil obtener los coeficientes reales de DCT. Además, ya no tenemos espectro completo (todos los contenedores de frecuencia), sino coeficientes de energía dentro de los bancos de filtros de mel, por lo tanto, el uso de IFFT es un poco exagerado.
Verá en la primera figura que los bancos de filtros se superponen, por lo que la energía de unos al lado del otro se está distribuyendo entre dos: DCT permite relacionarlos. Recuerde que esta es una buena propiedad, por ejemplo, en el caso de los modelos de mezcla gaussiana, donde puede usar matrices de covarianza diagonal (sin correlación entre otros coeficientes), en lugar de las completas (todos los coeficientes están correlacionados), esto simplifica mucho las cosas.
Otra forma de descorrelacionar los coeficientes de frecuencia de mel sería PCA (análisis de componentes principales), técnica utilizada exclusivamente para este propósito. Para nuestra suerte, se demostró que DCT es una muy buena aproximación de PCA cuando se trata de señales de descorrelación, de ahí otra ventaja de usar la Transformación discreta de coseno.
Alguna literatura:
fuente
Más que suavizar el DCT reduce el número de dimensiones necesarias para representar el espectro. DCT es bueno para la reducción de la dimensionalidad porque tiende a compactar la mayor parte de la energía del espectro en los primeros coeficientes.
fuente
Esto es incorrecto. Existe una correlación entre las magnitudes logarítmicas espectrales no solo porque se superponen, sino también porque ninguna secuencia de números representa una serie "significativa" (como ocurre en el habla y sonido natural) de la magnitud logarítmica espectral. Las magnitudes log-espectrales "significativas" tienden a ser bastante suaves, con una disminución general de la energía en las frecuencias más altas, etc. Se podría decir que la dimensión del espacio de todos los vectores de magnitud log-espectrales "significativas" es menor que 40 o la cantidad de bandas que use; y el DCT puede verse como una reducción de dimensionalidad para mapear los datos de 40 canales en este espacio más pequeño.
El DCT no suaviza. Verá suavizado al reconstruir a partir de los datos de DCT: el suavizado se debe a la pérdida de información por parte del DCT y al truncamiento del coeficiente que sigue.
Pero los coeficientes MFCC no almacenan el espectro suavizado, sino que almacena una secuencia de coeficientes DCT no correlacionados.
fuente