logo

SVILUPPO DI UN SISTEMA AUDIO FOLLOWER
Corso: Laboratorio Didattico di Ingegneria dell'Informazione
Studenti: Simone Moretti, Luca Michelotti

PRINCIPIO DI FUNZIONAMENTO

Con sound location si intende la capacità di poter determinare la direzione e la distanza di una o più sorgenti acustiche considerando come note le sole caratteristiche del segnale che viene emesso.  Nel caso di questo progetto siamo interessati alla stima della sola direzione di arrivo, in quanto si suppone nota la distanza della sorgente acustica (che comunque in fase di elaborazione non è un parametro di significativa importanza).

Per la stima dell'angolo di arrivo esistono numerosi algoritmi il cui principio di funzionamento è basato sull'emulazione del sistema orecchie-cervello del corpo umano che, elaborando il segnale acustico ricevuto, riesce a capire, approssimativamente, dove si trova la sorgente. Nell'elaborazione dei segnali, gli algoritmi di Direction of Arrival (DOA) si basano sul principio che un'onda propagandosi in un mezzo giunge in punti diversi con tempi diversi. In questo modo, conoscendo la posizione di punti ben precisi nei quali vengono posti i microfoni, attraverso alcune semplici trasformazioni trigonometriche il ritardo che si viene a generare può così essere tradotto in un ritardo di fase dell'onda rilevata dai sensori.

L'algoritmo utilizzato si basa sulla funzione di Cross-correlazione per la stima del tempo di ritardo con cui l'onda acustica giunge ai microfoni. La Cross-correlazione infatti permette di calcolare approssimativamente quanto due segnali sono simili tra loro e quindi, se il segnale è lo stesso, permette di determinare il ritardo di fase.

In questo progetto per la stima della direzione di arrivo si è scelto di utilizzare due schede di acquisizione audio i cui dati in uscita vengono trasmessi via USB ad un computer portatile dove risiede il software di calcolo. I dati ricevuti in ingresso da MATLAB sono presentati sottoforma di un vettore di quattro righe ognuna delle quali è rappresentativa dei quattro canali totali delle due schede. Il vettore viene quindi elaborato dal software di calcolo che esegue la Cross-correlazione tra il canale 1 e 2 della prima scheda e il canale 1 e 2 della seconda. L'elaborazione finale fornisce una stima per due angoli di arrivo della voce, uno per ogni scheda, che vengono poi combinati insieme per generare il risultato finale che rappresenterà quindi il movimento che il motore dovrà essere in grado di eseguire. Questo dato viene convertito in un carattere ASCII prima di essere inviato in modo seriale alla scheda di controllo del motore passo passo. La scheda di controllo del motore riceve il dato in ingresso e, tramite il software MPIDE, lo converte in un numero intero corrispondente ad un numero di passi consono al movimento angolare da far compiere al motore.


PARAMETRI DI TEST

Il sistema è stato testato nel caso di una videoconferenza in cui i partecipanti siano disposti omogeneamente lungo un tavolo che presenta un profilo lineare e situato parallelamente alla posizione del sistema di acquisizione audio. Per il progetto si suppone che la stanza in cui si svolge la conferenza non presenti un livello di rumore particolarmente elevato e che i partecipanti parlino una alla volta senza sovrapporsi, come è normale che sia.

Il test finale è stato condotto in un ambiente che rispetta le seguenti condizioni:

  1. distanza tavolo-sistema pari a 1.5m

  2. lunghezza tavolo pari a 3m

  3. numero di partecipanti pari a 5

  4. angolo di inquadratura pari a 30°

Per soddisfare i requisiti dell'applicazione si sono poste le schede ad una distanza di 58cm l'una dall'altra con il motore e la webcam che sono posizionati in mezzo alle due schede audio in una posizione che rappresenterà il punto di riferimento dell'intero sistema. Nelle due immagini seguenti si può osservare quanto appena descritto e il sistema di acquisizione realizzato.

Cliccando su video test si può vedere il test finale di funzionamento del sistema: video test.

Nota : In fase di test finale non è stata utilizzata la webcam perchè risultava essere un peso eccessivo per il motore (causato anche dalla batteria parzialmente carica). Considerando che lo scopo del progetto è la corretta indicazione del soggetto che parla durante la conferenza, abbiamo deciso per semplicità di porre un indicatore sull'asse del motore passo passo.


test1

test2