Sei sulla pagina 1di 5

MFCC: Mel-Fraquency Cepstral Coefficients

Introduzione
Per introdurre l’argomento della rappresentazione spettrale dei segnali audio nel
dominio Mel, cominciamo col parlare di un contesto concreto in cui tale dominio è
largamente utilizzato: il riconoscimento del parlatore (o del parlato, dipende dalle
applicazioni) dall’analisi del segnale vocale.
I sistemi automatici del riconoscimento del parlatore solitamente sono divisi in tre
grandi famiglie sulla base della destinazione del “servizio” che si sta programmando.
Distinguiamo:
• Speaker Identification: è sostanzialmente un riconoscimento uno a molti.
L’algoritmo riceve in ingresso un segnale, lo analizza, e ne identifica
l’identità confrontandolo con un database di modelli già contenuti al suo
interno. Se non viene verificato un “matching” tra ciò che sta in ingresso e
ciò che è contenuto in suddetto database allora il segnale viene etichettato
come “Sconosciuto”. Solitamente quando si parla di Speaker Identification
si parla di Text-Independent Mode Speaker Recognition.
• Speaker Verification: è un riconoscimento uno ad uno. A differenza del
primo gli algoritmi di Speaker Verification sono Text-Dependent Mode
ovvero il software deve “verificare che chi sta parlando è davvero chi dice
di essere”. Allora l’algoritmo ricevuto un segnale in ingresso lo analizza,
decodifica l’informazione inerente la Modalità Text-Dependent, richiama il
modello che risponde alla “Parola d’ordine” estratta ed effettua il
confronto. Se il segnale non viene riconosciuto allora viene etichettato
come “Intruso”.
• Clustering: molto semplicemente è l’identificazione delle identità dei
parlatori che compaiono in segnali contenenti dialoghi. Clustering vuol dire
suddividere il segnale in sezionie per ogni sezione riconoscere chi sta
parlando!

Tutto quello che abbiamo detto grossolanamente fino a questo momento, si evolve
solitamente in due fasi:
• Enrollment Mode: in cui si “costruiscono” i database contenenti i modelli
vocali
• Verification/Identification Mode: in cui avviene il riconoscimento vero e
proprio

Angelo Compagnoni
Come si può notare dagli schemi logici, entrambe le modalità presentano il blocco
“Feature Extraction”. I Mel-Frequency Cepstral Coefficients (da ora in poi MFCC) e
le modalità di calcolo, sono contenuti proprio in questo blocco.

MFCC
Mel-frequency Cepstral Coefficients furono introdotti da Steven B. Davis e Paul
Mermelstein nel loro articolo “Comparision of Parametric Representationsfor
Monosyllabic Word Recognition in Continuously Spoken Sentences” (1980), al fine
di sfruttare i meccanismi cardine dell’udito (come già avveniva nel Cepstrum) con
una spinta in più: il mel-cepstrum è robusto nella compensazione di distorsioni (di
tipo convolutivo) del canale! [Si pensi a riguardo al più semplice metodo di
Angelo Compagnoni
Normalizzazione delle features in cui ad ogni vettore viene sottratta la propria media.
Se questa operazione viene effettuata in dominio MFCC o LPCC il rumore del
canale, detto rumore convolutivo, diventa rumore additivo!]
Questa proprietà ha reso grandioso MFCC tanto che è considerato, forse, il miglior
metodo di estrazione features da segnali vocali in circolazione.
Entriamo nel merito. Come tutti i metodi di Short-Time Analysis anche MFCC si
basa sulla Short-Time Fourier Transform (STFT). Il segnale viene principalmente
finestrato tramite una finestra di n campioni w[n] da cui viene calcolate STFT:



X(n, ωk ) = x[m]w[n − m]e−jωk m
m=−∞
dove: 2π
• ωk = k
N

• N Lunghezza della DFT

Il modulo della STFT viene pesato attraverso le risposte in frequenza di una serie di
filtri le cui frequenze centrali e le bande di frequenza in cui operano, rispecchiano
grossolanamente le bande critiche dell’udito umano. Questa serie di filtri non è
spaziata linearmente, bensì segue l’andamento della Mel Scale: da 0 a 1000 Hz le
frequenze centrali dei filtri sono spaziate linearmente, per frequenze superiori a 1000
Hz tali frequenze centrali sono spaziate su scala logaritmica (a simulare le modalità
con cui l’orecchio umano percepisce i suoni). Questo banco di filtri è chiamato Mel
Scale Filter Bank, caratterizza fortemente MFCC (possiamo dire che rappresenta il
fulcro attorno a cui ruota la teoria di MFCC), pertanto migliorare il banco di filtri
vorrebbe dire migliorare MFCC. A tal riguardo la comunità scientifica ha davvero
lavorato di fantasia al punto che ognuno si crea il proprio banco, secondo le proprie
necessità: non è un caso, infatti, trovare per la rete informazioni circa i più disparati
“metodi di calcolo dei Coefficienti Cepstrali” tutti distinti dalla “forma del banco”. In
questa sede porteremo ad esempio il banco originale creato da Davies e Mermelstein:
si tratta di un banco di 24 filtri di forma triangolare spaziati linearmente fino a 1000
Hz e spaziati logaritmicamente tra 1000 e 4000 Hz. L’ampiezza di questo gruppo di
filtri è normalizzata con la larghezza di banda del filtro stesso.

Angelo Compagnoni
Il calcolo di MFCC continua con l’applicazione di tale banco di filtri a STFT. Quello
che ne risulterà sarà l’energia calcolata per ogni “bin di parlato” preso al tempo n e
pesato per l‘ l-esimo filtro della scala mel:

Ul
1 �
Emel (n, l) = |Vl (ωk )X(n, ωk )|2
Al
k=Ll

dove Ll e Ul sono le frequenze minima e massima dell’ l-esimo filtro, mentre:

Ul

Al = |Vl (ωk )|2
k=Ll

rappresenta il fattore di normalizzazione dell’ampiezza massima del filtro sulla base


della larghezza di banda del filtro stesso.
A questo punto manca da calcolare i coefficienti Mel associati all’energia calcolata
precedentemente:
R−1
1 � 2π
Cmel [n, m] = log{Emel (n, l)}cos( lm)
R R
l=0

dove R è il numero di filtri utilizzati nel filter bank. La relazione appena utilizzata è
la “Treasformata Coseno Discreta” (esprime una sequenza finita di punti in termini di
somme di coseni), utilizzata, tra gli altri, da algoritmi di compressione per la
produzione di files multimediali quali MP3 e JPEG.
Lo schema logico di quanto detto fino a questo punto è il seguente:

Angelo Compagnoni
Solo una precisazione prima di chiudere. Abbiamo parlato in precedenza di Mel
Scale: è stata introdotta nel 1937 da Stevens, Volkman e Newman. E’ una scala che
misura la percezione del pitch di un suono che presenta una soglia a 1000 Hz
(corrispondente a 1000 mel) oltre la quale cambia la scala di distribuzione delle
frequenze. La relazione che lega frequenze in Hz e “Quefrenze” in mel (da notare
anche l’anagramma CEPSTRUM ⇒ SPECTRUM) è:

f
m = 2595log10 (1 + )
700
Il prefisso “Mel” deriva dalla parola inglese “MELODY” a fissare proprio
l’attenzione sul fatto che questo tipo di rappresentazione è nata appositamente per
studi riguardanti la percezione dei suoni.

Angelo Compagnoni