Está en la página 1de 57

Introduccin al

Reconocimiento de la Voz
Primera Edicin

Pedro L. Galindo Riao


Doctor en Informtica

Dpto. de Lenguajes y Sistemas Informticos Universidad de Cdiz


C/ Chile s/n 11003 Cdiz, SPAIN pedro.galindo@uca.es
Copyright 1996 Pedro L. Galindo Riao

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

2. Analisis Frecuencial de Seales .................................................... 9


2.1 Concepto de filtro ............................................................................................ 9
2.2 Filtros Digitales ............................................................................................... 9
2.3 Tipos de Filtro por la Respuesta al Impulso .................................................. 10
2.4 Tipos de Filtro por las Frecuencias de Filtrado ............................................. 10
2.5 Respuesta en Frecuencia de un Filtro Digital ................................................ 11
2.6 Energa por bandas ........................................................................................ 11
2.7 La FFT ........................................................................................................... 12
2.8 Enventanado .................................................................................................. 12
2.9 Tamao de trama ........................................................................................... 13
2.10 Prenfasis ..................................................................................................... 14
2.11 Formantes .................................................................................................... 14
2.12 Espectrogramas ............................................................................................ 16
2.13 Anlisis de los fonemas castellanos ............................................................. 16

3. Prediccin Lineal ......................................................................... 18


3.1 Concepto ........................................................................................................ 18
3.2 Recursin de Levinson-Durbin ...................................................................... 19
3.3 Coeficientes Cepstrum ................................................................................... 20
3.4 Coeficientes diferenciales .............................................................................. 20
3.5 Sistema LPC de Extraccin de Caractersticas .............................................. 21
3.6 Modelo LPC del Aparato fonador humano ................................................... 22
II

4. Programacin Dinmica ............................................................. 23


4.1 Concepto ........................................................................................................ 23
4.2 Algoritmo Dynamic Time Warping (DTW) .................................................. 23
4.3 Alternativas de diseo ................................................................................... 25
4.4 Esquema bsico de un sistema basado en DTW ............................................ 26
4.5 DTW aplicado a Palabras Concatenadas ....................................................... 26

5. Modelos Ocultos de Markov ........................................................ 28


5.1 Introduccin ................................................................................................... 28
5.2 Procesos, cadenas y fuentes de Markov ......................................................... 28
5.3 Definicin de un Modelo Oculto de Markov ................................................. 29
5.4 Problemas bsicos .......................................................................................... 32
5.5 Solucin al Problema de Evaluacin ............................................................. 33
5.6 Solucin al Problema de Decodificacin ....................................................... 35
5.7 Solucin al Problema del Entrnamiento ........................................................ 36
5.8 Fases en el Diseo de un Sistema de Reconocimiento .................................. 38

Bibliografa Seleccionada ................................................................ 39


Anexo 1 : Gua de Aprendizaje MATLAB ...................................... 40
Anexo 2 : Prcticas del Curso ......................................................... 46
PRACTICA 1 : Manejo Elemental del MATLAB .............................................. 47
PRACTICA 2 : Anlisis Temporal de la Seal ................................................. 48
PRACTICA 2-bis : Deteccin de Extremos ........................................................ 49
PRACTICA 3 : Anlisis Frecuencial de Seales(1) .......................................... 50
PRACTICA 4 : Anlisis Frecuencial de Seales(2) .......................................... 51
PRACTICA 5 : Prediccin Lineal ..................................................................... 52
PRACTICA 6 : Diseo de un Reconocedor de Palabras Aisladas con DTW ... 53
PRACTICA 7 : Diseo de un Reconocedor de Palabras Aisladas con HMM .. 54

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

Figura 1. Proceso de Muestreo.


Como es bien sabido la frecuencia de muestreo de una seal es un factor determinante en el proceso de
digitalizacin de una seal. Se sabe que para que la recomposicin de la seal contnua original sea
posible a partir de su seal muestreada, es decir, para que no exista prdida de informacin, la frecuencia
de muestreo, ha de ser, al menos, mayor que el doble de la mxima frecuencia que aparece en la seal
original. Este teorema se conoce como el teorema de Shannon.

Fmuestreo 2 Fmaxima

La cuantificacin consiste en convertir una seal de amplitud contnua en un conjunto de amplitudes


discretas, que difiere de la seal de amplitud contnua en lo que se llama ruido de cuantificacin. Existen
dos tipos bsicos de cuantificacin, escalar y vectorial. En este apartado nos referiremos exclusivamente a
la cuantificacin escalar.
Entendemos por cuantificacin escalar al proceso de cuantificar los elementos de un conjunto de valores
de forma separada. Es decir, el valor discreto asignado a un elemento es independiente del resto de los
elementos del conjunto de datos a cuantificar. Un ejemplo de cuantificacin escalar puede consistir en
realizar un redondeo del valor de una magnitud contnua (Por ejemplo, temperatura), para convertirlo en
un valor entero (Por ejemplo, 27 Grados).
S2

S3
S2( t0 + n * dt )

S3( t0 + n * dt )

t
t0 t0+dt

***

t0+n*dt

t0 t0+dt

***

t0+n*dt

Figura 2. Proceso de Cuantificacin Escalar


La codificacin consiste en asignar una secuencia de bits a cada uno de los niveles en los que se ha
cuantificado la seal. Si disponemos de un nmero de bits igual a b, el nmero de niveles que es posible
cuantificar es igual a N=2b niveles. Por tanto, si se quiere transmitir una seal de voz por un canal,
precisaremos una velocidad de transmisin igual a F b , donde F es la frecuencia de muestreo, y b es el
nmero de bits por muestra. Por supuesto, este valor es posible reducirlo utilizando otros esquemas de
codificacin, por ejemplo utilizando cdigos de longitud variable.

1.2 Concepto de Trama


Una secuencia de mustras representando a una seal de voz tpica se muestra en la figura. Es evidente que
las propiedades de la seal cambian con el tiempo. Para poder realizar el procesamiento de la voz, se
realiza la suposicin de que las propiedades de esta seal cambian relativamente despacio en el tiempo.
Esta suposicin lleva a multitud de mtodos de procesamiento en la que breves segmentos de seal se
aislan y procesan de forma independiente, como si fueran fragmentos de un sonido contnuo. A estos
segmentos de longitud fija en los que se suele dividir la seal los denominamos tramas.
Los resultados de procesar cada trama generan un nmero (por ejemplo, podra ser el ndice del fonema
detectado) o bien varios nmeros (por ejemplo, si el sonido es sonoro/sordo, la amplitud mxima de la
seal, caractersticas de la misma, etc.). A este proceso se le denomina Extraccin de Caractersticas.
Este proceso de aislar una trama y calcular una serie de caractersticas se realiza cada cierto tiempo,
denominado Longitud del Desplazamiento (o Solapamiento).
Se han realizado numerosos sistemas en los que la longitud de la trama y el desplazamiento son muy
diferentes. Suponiendo que N=Longitud de Trama y que M=Longitud del desplazamiento, pueden darse
los siguientes casos :
### N<M : en este caso no hay solapamiento entre tramas sucesivas, perdindose parte de la
seal. Por ello, no se suele utilizar.
### N=M : si bien no hay prdida de seal, la inexistencia de correlacin en los valores
espectrales obtenidos de tramas consecutivas suele ser desaconsejable.
### N>M : es el caso ms habitual. Las tramas adyacentes solapan, por lo que el anlisis
espectral posterior tendr una cierta correlacin entre tramas consecutivas. De hecho, si
N>>M, las variaciones entre los valores obtenidos de sucesivos anlisis espectrales son muy
suaves.

S(n)
x1(n) =
x1(n)
x2(n) =

x2(n)
x3(n)

x3(n) =

Figura 3. Divisin de una seal en tramas


Una vez establecida la relacin entre M y N, ser preciso determinar los correspondientes valores
absolutos. La seleccin del valor de N resulta de un compromiso que es preciso establecer entre
resolucin en tiempo y en frecuencia. Normalmente, los espectrogramas de banda ancha usan ventanas de
una duracin de unos 3 msec., lo que permite una buena resolucin temporal, til para analizar cambios
rpidos de la seal. Por otro lado, los espectrogramas de banda estrecha usan ventanas del orden de 30
msec., muy tiles para determinar el perodo de la seal, ya la ventana suele comprender varios perodos.
Un valor ptimo de N sera el correspondiente al perodo de la seal. Debido a que dicho perodo no solo
es variable de un locutor a otro, sino que es variable en el tiempo para un cierto locutor, no es posible
utilizar tal medida como valor para la longitud de la trama. Un valor de N menor que el perodo de la
seal producira un anlisis distorsionado, ya que la porcin de seal analizada est truncada de forma
artificial. Por ello, se suelen utilizar valores para N que comprendan varios perodos de seal (los menos
posibles). Dado que los posibles valores del perodo de la seal varan aproximadamente entre los 40Hz.
(tono grave de un hombre) y los 100 Hz.(tono agudo de mujer), un compromiso para la seleccin de N es :
10 msec < Longitud de Trama < 25 msec
En cuanto al valor del desplazamiento, ya hemos visto que debe ser menor que la longitud de la trama, y
normalmente se selecciona como una fraccin entera de la misma.
Longitud del Desplazamiento = K * Longitud de Trama
donde los valores de K suelen ser K=1/2, 1/3, 1/4, 1/5, ...
Cuanto menor sea el desplazamiento, ms suaves sern las fluctuaciones sufridas por los parmetros
obtenidos en el proceso de Extraccin de Caractersticas.

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 :

10 msec. < N < 20 msec.


La energa nos permitir distinguir con cierta fiabilidad la existencia de voz del silencio, y los sonidos
sordos de los sonoros.
En el clculo de la energa, y dado que se calcula utilizando una suma de cuadrados, existen grandes
diferencias entre la energa de seales de gran amplitud, y la energa de seales de baja amplitud. Es decir,
la energa es muy sensible a niveles altos de seal, enfatizando las diferencias de amplitud. Es por ello que
se utiliza como unidad de medida el decibelio (dB), calculado como :

En' 10 log( En )

1.4 Densidad de Cruces por Cero.


Un cruce por cero se produce cuando muestras consecutivas de una seal tiene diferente signo. La
densidad dde cruces por cero consiste en el nmero de cruces por cero que se producen en un cierto
segmento de seal. De forma matemtica, podemos definir :
N 1

ZCR sgn( x ( m)) sgn( x ( m 1))


m 1

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

Figura 4. Distribucin de la Sonoridad en funcin del ndice ZCR


Es evidente que la tasa ZCR est fuertemente afectada por mltiples factores, entre ellos el nivel DC de la
seal, los 50 Hz. de la lnea, y cualquier ruido del sistema de digitalizacin. Por tanto hay que tener un
cuidado extremo al utilizar esta magnitud.

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 ))

Esta funcin la podemos reescribir como :

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.6 Frecuencia Fundamental Pitch


La frecuencia fundamental de una seal, tambin denominada pitch se define como la frecuencia aparente
que una seal tiene. Para ello basta con calcular el perodo aparente, y utilizar la frmula :

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

Figura 5. Seales temporales correspondiente a la /o/ y a la /s/


extradas de la palabra /dos/
Existen numerosos algoritmos para calcular el pitch, sin embargo, no existe algoritmo conocido que lo
determine con un 100% de fiabilidad, ya que, no siempre es fcil determinar si existe periodicidad en una
seal o no.
El pitch vara mucho entre diferentes locutores, e incluso para el mismo locutor. De hecho, y junto con la
energa, es uno de los factores determinantes en la entonacin de las frases. La distribucin de
probabilidad de los valores de pitch muestra que el pitch puede ser considerado como una magnitud
bastante fiable para la discriminacin hombre-mujer. :

Hombres
0

100

150

M ujeres
200

300

400

Hz.

Figura 6. Distribucin de los valores de pitch segn el sexo

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.) :

Figura 7. Funcin de autocorrelacin para el segmento /e/


Como vemos, aparece un mximo en el punto correspondiente a un pitch de 70 muestras, es decir, 114
Hz.
En determinadas ocasiones, el la funcin de autocorrelacin no es tan simple, y la determinacin del
mximo absoluto presenta errores. Por ello, es frecuente realizar algn tipo de preprocesado de la seal
para eliminar ciertos problemas. En concreto es frecuente utilizar un filtrado paso bajo, y a continuacin
una tcnica denominada center-clipping.
Center-Clipping consiste en realizar una transformacin no-lineal de la seal, segn el siguiente grfico:

- Umbral
Umbral

Figura 8. Funcin de Transformacin Center-Clipping


Dicha funcin produce que se elimine toda la seal que no supera un cierto umbral, que normalmente se
fija en un 30% del mximo de la seal en la trama en cuestin. En la imagen se observa la seal original, y
la seal transformada, sobre la cual se realiza el clculo de la autocorrelacin para la determinacin del
pitch.

Figura 9. Seal original y transformada mediante Center-Clipping


6

1.7 Anlisis Temporal de los sonidos en Castellano.


Una vez analizados los parmetros ms usuales en el dominio temporal, vamos a utilizarlos para estudiar
los sonidos castellanos, y cmo diferenciarlos.
A) Vocales ( a , e , i , o , u )
Son la [a,e,i,o,u].
Se puede realizar una clasificacin fisiolgica de las vocales en funcin de los parmetros abertura de la
cavidad bucal, y de la posicin de la lengua.
En funcin de la abertura de la cavidad bucal, podemos clasificarlas en
Pequea abertura, o vocales cerradas o altas
Media abertura, o vocales medias
Gran abertura, o vocales abiertas o bajas
En funcin de la abertura de la lengua distinguiremos :
Vocales anteriores o palatales : si la lengua ocupa la posicin delantera de la cavidad (paladar duro)
Vocales centrales
Vocales posteriores o velares : si la lengua ocupa la posicin trasera de la cavidad (junto al velo)

Alta

M edia

o
a

Baja
Anterior

Central

Posterior

Figura 10. Clasificacin Fisiolgica de las vocales espaolas

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

x : gitano, caja, lejos, cojo

(ja,je,ji,jo,ju) (ge,gi)

Los sonidos b, d, g a veces aparecen tambin como fricativos.

C.3 - Africadas ( ch )
Se caracterizan por un momento oclusivo seguido de uno fricativo.
ch : muchacho, chico, pecho

(cha, che, chi, cho, chu)

Con frecuencia, el sonido j es africado (conyuge, el hielo, etc.)


C.4 - Nasales ( m , n , )
Se caracterizan porque el canal rinofaringeo est abierto, y las fosas nasales actan de cavidad de
resonancia.
m : mam, cama, loma
n : nudo, cono, sartn
: ao, lea, soar

(ma, me, mi, mo, mu)


(na,ne,ni,no,nu,n,n,n)
(a, e, i, o, u)

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

(lla, lle, llo, llu)


(la,le,li,lo,lu,al,el,il,ol,ul)

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

Un filtro analgico es un sistema que responde a la ecuacin diferencial :


P

ak
k 0

d k y( t ) Q d l x ( t )
bl
dt k
dt l
l 0

a0 1

donde y(t) es la salida del sistema, y x(t) la entrada.

2.2 Filtros Digitales


Un filtro digital, responde a la ecuacin recurrente
P

k 0

l 0

ak y n k bl x n l

a0 1

que se puede reescribir de la siguiente forma :


P

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.

2.3 Tipos de Filtro por la Respuesta al Impulso


Como vemos, al definir un filtro hay que definir los coeficientes ak y bl. Supongamos que P y Q son
finitos. Si todos los coeficientes ak valen 0, la salida en el instante n solo depende de los valores de x, es
decir, de la entrada al sistema, y de los coeficientes b l. Por tanto, y dado que Q es finito, la salida solo
depende de las Q ltimas entradas. Si, por el contrario, algn coeficiente a k es distinto de 0, existe una
recurrencia, que lleva, a que la salida del filtro pueda depender de las infinitas muestras anteriores.
Por tanto, y en funcin de los valores ak existen dos tipos bsicos de filtros digitales :
Filtros de Respuesta al Impulso Finita (FIR) : todos los coeficientes ak valen 0, salvo ak
Filtros de Respuesta al Impulso Infinita (IIR) : existen coeficientes ak distintos de 0
La ventaja de los filtros FIR es que son estables. La ventaja de los filtros IIR es que obtienen mejores
filtrados con menos coeficientes.

2.4 Tipos de Filtro por las Frecuencias de Filtrado


Los filtros se suelen utilizar como sistemas que dejan pasar una cierta informacin, eliminando
atenuando otra. En concreto, si una cierta seal es introducida en un filtro digital, deja pasar ciertas
frecuencias, y atena otras.
En funcin de esta atenuacin, existen diferentes tipos de filtro :
Paso Bajo : solo permite el paso a las frecuencias menores que la frecuencia de corte.
dB

Fc

Frecuencia

Figura 2. Esquema de un Filtro Paso Bajo

Paso Alto : solo permite el paso a las frecuencias mayores que la frecuencia de corte.
dB

Fc

Frecuencia

Figura 3. Esquema de un Filtro Paso Banda

Paso Banda : permite el paso de las frecuencias en una cierta banda.


dB

F1

F2

Frecuencia

Figura 4. Esquema de un Filtro Paso Alto


A este grfico en el que se observa qu frecuencias "pasan" por el filtro y qu otras no, se le denomina
Respuesta en frecuencia del filtro en cuestin.

2.5 Respuesta en Frecuencia de un Filtro Digital


Consiste en la atenuacin que un cierto filtro aplica a cada frecuencia. Es decir, consiste en obtener el
grfico db versus Frecuencia. Las respuestas en frecuencia anteriores son ideales. En la realidad aparecen
efectos indeseados muy difciles de eliminar.

10

La respuesta en frecuencia de un filtro se puede calcular mediante diferentes mtodos. No es el objetivo


de este curso profundizar ms en el tema. Por tanto, referimos al lector a la utilizacin de la funcin freqz
para el clculo de la respuesta en frecuencia de un filtro, dados sus coeficientes.
La forma ms prctica de observar la respuesta consiste en evaluar su magnitud en dB. Por tanto, la
operacin a realizar es :
m = 10*log10(abs(freqz(b,a,N)));
donde N es el nmero de puntos deseado. El punto N-simo se corresponde, por supuesto, con la mitad de
la frecuencia de muestreo.

2.6 Energia por bandas


Es interesante el anlisis de la seal de voz filtrando la misma por un Banco de Filtros, que consiste en
una serie de filtros, por los que se har pasar la seal para determinar la energa existente en diferentes
rangos de frecuencia. Ello nos va a permitir conocer el espectro aproximado de la seal.
Por ejemplo, podemos disear el banco siguiente :
Filtro 1 : Paso Bajo - 300 Hz.
Filtro 2 : Paso Banda 300 - 600 Hz.
Filtro 3 : Paso Banda 600 - 900 Hz.
Filtro 4 : Paso Banda 900 - 1200 Hz.
Filtro 5 : Paso Banda 1200 - 1500 Hz.
Filtro 6 : Paso Banda 1500 - 1800 Hz.
Filtro 7 : Paso Banda 1800 - 2100 Hz.
Filtro 8 : Paso Banda 2100 - 2500 Hz.
Filtro 9 : Paso Banda 2500 - 3000 Hz.
Filtro 10 : Paso Alto 3000 Hz.
Este banco de filtros nos proporciona una salida de 10 puntos por trama que nos da una idea del espectro
de frecuencias existente en la seal de entrada. El proceso completo sera el siguiente :
Energa

Seal
Ruptura
en tramas

0 - 300 Hz.
Filtro 1

Clculo de
Energa

E1

300 - 600 Hz.


Filtro 2

Clculo de
Energa

E2

600 - 900 Hz.


Filtro 3

Clculo de
Energa

E3

Clculo de
Energa

E 10

3000 -4000 Hz.


Filtro 10

Figura 5. Esquema Elemental de un Banco de Filtros

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

donde T es el perodo de la seal, y los coeficientes se definen como

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 :

X(n) x(n) w(n)

n 1,2,... N

La ventana w( n) ha de tener un valor prximo a 0 en sus extremos, y normalmente es simtrica respecto


del centro de la misma. La multiplicacin de la ventana por la seal tiene dos efectos:
### Atenuar de forma gradual la seal a ambos lados de la trama seleccionada.
### Produce una convolucin de la transformada de Fourier de la funcin de la ventana y del
espectro de la seal.
Debido al segundo efecto, la ventana debe satisfacer dos caractersticas para reducir la distorsin espectral
introducida por el enventanado:
### Lbulo principal estrecho y agudo, con buena resolucin en alta frecuencia.
### Gran atenuacin de los lbulos secundarios.
Estas dos caractersticas, generalmente, son contrapuestas, y por tanto es preciso buscar un compromiso
entre ambas.
Las ventanas ms comnmente utilizadas son :
### Hamming : se define como

12

2 n

w( n) 0.54 0.46 cos


N 1

0 n N -1

### Hanning : se define como

2 n

w( n) 0.5 0.5 cos


N 1

### Rectangular : se define como

w(n) 1

0 n N -1
0 n N -1

2.9 Tamao de Trama


El tamao de la trama determina la cantidad de informacin que se procesa en cada transformada al
campo de la frecuencia. Veamos el ejemplo siguiente :

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 :

s' (n) s(n) a s(n 1)


donde a refleja el grado de prenfasis, y suele estar en el rango de 0.9 a 1.0
Cuanto ms cercano es a al valor 1.0, mayor es el efecto de prenfasis. En la siguiente figura mostramos
las respuesta en frecuencia tpica de un filtro de prenfasis :

Figura 7. Respuesta en Frecuencia tpica de un filtro de prenfasis (a=0.975)

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

Figura 8. Localizacin de Formantes en el espectro de una seal


Al valor de pitch se le denomina normalmente F0, formante 0, y, como ya sabemos, depende del tono, y
por tanto, del sexo del hablante. El formante F1 guarda una estrecha relacin con la abertura del canal
bucal. Cuando la abertura es mxima, la frecuencia de dicho formante es elevada. Cuando la abertura
decrece, as lo hace F1. El formante F2 se modifica por la posicin de la lengua (cuanto ms elevada se
halle, y ms anterior, mayor ser la frecuencia de F2) y por la posicin de los labios (cuanto ms
redondeados y abocinados, ms bajo ser F2)
La utilidad de los formantes es determinante en la discriminacin de numerosos sonidos, por ejemplo, las
vocales. En las 5 figuras siguientes se muestran las envolventes espectrales correspondientes a las 5
vocales espaolas :

14

Figura 9. Envolventes Espectrales de las 5 vocales espaolas


En concreto, simplemente utilizando los formantes F1 y F2, podemos realizar un mapa que nos permita
diferenciar las 5 vocales del alfabeto entre s :
F2(Hz.)

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

Figura 10. Mapa de Formantes de las 5 vocales espaolas

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.

Figura 11. Espectrograma de la palabra " bodega "

2.13 Anlisis de los fonemas castellanos


A) Deteccin Voz / Silencio
Se puede utilizar como elemento base la Energa y opcionalmente la Densidad de Cruces por cero.
B) Deteccin Sonoro / Sordo (ZCR, XCORR)
Se puede utilizar la Densidad de Cruces por Cero y la Autocorrelacin.
C) Vocales ( a , e , i , o , u )
Son sonidos con alta energa, claramente sonoros (es decir, peridicos), tienen una duracin larga
(comparadas con la mayora de las consonantes) y estn espectralmente muy bien definidas.
Existen diferentes mtodos para clasificar las vocales, pero es suficiente el conocimiento para una
clasificacin bastante fiable entre s.
D) Diptongos ( ia , ie , io , iu , ua , ue , ui , uo , ai , ei , oi , au , eu , ou )
Son sonidos con las mismas caractersticas que las vocales, solo que la envolvente espectral vara
uniformente durante el transcurso de su pronunciacin, evolucionando de una vocal a otra.
E) Consonantes
Son sonidos con energa variable, pueden sonoros o sordos, tienen una duracin variable y espectralmente
no suelen estar bien definidas. Como vemos, la complejidad de su clasificacin es bastante grande.

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

3.2 Recursin de Levinson-Durbin


El anlisis LPC parte del anlisis de autocorrelacin de la seal temporal. Los coeficientes de
autocorrelacin se calculan como ya sabemos :

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

Figura 1. Variacin del espectro LPC en funcin del nmero de coeficientes p.


En el ejemplo anterior, la frecuencia de mustreo fue de 16 KHz., y, como vemos. un nmero de
coeficientes igual a 16 es suficiente para captar toda la informacin necesaria, ya que seleccionar un
nmero mayor implica no slo un incremento en tiempo de clculo, sino una insercin innecesaria de
formantes "falsos", ya que la envolvente se adapta en exceso a la seal.

19

3.3 Coefs. CEPSTRUM


Los coeficientes cepstrales son una representacin de la transformada de Fourier del logaritmo de la
magnitud del espectro de la seal. Se ha demostrado que forman un conjunto de parmetros ms robustos
y fiables que los coeficientes de prediccin lineal.
El cesptrum se calcula como la transformada inversa de Fourier del logaritmo de la magnitud de la
transformada de Fourier de la secuencia de entrada. De forma grfica podemos indicarlo as :

s(n)

FFT

log e

magnitud

IFFT

cep(n)

Figura 2. Implementacin prctica para obtener el cepstrum


La funcin cepstrum es til para calcular el pitch, ya que en la correspondiente posicin alcanza un
mximo local, que suele ser global para el rango de pitch posibles.
Adems, pueden ser derivados de forma directa de los coeficientes LPC mediante las siguientes frmulas
de recurrencia :

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

donde p es el nmero de coeficientes LPC calculados, y m el nmero de coeficientes cepstrum. No existe


un criterio definido para seleccionar el nmero de coeficientes cepstrum adecuado.

3.4 Coefs diferenciales


La mayora de los sistemas de reconocimiento actuales utilizan valores que miden modificaciones
espectrales a lo largo del tiempo. Son los llamados coeficientes diferenciales, o coeficientes.
El clculo de los coeficientes se puede hacer simplemente restando cada vector de coeficientes del
anterior.

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

3.5 Sistema LPC de Extraccin de Caractersticas


Los pasos bsicos en un sistema bsico de extraccin de carcatersticas mediante la tcnica LPC son :
1. Prenfasis : la seal se preenfatiza con mediante la ecuacin en diferencias siguiente :

s' (n) s(n) a s(n 1)

Los valores de a suelen estar comprendidos en el rango 0.90 a 0.98.


2. Ruptura en tramas : la seal se divide en tramas de longitud N muestras. Este proceso se realiza cada
M muestras, siendo N un mltiplo entero de M, normalmente 2, 3 4.
3. Enventanado : el siguiente paso consiste en multiplicar la trama por una ventana de N puntos. Por sus
caractersticas espectrales, la ventana ms habitual es la ventana de Hamming, que viene dada por la
frmula :
2 n

w( n) 0.54 0.46 cos


N 1

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)

Figura 3. Sistema de Extraccin de Caractersticas LPC


4. Autocorrelacin : se calculan los trminos de la autocorrelacin (desde 0 hasta p) de la trama
enventanada, siendo p el nmero de coeficientes del predictor LPC que queremos utilizar.
5. Anlisis LPC : se calculan mediante algn mtodo los p coeficientes del predictor LPC. El
procedimiento normalmente utilizado es el mtodo de Levinson-Durbin.
6. Conversin LPC a CEP : se convierten los p coeficientes LPC a q coeficientes Cepstrum, que son ms
adecuados para el reconocimiento robusto de la voz. Se utiliza el procedimiento recursivo mencionado en
apartados anteriores.
7. Ponderacin de parmetros : dado que la varianza de los diferentes coeficientes es diferente, as como
su comportamiento frente a diferentes circustancias (diferentes locutores, diferentes frecuencias, etc.) se
realiza un enventanado de los coeficientes cepstrum calculados. La ventana ms utilizada consiste en un
seno remontado, segn la frmula :

F
IJ
G
H K

q
m
w( m) 1 sin
2
q

1 m q

8. Diferenciacin de parmetros : se calculan los coeficientes diferenciales, nrmalmente mediante el


clculo de los coeficientes de regresin sobre 3 5 ventanas.

21

3.6 Modelo LPC del Aparato Fonador Humano


El aparato fonador humano se puede representar mediante la siguiente figura :

Sonido
Nasal

Cavidad
Nasal

Sonido
Bucal

Cavidad
Bucal

Velo (campanilla)

Cavidad
Farngea
Lengua

Tubo Larngeo
Cuerdas
Vocales
Trquea y Bronquios

Volumen
Pulmonar

Figura 4. Representacin esquemtica del mecanismo fisiolgico de produccin de voz

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

Figura 5. Modelo de sntesis de voz basado en LPC


En este modelo, el interruptor sonoro/sordo decide el tipo de fuente de sonido, bien un tren de pulsos a
una frecuencia igual al pitch de la seal, bien una seal de ruido para sonidos sordos. El factor de
ganancia G multiplica dicha seal, y, finalmente, el Filtro LPC, aade las componentes de la envolvente
espectral.

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.

4.2 Algoritmo Dynamic Time Warping (DTW)


Cuando una persona habla, la duracin de cada sonido, de cada palabra, de cada frase es muy variable.
Este hecho se acenta an ms cuando se trata de diferentes locutores. Pese a que se trate de la misma
persona pronunciando la misma palabra, se realiza una expansin compresin no lineal en el tiempo que
dificulta la comparacin de patrones almacenados, y de patrones nuevos.
Sea T una secuencia de vectores obtenidos del proceso de extraccin de caractersticas :
T(x) = { T[1] , T[2] , T[3] , .... T[n] }
Sea R una secuencia de vectores almacenadas correspondientes a una extraccin de caractersticas
realizadas con anterioridad :
R(y) = { R[1] , R[2] , R[3] , .... R[m] }
Por lo general, m es diferente de n, y es difcil establecer una comparacin. Una posibilidad sera
establecer una funcin de correspondencia lineal de la siguiente manera :

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

Figura 1. Ejemplo de funcin de correspondencia


El criterio ms extendido consiste en definir la funcin de correspondencia como aquella que minimice la
distorsin total, calculada como la suma de todas las distorsiones parciales

Dtotal d (T ( y), R( f ( y)))


Por tanto, calcularamos la distorsin total para todas las funciones de correspondencia posibles y
elegiramos la de menor distorsin.

Doptima min( Dtotal )

posible camino

Los posibles caminos posibles se denominan recinto de bsqueda, y se configuran como una cuadrcula :

Patrn
almacenado

Patrn a reconocer

Figura 2. Cuadrcula de todos los caminos posibles en un cierto recinto de bsqueda


Sin embargo, el coste computacional sera prohibitivo. en su lugar se utiliza el algoritmo siguiente. Sea
D(n,m) la distorsin acumulada hasta el punto (n,m). El camino ptimo tambin lo ser localmente ya que
todas las distorsiones son positivas. Por tanto, existen tres alternativas para llegar al punto (n,m), a cada
una de las cuales se le asigna un coste. De esta forma, y recursivamente, podemos calcular :
(x-1,y)

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] ) )

Figura 3. Ejemplo de accesibilidad de un punto


El camino recorrido se ir acumulando en cada nodo, para saber desde qu nodo se lleg al punto (x,y).
As, una vez calculado D(n,m) se recorrer hacia atrs para determinar el camino ptimo.

24

4.3 Alternativas de Diseo


A) Utilizacin de diferentes frmulas de acceso a un nodo :
Accesibilidad
1

(x-1,y)

Frmulas : min( ..... )


D(x-1,y)+d(x,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)

B) Limitacin del Recinto de Bsqueda : se realiza para reducir el coste computacional.

C) Relajacin de Extremos : se aplica si el algoritmo de deteccin de extremos no es muy fiable. En este


caso, las primeras o ltimas tramas de los patrones pueden ser ignoradas. Se suele acompaar de una
limitacin del recinto de bsqueda.
D) Normalizacin de las duraciones : se aplica cuando es previsible que las duraciones de los patrones a
reconocer, y los patrones de test (o almacenados) sean de duracin muy diferente.

R[m]

Funcin de
correspondencia lineal

DTW
T[n]

Funcin de
correspondencia lineal

Figura 4. Diagrama de un sistema de normalizacin de duraciones

25

4.4 Esquema Bsico de un Sistema basado en DTW


Un diagrama en bloques de un Sistema de Reconocimiento de Voz basado en la clasificacin de Patrones,
como es el sistema DTW se puede resumir en cuatro mdulos :

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.

4.5 DTW aplicado a Palabras Concatenadas


Se han realizado numerosos estudios para mejorar la tcnica original y adaptarla a voz contnua. Las
tcnicas de Programacin Dinmica adaptada al reconocimiento de palabras conectadas se pueden resumir
en tres :
Programacin Dinmica en dos niveles (Two-Level DP)
Construccin de niveles (Level Building)
Construccin de niveles sncrono por tramas. (Frame-Synchronous Level Building)
La primera tcnica consiste en un procedimiento sncrono por tramas que realiza un alineamiento
global de todas las posibles concatenaciones de palabras del diccionario, seleccionando aquella cuya
distancia a la seal de entrada es menor. Dicha tcnica posee interesantes propiedades, como escasos
requerimientos computacionales, y que el clculo, tanto de la distorsin temporal como de la secuencia
ptima de palabras es desarrollada de forma sncrona, lo que permite realizar con sencillez sistemas que
trabajen en tiempo real. Sin embargo, la adaptacin de una gramtica que limite de alguna manera todas
las posibles combinaciones de palabras es de una gran complejidad.
La segunda tcnica, denominada de construccin de niveles (Level Building), soluciona el
problema de la gramtica. Permite integrar una red gramatical expresada en forma de autmata formal en
el algoritmo de construccin de niveles de una forma simple y eficiente.

26

La tcnica de construccin de niveles sncrono por tramas (Frame-Synchronous Level Building),


es, con gran diferencia, la ms avanzada y compleja de las citadas, ya que incluye las ventajas de ambas.
Por un lado, el procesamiento se realiza en una pasada, es decir sncrono por tramas, y por otro lado
admite de forma sencilla la integracin de gramticas en el algoritmo. Esto hace que algunos de los
sistemas ms eficientes de Reconocimiento de Voz sean programados con la tcnica descrita
anteriormente.
La complejidad computacional de la programacin dinmica hace que si bien es aceptable para
reconocimiento dependiente del locutor en vocabularios reducidos, es impracticable si lo que pretendemos
es reconocimiento de voz contnua independiente del locutor.

27

Tema 5

Modelos Ocultos de Markov


5.1 Introduccin
Los Modelos Ocultos de Markov permiten modelizar de forma sencilla sistemas muy complejos, de ah su
inters. En concreto, y para su utilizacin, se considera la voz formada por un conjunto finito de
subunidades, como pueden ser palabras, fonemas, etc., que, adecuadamente modelizadas, permiten
reconocer correctamente una seal de voz compuesta de muchas de estas subunidades. Los resultados que
se obtienen, son, como ya he dicho, los mejores conocidos hasta el momento. Aunque se estn realizando
investigaciones para mejorar an ms los resultados, sobre todo en el campo de las redes neuronales,
todava no se ha obtenido un sistema que d mejores resultados.

5.2 Procesos, Cadenas y Fuentes de Markov


Un proceso de Markov se define como un proceso estocstico x(t) tal que para todo n y para los valores
de tiempo :

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.

En este ltimo caso se definen las probabilidades de transicin de la siguiente manera :

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

Figura 1. Fuente de Markov cuaternaria de primer orden.


Como vemos, aparecen cuatro estados, correspondientes a los cuatro smbolos observables, y cada flecha
se corresponde con una posible transicin.

5.3 Definicin de Modelo Oculto de Markov


Un Modelo Oculto de Markov se define [RABI, 89] como una cadena de Markov doblemente
estocstica, con un proceso subyacente, que no es directamente observable, y otro que s lo es.
Podemos simplficar el concepto de la siguiente forma :
El modelo se compone de un conjunto de N estados.
En cada instante de tiempo se producen dos acciones:
Se genera una observacin, que nicamente depende del estado en que se encuentra el
sistema. Nosotros consideraremos que el nmero de observaciones posibles es finito. (
Modelos Ocultos de Markov Discretos). Una alternativa posible es la generacin de una
observacin, pero en lugar de depender del estado del sistema, depende de la transicin
realizada.
Se realiza un cambio de estado, que nicamente depende del estado en que se encuentra el
sistema.
Las observaciones constituyen el primer proceso estocstico, que s es observable desde el exterior.
La sucesin de estados constituyen el proceso estocstico oculto, ya que no es observable desde el
exterior.
De lo anterior, se deduce que hemos de definir :
Una funcin de probabilidades de transicin entre estados. 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

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

b jk Probabilidad de observar el smbolo S k en el estado j


1 j n ,
siendo n = numero de estados del modelo .
1 k K , siendo K = numero de observaciones posibles.

La distribucin de probabilidad de estados iniciales, que nos permite conocer la probabilidad


de que el estado j sea el estado inicial, y que llamaremos , donde :

i 1..N

Denominaremos S I al conjunto de estados iniciales, y N I al nmero de elementos de dicho


conjunto.
Por tanto, en general, un Modelo Oculto de Markov, (lo notaremos como ), se define mediante:

( A, B, )

donde los valores A, B y se corresponden con :


A = Matriz de Probabilidades de Transicin
B = Matriz de Probabilidades de Observacin
= Matriz de Probbailidades de Estado Inicial
Como vemos, un HMM puede ser considerado como una mquina de estados finitos, donde las
transiciones entre estados dependen de la observacin de un smbolo. Por tanto, asociado a cada estado
tenemos una distribucin de probabilidad de observacin de los diferentes smbolos, y asociada a cada
transicin una probabilidad de transicin, que indica la probabilidad de dicha transicin.
Veamos un ejemplo de un Modelo Oculto de Markov en detalle :

a10=0.35

a00=0.2

E0

a11=0.65

E1

( 0.6 )
a01=0.8

( 0.4 )
[ 0.2 , 0.4 , 0.4 ]

[ 0.6 , 0.2 , 0.2 ]

Figura 2. Modelo Oculto de Markov (Ejemplo)

Sea el modelo representado en la figura.


Supongamos que :

El modelo consta de dos estados, E0 y E1, representados como crculos.

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.

Segn los supuestos anteriores, podemos calcular, por ejemplo:

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,

P(O ' a' ) 1 * b1a 2 * b2a 0. 6 * 0. 6 0. 4 * 0. 2 0. 36 0. 08 0. 44


De la misma forma, la probabilidad de que el modelo genere una cadena de longitud 1, igual a 'b' es :

P(O ' b' ) 1 * b1b 2 * b2b 0. 6 * 0. 2 0. 4 * 0. 4 0.12 0.16 0. 28


Y de igual forma,

P(O ' c' ) 1 * b1c 2 * b2c 0. 6 * 0. 2 0. 4 * 0. 4 0.12 0.16 0. 28


Si la observacin que tenemos del sistema es de longitud 2, la cosa se complica un poco. Por ejemplo,

P(O ' ab' ) 1b1a a11b1b 1b1a a12b2b 2 b2 a a22b2b 2 b2 a a21b1b

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.

B) Cul es la cadena de longitud dada ms probable ?


De forma similar podemos calcular cul es la cadena de una cierta longitud dada ms probable. En
nuestro ejemplo, la cadena de longitud 1 ms probable es la cadena 'a', mientras que la probabilidad de
observar las cadenas 'b' y 'c' son menores.
Por tanto, para obtener la cadena de longidud dada ms probable, basta con generar todas las posibles
cadenas de dicha longitud, calcular su probabilidad, y seleccionar la mayor.
C) Dada una secuencia de observaciones, y un modelo, Cual es la secuencia de estados ms
probable ?
Como se puede observar en el ejemplo de la cadena 'ab', de entre todas las posibles secuencias de estados
( 11 , 12 , 21 , 22 ), la ms probable es ( 12 ), ya que su probabilidad de generacin es 0.1152, superior a
todas las dems.
Por tanto, para resolver dicho problema, basta con realizar todos los posibles recorridos de estados, y
seleccionar aquel que genere una probabilidad mayor.

31

D) Cmo generar una secuencia de observaciones que se ajuste a un determinado modelo ?


Un Modelo Oculto de Markov puede ser utilizado como un generador de smbolos que siguen una cierta
estructura de la siguiente manera:
1.

Elegir un estado inicial en funcin de las probabilidades de estado inicial.

2.

Elegir una observacin de acuerdo a las probabilidades de observacion.

3.

Transitar del estado actual a otro estado ( includo el actual ) en funcin de las probabilidades de
transicin.

4.

Si la cadena de smbolos generada es de la longitud deseada, parar. En caso contrario, volver al


paso 2.

5.4 Problemas Bsicos


En el captulo anterior hemos resaltado la gran flexibilidad y potencia que los Modelos Ocultos de
Markov presentan, ya que permiten modelizar sistemas de gran complejidad de forma muy sencilla.
Ahora bien, para que la modelizacin sea til, hemos de buscar mtodos generales que permitan realizar
de forma automtica lo que de forma intutiva hemos visto en el captulo anterior. Bsicamente, estos
mtodos se refieren a los siguientes problemas :
Problema 1. ( Problema de Evaluacin )
Dada una secuencia de observaciones, y un modelo, Cul es la probabilidad de que dicho modelo haya
generado dicha secuencia ? La resolucin a este problema nos permitir conocer, dada una determinada
secuencia de observaciones, y una serie de modelos diferentes, qu modelo es ms probable que haya
generado dicha cadena.
Problema 2. ( Problema de Decodificacin )
Dada una secuencia de observaciones, y un modelo, Cul es la secuencia ptima de estados que mejor
explica ( o sea, la que maximiza la probabilidad de observacin ) dicha secuencia de observaciones ? La
resolucin a este problema nos permitir conocer qu secuencia de estados es la ptima para una cierta
cadena, intuyendo de alguna manera el proceso "oculto" que se desarrolla en el interior del modelo, y que
no es observable de forma directa desde el exterior.
Problema 3. ( Problema de Entrenamiento )
Dada una secuencia de observaciones, y un modelo, Cmo podemos ajustar los parmetros del modelo
para que maximizar la probabilidad de generar dicha secuencia ? Este ajuste nos permitir realizar el
entrenamiento de un modelo, es decir, su adaptacin a un conjunto de secuencias de observaciones
correspondientes a un mismo fenmeno, generando as su modelo correspondiente.
Una vez resueltos estos tres problemas, estaremos en condiciones de aplicar los Modelos Ocultos de
Markov a problemas concretos.

5.5 Solucin al Problema de Evaluacin


La resolucin general a este primer problema recibe el nombre de Procedimiento forward-backward.

5.5.1 Clculo de las probabilidades "forward"


Consideremos la variable t ( i ) , llamada probabilidad "forward" definida como:
t (i) P(O1O2 ... Ot , q t i )
Es decir, dado el modelo , y habindose realizado el conjunto de observaciones O1O2 ... Ot , cul es la
probabilidad de encontrarnos en el estado i en el instante t.
Sean SI el conjunto de estados iniciales, NI el nmero de elementos de dicho conjunto, S F al conjunto de
estados finales, y N F al nmero de elementos de dicho conjunto. Para calcular t ( i ) , basta realizar el
algoritmo inductivo siguiente :

32

1. Inicializacin.

1 (i) i bi (O1 )

1 i N

Es decir, la probabilidad de que el estado inicial sea i, multiplicado por la probabilidad de


observar O1 en el estado i. Los valores de i son :

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

Es decir, la probabilidad de observar el smbolo correspondiente a (t+1), multiplicado por la


suma de todos los posibles caminos de longitud (t), ponderados con los correspondientes a ij .
3. Terminacin.

Pr(O ) Pr(O1O2 ... OT ) T (i )


i SF

Apliquemos el algoritmo al modelo que ya hemos utilizado anteriormente como ejemplo:

a10=0.35

a00=0.2

E0

a11=0.65

E1

( 0.6 )
a01=0.8

( 0.4 )
[ 0.2 , 0.4 , 0.4 ]

[ 0.6 , 0.2 , 0.2 ]

Figura 3. Modelo Oculto de Markov (Ejemplo)

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.

1 (1) 1b1 (O1 ) 0. 6 0. 6 0. 36


1 (2) 2 b2 (O1 ) 0. 4 0. 2 0. 08

2. Induccin.

2 (1)

2 (2)

(i ) a
1

i1

i 1
N

(i ) a
1

i2

b1 (O2 ) 0. 36 0. 2 0. 08 0. 35 0.2 = 0.020

( 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

P( ab ) T (i ) 0. 020 0.136 0.156


i 1

Como vemos, el resultado coincide con el que calculamos de forma intuitiva.

33

5.5.2 Clculo de las probabilidades "backward"


Mediante un criterio similar, podemos realizar el proceso inverso. Consideremos la variable
llamada probabilidad "forward" definida como:

t ( i ),

t (i) P(Ot 1Ot 2 ... OT , q t i )

Es decir, dado el modelo , y habindose realizado el conjunto de observaciones O t 1O t 2 ... O T , cul


es la probabilidad de encontrarnos en el estado i en el instante t.
Para calcular t ( i ) , basta realizar el algoritmo inductivo siguiente :
1. Inicializacin.
Se define de forma arbitraria la probabilidad de estar en el estado i-esimo en el instante final t=T
como 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.

Pr(O ) P(O1O2 ... OT ) i b i (O1 ) 1 (i )


i SI

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,

Pr( O ) Pr( O1O 2 ... O T )

i SF

( i ) i b i ( O1 ) 1 ( i )
i SI

5.6 Solucin al Problema de Decodificacin


As como para el problema de evaluacin hemos encontrado una solucin exacta, para el problema de
decodificacin no existe una nica solucin, ya que hemos de definir el concepto de "camino ptimo".
No entraremos en este trabajo en estudiar los diferentes criterios existentes. En su lugar, estudiaremos el
algoritmo ms comnmente utilizado, conocido con el nombre de Algoritmo de Viterbi.

5.6.1 Algoritmo de Viterbi


El algoritmo de Viterbi encuentra la mejor secuencia de estados dada una secuencia de observaciones.
Para ello utiliza el conjunto de variables t ( i ) , definida de la siguiente manera:

t (i ) max P(q1q 2 ... q t i, O1O2 ... Ot )


q1 ,q 2 ,...q t 1

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

4. Calculo del mejor camino mediante la vuelta atrs.

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 ]

[ 0.6 , 0.2 , 0.2 ]

Figura 4. Modelo Oculto de Markov (Ejemplo)


1. Inicializacin.

1 (1) 1b1 (O1 ) 0. 6 0. 6 0. 36


1 (2) 2 b2 (O1 ) 0. 4 0. 2 0. 08
1 (1) 1 (2) 0

2. Induccin

2 (1) max 1 (i ) ai1 b1 (O2 ) max 0. 36 0. 2, 0. 08 0. 35 0.2 = 0.0144

(j = 1, t = 1)

2 (2) max 1 (i ) ai2 b2 (O2 ) max 0. 36 0. 8, 0. 08 0. 65 0.4 = 0.1152


1i N
2 (1) 1
2 ( 2 ) 1

(j = 2, t = 1)

1i N

3. Terminacin.

P* max 0. 0144, 0.1152 0.1152

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.

5.7 Solucin al Problema del Entrenamiento


El problema ms difcil de resolver de los tres planteados es sin ninguna duda el del entrenamiento. Es
decir, cmo ajustar los parmetros de un cierto modelo para maximizar la probabilidad de una secuencia
de observacines.
No existe una solucin analtica que resuelva dicho problema. Por tanto, es preciso aplicar algoritmos
iterativos. Esto implica que las soluciones a las que se llegue pueden no constituir mnimos globales de la
funcin que se intente optimizar. Como es lgico, es de gran importancia la determinacin del criterio de
optimizacin y ello determina la existencia de diferentes algoritmos :

Baum-Welch ( mxima verosimilitud de los modelos )


Segmental K-means ( mxima verosimilitud de la secuencia entre estados )
Criterio MMIE ( mxima informacin mutua )
Entrenamiento Correctivo ( mnima tasa de errores )

En concreto, vamos a estudiar el algoritmo de Baum-Welch por ser el ms frecuentemente utilizado.

5.7.1 Algoritmo Baum-Welch


Consideremos un modelo , y la secuencia de observaciones O O1O2 ... OT . Utilizando el algoritmo
forward-backward podemos calcular la probabilidad de estar en el estado i en el momento t, y estar en el
estado j en el momento t+1, y que denominaremos t ( i, j)

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

De igual forma podemos determinar la probabilidad de estar en el estado i en el instante t, y que


denominaremos t ( i )

t (i) t (i)
T (k)

t ( i ) Pr(s t i O, )

k SF

Es fcil determinar que se cumple la igualdad siguiente :


N

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

b) Frmula de reestimacin de las probabilidades de observacin :


T 1

bj (k)

( j)

t O t v k
T

( j)

t 1

c) Frmula de reestimacin de las probabilidades de estado inicial :

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

Pr(O ) Pr(O ) sigue

siendo vlida. Dicha propiedad tiene una gran importancia prctica, ya que permite detectar posible
incorrecciones en la implementacin del algoritmo.

5.8 Fases en el Diseo de un Sistema de


Reconocimiento.
En este apartado se trata de explicar cmo aplicar los Modelos Ocultos de Markov al proceso de
Reconocimiento de la Voz. En toda modelizacin podemos distinguir dos fases :
1.

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.

Fase de Reconocimiento : esta es la fase que permite realizar el reconocimiento automtico de un


segmento de voz correspondiente a una de las fases aprendidas. La fase de Reconocimiento consta de
los siguientes procesos :
Obtencin de una seal (ya sea del micrfono, de un fichero, etc.)
Digitalizacin.
Extraccin de Caractersticas.
Cuantificacin Vectorial.
Reconocimiento.

37

Bibliografa Seleccionada
[FURU, 89]

FURUI, S. "Digital Speech Processing, Synthesis, and Recognition". Marcel Dekker,


Inc. New York, 1989.

[FURU, 92]

FURUI, S. y SONDHI, M.M. "Advances in Speech Signal Processing". Marcel Dekker,


Inc. New York, 1992.

[GARC, 91]

GARCIA, R. y GOMEZ, J. "Reconocimiento de Voz". Curso 3509-RVD. Programa de


Postgrado en Sistemas y Redes de Comunicaciones. Univ. Politcnica de Madrid. 1991.

[HUAN, 90]

HUANG, X.D., ARIKI, Y. y JACK, M.A. "Hidden Markov Models for Speech
Recognition". Edinburgh University Press. Edimburgh, 1990.

[LEA, 80]

LEA, W.A. "Trends in Speech Recognition". Prentice-Hall, Englewood Cliffs. New


Jersey, 1980.

[LEE, 89]

LEE, K.-F. "Automatic Speech Recognition: The Development of the SPHINX


System". Kluwer Academic Publishers. Boston 1989.

[LEE, 92]

LEE, K.-F. y ALLEVA, F. "Continuous Speech Recognition". in Advances in Speech


Signal Processing, pp. 623-651. Ed. Marcel Dekker, Inc., New York 1992.

[MAKH, 75]

MAKHOUL, J. "Linear Prediction: A Tutorial Review". Proc. IEEE, Vol.63, pp.561580, Abril 1975.

[MARK, 76]

MARKEL, J.D. y GRAY, A.H. "Linear Prediction of Speech". Springer-Verlag. New


York, 1976.

[NAVA, 90]

NAVARRO, T. "Manual de Pronunciacin Espaola". C.S.I.C. 1990.

[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]

QUILIS, A. y FERNANDEZ, J.A. "Curso de Fontica y Fonologa Espaolas". C.S.I.C.


Instituto de Filologa. Madrid, 1985.

[RABI, 75]

RABINER, L.R. y GOLD, B. "Theory and Application of Digital Signal Processing".


Prentice-Hall, Englewood Cliffs. New Jersey, 1975.

[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.2 Nmeros Complejos


exp(i*pi)
z=3+4*i
z = 5 * exp(i*0.9273)
real(z)
imag(z)
abs(z)
angle(z)

Variables complejas, Constantes importantes (i,j,pi,ans)


Formato (parte real + parte imaginaria)
Formato (modulo + argumento en radianes)
Parte real de un nmero complejo
Parte imaginaria de un nmero complejo
Mdulo de un nmero complejo
ngulo de un nmero complejo

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)

Formacin de Vectores a partir de sus componentes


Formacin de Vectores a partir de sus extremos
Formacin de Vectores con incremento diferente de 1
Aplicacin de funciones a vectores completos
Seleccin de un elemento individual de un vector
Seleccin de varios elementos de un vector
Funcin que devuelve la longitud de un vector
Vector diferencia

1.4 Matrices
v1 = [1 2 3;-1 -2 -3]
o bien

Formacin de Matrices a partir de sus componentes

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)

Formacin de Matrices a partir de Vectores


Seleccin de un elemento individual de una matriz
Seleccin de Grupos de Elementos de una matriz
"
"
"
(alternativa)
Funcin que devuelve las diemnsiones de una matriz

1.5 Operaciones Aritmticas


x=1:10;
y=10:-1:1;
z=x+y
z=x-y
z=x*y
z=x.*y
z=x*y'
z=x./y
3*y
3+y

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.

1.6 Operaciones sobre Matrices


x=[1 2 3;2 1 2;7 6 1];
y=x'
inv(x)
y=zeros(3,3)
y=ones(4,4)
y=rand(2,4)
y=y*3

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')

Dibujo de vectores (2-D)

Dibujo de matrices (3-D)


Uso de colores

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

2.2 La sentencia WHILE


x=3;
y=[];
WHILE (x>0) & (x*x<5),
y=[y x];
x=x-0.5;
END;

Operadores Lgicos (& , | , )

2.3 La sentencia FOR


FOR i=1:2:10,
y(i)=i*i+3
END;
plot(y)

Formato : inicio : incremento : fin

No existe el bucle REPEAT


No existe el GOTO

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

Uso del pause y de clg

42

Creacin de un vector a partir de si mismo (peine de Dirac)

Uso del clear

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

5. Cuadro Resumen de las funciones elementales


help
whos
size
length
clear
exit , quit

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

invierte el orden de las filas


diagonal de una matriz
reordena una matriz en otra
convierte una matriz en una columna

FUNCIONES LOGICAS Y RELACIONALES


encuentra valores segn una condicin

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

VENTANA ALFANUMRICA Y GRFICA


Dibuja grfico en 2D
Dibuja grfico en 3D
Limpia pantalla grfica
Limpia pantalla de comandos
Divide la pantalla grfica en 1, 2 o 4 partes

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

ANALISIS DE DATOS POR COLUMNAS


valor mximo
valor mnimo
valor medio

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

PRACTICA 1 : Manejo elemental de MATLAB


En esta primera prctica, el alumno debe familiarizarse con el entorno que vamos a
utilizar, el programa MATLAB y con las formas de onda de las seales de voz. Para
ello, se recomienda seguir los pasos siguientes :
1. Utilizar MATLAB como calculadora. Calcular valores de diferente complejidad.
2. Dibujar las funciones siguientes :

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 )

3. Asignar a una matriz el valor :

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

PRACTICA 2 : Anlisis Temporal de la Seal


En esta segunda prctica el alumno afianzar su manejo con MATLAB, y plasmar su
aprendizaje sobre el anlisis temporal de la seal.
1. Escribir la funcin energy que calcule la energa de un vector (una trama de seal),
definida como :
N

E m xi

i 1

La funcion debe tener la siguiente cabecera :


function e=energia(seal)
Pista : Utilizar la funcin sum y el operador *. (estrella seguido de punto)
2. Escribir la funcin energydb que calcule la energa media en dB. Utilizar la siguiente
formula :
N
2
E dB 10 log 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

PRACTICA 2.bis : Deteccin de Extremos (Opcional)


Esta prctica opcional permite la construccin de un detector de extremos, para localizar
el inicio y el final de una palabra pronunciada de forma aislada. La funcin construida
deber tener la siguiente cabecera :
function [inicio,fin]=edge(seal,freqmuestreo)
Para ello se utilizar el algoritmo siguiente :
1. Preenfatizar toda la seal a 0.97 (Usar la funcin preenf)
2. Romper la seal en tramas de la siguiente forma : (bucle for)
LON_TRAMA = 16 msec.
LON_DESPL = 8 msec.
3. Para cada trama,

Aplicar una ventana de Hamming (Usar la funcin hamming)

Calcular la energa en dB (Usar la funcin energydb)


4. Calcular la energa del ruido de fondo, como la media de las 10 primeras tramas.
(Usar la funcin mean)
5. Utilizar los umbrales siguientes : (Todas las medidas son en dB)
k1= ruidofondo + 3;
k2= ruidofondo + 7;
k3= ruidofondo + 5;
k4= ruidofondo + 20;
6. Buscar el punto de inicio en la funcin energa de la siguiente manera :

Buscar el primer valor que supere a k1 (sea en el punto p1)

Buscar a continuacin el primer valor que supere a k2, sin que se descienda por
debajo de k1 (sea p2)

Si la distancia de p1 a p2 es mayor de 75 msec, entonces inicio = p2


si no, inicio = p1
7. Buscar el punto final de la siguiente manera :

buscar el primer valor que baje de k2


(sea en el punto p3)

buscar el siguiente valor que baje de k3, sin que se supere a k2


(sea en el punto p4)

Si la distancia de p3 a p4 es mayor de 75 msec, entonces inicio = p3


si no, inicio = p4
8. Comprobaciones de errores :

si la distancia de inicio a fin es < 75 msec, entonces dar un Error

si el maximo de energia en el intervalo inicio:fin es menor que k4, dar un Error

49

PRACTICA 3 : Anlisis Frecuencial de Seales(1)


En esta prctica, el alumno se familiarizar con las formas de onda de la seal de voz,
con el espectro local y con la evolucin de la energa distribuda en bandas.
1.- Realizar una funcin que genere una seal seno de una cierta amplitud, frecuencia y
fase compuesta de N puntos. La funcin tendr la cabecera siguiente :
function y=senogen(frecmuest,amplitud,frec,fase,N);
2.- Utilizar la funcin anterior para generar tres seales seno distintas, a diferentes
amplitudes y/o fases, y frecuencias iguales a 590, 1000 y 1500 Hz.
3.- Sumar las tres seales seno anteriores.
4.- Disear tres filtros digitales paso banda :

Butterworth de orden 5 en la banda 50 - 600 Hz.

Butterworth de orden 5 en la banda 600 - 1200 Hz.

Butterworth de orden 5 en la banda 1200 - 4000 Hz.


Pista : Utilizar la funcin butter (y freqz para comprobar los resultados)
5.- Filtre la seal suma por cada filtro y observe la salida.
6.- Disear el banco de filtros siguiente utilizando filtros Butterworth de cuarto orden :
Filtro 1 : Paso Bajo - 300 Hz.
Filtro 2 : Paso Banda 300 - 600 Hz.
Filtro 3 : Paso Banda 600 - 900 Hz.
Filtro 4 : Paso Banda 900 - 1200 Hz.
Filtro 5 : Paso Banda 1200 - 1500 Hz.
Filtro 6 : Paso Banda 1500 - 1800 Hz.
Filtro 7 : Paso Banda 1800 - 2100 Hz.
Filtro 8 : Paso Banda 2100 - 2500 Hz.
Filtro 9 : Paso Banda 2500 - 3000 Hz.
Filtro 10 : Paso Alto 3000 Hz.

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

PRACTICA 4 : Anlisis Frecuencial de Seales(2)


En esta prctica, el alumno se familiarizar con las formas de onda de la seal de voz,
con el espectro local y con la evolucin de la energa distribuda en bandas.
1.- Visualice una seal de voz. Utilice distintas escalas temporales.
2.- Calcule el espectro local mediante FFT y mustrelo en pantalla. Utilice diferentes
longitudes de trama(64, 128, 256, 512) , y evale los resultados.
3.- Dibuje para la palabra "siete" la energa en las bandas:
0 - 300 Hz.
300 - 600 Hz.
600 - 900 Hz.
900 - 1200 Hz.
1200 - 1500 Hz.
1500 - 1800 Hz.
1800 - 2100 Hz.
2100 - 2500 Hz.
2500 - 3000 Hz.
3000 - 4000 Hz.

y comprelas con las obtenidas en la prctica anterior.


4.- Utilizando los conceptos estudiados hasta ahora, trate de descubrir diferentes
factores que nos permitan discriminar entre los diferentes fonemas, o familias de
fonemas (vocales, consonantes, fricativas, etc.).

51

PRACTICA 5 : Prediccin Lineal


En esta prctica se estudia la tcnica de prediccin lineal. Para ello, el alumno debe :
1.- Calcule la autocorrelacin de un segmento de seal. Vea su forma. Determine el
perodo, para algunas seales sonoras, utilizando esta funcin.
2.- Calcule los coeficientes del predictor LPC de orden 10, 14, 18.
3.- Compare la funcin de transferencia del filtro de sntesis con el espectro local de la
seal.
4.- Calcule los coefs. cepstrum a partir de los LPC.
5.- Calcule los coefs. delta-cepstrum y delta-energia.
6.- Realizar un sistema de extraccin de caractersticas basado en el esquema siguiente :
a

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

PRACTICA 6 : Diseo de un Reconocedor de


Palabras Aisladas mediante DTW
En esta prctica se estudia la tcnica DTW, que utilizaremos para la construccin de un
reconocedor de palabras aisladas. Para ello, el alumno debe :
1.- Realizar un detector de extremos sencillo. Se puede utilizar el sugerido en la prctica
2.bis, o uno ms sencillo. El detector debera tener la siguiente cabecera :
function [inicio,fin]=edge(senyal,freqmuestreo)
2.- Realizar un extractor de caracteristicas. Se puede utilizar el obtenido en la prctica
anterior, o uno ms sencillo.
function caracteris=extract(senyal)
3.- Generar un conjunto de patrones de entrenamiento para las palabras uno, dos y tres, a
partir de las seales del disco.
4.- Realizar en una funcin el algoritmo DTW tan simple como sea posible. Dicha
funcin tomar dos matrices de caractersticas, y calcular su distancia.
5.- Realizar la funcin principal, que utilizando los resultados de los apartados
anteriores es capaz de reconocer una seal dada.
Nota : seguir el esquema indicado en la siguiente figura :

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

PRACTICA 7 : Diseo de un reconocedor de palabras


usando HMM.
En esta prctica se estudia la tcnica HMM, que utilizaremos para la construccin de un
reconocedor de palabras aisladas. Para ello, el alumno debe utilizar los resultados de la
prctica anterior de los apartados A, B y C, y a continuacin :
1. Realizar un algoritmo sencillo de particionado uniforme, que recibe el nmero de
columnas de una matriz de caractersticas, y devuelve el correspondiente particionado.
2. Realizar un algoritmo que recibe una matriz de caracteristicas, y un particionado, y
calcula la media de cada uno de los estados, as como la matriz A de probabilidades de
transicin.
3. Implementar el algoritmo de Viterbi para realizar el entrenamiento y reconocimiento
de una seal.
4. Realizar un Sistema Completo de Entrenamiento y de Reconocimiento utilizando los
resultados de los apartados anteriores.
Nota : en esta ltima prctica, se deja libre al alumno el esquema general del sistema,
as como la adecuada eleccin de los diferentes parmetros.

54

También podría gustarte