Dalam pengenalan suara, ujung depan umumnya melakukan pemrosesan sinyal untuk memungkinkan ekstraksi fitur dari aliran audio. Discrete Fourier transform (DFT) diterapkan dua kali dalam proses ini. Pertama kali setelah windowing; setelah Mel binning ini diterapkan dan kemudian transformasi Fourier lainnya.
Namun saya perhatikan, bahwa sudah umum di pengenal ucapan (ujung depan default di CMU Sphinx , misalnya) untuk menggunakan diskrit cosine transform (DCT) alih-alih DFT untuk operasi kedua. Apa perbedaan antara kedua operasi ini? Mengapa Anda melakukan DFT pertama kali dan kemudian DCT kedua kalinya?
Jawaban:
Discrete Fourier Transform (DFT) dan Discrete Cosine Transform (DCT) melakukan fungsi yang sama: keduanya menguraikan vektor waktu diskrit-panjang-terbatas menjadi sejumlah fungsi basis yang diskalakan dan digeser. Perbedaan antara keduanya adalah jenis fungsi basis yang digunakan oleh setiap transformasi; DFT menggunakan serangkaian fungsi eksponensial kompleks yang terkait secara harmonis, sedangkan DCT hanya menggunakan fungsi kosinus (bernilai nyata).
DFT banyak digunakan untuk aplikasi analisis spektral umum yang menemukan jalannya ke berbagai bidang. Ini juga digunakan sebagai blok bangunan untuk teknik yang memanfaatkan properti representasi frekuensi-domain sinyal, seperti tumpang tindih-simpan dan tumpang tindih-tambahkan algoritma konvolusi cepat.
DCT sering digunakan dalam aplikasi kompresi data yang hilang, seperti format gambar JPEG. Sifat DCT yang membuatnya sangat cocok untuk kompresi adalah tingkat tinggi "pemadatan spektral;" pada tingkat kualitatif, representasi DCT sinyal cenderung memiliki lebih banyak energi yang terkonsentrasi di sejumlah kecil koefisien bila dibandingkan dengan transformasi lain seperti DFT. Ini diinginkan untuk algoritma kompresi; jika kira-kira Anda dapat mewakili sinyal asli (waktu-atau spasial-domain) menggunakan set koefisien DCT yang relatif kecil, maka Anda dapat mengurangi kebutuhan penyimpanan data Anda dengan hanya menyimpan output DCT yang mengandung sejumlah besar energi.
sumber
Saya menemukan bahwa beberapa detail dalam wiki DCT (juga dibagikan oleh Pearsonartphoto) menunjukkan bahwa DCT sangat cocok untuk aplikasi kompresi. Akhir dari bagian Tinjauan Informal sangat membantu (huruf tebal adalah milikku).
Selain itu, Anda mungkin menemukan bahwa jawaban ini juga berguna (dari math.stackexchange.com). Ini menyatakan:
sumber
Alasan mengapa Anda melihat transformasi Fourier diterapkan dua kali dalam proses ekstraksi fitur adalah bahwa fitur didasarkan pada konsep yang disebut cepstrum. Cepstrum adalah permainan pada spektrum kata - pada dasarnya idenya adalah untuk mengubah sinyal ke domain frekuensi oleh Fourier transform, dan kemudian melakukan transformasi lain seolah-olah spektrum frekuensi adalah sinyal.
Sementara spektrum frekuensi menggambarkan amplitudo dan fase dari setiap pita frekuensi, cepstrum mencirikan variasi antara pita frekuensi. Fitur-fitur yang diturunkan dari cepstrum ditemukan untuk lebih menggambarkan pembicaraan daripada fitur-fitur yang diambil langsung dari spektrum frekuensi.
Ada beberapa definisi yang sedikit berbeda. Transformasi cepstrum awalnya didefinisikan sebagai Transformasi Fourier -> logaritma kompleks -> Transformasi Fourier [1]. Definisi lain adalah transformasi Fourier -> logaritma kompleks -> invers Transformasi Fourier [2]. Motivasi untuk definisi yang terakhir adalah kemampuannya untuk memisahkan sinyal yang berbelit-belit (ucapan manusia sering dimodelkan sebagai konvolusi dari eksitasi dan saluran vokal).
Pilihan populer yang terbukti berkinerja baik dalam sistem pengenalan ucapan adalah menerapkan bank filter non-linear dalam domain frekuensi (binning yang Anda maksud) [3]. Algoritme tertentu didefinisikan sebagai transformasi Fourier -> kuadrat besarnya -> bank filter mel -> logaritma nyata -> transformasi kosinus diskrit.
Di sini DCT dapat dipilih sebagai transformasi kedua, karena untuk input bernilai nyata, bagian nyata dari DFT adalah jenis DCT. Alasan mengapa DCT lebih disukai adalah bahwa outputnya kira-kira terkait dengan dekorasi. Fitur yang terkait dengan dekorasi dapat dimodelkan secara efisien sebagai distribusi Gaussian dengan matriks kovarians diagonal.
[1] Bogert, B., Healy, M., dan Tukey, J. (1963). The Quefrency Alanysis dari Time Series untuk Echoes: Cepstrum, Pseudo-Autocovariance, Cross-Cepstrum dan Saphe Cracking. Dalam Prosiding Simposium tentang Analisis Rangkaian Waktu, hal. 209-243.
[2] Oppenheim, A., dan Schafer, R. (1968). Analisis Homomorfik Pidato. Dalam Transaksi IEEE pada Audio dan Electroacoustics 16, hal. 221-226.
[3] Davis, S., dan Mermelstein, P. (1980). Perbandingan Representasi Parametrik untuk Pengakuan Kata Bersuku Satu dalam Kalimat yang Diucapkan Terus-menerus. Dalam Transaksi IEEE pada Akustik, Pidato dan Pemrosesan Sinyal 28, hal. 357-366.
sumber
Perbedaan antara Transformasi Fourier Diskrit dan transformasi Discrete Cosine adalah bahwa DCT hanya menggunakan bilangan real, sedangkan transformasi Fourier dapat menggunakan bilangan kompleks. Penggunaan DCT yang paling umum adalah kompresi. Ini setara dengan FFT dua kali panjangnya.
sumber