Académique Documents
Professionnel Documents
Culture Documents
)
Modelo de glotis: existen diferentes modelos de la glotis, para el caso
en que es excitada por pulsos. Un modelo simple es el denominado
modelo exponencial representado por una funcin transferencia Z de la
forma
()
()
Donde e es la base de los logaritmos neperianos. El numerador se
selecciona de manera que ()
Donde a=0.95
6.1.2.1.3 Segmentacin
Para trabajar con la seal de voz, tenemos que decir que es
estacionaria, y para eso se aplica la segmentacin, donde se toman
ciertos periodos de tiempo de la seal y esta se asume que es
estacionaria.
Esta segmentacin toma 30 ms por trama de voz con un
desplazamiento de 10 ms entre cada trama.
4.1.2.2 Ventana Hamming
Se aplica una ventana hamming a cada uno de los segmentos creados
anteriormente, esto se aplica con la razn de tener una seal con los
lobulos secundarios pequeos y un lbulo principal estrecho, a simple vista
parece que se perder la informacin correspondiente a los lbulos
secundarios, pero esto no es asi debido al solapamiento entre segmentos.
,- {
()
}
4.1.2.3 Anlisis Mel-Cepstral (Mel Spectrum)
Retomando los conceptos de la voz, esta es la convolucin de la seal de
excitacin y un filtro lineal.
() () ()
Con H(t) la respuesta al impulso del filtro lineal
En el dominio de la frecuencia:
() () ()
Dado la seal S(f), sabiendo que los formantes tienen ciertas frecuencias
explicitas para el reconocimiento de voz, para un mejor tratamiento de estas
se aplican filtros con frecuencias centrales de tal modo que resalten las
caractersticas espectrales.
10
Fig 7. Banco de filtros Mel
Los filtros usados para este banco de filtros son de tipo triangular,
repartidos desde la frecuencia cero hasta la frecuencia de Nyquist
En el diseo de estos filtros se toma una LoFreq y HiFreq (o f
l
y f
h
respectivamente).
Los puntos superiores de cada funcin espectral f(m) se encuentran
uniformemente espaciados en la escala de Mel en funcin de m y se
determinan mediante:
Donde:
() (
)
Al final la inversa estara dado por:
Mel de es coef icient de total M
calcular a e coef icient de nmero m
Hz en resada alta ms f recuencia f
Hz en resada baja ms f recuencia f
donde
M
f f
m f m f
h
l
h l
l
=
=
=
=
|
.
|
\
|
+
+ =
exp
exp
:
1
) ( ) (
) ( ) (
1
| |
| |
11
|
|
.
|
\
|
|
.
|
\
|
=
1
1125
exp 700 ] [
1
b
b |
Entonces, la construccin de los filtros viene dado por:
M m y
f k para
s
s s
s s
1
2 / 1
Este procedimiento funciona si los filtros son equiespaciados.
Para filtros no uniformemente espaciados y con una amplitud normalizada
de 1, la solucin esta dada por:
+ >
+ s s
+
+
s s
<
=
) 1 ( , ...... ,......... 0
) 1 ( ) ( , ,....
) ( ) 1 (
) 1 (
) ( ) 1 ( , ,....
) 1 ( ) (
) 1 (
] 1 [ , ...... ,......... 0
] [
m f k para
m f k m f para
m f m f
k m f
m f k m f para
m f m f
m f k
m f k para
k H
m
M m y
f k para
s
s s
s s
1
2 / 1
12
Entonces, luego de disear los filtros, estos se tienen que multiplicar con la
seal luego de aplicarle la FTT.
Fig 8. Aplicacin de los filtros Mel
4.1.2.4 Mel-Cepstrum
Es la respuesta luego de aplicar el Logaritmo a nuestro Mel-Spectrum, y
luego la Transformada discreta de coseno.
La transformada de Coseno Discreta es una transformacin basada en la
Transformada discreta de Fourier, pero utilizando solamente nmeros
reales.
Expresa una secuencia de muchos puntos de datos en trminos de una
suma de funciones coseno oscilando a diferentes frecuencias. Sus
aplicaciones son importantes sobre todo en aquellas en donde
componentes pequeas de alta frecuencia se pueden descartar. El uso de
13
la funcin coseno en lugar de la funcin seno ha demostrado ser ms til (p.
e. la compresin de informacin), existen 8 variantes de la transformada
coseno discreta, de las cuales slo 4 son las ms utilizadas o comunes.
Fig 9. Proceso de obtencin de coeficientes Mel-Cepstrum
Voz
Pre-
proceso
Ventana
Hamming
FFT
Banco
de
Filtros
Mel
Log
DCT
Coeficientes
de Mel-
Cepstrum
1 ,......, 0 ,
2
1
cos
1
0
=
|
.
|
\
|
+ =
=
N k k n
N
x X
N
n
n k
t
14
Fig 10. Proceso de obtencion de coeficientes Mel-Cepstrum con su
correspondiente proceso matemtico
15
4.2 Sistema biomtrico
4.2.1. Cuantificacion de vectores
Una parte importante en cualquier tipo de procesamiento de voz es la optimizacin
de los algoritmos en cuanto a velocidad y almacenamiento, entonces, la
cuantificacin de vectores trae consigo la idea de clasificar un conjunto de
vectores, luego de lo cual se buscarn los mejores representantes para reducir el
tamao de la informacin a manejar. La forma de medir la fidelidad de un
cuantificador es determinar el error que ste produce al reemplazar los datos de
entrada que recibe por los vectores representantes o codewords, dicho parmetro
es llamado error por distorsin. La finalidad de un cuantificador es obtener un
conjunto de vectores representativos llamado codebook, que presente el menor
error por distorsin, por ejemplo para cuantificar los vectores de observacin.
4.2.1.1 Distancia Euclidiana
La distancia euclidiana s la distancia "ordinaria" (que se medira con una regla de
acero) entre dos puntos de un espacio eucldeo, la cual se deduce a partir del
teorema de Pitgoras. Por ejemplo, en un espacio bidimensional, la distancia
euclidiana entre dos puntos P
1
y P
2
, de coordenadas (x
1
, y
1
) y (x
2
, y
2
)
respectivamente, es:
(
)
Entonces para un espacio multidimensional de orden n esta dado por:
(
) (
)
4.2.1.2 Distancia no Euclidiana
Es la que est determinada solo por 4 reglas:
(
)
(
) (
)
(
)
16
(
) (
) (
)
La ltima expresin hace referencia a que si se consideran 3 objetos, la distancia
entre dos de ellos no puede superar la suma de las distancias entre los dos
restantes.
4.2.1.3 Proceso de Cuantificacin de vectores
Las tcnicas de parametrizacin de la seal de voz se realizan tomando una
secuencia de ventanas temporales, cada una de las cuales se representa por un
nmero de D parmetros. Entonces la informacin de cada ventana se
representara por un vector de observacin de D posiciones.
Cuando se almacenan estos parmetros lo que generalmente se hace es
cuantificar cada parmetro con un determinado nmero de bits, este proceso se
denomina cuantificacin escalar y no es la manera ms eficiente para almacenar
la informacin, adems, implica la ocurrencia uniforme de las ventanas de
informacin. Una forma ms conveniente es realizar una cuantificacin vectorial.
Si comparamos la informacin del vector representante con respecto a la forma de
onda original de la seal de voz, concluimos que el anlisis espectral contiene
significativamente menos informacin.
Por ejemplo, una seal de voz se muestrea a 10Khz y la cuantificacin es de 16
bits, se necesita una velocidad de 160000 bps para almacenar las muestras de la
seal de voz en el formato original. Si realizamos el anlisis en el espectro,
consideremos vectores de dimensin n=10 usando 100 vectores de observacin
por segundo. Si representamos cada parmetro en 16 bits, se requiere
aproximadamente 100x10x16 bps o 16000 bps con una reduccin de diez veces
sobre la seal original.
Las compresiones en ancho de banda y almacenamiento son imprevisibles, se
basan en el concepto de la necesidad de la representacin nica para cada
fonema (sonido diferenciable de una lengua, generalmente representado por una
letra), esto puede ser posible para reducir la representacin espectral original de la
seal de voz sacando a los vectores de observacin desde un pequeo, finito
nmero de vectores espectrales "nicos", donde cada uno corresponde a las
unidades bsicas de la voz o "fonemas".
17
La representacin ideal es impracticable porque hay mucha variabilidad en las
propiedades espectrales de cada uno de los fonemas.
De cualquier forma, el concepto de construir un codebook de vectores de anlisis,
"distintos" y "nicos", aunque con mas palabras de cdigo que el grupo o set
bsico de fonemas, sigue siendo una idea atractiva y es el fundamento de un
conjunto de tcnicas denominadas mtodos de cuantificacin de vectores.
Basndose en este razonamiento, se necesita un codebook con aprox. 1024
vectores espectrales nicos ( 25 variantes para cada uno de los 36 fonemas
bsicos ).
Si para representar un vector espectral arbitrario tenemos un nmero de 10 bits,
tomando una velocidad de 100 vectores por segundo, obtenemos una velocidad
de 1000 bps para representar los vectores espectrales de una seal de voz.
Esta velocidad es aprox. 1/16 de la velocidad necesaria para vectores espectrales
continuos.
Por lo tanto la representacin cuantificada es eficiente para representar
informacin espectral de la seal de voz.
Principales ventajas
1. Reduce el almacenamiento de la informacin de anlisis.
2. Se reduce el clculo para determinar distancias entre vectores espectrales. La
representacin del VQ se limita a una tabla que contiene las distancias entre pares
de vectores del codebook.
3. Representacin discreta de las seales de voz. Asociando una caracterstica
fontica con cada vector del codebook, el proceso de eleccin del vector que
mejor lo representa es equivalente a asignar una caracterstica fontica a cada
segmento de voz.
Principales desventajas
1. Distorsin en la representacin del vector. Hay un nmero finito de vectores en
el codebook, el proceso de "eleccin" del mejor representante es equivalente a
cuantificar el vector y conduce a un cierto nivel de error de cuantificacin. De
18
cualquier modo con cualquier codebook finito siempre habr un nivel de ruido o
error.
2. El almacenamiento requerido para los vectores del codebook no es pequea.
Cuanto ms grande sea el codebook menor es el error. Para un codebook de
1000 o ms entradas, el almacenamiento no es irrelevante. Hay que realizar un
balance entre error de cuantificacin, procesamiento y almacenamiento del
codebook.
4.2.1.4 Componentes
Fig 11. Proceso de obtencin de Codebook
1. Un gran nmero de vectores de observacin, V1, V2,....., Vn, que conforman el
grupo de entrenamiento. El grupo de entrenamiento se usa para crear el grupo de
vectores del codebook "optimo" que representa la variabilidad espectral
observada en el grupo de entrenamiento. Determinamos el tamao del codebook
como M = 2, siendo a el nmero de bits necesarios para codificar M palabras de
cdigo, por lo tanto se necesitan n>>M vectores para que sea eficaz.
2. Una medicin de distancia entre cada par de vectores espectrales de
observacin para agrupar el conjunto de vectores de entrenamiento como as
tambin para asociar o clasificar vectores arbitrarios a cada entrada del codebook.
3. Un procedimiento de clasificacin para ubicar y calcular los centroides. Sobre la
base del particionamiento que clasifica el grupo de n vectores en M clusters o
sectores primero elegimos el nmero M, codewords del codebook, para luego
proceder a la clasificacin.
4. Finalmente, luego del proceso de clasificacin (entrenamiento) queda como
resultado del mismo un libro de cdigos o codebook.
19
Grupo de entrenamiento del VQ para reconocimiento de voz
Para entrenar apropiadamente el codebook y mejorar la implementacin, para el
grupo de vectores de entrenamiento, se deber tener en cuenta:
1. Para las seales de voz: Rangos de edad, acentuacin, gnero, velocidad de
discurso, niveles y otras variables.
2. Condiciones de discurso: Ambiente ruidoso o silencioso, movilidad de la
persona.
3. Transductores y sistemas de transmisin: Ancho de banda del micrfono, canal
telefnico, ancho de banda del canal y otros dispositivos.
4. Reconocimiento discreto o de palabras aisladas y reconocimiento continuo.
4.2.1.5 Clasificacin de Vectores
El objetivo de un mdulo clasificador es agrupar una cantidad de vectores
caractersticos, N, en una cantidad M (M<N), discreta, de sectores o celdas de
clasificacin logrando que las caractersticas en cada sector sean similares.
Existen muchos criterios para lograr dicho objetivo y a continuacin veremos
algunos de los ms comunes. Imaginemos que la media multidimensional de un
determinado sector i, es i (con 1<i<M), y a continuacin ingresa al clasificador un
vector de observacin o, se puede clasificar dicho vector calculando la "distancia"
a la que se halla de cada una de las M medias y asignndolo al sector ms
"cercano".
Este mtodo de clasificacin se denomina k-Means debido a que se agrupan los
vectores en torno a k valores medios, quedando formados k sectores (en nuestro
caso k=M). Existe el problema de inicializacin de los valores de i, y su
reestimacin a medida que progresa el algoritmo.
4.2.1.6 Algoritmos de Clasificacin
Podemos decir, en general, que los N vectores originales de tamao D quedarn
representados por M vectores, cada uno de los cuales es llamado "palabra de
cdigo" o codeword (Cw), el grupo entero de dichos vectores, forma un "libro de
cdigos" o codebook, quedan entonces delimitadas M regiones o sectores,
llamados regiones de Voronoi, determinados por la siguiente expresin:
20
)}
En la figura se observa un diagrama de Voronoi con sus correspondientes
sectores, conformando un codebook con sus correspondientes codewords como
centroides.
Fig 12. Diagrama de Voronoi
La forma en la cual un grupo de N vectores de observacin de entrenamiento
pueden ser clasificados en un grupo de M vectores del codebook es mediante el
algoritmo K-Means.
4.2.1.7 Algoritmo K-Means
1. INICIALIZACIN: Arbitrariamente elegimos M vectores o palabras de cdigo,
codewords, como el grupo inicial del codebook.
2. BSQUEDA DEL MS CERCANO: Por cada vector de observacin, se busca
el codeword en el codebook que es el ms cercano (en trminos de distancia), y
asigna a ese vector a la celda correspondiente.
21
3. ACTUALIZACIN DEL CENTROIDE: actualiza el codeword en cada celda o
sector usando el centroide de los vectores de entrenamiento asignados a un
sector.
4. ITERACIN: Repite los pasos 2 y 3 hasta que la distancia media caiga debajo
de un umbral prefijado. La forma de cada sector o celda o particin es muy
dependiente de la medida de distorsin espectral y las estadsticas de los vectores
en el grupo de entrenamiento. Este mtodo es el ms simple y por tanto existen
numerosas modificaciones y mejoras, algunos de sus puntos dbiles son:
1. Los resultados dependen en forma muy acentuada de los valores
iniciales elegidos como palabras de cdigo.
2. Tambin hay gran dependencia del nmero de sectores M as como de la
implementacin de la "distancia" usada.
3. Puede suceder que algunos de los sectores resulten vacos.
4.2.1.8 Algoritmo LBG
Se analizar con algn detalle debido a su buen desempeo, para eso
comenzaremos por el algoritmo fundamental LBG. El algoritmo LBG, lleva su
nombre debido a sus autores Y. Linde, A. Buzo y R. M. Gray, en l se elige 1
codeword inicial de entre los vectores de datos a clasificar, luego se utiliza el
algoritmo de divisin binaria para duplicar el nmero de codewords, los vectores
de observacin se agrupan en torno a los codewords que les presentan menor
distancia, se recalculan los codewords como la media multidimensional de cada
sector y se agrupan nuevamente los datos, el proceso se detiene cuando el
codebook no presenta variacin significativa y al llegar al nmero de codewords
deseados.
Este algoritmo de gran popularidad (que utiliza el algoritmo k-Means) produce
codebooks que logran un mnimo local en la funcin de error por distorsin.
Para generar un codebook de M sectores o palabras de cdigo:
En primer lugar designando un codeword inicial para luego utilizando una tcnica
de divisin llegar a obtener un codebook inicial, luego iterando la misma tcnica de
22
divisin en los codewords hasta que llegamos a obtener el nmero de codewords
igual a M que va a ser el tamao del codebook deseado.
El procesamiento se denomina divisin binaria:
1. Designar 1 vector del codebook o codeword inicial, ste resulta ser el
centroide del grupo de los vectores de entrenamiento.
2. Calcular la media del grupo de entrenamiento:
2.1. Calcular el error o distancia media entre el codeword inicial y los
vectores de entrenamiento:
3. Duplicar el tamao del codebook mediante la divisin de cada codework.
( )
( )
4. Usar el algoritmo K-Means para tomar el mejor grupo de centroides para la
separacin del codebook.
5. Iterar pasos 3 y 4 hasta llegar a un codebook de tamao M.
Una de las causas que motivo el uso de un VQ fue la suposicin que, en el limite,
el codebook debera idealmente tener 36 vectores, uno por cada fonema,
suposicin que es incorrecta.
En el esquema de la figura se representa el algoritmo que sintetiza el proceso de
generacin del codebook mediante el mtodo LBG.
23
Fig 13. Algoritmo de generacin del codebook por divisin binaria
4.2.1.9 Cuantificador y Codebook
Una vez construido el codebook, el procedimiento para cuantificar vectores es
bsicamente realizar una bsqueda completa a travs del codebook para
encontrar el mejor representante. Si anotamos los vectores del codebook, de
tamao M, como Cw, 1 w M, y tomamos al vector de observacin a ser
cuantificado como V, luego el vector representante o codeword, Vm*, es:
( )
Un procedimiento de cuantificacin para seal de voz elige el vector ms cercano
del codebook al vector de observacin y utiliza ese vector denominado codeword,
24
como la representacin resultante para etapas posteriores. Se refiere como al
vector "vecino" ms cercan
o, toma como entrada, vectores de seal de voz y da como respuesta, a su salida,
el vector que mejor representa esa entrada.
5. Metodologa
El programa utilizado para el desarrollo de la aplicacin del sistema biomtrico
de reconocimiento de voz, ser MATLAB.
En esta herramienta de desarrollo se crearan funciones, de tal modo que se
pueda separar el esquema de trabajo en bloques.
Creacin de funciones
La creacin de funciones en MATLAB, se dar de la siguiente forma:
1.- Funcin Eliminacin del ruido
Se calculara el promedio de la potencia en toda la trama de la voz, luego se
segmentara la voz en tramas de 10ms, de las cuales se sacara su potencia y
25
comparara con la potencia promedio de toda la trama, si esta es menor
entonces se eliminara la trama.
2.- Funcin Pre-enfsis
Se realiza para hacer el procesamiento de la seal menso susceptible a
truncamientos, aplanarla espectralmente y para compensar la cada de 6dB
que experimenta la seal al pasar por el tracto vocal.
3.- Funcin Segmentacin y enventanado
Se divide la seal en segmentos de 30 ms con solapamiento de 10 ms y se
aplica una ventana de hamming a cada segmento, con la finalidad de aplanar
la seal por los costados.
4.- Funcion FFT Spectrum
Se aplica la FFT a cada segmento de la seal y, se saca su valor absoluto,
quedando solo la parte real de la FFT de cada segmento.
5.- Funcin Creacin de filtros y aplicacin
Se crean los filtros en escala de Mel y se aplica con cada segmento, esto para
tener una mejor formacin de los formantes.
6.- Funcin Log y DCT
Se aplica una funcin Logaritmo a la respuesta salida en escala de Mel. Para
luego aplicar la Transformada discreta de coseno, con lo cual se obtendr los
MFCC (Coeficientes Cepstrum en Escala de Mel)
7.- Funcin Cuantificacin Vectorial
La cuantificacin vectorial se da con el algoritmo LBG, para la creacin de los
codewords y codebooks.
8.- Funcin Distancia
26
Luego de tener un banco de codebooks, con la nueva seal de entrada se saca
su codebook, y se calcula la distancia euclidiana minima con los codebooks
existentes de las seales de referencia, y se toma una decisin del tipo menor
igual a un numero, si se cumple, pertenecer al codebook mas cercano, sino,
se dice que la seal no pertenece a los codebooks existentes creados en la
fase de entrenamiento.
6. Cronograma
6.1 Creacion de algoritmo de parametrizacion
Inicio: Lunes 20 de Agosto
Fin: 1 de Octubre
6.2 Creacion de algoritmo de clasificacin
Inicio: 4 de Octubre
Fin: 1 de Noviembre
6.3 Pruebas y conclusiones
Inicio: 5 de Noviembre
Fin: 19 de Noviembre
7. Investigadores
Alanoca Miranda, Juan Eduardo