Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Reconocimiento de la Voz
Primera Edicin
Introduccin al
Reconocimiento de Voz
La meta principal del Reconocimiento de la Voz es desarrollar tcnicas y sistemas capaces de
aceptar como entrada seal hablada. La gran difusin alcanzada por los pequeos ordenadores hace que
dentro de poco, cada hogar, cada centro de trabajo, cada establecimiento, etc. posea, al menos un
computador. Ello hace que los sistemas de comunicacin hombre-mquina sean de vital importancia.
Sencillos sistemas de reconocimiento de voz permitiran acceder a informacin de Bases de Datos via
telefono utilizando vocabularios reducidos e independientes del locutor. El estado actual de la tecnologa
hace que estos sistemas sean ya una realidad.
Para realizar el reconocimiento de la voz existen varios problemas bsicos an no resueltos, que
podemos resumir en los siguientes :
No existe una separacin definida y constante entre las diferentes palabras o entre los diferentes
sonidos cuando una persona habla.
Cada sonido elemental (fonema) es modificado por su contexto.
Existen una gran cantidad de parmetros variables, ya sean intra-locutor, inter-locutor, debido a
la forma de hablar, al estado de nimo, a la salud del hablante, al dispositivo de captura de la
seal sonora, a las seales procedentes del entorno, etc.
Es preciso procesar una cantidad ingente de informacin para contemplar todas las variantes
posibles.
Una nica seal sonora lleva una gran cantidad de informacin, aparte de la puramente sintctica,
tales como el sexo y la identidad de la persona que habla, su humor, su acento, etc.
No hay reglas precisas que permitan formalizar los diferentes niveles de complejidad del
lenguaje(sintaxis, semntica, pragmtica, etc.)
Por todas estas razones, la complejidad de realizar sistemas automticos que reconozcan la voz
hablada con una fiabilidad alta es enorme. Por supuesto, que dentro de la tecnologa del Reconocimiento
de la Voz, podemos distinguir diferentes dimensiones de complejidad :
Palabras aisladas, palabras conectadas o voz contnua.
Tamao del vocabulario.
Limitaciones impuestas al lenguaje y a la tarea a utilizar.
Dependencia o independencia del locutor.
Ambigedad acstica.
Ruido ambiente.
En los ltimos aos se han realizado una multitud de sistemas de reconocimiento. Sin embargo,
la mayora de ellos estaban limitados, bien por ser dependientes del locutor, bien por realizar el
reconocimiento sobre palabras aisladas, por utilizar un vocabulario muy reducido, o una gramtica muy
limitada.
El presente curso pretende mostrar los principios bsicos del Reconocimiento de la Voz,
partiendo de los conocimientos ms elementales para llegar a ser capaces de construir sencillos
reconocedores de voz basados en varias tcnicas, con una tasa de reconocimiento bastante aceptable.
Pedro L. Galindo
INDICE
1. Anlisis Temporal de Seales.......................................................... 1
1.1 Concepto de seal .............................................................................................. 1
1.2 Concepto de trama ........................................................................................... 2
1.3 Energia ............................................................................................................. 3
1.4 Densidad de cruces por cero ............................................................................. 4
1.5 Autocorrelacin ............................................................................................... 4
1.6 Periodo Fundamental o Pitch ............................................................................ 5
1.7 Anlisis temporal de los sonidos en Castellano................................................ 7
III
Tema 1
Anlisis Temporal de
Seales
1.1 Concepto de Seal
La seal de voz puede ser convertida en un objeto manipulable convirtindolo en una seal elctrica
utilizando un micrfono. Se realiza una conversin de la seal anlogica en una seal digital, fcilmente
tratable a travs de un ordenador.
El proceso de conversin analgico-digital consta de :
1.- Muestreo :
2.- Cuantificacin
3.- Codificacin
El muestreo consiste en convertir una seal contnua en el tiempo en una seal discreta en el tiempo,
midiendo el valor de dicha seal a intervalos regulares de tiempo.
S1
S2
S1(t)
S2( t0 + n * dt )
t
t0 t0+dt
***
t0+n*dt
Fmuestreo 2 Fmaxima
S3
S2( t0 + n * dt )
S3( t0 + n * dt )
t
t0 t0+dt
***
t0+n*dt
t0 t0+dt
***
t0+n*dt
S(n)
x1(n) =
x1(n)
x2(n) =
x2(n)
x3(n)
x3(n) =
1.3 Energa
Uno de los parmetros ms sencillos de calcular es la energa.
Podemos definir la energa de una seal como :
( m)
Tal cantidad da poca informacin sobre la evolucin de dicho parmetro durante el tiempo. Por tanto, la
magnitud que se suele utilizar es la denominada Energa de Trama, (que a partir de ahora llamaremos
simplemente energa), y que se calcula como :
N
E x 2 ( m)
m 1
Es decir, la energa en la muestra n-sima es simplemente la suma de los cuadrados de las N muestras
siguientes. Como vemos, N es el nmero de muestras consideradas para calcular la energa. Si N es muy
pequeo(del orden de 1 perodo o menos), E n fluctuar muy rpidamente, dependiendo en cada uno de los
detalles de la seal. Si N es muy grande(varios perodos), E n cambiar muy lentamente y no reflejar las
propiedades cambiantes de la seal. Normalmente se suele elegir un valor de N comprendido en el rango :
En' 10 log( En )
La densidad de cruces por cero nos puede dar una idea del contenido en frecuencia de una seal. Si la
medida ZCR es elevada, existen componentes de alta frecuencia, y viceversa. Las distribuciones de
probabilidad de las tasas ZCR para seales sonoras o sordas muestran que dicha magnitud es bastante
fiable para la discriminacin sonoro/sordo.
Sonoros
Sordos
ZCR / msec
0
1.5 Autocorrelacin
Supongamos que queremos comparar dos seales x[m] e y[m] de longitud finita. Una medida de similitud
es el error cuadrtico entre ambas. Si consideramos un posible desplazamiento entre ambas seales,
tenemos que considerar :
P( k )
( x(m) y(m k ))
P( k )
x ( m)
y( m k )
x ( m ) y( m k )
Los dos primeros trminos se corresponden a las energas de la seal primera y segunda, y por tanto no
dependen del desplazamiento entre ambas seales. Por tanto, la funcin P se har mnima cuando la seal
siguiente se haga mxima (por el signo - de la expresin anterior)
R( k )
x ( m ) y( m k )
Por tanto, si consideramos que x e y son la misma seal, se define la funcin de autocorrelacin aplicada a
una trama como :
N k
R( k ) x ( m) x ( m k )
m 1
La funcin de autocorrelacin tiene mltiples utilidades, como se ver a lo largo del presente documento.
1
T
Las seales sonoras secaracterizan por tener un valor de pitch muy claro. Sin embargo, las seales sordas
carecen de periodicidad. Es en las transiciones donde aparecen los problemas. Es decir, la dificultad
estriba en decidir exactamente dnde una seal deja de ser peridica, o dnde comienza a serlo. En la
figura se muestran dos seales correspondientes a los sonidos /o/ y /s/ de la palabra /dos/. Se observa la
evidente periodicidad de la vocal, y la irregularidad de la seal fricativa.
Periodo
de
Pitch
Hombres
0
100
150
M ujeres
200
300
400
Hz.
La autocorrelacin permite determinar el pitch de una forma rpida y precisa, ya que la funcin de
autocorrelacin muestra un mximo relativo muy claro en dicho punto. Por ejemplo, en la seal
correspondiente al sonido /e/ del apartado 6.1, la funcin de autocorrelacin es la siguiente (en el
intervalo correspondiente a los 100-400 Hz , es decir, con un perodo de 20 a 80 muestras a 8 KHz.) :
- Umbral
Umbral
Alta
M edia
o
a
Baja
Anterior
Central
Posterior
En otros idiomas, la clasificacin no es tan simple. Para su deteccin podemos distinguir el hecho de que
son sonidos de gran Energa y Sonoridad. La complejidad aumenta por el hecho de que existen vocales
largas o cortas, acentuadas o inacentuadas, labializadas, etc, etc.
B) Diptongos ( ia , ie , io , iu , ua , ue , ui , uo , ai , ei , oi , au , eu , ou )
Son los formados por dos vocales de diferentes caractersticas.
Ejemplos de palabras con diptongos son : rabia, agua, tiene, cuerda, labio, ruido, ciudad, antiguo, etc.
Asimismo, existen los denominados triptongos, formados por tres vocales : buey, despreciais, etc.
C) Consonantes
C.1 - Oclusivas ( p , t , k , b , d , g )
Se caracterizan por una interrupcin momentanea en el paso del aire a travs de la cavidad bucal.
Sonora
Sorda
Bilabial
b
p
Lingodental
d
t
Lingovelar
g
k
Son ejemplos de palabras con oclusivas : copa, tapa, paco, pera, vaso, etc.
C.2 - Fricativas ( f , z , s , y , j )
Se caracterizan por una interrupcin contnua en el paso del aire. El aire sale a travs de la
cavidad bucal.
f : foto, caf, fama
: caza, cocer, cicern
s : casa, mesa, pesar
j : mayo, hierba, cayado
(fa,fe,fi,fo,fu)
(za,ce,ci,zo,zu)
(sa,se,si,so,su)
(ya,ye,yi,yo,yu) (hi a principio de palabra)
7
(ja,je,ji,jo,ju) (ge,gi)
C.3 - Africadas ( ch )
Se caracterizan por un momento oclusivo seguido de uno fricativo.
ch : muchacho, chico, pecho
C.5 - Lquidas ( l , ll , r , rr )
Poseen rasgos comunes a las consonantes y a las vocales. Se clasifican en :
Laterales
ll : llama, llave, llegar
l : lado, papel, tela
Vibrantes
r : coro, pero, tara
rr : perro, roca, torren
(ra,re,ri,ro,ru,ar,er,ir,or,ur)
(rra,rre,rri,rro,rru) (ra,re,ri,ro,ru al inicio de palabra)
Tema 2
Anlisis Frecuencial de
Seales
2.1 Concepto de Filtro
Un filtro consiste en un sistema que recibe una entrada x(t) y produce una salida y(t), tal y como se
muestra en la salida.
x(t)
y(t)
Filtro
Figura 1. Esquema de un Filtro
ak
k 0
d k y( t ) Q d l x ( t )
bl
dt k
dt l
l 0
a0 1
k 0
l 0
ak y n k bl x n l
a0 1
k 1
l 0
y n ak y n k bl x n l
o lo que es lo mismo, que la salida n-sima puede ser calculada en funcin de las P salidas anteriores, y de
las Q entradas enteriores. Por tanto, ha de tener lo que se llama "memoria", para recordar los valores de
las entradas y salidas anteriores. Un filtro se inicializa asignando el valor 0 a su memoria. En lo sucesivo
trabajaremos nicamente con filtros digitales.
Fc
Frecuencia
Paso Alto : solo permite el paso a las frecuencias mayores que la frecuencia de corte.
dB
Fc
Frecuencia
F1
F2
Frecuencia
10
Seal
Ruptura
en tramas
0 - 300 Hz.
Filtro 1
Clculo de
Energa
E1
Clculo de
Energa
E2
Clculo de
Energa
E3
Clculo de
Energa
E 10
11
Frecuencia
2.7 La FFT
Las seales peridicas se suelen analizar en trminos de componentes sinusoidales, denominadas Series
de Fourier. Mientras que las sinusoides son seales de una nica frecuencia, todas las seales peridicas
pueden ser expresadas como una combinacin lineal de sinusoides ponderadas.
La FFT (Fast Fourier Transform) consiste en un mtodo para realizar un anlisis de Fourier de una seal
considerada como peridica. Es decir, dividir la seal en una serie de cosenos de diferentes amplitudes y
fases, tales, que sumados, dan como resultado la seal original.
x (t )
ck e
2 ktj
T
ck
T To
t T0
x (t ) e
2 ktj
T
dt
La FFT permite calcular los citados coeficientes de una trama de seal considerada como peridica. Para
ello, supongamos una trama de una seal peridica, y tal que su longitud es un mltiplo de su perodo. (Es
decir, que lo que debera seguir a la trama de seal coincide con la propia trama) Si realizamos la
operacin :
X(w)=FFT(x(t));
obtenemos una seal X(w) con las siguientes caractersticas :
Es una seal compleja.
La seal se puede dividir en dos mitades "casi" simtricas. Son simtricas conjugadas.
El valor en un cierto punto (sea el punto n-simo) se correponde con la sinusoide de frecuencia n-sima.
La frecuencia n-sima se puede calcular por una simple regla de tres :
Si la trama tiene N puntos, la frecuencia del punto N de la transformada se corresponde con la
mitad de la frecuencia de muestreo. De donde
N ------------------- FrecMuestreo / 2
n -------------------- x
Por tanto, la frecuencia del punto n-simo se corresponde con la frecuencia FrecMuestreo*n/2/N.
La amplitud de la sinusoide n-sima se puede calcular como la magnitud del valor complejo n-simo
La fase de la sinusoide n-sima se puede calcular como la magnitud del valor complejo n-simo.
Por ser una transformada coseno, la fase viene referida a seales coseno.
La fase tiene poca importancia en el Reconocimiento de Voz. Por tanto, a partir de ahora, siempre
nos referiremos a la amplitud.
2.8 Enventanado
Dado que la FFT supone que la seal de la trama en cuestin es peridica, hemos de minimizar las
discontinuidades que la seal tiene al comienzo y final de cada trama, realizndose un enventanado. Para
ello, se ejecuta la siguiente operacin con cada trama :
n 1,2,... N
12
2 n
0 n N -1
2 n
w(n) 1
0 n N -1
0 n N -1
Figura 6. FFT de la misma seal con ventanas de 256 y 100 puntos (Fs=8KHz.)
Hemos realizado dos transformadas FFT, y hemos dibujado su magnitud. La primera se corresponde a una
trama de una seal de 256 puntos, y la segunda a una trama de la misma seal, de slo 100 puntos. Se
observa que la segunda representa mejor la envolvente espectral, y no tiene en cuenta la estructura fina del
espectro. Por tanto, si N es grande respecto al pitch, en el espectro se puede analizar muy bien los
armnicos correspondientes al pitch, pero la envolvente espectral est "camuflada" en cierto modo. Por el
contrario, si N es pequeo respecto al pitch, la seal tiene poca resolucin en frecuencia, pero la
envolvente espectral es muy limpia.
Una buena opcin para enventanar voz sonora consistira en una ventana rectangular con una duracin
igual a un perodo de pitch. Esto producira un espectro de salida muy cercano a la respuesta al impulso
del tracto vocal. Sin embargo, hay dos grandes problemas. Primero, es muy difcil la localizacin exacta y
fiable del perodo de pitch. Y segundo, sucede que la mayora de los perodos de pitch (sobre too en las
mujeres) son ms breves que la respuesta al impulso del tracto vocal, y la ventana truncara dicha
respuesta, degradando la resolucin espectral.
13
2.10 Prenfasis
Para reducir el rango dinmico de las seales espectrales, se suele alisar el espectro para compensar los
valores de las altas y de las bajas frecuencias mediante un filtro denominado Filtro de Prenfasis.
El prenfasis consiste se realiza mediante una simple diferenciacin :
Idealmente, el prenfasis slo se debe aplicar a seales sonoras. Sin embargo, por la pequea distorsin
que se introduce en las seales aperidicas, y por simplificar el sistema de anlisis, la prctica totalidad de
los sistemas actuales aplican el prenfasis a todo tipo de seales.
2.11 Formantes
Los formantes se corresponden (aproximadamente) con los mximos en la envolvente espectral. realmente
son zonas de resonancia en las que se pone de relieve un conjunto determinado de armnicos.
F1
F2
F3
F4
F5
F6
Espectro de Fourier
2000
4000
6000
8000
14
i
2000
i
ii e
i i
i i
i e
i
i i
e e
ee
e e
i e
e e e a
a a a
e e
a
a
e
a a
o
o o aa
o o o ooa
a
o uoo
u u uu
u o
u o
u u
1000
a
a a
a
a a a
a
a
a
F1(Hz.)
500
1000
15
2.12 Espectrogramas
Consisten en grficos donde se muestran en forma bidimensional la evolucin espectral a lo largo del
tiempo. Normalmente se representa en un diagrama, donde el eje horizontal representa el tiempo, el eje
vertical representa la frecuencia, y en escala logartmica de tonalidades de gris (blanco=valor bajo,
negro=valor alto) se muestran las amplitudes de los correspondientes espectros.
16
E.1 - Oclusivas ( p , t , k , b , d , g )
Las oclusivas sordas se detectan con facilidad, dada la existencia de una zona previa a la oclusin
con energa casi nula. Las oclusivas sonoras son ms difciles de detectar. La clasificacin entre
ellas se realiza ananlizando la envolventye espectral en la zona previa a la oclusin (oclusivas
sonoras) y alrededor de la oclusin(oclusivas sordas)
E.2 - Fricativas ( f , z , s , y , j )
Son sonidos eminentemente sordos, es decir, aperidicos. Por tanto, la mayor concentracin de
energa se produce en las altas frecuencias. Suelen tener poca energa. Son fciles de clasificar en
funcin de la envolvente espectral.
E.3 - Africadas ( ch )
Es un sonido sordo, con caractersticas similares a las de las consonantes fricativas.
E.4 - Nasales ( m , n , )
Son sonoros. Muestran una concentracin de energa en la baja frecuencia, y un rango de
frecuencias medias, sin picos aparentes. Su apariencia temporal se parece a la de las vocales,
aunque su energa es significativamente menor. Suelen ser difciles de clasificar entre s.
E.5 - Lquidas ( l , ll , r , rr )
Como ya sabemos, poseen rasgos comunes a las consonantes y a las vocales, y son bastante
difciles de caracterizar. Sus caractersticas dependen en gran medida del contexto en que
ocurren. En general, son muy similares a las vocales y diptongos, es decir, sonoras, duracin
larga, la mayor parte de la energa en las bajas frecuencias, aunque su definicin espectral no es
muy buena. Tienen una menor energa que las vocales.
17
Tema 3
Prediccin Lineal
3.1 Concepto
Supongamos que queremos realizar una estimacin del valor de una muestra en el instante n como una
combinacin lineal de las p muestras anteriores.
p
s ( n) ai s n i
i 1
El conjunto de coeficientes ptimo ser aquel que haga que el error cuadrtico sea mnimo:
( s n
i 1
s' n ) ( s n ai s n i ) 2
Por tanto, si hacemos que las derivadas parciales sean 0, obtenemos un sistema de ecuaciones que permite
obtener el conjunto de coeficientes del predictor :
J
0
am
1 m p
No es difcil deducir que, en notacin matricial, el sistema de ecuaciones se puede escribir en funcin de
la funcin de autocorrelacin como :
R[0]
R[1]
R[2]
R[1]
R[0]
R[1]
R[2]
R[1]
R[0]
R[3]
R[2]
R[1]
...
...
...
...
R[p-1] R[p-2] R[p-3] R[p-4]
...
...
...
R[p-1]
R[p-2]
R[p-3]
...
...
...
R[0]
a1
a2
a3
...
ap
R[1]
R[2]
R[3]
...
R[p]
A partir de los coeficientes LPC, se puede obtener la envolvente espectral de una seal mediante la
frmula siguiente, donde G es la ganancia del filtro LPC, coefs son los coefs. LPC y n_puntos es el
nmero de puntos deseado para el espectro.
espectro=log(G*abs(freqz(1,[1 -coefs'],n_puntos)));
El error cometido al realizar la prediccin de los puntos de una trama se puede obtener mediante :
error=filter([1 -coefs],1,signal);
18
r ( m)
N 1 m
x (i ) x (i m )
m 0,1,... p
i0
donde p es el nmero de coeficientes LPC que deseamos calcular. Como vemos, el anlisis de
autocorrelacin acumula en r(0) la energa de la seal analizada.
Los coeficientes LPC se pueden calcular a partir de los coeficientes de autocorrelacin mediante el
mtodo de Levinson-Durbin :
L 1
ki
E0 r (0)
r (i ) ij1 r ( i j )
j 1
Ei 1
1 i p
ii ki
ij ii 1 ki ii 1j
Ei (1 ki2 ) Ei 1
El nmero de coeficientes determina la resolucin con la que el anlisis LPC va a representar la
envolvente espectral de la seal. Un valor reducido implica poca resolucin, pero un valor excesivo
implica cierta distorsin debido a que no slo se tiene en cuenta la envolvente espectral, sino la estructura
fina del mismo.
p=22
p=19
p=16
p=13
p=10
p=7
Espectro de Fourier
2000
4000
6000
8000
19
s(n)
FFT
log e
magnitud
IFFT
cep(n)
c 0 ln2
= Ganancia
m1
cm a m
k
c k a m k
k 1 m
m p
m1
cm
k
c k a m k
k 1 m
m>p
c j (t ) c j (t ) c j (t 1)
Sin embargo, esto hace que los valores obtenidos dependan exclusivamente de un segmento pequeo
de voz, lo cual puede llevar a grandes errores. Por tanto, lo que se suele realizar es un clculo de
coeficientes de regresin que realiza una aproximacin sobre varias tramas de la pendiente de variacin
de cada uno de los coeficientes. As, cada coeficiente se calcula como :
k
ci (t )
n c (t n)
i
n k
n k
Normalmente k tiene un valor pequeo, que suele ser de 1 o de 2, totalizando 3 o 5 muestras en cada
clculo respectivamente.
20
s(n)
Prenfasis
c(n) Diferenciacin
de parmetros
0 n N -1
w(n)
Ruptura en
tramas
Enventanado
w(m)
Ponderacin
de parmetros
LPC CEP
Autocorrelacin
Anlisis LPC
c(n)
F
IJ
G
H K
q
m
w( m) 1 sin
2
q
1 m q
21
Sonido
Nasal
Cavidad
Nasal
Sonido
Bucal
Cavidad
Bucal
Velo (campanilla)
Cavidad
Farngea
Lengua
Tubo Larngeo
Cuerdas
Vocales
Trquea y Bronquios
Volumen
Pulmonar
Mediante una modelizacin LPC del Aparato Fonador Humano, podemos realizar un sencillo sistema de
sntesis de voz, siguiendo el siguiente esquema :
Pitch
Generador
de pulsos
Interruptor
sonoro/sordo
Generador de
ruido aleatorio
Filtro LPC
22
Tema 4
Programacin Dinmica
4.1 Concepto
El mtodo ms extendido de comparacin de patrones, y dada la naturaleza eminentemente cambiante de
la voz, es el de programacin dinmica (Dynamic Time Warping-DTW). La idea subyacente es muy
simple. Se almacenan una serie de patrones prototipo de cada unidad a reconocer. El reconocimiento se
realiza comparando un nuevo patrn con cada uno de los vectores prototipo, y seleccionando aquel que
difiera en menor medida, segn una cierta definicin de distancia. Existen muchas variaciones sobre el
algoritmo bsico de Programacin Dinmica en funcin de utilizar diferentes medidas de distorsin,
caminos posibles y procedimientos de bsqueda.
f ( y) ( y 1)
n 1
1
m 1
y realizar la comparacin entre R(y)) y T(f(y)), ya que, mediante la transformacin lineal, sus longitudes
coinciden Sin embargo, los cambios de velocidad al hablar no son lineales, por lo que es preciso un
esquema ms complejo. Supongamos un patrn a reconocer de una longitud de 10, y un patrn
almacenado de una longitud de 8. La funcin de correspondencia podra ser como la que se muestra en la
figura :
23
f(y)
Patron
almacenado
Patron a reconocer
posible camino
Los posibles caminos posibles se denominan recinto de bsqueda, y se configuran como una cuadrcula :
Patrn
almacenado
Patrn a reconocer
c1
c2
(x-1,y-1)
(x,y)
c3
(x,y-1)
D(1,1) = d(T[1],R[1])
D(x,y) = min(
D(x-1,y)
D(x-1,y-1)
D(x,y-1)
+ c1 * d( T[x],R[y] ) ,
+ c2 * d( T[x],R[y] ) ,
+ c3 * d( T[x],R[y] ) )
24
(x-1,y)
(x,y)
(x-1,y-1)
D(x-1,y-1)+2d(x,y)
(x,y-1)
D(x,y-1)+d(x,y)
1/2
1/2
D(x-2,y)+1/2*(d(x-1,y)+d(x,y))
1/2
D(x-1,y-1)+d(x,y)
D(x-1,y-2)+1/2*(d(x,y-1)+d(x,y))
1/2
D(x-2,y-1)+3*d(x,y)
3
D(x-1,y-1)+2*d(x,y)
3
D(x-1,y-2)+3*d(x,y)
R[m]
Funcin de
correspondencia lineal
DTW
T[n]
Funcin de
correspondencia lineal
25
Fase de Entrenamiento
Patrones de
Entrenamiento
s(n)
Extraccin de
Caractersticas
Algoritmo de
Entrenamiento
Base de Datos
(Patrones de Referencia)
c(n)
Patrones de Test
Clasificador
Lgica de
Decisin
Patrn Reconocido
Fase de Test
Figura 5. Esquema de un Sistema de Clasificacin de Patrones
A) Extraccin de Caractersticas : este mdulo convierte la seal de entrada en un vector de
carcatersticas, por medio de un anlisis espectral. Los sistemas de anlisis ms utilizados, son, como ya
sabemos, Banco de Filtros, Anlisis LPC y FFT.
B) Algoritmo de Entrenamiento : este mdulo obtiene a partir de una serie de patrones de entrenamiento,
uno o varios patrones representativos de los rasgos ms caractersticos de cada clase. El elemento
resultante puede ser un ejemplar de los patrones de entrada, un ejemplar obtenido por algn mtodo de
promediado, o bien un modelo matemtico que caracteriza a los patrones de entrenamiento.
C) Clasificacin de Patrones : el patrn de test en comparado con cada patrn de referencia y se calcula
una medida de similaridad para cada uno de ellos. Se precisan dos medidas de distancia, una local, en que
se define la distancia espectral entre dos tramas diferentes, y una global, normalmente a travs de algn
procedimiento de alineacin, como DTW.
D) Lgica de Decisin : los valores de similaridad obtenidos en la clasificacin de patrones se utilizan
para decidir si el patrn de referencia es considerado como el patrn reconocido, o por el contrario se da
un error de reconocimiento.
26
27
Tema 5
t 1 t 2 t n
se cumple que:
P x ( t n ) x n x ( t n 1 ),..., x ( t 1 ) P x ( t n ) x n x ( t n 1 )
Es decir, que la densidad de probabilidad condicional de la variable estocstica X en el instante de tiempo
tn , depende nicamente del valor de la variable X en el instante tn1 .
Una cadena de Markov es un proceso de Markov en que tanto la variable tiempo, como la variable
estocstica del proceso son de tipo discreto. Es decir, verifica las siguientes propiedades :
El rango de la variable estocstica X es un conjunto discreto de estados.
La variable tiempo es discreta, y toma valores enteros
t = ..., -2, -1, 0, 1, 2, ...
El proceso es estacionario, o al menos es homgeneo en el tiempo, de forma que las probabilidades
de transicin dependen nicamente de la longitud del intervalo de tiempo considerado, y no de los
instantes de tiempo que lo delimitan.
Una Fuente de Markov de Primer Orden es una cadena de Markov que modeliza una fuente de
informacin, en que el smbolo emitido por la fuente, depende nicamente del smbolo emitido en el
instante anterior. De esta manera, y suponiendo que el ltimo smbolo emitido constituye el estado de la
fuente, tenemos que el alfabeto de la fuente coincide con el conjunto de estados S s i i 1,...n del
modelo.
28
a ij P x t s j x t 1 s i
n
ij
1 i, j n
1 i n
j1
De manera anloga se pueden definir Fuentes de Markov n-simo, donde el smbolo emitido depende
nicamente de los smbolos emitidos en los n instantes anteriores, es decir, de los n estados anteriores.
En la figura 1 podemos observar un ejemplo de una fuente de Markov de primer orden.
a10
a00
a11
E0
E1
a01
a12
a20
a03
a13
a31
a02
a30
a21
a32
a22
E2
E3
a33
a23
A a ij
a ij Probabilidad de transitar del estado i al estado j
1 i, j n
Una funcin de probabilidades de observacin de cada smbolo en cada estado. Esta funcin
slo depende del estado en que se encuentra el proceso en un momento dado, por tanto
hemos de definir la matriz de valores
B b jk
29
i 1..N
( A, B, )
a10=0.35
a00=0.2
E0
a11=0.65
E1
( 0.6 )
a01=0.8
( 0.4 )
[ 0.2 , 0.4 , 0.4 ]
Suponemos que solo existen tres posibles observaciones ( Por ejemplo, "a", "b", y "c" ). Entre
corchetes aparece la probabilidad de observar "a", "b", y "c" en cada estado.
Como vemos, la suma de las probabilidades de observacin es igual a 1. Es decir, si existe una
observacin, forzosamente corresponde a un conjunto finito llamado vocabulario de observacin.
Existe la posibilidad de que una de dichas probabilidades sea 0. Ello indicara que desde dicho estado
es imposible generar una cierta observacin.
Junto a cada arco aparece la probabilidad de transitar del estado i al estado j. ( aij )
De igual forma, una probabilidad de transicin igual a 0 indica la imposibilidad de transitar de un
estado a otro.
La suma de todas las probabilidades de transicin de un estado i a todos los estados j es 1.
30
Dentro de cada estado aparece entre parntesis la probabilidad de estado inicial. ( i).
De igual forma, una probabilidad de estado inicial igual a 0 indica la imposibilidad de que un estado
sea el inicial .
La suma de todas las probabilidades de estado inicial es 1.
A) Dada una secuencia de observaciones, por ejemplo 'a', Cual es la probabilidad de que dicho
modelo haya generado dicha secuencia ?
Podremos observar 'a', si el primer estado es el 1, y se observa 'a', o bien si el primer estado es el '2', y se
observa 'a'.
Por tanto,
0. 6 0. 6 0. 2 0. 2 0. 6 0. 6 0. 8 0. 4 0. 4 0. 2 0. 65 0. 4 0. 4 0. 2 0. 35 0. 2
0. 0144 0.1152 0. 0208 0. 0056 0.156
De esta forma, dada una cadena, podemos calcular la probabilidad de que el modelo la haya generado.
31
2.
3.
Transitar del estado actual a otro estado ( includo el actual ) en funcin de las probabilidades de
transicin.
4.
32
1. Inicializacin.
1 (i) i bi (O1 )
1 i N
1
NI
Si i SI , entonces i 0
Si
i SI , entonces i
2. Induccin.
t 1 ( j) t (i) a ij b j (O t 1 )
i1
1 j N
1 t T 1
a10=0.35
a00=0.2
E0
a11=0.65
E1
( 0.6 )
a01=0.8
( 0.4 )
[ 0.2 , 0.4 , 0.4 ]
Sea la secuencia de smbolos " a b ". Cul es la probabilidad de que este modelo haya generado esta
secuencia ?. Siguiendo los pasos del algoritmo forward-backward, obtenemos:
1. Inicializacin.
2. Induccin.
2 (1)
2 (2)
(i ) a
1
i1
i 1
N
(i ) a
1
i2
( j = 1, t = 1)
b2 (O2 ) 0. 36 0. 8 0. 08 0. 65 0. 4 = 0.136
( j = 2, t = 1)
i 1
3. Terminacin.
N
33
t ( i ),
1
para todos los estados finales. Es decir,
NF
1
i S F
T (i)
NF
2. Induccin.
N
t ( j) a ji b i (O t 1 ) t 1 ( i )
i 1
1 j N
1 t T 1
3. Terminacin.
Una propiedad interesante, y muy til en el proceso de depuracin de los programas correspondientes es
que el valor Pr(O ) debe ser el mismo, tanto si se calcula a partir de las probabilidades forward, como
de las probabilidades backward. Es decir,
i SF
( i ) i b i ( O1 ) 1 ( i )
i SI
Es decir, t ( i ) representa la probabilidad del mejor camino en el instante t, que termina en el estado i.
De esta manera, el algoritmo se define como :
1. Inicializacin.
1 ( i ) i b i (O1 )
1 i N
1 ( i ) 0
Es decir, la probabilidad de que el estado inicial sea i , multiplicado por la probabilidad de
observar O1 en el estado i.
2. Induccin.
t 1 ( j) max t (i ) a ij b j (Ot 1 )
1 i N
t 1 ( j) arg max t (i ) a ij
1 i N
34
1 j N , 1 t T 1
Es decir, la probabilidad de observar el smbolo correspondiente a (t+1), multiplicado por el
maximo de todos los posibles caminos de longitud (t), ponderados con los correspondientes aij.
3. Terminacin.
P * max T ( i )
q *T arg max T ( i )
1 i N
q*t t 1 (q*t 1 )
t = T -1, T - 2, ..., 2, 1
Como vemos, el algoritmo de Viterbi es muy parecido al algoritmo forward-backward, con las diferencias
siguientes:
En el paso inductivo utiliza el mximo, en lugar de la suma.
Almacena en el camino recorrido.
Aade el ltimo paso, para recuperar de forma iterativa el mejor camino.
A continuacin, y siguiendo nuestro ejemplo, calcularemos la mejor secuencia de estados para nuestro
modelo, y para la cadena "ab".
a10=0.35
a00=0.2
E0
a11=0.65
E1
( 0.6 )
a01=0.8
( 0.4 )
[ 0.2 , 0.4 , 0.4 ]
2. Induccin
(j = 1, t = 1)
(j = 2, t = 1)
1i N
3. Terminacin.
q2* 2
4. Calculo del mejor camino mediante la vuelta atrs.
q1* 2 (q2* ) 1
Luego la secuencia de estados ptima es "E1,E2", resultando una probabilidad igual a 0.1152. Podemos
observar que el valor de esta probabilidad no es exactamente igual al obtenido intuitivamente, sino algo
35
inferior. Ello se debe a que el algoritmo de Viterbi utiliza el mximo en lugar de la suma en el paso
inductivo.
t ( i, j) Pr(s t i, s t 1 j O, )
t ( i ) a ij b j (O t 1 ) t 1 ( j)
(k)
k SF
t (i) t (i)
T (k)
t ( i ) Pr(s t i O, )
k SF
t ( i ) t ( i, j)
j1
Las frmulas de reestimacin de los parmetros del modelo pueden ser enunciadas de la siguiente manera
:
a) Frmula de reestimacin de las probabilidades de transicin :
T 1
a ij
(i, j)
t
t 1
T 1
(i)
t 1
bj (k)
( j)
t O t v k
T
( j)
t 1
i 1 (i )
Segn las tres frmulas de reestimacin, se demuestra que el modelo as obtenido, que denominaremos
( , A, B) cumple que :
Pr(O ) Pr(O )
36
Por tanto, si iterativamente se aplican las frmulas de reestimacin, sustituyendo por , se garantiza
que Pr(O ) puede ser mejorado hasta un cierto punto lmite. Dicha propiedad de convergencia es de
gran importancia, ya que nos asegura que en cada paso del algoritmo, la solucin obtenida es mejor, o
igual que la anterior.
Adems, si cualquier subconjunto de parmetros (ya sea , A o B) se fija, el resto de los parmetros
pueden ser reeestimados utilizando las mismas frmulas, y la desigualdad
siendo vlida. Dicha propiedad tiene una gran importancia prctica, ya que permite detectar posible
incorrecciones en la implementacin del algoritmo.
Fase de Entrenamiento : en esta fase se obtiene, a partir de una base de datos apropiada, un modelo
de cada palabra a reconocer. La fase de entrenamiento consta de los siguientes procesos :
Obtencin de la Base de Datos.
Digitalizacin.
Extraccin de Caractersticas.
Cuantificacin Vectorial.
Entrenamiento ( Obtencin de los modelos de cada palabra ).
2.
37
Bibliografa Seleccionada
[FURU, 89]
[FURU, 92]
[GARC, 91]
[HUAN, 90]
HUANG, X.D., ARIKI, Y. y JACK, M.A. "Hidden Markov Models for Speech
Recognition". Edinburgh University Press. Edimburgh, 1990.
[LEA, 80]
[LEE, 89]
[LEE, 92]
[MAKH, 75]
MAKHOUL, J. "Linear Prediction: A Tutorial Review". Proc. IEEE, Vol.63, pp.561580, Abril 1975.
[MARK, 76]
[NAVA, 90]
[O'SHA, 87]
O'SHAUGHNESSY, D. "Speech Communication: Human and Machine". AddisonWesley Publishing Company, Inc. Massachusetts, 1987.
[PAPO, 85]
PAPOULIS, A. "Probability, Random Variables, and Stochastic Processes". McGrawHill Book Company . New York, 1985.
[QUIL, 85]
[RABI, 75]
[RABI, 78]
RABINER, L.R. y SCHAFER, R.W. "Digital Processing of Speech Signals". PrenticeHall, Englewood Cliffs. New Jersey, 1978.
[RABI, 89]
RABINER, L.R. "A Tutorial on Hidden Markov Models and Selected Applications in
Speech Recognition". Proceedings of the IEEE, Vol.77, No.2, pp.257-286. Febrero
1989.
[RABI, 93]
RABINER, L.R. y JUANG, B.-H. "Fundamentals of Speech Recognition". PrenticeHall, Englewood Cliffs. New Jersey, 1993.
39
Anexo 1
Gua de Aprendizaje
MATLAB
1. Conceptos Bsicos
1.1 MATLAB como potente calculadora de gran precisin
1.2 * sin(3.4^2 + log10(5))
MATLAB puede funcionar como una calculadora
result = 1.2 * sin(3.4^2 + log10(5))
Asignacin de valores a variables
new = 3 + result / 2
Utilizacin de variables
1.3 Vectores
x=[-pi/2 0 pi/2 pi ]
x= 1:10
x=0:-0.5 -3
sin(x)
x(3)
y = x(3:7)
length(x)
diff(x)
1.4 Matrices
v1 = [1 2 3;-1 -2 -3]
o bien
40
v1=[1,2,3;-1,-2,-3]
o bien
v1=[1,2,3
-1,-2,-3]
o bien
v1=[1 2 3
-1 -2 -3]
v2 = [v1;2*v1]
v2(3,2)
v3 = v2 (:,1:2)
v3 = v2(:,[1,3])
[m,n] = size(v3)
Suma de Vectores
Diferencia de Vectores
Multiplicacin de Vectores !!! ERROR!!!
Multiplicacin Elemento a Elemento
Transpuesta, y Multiplicacin Vectorial
Divisin Elemento a Elemento
Multiplicacin de un escalar por un vector
Adicin de un escalar a un vector
En resumen,
Las operaciones + y - son siempre punto a punto
Por defecto, las operaciones * y / son vectoriales. Si se desea operar punto a punto, especificar un
. antes del operador.
Las operaciones de un vector y un escalar son siempre sobre todos los elementos.
Transpuesta
Inversa
Inicializacin a zeros
Inicializacin a unos
Inicializacin a nmeros aleatorios entre 0 y 1
Multiplicacin de un Escalar por una matriz
1.7 Grficos
y=sin(0:pi/99:2*pi);
plot(y);
x0=zeros(5);
x1=ones(5);
x=[x0 x0 x0;x0 x1 x0;x0 x0 x0];
mesh(x)
plot(y,'g')
1.8 Varios
help
help sin
whos
! <comando>
flops
flops(0)
Ayuda General
Ayuda de una funcin
Variables declaradas, tamao, tipo, etc.
Ejecucin de comandos del MS-DOS
Medida del nmero de operaciones realizadas
Inicializacin a 0 del nmero de ops. realizadas
2. Construcciones Estructuradas
41
2.1 La sentencia IF
x=3;
IF x>2,
y=1;
END;
Operadores relacionales(>,==,<,>=,<=,=)
(NOTA : cuidado con el igual doble)
IF x>2,
y=1;
ELSE,
y=0;
END;
y
Opcin ELSE
IF x>2,
y=1;
ELSEIF x>3,
y=0;
ELSE,
y=-1;
END;
y
Opcin ELSEIF
3. Ficheros de Instrucciones
3.1 Creacin de un fichero *.M
Es igual que realizar una serie de operaciones en el entorno de forma directa.
3.2 Utilidades
Escribir una matriz muy grande
Escribir bucles relativamente complejos
Escribir secuencias de instrucciones largas
Posibilidad de corregir errores facilmente
Posibilidad de incluir comentarios, con el carcter %
3.3 Proceso
Editar un fichero con la extensin 'nombre.m', incluyendo las instrucciones deseadas.
Ejecutar el fichero, escribiendo el nombre, sin extensin.
3.4 Ejemplos
Dibujo de varias grficas
42
4. Archivos de Funciones
4.1 Introduccin
Clculo del mximo de un vector
Clculo de la posicin y el valor del mximo
Introduccin de comentarios
Instruccin return
Ayuda de las funciones en MATLAB
Devolucin de un parmetro
Devolucin de varios parmetros
ans
eps
pi
i,j
inf
NaN
flops
nargin
nargout
load
save
diag
eye
linspace
logspace
ones
rand
zeros
fliplr
GENERAL
ayuda
muestra variables en memoria
numero de filas y columnas de una matriz
longitud de un vector
limpia todas las variables
salida de MATLAB
VALORES ESPECIALES
respuesta de una expresin si no se asigna
valor muy pequeo
nmero
raz cuadrada de -1
valor infinito
Not-a-Number (no es un nmero)
nmero de operaciones en punto real
nm. argumentos de entrada a una funcin
nm. argumentos de salida a una funcin
ARCHIVOS DE DISCO
carga variables de un archivo
guarda variables en un archivo
MATRICES ESPECIALES
diagonal
identidad
vectores linealmente equiespaciados
vectores logartmicamente equiespaciados
matriz con todos sus valores iguales a 1
matriz de nmeros aleatorios
matriz con todos sus valores iguales a 0
MANIPULACIN DE MATRICES
invierte el orden de las columnas
43
flipud
diag
reshape
:
find
if
elseif
else
end
for
while
break
return
pause
num2str
function
eval
plot
mesh
clg
clc
subplot
abs
angle
sqrt
real
imag
sign
exp
log
log10
CONTROL DE FLUJO
instruccin condicional
idem
idem
terminacin de instrucciones if, for , while
instruccin iterativa
bucles
salida de bucles for y while
salida de funciones
detiene ejecucin hasta que se pulsa teclado
PROGRAMACION Y ARCHIVOS .M
convierte un nmero en una cadena
define una funcin
evala string como instruccin MATLAB
FUNCIONES ELEMENTALES
Valor absoluto (mdulo de los complejos)
argumento de un nmero complejo
raz cuadrada
parte real
parte imaginaria
signo
exponencial
logaritmo neperiano
logaritmo decimal
FUNCIONES TRIGONOMETRICAS
seno, arcoseno, seno hiperblico
sin , asin , sinh
coseno, arcocoseno, coseno hiperblico
cos , acos , cosh
tangente,arcotangente,tangente hiperblica
tan , atan , tanh
max
min
mean
44
ordenacin
suma
producto
diferencia
sort
sum
prod
diff
+
*
/
^
OPERADORES
MATRICIALES
suma
resta
producto
divisin
potenciacin
OPERADORES
PUNTO A PUNTO
suma
+
resta
producto
.*
divisin
./
potenciacin
.^
OPERADORES LOGICOS Y
RELACIONALES
menor que
<
menor o igual
<=
mayor
>
mayor o igual
>=
igual que
==
distinto de
=
AND lgico
&
OR lgico
|
NOT lgico
filter
butter
fir1 , fir2
Hamming
Hanning
fft
ifft
freqz
=
...
%
!
[
]
:
;
.
CARACTERES
ESPECIALES
asignacin
contina debajo
comentarios
Instruccin S.O.
forma Matrices
indexa vectores
no mostrar ans
punto decimal
precedencia
PROCESAMIENTO DE SEALES
Filtrado de seales
Diseo de filtros Butterworth
Diseo de filtros FIR
Ventana de Hamming
Ventana de Hanning
Transformada de Fourier
Transformada Inversa de Fourier
Respuesta en frecuencia de un filtro
45
Anexo 2
Prcticas
46
0 t 2
Funcin seno :
sin(t )
Cicloide :
x a (t sen t )
R
S
Ty a (1 cos t )
Astroide :
x 3 y3 a3
Exponencial :
y e x x
Curvas Parmetricas :
x cos(3 t )
R
S
Ty sen(3 t )
1. 5 x 1. 5
0 t 2
4 2
7 6
Calcular la inversa de A
Calcular el determinante de A
4. Construccin de ficheros de instrucciones
Hacer un programa que ejecute el paso 3 completo.
5. Construccin de funciones
Hacer una funcin llamada completa que calcule la inversa y el determinante de una
matriz en forma de funcin. La funcin tendr la cabecera siguiente :
function [det, inv] = completa(A);
47
E m xi
i 1
3. Escribir la funcin zcr que calcule el nmero de cruces por cero de una seal.
Pista : utilizar la funcin diff, y la funcin find.
4. Escribir una funcin que calcule la energia de una secuencia de tramas de una seal.
Determinar qu parametros usar, sus valores ptimos, y dibujar la seal resultado.
5. Escribir una funcin que calcule la autocorrelacin de orden S de una seal, definida
as :
Autocorr (i )
N i 1
x ( m) x ( m i )
i 0.. S
m0
6. Hacer una funcin que calcule el pitch de una trama, utilizando el algoritmo siguiente
:
a
s(n)
Valor
Fiabilidad
w(n) = Hamming
Prenfasis
Ruptura en
tramas
Enventanado
Deteccin de
M ximo
Autocorrelacin
Center-Clipping
48
Buscar a continuacin el primer valor que supere a k2, sin que se descienda por
debajo de k1 (sea p2)
49
7.- Visualice diferentes seales de voz, y dibuje la energa para las bandas anteriores.
Haga lo propio con los espectrogramas correspondientes, y compare los resultados
obtenidos.
50
51
s(n)
Prenfasis
c(n) Diferenciacin
de parmetros
w(n)
Ruptura en
tramas
Enventanado
w(m)
Ponderacin
de parmetros
LPC CEP
c(n)
52
Autocorrelacin
Anlisis LPC
Fase de Entrenamiento
Patrones de
Entrenamiento
s(n)
Extraccin de
Caractersticas
Algoritmo de
Entrenamiento
Base de Datos
(Patrones de Referencia)
c(n)
Patrones de Test
Clasificador
Fase de Test
53
Lgica de
Decisin
Patrn Reconocido
54