MFCC (Mel Frekans Kepstral Katsayıları)

Konuşma tanıma ve ses işlemede kullanılan, insan kulağının frekans algısını modelleyen standart özellik çıkarma yöntemi.

MFCC (Mel Frequency Cepstral Coefficients — Mel Frekans Kepstral Katsayıları), konuşma ve ses sinyallerinden makine öğrenimi modellerine uygun kompakt özellik vektörleri çıkarmak için kullanılan en köklü ve yaygın tekniklerden biridir. 1980'lerin başında Davis ve Mermelstein tarafından konuşma tanıma için geliştirilen bu yöntem, günümüz derin öğrenme sistemlerinde bile ön işleme adımı olarak yaygın biçimde kullanılmaktadır. MFCC'nin temelinde, insan kulağının frekansları doğrusal değil logaritmik bir ölçekte algıladığı gerçeği yatar. Mel ölçeği bu psikoakustik gerçeği matematiksel olarak modelleyen bir dönüşümdür: düşük frekanslarda (1 kHz altında) hassas ayrım yapılırken yüksek frekanslarda daha kaba bir çözünürlük benimsenip kabul edilir. Bu biyolojik modele göre yapılan kodlama, makine öğrenimi sistemlerinin konuşma verilerini çok daha az sayıda katsayıyla verimli temsil etmesine olanak tanır. Hesaplama süreci altı temel adımdan oluşur. Birincisi, ham ses sinyaline ön vurgu (pre-emphasis) filtresi uygulanarak yüksek frekans bileşenleri güçlendirilir (tipik katsayı: 0.97). İkincisi, sinyal 20–40 milisaniyelik örtüşen çerçevelere bölünür ve her çerçeve spektral sızıntıyı azaltmak için bir Hamming penceresiyle çarpılır. Üçüncüsü, her çerçeveye Hızlı Fourier Dönüşümü (FFT) uygulanarak güç spektrumu elde edilir. Dördüncüsü, bu spektrum Mel ölçeğine yerleştirilmiş 26 bant geçiren filtreden geçirilip logaritmik enerji değerleri hesaplanır. Beşincisi, 26 log-enerji değerine Ayrık Kosinüs Dönüşümü (DCT) uygulanarak katsayılar dekorelasyona tabi tutulur; genellikle ilk 12–13 katsayı korunur. Altıncısı ise zaman boyutundaki değişimleri yakalamak için birinci türev (delta) ve ikinci türev (delta-delta) katsayılar eklenir; bu şekilde tipik vektör boyutu 39'a ulaşır. MFCC başlangıçta Gizli Markov Modelleri (HMM-GMM) tabanlı konuşma tanıma sistemlerinde birincil giriş özelliği olarak kullanılmıştır. Zaman içinde konuşmacı tanıma, ses duygu analizi, müzik türü sınıflandırma ve çevre sesi tespiti gibi geniş bir uygulama yelpazesine yayılmıştır. Wav2vec 2.0 ve Whisper gibi modern end-to-end sistemler ham dalga biçimlerini (raw waveform) doğrudan işlese de gömülü sistemler, az veriyle çalışan senaryolar ve açıklanabilirlik gerektiren uygulamalar MFCC'yi güncel ve geçerli bir seçenek olarak korumaktadır.

MFCC Nedir?

MFCC (Mel Frequency Cepstral Coefficients), ham ses sinyalinden makine öğrenimi modellerine uygun kompakt özellik vektörleri çıkaran standart bir tekniktir. 1980'de Davis ve Mermelstein tarafından konuşma tanıma amacıyla tasarlanan bu yöntem, insan işitme sisteminin frekansları doğrusal değil logaritmik algıladığı gözleminden hareket eder. "Mel" kelimesi bu psikoakustik ölçeğin adını taşır; "kepstral" ise spektrumun logaritmik dönüşümünü ifade eder.

Hesaplama Adımları

MFCC hesaplaması altı temel adımdan oluşur:

1. Ön vurgu (Pre-emphasis): Yüksek frekansları artıran bir filtre uygulanır (tipik katsayı: 0.97). 2. Çerçeveleme ve Pencereleme: Sinyal 20–40 ms uzunluğunda örtüşen çerçevelere bölünür; Hamming penceresiyle spektral sızıntı azaltılır. 3. FFT: Her çerçevede güç spektrumu hesaplanır. 4. Mel Filtre Bankası: Mel ölçeğinde dağılmış 26 bant geçiren filtre uygulanır; her filtreden logaritmik enerji alınır. 5. DCT: 26 log-enerji değerine Ayrık Kosinüs Dönüşümü uygulanarak katsayılar dekorelasyona tabi tutulur; ilk 12–13 katsayı tutulur. 6. Delta Katsayılar: Zaman boyutundaki değişimleri yakalamak için birinci türev (delta) ve ikinci türev (delta-delta) eklenir; tipik vektör boyutu 39 olur.

Neden Mel Ölçeği?

İnsan kulağı özellikle düşük frekanslarda (1 kHz altında) yüksek hassasiyetle çalışırken yüksek frekanslarda çok daha kaba ayrımlar yapar. Doğrusal bir ölçekte 1000 Hz ile 1100 Hz arasındaki fark, 6000 Hz ile 6100 Hz arasındaki farkla eşdeğer görünür; oysa kulak için çok daha anlamlıdır. Mel dönüşümü bu asimetriyi düzelterek ses tanıma modellerinin konuşma içeriğini daha az katsayıyla temsil etmesine zemin hazırlar.

Kullanım Alanları

  • check_circle Otomatik Konuşma Tanıma (ASR): HMM-GMM sistemlerinde birincil giriş özelliği; derin öğrenme tabanlı sistemlerde ise sıklıkla log-mel spectrogram ile birlikte kullanılır.
  • check_circle Konuşmacı Tanıma ve Doğrulama: Kişiye özgü vokal izleri temsil eder; konuşmacı doğrulama ve kimlik tespiti sistemlerinin temel giriş özelliğidir.
  • check_circle Ses Duygu Tanıma: Duygusal durumu yansıtan prosodik özellikleri kodlar; çağrı merkezi analitiği ve insan-robot etkileşiminde kullanılır.
  • check_circle Ses Sınıflandırma: Çevre seslerini, müzik türlerini ve enstrümanları birbirinden ayırt etmek için standart bir özellik olarak kullanılır.
  • check_circle Müzik Bilgi Geri Çağırma (MIR): Melodiyi ve temberi kodlamada kullanılır; ses parmak izi ve benzer müzik arama sistemlerinin temelidir.

Derin Öğrenme Çağında MFCC

Wav2vec 2.0 ve Whisper gibi modern sistemler ham dalga biçimlerini (raw waveform) doğrudan işleyerek kendi dahili temsilleri öğrenir. Bu yaklaşım insan tanımlı bir özellik çıkarma aşaması gerektirmez. Buna karşın MFCC bazı senaryolarda tercih edilmeye devam etmektedir: düşük işlem kapasiteli gömülü sistemlerde, az veriyle çalışan uygulamalarda ve açıklanabilirlik gerektiren bağlamlarda. Ayrıca yıllarca MFCC üzerine inşa edilmiş üretim sistemleri, miras kod tabanlarında bu tekniği yaygın kılmaya devam etmektedir.

Sık Sorulan Sorular

  • check_circle MFCC ile log-mel spectrogram arasındaki fark nedir? Log-mel spectrogram, Mel filtre bankası çıkışının logaritmasıdır ve DCT adımı uygulanmaz. MFCC ise log-mel'e DCT ekleyerek katsayıları dekorelasyona tabi tutar. Derin öğrenme modelleri genellikle log-mel spectrogram kullanır; çünkü DCT'nin sunduğu dekorelasyon CNN veya Transformer tarafından öğrenilebilir bir dönüşümdür.
  • check_circle Kaç MFCC katsayısı kullanılmalı? Konuşma tanıma için 12–13 statik katsayı standarttır. Delta ve delta-delta katsayılar eklendiğinde tipik vektör boyutu 39'a çıkar. Müzik işleme gibi daha zengin temsil gerektiren görevlerde 20 veya daha fazla katsayı tercih edilebilir.
  • check_circle MFCC hangi kütüphanelerle hesaplanır? Python'da librosa.feature.mfcc() ve python_speech_features en yaygın seçeneklerdir. librosa aynı zamanda log-mel spectrogram, chroma ve spektral kontrast gibi tamamlayıcı özellikleri de destekler.
  • check_circle MFCC gürültüye dayanıklı mıdır? Görece değil; gürültülü ortamlarda MFCC bozulabilir. Cepstral Mean and Variance Normalization (CMVN) bu sorunu kısmen azaltır. Daha dayanıklı alternatifler için RASTA-PLP veya gürültü dayanıklılığı artırılmış filtre bankaları tercih edilebilir.