Como interpreto a etapa DCT no processo de extração do MFCC?

20

Na maioria das tarefas de processamento de áudio, uma das transformações mais usadas é o MFCC (coeficientes cepstrais de frequência de mel) .

Conheço principalmente a matemática que está por trás do MFCC: entendo tanto a etapa do banco de filtros quanto a escala de frequência Mel.

O que não recebo é a etapa DCT (Discrete Cosine Transform): Que tipo de informação obtenho nesta etapa? O que é uma boa representação visual dessa etapa?

Andrea Spadaccini
fonte
1
Gostaria de acrescentar uma breve explicação de MFCC, ou pelo menos um link: en.wikipedia.org/wiki/Mel-frequency_cepstral_coefficient
algum tipo de robô

Respostas:

16

Você pode pensar no DCT como uma etapa de compactação. Normalmente, com os MFCCs, você faz o DCT e mantém apenas os primeiros coeficientes. Esse é basicamente o mesmo motivo pelo qual o DCT é usado na compactação JPEG. Os DCTs são escolhidos porque suas condições de contorno funcionam melhor nesses tipos de sinais.

Vamos contrastar o DCT com a transformação de Fourier. A transformação de Fourier é composta de sinusóides que possuem um número inteiro de ciclos. Isso significa que todas as funções básicas de Fourier iniciam e terminam no mesmo valor - elas não fazem um bom trabalho em representar sinais que iniciam e terminam em valores diferentes. Lembre-se de que a transformada de Fourier assume uma extensão periódica: se você imaginar seu sinal em uma folha de papel, a transformação de Fourier deseja rolar essa folha em um cilindro para que os lados esquerdo e direito se encontrem.

Pense em um espectro com a forma aproximada de uma linha com inclinação negativa (o que é bastante típico). A transformação de Fourier precisará usar muitos coeficientes diferentes para ajustar-se a essa forma. Por outro lado, o DCT possui cossenos com números meio inteiros de ciclos. Existe, por exemplo, uma função de base DCT que se parece vagamente com essa linha com inclinação negativa. Ele não assume uma extensão de período (em vez disso, uma extensão uniforme); portanto, fará um trabalho melhor ao ajustar esse formato.

Então, vamos juntar isso. Depois de calcular o espectro de frequência Mel, você tem uma representação do espectro sensível de maneira semelhante à maneira como a audição humana funciona. Alguns aspectos dessa forma são mais relevantes que outros. Geralmente, a forma espectral maior e mais abrangente é mais importante que os detalhes finos e ruidosos do espectro. Você pode imaginar desenhando uma linha suave para seguir a forma espectral, e que a linha suave que você desenha possa dizer tanto sobre o sinal.

Quando você pega o DCT e descarta os coeficientes mais altos, está assumindo essa forma espectral e mantendo apenas as partes mais importantes para representar essa forma suave. Se você usasse a transformada de Fourier, não faria um bom trabalho em manter as informações importantes com baixos coeficientes.

Se você pensar em alimentar os MFCCs como recursos para um algoritmo de aprendizado de máquina, esses coeficientes de ordem inferior farão bons recursos, pois representam alguns aspectos simples da forma espectral, enquanto os coeficientes de ordem superior que você descarta são mais parecidos com ruídos. e não é importante treinar. Além disso, o treinamento nas magnitudes do espectro Mel provavelmente não seria tão bom porque a amplitude específica em diferentes frequências é menos importante que a forma geral do espectro.

schnarf
fonte
Interessante ler esta resposta para uma pergunta relacionada também.
Eric Platon
8

A chave para entender o MFCC está no início da frase no artigo vinculado:

Eles são derivados de um tipo de representação cepstral do clipe de áudio ...

MFCCs são como um espectro-of-a- log -spectrum, o cepstro .

x(t)

C(z)=F1(log(|F(x(t))|2)

FF1

A razão pela qual o ceptro é limpo é que a operação do logaritmo interposto significa que as convoluções do sinal original aparecem como adições simples no ceptro .

Essa vantagem é transferida para os MFCCs, embora liftering não é tão direta quanto com o cepstro padrão.

Onde o MFCC difere é o uso da transformada discreta de cosseno (DCT) como a transformação final, em vez da transformação inversa de Fourier.

A vantagem que o DCT possui sobre a transformação de Fourier é que os coeficientes resultantes são de valor real , o que facilita o processamento e armazenamento subsequentes.

Peter K.
fonte