• Non ci sono risultati.

Progettazzione, realizzazzione e collaudo di un interfaccia vocale uomo-macchina basata su array di microfoni MEMS per persone diversamente abili

N/A
N/A
Protected

Academic year: 2021

Condividi "Progettazzione, realizzazzione e collaudo di un interfaccia vocale uomo-macchina basata su array di microfoni MEMS per persone diversamente abili"

Copied!
116
0
0

Testo completo

(1)

UNIVERSIT `

A DEGLI STUDI DI PISA

FACOLT `A DI INGEGNERIA

CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA Ordinamento 270

Anno Accademico 2013-2014

Progettazione, realizzazzione e collaudo di un

interfaccia vocale uomo-macchina basata su

array di microfoni MEMS per persone

diversamente abili

Candidato: Alessandro Palla

Relatori

Prof.

Luca Fanucci

Ing.

Roberto Sannino

(2)
(3)

Prefazione

In questo lavoro sono analizzate le problematiche che le persone con disabilit`a motoria affrontano gior-nalmente nell’approccio alla tecnologia, in particolare riguardo all’accesso a Personal Computer (PC) e smartphone.

Il target di disabili di riferimento `e quello con problemi relativi alla sfera moto-sensoriale ma senza difficolt`a dal punto di vista linguistico-lessicale, poich´e un’utenza di questo tipo pu`o accedere alla tecnologia mediante controllo vocale. Purtroppo l’interfacciamento vocale pu`o risultare impraticabile in diversi scenari poich´e questi sistemi tipo hanno il vincolo molto stringente di richiedere un ambiente privo di rumore per avere un buon riconoscimento.

Dopo un’attenta analisi degli scenari in cui la condizione precedente non pu`o essere soddisfatta, sar`a discussa un’architettura hardware/software per ovviare a queste problematiche. In particolare il lavoro centrale di questa tesi `e lo sviluppo di una piattaforma embedded il cui compito `e filtrare il segnale audio proveniente da uno o pi`u microfoni mirando ad incrementare:

ˆ Intelligibilit`a del parlato

ˆ Separazione efficiente del segnale utile dal rumore di fondo

Il sistema utilizza un array di microfoni MEMS omnidirezionali per estrarre, tramite una particolare tecnica di elaborazione numerica chiamata beamforming, solamente determinati angoli, chiamati beams. Questo algoritmo `e eseguito due volte per filtrare l’audio proveniente dall’utente ed il disturbo privato della voce.

In seguito per attenuare ulteriormente il disturbo dal primo beam `e utilizzato un filtro di echo cancelling, il quale si occupa di processare il segnale proveniente da questi due streams per cancellare dal primo gran parte del rumore.

Pu`o essere utile a seconda dello scenario poter identificare quando l’utente parla al fine di inviare i dati al sistema di speech recognition solamente quando serve risparmiando sulla quantit`a di campioni da inviare e processare. L’utilizzo di un algoritmo di Voice Activity Detection (VAD) `e necessario dunque per sapere quando inviare l’audio precedentemente processato al PC o allo Smartphone.

Sono quindi proposte due architetture basate sul microprocessore STM32F439 che permettano di migliorare sia l’intelligibilit`a del parlato che il Signal to Noise Ratio (SNR). L’audio verr`a inviato al device a seconda dello scenario tramite USB oppure wireless per mezzo della tecnologia Bluetooth.

In seguito `e descritta l’implementazione degli algoritmi sulla piattaforma embedded, in particolare mis-urandone le performance sia in numero di operazioni al secondo Mega Istruction per Second (MIPS), sia in termine di dimensione del codice.

Infine sono mostrati i risultati dei test eseguiti sia sul sistema di beamforming ed echo cancelling che dal punto di vista del riconoscimento vocale.

(4)

Ringraziamenti

Condensare in poche righe tutta la gratitudine che ho nei riguardi di diverse persone che mi hanno sostenuto durante tutto il percorso della tesi `e certamente difficile. Desidero ringraziare in primo luogo il prof. Luca Fanucci,relatore di questa tesi, per la grande disponibilit`a e cortesia dimostratemi, e per tutto l’aiuto fornito sia per la tesi che durante tutta la mia carriera universitaria. Un sentito ringraziamento anche ai miei genitori, che, con il loro incrollabile sostegno morale ed economico, mi hanno permesso di raggiungere questo traguardo. Inoltre devo ringraziarli ancora di pi`u per aver acceso in me la fiamma della curiosit`a che brucia ancora forte in me e che mi ha aiutato a raggiungere questo importante risultato. Desidero inoltre ringraziare la ditta ST Microelectronics, Roberto Sannino e tutti i ragazzi del gruppo di AST (Advanced System Technology) di Agrate per tutto quanto hanno fatto per me e per il sostegno ricevuto durante il periodo di stage. Vorrei ringraziare inoltre la mia ragazza, Francesca Tanzini, per essere stata al mio fianco anche in questa ulteriore sfida. Un ultimo ringraziamento ai compagni di studi, per essermi stati vicini sia nei momenti difficili, sia nei momenti felici: sono stati per me pi`u veri amici che semplici compagni

(5)

Acronimi utilizzati nel testo

ADC Analog to Digital Converter

AEC Acustic Echo Canceller

API Application Programming Interface ASR Automatic Speech Recognition DAC Digital to Analog Converter

FFT Fast Fourier Transform

FIR Finite Impulse Response

HSP HeadSet Profile

IIR Infinite Impulse Response Istat Istituto Nazionale di Statistica MEMS Micro Electro-Mechanical Systems MIPS Mega Istruction per Second

PC Personal Computer

PCM Pulse Code Modulation

PDM Pulse Density Modulation

SNR Signal to Noise Ratio

SPP Serial Protocol Profile

USB Universal Serial Bus

(6)

Indice

1 Introduzione 11

1.1 Disabilit`a in cifre . . . 11

1.1.1 Internet e Personal Computer . . . 12

2 Scenari 15 2.1 Riconoscimento Vocale per Desktop PC . . . 16

2.2 Interazione con smartphone . . . 19

3 Algoritmi 23 3.1 Beamforming . . . 23

3.2 Echo Cancelling . . . 36

3.3 Voice Activity Detection . . . 40

4 Architettura 47 4.1 Voice Recording and Filtering . . . 48

4.1.1 Microfoni . . . 50

4.1.2 Σ-∆ ADC . . . 50

4.1.3 Beamforming . . . 51

4.1.4 Compensazione dei Microfoni . . . 56

4.1.5 Echo Cancelling . . . 58 4.1.6 VAD . . . 61 4.2 Transmission . . . 64 4.2.1 USB . . . 65 4.2.2 Analogico . . . 66 4.2.3 Bluetooth . . . 71 4.2.4 Confronto . . . 75 4.3 Elaboration . . . 79

4.3.1 Automatic Speech Recognition . . . 80

4.3.2 Speex Codex . . . 83

5 Definizione dei requisiti 85 6 Embedded Design 87 6.1 Scheda di sviluppo . . . 87 6.2 µ-array MEMS . . . 89 6.3 Acquisizione . . . 93 6.4 Bemaforming . . . 94 6.5 Echo Cancelling . . . 94 6.6 Profiling . . . 95 6.6.1 Comparazione . . . 96

7 Collaudo ed User’s Experience 97 7.1 Directivity Pattern . . . 97 7.1.1 Setup . . . 97 7.1.2 Misurazione . . . 98 7.2 Aumento SNR . . . 101 7.2.1 Setup . . . 101 7.2.2 Misurazione . . . 102 7.3 Speech Recogniton . . . 104

(7)

8 Conclusioni e possibili sviluppi 108

8.1 Sviluppi futuri . . . 108

8.1.1 Codifica Speex embedded . . . 108

8.1.2 Power Mode . . . 109

8.1.3 Speaker Dependent Acoustic Model . . . 112

8.1.4 Bluetooth HSP . . . 112

8.1.5 Source Localization . . . 113

(8)

Elenco delle figure

1 Confidence media in funzione dell’SNR . . . 15

2 Esempi di mouse e tastiera per disabili. . . 16

3 Scenario Desktop PC . . . 17

4 Configurazione di riferimento nello scenario desktop PC . . . 18

5 Scenario smartphone . . . 19

6 Schema a blocchi dell’interfacciamento tramite uscita analogica . . . 21

7 Schema a blocchi dell’interfacciamento tramite Bluetooth . . . 21

8 Compressione/Espansione delle molecole dell’aria in un’onda sonora . . . 23

9 Velocit`a del suono in aria in funzione della temperatura . . . 24

10 Array di Sensori - Struttura . . . 25

11 Array di Sensori - Schema a blocchi . . . 26

12 Segnale ricevuto da un’apertura lineare . . . 26

13 Cambio del sistema di riferimento . . . 28

14 Risposta del sistema al variare di N (f = 1 kHz, d = 0.1 m) . . . 29

15 Risposta del sistema al variare di d (f = 1 kHz, N = 5) . . . 30

16 Risposta del sistema al variare di f (N = 5, d = 0.1 m) . . . 30

17 Spatial Aliasing . . . 31

18 Directivity Pattern quando α = 0 . . . 33

19 Directivity Pattern quando α = 0.5 . . . 33

20 Schema a blocchi di un sistema per AEC . . . 36

21 Architettura VAD . . . 41

22 Energia in un segnale vocale . . . 41

23 Distribuzione di zero-crossing per silenzio e voce . . . 43

24 Risposta in frequenza di diverse tipologie di finestre . . . 44

25 Valore di p in funzione del Fall-time (decine di millisecondi) di H(z) . . . 45

26 Architettura del sistema . . . 47

27 Topologia dell’array di microfoni . . . 49

28 Schema a blocchi convertitore Σ-∆ . . . 50

29 Schema a blocchi del sistema di beamforming . . . 51

30 Risposta in frequenza teorica del beamforming per α = 0.5 . . . 53

31 Risposta richiesta al filtro equalizzatore . . . 54

32 Risposta dell’equalizzatore toerica e misurata . . . 56

33 Directivity pattern per  = 10 % . . . 57

34 Schema a blocchi echo cancelling . . . 58

35 Schema a blocchi echo cancelling con voce nel Noise Beam . . . 59

36 Frame di silenzio tra le due sillabe della parola‚quattroƒ . . . 61

37 Rise time per diverse window functions . . . 62

38 Fall time per diverse window functions . . . 62

39 Fall time per L = 20 . . . 63

40 Diversi tipi di connettore USB femmina . . . 65

41 Schema a blocchi del sistema di trasmissione nel caso di DAC interno . . . 67

42 Schema a blocchi del sistema di trasmissione nel caso di DAC esterno . . . 68

43 Schema a blocchi del modulo CS43L22 . . . 69

44 Consumo di potenza delle varie periferiche . . . 69

45 Consumo di potenza del modulo CS43L22 . . . 70

46 Architettura Bluetooth HSP . . . 71

47 Modulo RN-52 . . . 72

48 Architettura del sistema di trasmissione con protocollo Bluetooth SPP . . . 72

49 Architettura del sistema di trasmissione con protocollo Bluetooth HSP . . . 73

(9)

51 Consumo di potenza delle varie periferiche nello scenario Bluetooth . . . 74

52 Performance dell’interfacciamento mediante protocollo USB . . . 75

53 Performance dell’interfacciamento mediante uscita analogica . . . 76

54 Performance dell’interfacciamento mediante protocollo Bluetooth . . . 76

55 Confronto tra le architetture proposte nello scenario Desktop PC . . . 77

56 Confronto tra le architetture proposte nello scenario Smartphone . . . 77

57 Schema del blocco Elaboration nello scenario Desktop PC . . . 79

58 Opzioni di codifica per Dragon Web API . . . 80

59 Esempio di pacchetto HTTP POST . . . 81

60 Esempio di risposta dal server di ASR . . . 82

61 Qualit`a vs bit rate . . . 83

62 Architettura del software su Smartphone . . . 84

63 Scheda di sviluppo STM32 MEMS MIC . . . 87

64 Fotografia della scheda di sviluppo STM32 MEMS MIC . . . 88

65 µ-array di microfoni MEMS . . . 89

66 Struttura interna del microfono MP34DT01 . . . 89

67 Schematizzazione del microfono MP34DT01 . . . 90

68 Directivity pattern del microfono MP34DT01 . . . 90

69 Sensitivity dei microfono MP34DT01 . . . 91

70 Deviazione standard della sensitivity nei microfoni MP34DT01 . . . 92

71 Risposta in frequenza del microfono MP34DT01 . . . 92

72 Quarzo a 12.288 MHz . . . 93

73 Setup, altoparlante a θ = 0° . . . 97

74 Schema di principio dell’ambiente di setup . . . 98

75 Directivity Pattern del sistema con il solo beamforming . . . 99

76 Directivity Pattern del sistema con beamforming ed echo cancelling . . . 100

77 Confronto dei Directivity Pattern con i vari algoritmi selezionati . . . 100

78 Misura dell’SNR in caso di rumore diffuso . . . 101

79 Postprocessing su Audacity per separare il segnale utile dal rumore . . . 102

80 SNR senza algoritmi . . . 102

81 SNR con beamforming ed echo cancelling . . . 102

82 Spettro del segnale senza e con algoritmi . . . 103

83 Confidence con singolo microfono ed algoritmi . . . 104

84 Incremento della confidence dovuta al sistema . . . 104

85 Percentuale di riconoscimento . . . 105

86 Confronto tra lo spettro della parola‚chiamaƒper diverse tipologie di utenti . . . 106

87 Confronto tra l’inviluppo della parola‚chiamaƒper diverse tipologie di utenti . . . 107

88 Consumo di potenza per il microprocessore STM32F439 a seconda delle modalit`a di funzionamento110 89 Consumo di potenza della per il microprocessore STM32F439 nel caso di utilizzo di speex . . . 111

90 Codec SBC . . . 112

91 Scenario con direzione della voce dell’utente non costante . . . 113

Elenco delle tabelle

1 Persone con disabilit`a per classe di et`a e sesso . . . 11

2 Persone con disabilit`a per tipologia, et`a e sesso . . . 12

3 Persone con disabilit`a per et`a e frequenza di utilizzo del PC . . . 13

4 Funzionalit`a richieste per lo scenario Desktop PC . . . 18

5 Vantaggi/Svantaggi del training in un sistema di voice recognition . . . 19

6 Bluetooth vs. Analogico . . . 22

(10)

8 Ingombro e costo dei moduli bluetooth . . . 74

9 Consumo di potenza del bluetooth . . . 75

10 Ingombro e costo dei moduli bluetooth . . . 82

11 Specifiche del sistema . . . 86

12 Profilig degli algoritmi . . . 96

13 Profiling della libreria Speex per il microprocessore STM32F103xx a 72 MHz . . . 109

(11)

1

Introduzione

1.1

Disabilit`

a in cifre

Per inquadrare il problema `e utile avere una visione d’insieme del fenomeno della disabilit`a almeno in Italia. Come riferimento `e stato scelto il report [1], in cui vi `e una panoramica sul numero e sulla tipologia di disabili fatta dall’Istituto Nazionale di Statistica (Istat) nel 20051.

In tabella 1 sono elencate persone con disabilit`a dall’et`a di sei anni fino agli ottanta che vivono in famiglia (valori assoluti in migliaia).

Tabella 1: Persone con disabilit`a per classe di et`a e sesso

Il totale di disabili sul territorio `e 2 milioni e 600 mila, pari al 4.8 % della popolazione italiana . La disabilit`a `e un problema che coinvolge soprattutto gli anziani, infatti, quasi la met`a delle persone con disabilit`a, un milione e 200 mila, ha pi`u di ottanta anni.

Nell’indagine svolta sono state costruite cinque tipologie di disabilit`a a seconda del tipo di difficolt`a della persona:

ˆ difficolt`a in vista, udito o parola ˆ difficolt`a nel movimento.

ˆ difficolt`a nelle funzioni della vita quotidiana ˆ due difficolt`a tra le precedenti

ˆ tre difficolt`a tra le precedenti

Nelle difficolt`a in vista, udito e parola sono comprese le limitazioni nel sentire (non riuscire a seguire una trasmissione televisiva anche alzando il volume e nonostante l’uso di apparecchi acustici); limitazioni nel vedere (non riconoscere un amico ad un metro di distanza); difficolt`a nella parola (non essere in grado di parlare senza difficolt`a). Le persone con difficolt`a nel movimento hanno problemi nel camminare (riescono solo a fare qualche passo senza aver bisogno di fare soste), non sono in grado di salire e scendere da soli una rampa di scale senza fermarsi, non riescono a chinarsi per raccogliere oggetti da terra. Le difficolt`a nelle funzioni della vita quotidiana riguardano la completa assenza di autonomia nello svolgimento delle essenziali

1La definizione di persona disabile a cui si rif`a l’Istat `e quella descritta in [7]: Una persona `e definita‚disabileƒ se presenta

gravi difficolt`a in almeno una delle seguenti dimensioni: difficolt`a nel movimento, difficolt`a nelle funzioni quotidiane, difficolt`a nella comunicazione (vista, udito o parola).

(12)

attivit`a quotidiane o di cura della persona, quali mettersi a letto o sedersi da soli, vestirsi da soli, lavarsi o farsi il bagno o la doccia da soli, mangiare da soli anche tagliando il cibo. Le persone con due difficolt`a sono quelle che hanno due delle difficolt`a citate sopra. Le persone con tre difficolt`a sono quelle che hanno tutte e tre le difficolt`a citate sopra.

In tabella 2 sono mostrate per completezza le percentuali di persone disabili divise per genere raggruppate per numero e tipo di difficolt`a a seconda dell’et`a.

Tabella 2: Persone con disabilit`a per tipologia, et`a e sesso

In particolare notiamo che il 1.28 % sul totale di italiani ha una disabilit`a di tipo motorio. Sebbene questa statistica sia dominata dalle persone anziane tuttavia l’incidenza di problemi motori `e rilevante pure nei giovani compresi tra i 6 ed i 34 anni. Tramite un rapido calcolo dalle informazioni presenti in tabella 1 e 2 si possono ricavare il loro numero che `e all’incirca di 28 mila persone.

1.1.1 Internet e Personal Computer

Le nuove tecnologie rappresentano una grande opportunit`a per il disabile di interazione con il resto del mondo,. In particolare il Computer e soprattutto internet possiedono la capacit`a di poter accedere alle informazioni in maniera veloce ed i social network rappresentano una straordinaria fonte di integrazione, soprattutto nella fascia di et`a che va dai 13-30 anni.

(13)

Tabella 3: Persone con disabilit`a per et`a e frequenza di utilizzo del PC

Sfortunatamente come si evince dalla tabella 3 a seconda delle tipologie di disabilit`a il l’accesso alle nuove tecnologie per il disabile `e fortemente limitata. In particolare vi `e un aumento del 30 % del numero di persone che non utilizzano mai un PC. I ragazzi disabili con riduzione di autonomia elevata dai 6 ai 24 anni sono 8 % in meno dei loro coetanei ad utilizzare le nuove tecnologie.

Una persona con difficolt`a visive, ad esempio, ha problemi a muoversi nello spazio e a comunicare. Nell’utilizzazione del computer pertanto, per queste persone, il problema consiste nell’inviare le informazioni alla macchina (input) e nell’interpretare quello che la macchina restituisce (output). Chi ha difficolt`a motorie si scontra quotidianamente con ‚barriere architettonicheƒ presenti nelle strade o anche nella propria casa. Anche il computer rappresenta una vera barriera per chi ha difficolt`a di movimento, in particolare l’utilizzo di mouse e tastiera presuppongono un notevole grado di coordinazione psico-motoria difficilmente raggiungibile da una persona con una disabilit`a di questo tipo.

Entrambi i tipi di disabile possono interfacciarsi con PC e smartphone mediante Automatic Speech Recog-nition (ASR). Si tratta di una tecnologia che permette, mediate l’uso di algoritmi che verranno discussi

(14)

successivamente nel paragrafo 4.3.1, di tradurre automaticamente il linguaggio umano in testo. In questo modo l’utente disabile pu`o bypassare i normali metodi di interfacciamento con il PC o lo smartphone coman-dandoli direttamente con la voce. Questa soluzione `e valida sia nel caso di utenti con problemi visivi, i quali interagiscono con il device mediante comandi vocali e feedback sonori, sia nel caso di utenti con difficolt`a motorie, i quali invece hanno solamente bisogno del sistema di ASR per comandare la macchina.

(15)

2

Scenari

Come descritto nella sezione 1.1.1 un utente con disabilit`a di tipo visivo o motorio pu`o interfacciarsi con i device quali PC e smartphone mediante l’utilizzo di Speech-Recognition.

Tuttavia i sistemi di ASR falliscono nel caso non siano soddisfatti i seguenti due requisiti:

ˆ L’utente deve possedere una buona dizione, ovvero deve essere in grado di pronunciare correttamente le parole ed i comandi, affinch´e il software li possa riconoscere.

ˆ Il livello della voce dell’utente deve essere molto pi`u alto di quello del rumore di fondo.

La prima condizione pone un vincolo forte sulla tipologia di disabili che possono usufruire di ASR. Infatti diverse malattie, come per esempio quelle degenerative, oltre a disabilit`a di tipo motorio causano anche problemi nella capacit`a di parlare in maniera intelligibile. La quasi totalit`a di sistemi di speech-recognition2 `

e rivolta ad un pubblico consumer, il quale non ha bisogno di tener conto delle problematiche che un utenza disabile comporta. Infatti questi software, proprio per il fatto di essere consumer-oriented, non prevedono una fase di training in cui il sistema si adatta al modo d parlare dell’utente, presumendo che il consumatore medio voglia un prodotto che funzioni out-of-the-box, senza dover perdere tempo a fare il training del sistema.Per loro natura quindi i motori di ASR generalisti sono tarati sulla media della popolazione e sono inadatti per trattare con utenti con difficolt`a lessicali.

Esistono tuttavia dei software di ASR che potrebbero essere pi`u adeguati per venire utilizzati da persone con problemi di dizione. Questi software, dei quali il pi`u famoso `e Dragon Naturally Speaking, prevedono una fase di training iniziale in cui l’utente pronuncia delle parole di controllo che servono per calibrare il sistema, che da quel punto in poi si adatta alle esigenze dell’utente specifico. Per una descrizione dettagliata di questa tipologia di ASR verr`a discussa nelle sezioni 7 e 8.

La seconda condizione invece fa si che i sistemi di Voice-Recognition siano inutilizzabili in situazioni in cui `e presente un forte rumore di fondo. In figura 1 `e mostrata la confidence3 media per vari livelli di SNR. Il riconoscimento `e stato fatto con le Speech Application Programming Interface (API) di Google le quali saranno discusse nella sezione 4.3.1.

Figura 1: Confidence media in funzione dell’SNR

Il set di parole con cui `e stato fatto questo test `e stato scelto in modo tale che fosse significativo dal punto di vista del problema del controllo vocale, utilizzando quindi una sintassi del tipo:

2i pi`u famosi in questo campo sono i software SVoice, Siri e Google Speech, rispettivamente di Samsung, Apple e Google 3La confidence `e la misura di quanto il risultato del riconoscimento vocale `e attendibile, il quale viene di solito espresso

tramite una percentuale. Il tasso di riconoscimento invece `e la percentuale di frasi riconosciute variando il tipo di parole mantenendo costanti le condizioni di rumore. La differenza tra le due `e sostanziale: la confidence `e una misura fatta dal sistema di ASR sulla singola frase, il tasso di riconoscimento invece `e una misura statistica di quante frasi sono state riconosciute.

(16)

[comando] [soggetto] Per i comandi sono state scelte le parole

ˆ Chiama ˆ Invia ˆ Cerca

mentre come soggetto sono stati utilizzati ˆ Nomi

ˆ Numeri ˆ Colori

Ad ogni parola nel set `e stato aggiunto rumore bianco in maniera tale che SNR ∈ [60 dB, 40 dB, 20 dB, 10 dB, 0 dB] generando cinque files ognuno con un diverso valore di SNR.

I risultati dell’analisi sono mostrati in figura 1. Per valori di SNR ≥ 20 dB si ha che la confidence media si attesta al di sopra dell’75 %, scendendo bruscamente all’aumentare del rapporto segnale rumore. Per SNR < 10 dB si ha che, essendo la confidence minore del 50 % il riconoscimento non `e pi`u affidabile.

Di seguito sono elencati due scenari in cui un utente disabile non pu`o interfacciarsi ad un device a causa delle condizioni elencate precedentemente.

2.1

Riconoscimento Vocale per Desktop PC

Per disabili con difficolt`a ad interfacciarsi con il computer a causa di problemi motori sono presenti sul mercato accessori specifici che vanno dai mouse trackball alle tastiera ad accesso facilitato, di cui due esempi significativi sono mostrati in figura 2. Tuttavia a seconda del tipo di disabilit`a non `e banale interfacciarsi con questi strumenti poich´e richiedono comunque un certo grado di coordinazione che non `e detto che il disabile possieda. Inoltre questo tipo di ausili hanno un costo che `e molto superiore a quello dei loro analoghi commerciali4.

Figura 2: Esempi di mouse e tastiera per disabili.

Utilizzare un sistema di ASR potrebbe essere la soluzione ideale nel caso non si possa usufruire degli stru-menti di figura 2. Tuttavia l’interfacciamento con un PC comporta la presenza di rumori e suoni provenienti dalle casse che possono deteriorare la qualit`a del riconoscimento. Un utente che utilizzi i comandi vocali per comandare il dispositivo si troverebbe in grande difficolt`a nel caso stia guardando un video, ascoltando una canzone o pi`u in generale stia svolgendo un attivit`a multimediale. In questo scenario l’utente viene privato della sua capacit`a di interfacciarsi con la macchina per tutta la durata dell’attivit`a, riducendone cos`ı l’autonomia ed impedendo di fatto un completo utilizzo del PC.

4Per una panoramica completa dei diversi tipi hardware per disabili si rimanda a

(17)

Tuttavia anche utilizzando delle cuffie per evitare che l’audio proveniente dalle casse venga captato dal microfono vi sono sempre i rumori ambientali che degradano le prestazioni del sistema di riconoscimento. Come `e stato mostrato nella figura 1, le prestazioni del sistema di riconoscimento vocale degradano al diminuire del rapporto segnale rumore, fino a rendere il sistema inaffidabile se il livello del disturbo si avvicina a quello del parlato.

Tuttavia la direzione da cui proviene il segnale e quella del rumore sono generalmente diverse.

Figura 3: Scenario Desktop PC

Nella figura 3 `e mostrata la situazione di riferimento: l’utente si trova davanti allo schermo mentre le sorgenti audio `e posizionata ai lati di esso. Una possibile soluzione `e quindi quella di applicare un filtraggio spaziale, ovvero riuscire a separare le due direzioni per ottenere solamente il segnale utile senza avere disturbi sovrapposti. Il questo tipo di filtraggio utilizza un array di microfoni omnidirezionali: combinando opportunamente le uscite di questi si riesce ad ottenere un interferenza distruttiva per certi angoli ed un interferenza costruttiva per altri. Si ha perci`o che il suono proveniente di primi sar`a fortemente attenuato mentre il restante sar`a amplificato. Sapendo quindi la direzione dell’utente `e perci`o possibile selezionare solamente questa reiettando il resto5.

Tuttavia a causa delle riflessioni del suono sui vari oggetti una quota del rumore va a sommarsi con la voce come se provenisse dalla direzione da cui parla l’utente. Per di pi`u la potenza di questo disturbo non `

e predicibile a partire da quella del rumore originario poich´e le riflessioni dipendono dalla disposizione fisica degli oggetti nelle vicinanze dei microfoni. Il suono proveniente dalle casse, ovvero quello presente nel beam diretto in quella direzione, ed il disturbo presente nel beam diretto verso l’utente per`o sono correlati, in quanto provengono entrambi dalla stessa sorgente. Infatti si ha che

Sˆn(f ) = |H(f )|2Sn(f ) (2.1)

Dove Sn(f ) ed Snˆ(f ) sono le densit`a spettrali di potenza del segnale delle casse e del disturbo mentre

H(f ) `e la risposta del canale, ovvero del mezzo di propagazione. Nel caso di N riflessioni in ricezione si avranno altrettante copie del segnale originale ritardate ed attenuate. La risposta di H(f ) sar`a dunque:

H(f ) =

N −1

X

i=0

aie−j2πf ti (2.2)

(18)

Dove aie tisono rispettivamente l’attenuazione ed il ritardo dell’i-esima riflessione. Il canale si comporta

in questo caso come un filtro tempo-variante in quanto i parametri N , aied ti non sono costanti ma variano

nel tempo in maniera a priori aleatoria.

Sfruttando questa correlazione si pu`o per`o utilizzare un filtro adattativo che equalizzi dinamicamente nel tempo il segnale proveniente dalle casse in maniera tale da poterlo sottrarre al segnale utile eliminando cos`ı il disturbo che vi era associato. Questo algoritmo di echo canceling `e discusso approfonditamente nella sezione 3.2. In figura 4 `e mostrato lo schema a blocchi standard del sistema nel caso dello scenario Desktop PC, nel quale l’interfacciamento tra il sistema ed il computer `e svolto mediante protocollo USB.

Figura 4: Configurazione di riferimento nello scenario desktop PC

Lato PC sar`a necessario avere un software specifico che faccia ASR. Le funzionalit`a richieste sono descritte in tabella 4.

Funzionalit`a

Controllo

ˆ Spegnimento del dispositivo ˆ Aprire chiudere applicazioni e files ˆ Controllo del volume globale del sistema ˆ Navigazione tra file e cartelle

ˆ Funzioni di ricerca Web

ˆ Navigazione ˆ Focus sui web form ˆ Invio e-mail

Editing di testi

ˆ Integrazione con Office ˆ Dettato

ˆ Caratteri speciali (backspace, return carriace ecc. . . )

ˆ Managing del documento (salvataggio, chiusura ecc. . . )

Multimedia

ˆ Controllo volume ˆ Play/Stop/Resume

ˆ Selezione del brano/video da riprodurre Tabella 4: Funzionalit`a richieste per lo scenario Desktop PC

Date le specifiche la soluzione adottata `e stato affidarsi ad un motore di riconoscimento vocale commerciale che gi`a propone queste funzionalit`a. In particolare il software `e Dragon Naturally Speaking. La particolarit`a

(19)

di questo programma `e quella di richiedere una fase preliminare di training per adattare il sistema al modo di parlare dell’utente. Questo approccio ha dei vantaggi e degli svantaggi elencati in tabella 5

Vantaggi

ˆ Il sistema `e addestrato a riconoscere il singolo utente ˆ Migliore accuratezza del riconoscimento

ˆ Possibilit`a di utilizzare il sistema anche per utenti con difficolt`a lessicali ˆ Possibilit`a di inserire nuove parole tramite dizionari specifici

Svantaggi

ˆ La fase di training `e molto delicata e condiziona pesantemente le performance dell’algoritmo

ˆ Necessit`a di supporto durante il training ˆ Maggiore complessit`a dell’interfaccia utente ˆ Pi`u difficile da utilizzare correttamente

Tabella 5: Vantaggi/Svantaggi del training in un sistema di voice recognition

Nonostante gli svantaggi elencati precedentemente l’utilizzo di un software con training `e necessaria in caso di utenti che hanno difficolt`a nella corretta pronuncia delle frasi. Un approfondimento sui software di ASR ed un confronto sulle loro performance si trova nel paragrafo 4.3.1.

2.2

Interazione con smartphone

Un altro scenario di notevole interesse `e quello relativo all’uso ed al controllo da parte del disabile di uno smartphone. I telefoni di nuova generazione, sebbene offrano diverse funzionalit`a che possono risultare utili al l’utente con disabilit`a, tuttavia possano essere molto difficoltosi da usare. Ad esempio la modalit`a di interfacciamento standard, lo schermo touch-screen, pone diversi problemi ad un’utenza con difficolt`a nel movimento o nella coordinazione.

Figura 5: Scenario smartphone

Inoltre oltre al comando del telefono `e necessario tenere conto che questo tipo di utenti non pu`o portare il dispositivo all’orecchio in maniera autonoma, per esempio mentre effettua una chiamata, e ci`o va a discapito della privacy.

(20)

Anche qui come nello scenario Desktop PC sono presenti diverse soluzioni che permettono il controllo vocale del dispositivo. Si tratta sia di applicazioni consumer come ad esempio Siri ed S-Voice, sia app sviluppate espressamente per disabili6.

Tuttavia rimane il problema della presenza dei disturbi. In questo scenario l’utente si pu`o trovare som-merso da rumori di ogni tipo che non `e in grado di controllare o spegnere ed anche qui si ritroverebbe impossibilitato ad utilizzare il device. Se per esempio si trovasse in una situazione critica non potrebbe chiamare per richiedere soccorso oppure per avvertire di un pericolo.

In figura 5 si pu`o vedere la situazione di riferimento per quanto riguarda questo scenario. In questo caso, diversamente dal precedente, non `e nota a priori la direzione da cui provengono i disturbi. Tuttavia `

e possibile applicare lo stesso l’algoritmo di echo cancelling introdotto in 2.1 nel caso in cui l’angolo da cui proviene la voce dell’utente fosse costante. Infatti, come sar`a approfondito in 4.1.5, `e possibile tramite beamforming estrarre un beam in cui la voce sia fortemente attenuata ed utilizzarlo per cancellare il disturbo nel beam dell’utente.

Si possono distinguere a questo punto due scenari a seconda della finalit`a del sistema:

ˆ Controllo vocale: in questo scenario il sistema si limita solamente ad inviare audio al telefono il quale si occuper`a di fare speech-recognition ed eseguire le richieste dell’utente. Le specifiche di questo sistema sono dunque

– Aumento della qualit`a dell’audio tramite: estrazione del beam utente, cancellazione rumori di fondo

– Invio dei soli comandi. Invio dei dati discontinuo. – Stream audio unidirezionale, dal sistema allo smartphone

ˆ Comunicazione tramite smartphone: in questo scenario non `e importante la speech-recognition ma l’invio/ricezione dello stream audio. Il sistema si occuper`a dunque di migliorare le caratteristiche del segnale in uscita del sistema applicando gli algoritmi di Beamforming e Noise-Cancelling. Le specifiche richieste sono:

– Massimizzare SNR e qualit`a dell’audio.

– Stream continuo di dati quando vi `e una chiamata/riproduzione contenuto multimediale. – Garantire la riservatezza della comunicazione e la privacy dell’utente.

– Comunicazione bidirezionale.

Inoltre `e presente lo scenario in cui si vuole sia utilizzare i comandi vocali sia gestire la comunicazione bidirezionale tra telefono e sistema.

Per quanto riguarda l’interfacciamento del microfono con lo smartphone sono state considerati due scenari distinti:

ˆ Audio Analogico ˆ Bluetooth

I parametri in base al quale saranno confrontate le due soluzioni sono ˆ Funzionalit`a

ˆ Consumo di potenza ˆ User Experience ˆ Hardware aggiuntivo

Audio Analogico In questo scenario l’audio in uscita dal sistema viene convertito in analogico ed inviato allo smartphone, dal quale viene trattato come un microfono generico inserito nella sua presa jack. Il vantaggio di questo approccio `e che permette un interfacciamento molto semplice con il device. Infatti non `e

6Per una lista di app sia per Android che per IOS consultare:

(21)

richiesto l’invio dati via wireless ed il consumo di potenza `e dovuto solamente al processamento del segnale a monte e non dalla trasmissione. Infatti la conversione in analogico pu`o essere fatta da un Digital to Analog Converter (DAC), il quale `e gi`a presente sul microprocessore utilizzato.

Figura 6: Schema a blocchi dell’interfacciamento tramite uscita analogica

Essendo riconosciuto dal telefono come microfono il sistema potr`a essere utilizzato sia nello scenario Controllo Vocale che in quello Comunicazione. Tuttavia, dato che come mostrato in figura 6 l’audio proveniente dallo smartphone va direttamente agli auricolari, non `e possibile per una applicazione sul telefono configurare il sistema modificando i suoi parametri come direzione del beam ecc. . . Il consumo di potenza non subisce una drastico aumento dato che l’ingresso microfono `e ad alta impedenza e non sono necessari ulteriori componenti attivi per l’interfacciamento.

Figura 7: Schema a blocchi dell’interfacciamento tramite Bluetooth

Bluetooth In questo scenario invece il sistema invia dati ed audio attraverso il protocollo bluetooth. Il vantaggio di questo approccio `e quello di eliminare la necessit`a di utilizzare un cavo per connettersi allo smartphone, con un miglioramento dal punto di vista della user experience. Tuttavia la necessita di un

(22)

modulo hardware aggiuntivo ed il fatto che sia necessario inviare i dati wireless penalizza questa scelta dal punto di vista del consumo di potenza.

A seconda dello scenario `e possibile scegliere diverse modalit`a di invio dei dati7:

ˆ Bluetooth Serial Protocol Profile (SPP): Si tratta di un profilo Bluetooth che simula una connessione seriale. Questa soluzione `e ideale nel caso dello scenario Invio Comandi in quanto l’audio viene inviato solamente quando `e un comando da parte dell’utente e non in maniera continua.

ˆ Bluetooth HeadSet Profile (HSP): Si tratta di un profilo Bluetooth che fornisce le funzionalit`a audio di base necessarie per la comunicazione tra il telefono e l’auricolare. Questa soluzione `e da preferire nel caso dello scenario Comunicazione.

Confronto Nella tabella 6 `e stato fatto un confronto sulla base delle specifiche definite in 2.2 delle due soluzioni proposte.

Bluetooth Audio Analogico

Funzionalit`a

Audio in/out, capacit`a di config-urare lato app le caratteristiche del sistema (beams, parametri algoritmi ecc. . . )

Audio in/out

Hardware Aggiuntivo Modulo Bluetooth Nessuno/Audio CODEC

Consumo di potenza Maggiore: Modulo bluetooth + trasmissione wireless

Minore: trattandosi di un usci-ta line non `e necessario fornire molta potenza.

User Experience Nessun utilizzo di cavi, comuni-cazione wireless

Necessit`a di adoperare un ca-vo per collegare il sistema allo smartphone

Tabella 6: Bluetooth vs. Analogico

I vantaggi della soluzione bluetooth sono sia dal punto di vista della user experience, in quanto `e pi`u semplice per il disabile utilizzare un dispositivo che comunica tramite wireless piuttosto che dover ricorrere ad un cavo, che delle funzionalit`a, poich´e `e possibile utilizzare una app che configuri i parametri del sistema (beams utilizzati, configurazione degli algoritmi) a seconda dello scenario e delle richieste dell’utente. Tut-tavia l’invio di dati wireless incide sul consumo di potenza, soprattutto se la trasmissione `e fatta in maniera continua. Una possibile soluzione potrebbe essere quella di utilizzare un VAD per individuare quando vi `e un effettivo comando da parte dell’utente e quindi inviare solamente quando `e necessario. Queste soluzioni saranno discusse in maniera approfondita nella sezione 4.2.3.

Infine sono elencate le funzionalit`a richieste dall’applicazione lato smartphone: ˆ Chiamata

ˆ SMS/MMS ˆ Navigazione Web ˆ Navigatore ˆ Utilizzo delle note ˆ Interazione con i Social ˆ Sveglia

ˆ Meteo

Va posto in evidenza che i software come Siri ed S-Voice gi`a soddisfano questi requisiti e che quindi sono adatti ad essere utilizzati in questo scenario.

(23)

3

Algoritmi

In questa sezione saranno approfonditi gli aspetti relativi agli algoritmi utilizzati nel corso di questo lavoro. In 3.1 sar`a analizzato l’algoritmo di Beamforming, il quale permette di ottenere, combinando linearmente i dati in uscita da un array di microfoni omnidirezionali, una amplificazione complessiva che dipende dal-l’angolo da cui arriva il suono. Verr`a data una descrizione generale del problema e dei vari tipi di soluzione presenti in letteratura ed infine ci si concentrer`a sulla soluzione adottata, descrivendone vantaggi e svantaggi rispetto alle altre.

Per la parte sulla propagazione delle onde sonore in aria e per la descrizione delle varie tipologie di beamforming si rimanda a [12]. La soluzione adottata in questo lavoro `e un implementazione dell’algoritmo descritto in [11].

In 3.2 verr`a approfondito l’Echo Cancelling, ovvero l’algoritmo che permette di ottenere una sostanziale riduzione del rumore di fondo dal parlato. Questo sar`a descritto partendo dal modello di filtro tempo variante usato per fare echo-cancelling, senza tuttavia addentrarsi in profondit`a nella teoria che, a causa della sua complessit`a, non `e adatta a questo tipo di documento. Per il lettore che volesse approfondire di pi`u gli aspetti inerenti questa sezione si rimanda a [19], [27], [31] e [5].

Nella sezione 3.3 sar`a discusso il sistema di Voice Activity Detection, il quale permette di identificare se nello stream audio `e presente o no la voce dell’utente. Questo algoritmo serve a discriminare, qualora fosse necessario, quando trasmettere al device i dati. Saranno descritte le varie architetture utilizzate in letteratura ([14] ,[15], [16]) ed in seguito quella effettivamente implementata ([14]).

Per la scrittura di tutta questa sezione `e stato molto utile [5], che `e considerato la bibbia nel campo dell’Array Processing e contiene parti su Beamforming, Noise Cancelling e ASR.

3.1

Beamforming

Le onde sonore si propagano attraverso l’aria come onde longitudinali. Le molecole del fluido si muovono avanti ed indietro nella direzione di propagazione creando regioni di compressione/espansione come mostrato in figura 8.

Figura 8: Compressione/Espansione delle molecole dell’aria in un’onda sonora

L’equazione che governa il fenomeno della propagazione ondosa in un mezzo non viscoso `e espressa dall’equazione delle onde (3.1):

∇2x(t, r) − 1 c2

∂2

∂t2x(t, r) = 0 (3.1)

Dove x(t, r) `e una funzione scalare che rappresenta la pressione in funzione di tempo e spazio mentre ∇2

`

e l’operatore laplaciano. La costante c `e la velocit`a di propagazione dell’onda nel fluido ed il suo valore `e ' 334m

(24)

Figura 9: Velocit`a del suono in aria in funzione della temperatura La relazione approssimata che lega la velocit`a del suono alla temperatura `e:

c ' 331, 5 + 0, 6 · t (3.2)

dove c `e espressa in m/s e la temperatura `e in gradi celsius.

La soluzione dell’equazione 3.1 con sorgente puntiforme `e ben nota in letteratura e si tratta di un onda sferica. Il caso monocromatico, ovvero quello in cui la sorgente emette ad una sola frequenza f `e:

x(t, r) = A 4πre

j(wt−kr) (3.3)

dove w = 2πf , il vettore d’onda |k| = 2π

λ e la lunghezza d’onda `e pari a λ = c f

Tuttavia, in analogia con le onde elettromagnetiche, se la distanza dalla sorgente `e sufficientemente grande da poter trascurare il raggio di curvatura dell’onda nei pressi del sensore audio, si pu`o approssimare l’onda incidente come onda piana. Se ipotizziamo un sensore la cui dimensione maggiore `e l, la condizione con cui si pu`o approssimare l’onda come piana, detta anche approssimazione di campo lontano, `e data [12, p.15] dall’equazione 3.4:

r ≥2l

2

(25)

Nel range di frequenze audio ([50 Hz; 20 kHz]) si ha che la minima distanza a cui `e lecito fare questa approssimazione `e, nel caso un sensore di dimensione l = 10 cm

rmin≥

2l2

c · f ' 3 mm (3.5)

Nel resto di questa trattazione questa approssimazione sar`a sempre considerata.

Directivity Pattern Si definisce apertura una specifica regione dello spazio che trasmette/riceve un seg-nale sotto forma di onda. Per esempio nel campo ottico un’apertura pu`o essere il diaframma in una macchina fotografica, in elettromagnetismo pu`o essere un antenna, mentre nel capo audio si tratta di un trasduttore che converte segnali acustici in segnali elettrici (microfono) o viceversa (speaker). Si definisce apertura attiva in trasmissione, passiva in ricezione.

Consideriamo adesso un volume infinitesimo dV di un’apertura passiva. Il volume dV pu`o essere ap-prossimato come un filtro lineare con risposta a(f, r) nel punto r. Il segnale elettrico in uscita dal sensore sar`a dato, nel dominio della frequenza, da:

XR(f, r) = X(f, r) · a(f, r) (3.6)

Dove XR`e il segnale elettrico in uscita dal trasduttore, X `e quello acustico in ingresso mentre a(f, r) `e

chiamata sensitivity function e definisce la risposta dell’apertura in funzione della frequenza e della posizione. Un’array di sensori consiste in un numero N di aperture posizionate in maniera fissata nello spazio. In prima approssimazione possiamo considerare una struttura monodimensionale, in cui gli elementi sono posti lunga una retta come mostrato in figura 10.

Figura 10: Array di Sensori - Struttura

Come si evince dalla figura 10, la definizione di sensitivity function data nell’equazione 3.6 si semplifica dato il caso monodimensionale rx. Ognuno di questi sensori avr`a una sua apertura definita dalla formula 3.6 la quale, nel caso pi`u generale, sar`a il risultato di un filtraggio mediante delle funzioni peso wn.

(26)

Figura 11: Array di Sensori - Schema a blocchi

Per il principio di sovrapposizione degli effetti `e possibile calcolare l’apertura dell’array: la risposta del sistema sar`a la sommatoria di quelle delle singole aperture, la quale sar`a data nel tempo dalla convoluzione tra le funzioni peso wn(t) e la sensitivity function del singolo elemento. La risposta complessiva sar`a data

nel tempo dalla convoluzione tra le funzioni peso wn(t) e la rispettiva sensitivity function. In frequenza si

avr`a dunque che

A(f, xa) = N −1 2 X −N −1 2 wn(f )en(f, xa− xn) (3.7)

Dove wn(f ) `e la funzione peso dell’n-esimo elemento, en(f, x) `e la sua risposta in frequenza e xn`e la sua

posizione sull’asse x. Se consideriamo il caso di sensori omnidirezionali con risposta in frequenza costante si ha che

en(f ) = Gn (3.8)

dove Gn `e la sensibilit`a (sensitivity) del sensore.

Figura 12: Segnale ricevuto da un’apertura lineare

La risposta di un ricevitore tuttavia `e per sua natura dipendente dalla direzione di arrivo del segnale, poich´e l’ammontare di quest’ultimo che viene visto dall’apertura varia a seconda dell’angolo di ricezione, come si evince dalla figura 12, in cui `e mostrato il semplice caso di un’apertura lineare nel caso di onda piana.

(27)

Ipotizziamo a questo punto che il sensore sia investito da un’onda piana proveniente solamente da una direzione. In seguito rimuoveremo questa ipotesi poich´e se la risposta complessiva del sistema si mantiene lineare, ovvero la pressione dell’onda sonora `e inferiore al limite che provoca la saturazione dei microfoni, tramite la sovrapposizione degli effetti sar`a possibile calcolare separatamente l’uscita del sistema in funzione dell’angolo ed infine sommare tutto assieme per ottenere la risposta complessiva.

Consideriamo l’n-esimo elemento dell’array. Il fronte dell’onda arriver`a a quest’ultimo con un tempo ∆td(n) rispetto all’elemento con n = 0 dovuto solamente all’angolo di arrivo del segnale

∆td(n) =

xn

c cos(θ)

8 (3.9)

dove θ `e l’angolo che la direzione dell’onda piana forma con l’asse del array. Notare che nel caso θ = 90, ovvero quando il fronte dell’onda `e perpendicolare all’asse dell’array, ∆td(n) = 0 ∀n ∈ [

N − 1 2 , −

N − 1

2 ]

Questo ritardo/anticipo va ad aggiungersi alla risposta in frequenza del singolo elemento espressa in 3.8 che diventa

en(f, θ) = Gnej2π∆td(n)= Gnej2π

xn

c cos(θ) (3.10)

Il Directivity Pattern, ovvero la sensitivity function del sistema considerando anche la dipendenza dalla direzione di arrivo del segnale, `e dunque espressa nell’equazione 3.11.

D(θ) = N −1 2 X −N −1 2 wn(f )Gnej2πf xn c cos(θ) (3.11)

Con le seguenti assunzioni:

ˆ Sensori tutti identici tra loro: Gn= G ∀n

ˆ Sensori posti tra loro ad una distanza d

si ottiene che il directivity pattern di un array lineare `e:

D(θ) = G N −1 2 X −N −1 2 wn(f )ej2πnf d ccos(θ) (3.12)

Di seguito sono elencate le principali caratteristiche dell’equazione 3.12. Periodicit`a in θ: D(θ + 2π) = G N −1 2 X −N −1 2 wn(f )ej2πnf d ccos(θ+2π)= G N −1 2 X −N −1 2 wn(f )ej2πnf d ccos(θ)= D(θ) (3.13)

Simmetria: ogni array lineare gode di simmetria per rotazione attorno all’asse dell’array stesso. Per ricavare quindi la risposta 3D del sistema basta calcolare il directivity pattern su di un piano e calcolarsi la sua proiezione in 3D semplicemente con una mezza rivoluzione attorno al suo asse.

Relazione con la DFT (Discrete Fourier Transform ): Con la sostituzione α = d

ccos(θ) si ha che la 3.12 pu`o essere considerata la DFT inversa della sequenza dei pesi wn(f ). `E valida dunque la seguente

formula:

D(α) = F−1{wn(f )} (3.14)

8Questa formula `e valida solamente nell’approssimazione di campo lontano (3.4) poich´e stiamo considerando onde piane.

(28)

Dipendenza dalla geometria del sistema: il directivity pattern in generale dipende dalla frequenza. Per semplificare i calcoli `e opportuno fare un cambio di sistema di riferimento come mostrato in figura 13

Figura 13: Cambio del sistema di riferimento

Il microfono di riferimento `e quello in cui il fronte dell’onda arriva per primo, ovvero per t = 0. Quindi per esempio se l’onda sonora arriva da destra rispetto all’asse di simmetria dell’array lineare allora il microfono di riferimento sar`a quello pi`u a destra viceversa se l’onda arriva da sinistra. Nel caso di onda perpendicolare all’asse dell’array, ovvero con θ = 90° la scelta del microfono di riferimento `e indifferente9. Il vantaggio di

questo approccio `e quello di avere che il ritardo con cui gli altri microfoni acquisiscano il segnale rispetto a quello di riferimento `e sempre positivo. Si ha perci`o che il directivity pattern dell’array nel caso pi`u semplice, ovvero con i pesi wn(f ) =

1 N, `e: D(α) = 1 N N −1 X n=0 e−j2πnf α= 1 N e−j2πN f α− 1 e−j2πf α− 1 (3.15)

dove `e stata usata la nota formulaPN −1

n=0 xn = xN− 1 x − 1 . D(α) = 1 Ne −j2πN −1 2 f αe j2πN 2f α− e−j2πN2f α ejπf α− e−jπf α (3.16)

In cui il termine e−j2πN −12 f αdenota un ritardo rispetto al primo elemento dell’array di:

td= N − 1 2 α = N − 1 2 d ccos(θ) (3.17)

Si nota che td `e nullo quando θ = 90° e dipende dall’angolo di arrivo del suono, avendo un massimo per

θ = 90°.Questo ritardo `e lineare con il numero di microfoni e lo spacing tra essi. Dal punto di vista del ritardo utilizzare un array di microfoni `e equivalente ad utilizzarne uno distanziato da quello di riferimento di una distanza l = N − 1 2 d Il modulo `e invece: |D(θ)| = 1 N sin(πN fd ccos(θ)) sin(πfd ccos(θ)) (3.18)

9Nella teoria generale del beamforming la direzione parallela all’asse dei sensori `e chiamata endfire, quella perpendicolare

(29)

`

E sempre valida la condizione espressa in 3.13, per cui la funzione 3.18 verr`a studiata nell’intervallo [−180°; 180°]. Per θ = 90° la funzione `e in una forma indeterminata 0

0. Per calcolarne il limite si pu`o ricorrere utilizzare la 3.15 ottenendo:

D(θ = 90°) = 1 N N −1 X n=0 e−j2πnf d ccos(θ)= 1 (3.19)

Questa condizione si verifica quando tutti i segnali provenienti dai vari microfoni si sommano in fase, per cui quando θ = 90° si ha il massimo assoluto di D(θ).

La dipendenza di D(θ) da d e da N `e mostrata nelle figure 14 e 15. Aumentando la distanza si migliora la direttivit`a dei beam, invece aumentando il numero di elementi si una una maggiore attenuazione per angoli θ 6= 90°.

(30)

Figura 15: Risposta del sistema al variare di d (f = 1 kHz, N = 5)

Dipendenza dalla frequenza: Osservando l’equazione 3.18 si nota una dipendenza del directivity pattern anche dalla frequenza. Questa condizione `e mostrata in figura 16. In particolare pi`u `e alta la frequenza pi`u i lobi sono stretti, tuttavia si osserva la comparsa di altri angoli diversi da quello voluto in cui l’attenuazione `e massima.

Figura 16: Risposta del sistema al variare di f (N = 5, d = 0.1 m) Ogni qual volta il denominatore della 3.18 si annulla, ovvero quando

πfd

ccos(θ) = kπ k = 0, 1, 2 · · · (3.20)

d

(31)

si ha che |D(θalias)| = 1, ovvero vi `e un massimo del directivity pattern. Per calcolare il primo θalias, quello

con k = 1, `e possibile invertire la relazione precedente trovando: θalias= cos−1(

λ

d) (3.22)

Dato che cos−1() `e reale solo per argomenti compresi tra [−1; 1], se ne deduce che la condizione per non avere un altro massimo nel directivity pattern `e che:

d < λ (3.23)

Nel caso si voglia acquisire un segnale a banda finita si avr`a che, in analogia col teorema del campiona-mento di Nyquist-Shannon, che

d ≤λmin

2 (3.24)

La condizione 3.24 esprime un concetto noto in letteratura come spatial aliasing, ovvero il fenomeno analogo al sottocampionamento nel dominio spaziale. Utilizzare un array di elementi spaziati pi`u della met`a della lunghezza d’onda minima comporta l’insorgenza di lobi secondari di ampiezza non trascurabile. Per esempio utilizzando d = ¯λ si avr`a che le onde sonore a frequenza f = ¯c

λ che arrivano dalla direzione θ = 0° si sommeranno in fase su tutti i microfoni.

Figura 17: Spatial Aliasing

Per ottenere un beam che abbia direzione θ 6= 90°. si devono modificare i pesi wn(f ).

wn(f ) = 1 Ne −j2πnd λcos θbeam (3.25) La 3.12 diventa dunque10: D(θ) = G N −1 2 X −N −1 2 ej2πnfdc(cos(θ)−cos (θbeam)) (3.26)

(32)

Senza ripetere tutti i passaggi si ottiene infine che

|D(θ)| = 1 N

sin(πN fd

c(cos(θ) − cos (θbeam))) sin(πfd

c(cos(θ) − cos (θbeam)))

(3.27)

la quale ha un massimo per θ = θbeam

Questa tipologia di beamforming si chiama delay and sum, in quanto i pesi wn(f ) non sono altro che

dei ritardi da inserire sui vari ingressi dell’array. Quest’approccio ha l’enorme svantaggio che θbeam dipende

dalla frequenza, in quanto i valori dei pesi wn(f ) sono stati determinati a partire dalla lunghezza d’onda del

segnale in ricezione.

Per quanto detto fin’ora, questo sistema non si presta ad essere utilizzato per segnali in ingresso ad ampia banda come i segnali audio, i quali hanno una dinamica che va da 50 Hz fino ai 20 kHz. La soluzione adottata `e stato l’uso di un’altra tipologia di beamforming chiamata delay and subtract. Utilizzando il sistema di riferimento di figura 13 consideriamo solamente due sensori. I pesi utilizzati saranno:

wn(0) = 1

wn(1) = −e−j2πf τ

(3.28) dove d `e la distanza tra i due microfoni e τ `e il ritardo associato al microfono numero 1. Il directivity pattern `

e dunque

D(θ) = 1 − e−j2πf (τ +dccos(θ)) (3.29)

Se ci mettiamo nelle ipotesi in cui 2πf (τ +dccos(θ)) << 1, ovvero quando

τ << 1 2πf d << λ

(3.30)

si pu`o approssimare l’equazione 3.29 con il suo sviluppo in serie di Taylor al primo ordine: |D(θ)| ' 2πf (τ +d

ccos(θ)) (3.31)

Si pu`o riarrangiare i termini dell’equazione 3.31 per fare emergere le sue caratteristiche peculiari: |D(θ)| ' 2πf (τ + d

c)P (θ)) (3.32)

In cui P (θ) = α + (1 − α) cos(θ) mentre α = τ

τ +dc. Si ha che:

ˆ 2πf `e il termine dipendente dalla frequenza del directivity pattern. La sua risposta `e di tipo derivatore (passa alto).

ˆ P (θ) `e il termine che descrive la direttivit`a del beamforming ed `e indipendente dalla frequenza. Il parametro α determina l’angolo in cui vi sono i nulli della funzione 3.32.

Condizione α = 0 : In questo caso si ha che

P (θ) = cos(θ) (3.33)

(33)

Figura 18: Directivity Pattern quando α = 0 Condizione α = 0.5 : Questo caso ha la particolarit`a di avere

τ = d

c (3.34)

P (θ) =1

2(1 + cos(θ)) (3.35)

per cui |D(θ)| = 0 quando θ = 180°

(34)

Il guadagno per θ = 0° `e comunque dipendente dalla frequenza e vale |D(θ = 0°)| = 4πfd

c (3.36)

Per ricavare l’angolo θ3 dB per cui il guadagno si dimezza `e necessario invertire la 3.32

4πfd c · 1 2(1 + cos(θ3 dB)) = 1 √ 2· 4πf d c (3.37) θ3 dB= cos−1( √ 2 − 1) ' 65.5° (3.38)

La condizione espressa in 3.30 in questo caso diventa: d << λmin

2π (3.39)

Se `e necessario acquisire segnali che hanno una banda fino ad 8 kHz sar`a necessario dunque che la distanza tra i microfoni sia

d << 6.56 mm (3.40)

Diminuendo d si ha che nel caso α = 0.5,

τ << 1 2πfmax

(3.41) Per verificare il teorema di campionamento di Nyquist-Shannon `e necesario campionare ad una frequenza che sia al minimo

fs= 2fmax (3.42)

sostituendo nella 3.41 otteniamo

τ << 1 πfs

(3.43)

Dato che τ = N fs

, dove N `e il numero di cicli di ritardo da applicare al segnale, si avr`a che

N << 1

π < 1 (3.44)

Questo risultato ha implicazioni importanti. Infatti non `e possibile campionare a frequenza fs= 2fmax in

quanto il periodo dei campionamento `e troppo grande. Una possibile soluzione a questo problema `e effettuare un’operazione di Oversampling, ovvero campionare ad una frequenza pi`u alta di quella di Nyquist, in modo da diminuire il periodo di campionamento. Questa soluzione sar`a discussa in 4.1.3.

Se rimuoviamo la condizione 3.30 nel caso α = 0.5 si ha che |D(θ)| = |1 − e−j4πfdccos(θ)| = 2|sin(2πfd

ccos(θ))| (3.45)

Se consideriamo il beam principale con θ = 0°, si nota che l’approssimazione espressa da 3.31 `e valida solamente per d  λ. Possiamo calcolarci il primo zero della directivity funtion considerando che

2πf0 d c = π (3.46) f0= c 2d (3.47)

(35)

Aumentando la distanza tra i microfoni la frequenza di questo zero diminuisce. Notare che la 3.47 pu`o essere riscritta in questo modo

d λ =

1

2 (3.48)

in cui `e messo in evidenza il fatto che lo zero compare anche nel caso in cui sia rispettata la condizione di spatial aliasing.

Ricapitolando la soluzione delay and subtract permette di ridurre la dipendenza dalla frequenza del pattern rispetto a delay and sum, previo una equalizzazione descritta nel paragrafo 4.1.3. Una tabella esemplificativa di tutti i vantaggi/svantaggi `e mostrata in 7.

Vantaggi ˆ Minore dipendenza dalla frequenza ˆ Esiguo numero di microfoni necessari

Svantaggi

ˆ Bassa Direttivit`a

ˆ Necessit`a di avere i microfoni ‚viciniƒ ˆ Oversampling per α = 0.5

(36)

3.2

Echo Cancelling

L’algoritmo utilizzato per fare Noise Reduction si basa essenzialmente su di una versione modificata di AEC (Acustic Echo Canceller ), ovvero un filtro tempo variante che permette di eliminare dal suono captato da un microfono l’eco di ci`o che `e riprodotto dagli altoparlanti.

Per comprendere meglio l’algoritmo, consideriamo un semplice caso pratico. Supponiamo che qualcuno stia parlando al microfono mentre un altoparlante riproduce degli altri suoni, in un ambiente chiuso. In presenza di riflessioni sugli oggetti fisici e sulle pareti si avr`a che buona parte del segnale delle casse si ritrover`a in ingresso al microfono come disturbo. Possiamo creare un modello del fenomeno fisico ipotizzando che al microfono arrivino N repliche attenuate e sfasate del segnale originale:

r(t) =X

N

anq(t − tn) (3.49)

dove ansono le attenuazioni dovute al mezzo fisico e tninvece sono i ritardi. I coefficienti N ,ane tndipendono

dalla geometria dell’ambiente e non sono predicibili a priori, inoltre possono variare nel tempo. I segnali n(t) e q(t) sono invece rispettivamente il rumore in ingresso al microfono e quello in uscita dalle casse. Definendo la risposta in frequenza del canale

H(f ) =X

N

anej2πf tn (3.50)

si ha che

r(f ) = H(f )q(f ) (3.51)

Sovrapposto ad r(t) si ha il segnale utile x(t). L’obiettivo del sistema dunque riuscire a ricavare r(t) a partire da q(t), il quale `e noto. Cos`ı facendo si potrebbe cancellare i disturbi in ingresso semplicemente sottraendo a questo l’uscita del filtro. Se fosse conosciuta la risposta in frequenza del canale H(f ) sarebbe banale calcolarsi r(t). Tuttavia, come espresso dalla 3.50, la H(f ) non `e nota. Una possibile soluzione `e utilizzare un filtro tempo variante che ha una risposta in frequenzaH(f ) che `ˆ e una stima di H(f ).

Figura 20: Schema a blocchi di un sistema per AEC

In figura 20 `e mostrato lo schema a blocchi di un sistema di AEC. I segnali mostrati sono nel dominio tempo-discreto.

ˆ q(n) : `e il segnale in uscita dalle casse allo step n.

ˆ r(n) : `e la porzione del segnale q(n) che si ritrova in ingresso al microfono.

ˆ H(z) : funzione ti trasferimento tra r(n) e q(n), i quali dunque sono tra loro correlati. hi(n) `e il vettore

(37)

ˆ x(n) : segnale utile. Nel caso dell’echo cancellation si tratta di solito della voce dell’utente. ˆ ˆr(n) : `e l’uscita del filtro.

ˆ r(n) = ˆh(n)Tq(n) = L−1 X i=0 ˆ hi(n)q(n − i) (3.52)

ˆ ˆH(z) : `e la funzione di trasferimento del filtro. In uscita dal sistema si ha

u(n) = x(n) + r(n) − ˆr(n) (3.53)

I coefficienti del filtro ˆhi non sono costanti ma variano nel tempo. Si definisce funzione di costo J (u(n))

una funzione dell’uscita del sistema tale per cui i coefficienti ˆhi varino secondo la seguente legge:

ˆ

hi+1(n) = ˆhi(n) − α∇hJ (u(n)) (3.54)

Dove α `e un parametro e ∇h il gradiente rispetto ai coefficienti hi. L’algoritmo quindi ad ogni passo

aggiorner`a gli hi in maniera tale da minimizzare complessivamente la funzione u(n), dato che −∇hJ (u(n))

indica la direzione del minimo locale. Come funzione di costo sono possibili diverse scelte, come mostrato in [8]. Una possibile funzione di costo `e

J (u(n)) = E{u2(n)} (3.55)

dove E{} `e l’operatore valor medio. Il filtro dunque con questa particolare funzione di costo avr`a l’obbiettivo di minimizzare il mean square error dell’uscita del sistema.

∇hJ (u(n)) = ∇hE{u2(n)} = ∇hE{[x(n) + r(n) − ˆr(n)]2} (3.56)

Se supponiamo che i segnali x(n), r(n) ed ˆr(n) siano a media nulla si ha che:

∇hJ (u(n)) = ∇hE{x2(n)} + ∇hE{[r(n) − ˆr(n)]2} + 2∇hE{x(n)[r(n) − ˆr(n)]} = (3.57)

= ∇hE{x2(n)} + ∇hE{[r(n) − ˆr(n)]2} = ∇hE{[r(n) − ˆr(n)]2} (3.58)

in quanto x(n) `e incorrelato con r(n) ed ˆr(n). Inoltre x(n) non dipende dai coefficienti hi del filtro per cui

∇hE{x2(n)} = 0. Dall’equazione 3.58 si nota che minimizzare J (u(n)) `e equivalente a minimizzare la

potenza del rumore residuo in uscita dal filtro. Portando l’operatore gradiente dentro la media si ottiene

E{∇h[r(n) − ˆr(n)]2} = −2E{∇hr(n) · [r(n) − ˆˆ r(n)]} (3.59)

In cui `e stato utilizzato il fatto che

∇hr(n) = 0 (3.60)

poich´e il rumore in ingresso al microfono non dipende dai coefficienti del filtro. Per calcolare ∇hr(n) si pu`ˆ o

utilizzare la 3.52 ∇hr(n) = ∇ˆ hˆhnTq(n) = (∇hˆhTn) · q(n) (3.61) Dati ∇h=       ∂ ∂h1 ∂ ∂h2 .. .      

(38)

ed ˆ hn=    h1 h2 .. .    si ha che (∇hˆhTn) · q(n) = I · q(n) = q(n) (3.62)

Sostituendo nella 3.59 si ha che

∇hJ (u(n)) = −2E{q(n)[r(n) − ˆr(n)]} (3.63)

Purtroppo la 3.63 non `e utilizzabile in pratica poich´e non `e noto il valore della quantit`a r(n) − ˆr(n). Si procede dunque ad aggiungere alla 3.63

−2E{q(n)x(n)} = 0 (3.64)

in quanto q(n) e x(n) sono incorrelati tra loro ed a media nulla. Si ha dunque

∇hJ (u(n)) = −2E{q(n)[r(n) − ˆr(n)]} − 2E{q(n)x(n)} = −2E{q(n)[x(n) + r(n) − ˆr(n)]} (3.65)

ed infine otteniamo

∇hJ (u(n)) = −2E{q(n) · u(n)} (3.66)

L’algoritmo di aggiornamento espresso in 3.54 diventa dunque ˆ

hi+1(n) = ˆhi(n) + 2αE{q(n) · u(n)} (3.67)

per motivi di notazione si preferisce definire un parametro µ chiamato step size il cui valore `e

µ = 2α (3.68)

ˆ

hi+1(n) = ˆhi(n) + µE{q(n) · u(n)} (3.69)

Il valore di regime del filtro si ha quando ˆ hi+1(n) = ˆhi(n) (3.70) ovvero ∇hJ (u(n)) = −2E{q(n)[r(n) − ˆr(n)]} = 0 (3.71) Facendo le sostituzioni r(n) = hTnq(t) (3.72) ed r(n) = ˆhTnq(t) (3.73) hTnE{q2(n)} = ˆhTnE{q2(n)} (3.74) hTn = ˆhTn (3.75)

cio`e il filtro `e adattato alla risposta del canale. In questa condizione ideale si ha che

(39)

per cui l’uscita del sistema `e

u(n) = x(n) (3.77)

ovvero il disturbo `e stato cancellato.

In un implementazione real-time vi `e per`o un problema nella condizione di aggiornamento dei coefficienti espressa nell’equazione 3.69 dato dal fatto che per calcolarsi la media `e necessario conoscere a priori il valore di e(n). Una soluzione alternativa a quella appena discussa consiste nel rimuovere l’operatore di media ottenendo quindi:

ˆ

hi+1(n) = ˆhi(n) + µq(n)u(n) (3.78)

la relazione 3.78 `e chiamata algoritmo del gradiente stocastico poich´e, a differenza della 3.69 non c’`e necessita di calcolare la media statistica su un gran numero di campioni, il che risulterebbe complesso da eseguire per un sistema che agisce in real-time, ma il valore istantaneo degli ingressi. Il valore q(n)u(n) `e chiamato in letteratura [31] gradiente istantaneo.

(40)

3.3

Voice Activity Detection

Riconoscere in uno stream audio la presenza o meno della voce `e un’operazione molto importante in svariati campi di Digital Signal Processing. Per esempio un algoritmo di compressione potrebbe decidere di utilizzare un numero variabile di bits per codificare il segnale a seconda se sia presenta solo la voce o pure solamente il rumore. Inoltre un algoritmo che consenta di estrarre le parti dove `e presente il parlato `e il primo passo per fare speech recognition.

In sostanza possiamo suddividere i vantaggi che un sistema di Voice Activity Detection permette di ottenere in due macrocategorie:

ˆ Riduzione del throughput medio: avendo identificato i pacchetti in cui `e presente la voce dell’utente `

e possibile decidere di inviare solamente quelli scartando tutto il resto, se siamo interessati solo alla voce. Questo ha un evidente vantaggio in termini di dati trasmessi che sar`a in media generalmente inferiore.

ˆ Segmentazione: permette di estrarre la presenza della voce da tutto lo stream audio. In un ottica di speech recognition questo permette di ridurre la quantit`a di dati che l’algoritmo deve analizzare. Nella teoria riguardante il VAD si definisce silenzio un pacchetto di byte in cui non `e presente la voce. Diversamente dal senso comune in questa tipologia di pacchetti possono essere presenti sia rumore che suoni incomprensibili, i quali per`o dovranno essere riconosciuti come tali.

Le caratteristiche desiderate di un VAD sono le seguenti:

ˆ Un buon algoritmo di decisione: il riconoscimento della voce deve essere robusto e funzionare in diverse condizioni. Per esempio deve poter riconoscere come una parola singola anche quando vi `e un momento di silenzio tra due sillabe.

ˆ Adattabilit`a al rumore di fondo: il sistema deve poter funzionare anche quando l’SNR `e basso ed in condizione di rumore ambientale non stazionario.

ˆ Bassa complessit`a computazionale: questa caratteristica `e pi`u importante in sistemi che devono fare processamento real time.

Tutti gli algoritmi di Voice Activity Detection si possano dividere in due step:

ˆ Feature Extraction: Ovvero il calcolo delle caratteristiche del segnale. A seconda del tipo di feature utilizzate si parla di

– VAD-Frequency Domain: le caratteristiche estratte sono relative allo spettro del segnale. Per calcolarle quindi `e necessario svolgere un’operazione di FFT.

– VAD-Time Domain: diversamente dal precedente, le grandezze vengono calcolate a partire dai campioni nel dominio del tempo.

ˆ Decision: in funzione delle feature estratte allo step precedente, l’algoritmo si occupa di decidere se c’`e parlato confrontandole con delle soglie. Per adattarsi a diverse tipologie di disturbi le soglie devono essere adattative.

Tra le molteplici architetture presenti in letteratura ([14], [16] ed [15]) `e stata scelta quella mostrata in figura 21 [16]. In questa sezione sar`a descritto il suo funzionamento mentre nella sezione 4.1.6 ne saranno discusse le performance relative alla soluzione embedded proposta e sar`a spiegato perch´e `e stata scelta questa implementazione.

(41)

Figura 21: Architettura VAD

In questa architettura il processamento avviene frame-by-frame, ovvero in ogni iterazione dell’algoritmo vengono inseriti gli N campioni pi`u recenti che costituiscono quindi un frame del segnale.

Su ogni frame vengono calcolati ˆ Energia

ˆ Zero Crossing

Energia L’energia del frame j-esimo viene calcolata come

Ej= N −1

X

i=0

x2(jN − i) (3.79)

In figura 22 `e mostrata la condizione tipica per quanto riguarda un segnale x(n) contenente voce: x2(n) viene

integrato su tutta la finestra w(n) ricavandosi l’energia. Consideriamo adesso il segnale x(n) = v(n) + r(n) dove v(n) `e il segnale utile mentre r(n) `e il disturbo.

Figura 22: Energia in un segnale vocale

Se li trattiamo come segnali aleatori ed ipotizziamo che v(n) ed r(n) siano incorrelati abbiamo che

(42)

La condizione per cui si ha la presenza di voce nello stream audio `e

SN R > α (3.81)

dove α `e un parametro. Dalla 3.81 si ricava dunque che

SN R = Pv Pn = Ev Tf En Tf = Ev En =E{v 2(n)} E{r2(n)} > α (3.82)

dove Eved En sono rispettivamente l’energia del segnale e del rumore mentre Tf `e il periodo di un frame.

Dato che non `e possibile misurare E{v2(n)} in quanto questo presuppone la conoscenza di v(n) che invece `

e ignota, si preferisce calcolare E{x2(n)}

E{v2(n)} E{r2(n)}+ 1 = E{v2(n)} + E{r2(n)} E{r2(n)} > α + 1 = β (3.83) Ex En > β (3.84)

per cui si ha infine che

Ex> βEn (3.85)

dunque `e possibile discriminare se c’`e o meno parlato se l’energia complessiva del segnale pi`u rumore `e maggiore di β volte En

Zero Crossing Lo zero crossing di un frame `e il numero di volte che il segnale di ingresso attraversa lo zero. Questa misura viene fatta ad ogni frame

zc =

N −1

X

i=0

|sign[x(jN − i)] − sign[(x(jN − i − 1))]| (3.86)

dove

sign(x) = (

+1 x ≥ 0

0 x < 0 (3.87)

Studi statistici [9] hanno dimostrato che le la media e la varianza dello zero crossing per un segnale contenente solamente voce `e molto diverso da quello in cui `e presente rumore (figura 23, la misurazione `e stata fatta con un frame di durata 20 ms).

(43)

Figura 23: Distribuzione di zero-crossing per silenzio e voce

Questo risultato suggerisce che per distinguere tra voce e silenzio basti calcolare lo zero-crossing di un frame per capire se in questo `e presente voce. Purtroppo essendo una misura statistica non `e molto affidabile, in quanto pu`o accadere che frame contenenti solo rumore abbiano per caso lo stesso numero di attraversamenti dell’origine di un segnale vocale, per cui difficilmente questa feature viene utilizzata da sola. La feature extraction viene fatta su L frame. Ogni frame viene posto in una coda FIFO e viene elaborato da una funzione di pesatura (windows function in inglese) che non `e altro un filtro FIR pasa basso. L’uscita q(n) di questo filtro `e q(n) = L−1 X i=0 w(i)x(n − i) (3.88)

Dove i w(i) sono chiamati pesi della window function. A seconda del loro valore si possono avere diversi tipi di funzioni di pesatura [33]. Le tipologie coniderate in questa analisi sono le seguenti:

ˆ Finestra rettangolare. Questo filtro ha i pesi

w(i) = 1 ∀i (3.89)

Ci`o significa che ogni campione `e pesato uguale indifferentemente dalla sua posizione nella coda, implementando sostanzialmente un filtraggio a media mobile.

ˆ Finestra triangolare (Bartlett). Questo filtro non pesa tutti i campioni in maniera omogenea ma altres`ı secondo una legge del tipo

w(i) = 1 − i −L−12 L−1 2 (3.90)

Il massimo w(i) = 1 si ha per i = L − 1

2 , il che significa che i campioni pi`u significativi sono quelli centrali.

Riferimenti

Documenti correlati

- incidenza percentuale del numero di rappresentanti di ciascuna organizzazione sindacale eletti nelle R.S.U. presenti nel territorio provinciale rispetto al totale dei

Configurez votre Assistant Google en utilisant votre appareil mobile : Sur votre appareil Android, appuyez sur la touche Accueil et maintenez-la enfoncée pour ouvrir

Le concrete prestazioni di tutorato verranno determinate sulla base delle specifiche esigenze degli studenti diversamente abili per un minimo di 4 ore

Per la programmazione differenziata è necessario il consenso scritto della famiglia (art. In caso di diniego scritto, l’alunno deve seguire la programmazione di classe.

Si ringrazia la CTF group per la disponibilità della sala conferenze Si ringrazia la Fondazione Luigi Mazzocchi per il sostegno all’iniziativa. Programma

• rispettando un criterio di coerenza in riferimento alle affermazioni date. E’ in grado di raccontare

Configurez votre Assistant Google en utilisant votre appareil mobile : Sur votre appareil Android, appuyez sur la touche Accueil et maintenez-la enfoncée pour ouvrir

In questo senso si configura la norma costituzionale del diritto allo studio, interpretata alla luce della legge 59/1997 e del DPR 275/1999, da intendersi