En el reconocimiento de voz, el front end generalmente procesa la señal para permitir la extracción de características del flujo de audio. Una transformada discreta de Fourier (DFT) se aplica dos veces en este proceso. La primera vez es después de la ventana; después de esto se aplica Mel binning y luego otra transformada de Fourier.
Sin embargo, he notado que es común en los reconocedores de voz (el front-end predeterminado en CMU Sphinx , por ejemplo) usar una transformada discreta de coseno (DCT) en lugar de un DFT para la segunda operación. ¿Cuál es la diferencia entre estas dos operaciones? ¿Por qué harías DFT la primera vez y luego un DCT la segunda vez?
Respuestas:
La Transformada discreta de Fourier (DFT) y la Transformada discreta de coseno (DCT) realizan funciones similares: ambas descomponen un vector de tiempo discreto de longitud finita en una suma de funciones básicas escaladas y desplazadas. La diferencia entre los dos es el tipo de función base utilizada por cada transformación; el DFT usa un conjunto de funciones exponenciales complejas relacionadas armónicamente, mientras que el DCT usa solo funciones de coseno (de valor real).
El DFT se usa ampliamente para aplicaciones de análisis espectral general que se abren camino en una variedad de campos. También se usa como un bloque de construcción para técnicas que aprovechan las propiedades de la representación del dominio de frecuencia de las señales, como los algoritmos de convolución rápida de superposición-guardado y superposición-adición.
El DCT se usa con frecuencia en aplicaciones de compresión de datos con pérdida, como el formato de imagen JPEG. La propiedad del DCT que lo hace bastante adecuado para la compresión es su alto grado de "compactación espectral"; a nivel cualitativo, la representación DCT de una señal tiende a concentrar más su energía en un pequeño número de coeficientes en comparación con otras transformaciones como el DFT. Esto es deseable para un algoritmo de compresión; Si puede representar aproximadamente la señal original (tiempo o dominio espacial) utilizando un conjunto relativamente pequeño de coeficientes DCT, entonces puede reducir su requisito de almacenamiento de datos almacenando solo las salidas DCT que contienen cantidades significativas de energía.
fuente
Descubrí que algunos de los detalles en el wiki de DCT (también compartido por Pearsonartphoto) señalan que el DCT es muy adecuado para aplicaciones de compresión. El final de la sección Descripción general informal es útil (la negrita es mía).
Además, puede encontrar que esta respuesta también es útil (de math.stackexchange.com). Afirma:
fuente
La razón por la que ve la transformación de Fourier aplicada dos veces en el proceso de extracción de características es que las características se basan en un concepto llamado cepstrum. Cepstrum es un juego sobre el espectro de palabras: esencialmente, la idea es transformar una señal en un dominio de frecuencia mediante la transformación de Fourier y luego realizar otra transformación como si el espectro de frecuencia fuera una señal.
Mientras que el espectro de frecuencia describe la amplitud y la fase de cada banda de frecuencia, cepstrum caracteriza las variaciones entre las bandas de frecuencia. Se encuentra que las características derivadas del cepstrum describen mejor el habla que las características tomadas directamente del espectro de frecuencia.
Hay un par de definiciones ligeramente diferentes. Originalmente, la transformación cepstrum se definió como la transformación de Fourier -> logaritmo complejo -> transformación de Fourier [1]. Otra definición es la transformada de Fourier -> logaritmo complejo -> transformada inversa de Fourier [2]. La motivación para la última definición está en su capacidad de separar señales convolucionadas (el habla humana a menudo se modela como la convolución de una excitación y un tracto vocal).
Una opción popular que se ha demostrado que funciona bien en los sistemas de reconocimiento de voz es aplicar un banco de filtros no lineal en el dominio de la frecuencia (el binning de mel al que se refiere) [3]. El algoritmo particular se define como transformada de Fourier -> cuadrado de magnitud -> banco de filtros mel -> logaritmo real -> transformada discreta de coseno.
Aquí se puede seleccionar DCT como la segunda transformación, porque para la entrada de valor real, la parte real de la DFT es un tipo de DCT. La razón por la que se prefiere DCT es que la salida está aproximadamente relacionada con la decoración. Las características relacionadas con la decoración se pueden modelar eficientemente como una distribución gaussiana con una matriz de covarianza diagonal.
[1] Bogert, B., Healy, M. y Tukey, J. (1963). El análisis de quefrency alan de series temporales para ecos: cepstrum, pseudo-autocovarianza, cross-cepstrum y saphe cracking. En Actas del simposio sobre análisis de series temporales, p. 209-243.
[2] Oppenheim, A. y Schafer, R. (1968). Análisis homomórfico del habla. En IEEE Transactions on Audio and Electroacoustics 16, p. 221-226.
[3] Davis, S. y Mermelstein, P. (1980). Comparación de representaciones paramétricas para el reconocimiento de palabras monosilábicas en oraciones continuamente habladas. En IEEE Transactions on Acoustics, Speech and Signal Processing 28, p. 357-366.
fuente
La diferencia entre una transformación discreta de Fourier y una transformación discreta de coseno es que el DCT usa solo números reales, mientras que una transformación de Fourier puede usar números complejos. El uso más común de un DCT es la compresión. Es equivalente a una FFT de dos veces la longitud.
fuente