Università degli Studi di Milano - Corso di Laurea in Scienze dell'Informazione
DENOISING BASATO SU CODIFICHE ADATTIVE DEL SEGNALE AUDIO: METODI E PROTOTIPI SOFTWARE PER LA SPERIMENTAZIONE INTERATTIVA
Tesi di Laurea di Relatore:
Zappalà Giuseppe Prof. Goffredo Haus
Matr. 396424 Correlatore:
Dott. Domenico Rossi
Il lavoro svolto nella suddetta tesi ha come obiettivo il denoising,
ovvero la soppressione o quantomeno la riduzione del "rumore"
, dai segnali audio.
Si è centrata l'attenzione in modo particolare verso la
riduzione del rumore di fondo ovvero del cosiddetto "rumore
bianco" generato da strumenti di registrazione analogici
o dall'usura dei supporti usati per la registrazione stessa. Il
rumore di fondo è caratterizzato da un spettro di frequenza
molto ricco, ad ampia banda, che coinvolge tutte le componenti
frequenziali del segnale audio. Il metodo generale per la riduzione
del rumore di fondo è la Sottrazione spettrale. Questa
tecnica presuppone che il segnale degradato y(n) sia dato da
y(n)= x(n) + d(n) , ove x(n) è il segnale originale e
d(n) è il segnale di disturbo. Nel dominio delle frequenze
lo spettro risultante è dato da: Y(w)= X(w) + D(w).
Se si ha una valida stima dello spettro del rumore D(w) si può
ottenere una buona stima del segnale sorgente X(w) sottraendo
al segnale corrotto, mediante uso di filtri, il rumore; il problema
principale è che non è sempre semplice determinare
una stima valida del rumore di fondo ed inoltre spesso le componenti
del rumore deteriorano il segnale sorgente.
L'approccio seguito in questa tesi, a differenza dei comuni metodi
per la Sottrazione spettrale, si basa su una analisi adattiva
del segnale: dato un segnale sorgente ed una libreria di basi
ortogonali si sceglierà la rappresentazione ottimale del
segnale tramite tali basi con un certo criterio esposto di seguito.
L'analisi del segnale viene eseguita suddividendo lo stesso in
blocchi di uguale ampiezza (definibile dall'utente); ogni blocco
viene estratto con un'opportuna funzione "finestra"
che gestisce le sovrapposizioni tra blocchi adiacenti e che permette
successivamente la ricostruzione del segnale senza l'introduzione
di ulteriore rumore. Per ogni blocco si costruisce un albero
binario la cui radice è data dal blocco originario ed i
cui nodi sono costruiti attraverso una suddivisione dicotomica
del suddetto blocco sempre con le opportune funzioni "finestra".
Il livello L dell'albero può essere deciso dall'utente, con l'unico vincolo 2L£ N, ove N è la dimensione del blocco del segnale. Ogni nodo dell'albero è "trasformato" usando una DCT o una DST , (Discrete Cosine/Sine Transform) locali ovvero definite sull'intervallo da analizzare. Ad ogni nodo verrà associato un "costo" tramite una funzione predefinita. La base che meglio rappresenterà il blocco sarà data dalla successione dei nodi che "copre" l'intero intervallo di N campioni e che ha "costo" minimo (vedi esempio in fig.).
La funzione che associa un costo ad ogni nodo restituisce valori
bassi se la "concentrazione" dei campioni trasformati
è alta ( ovvero se esistono solo pochi elementi significativi
ovvero pochi elementi hanno un'ampiezza elevata a differenza degli
altri ) e valori alti se invece la distribuzione dei campioni
è uniforme o quasi. Una funzione adatta a questo scopo
è la formula per il calcolo dell'entropia di Shannon; infatti
se consideriamo i campioni come valori di una funzione di distribuzione
di probabilità (con opportune modifiche) l'entropia di
Shannon tende a zero se solo pochi elementi hanno una probabilità
elevata e tende ad infinito se i campioni sono equiprobabili.
Il programma sviluppato supporta diverse funzioni costo Per i
nostri scopi si è usata una funzione che attraverso l'uso
di una soglia conta i campioni che la eccedono.
Le politiche seguite nell'operazione di denoising sono riconducibili
a due casi.
Si può scegliere di eseguire una sottrazione spettrale
nelle sezioni del brano in cui le componenti frequenziali sono
elevate (in ampiezza) e, quindi, in cui l'attenuazione di alcune
componenti non comporta un'eccessiva perdita di informazione;
viceversa si evita di "sottrarre" informazione nelle
sezioni di brano in cui le ampiezze delle frequenze sono basse
e quindi in cui l'effetto della sottrazione potrebbe essere più
pesante cioè oltre a sottrarre il rumore c'è la
possibilità di perdere informazione del brano originale
(senza rumore).
La seconda politica è praticamente l'opposta della prima.
Si ritiene che il rumore sia più facilmente udibile nelle
sezioni di brano in cui le componenti del suono hanno ampiezze
basse (e si opera la sottrazione spettrale in questo caso) piuttosto
che nelle sezioni in cui le elevate intensità possono mascherare
il rumore.
In questa tesi si è scelto quest'ultimo approccio. Diventa
a questo punto cruciale la scelta della soglia che dovrebbe costituire
una stima (in ampiezza ed in frequenza) del rumore di fondo (può
essere ottenuta valutando il fruscio nell'intervallo tra un brano
ed il successivo oppure in un momento di pausa durante il brano).
Inoltre la soglia, intesa come stima del rumore, coincide (nello
sviluppo del progetto) con la soglia usata nella funzione costo
per la scelta delle basi, in modo tale che la rappresentazione,
tramite le suddette basi, del segnale metta in evidenza le porzioni
di segnale dove la Sottrazione ha un effetto più alto.
Il software sviluppato offre la possibilità di intervenire
interattivamente sull'ampiezza del blocco di segnale da analizzare,
sulla profondità dell'analisi (profondità dell'albero),
sulla scelta delle trasformate da utilizzare per l'analisi, ed
infine sulla soglia.
Per quanto riguarda il formato dei file audio da trattare si sono
utilizzati file di tipo AIFF (in ingresso ed anche in uscita)
con frequenza di campionamento a 44100 Hz, codifica PCM lineare
a 16 bit, e monofonici.