sistema reconocimiento de voz

34
UNIVERSIDAD PRIVADA DE TACNA PROYECTO: Diseño de un sistema biométrico de reconocimiento de voz usando la herramienta MATLAB CURSO: Proyectos Electrónicos CICLO: X Ciclo ESCUELA: EPIE 1

Upload: juan-alanoca-miranda

Post on 04-Aug-2015

573 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sistema Reconocimiento de Voz

UNIVERSIDAD PRIVADA DE TACNA

PROYECTO: Diseño de un sistema biométrico de reconocimiento

de voz usando la herramienta MATLAB

CURSO: Proyectos Electrónicos

CICLO: X Ciclo

ESCUELA: EPIE

TACNA-PERU

2012

1. Planteamiento del problema.

1

Page 2: Sistema Reconocimiento de Voz

En la actualidad, los sistemas de seguridad están siendo actualizados para utilizar

ya no identificación mediante “claves escritas”, sino tienden a usar una

característica de la persona, tal como la voz, su huella digital, parámetros de la

retina.

El propósito de este proyecto es poder diseñar e implementar un sistema

biométrico de reconocimiento de voz usando MATLAB.

2. Justificación de la investigación

Los sistemas biométricos, requieren un estudio delicado para tener una gran

eficacia, existen varios algoritmos de para este tipo de sistemas, el propósito de

este proyecto, tanto tecnológico como educativo, es el análisis de estos

algoritmos, y su implementación aplicando conceptos de PDS para el

reconocimiento de voz.

3. Objetivos

3.1Objetivo general

Diseñar un sistema biométrico de reconocimiento de voz usando la

herramienta MATLAB el cual permitirá la comunicación usuario -

computadora

3.2Objetivos específicos

1. Explorar algoritmos de procesamiento digital de voz, para la

extracción de los parámetros de la voz.

2. Lograr una interacción usuario – computadora.

4. Marco teórico

2

Page 3: Sistema Reconocimiento de Voz

Fig. 1 Aparato Fonador Humano

4.1 Reconocimiento de voz

4.1.1 La señal de la voz

En el proceso de generación de la voz, el

sonido inicial proviene de la vibración de

las cuerdas vocales conocida como

vibración glotal, es decir, el efecto sonoro

se genera por la rápida apertura y cierre

de las cuerdas vocales conjuntamente

con el flujo de aire emitido desde los

pulmones. Las cuerdas vocales son dos

membranas ubicadas dentro de la laringe,

la abertura entre ambas cuerdas se

denomina glotis. Cuando la glotis comienza a cerrarse, el aire proveniente desde

los pulmones experimenta una turbulencia, emitiéndose un ruido de origen

aerodinámico.

Luego de atravesar la glotis el sonido pasa a través de la cavidad supraglótica,

que es la porción del aparato fonador que permite modificar el sonido dentro de

márgenes muy amplios. Está conformado principalmente por tres cavidades, la

cavidad oral, la cavidad labial y la cavidad nasal, correspondientes a la garganta,

los labios y la nariz respectivamente. Estas cavidades constituyen resonadores

acústicos, los cuales modifican los sonidos de acuerdo a la forma que adopten, la

lengua y los labios permiten efectuar esta variación de manera voluntaria.

4.1.1.1 Frecuencias formantes

Las cavidades que conforman la cavidad supraglótica actúan como

resonadores acústicos. Si se realiza un análisis espectral del sonido luego

de haber atravesado estas cavidades, el efecto de la resonancia produciría

un énfasis en determinadas frecuencias del espectro obtenido, a las que se

les denominara 'formantes'. Existen tantas formantes como resonadores

posee el tracto vocal. Sin embargo se considera que sólo las tres primeras,

3

Page 4: Sistema Reconocimiento de Voz

asociadas a la cavidad oral, bucal y nasal respectivamente y proporcionan

la suficiente cantidad de información para poder diferenciar los distintos

tipos de sonido. En la figura se muestra el espectro de la palabra 'uno', y se

denominan F1, F2 y F3 a sus tres principales frecuencias formantes. La

amplificación de cada una de estas tres frecuencias depende del tamaño y

forma que adopta la cavidad bucal y la cavidad oral, y si el aire pasa o no

por la nariz.

Fig. 2 Frecuencias Formantes

Formantes Vocálicos

Vocal Región principal formantica

/u/ 200 a 400 Hz

/o/ 400 a 600 Hz

/a/ 800 a 1200 Hz

/e/ 400 a 600 y 2200 a 2600 Hz

/i/ 200 a 400 y 3000 a 3500 Hz

Tabla 1 Formantes vocalicos

4

Page 5: Sistema Reconocimiento de Voz

4.1.1.2 Tipos de señales de voz

4.1.1.2.1 Señal Sonora

La señal sonora se genera por la vibración de las cuerdas vocales

manteniendo la glotis abierta, lo que permite que el aire fluya a través de

élla. Estas señales se caracterizan por tener alta Energía y un contenido

frecuencial en el rango de los 300 Hz a 4000 Hz presentando cierta

periodicidad, es decir son de naturaleza cuasiperiódica. El tracto vocal

actúa como una cavidad resonante reforzando la energía en torno a

determinadas frecuencias (formantes). En la figura siguiente se muestra el

comportamiento de este tipo de señales en el tiempo. Toda las vocales se

caracterizan por ser sonoras pero existen consonantes que también lo son,

tales como, la 'b', 'd' y la 'm', entre otras.

Fig. 3 Señal Sonora

4.1.1.2.2 Señal no sonora

A esta señal también se le conoce como señal fricativa o sorda, y se

caracteriza por tener un comportamiento aleatorio en forma de ruido blanco.

Tienen una alta densidad de Cruces por Cero y baja Energía comparadas

con las señales de tipo sonora. Durante su producción no se genera

vibración de las cuerdas vocales, ya que, el aire atraviesa un

5

Page 6: Sistema Reconocimiento de Voz

estrechamiento, y genera una turbulencia. Las consonantes que producen

este tipo sonidos son la 's', la 'f' y la 'z' entre otras. La figura siguiente

muestra la forma de onda de una señal no sonora.

Fig 4. Señal no sonora

4.1.1.2.3 Señal plosiva

Esta señal se genera cuando el tracto vocal se cierra en algún punto, lo que

causa que el aire se acumule para después salir expulsado repentinamente

(explosión). Se caracterizan por que la expulsión de aire está precedida de

un silencio. Estos sonidos se generan por ejemplo, cuando se pronuncia la

palabra 'campo'. La p es una consonante de carácter plosivo, y existe un

silencio entre las sílabas 'cam' y 'po'. Otras consonantes que presentan esta

característica son 't', y 'k', entre otras. La figura siguiente muestra el

comportamiento de este tipo de señal.

6

Page 7: Sistema Reconocimiento de Voz

Fig 5. Señal plosiva

4.1.1.2.4 Modelo del Tracto

Fig 6. Modelo de producción de voz

El conducto vocal se representa por un sistema lineal (en general

inestacionario) que es excitado a través de una llave que selecciona entre

una fuente de impulsos cuasi periódicos para el caso de sonidos

tonales, o una fuente de ruido aleatorio para el caso de sonidos no

tonales. La ganancia apropiada de la fuente, G, es estimada a partir

de la señal de voz, y la señal escalada es usada como entrada del

modelo del conducto vocal.

7

Page 8: Sistema Reconocimiento de Voz

Modelo de radiación: describe la impedancia de radiación vista por la

presión de aire cuando abandona los labios, que puede ser

razonablemente aproximada por una ecuación en diferencias de primer

orden, o equivalentemente por una función de transferencia de la forma

R ( z )=(1−z−1)

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 función transferencia Z de la

forma

G ( z )=−aeln(a)z−1

(1−a z−1)2

Donde e es la base de los logaritmos neperianos. El numerador se

selecciona de manera que g (n )=Z−1 {G ( z )} tenga un valor máximo

aproximadamente igual a 1.

4.1.2 Sistema de reconocimiento de voz

4.1.2.1 Pre procesamiento

Consta de 3 partes, la eliminación del ruido, el pre-enfasis, y la

segmentación.

4.1.2.1.1 Eliminacion del ruido

Es una técnica utilizada para señalar donde se da el inicio de la

señal, y donde se termina. Se calcula la energía promedio de la

señal, y cada 10 ms de trama de voz se hace una comparación, si

esta trama tiene menos del porcentaje señalado, es eliminada.

4.1.2.1.2 Pré-Enfasis

Sirve para enfatizar las frecuencias altas de los formantes, y para

remover la componente de DC de la señal. El filtro que se utilizara

será el siguiente:

8

Page 9: Sistema Reconocimiento de Voz

H ( z )=1−az−1

Donde a=0.95

6.1.2.1.3 Segmentación

Para trabajar con la señal de voz, tenemos que decir que es

estacionaria, y para eso se aplica la segmentación, donde se toman

ciertos periodos de tiempo de la señal y esta se asume que es

estacionaria.

Esta segmentación 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 razón de tener una señal con los

lobulos secundarios pequeños y un lóbulo principal estrecho, a simple vista

parece que se perderá la información correspondiente a los lóbulos

secundarios, pero esto no es asi debido al solapamiento entre segmentos.

W [n ]=0.54−0.46cos{2 π (n)N }

4.1.2.3 Análisis Mel-Cepstral (Mel Spectrum)

Retomando los conceptos de la voz, esta es la convolución de la señal de

excitación y un filtro lineal.

S (t )=H (t)∗E(t )

Con H(t) la respuesta al impulso del filtro lineal

En el dominio de la frecuencia:

S ( f )=H ( f ) . E( f )

Dado la señal 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

características espectrales.

9

Page 10: Sistema Reconocimiento de Voz

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 diseño de estos filtros se toma una LoFreq y HiFreq (o f l y fh

respectivamente).

Los puntos superiores de cada función espectral f(m) se encuentran

uniformemente espaciados en la escala de Mel en función de “m” y se

determinan mediante:

Donde:

β (f )=1125 ln(1+ f700 )

Al final la inversa estaría dado por:

10

f (m)=β−1 (β ( f l )+mβ ( f l )−β ( f h )M +1 )

donde :f l=frecuencia más baja exp resada en Hzf h=frecuencia más alta exp resada en Hzm=número de coeficiente a calcularM=total de coeficientes de Mel

Page 11: Sistema Reconocimiento de Voz

β−1[ b ]=700(exp ( b1125 )−1)

Entonces, la construcción de los filtros viene dado por:

para 1≤k≤f s /2y 1≤m≤M

Este procedimiento funciona si los filtros son equiespaciados.

Para filtros no uniformemente espaciados y con una amplitud normalizada

de 1, la solución esta dada por:

11

Hm[ k ]={

0 , . .. .. . .. .. . .. .. para, k< f [m−1 ]k−f (m−1 )

f (m)−f (m−1),. . .. para , f (m−1 )≤k≤f (m)

f (m+1 )−kf (m+1)−f (m)

,. . .. para , f (m)≤k≤f (m+1)

0 , .. .. . .. .. . .. .. . para , k>f (m+1 )}

para 1≤k≤f s /2y 1≤m≤M

Page 12: Sistema Reconocimiento de Voz

Entonces, luego de diseñar los filtros, estos se tienen que multiplicar con la

señal luego de aplicarle la FTT.

Fig 8. Aplicación 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 transformación basada en la

Transformada discreta de Fourier, pero utilizando solamente números

reales.

Expresa una secuencia de muchos puntos de datos en términos de una

suma de funciones coseno oscilando a diferentes frecuencias. Sus

aplicaciones son importantes sobre todo en aquellas en donde

12

Page 13: Sistema Reconocimiento de Voz

componentes pequeñas de alta frecuencia se pueden descartar. El uso de

la función coseno en lugar de la función seno ha demostrado ser más útil (p.

e. la compresión de información), existen 8 variantes de la transformada

coseno discreta, de las cuales sólo 4 son las más utilizadas o comunes.

Fig 9. Proceso de obtención de coeficientes Mel-Cepstrum

13

Coeficientes de Mel-

CepstrumDCTLog

Banco de

Filtros Mel

FFTVentana

HammingPre-

procesoVoz

X k=∑n=0

N−1

xncos [ πN (n+ 1

2 )k ] , k=0 , .. . .. . ,N−1

Page 14: Sistema Reconocimiento de Voz

Fig 10. Proceso de obtencion de coeficientes Mel-Cepstrum con su

correspondiente proceso matemático

14

Page 15: Sistema Reconocimiento de Voz

4.2 Sistema biométrico

4.2.1. Cuantificacion de vectores

Una parte importante en cualquier tipo de procesamiento de voz es la optimización

de los algoritmos en cuanto a velocidad y almacenamiento, entonces, la

cuantificación de vectores trae consigo la idea de clasificar un conjunto de

vectores, luego de lo cual se buscarán los mejores representantes para reducir el

tamaño de la información 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 parámetro

es llamado error por distorsión. La finalidad de un cuantificador es obtener un

conjunto de vectores representativos llamado codebook, que presente el menor

error por distorsión, por ejemplo para cuantificar los vectores de observación.

4.2.1.1 Distancia Euclidiana

La distancia euclidiana s la distancia "ordinaria" (que se mediría con una regla de

acero) entre dos puntos de un espacio euclídeo, la cual se deduce a partir del

teorema de Pitágoras. Por ejemplo, en un espacio bidimensional, la distancia

euclidiana entre dos puntos P1 y P2, de coordenadas (x1, y1) y (x2, y2)

respectivamente, es:

d ( P1 ,P2 )=√P12+P2

2 conP1=( x1 , y1 ) ; P2=( x2 , y2)

Entonces para un espacio multidimensional de orden “n” esta dado por:

d ( P1 ,P2 )=√∑1

n

(x i− y i)2con P1= ( x1 , x2… xn ) ;P2=( y1 , y2… yn)

4.2.1.2 Distancia no Euclidiana

Es la que está determinada solo por 4 reglas:

d ( P1 ,P2 ) ≥0d ( P1 ,P2 )=d (P2 , P1 )d ( P1 ,P1 )=0

d ( P1 ,P2 ) ≤ d ( P1 , Px )+d (P¿¿ x , P2)¿

La última expresión 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.

15

Page 16: Sistema Reconocimiento de Voz

4.2.1.3 Proceso de Cuantificación de vectores

Las técnicas de parametrización de la señal de voz se realizan tomando una

secuencia de ventanas temporales, cada una de las cuales se representa por un

número de D parámetros. Entonces la información de cada ventana se

representaría por un vector de observación de D posiciones.

Cuando se almacenan estos parámetros lo que generalmente se hace es

cuantificar cada parámetro con un determinado número de bits, este proceso se

denomina cuantificación escalar y no es la manera más eficiente para almacenar

la información, además, implica la ocurrencia uniforme de las ventanas de

información. Una forma más conveniente es realizar una cuantificación vectorial.

Si comparamos la información del vector representante con respecto a la forma de

onda original de la señal de voz, concluimos que el análisis espectral contiene

significativamente menos información.

Por ejemplo, una señal de voz se muestrea a 10Khz y la cuantificaciόn es de 16

bits, se necesita una velocidad de 160000 bps para almacenar las muestras de la

señal de voz en el formato original. Si realizamos el análisis en el espectro,

consideremos vectores de dimensión n=10 usando 100 vectores de observación

por segundo. Si representamos cada parámetro en 16 bits, se requiere

aproximadamente 100x10x16 bps o 16000 bps con una reducción de diez veces

sobre la señal original.

Las compresiones en ancho de banda y almacenamiento son imprevisibles, se

basan en el concepto de la necesidad de la representación única para cada

fonema (sonido diferenciable de una lengua, generalmente representado por una

letra), esto puede ser posible para reducir la representación espectral original de la

señal de voz sacando a los vectores de observación desde un pequeño, finito

número de vectores espectrales "únicos", donde cada uno corresponde a las

unidades básicas de la voz o "fonemas".

La representación 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 análisis,

"distintos" y "únicos", aunque con mas palabras de código que el grupo o set

16

Page 17: Sistema Reconocimiento de Voz

básico de fonemas, sigue siendo una idea atractiva y es el fundamento de un

conjunto de técnicas denominadas métodos de cuantificación de vectores.

Basándose en este razonamiento, se necesita un codebook con aprox. 1024

vectores espectrales únicos ( 25 variantes para cada uno de los 36 fonemas

básicos ).

Si para representar un vector espectral arbitrario tenemos un número de 10 bits,

tomando una velocidad de 100 vectores por segundo, obtenemos una velocidad

de 1000 bps para representar los vectores espectrales de una señal de voz.

Esta velocidad es aprox. 1/16 de la velocidad necesaria para vectores espectrales

continuos.

Por lo tanto la representación cuantificada es eficiente para representar

información espectral de la señal de voz.

Principales ventajas

1. Reduce el almacenamiento de la información de análisis.

2. Se reduce el cálculo para determinar distancias entre vectores espectrales. La

representación del VQ se limita a una tabla que contiene las distancias entre pares

de vectores del codebook.

3. Representación discreta de las señales de voz. Asociando una característica

fonética con cada vector del codebook, el proceso de elección del vector que

mejor lo representa es equivalente a asignar una característica fonética a cada

segmento de voz.

Principales desventajas

1. Distorsión en la representación del vector. Hay un número finito de vectores en

el codebook, el proceso de "elección" del mejor representante es equivalente a

cuantificar el vector y conduce a un cierto nivel de error de cuantificación. De

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 pequeña.

Cuanto más grande sea el codebook menor es el error. Para un codebook de

17

Page 18: Sistema Reconocimiento de Voz

1000 o más entradas, el almacenamiento no es irrelevante. Hay que realizar un

balance entre error de cuantificación, procesamiento y almacenamiento del

codebook.

4.2.1.4 Componentes

Fig 11. Proceso de obtención de Codebook

1. Un gran número de vectores de observación, 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 tamaño del codebook

como M = 2ª, siendo a el número de bits necesarios para codificar M palabras de

código, por lo tanto se necesitan n>>M vectores para que sea eficaz.

2. Una medición de distancia entre cada par de vectores espectrales de

observación para agrupar el conjunto de vectores de entrenamiento como así

también para asociar o clasificar vectores arbitrarios a cada entrada del codebook.

3. Un procedimiento de clasificación 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 número M, codewords del codebook, para luego

proceder a la clasificación.

4. Finalmente, luego del proceso de clasificación (entrenamiento) queda como

resultado del mismo un libro de códigos o codebook.

Grupo de entrenamiento del VQ para reconocimiento de voz

Para entrenar apropiadamente el codebook y mejorar la implementación, para el

grupo de vectores de entrenamiento, se deberá tener en cuenta:

18

Page 19: Sistema Reconocimiento de Voz

1. Para las señales de voz: Rangos de edad, acentuación, género, velocidad de

discurso, niveles y otras variables.

2. Condiciones de discurso: Ambiente ruidoso o silencioso, movilidad de la

persona.

3. Transductores y sistemas de transmisión: Ancho de banda del micrófono, canal

telefónico, ancho de banda del canal y otros dispositivos.

4. Reconocimiento discreto o de palabras aisladas y reconocimiento continuo.

4.2.1.5 Clasificación de Vectores

El objetivo de un módulo clasificador es agrupar una cantidad de vectores

característicos, N, en una cantidad M (M<N), discreta, de sectores o celdas de

clasificación logrando que las características en cada sector sean similares.

Existen muchos criterios para lograr dicho objetivo y a continuación veremos

algunos de los más comunes. Imaginemos que la media multidimensional de un

determinado sector i, es µi (con 1<i<M), y a continuación ingresa al clasificador un

vector de observación o, se puede clasificar dicho vector calculando la "distancia"

a la que se halla de cada una de las M medias y asignándolo al sector más

"cercano".

Este método de clasificación 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 inicialización de los valores de µi, y su

reestimación a medida que progresa el algoritmo.

4.2.1.6 Algoritmos de Clasificación

Podemos decir, en general, que los N vectores originales de tamaño D quedarán

representados por M vectores, cada uno de los cuales es llamado "palabra de

código" o codeword (Cw), el grupo entero de dichos vectores, forma un "libro de

códigos" o codebook, quedan entonces delimitadas M regiones o sectores,

llamados regiones de Voronoi, determinados por la siguiente expresión:

V i=¿

19

Page 20: Sistema Reconocimiento de Voz

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 observación 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. INICIALIZACIÓN: Arbitrariamente elegimos M vectores o palabras de código,

codewords, como el grupo inicial del codebook.

2. BÚSQUEDA DEL MÁS CERCANO: Por cada vector de observación, se busca

el codeword en el codebook que es el más cercano (en términos de distancia), y

asigna a ese vector a la celda correspondiente.

3. ACTUALIZACIÓN DEL CENTROIDE: actualiza el codeword en cada celda o

sector usando el centroide de los vectores de entrenamiento asignados a un

sector.

20

Page 21: Sistema Reconocimiento de Voz

4. ITERACIÓN: 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 partición es muy

dependiente de la medida de distorsión espectral y las estadísticas de los vectores

en el grupo de entrenamiento. Este método es el más simple y por tanto existen

numerosas modificaciones y mejoras, algunos de sus puntos débiles son:

1. Los resultados dependen en forma muy acentuada de los valores

iniciales elegidos como palabras de código.

2. También hay gran dependencia del número de sectores M así como de la

implementación de la "distancia" usada.

3. Puede suceder que algunos de los sectores resulten vacíos.

4.2.1.8 Algoritmo LBG

Se analizará con algún detalle debido a su buen desempeño, 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 división binaria para duplicar el número de codewords, los vectores

de observación 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 variación significativa y al llegar al número de codewords

deseados.

Este algoritmo de gran popularidad (que utiliza el algoritmo k-Means) produce

codebooks que logran un mínimo local en la función de error por distorsión.

Para generar un codebook de M sectores o palabras de código:

En primer lugar designando un codeword inicial para luego utilizando una técnica

de división llegar a obtener un codebook inicial, luego iterando la misma técnica de

división en los codewords hasta que llegamos a obtener el número de codewords

igual a M que va a ser el tamaño del codebook deseado.

21

Page 22: Sistema Reconocimiento de Voz

El procesamiento se denomina división 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:

Cwi=1N∑n=1

N

xn

2.1. Calcular el error o distancia media entre el codeword inicial y los

vectores de entrenamiento:

D= 1N∑n=1

N

¿∨xn−Cwi∨¿2

3. Duplicar el tamaño del codebook mediante la división de cada codework.

Cwi+¿=Cw i(1+ϵ )¿

Cwi−¿=Cwi(1+ϵ )¿Donde0<ϵ ≪1

4. Usar el algoritmo K-Means para tomar el mejor grupo de centroides para la

separación del codebook.

5. Iterar pasos 3 y 4 hasta llegar a un codebook de tamaño M.

Una de las causas que motivo el uso de un VQ fue la suposición que, en el limite,

el codebook debería idealmente tener 36 vectores, uno por cada fonema,

suposición que es incorrecta.

En el esquema de la figura se representa el algoritmo que sintetiza el proceso de

generación del codebook mediante el método LBG.

22

Page 23: Sistema Reconocimiento de Voz

Fig 13. Algoritmo de generación del codebook por división binaria

4.2.1.9 Cuantificador y Codebook

Una vez construido el codebook, el procedimiento para cuantificar vectores es

básicamente realizar una búsqueda completa a través del codebook para

encontrar el mejor representante. Si anotamos los vectores del codebook, de

tamaño M, como Cw, 1≤ w ≤ M, y tomamos al vector de observación a ser

cuantificado como V, luego el vector representante o codeword, Vm*, es:

Vm¿=argmind (V ,Cw )

1≤ w ≤ M

Un procedimiento de cuantificación para señal de voz elige el vector más cercano

del codebook al vector de observación y utiliza ese vector denominado codeword,

23

Page 24: Sistema Reconocimiento de Voz

como la representación resultante para etapas posteriores. Se refiere como al

vector "vecino" más cercan

o, toma como entrada, vectores de señal de voz y da como respuesta, a su salida,

el vector que mejor representa esa entrada.

5. Metodología

El programa utilizado para el desarrollo de la aplicación del sistema biométrico

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.

Creación de funciones

La creación de funciones en MATLAB, se dará de la siguiente forma:

1.- Función “Eliminación 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

24

Page 25: Sistema Reconocimiento de Voz

comparara con la potencia promedio de toda la trama, si esta es menor

entonces se eliminara la trama.

2.- Función “Pre-enfásis”

Se realiza para hacer el procesamiento de la señal menso susceptible a

truncamientos, aplanarla espectralmente y para compensar la caída de 6dB

que experimenta la señal al pasar por el tracto vocal.

3.- Función “Segmentación y enventanado”

Se divide la señal 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 señal por los costados.

4.- Funcion “FFT Spectrum”

Se aplica la FFT a cada segmento de la señal y, se saca su valor absoluto,

quedando solo la parte real de la FFT de cada segmento.

5.- Función “Creación de filtros y aplicación”

Se crean los filtros en escala de Mel y se aplica con cada segmento, esto para

tener una mejor formación de los formantes.

6.- Función “Log y DCT”

Se aplica una función 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.- Función “Cuantificación Vectorial”

La cuantificación vectorial se da con el algoritmo LBG, para la creación de los

codewords y codebooks.

8.- Función “Distancia”

25

Page 26: Sistema Reconocimiento de Voz

Luego de tener un banco de codebooks, con la nueva señal de entrada se saca

su codebook, y se calcula la “distancia euclidiana” minima con los codebooks

existentes de las señales de referencia, y se toma una decisión del tipo “menor

igual” a un numero, si se cumple, pertenecerá al codebook mas cercano, sino,

se dice que la señal 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 clasificación

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

26