Anda di halaman 1dari 6

Mel-frequency Cepstrum Coefficients MFCC

Mel-frequency Cepstrum Coefficients (MFCC)


adalah koefisien yang secara kolektif membentuk sebuah MFC. Mereka berasal dari jenis
representasi cepstral dari klip audio ( nonlinear "spektrum-of-a-spektrum"). Perbedaan antara
cepstrumdan Mel-frequency Cepstrum Coefficients adalah bahwa dalam MFC, pita frekuensi
yang sama spasi pada skala mel, yang mendekati respon sistem pendengaran manusia lebih
erat dari pita frekuensi yang linear spasi digunakan dalam cepstrum normal. Warping
frekuensiini dapat memungkinkan untuk representasi yang lebih baik dari suara, misalnya,
dalam kompresi audio. MFCC biasanya diturunkan sebagai berikut:
1. Mengambil Transformasi Fourier dari (kutipan berjendela dari) sinyal.
2. Memetakan kekuatan dari spektrum yang diperoleh di atas ke skala mel,
menggunakan jendela tumpang tindih segitiga.
3. Mengambil log dari kekuasaan di masing-masing frekuensi mel.
4. Ambil discrete cosine transform dari daftar kekuatan log mel, seolah-olah itu sinyal.
5. MFCC adalah amplitudo spektrum yang dihasilkan.
Ada dapat variasi pada proses ini, misalnya: perbedaan dalam bentuk atau jarak yang
digunakan untuk memetakan skala jendela, atau penambahan fitur dinamika seperti "delta"
dan "delta-delta" (pertama dan kedua orde kedua frame-untuk-frame perbedaan) koefisien.
MFCC biasanya digunakan sebagai fitur dalam sistem pengenalan suara, seperti sistem yang
secara otomatis dapat mengenali nomor diucapkan ke telepon. Mereka juga umum dalam
pengakuan pembicara, yang merupakan tugas mengenali orang dari suara mereka
Nilai MFCC tidak sangat kuat di hadapan kebisingan aditif, dan itu adalah umum untuk
menormalkan nilai-nilai mereka dalam sistem pengenalan suara untuk mengurangi pengaruh
kebisingan. Beberapa peneliti mengusulkan modifikasi algoritma MFCC dasar untuk
meningkatkan ketahanan, seperti dengan menaikkan log-mel-amplitudo untuk daya yang
sesuai (sekitar 2 atau 3) sebelum mengambil DCT, yang mengurangi pengaruh komponenenergi rendah.

Tahapan Metode MFCC


Metode MFCC memiliki beberapa tahapan, yaitu :
1. Preprocessing
Preprocessing pada MFCC meliputi framing dan windowing. Sinyal suara manusia
termasuk sinyal yang tidak stabil. Tetapi kita dapat mengasumsikannya sebagai sinyal yang

stabil pada skala waktu 10-30 ms. Framing berfungsi untuk memotong sinyal suara dengan
durasi yang panjang menjadi durasi yang lebih pendek, agar didapatkan karakteristik sinyal
suara yang lebih stabil. Sedangkan proses windowing bertujuan untuk mengurangi terjadinya
kebocoran spektral atau aliasing yang merupakan suatu efek dari timbulnya sinyal baru yang
memiliki frekuensi yang berbeda dengan sinyal aslinya. Efek tersebut dapat terjadi karena
rendahnya sampling rate atau karena proses framming yang menyebabkan sinyal menjadi
diskontinu. Windowing dilakukan pada sinyal diskrit.
2. DFT
Untuk mendapatkan sinyal dalam domain frekuensi dari sebuah sinyal diskrit, salah satu
metode transformasi fourier yang digunakan adalah Discrete Fourier Transform (DFT).
DFT dilakukan terhadap masing-masing frame dari sinyal yang telah di-windowing. DFT
dilakukan setiap 10ms pada sinyal suara tersebut.

3. Mel-Frequency Wrapping
SkalaMel-Frequency adalah frekuensi yang linier di bawah 1 kHz dan logaritmik di atas 1
kHz. Skala Mel dapat diperoleh dengan pendekatan persamaan :
B(f) = 1125 * ln(1 + f/700)
Di mana B adalah skala Mel-Frequency dan f adalah frekuensi linier.

4. Cepstrum
Mel-Frequency Cepstrum kemudian didapat dari DCT(Discrete Cosine Transform) untuk
mendapatkan kembali sinyal dalam domain waktu. Hasilnya disebut sebagai Mel-Frequency
Cepstral Coefficient (MFCC). MFCC bisa didapat dari pendekatan persamaan :

Di mana adalah hasil akumulasi dari kuadratik magnitudeDFTyang dikalikan dengan MelFilter Bank. Setelah itu didapatlah MFCC. Pada sistem pengenalan suara, biasanya hanya 13
cepstrum koefisien pertama yang digunakan.

Mel Scale
Mel Scale / skala mel berhubungan dirasakan frekuensi, atau lapangan, dari nada murni
untuk frekuensi yang diukur sebenarnya. Manusia jauh lebih baik di perubahan kecil yang
cerdas di lapangan pada frekuensi rendah daripada mereka pada frekuensi tinggi.

Menggabungkan skala ini membuat fitur kami cocok lebih dekat apa yang manusia
mendengar. Rumus untuk mengkonversi dari frekuensi ke skala Mel adalah:

Untuk kembali dari Mel ke frekuensi :

Langakah Implementasi MFCC


Kita mulai dengan sinyal suara, kami akan menganggap sampel di 16 kHz.
1. Bingkai sinyal ke 20-40 frame ms. 25ms standar. Ini berarti panjang frame untuk sinyal 16
kHz adalah 0.025 * 16000 = 400 sampel. Bingkai langkah biasanya sesuatu seperti 10 ms
(160 sampel), yang memungkinkan beberapa tumpang tindih dengan frame. Pertama 400
kerangka sampel dimulai pada sampel 0, 400 kerangka sampel berikutnya dimulai pada
sampel 160 dll sampai akhir file pidato tercapai. Jika file pidato tidak membagi menjadi
bahkan jumlah frame, pad dengan nol sehingga tidak.
Langkah selanjutnya diterapkan untuk setiap frame tunggal, satu set dari 12 koefisien MFCC
diekstrak untuk setiap frame. Sebuah singkat samping pada notasi: kita sebut waktu kita
sinyal domain. Setelah itu dibingkai kita harus di mana n berkisar lebih dari 1-400 (jika frame
kami adalah 400 sampel) dan berkisar lebih dari jumlah frame. Ketika kita menghitung DFT
kompleks, kita mendapatkan - di mana menunjukkan jumlah bingkai yang sesuai dengan
kerangka waktu-domain. kemudian spektrum kekuatan bingkai.
2. Untuk mengambil Fourier Transform Discrete dari frame, melakukan berikut:

Dimana h(n) adalah n jendela analisis panjang sampel (misalnya Hamming window), dan K
adalah panjang DFT. Berbasis periodogram spektral daya estimasi untuk frame kata si(n)
diberikan oleh:

Ini disebut perkiraan Periodogram dari spektrum kekuasaan. Kami mengambil nilai absolut
dari Fourier transform kompleks, dan persegi hasilnya. Kita umumnya akan melakukan 512
titik FFT dan tetap hanya yang pertama 257 koefisien.
3. Hitunglah filterbank Mel-spasi. Ini adalah satu set 20-40 (26 standar) filter segitiga yang
kita terapkan untuk estimasi spektral daya periodogram dari langkah 2. filterbank kami
datang dalam bentuk 26 vektor dengan panjang 257 (dengan asumsi pengaturan FFT fom
langkah 2). Setiap vektor sebagian besar nol, tetapi non-nol untuk bagian tertentu dari
spektrum. Untuk menghitung filterbank energi kita kalikan masing-masing filterbank dengan

spektrum daya, kemudian menambahkan koefisien. Setelah ini dilakukan kita dibiarkan
dengan 26 angka yang memberikan kita indikasi berapa banyak energi yang ada di setiap
filterbank. Untuk penjelasan rinci tentang bagaimana menghitung filterbank tersebut lihat di
bawah.
Berikut adalah plot nya :

Contoh Program MFCC


Berikut ini adalah contoh penerapan MFCC dengan menggunakan Matlab. Untuk
pengenalan suara / speaker, yang paling umum digunakan fitur akustik yang mel skala
frekuensi cepstral Koefisien (MFCC untuk pendek). MFCC mengambil sensitivitas persepsi
manusia terhadap frekuensi menjadi pertimbangan, dan karena itu yang terbaik untuk
pengenalan suara / speaker. Kami akan menjelaskan langkah-demi-langkah perhitungan
MFCCdi bagian ini.
1. Pre-emphasis:
Sinyal suara s (n) dikirim ke filter high-pass:
s2(n) = s(n) - a*s(n-1)
dimana s2(n) adalah sinyal output dan nilai dari biasanya antara 0,9 dan 1,0.
Z-transform dari filter adalah :

H(z)=1-a*z-1
Tujuan dari Pre-emphasis adalah untuk mengkompensasi bagian frekuensi tinggi yang
ditekan selama mekanisme produksi suara manusia. Selain itu, juga dapat memperkuat
pentingnya forman frekuensi tinggi.

Contoh dengan Matlab berikutnya menunjukkan efek Pre-emphasis.


Source Code Matlab
1. waveFile='whatFood.wav';
2. au=myAudioRead(waveFile); y=au.signal; fs=au.fs
3. a=0.95;
4. y2 = filter([1, -a], 1, y);
5. time=(1:length(y))/fs;
6. au2=au; au2.signal=y2;
7. myAudioWrite(au2, 'whatFood_preEmphasis.wav');
8.
9. subplot(2,1,1);
10. plot(time, y);
11. title('Original wave: s(n)');
12. subplot(2,1,2);
13. plot(time, y2);
14. title(sprintf('After
a));

pre-emphasis:

s_2(n)=s(n)-a*s(n-1),

a=%f',

15.
16. subplot(2,1,1);
17. set(gca, 'unit', 'pixel');
18. axisPos=get(gca, 'position');
19. uicontrol('string', 'Play',
'callback', 'sound(y, fs)');
20. subplot(2,1,2);

'position',

[axisPos(1:2),

60,

20],

21. set(gca, 'unit', 'pixel');


22. axisPos=get(gca, 'position');
23. uicontrol('string', 'Play',
'callback', 'sound(y2, fs)');

'position',

[axisPos(1:2),

60,

20],

24.

Output :
Dalam contoh di atas, kata setelah Pre-emphasis suara lebih tajam dengan volume yang lebih
kecil:Aslinya: whatFood.wav Setelah Pre-emphasis: whatFood-preEmphasis.wav

Anda mungkin juga menyukai