2.3.1 Introduzione

Lo scopo del riconoscimento vocale è, dato un segnale in ingresso, riuscire a ricavare, nel modo più corretto possibile ciò che è stato detto. A tale scopo i segnali in ingresso, vengono trattati con delle tecniche opportune e riconosciuti tramite algoritmi che si basano su principi diversi.

In figura 2.7 si possono notare i vari blocchi che compongono un riconoscitore vocale. Lo schema è stato volutamente semplificato allo scopo di dare una veloce introduzione all'argomento. In ingresso si ha un segnale vocale. Essa viene rielaborata al fine di costituire un vettore di ingresso all'algoritmo di riconoscimento, costituito:

Questi parametri saranno ottenuti a seguito di una serie di trasformazioni che mireranno ad ottenere solo quelle caratteristiche vocali utili al riconoscimento.
Figure 2.7: Schema a blocchi: riconoscimento a partire dal segnale vocale
Image FIGanalisi_segnale_vocale
In primo luogo viene compiuto un passaggio dal dominio continuo a quello discreto campionando il segnale vocale $s(t)$ e ottenendo $S(n)$. Nel nostro riconoscitore si è utilizzata una campionatura a 8 KHz e una precisione di 8 bit. Il segnale ottenuto viene poi raggruppato in frames. Le caratteristiche dell'apparato vocale umano non variano rapiamente nel tempo e possono essere considerate invarianti per brevi intervalli detti frame. Il segnale vocale umano può essere quindi considerato semi-stazionario, ovvero stazionario per periodi relativamente brevi, nel nostro caso di 20 ms. Un frame viene ottenuto spostando una finestra rettangolare ampia $N_a=256$ campioni, di $M_a=80$ campioni lungo tutta la durata $T$ del segnale. Si ha dunque:
\begin{displaymath}
X_t(n)=S(M_at+n) \quad , \quad 0 \leq n \leq N_{a-1} \quad , \quad 0 \leq t \leq T-1
\end{displaymath} (2.20)

Da (2.20) si può notare che gli $X_t(n)$ sono sovrapposti, hanno durata di 20 ms e iniziano ogni 10 ms. Dal segnale $X_t(n)$ si passa nel domino delle frequenze per mezzo della trasformata veloce di Fourier (FFT) ottenendo $X_f(n)$. Il segnale ottenuto viene fatto passare in un banco di 18 filtri passa banda, progettati in base ad un modello che rispecchia le caratteristiche del sistema uditivo umano. Per ogni frame viene calcolata l'energia del segnale relativa all'i-esimo filtro:

\begin{displaymath}
E_i=\sum_{j={L_i}}^{S_i} \vert X_f(j)\vert^2 \quad , \quad i=1,...,18
\end{displaymath}

dove $L_i$ e $S_i$ sono gli estremi in frequenza della banda relativa al filtro i-esimo e $X_f(j)$ è il j-esimo campione ricavato dalla trasformata veloce di Fourier. Applicando una trasformata coseno discreta (DCT) al fine di decorrelare le bande, si ottengono 17 parametri cepstrali di cui solo i primi 12 vengono usati dal riconoscitore:
\begin{displaymath}
C_i=\sum_{j={1}}^{18} log(E_j) cos\left[ i\left( j-\frac{1}{2}\right) \frac{\pi}{18}\right] \quad , \quad i=1,...,17
\end{displaymath} (2.21)

Viene anche calcolata l'energia totale:
\begin{displaymath}
E=\sum_{j={1}}^{18} E_j
\end{displaymath} (2.22)

All'ingresso dell'algoritmo di riconoscimento vengono anche passate le variazioni dei parametri cepstrali ($\Delta C_i(t)$) e le variazioni delle variazioni ( $\Delta \Delta C_i(t)$), chiamati parametri cepstrali differenziali. Essi vengono calcolati per approssimazione delle derivate temporali dei coefficienti cepstrali, su una finestra pari a $K=2k+1$ frame. Nel caso del nostro riconoscitore $k=3$. Si ottiene:
\begin{displaymath}
\Delta C_i(t)=G \sum_{k=-K}^{K} k C_i(t-k) \quad , \quad 1 \leq i \leq p
\end{displaymath} (2.23)

dove: Si calcolano poi la derivata e la derivata doppia di $E$ e si applica la (2.23) sui $\Delta C_i$ ottenuti in precedenza. Ogni frame in ingresso al riconoscitore sarà perciò rappresentato da: ottenendo un totale di 39 parametri per frame (Figura 2.8).
Figure 2.8: Composizione di un frame
Image FIGparametri_frame
Una volta elaborato il segnale, verrà passato all'algoritmo che svolgerà il riconoscimento. Come è stato visto in precedenza per quanto riguarda la tecnologia neurale, per il riconoscimento, sia che si utilizzi una rete, sia che si usino altre tecniche, bisogna sempre compiere una fase di training con il compito di addestrare il modello. Esistono due tecniche utilizzate per stimare i modelli utili al riconoscimento vocale:
Stefano Scanzio 2007-10-16