Apenas para esclarecer as coisas - essa propriedade não é fundamental, mas importante . É a diferença fundamental quando se trata de usar DCT em vez de DFT para o cálculo do espectro.
Por que fazemos a Normalização da Média Cepstral
No reconhecimento do alto-falante, queremos remover todos os efeitos do canal (resposta ao impulso do trato vocal, caminho do áudio, sala etc.). Desde que o sinal de entrada seja e a resposta ao impulso do canal seja dada por h [ n ] , o sinal gravado é uma convolução linear de ambos:x [ n ]h [ n ]
y[ n ] = x [ n ] ⋆ h [ n ]
Ao fazer a transformada de Fourier, obtemos:
Y[ f] = X[ f] ⋅ H[ f]
devido à propriedade de equivalência de convolução-multiplicação do FT - é por isso que é uma propriedade tão importante do FFT nesta etapa .
O próximo passo no cálculo do cepstrum é tomar o logaritmo do espectro:
Y[ q] = logY[ f] = log( X[ f] ⋅ H[ f] ) = X[ q] + H[ q]
porque: . Obviamente, q é a quefrency . Como se pode notar, tomando o cepstrum da convolução no domínio do tempo, terminamos com a adição no domínio cepstral (quefrency).registro( a b ) = loga + logbq
O que é a Normalização Média Cepstral?
Agora sabemos que no domínio cepstral qualquer distorção convolucional é representada por adição. Vamos supor que todos eles estejam estacionários (o que é uma forte suposição, pois o trato vocal e a resposta do canal não estão mudando) e a parte estacionária da fala é insignificante. Podemos observar que, para todo i-ésimo quadro, verdadeiro é:
YEu[ q] = H[ q] + XEu[ q]
Ao calcular a média de todos os quadros, obtemos
1 1N∑EuYEu[ q] = H[ q] + 1N∑EuXEu[ q]
Definindo a diferença:
REu[ q]= YEu[ q] - 1N∑jYj[ q]= H[ q] + XEu[ q] - ( H[ q] + 1N∑jXj[ q] )= XEu[ q] - 1N∑jXj[ q]
Terminamos com nosso sinal com as distorções do canal removidas. Colocando todas as equações acima no inglês simples:
- Calcular cepstrum
- Subtraia a média de cada coeficiente
- Opcionalmente, divida por variação para executar a Normalização Média Cepstral em oposição à Subtração.
A Normalização Média Cepstral é necessária?
Não é obrigatório, especialmente quando você está tentando reconhecer um alto-falante em um único ambiente. De fato, ele pode até deteriorar seus resultados, pois é propenso a erros devido ao ruído adicional:
y[ n ] = x [ n ] ⋆ h [ n ] + w [ n ]
Y[ f] = X[ f] ⋅ H[ f] + W[ f]
registroY[ f] = log[ X[ f] ( H[ f] + W[ f]X[ f]) ] =logX[ f] + log( H[ f] + W[ f]X[ f])
Em condições ruins de SNR, o termo marcado pode ultrapassar a estimativa.
Embora quando o CMS é realizado, geralmente você pode ganhar alguns por cento extras. Se você aumentar esse ganho de desempenho com derivativos de coeficientes, obterá um aumento real de sua taxa de reconhecimento. A decisão final é com você, especialmente que existem muitos outros métodos usados para melhorar os sistemas de reconhecimento de fala.