Вы находитесь на странице: 1из 4

Reconocimiento de Seales de Voz Utilizando MATLAB

Miguel Bravo, Jorge Moreno, Xavier Verdesoto

1. Resumen El anlisis de seales de naturaleza aleatoria tiene una importancia fundamental para la ciencia de las telecomunicaciones. Los principios tericos del anlisis de seales aleatorias, pueden llegar a tener una infinidad de aplicaciones en el presente. En este proyecto, precisamente se utilizan fundamentos matemticos de ese tipo para desarrollar un sistema de reconocimiento de seales de voz. El propsito de este trabajo es el desarrollo de un software especializado en el reconocimiento de una palabra, utilizada como clave, para un sistema de seguridad ficticio. 2. Introduccin El mecanismo de vocal humano produce el habla mediante fluctuaciones de la presin acstica de un medio. Un micrfono tiene la capacidad de detectar las variaciones de la presin acstica, y es as como una seal de voz puede ser convertida en una seal elctrica. Un sonido y sus caractersticas no son ms que distintos patrones en las variaciones de la presin acstica [1]. Las seales de voz pueden catalogarse como seales aleatorias estacionarias continuas, de acuerdo con la naturaleza de su propagacin. Debido a esto, una seal correspondiente a una palabra o frase, puede ser manipulada desde el punto de vista del anlisis de Fourier [2]. Para implementar un proceso de reconocimiento de voz, se utiliza el enfoque del anlisis espectral. En concreto, se utilizan dos funciones de gran importancia dentro del anlisis de procesos estocsticos: la funcin de autocorrelacin y la funcin de densidad espectral de potencia.

Si llamamos a un proceso aleatorio estacionario. La funcin de auto-correlacin se define como el valor esperado del producto del proceso evaluado en un tiempo y un tiempo , donde es simplemente un intervalo definido [3]. En forma de ecuacin tenemos: (1) La funcin de auto-correlacin nos ayuda a comprender el comportamiento de la seal en el dominio del tiempo. En segundo lugar mencionamos a la funcin de densidad espectral de potencia, que es de gran utilidad para comprender la relacin potencia-frecuencia que posee el proceso [3]. La densidad espectral de potencia se define matemticamente de la siguiente manera: (2) Como puede observarse la densidad espectral de potencia y la auto-correlacin forman un par de transformada de Fourier, lo que facilita en gran medida nuestro anlisis. La funcin de densidad espectral de potencia tiene una importancia especial para implementar el proceso de reconocimiento de voz, pues proporciona informacin sobre el contenido de potencia de la seal en toda la banda de frecuencia. La comparacin de contenido de potencia entre dos seales es bsicamente el principio que se utiliza para todo el desarrollo del software para reconocimiento de palabra clave, como se seala a continuacin. 3. Proceso de Reconocimiento Para realizar el reconocimiento se utiliz el programa de Matlab, en el cual se implementaron varias funciones y una interfaz grfica para brindarle una mayor accesibilidad. Las funciones o cdigos que se desarrollaron, segn el orden secuencial de uso son: Bdatos.m Cortvoz.m PalabraClave.m Grabar.m Reconocimiento.m Notificaciones.m

2.1 Caracterizacin de una Seal de Voz Un proceso aleatorio estacionario puede ser descrito de manera casi completa, en tiempo y en frecuencia, mediante el desarrollo de las dos funciones sealadas anteriormente. En primer lugar nos referimos a la Funcin de Autocorrelacin. Esta funcin nos brinda una descripcin estadstica de la relacin entre los propios valores del proceso aleatorio en un intervalo de muestreo especfico [3].

A continuacin se explica, desde dos perspectivas, lo que realiza el programa en el sentido de la programacin.

Tanto desde el punto de vista del usuario User1 quien ser un sujeto de prueba que interactuar con la interfaz grfica; como desde el punto de vista de la seal en s, para observar lo que le sucede dentro del programa y poder apreciar mejor la forma en que se la procesa. 3.1 Proceso Previo al Reconocimiento Se denomina esta parte del proceso como previo ya que no es un proceso que se realice siempre que corre el programa, o siempre que se quiera reconocer la seal de voz. Se trata bsicamente el cdigo denominado Bdatos.m, el cual consiste en grabar una base de datos para la comparacin que se realizar posteriormente. El proceso inicia tomando un cierto nmero de usuarios, lo ms variado posible en cuanto a su expresin oral y locacin, es decir mujeres, hombres, gente con voces gruesas, voces agudas, con diferentes acentos, en espacios cerrados, silenciosos, as como en espacios abiertos y ruidosos. El objetivo es crear una base de datos amplia, para as conseguir que el denominado error mximo, que se definir luego en la parte 3.2, pueda tomarse lo ms pequeo posible. La explicacin del cdigo Bdatos.m es sencilla: lo que hace es grabar por medio del micrfono, a una frecuencia de muestreo de 8000 Hz y durante 2 segundos por grabacin, 10 grabaciones de varios usuarios diciendo la palabra clave. En este caso se us la palabra MUSICA. Posteriormente se utiliza la funcin llamada cortvoz.m, que corta la grabacin desde que se comienza a hablar hasta 1,125 segundos despus; para as eliminar ruidos y silencios no deseados. As obtenemos matrices estandarizadas y normalizadas de 9000 posiciones con la palabra clave en cada una. Finalmente se guardan todas estas grabaciones en carpetas, con los nombres de cada usuario en formato wav. 3.2 Captacin de la Seal de Voz y Procesado En este momento ya empieza a interactuar User1 con la interfaz. Primeramente, lo que hace el usuario es presionar el botn de grabar, con lo cual correr la funcin grabar.m: en la cual se le darn 2 segundos para que, por medio de un micrfono conectado al computador, grabe la palabra clave para que sea comparada. Una vez terminada la grabacin se despliegan dos mensajes: el primero advierte sobre una grabacin correcta o incorrecta y el segundo una opcin para escuchar la grabacin realizada. Lo que le sucede a la seal antes de que se desplieguen estos mensajes es algo similar a lo que les sucedi a las seales para la base de datos, se la corta y normaliza con la misma funcin para estandarizarla y as facilitar la comparacin.

Despus, User1 tiene la opcin en el programa de visualizar su grabacin en bruto es decir sin procesado, as como despus del procesado para as ver que es lo que sucedi con la misma y como es la seal que se comparar con la base de datos. 3.3 Mtodo de Comparacin Una vez estandarizada y visualizada la seal, User1 oprime el botn de reconocer, con lo cual comienza el proceso esencial de este software. El cdigo de esta seccin se denomina Reconocimiento.m; el cual toma una grabacin estandarizada, y cada una de las grabaciones de la base de datos para realizar el mismo procesamiento que se explica a continuacin: 1. Se divide la seal en n frames de comparacin, donde este nmero n paso a paso vara desde 3 hasta 6. Pero, para los siguiente pasos se toman en cuenta solo los primeros 3 frames, lo que se hace para tratar de manipular directamente los fonemas de una palabra de 3 slabas, como nuestra palabra clave, eliminando el ruido o silencio despus de cada grabacin . Cada uno de estos frames se opera para obtener su auto-correlacin, y posteriormente la transformada de Fourier, que resulta en la densidad espectral de potencia. Se procede a comparar el error entre cada posicin de estas matrices de PSD de la base de datos con la matriz de la grabacin, y se almacena cada error en otra matriz; de la cual se halla el valor absoluto y el valor mximo. Este valor se usa para ser comparado con otro valor llamado error, que es una cantidad determinada experimentalmente, a partir de la eficacia que se requiera. Se espera que el programa tenga un desempeo positivo de por lo menos 85%. Con una base de datos numerosa es posible mejorar la dicha eficacia. Para este caso el valor de error es de 0,2 unidades. Despus de comparar estos valores pueden darse dos casos: el primero es que el valor sea menor al error, y por lo tanto se deja de comparar con el resto de grabaciones de la base de datos y se concluye que se dijo la palabra correcta. El segundo es que en ninguna matriz se haya obtenido un mximo absoluto menor al error, en tal caso se concluye que no se dijo la palabra clave. Adems, si el acceso es denegado 2 veces el programa se bloquea y se despliega la opcin de ingresar una clave escrita, para que se pueda obtener dos oportunidades ms para acceder; y si

2.

3.

4.

sta clave tambin es errnea el programa se cierra automticamente.

brinda MATLAB para este tipo de aplicaciones y formul una ventana de trabajo amigable que cuenta con botones para las funciones especficas que se explicaron antes.

3.4 Notificaciones al Usuario. Una vez finalizado el reconocimiento, se activa el cdigo llamado notificaciones.m al cual son enviados dos parmetros, que logran notificaciones al usuario con message boxes y efectos de sonido, si se le concedi el acceso o no. Asimismo, como un complemento importante, se almacena una fotografa de cada usuario que us el software; y se guarda en la carpeta de permitidos o no permitidos segn corresponda. Esto como un mecanismo para llevar el registro de usuarios. 3.5 Comandos de MATLAB A continuacin se presenta un listado de los comandos ms importantes de MATLAB que se utilizaron en el cdigo desarrollado: Aplicaciones de Audio: o wavrecord() o wavread() o wavwrite() o sound() Reconocimiento: o autocorr() o fft() o strcmp() Notificaciones: o msgbox() o questdlg() o inputdlg() Grficos en general: o stem() o plot() o imshow() Fotografa: o videoinput() o getsnapshot()
Figura 1: Ventana de Programa Para Reconocimiento de Voz

Como se observa en la figura la ventana de trabajo brinda las opciones para grabar, graficar y reconocer la palabra clave. Todas estas opciones se efectan y relacionan gracias a las funciones implementadas en MATLAB, que se mencionan anteriormente. Una interfaz grfica brinda la posibilidad de que el programa pueda ser utilizado por cualquier usuario, independientemente de sus conocimientos de programacin. Esto le da una aplicabilidad real en un posible sistema de seguridad o acceso al software desarrollado.

5. Resultados Despus de haber realizado varias pruebas con distintos usuarios, variando la base de datos y el error mximo, se obtuvo un porcentaje de eficacia de entre 80% y 90% en el proceso de reconocimiento de voz. Cabe aclarar que los porcentajes ms altos se obtuvieron cuando el sujeto de prueba utiliz el programa en lugares cerrados, o mejor dicho en entornos sin o con muy poco ruido de ambiente. En dichos casos se pudo logr reconocimientos satisfactorios con hasta con un error de comparacin menor o igual a 0.15. Una base de datos ms amplia tambin posibilita que los porcentajes de reconocimientos exitosos aumenten.

4. Desarrollo de una Interfaz Grfica Una de las partes ms importantes del desarrollo del software para reconocimiento de una palabra clave, fue la implementacin de una Interfaz Grfica de Usuario (GUI). Esto sin duda es lo que le brind al programa una utilidad tangible. Se utilizaron las distintas opciones que

6. Conclusiones En conclusin, se desarroll un sistema, que puede denominarse de seguridad mediante reconocimiento de palabra clave, que tiene caractersticas que lo hacen muy

aplicable. Esta aplicabilidad puede darse especialmente en, pero no slo en, lugares cerrados; ya que a pesar de que se obtuvo mejores resultados en lugares con muy poco ruido ambiental se comprob que la base de datos influye mucho en el reconocimiento. Es as que se confirm que el tamao de la base de datos es directamente proporcional al porcentaje de eficacia, e inversamente proporcional al error mximo. Entonces, bastara con tener como parte de la base de datos grabaciones en el lugar en que se implementara el programa, en momentos ruidosos y en momentos de silencio.

Referencias [1] A. Oppenheim y A. Willsky. Seales y Sistemas. Mexico: Prentice Hall, 1998. [2] R. Bart. Acstica Medio Ambiental. Alicante: Editorial Club Universitario. [3] S. Haykin. Sistemas de Comunicacin. Mexico: Limusa,2006

Вам также может понравиться