Ini adalah kelanjutan dari diskusi di sini . Saya akan berkomentar di sana, tetapi saya tidak memiliki 50 perwakilan jadi saya mengajukan pertanyaan baru.
Inilah cara saya memahami langkah DCT dalam proses perhitungan MFCC: Alasan di baliknya adalah untuk memisahkan korelasi dalam besaran log-spektral (dari bank filter) karena tumpang tindihnya filter. Pada dasarnya, DCT menghaluskan representasi spektrum yang diberikan oleh besaran log-spektral ini.
Apakah benar untuk mengatakan bahwa garis biru pada gambar di bawah ini mewakili spektrum sebagaimana diwakili oleh vektor besaran log-spektral, dan garis merah adalah vektor yang dulunya merupakan DCT-ified?
Jawaban:
Biarkan saya mulai dari awal. Cara standar menghitung cepstrum adalah sebagai berikut:
Dalam kasus kasus koefisien MFCC agak berbeda, tetapi masih serupa.
Setelah pra-penekanan dan windowing, Anda menghitung DFT dari sinyal Anda dan menerapkan bank filter dari filter segitiga yang tumpang tindih, dipisahkan dalam skala mel (meskipun dalam beberapa kasus skala linier lebih baik daripada mel):
Sehubungan dengan definisi cepstrum, Anda sekarang mewakili amplop spektrum (spektrum dikurangi) dalam skala frekuensi mel. Jika Anda menyatakan itu, maka Anda akan melihat bahwa itu mirip dengan spektrum sinyal asli Anda.
Langkah selanjutnya adalah menghitung logaritma koefisien yang diperoleh di atas. Ini disebabkan oleh fakta bahwa cepstrum seharusnya merupakan transformasi homomorfik yang memisahkan sinyal dari respons impuls saluran vokal, dll. Bagaimana?
Konvolusi domain frekuensi adalah perkalian spektrum:
Kami juga berharap bahwa tanggapan impuls tidak berubah seiring waktu, sehingga dapat dengan mudah dihilangkan dengan mengurangi rata-rata. Sekarang Anda tahu mengapa kami mengambil logaritma dari energi band kami.
ifft
Jadi sekarang Anda melihat bahwa sekarang agak sulit untuk memahami bagaimana spektrum aslinya terlihat. Selain itu, kami biasanya mengambil hanya 12 MFCC pertama, karena yang lebih tinggi menggambarkan perubahan cepat dalam energi log, yang biasanya membuat tingkat pengenalan lebih buruk. Jadi alasan untuk melakukan DCT adalah sebagai berikut:
Awalnya Anda harus melakukan IFFT, tetapi lebih mudah untuk mendapatkan koefisien nilai sebenarnya dari DCT. Selain itu, kami tidak lagi memiliki spektrum penuh (semua tempat frekuensi), tetapi koefisien energi dalam bank filter mel, oleh karena itu penggunaan IFFT sedikit berlebihan.
Anda lihat pada gambar pertama bahwa bank filter tumpang tindih, sehingga energi dari yang bersebelahan tersebar antara dua - DCT memungkinkan untuk menghiasnya. Ingat bahwa ini adalah properti yang baik misalnya dalam kasus Model Campuran Gaussian, di mana Anda dapat menggunakan matriks kovarian diagonal (tidak ada korelasi antara koefisien lainnya), bukan yang penuh (semua koefisien berkorelasi) - ini menyederhanakan banyak hal.
Cara lain yang berhubungan dengan koefisien frekuensi mel adalah PCA (Principal Component Analysis), teknik yang hanya digunakan untuk tujuan ini. Untuk keberuntungan kami, terbukti bahwa DCT adalah pendekatan yang sangat baik untuk PCA ketika datang ke sinyal yang berhubungan dengan dekorasi, karenanya keuntungan lain dari menggunakan Discrete Cosine Transform.
Beberapa literatur:
sumber
Lebih dari menghaluskan DCT mengurangi jumlah dimensi yang dibutuhkan untuk mewakili spektrum. DCT baik untuk pengurangan dimensi karena cenderung memadatkan sebagian besar energi spektrum dalam beberapa koefisien pertama.
sumber
Ini salah. Ada korelasi antara magnitudo log-spektral bukan hanya karena tumpang tindih, tetapi juga karena tidak ada urutan angka yang mewakili serangkaian "bermakna" (seperti yang terjadi dalam ucapan dan suara alami) besaran log-spektral. Log-spektral magnitudo "bermakna" cenderung agak halus, dengan penurunan keseluruhan energi dalam frekuensi yang lebih tinggi, dll. Seseorang akan mengatakan bahwa dimensi ruang semua vektor log-spektral magnitudo "bermakna" lebih kecil dari 40 atau berapa pun band yang Anda gunakan; dan DCT dapat dilihat sebagai pengurangan dimensionalitas untuk memetakan data 40 saluran ke ruang yang lebih kecil ini.
DCT tidak melakukan smoothing. Anda melihat smoothing ketika merekonstruksi dari data DCT - smoothing menjadi karena hilangnya informasi oleh DCT dan pemotongan koefisien yang mengikutinya.
Tetapi koefisien MFCC tidak menyimpan spektrum yang dihaluskan - ia menyimpan serangkaian koefisien DCT yang tidak berkorelasi.
sumber