SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS...

57
1 SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS INSPIRADO EN LA CÓCLEA GLORIA CAROLINA FERNÁNDEZ OTÁLORA UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA BOGOTA D.C. 2003

Transcript of SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS...

Page 1: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

1

SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS INSPIRADO EN LA CÓCLEA

GLORIA CAROLINA FERNÁNDEZ OTÁLORA

UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA BOGOTA D.C.

2003

Page 2: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

2

SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS INSPIRADO EN LA CÓCLEA

GLORIA CAROLINA FERNÁNDEZ OTÁLORA

Proyecto de Grado presentado como requisito para optar al titulo de Ingeniero Electrónico.

Asesor ALFREDO RESTREPO PALACIOS

UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA BOGOTA D.C.

2003

Page 3: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

3

AGRADECIMIENTOS

Quiero agradecer a:

René Meziat, profesor del Departamento de Matemáticas, por su colaboración para poder

dar inicio a este proyecto.

Alfredo Restrepo, asesor de este proyecto y profesor del Departamento de Ingeniería

Eléctrica y Electrónica por su continuo compromiso y dedicación hacia el proyecto.

Al grupo de Laboratorio de Señales por brindarme los medios y posibilidades para avanzar

cada semana en la consolidación de este trabajo.

Page 4: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,
Page 5: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

5

TABLA DE CONTENIDO

Pág.

INTRODUCCION………………………………………………….. 7

1. LA CÓCLEA…………………………………………………….. 8

2. MODELO…………………………………………………………13

3. SELECCIÓN DE LA DENSIDAD Y LA TENSIÓN………..... 17

4. RESPUESTA A SONIDOS VOCÁLICOS……………………. 22

APENDICE: Códigos en Matlab.………………………………….. 34

CONCLUSIONES Y TRABAJOS FUTUROS…………………… 54

REFERENCIAS…………………………………………….……… 57

Page 6: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

6

LISTA DE FIGURAS

Pág.

Figura 1. Corte transversal de la cóclea…………………………………………..9

Figura 2. Esquema del oído humano…………………………………………….. 10

Figura 3. Vibraciones en la membrana basilar……………………………………11

Figura 4. Tonos a través de la cóclea……………………………………………. 11

Figura 5. Región de solución…………………………………………………….. 14

Figura 6. Ejemplos de señales de voz, vocales A y U…………………………… 16

Figura 7. Ejemplos de respuestas a sinusoides con xexxT .)( = , 1)( =xρ ……18

Figura 8. Ejemplos de respuestas a sinusoides con 10028.28)( +−= xxT , xx =)(ρ ..19

Figura 9. Ejemplos de respuesta a sinusoides con variación de amplitud………...21

Figura 10. Ejemplos de respuesta a sonidos vocálicos: Vocal A mujer 2……….. 22

Figura 11 Ejemplos de respuesta a sonidos vocálicos: Vocal E hombre 1……… 23

Figura 12 Partición en hexágonos de la región de solución…………………….. 24

Figura 13 Respuesta a sinusoides, escala de grises…………………………….. 25

Figura 14 Respuesta a sonidos vocálicos, escala de grises, membrana sostenida 26

Figura 15 Respuesta a sonidos vocálicos, escala de grises, membrana suelta…. 29

Figura 16 Respuesta a sonidos vocálicos, escala de grises, promedio…………. 32

Page 7: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

7

INTRODUCCION

El oído humano es el encargado de realizar los procesos de recepción y transducción del

sonido. Antes de ser percibido el sonido con el cerebro, dentro de la cóclea ocurren

fenómenos físicos, químicos y eléctricos que contribuyen al proceso de reconocimiento.

Las técnicas más conocidas para el reconocimiento de voz en ingeniería son técnicas

lineales basadas en la transformada de Fourier. El propósito de este trabajo es explorar la

posibilidad de hacer reconocimiento de fonemas mediante un método no lineal inspirado en

el oído humano, específicamente en la cóclea, que permita caracterizar sonidos,

específicamente sonidos vocálicos (a, e, i, o, u), es decir, no se pretende modelar la cóclea

sino diseñar un sistema inspirado en ella.

Cuando el oído recibe un estímulo sonoro el estribo excita la cóclea a través de la ventana

oval, la cóclea responde y es capaz de hacerlo de una manera diferente según sea la

excitación, manteniendo un patrón de respuesta relacionado con la frecuencia de la señal.

Este comportamiento es el que finalmente se quiere lograr al pretender hacer

reconocimiento de voz: desarrollar un sistema que se comporte diferente, según la señal

con la cual sea excitado y que sea sensible al contenido frecuencial de la misma (en el

sentido de Fourier).

Page 8: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

8

1. LA CÓCLEA

La cóclea es un órgano del oído interno con forma de tubo arrollado en espiral

aproximadamente tiene entre 30 y 35 mm de longitud y un diámetro que varia entre 1 y

2mm, constituido por un laberinto óseo tapizado de estructuras celulares que forman un

laberinto membranoso.

La cóclea está llena de líquido (perilinfa y endolinfa) y rodeada por paredes óseas rígidas,

en su interior existen dos membranas: membrana de Reissner y membrana basilar que

dividen la cóclea en 3 compartimientos principales: escala vestibular, escala media y escala

timpánica.

Las escalas timpánicas y vestibular -rellenas de perilinfa- se comunican en el vértice de la

cóclea por un orificio, el helicotrema. En la base de la cóclea la escala timpánica termina en

la ventana redonda que se encuentra cerrada por una membrana; su función es impedir que

la onda rebote, equilibrando las presiones entre escalas. La escala vestibular, en la base de

la cóclea, se corresponde con la ventana oval que también está recubierta por una

membrana y es por donde penetra la onda de sonido hasta el oído interno.

Page 9: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

9

Figura 1.Corte transversal de la cóclea

La membrana de Reissner es extraordinariamente delgada. Apoyado en la membrana

basilar se encuentra el complejo y delicado órgano de Corti, que contiene varias filas de

diminutas células vellosas a las cuales se conectan las fibras nerviosas. Cada fila de células

vellosas contiene unas 7000 células, haciendo un total de 24.000 células en varias filas.

Cada célula vellosa posee numerosos cilios, que se doblan cuando la membrana basilar

responde a un sonido, desencadenando una señal nerviosa en el nervio auditivo. La

membrana basilar tiene una longitud de aproximadamente 32 mm y un espesor que

aumenta desde 0,04 mm en la base a 0,5 mm en el ápice. Es decir, una relación de

aproximadamente 1 a 10.

.

El eje central de la cóclea, el modiolo, es un tubo óseo dentro del cual corren las fibras del

nervio auditivo. La espiral ósea esta arrollada alrededor del modiolo.

Para comprender cómo vibra la membrana basilar supongamos la cóclea desenrollada, con

forma de cono estrecho divido en dos secciones por la membrana basilar. En primera

Page 10: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

10

aproximación no vamos a considerar el conducto coclear ni la membrana de Reissner por

lo extremadamente finos que son. En el extremo más grande del cilindro se encuentran las

ventanas oval y redonda, cada una de ellas cerrada por una membrana. En el otro extremo

de la membrana basilar hay un pequeño orificio (helicotrema) que comunica las dos

secciones. La membrana basilar acaba a poca distancia del extremo del cono, con lo cual el

fluido puede transmitir ondas de presión de vuelta desde el final de la membrana.

Figura 2. Esquema del oído humano

Los tonos agudos hacen vibrar la membrana basilar en regiones cerca de las ventanas,

donde es más delgada y rígida que cerca del helicotrema (cien veces más rígida), mientras

que los tonos graves hacen vibrar la membrana basilar desde las ventanas hasta cerca del

helicotrema, donde es más flácida y cerca de cinco veces más ancha. Se puede decir

entonces que los tonos graves penetran más en la membrana que los agudos.

Page 11: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

11

Figura 3. Vibraciones en la membrana basilar

En la figura 3, al lado derecho se muestra un lugar aproximado sobre la membrana hasta el

cual alcanza a penetrar un tono de la frecuencia que se indica, no se debe confundir con

una localización específica de excitación según la frecuencia. Por ejemplo, un tono de

500Hz no produce una excitación solamente en el extremo ancho de la membrana, sino que

se excita toda la membrana hasta ese punto, produciendo una respuesta de máxima

amplitud hacia el extremo de la membrana.

Figura 4. Tonos a través de la cóclea

Page 12: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

12

En la figura 4 se muestra el recorrido de dos tonos de diferentes frecuencias, la onda de mas

baja frecuencia viaja más a través de la cóclea que la de alta frecuencia, la amplitud de la

onda de alta frecuencia decae mas rápidamente.

La percepción tradicional es que en la cóclea tiene lugar un análisis espectral inicial,

partiendo la membrana en regiones especificas de respuesta según la frecuencia, y por

ejemplo para frecuencias bajas se omite la excitación que se lleva a cabo hacia el inicio de

la membrana, asumiendo que solo se excitan pequeñas porciones de membrana localizadas

hacia el final. En este trabajo se trata de buscar para frecuencias bajas una respuesta de la

membrana que sea hasta y no en el final de la membrana, y para frecuencias altas tienda

hasta y no en el inicio de la membrana.

La conversión de las vibraciones mecánicas de la membrana basilar en impulsos eléctricos

del nervio auditivo se lleva a cabo en el órgano de Corti. En función de la frecuencia de la

señal, la vibración se encontrará localizada a lo largo de la membrana basilar excitando

unas u otras fibras nerviosas. Así mismo, en función de la amplitud de la vibración, más

fibras nerviosas serán estimuladas1.

1 Para una descripción más adecuada de la anatomía y fisiología de la cóclea y el oído puede remitirse a las referencias

dadas al final de este documento.

Page 13: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

13

2. MODELO

Basándose en que la membrana basilar vibra de acuerdo a la frecuencia de la excitación que

produce el sonido, se modeló la membrana como una “tela” en dos dimensiones, sobre la

cual se propagaría una onda de sonido. Inicialmente se pensó en modelar una cuerda no

homogénea (1 dimensión) que se fuera engrosando, pero dadas las opciones ofrecidas por

Matlab, se logro hacer un modelo en dos dimensiones.

La membrana basilar se simuló en Matlab mediante una “tela” en forma de trapecio con

dimensiones aproximadas a las descritas en el capitulo anterior. Sobre esta “tela” se

solucionó la ecuación diferencial parcial que describe la propagación de una onda en una

membrana no homogénea en 2D, esta ecuación incluye densidad y tensión variantes:

donde ),( yxT es la tensión de la membrana y ),( yxρ es la densidad de masa.

Con condiciones iniciales:

y condiciones de frontera (por el lado izquierdo del trapecio):

⎥⎦

⎤⎢⎣

⎡⎟⎟⎠

⎞⎜⎜⎝

⎛∂

∂∂∂

+⎟⎠⎞

⎜⎝⎛

∂∂

∂∂

=∂

∂y

tzUyxTyx

tzUyxTxyxt

tzU ),(),(),(),(),(

1),(2

2

ρ

0)0('0)0(====

tUtU

)(),0,0( texcitacióntyxU ===

Page 14: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

14

Para las pruebas fueron considerados dos casos de condiciones de frontera. En el primero,

la membrana se encuentra libre, es decir, los tres lados restantes del trapecio no tienen

condición de frontera. En el segundo caso la membrana se encuentra fija, es decir, los tres

lados restantes del trapecio tienen condición de frontera igual a cero.

Para solucionar la ecuación, se utilizó el método de elementos finitos del toolbox de Matlab

para ecuaciones diferenciales parciales, sobre la siguiente región de solución:

Figura 5. Región de solución.

Esta región contiene 640 triángulos y 369 nodos. La triangulación es generada

automáticamente por el algoritmo de matlab y tiene como objetivo partir el espacio en un

número finito de regiones (elementos), el número de triángulos y nodos puede modificarse,

obviamente entre más triángulos hayan, mayor será el tiempo de ejecución del programa y

mas refinada será la solución.

Page 15: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

15

El método de elementos finitos es un algoritmo numérico que permite introducir con mayor

facilidad las condiciones de frontera, factor muy importante y determinante para la

construcción un modelo adecuado para la membrana basilar, ya que la excitación del

sistema se hará estableciéndola como condición de frontera por el lado izquierdo del

trapecio. La solución de la ecuación está contenida en una matriz de tamaño 369 x Nro de

muestras (el número de muestras es aproximadamente 4000 como se explica más adelante)

donde a cada tiempo de solución ti le corresponde un valor de U en cada nodo de la región.

En este modelo se dejaron de tener en cuenta factores como: la forma de excitación real

que se hace por medio del movimiento de los líquidos dentro de la cóclea, el helicotrema, el

espesor de la membrana , el tubo, las ventanas y su forma enrollada .

Las excitaciones para las primeras pruebas fueron sinusoides de diferentes frecuencias,

para las pruebas siguientes se utilizaron señales de voz de cuatro personas diferentes, dos

hombres y dos mujeres representadas en los cinco sonidos vocálicos para cada persona. Las

señales de voz fueron adquiridas mediante el programa GoldWave con un micrófono

común en archivos con extensión .wav, inicialmente a una tasa de muestreo de 44.4 Khz. y

con una duración de 500 ms cada una, considerando que la frecuencia máxima de una señal

de voz es aproximadamente de 20 Khz.

Debido al tiempo de computo de la solución para la excitación con señales de voz (oscilaba

entre veinte y cuarenta minutos), se redujo el tiempo de muestreo a 11.025Khz. y la

Page 16: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

16

duración de la señal a 400 ms con lo que se consiguió un tiempo de computo entre cinco y

quince minutos, por lo cual todas las pruebas con voz se hicieron con señales a esta tasa de

muestreo, posteriormente a cada señal se le eliminó el nivel DC que probablemente se

introdujo debido al micrófono y la tarjeta de sonido del computador haciéndole

transformada de Fourier e igualando el primer coeficiente a cero; además de esto no se le

hizo ninguna modificacion a la señal original. Todas las señales de voz tienen amplitud

entre -1 y 1; lo cual es conveniente ya que al ser leídas, la función wavread (que es la que

está disponible en matlab para leer archivos .wav) trunca los valores de la señal que sean

mayores de 1 o menores de -1.

Como cada señal de voz dura 400 ms, ésta se compone de 4410 muestras (11025x0.4), lo

que significa que en ese intervalo de tiempo se deben calcular 4410 soluciones de la

ecuación diferencial, una correspondiente a cada tiempo de cada muestra.

A continuación se muestran dos señales de voz, que corresponden a una vocal A femenina

y a una vocal U masculina.

Figura 6. Ejemplos de señales de voz, vocales A y U.

Page 17: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

17

3. SELECCIÓN DE LA DENSIDAD Y LA TENSIÓN

Teniendo el modelo de membrana definido, el paso siguiente fue encontrar una tensión

y/o una densidad apropiada de tal forma que el modelo de membrana respondiera a

diferentes frecuencias como lo hace en realidad la membrana basilar (ver figura 4) es

decir, que las frecuencias altas se atenuaran hacia al final de la membrana y las frecuencias

bajas alcanzaran a excitar notoriamente el final de la membrana. Como se dijo, las primeras

pruebas se realizaron con excitaciones sinusoidales de diferentes frecuencias (tonos puros),

se trabajó primero con el modelo en que la membrana está libre, en este modelo se

mantuvo la densidad constante: )(xρ =1. Luego se cambió el modelo al de la membrana fija,

en el cual la densidad y la tensión fueron variantes.

La forma de trabajar fue haciendo pruebas con diferentes tensiones y densidades

monótonamente crecientes o decrecientes dependientes solo de la variable x.

Debido a que se desconocen datos reales de la tensión y la densidad en la membrana

basilar, las pruebas se iniciaron con una función cualquiera (creciente o decreciente) y a

medida que avanzaban las pruebas era fácil distinguir con que tipo funcionaba mejor.

Luego de muchas pruebas, en el modelo de la membrana libre se obtiene una buena

Page 18: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

18

respuesta con la tensión dada por:

xexxT .)( =

manteniendo una densidad constante:

),( yxρ =1

Para llegar a esta conclusión se observo la respuesta de la membrana desde 0 hasta 400ms

notándose una atenuación de las frecuencias altas y una excitación mas pronunciada de las

bajas al final de la cuerda, aquí se muestran algunas gráficas de la respuesta de la

membrana en t = 400ms.

-25

-20

-15

-10

-5

0

5

10

15

20

25

01

23

4

0.10.2

0.3

0.40.5-30

-20

-10

0

10

20

30

Time=0.3999 Excitacion:sin(10000t)

Figura 7. Ejemplos de respuestas a sinusoides con xexxT .)( = , 1)( =xρ a. excitación: sin (1000t),

b. excitación: sin (50000t), c. excitación: sin (70000t).

En general, con tensiones crecientes de este tipo, manteniendo la densidad constante, la

respuesta de la membrana es parecida a la deseada; es decir, no solamente con xexxT .)( = se

obtienen buenos resultados cuando se prueba con tonos puros.

Para el caso en el que la cuerda está sostenida se hicieron pruebas con la tensión y la

densidad variantes. Teniendo en cuenta que la membrana es cerca de 100 veces más rígida

a. b. c.

Page 19: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

19

cerca de las ventanas que al final de la cóclea, se asoció la rigidez con la tensión, de tal

forma que se escogió una tensión lineal dependiente solamente de la variable x, que

cumpliera esta condición:

Con base en esta tensión se buscó una densidad de masa con la que la respuesta a diferentes

frecuencias fuera como la deseada, para esto se visualizó la respuesta de la membrana

desde t=0s hasta t=400ms. Finalmente se escogió:

En general se observa que con densidades crecientes se obtienen buenos resultados.

Algunas respuestas a excitaciones con sinusoides en t = 400ms bajo los anteriores valores

de densidad y tensión son:

10028.28)( +−= xxT

xx =)(ρ

a. b.

Page 20: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

20

Figura 8. Ejemplos de respuesta a sinusoides con 10028.28)( +−= xxT , xx =)(ρ a. excitación: sin (1000t),

b. excitación: sin (10000t), c. excitación: sin (30000t), d. excitación: sin (100000t).

Además de escoger una densidad y tensión apropiadas a partir de las pruebas con

sinusoides, también se observó el efecto en la respuesta de la membrana simulada debido a

la variación de la amplitud de la excitación. Se observó que se mantenía el patrón de

respuesta a lo largo de la membrana, es decir, la respuesta a altas frecuencias sigue

atenuándose a lo largo de la membrana y a bajas frecuencias sigue siendo más notoria al

final de la membrana sin importar la amplitud de la excitación. También se observó que la

respuesta de la membrana no es lineal, al hacer el cociente de las respuestas en t=400ms y

ver que no es una constante.

A continuación se muestran dos ejemplos del efecto de la variación de amplitud en la

respuesta de la membrana, un ejemplo con la membrana sostenida y un ejemplo con la

membrana suelta. En la primera columna se muestra la respuesta a la excitación con

d. c.

Page 21: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

21

amplitud igual a uno, en la segunda columna la respuesta a la excitación con variación de

amplitud, y en la tercera columna se muestra el cociente de las respuestas.

Figura 9. Ejemplos de respuesta a sinusoides con variación de amplitud

El tiempo promedio de ejecución del algoritmo, cuando la excitación es una sinusoide con

4410 muestras es de tres minutos, a mayor frecuencia de la sinusoide mayor es el tiempo de

convergencia del método.

Una vez escogidas las funciones de densidad y tensión que semejaran cualitativamente la

respuesta a excitaciones sinusoidales de la membrana basilar, se empezó a probar con los

sonidos vocálicos que se tenían de las cuatro personas.

Amplitud =1 Sostenida

Libre

Amplitud uno Amplitud variada Cociente

Page 22: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

22

4. RESPUESTA A SONIDOS VOCÁLICOS

Luego de escoger una densidad y una tensión según los resultados de pruebas con

sinusoides, se hicieron las pruebas con los sonidos vocálicos como excitación, para esto

cada archivo .wav sin el nivel dc se leyó dentro de un vector de datos donde la primera

posición corresponde a la condición de frontera en t=0, y así sucesivamente hasta la

posición 4410 que corresponde a la condición de frontera en t=400ms.

Con esta condición de frontera y con la densidad y tensión para cada caso (membrana libre

y sostenida) se solucionó para cada sonido vocálico de cada persona. Las matrices de

solución fueron guardadas, con ellas se hizo el análisis. Inicialmente se graficó la solución

para cada tiempo de solución, obteniendo una animación de la vibracion de la membrana

según la excitación, a continuación se muestran algunas secuencias de graficas para

algunos tiempos de solución:

a. c. b.

Page 23: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

23

Figura 10. Ejemplos de respuesta a sonidos vocálicos: Vocal A mujer 2 membrana suelta. a. t=25 ms, b. t=

50 ms, c. t=250 ms, d. t= 400 ms.

Figura 11. Ejemplos de respuesta a sonidos vocálicos: Vocal E hombre 1 membrana sostenida. a. t=50ms, b.

t=75 ms, c. t=120ms d. t= 150 ms, e. t= 175 ms, f. t=400ms.

d.

a. b. c.

d. e. f.

Page 24: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

24

Para visualizar mejor los cambios en amplitud en la respuesta de la membrana y regiones

de mayor excitación durante el intervalo de tiempo, se graficó en escala de grises el rango

de la respuesta en cada nodo, para esto se partió el espacio en hexágonos, de tal forma que

cada nodo fuera el centro de un hexágono y así colorear todo el hexágono del valor que

toma el rango en el nodo que corresponde a su centro, de esta manera:

Zoom:

Figura 12. Partición en hexágonos de la región de solución.

Page 25: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

25

Los triángulos originales son los que están dibujados con líneas azules, los hexágonos en

los que se partió la región son los que están coloreados de azul más claro, los triángulos

amarillos “sobraron” al hacer la partición en hexágonos, estos se colorearán del promedio

de los rangos en los nodos del triangulo original en el que está inscrito cada triangulo

amarillo.

Esta partición se hizo con el fin de perder la menor cantidad de información con respecto a

los cambios en la respuesta de la membrana, tratando de no suavizar tanto la imagen. Al

graficar el logaritmo del rango en escala de grises, para excitaciones sinusoidales, se

obtienen respuestas como las siguientes:

a. excitación: sin (1000t)

b excitación: sin (10000t)

c. excitación: sin (30000t)

d. excitación: sin (70000t)

Page 26: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

26

e. excitación: sin (100000t)

Las gráficas con sinusoides muestran que para frecuencias bajas hay mayor excitación al

final de la membrana (blanco es máximo y negro es mínimo) y para frecuencias altas solo

se notan cambios significativos hacia el inicio de la membrana. Ahora, sonidos vocálicos:

Membrana sostenida: Vocales de Mujer

a. Vocal A Mujer 1

b. Vocal A Mujer 2

Figura 13. Respuesta a sinusoides, escala de grises.

Page 27: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

27

c. Vocal I Mujer 2

d. Vocal I Mujer 1

e. Vocal E Mujer 2

f. Vocal E Mujer 1

g. Vocal O Mujer 2

h. Vocal U Mujer 2

i. Vocal U Mujer 1

j. Vocal O Mujer 1

Page 28: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

28

Vocales de Hombre

k. Vocal A Hombre 2

l. Vocal A Hombre 1

m. Vocal E Hombre 1

n. Vocal E Hombre 2

o. Vocal I Hombre 2

p. Vocal I Hombre 1

q. Vocal O Hombre 2

r. Vocal O hombre 1

Page 29: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

29

s. Vocal U Hombre 1

t. Vocal U Hombre 2

Figura 14. Respuesta a sonidos vocálicos, escala de grises, membrana sostenida

Membrana libre: Vocales de Mujer

a. Vocal A Mujer 2

b. Vocal A Mujer 1

c. Vocal E Mujer 2

d. Vocal E Mujer 1

Page 30: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

30

e. Vocal I Mujer 2

f. Vocal I Mujer 1

g. Vocal O Mujer 2

h. Vocal O Mujer 1

i. Vocal U Mujer 2

j. Vocal U Mujer 1

Vocales de Hombre

k. Vocal A Hombre 2

l. Vocal A Hombre 1

Page 31: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

31

m. Vocal E Hombre 2

n. Vocal E Hombre 1

o. Vocal I Hombre 2

p. Vocal I Hombre 1

q. Vocal O Hombre 2

r. Vocal O Hombre 1

s. Vocal U Hombre 2

t. Vocal U Hombre 1

Figura 15. Respuesta a sonidos vocálicos, escala de grises, membrana suelta

Page 32: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

32

Para identificar más fácilmente los cambios entre respuestas se hicieron videos (se pueden

ver ejemplos en el CD) con las imágenes obtenidas. Con estas graficas es fácilmente

identificable la voz de un hombre de la de una mujer en el caso de la membrana sostenida,

la de los hombres se proyecta mucho más clara durante toda la membrana, en cambio la de

las mujeres es oscura en casi toda la región. Con estas graficas aún no es posible diferenciar

claramente una vocal de otra.

Para identificar las vocales se trabajó únicamente con la membrana sostenida, para ello se

utilizó la media en cambio del rango, aunque aún no es tan refinada la selección se puede

decir que las aes tienden a ser mas claras en toda la región, las úes mantienen un nivel

intermedio y se les marca más claramente unas líneas oscuras verticales, las ies son oscuras

en casi toda la región, las oes son mucho mas oscuras en la parte central que las ues y se

alcanzan a notar las líneas verticales. Las es son claras en casi toda la membrana al igual

que las aes, no se alcanza a notar una diferencia clara entre a y e con éste análisis. A

continuación se muestran algunos ejemplos de las imágenes obtenidas:

a . Vocal U Hombre 2

b. Vocal U Mujer 1

Page 33: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

33

c. Vocal O Hombre 1

d. Vocal O Mujer 1

d. Vocal A Hombre 1

e. Vocal A Mujer 1

f. Vocal I Hombre 1

h. Vocal I Mujer 2

Page 34: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

34

Figura 16. Respuesta a sonidos vocálicos, escala de grises, promedio.

APENDICE: Códigos en Matlab A continuación se presentan los códigos básicos en matlab que se utilizaron durante el trabajo, para algunas pruebas se variaron parámetros y nombres de archivos dentro de ellos. Las matrices y figuras a las que hace referencia se encuentran almacenadas en el CD. 1. Programa para solucionar la ecuación diferencial.

function pdemodel [pde_fig,ax]=pdeinit; pdetool('appl_cb',1); set(ax,'DataAspectRatio',[1 0.11250000000000002 1]); set(ax,'PlotBoxAspectRatio',[13.333333333333332 8.8888888888888875 6.6666666666666661]); set(ax,'XLim',[0 4]); set(ax,'YLim',[0.14999999999999999 0.45000000000000001]); set(ax,'XTickMode','auto'); set(ax,'YTickMode','auto'); % Geometry description: pdepoly([ 0.11908396946564881,... 0.11908396946564881,... 3.4900763358778626,... 3.4900763358778626,... ],... [ 0.32610687022900764,... 0.27458015267175573,... 0.16603053435114498,... 0.43122137404580152,... ],... 'P1'); set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','P1') % Boundary conditions: pdetool('changemode',0) pdesetbd(4,... 'dir',... 1,... '1',... 'sin(110000*t)') pdesetbd(3,... 'dir',... 1,... '1',... 'sin(110000*t)') pdesetbd(2,... 'dir',... 1,... '1',... 'sin(110000*t)') pdesetbd(1,... 'dir',...

Page 35: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

35

1,... '1',... 'sin(110000*t)') % Mesh generation: setuprop(pde_fig,'trisize',0.90000000000000002); setuprop(pde_fig,'Hgrad',1.9990000000000001); setuprop(pde_fig,'refinemethod','regular'); pdetool('initmesh') pdetool('refine') pdetool('refine') pdetool('refine') % PDE coefficients: pdeseteq(3,... 'x.*exp(x)',... '0',... '0',... '1',... 'linspace(0,0.3999,100)',... '1./x',... '0',... '[0 100]') setuprop(pde_fig,'currparam',... ['x.*exp(x)';... '0 ';... '0 ';... '1 ']) % Solve parameters: setuprop(pde_fig,'solveparam',... str2mat('0','1000','10','pdeadworst',... '0.5','longest','0','1E-4','','fixed','Inf')) % Plotflags and user data strings: setuprop(pde_fig,'plotflags',[1 1 1 1 1 1 1 1 0 0 0 100 1 0 1 0 0 1]); setuprop(pde_fig,'colstring',''); setuprop(pde_fig,'arrowstring',''); setuprop(pde_fig,'deformstring',''); setuprop(pde_fig,'heightstring','');

2. Programa para generar videos con particion en hexágonos (escala de grises)

function hexa(a1,a2,a3,a4,e1,e2,e3,e4,i1,i2,i3,i4,o1,o2,o3,o4,u1,u2,u3,u4,p,H) %(a1,a2,a3,a4,e1,e2,e3,e4,i1,i2,i3,i4,o1,o2,o3,o4,u1,u2,u3,u4,p); N1=10; %numero de frames vocales N2=15; %numero de frames personas R=5; %numero de repeticiones %p= coordenadas de los nodos %entran matrices de solucion: a,a,a,a e,e,e,e i,i,i,i o,o,o,o u,u,u,u... vector p: coordenadas x e y %de los nodos de cada triangulo. %para sostenida: hexa(uAcaro,uAerick,uAleo,uAivan,uEcaro,uEerick,uEleo,uEivan,uIcaro,uIerick,uIleo,uIivan,uOcaro,uOerick,uOleo,uOivan,uUcaro,uUerick,uUleo,uUivan,p,hexagonos); %para libre: hexa(Acarolina,Aerick,Aleonor,Aivan,Ecarolina,Eerick,Eleonor,Eivan,Icarolina,Ierick,Ileonor,Iivan,Ocarolina,Oerick,Oleonor,Oivan,Ucarolina,Uerick,Uleonor,Uivan,p,hexagonos); %para sostenida:hexa(Acaros,Aerick,Aleonor,Aivan,Ecaro,Eerick,Eleonor,Eivan,Icaro,Ierick,Ileonor,Iivan,Ocaro,Oerick,Oleonor,Oivan,Ucaro,Uerick,Uleonor,Uivan,p,hexagonos); [c1 f1]=size(a1);

Page 36: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

36

em=10; for i=1:369 rango1(i)=log((max(a1(i,em:f1)))-(min(a1(i,em:f1)))); rango2(i)=log((max(a2(i,em:f1)))-(min(a2(i,em:f1)))); rango3(i)=log((max(a3(i,em:f1)))-(min(a3(i,em:f1)))); rango4(i)=log((max(a4(i,em:f1)))-(min(a4(i,em:f1)))); rango5(i)=log((max(e1(i,em:f1)))-(min(e1(i,em:f1)))); rango6(i)=log((max(e2(i,em:f1)))-(min(e2(i,em:f1)))); rango7(i)=log((max(e3(i,em:f1)))-(min(e3(i,em:f1)))); rango8(i)=log((max(e4(i,em:f1)))-(min(e4(i,em:f1)))); rango9(i)=log((max(i1(i,em:f1)))-(min(i1(i,em:f1)))); rango10(i)=log((max(i2(i,em:f1)))-(min(i2(i,em:f1)))); rango11(i)=log((max(i3(i,em:f1)))-(min(i3(i,em:f1)))); rango12(i)=log((max(i4(i,em:f1)))-(min(i4(i,em:f1)))); rango13(i)=log((max(o1(i,em:f1)))-(min(o1(i,em:f1)))); rango14(i)=log((max(o2(i,em:f1)))-(min(o2(i,em:f1)))); rango15(i)=log((max(o3(i,em:f1)))-(min(o3(i,em:f1)))); rango16(i)=log((max(o4(i,em:f1)))-(min(o4(i,em:f1)))); rango17(i)=log((max(u1(i,em:f1)))-(min(u1(i,em:f1)))); rango18(i)=log((max(u2(i,em:f1)))-(min(u2(i,em:f1)))); rango19(i)=log((max(u3(i,em:f1)))-(min(u3(i,em:f1)))); rango20(i)=log((max(u4(i,em:f1)))-(min(u4(i,em:f1)))); end max1=max(max(rango1)); max2=max(max(rango2)); max3=max(max(rango3)); max4=max(max(rango4)); max5=max(max(rango5)); max6=max(max(rango6)); max7=max(max(rango7)); max8=max(max(rango8)); max9=max(max(rango9)); max10=max(max(rango10)); max11=max(max(rango11)); max12=max(max(rango12)); max13=max(max(rango13)); max14=max(max(rango14)); max15=max(max(rango15)); max16=max(max(rango16)); max17=max(max(rango17)); max18=max(max(rango18)); max19=max(max(rango19)); max20=max(max(rango20)); ord=vert(p); AA=ordenar1(p); %se llena la matriz de cada imagen deacuerdo con la muestra H for i=1:467 for j=1:698 if H(i,j)==765 | H(i,j)==0 I1(i,j)=max1; I2(i,j)=max2; I3(i,j)=max3; I4(i,j)=max4; I5(i,j)=max5; I6(i,j)=max6; I7(i,j)=max7; I8(i,j)=max8; I9(i,j)=max9; I10(i,j)=max10; I11(i,j)=max11; I12(i,j)=max12;

Page 37: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

37

I13(i,j)=max13; I14(i,j)=max14; I15(i,j)=max15; I16(i,j)=max16; I17(i,j)=max17; I18(i,j)=max18; I19(i,j)=max19; I20(i,j)=max20; else if H(i,j)>0 col=H(i,j); ind=AA(3,col); I1(i,j)=rango1(ind); I2(i,j)=rango2(ind); I3(i,j)=rango3(ind); I4(i,j)=rango4(ind); I5(i,j)=rango5(ind); I6(i,j)=rango6(ind); I7(i,j)=rango7(ind); I8(i,j)=rango8(ind); I9(i,j)=rango9(ind); I10(i,j)=rango10(ind); I11(i,j)=rango11(ind); I12(i,j)=rango12(ind); I13(i,j)=rango13(ind); I14(i,j)=rango14(ind); I15(i,j)=rango15(ind); I16(i,j)=rango16(ind); I17(i,j)=rango17(ind); I18(i,j)=rango18(ind); I19(i,j)=rango19(ind); I20(i,j)=rango20(ind); end if H(i,j)< 0 ind=abs(H(i,j)); r1=ord(ind,1); r2=ord(ind,2); r3=ord(ind,3); vec(1)=rango1(r1); vec(2)=rango1(r2); vec(3)=rango1(r3); I1(i,j)=mean(vec); vec(1)=rango2(r1); vec(2)=rango2(r2); vec(3)=rango2(r3); I2(i,j)=mean(vec); vec(1)=rango3(r1); vec(2)=rango3(r2); vec(3)=rango3(r3); I3(i,j)=mean(vec); vec(1)=rango4(r1); vec(2)=rango4(r2); vec(3)=rango4(r3); I4(i,j)=mean(vec); vec(1)=rango5(r1); vec(2)=rango5(r2);

Page 38: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

38

vec(3)=rango5(r3); I5(i,j)=mean(vec); vec(1)=rango6(r1); vec(2)=rango6(r2); vec(3)=rango6(r3); I6(i,j)=mean(vec); vec(1)=rango7(r1); vec(2)=rango7(r2); vec(3)=rango7(r3); I7(i,j)=mean(vec); vec(1)=rango8(r1); vec(2)=rango8(r2); vec(3)=rango8(r3); I8(i,j)=mean(vec); vec(1)=rango9(r1); vec(2)=rango9(r2); vec(3)=rango9(r3); I9(i,j)=mean(vec); vec(1)=rango10(r1); vec(2)=rango10(r2); vec(3)=rango10(r3); I10(i,j)=mean(vec); vec(1)=rango11(r1); vec(2)=rango11(r2); vec(3)=rango11(r3); I11(i,j)=mean(vec); vec(1)=rango12(r1); vec(2)=rango12(r2); vec(3)=rango12(r3); I12(i,j)=mean(vec); vec(1)=rango13(r1); vec(2)=rango13(r2); vec(3)=rango13(r3); I13(i,j)=mean(vec); vec(1)=rango14(r1); vec(2)=rango14(r2); vec(3)=rango14(r3); I14(i,j)=mean(vec); vec(1)=rango15(r1); vec(2)=rango15(r2); vec(3)=rango15(r3); I15(i,j)=mean(vec); vec(1)=rango16(r1); vec(2)=rango16(r2); vec(3)=rango16(r3); I16(i,j)=mean(vec); vec(1)=rango17(r1); vec(2)=rango17(r2); vec(3)=rango17(r3);

Page 39: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

39

I17(i,j)=mean(vec); vec(1)=rango18(r1); vec(2)=rango18(r2); vec(3)=rango18(r3); I18(i,j)=mean(vec); vec(1)=rango19(r1); vec(2)=rango19(r2); vec(3)=rango19(r3); I19(i,j)=mean(vec); vec(1)=rango20(r1); vec(2)=rango20(r2); vec(3)=rango20(r3); I20(i,j)=mean(vec); end end end end %Vocal A figure; mov4= avifile('Asteschex.avi') for v=1:R imagesc(I1) colormap(gray); F(1) = getframe; for i=1:N1 mov4=addframe(mov4,F(1)); end imagesc(I2) colormap(gray); F(2) = getframe; for i=1:N1 mov4=addframe(mov4,F(2)); end imagesc(I3) colormap(gray); F(3) = getframe; for i=1:N1 mov4=addframe(mov4,F(3)); end imagesc(I4) colormap(gray); F(4) = getframe; for i=1:N1 mov4=addframe(mov4,F(4)); end end

Page 40: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

40

mov4=close(mov4); %Vocal E figure; mov5= avifile('Esteschex.avi') for v=1:R imagesc(I5) colormap(gray); F(1) = getframe; for i=1:N1 mov5=addframe(mov5,F(1)); end imagesc(I6) colormap(gray); F(2) = getframe; for i=1:N1 mov5=addframe(mov5,F(2)); end imagesc(I7) colormap(gray); F(3) = getframe; for i=1:N1 mov5=addframe(mov5,F(3)); end imagesc(I8) colormap(gray); F(4) = getframe; for i=1:N1 mov5=addframe(mov5,F(4)); end end mov5=close(mov5); %Vocal I figure; mov6= avifile('Isteschex.avi') for v=1:R imagesc(I9) colormap(gray); F(1) = getframe; for i=1:N1 mov6=addframe(mov6,F(1)); end imagesc(I10) colormap(gray); F(2) = getframe; for i=1:N1 mov6=addframe(mov6,F(2));

Page 41: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

41

end imagesc(I11) colormap(gray); F(3) = getframe; for i=1:N1 mov6=addframe(mov6,F(3)); end imagesc(I12) colormap(gray); F(4) = getframe; for i=1:N1 mov6=addframe(mov6,F(4)); end end mov6=close(mov6); %Vocal O figure; mov7= avifile('Osteschex.avi') for v=1:R imagesc(I13) colormap(gray); F(1) = getframe; for i=1:N1 mov7=addframe(mov7,F(1)); end imagesc(I14) colormap(gray); F(2) = getframe; for i=1:N1 mov7=addframe(mov7,F(2)); end imagesc(I15) colormap(gray); F(3) = getframe; for i=1:N1 mov7=addframe(mov7,F(3)); end imagesc(I16) colormap(gray); F(4) = getframe; for i=1:N1 mov7=addframe(mov7,F(4)); end end mov7=close(mov7); %Vocal U

Page 42: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

42

figure; mov8= avifile('Usteschex.avi') for v=1:R imagesc(I17) colormap(gray); F(1) = getframe; for i=1:N1 mov8=addframe(mov8,F(1)); end imagesc(I18) colormap(gray); F(2) = getframe; for i=1:N1 mov8=addframe(mov8,F(2)); end imagesc(I19) colormap(gray); F(3) = getframe; for i=1:N1 mov8=addframe(mov8,F(3)); end imagesc(I20) colormap(gray); F(4) = getframe; for i=1:N1 mov8=addframe(mov8,F(4)); end end mov8=close(mov8); %genera video vocales mias figure; mov = avifile('Vocalesmiasteschex.avi') for v=1:R imagesc(I1) colormap(gray); F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end imagesc(I5) colormap(gray); F(2) = getframe; for i=1:N2 mov=addframe(mov,F(2)); end imagesc(I9)

Page 43: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

43

colormap(gray); F(3) = getframe; for i=1:N2 mov=addframe(mov,F(3)); end imagesc(I13) colormap(gray); F(4) = getframe; for i=1:N2 mov=addframe(mov,F(4)); end imagesc(I17) colormap(gray); v=[0 (max17/5)]; F(5) = getframe; for i=1:N2 mov=addframe(mov,F(5)); end end mov=close(mov); %genera video vocales ivan: figure; mov = avifile('Vocalesivanteschex.avi') for v=1:R imagesc(I4) colormap(gray); v=[0 (max4/5)]; F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end imagesc(I8) colormap(gray); F(2) = getframe; for i=1:N2 mov=addframe(mov,F(2)); end imagesc(I12) colormap(gray); F(3) = getframe; for i=1:N2 mov=addframe(mov,F(3)); end imagesc(I16) colormap(gray);

Page 44: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

44

F(4) = getframe; for i=1:N2 mov=addframe(mov,F(4)); end imagesc(I20) colormap(gray); F(5) = getframe; for i=1:N2 mov=addframe(mov,F(5)); end end mov=close(mov); %genera video vocales Leo: figure; mov = avifile('VocalesLeoteschex.avi') for v=1:R imagesc(I3) colormap(gray); v=[0 (max3/5)]; F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end imagesc(I7) colormap(gray); F(2) = getframe; for i=1:N2 mov=addframe(mov,F(2)); end imagesc(I11) colormap(gray); F(3) = getframe; for i=1:N2 mov=addframe(mov,F(3)); end imagesc(I15) colormap(gray); F(4) = getframe; for i=1:N2 mov=addframe(mov,F(4)); end imagesc(I19) colormap(gray); F(5) = getframe;

Page 45: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

45

for i=1:N2 mov=addframe(mov,F(5)); end end mov=close(mov); %genera video vocales Erick: figure; mov = avifile('VocalesErickteschex.avi') for v=1:R imagesc(I2) colormap(gray); v=[0 (max2/5)]; F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end imagesc(I6) colormap(gray); F(2) = getframe; for i=1:N2 mov=addframe(mov,F(2)); end imagesc(I10) colormap(gray); F(3) = getframe; for i=1:N2 mov=addframe(mov,F(3)); end imagesc(I14) colormap(gray); F(4) = getframe; for i=1:N2 mov=addframe(mov,F(4)); end imagesc(I18) colormap(gray); F(5) = getframe; for i=1:N2 mov=addframe(mov,F(5)); end end mov=close(mov); figure; imagesc(I1); colormap(gray); title('A caro'); figure;

Page 46: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

46

imagesc(I2); colormap(gray); title('A erick'); figure; imagesc(I3); colormap(gray); title('A leonor'); figure; imagesc(I4); colormap(gray); title('A ivan');figure; imagesc(I5); colormap(gray); title('E caro'); figure; imagesc(I6); colormap(gray); title('E erick'); figure; imagesc(I7); colormap(gray); title('E leonor'); figure; imagesc(I8); colormap(gray); title('E ivan'); figure; imagesc(I9); colormap(gray); title('I caro'); figure; imagesc(I10); colormap(gray); title('I erick'); figure; imagesc(I11); colormap(gray); title('I leonor'); figure; imagesc(I12); colormap(gray); title('I ivan'); figure; imagesc(I13); colormap(gray); title('O caro'); figure; imagesc(I14); colormap(gray); title('O erick'); figure; imagesc(I15); colormap(gray); title('O leonor'); figure; imagesc(I16); colormap(gray); title('O ivan'); figure; imagesc(I17); colormap(gray);

Page 47: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

47

title('U caro'); figure; imagesc(I18); colormap(gray); title('U erick'); figure; imagesc(I19); colormap(gray); title('U leonor'); figure; imagesc(I20); colormap(gray); title('U ivan');

3. Videos de sinusoides

function sinu(a1,a2,a3,a4,e1,p,H) %(a1,a2,a3,a4,e1,e2,e3,e4,i1,i2,i3,i4,o1,o2,o3,o4,u1,u2,u3,u4,p); N1=10; %numero de frames vocales N2=15; %numero de frames personas R=5; %numero de repeticiones %para sinulibre: sinu(sin1000,sin10000,sin40000,sin70000,sin100000,p,hexagonos); [c1 f1]=size(a1); em=10; for i=1:369 rango1(i)=max(a1(i,em:f1))-min(a1(i,em:f1)); rango2(i)=max(a2(i,em:f1))-min(a2(i,em:f1)); rango3(i)=max(a3(i,em:f1))-min(a3(i,em:f1)); rango4(i)=max(a4(i,em:f1))-min(a4(i,em:f1)); rango5(i)=max(e1(i,em:f1))-min(e1(i,em:f1)); end max1=max(max(rango1)); max2=max(max(rango2)); max3=max(max(rango3)); max4=max(max(rango4)); max5=max(max(rango5)); ord=vert(p); AA=ordenar1(p); %se llena la matriz de cada imagen deacuerdo con la muestra H for i=1:467 for j=1:698 if H(i,j)==765 | H(i,j)==0 I1(i,j)=max1; I2(i,j)=max2; I3(i,j)=max3; I4(i,j)=max4; I5(i,j)=max5; else if H(i,j)>0 col=H(i,j); ind=AA(3,col); I1(i,j)=rango1(ind); I2(i,j)=rango2(ind); I3(i,j)=rango3(ind); I4(i,j)=rango4(ind); I5(i,j)=rango5(ind); end

Page 48: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

48

if H(i,j)< 0 ind=abs(H(i,j)); r1=ord(ind,1); r2=ord(ind,2); r3=ord(ind,3); vec(1)=rango1(r1); vec(2)=rango1(r2); vec(3)=rango1(r3); I1(i,j)=mean(vec); vec(1)=rango2(r1); vec(2)=rango2(r2); vec(3)=rango2(r3); I2(i,j)=mean(vec); vec(1)=rango3(r1); vec(2)=rango3(r2); vec(3)=rango3(r3); I3(i,j)=mean(vec); vec(1)=rango4(r1); vec(2)=rango4(r2); vec(3)=rango4(r3); I4(i,j)=mean(vec); vec(1)=rango5(r1); vec(2)=rango5(r2); vec(3)=rango5(r3); I5(i,j)=mean(vec); end end end end %Vocal A figure; mov4= avifile('sinusoidesorig.avi') for v=1:R imagesc(I1) colormap(gray); F(1) = getframe; for i=1:N1 mov4=addframe(mov4,F(1)); end imagesc(I2) colormap(gray); F(2) = getframe; for i=1:N1 mov4=addframe(mov4,F(2)); end imagesc(I3) colormap(gray); F(3) = getframe; for i=1:N1 mov4=addframe(mov4,F(3)); end

Page 49: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

49

imagesc(I4) colormap(gray); F(4) = getframe; for i=1:N1 mov4=addframe(mov4,F(4)); end imagesc(I5) colormap(gray); F(5) = getframe; for i=1:N1 mov4=addframe(mov4,F(5)); end end mov4=close(mov4); %genera videos figure; mov = avifile('sin1000orig.avi') for v=1:R imagesc(I1) colormap(gray); F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end end mov=close(mov); %genera video vocales ivan: figure; mov = avifile('sin10000orig.avi') for v=1:R imagesc(I2) colormap(gray); F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end end mov=close(mov); %genera video vocales Leo: figure; mov = avifile('sin40000orig.avi') for v=1:R imagesc(I3) colormap(gray); F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end end

Page 50: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

50

mov=close(mov); %genera video vocales Erick: figure; mov = avifile('sin70000orig.avi') for v=1:R imagesc(I4) colormap(gray); F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end end mov=close(mov); %genera video vocales Erick: figure; mov = avifile('sin100000orig.avi') for v=1:R imagesc(I5) colormap(gray); F(1) = getframe; for i=1:N2 mov=addframe(mov,F(1)); end end mov=close(mov);

4. Programa para generar animación de vibracion de la membrana: R=1; N1=10; mov4= avifile('sin100000sost.avi') for v=1:R (open('005.fig')); AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(1) = getframe; for i=1:N1 mov4=addframe(mov4,F(1)); end (open('010.fig')); AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(2) = getframe; for i=1:N1 mov4=addframe(mov4,F(2)); end (open('015.fig'));

Page 51: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

51

AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(3) = getframe; for i=1:N1 mov4=addframe(mov4,F(3)); end (open('020.fig')); AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(4) = getframe; for i=1:N1 mov4=addframe(mov4,F(4)); end (open('025.fig')); AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(5) = getframe; for i=1:N1 mov4=addframe(mov4,F(5)); end (open('030.fig')); AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(6) = getframe; for i=1:N1 mov4=addframe(mov4,F(6)); end (open('035.fig')); AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(7) = getframe; for i=1:N1 mov4=addframe(mov4,F(7)); end (open('040.fig')); AXIS([0 4 0 0.5 -20 20 -20 20]); set(gca,'ZTick',-20:5:20); set(gca,'ZTickLabel',{'-20','-15','-10','-5','0','5','10','15','20'}); title(''); grid; F(8) = getframe; for i=1:N1 mov4=addframe(mov4,F(8)); end end mov4=close(mov4); 5. Funciones:

Page 52: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

52

function SAL=fon1(t) B=NaN; format long mya=t; switch mya case NaN B=NaN; otherwise mya=abs(mya); kio=wavread('eCs'); if mya < 0.4 c=round(11022.5*t) +1; B=kio(c); end end SAL=B;

function o=ordenar (vec) v=vec(1,:); v1=vec(2,:); [a,b]=size(v); for i=1:b [m,s]=min(v); o1(i)=m; v(s)=max(v)+1; o2(i)=v1(1,s); o3(i)=s; end o(1,:)=o1; o(2,:)=o2; o(3,:)=o3; function A=ordenar1 (p) vec=ordenar(p); v=vec(2,:); v1=vec(3,:); B=0; C=0; for j=0:9:360 for l=1:9 t(l)=v(l+j); t1(l)=v1(l+j); end for i=j+1:j+9 [m,s]=min(t); o1(i-j)=m; t(s)=max(t)+1; o2(i-j)=t1(s); end B=[B o1]; C=[C o2]; end for i=1:369 A(1,i)=vec(1,i); A(2,i)=B(i+1); A(3,i)=C(i+1); end %en la matriz A(3X369) quedan: fila 1: Xs ordenados, fila 2: Ys %correspondientes a xs ordenados, fila 3: posicion que le corresponde a

Page 53: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

53

%ese punto en el vector de rango.

function sinDC arch=input(' Ingrese el nombre del archivo original .wav \n\n ','s'); nuevo=input(' Ingrese el nombre del archivo destino (sin DC) .wav \n\n ','s'); [y,f,n]=wavread(arch); a=fft(y); a(1)=0; b=ifft(a); wavwrite(b,f,n,nuevo);

Page 54: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

54

CONCLUSIONES Y TRABAJOS FUTUROS Este modelo de membrana arroja buenos resultados en la diferenciación de frecuencias de

sinusoides, aunque no es tan refinado y por lo tanto aun no está listo para reconocer

fonemas. Se puede decir que se logró imitar en alguna medida el comportamiento real de la

membrana basilar aún estando lejos de sus especificaciones reales de tensión y densidad

(que son desconocidas). Es claro que la membrana simulada responde selectivamente a

diferentes frecuencias lo que hace que se puedan diferenciar fácilmente las voces

femeninas de las masculinas, luego como sistema para reconocer fonemas, se puede decir

que ésta es una primera etapa de su desarrollo.

El modelo actual no tiene en cuenta muchos factores anatómicos y fisiológicos de la

membrana como el líquido ni la forma real de excitación del sistema la cuál se hace a

través del él por la ventana oval, su espesor, su posición enrollada y muchos otros factores

que deben influir radicalmente en la respuesta de la membrana.

Se comprobó que es posible mediante un sistema no lineal desarrollar un método que

permita diferenciar sonidos, en éste trabajo se exploraron tan solo algunas de las muchas

posibilidades que ofrece la ecuación de onda, la membrana, las condiciones de frontera y en

general todos los parámetros de solución de la ecuación diferencial que hacen que el

problema pueda ser solucionado de muchas maneras diferentes y seguramente habrá

Page 55: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

55

forma de optimizar la solución mediante la variación de la tensión, la densidad, la forma de

la membrana, la triangulación de la región, la tolerancia al error, las condiciones iniciales o

las de frontera .

Los mayores inconvenientes presentados durante el desarrollo de este trabajo están en el

tiempo de ejecución del algoritmo que resuelve la ecuación diferencial ya que en algunos

casos toma hasta 12 minutos para arrojar la respuesta de la membrana a una señal de voz, el

tiempo de ejecución depende entre otras cosas de la tasa de muestreo de la señal, la

tolerancia al error, el tamaño de la región de solución, el número de triángulos y el número

de nodos.

Los trabajos futuros basados en la simulación de la membrana deberían dirigirse hacia la

búsqueda de un algoritmo o un programa que sea más eficiente que el utilizado

actualmente para luego facilitar la búsqueda de tensión y densidad adecuadas para una

mejor caracterización de sonidos y un campo de prueba más amplio, es decir trabajar con

señales provenientes de mas de cuatro personas. También el desarrollo de un método para

comparar respuestas de la membrana, enfocado en dos aminos: diferenciar un fonema de

otro y diferenciar una fonema de una persona del mismo fonema de otra persona.

Los resultados de este trabajo son una buena base para seguir explorando un sistema que

inspirado en el funcionamiento del oído humano pretende reconocer sonidos porque estos

muestran que existe una alternativa diferente del análisis de Fourier en el tratamiento de

señales de voz para hacer análisis en frecuencia y que es posible ajustar un modelo para

Page 56: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

56

este fin, también son una base para desarrollar un modelo de la cóclea (que en ningún

momento se pretendió en este trabajo) que no esté basado en bancos de filtros o

resonadores selectivos sintonizados en una frecuencia específica sino en la exploración de

métodos y sistemas no lineales.

Page 57: SISTEMA NO LINEAL PARA EL RECONOCIMIENTO DE FONEMAS ...labsenales.uniandes.edu.co/index_archivos/carolina.pdf · reconocimiento de voz: desarrollar un sistema que se comporte diferente,

57

REFERENCIAS

http://www.bcm.tmc.edu/oto/research/cochlea/Hearing/ Fecha de consulta: 24 de

Agosto de 2003, Tema general: Cochlear Biophysics Laboratory

http://psych.athabascau.ca/html/Psych402/Biotutorials/25/part1.html Fecha de

consulta: 24 de Agosto de 2003, Tema general: The Human Ear

George, G. Somjen. (1986), Neuro Fisiología. Buenos Aires. ED. Panamericana.

Crawford Jr., Frank S. 1971 Berkeley Physics Course v.3. Barcelona. Reverte, S. A

Burden, Richard L. 2002. Análisis numérico. México, D.F. Thomson Learning.

COMSOL AB. 2002. Partial Differential Equation Toolbox User’s Guide version 1.

Natick, MA 01760-2098. The Mathworks

Lyon, R., Shamma, S., Sultan .Auditory Representations of Timbre and Pitch,

Auditory Computation,, p. 221-232