Hanya untuk memperjelas - properti ini tidak mendasar tetapi penting . Ini adalah perbedaan mendasar ketika menggunakan DCT, bukan DFT untuk perhitungan spektrum.
Mengapa kita melakukan Normalisasi Mean Cepstral
Dalam pengenalan speaker, kami ingin menghapus efek saluran apa pun (respons impuls saluran suara, jalur audio, ruang, dll.). Asalkan sinyal input adalah dan respons impuls saluran diberikan oleh h [ n ] , sinyal yang terekam adalah konvolusi linear dari keduanya:x[n]h[n]
y[n]=x[n]⋆h[n]
Dengan mengambil Transformasi Fourier kita dapatkan:
Y[f]=X[f]⋅H[f]
karena properti kesetaraan konvolusi-multiplikasi FT - itulah mengapa ini merupakan properti FFT yang sangat penting pada langkah ini .
Langkah selanjutnya dalam perhitungan cepstrum adalah mengambil logaritma spektrum:
Y[q]=logY[f]=log(X[f]⋅H[f])=X[q]+H[q]
karena: . Jelas, q adalah quefrency . Seperti yang kita perhatikan, dengan mengambil cepstrum convolution dalam domain waktu kita berakhir dengan penambahan dalam cepstral (quefrency) domain.log(ab)=loga+logbq
Apa itu Normalisasi Mean Cepstral?
Sekarang kita tahu bahwa dalam domain cepstral setiap distorsi konvolusional diwakili oleh penambahan. Mari kita asumsikan bahwa semuanya stasioner (yang merupakan asumsi kuat karena saluran vokal dan respons saluran tidak berubah) dan bagian stasioner dari pembicaraan dapat diabaikan. Kita dapat mengamati bahwa untuk setiap frame ke-i true adalah:
Yi[q]=H[q]+Xi[q]
Dengan mengambil rata-rata dari semua frame yang kita dapatkan
1N∑iYi[q]=H[q]+1N∑iXi[q]
Mendefinisikan perbedaan:
Ri[q]=Yi[q]−1N∑jYj[q]=H[q]+Xi[q]−(H[q]+1N∑jXj[q])=Xi[q]−1N∑jXj[q]
We ending up with our signal with channel distortions removed. Putting all above equations into simple English:
- Calculate cepstrum
- Subtract the average from each coefficient
- Optionally divide by variance to perform Cepstral Mean Normalisation as opposed to Subtraction.
Is Cepstral Mean Normalisation necessary?
It's not mandatory, especially when you are trying to recognise one speaker in a single environment. In fact, it can even deteriorate your results, as it's prone to errors due to additive noise:
y[n]=x[n]⋆h[n]+w[n]
Y[f]=X[f]⋅H[f]+W[f]
logY[f]=log[X[f](H[f]+W[f]X[f])]=logX[f]+log(H[f]+W[f]X[f])
In poor SNR conditions marked term can overtake the estimation.
Although when CMS is performed, you can usually gain few extra percent. If you add to that performance gain from derivatives of coefficients then you get a real boost of your recognition rate. The final decision is up to you, especially that there are plenty of other methods used for the improvement of speech recognition systems.