Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resumen: Este artculo presenta el diseo de un sistema de reconocimiento de voz por medio de la programacin en MATLAB, en donde se establece como herramienta para su funcionamiento las propiedades de simetra y valor mximo de la correlacin cruzada. Este proyecto busca acercarnos a los conocimientos adquiridos en la teora, aplicando mtodos que posibilite crear un algoritmo que permita reconocer la seal que deseamos, al momento de capturarlas por el micrfono del computador. El aporte ms significativo es que de una manera sencilla podamos crear un programa que discierne automticamente al momento de adquirir los comandos de voz por el usuario. La aplicacin de tratamiento de las seales por medio de la funcin ventana de hanning, STFT (Short time Fourier Transform), la normalizacin del espectro y el anlisis mediante el espectrograma, son puntas de lanza para el rendimiento eficaz del sistema que se presenta, ya que el ruido y el manchado espectral juegan un papel significativo en el anlisis de las seales aperidicas.
pronunciamos tienen un comportamiento distinto en el anlisis frecuencial. Al analizar seales aperidicas, hay que tomar en cuenta el ruido blanco y el manchado espectral, que son factores que nos pueden perjudicar, al querer reconocer o diferenciar dos seales, es por eso que se deben abordar los mtodos ms convenientes que disminuyan estos efectos, para que el sistema tome la mejor decisin y el error disminuya. La correlacin cruzada nos da parmetros segn sus propiedades como la simetra y el corrimiento mximo al desplazar las seales en frecuencia, para saber si una seal es igual a la otra o no, ya que si no hay ningn corrimiento, se puede decir que la seal es simtrica. Cuando hay un gran corrimiento de la frecuencia despus de correlacionar, querr decir que no habr simetra. En este artculo, se contempla la teora de la correlacin cruzada, transformada de Fourier, specgram y la metodologa empleada para desarrollar este proyecto, con sus resultados obtenidos, recomendaciones y conclusiones.
I. INTRODUCCIN.
Los sistemas de reconocimiento de voz, o control por comandos de voz se ven ms comnmente en celulares, en la domtica, en autos, en los navegadores web y en ciertas aplicaciones industriales y militares. La evolucin del tratamiento de las seales de voz beneficia en gran medida a agilizar los procesos, siendo adems una herramienta atractiva y moderna para promocionar cualquier producto electrnico de la vida cotidiana del hombre. Poder accionar dispositivos con la voz era un tema de ciencia ficcin en el pasado, hoy en da es muy comn, gracias a los sistemas que nos permiten capturar y tratar las seales de manera digital. El anlisis de una seal en el dominio de la frecuencia posibilita, cambiar sus caractersticas y poder diferenciarlas unas de otras, ya que las palabras que
Las seales almacenadas temporalmente en variables, se les dar un tratamiento antes de hacer la correlacin cruzada, ya que este es un anlisis en frecuencia y hay muchos factores que pueden intervenir y afectar el sistema de reconocimiento. Primeramente se analizara con la funcin de MATLAB specgram, la cual permite obtener la potencia, con respecto al tiempo de las componentes espectrales de cada seal. En esta funcin se aplica tambin el mtodo de truncamiento de la seal por medio de la ventana de hanning, esto nos permite tratar de hacer peridica la seal aperidica, ya que la estamos truncando por pedazos, para luego aplicarle la transformada de Fourier, que en este caso ser llamada transformada corta de Fourier. La ventana nos atena los lbulos laterales de la fundamental, evitando el manchado espectral, al igual que reduce el ruido de la seal, suavizando el espectro y mejorando el anlisis de reconocimiento, dando mayor fiabilidad y exactitud a los componentes para diferenciar. Como la funcin specgram forma una matriz, y las filas corresponde a los pedazos de porcin de seal obtenidos por las ventanas, es necesario obtener la seal completa, es por eso que ahora le hacemos la traspuesta de la matriz 2X3, y sumamos las columnas, obteniendo la seal completa con la suma de los componentes o sus fundamentales. Teniendo las seales en el dominio de la frecuencia, se normalizan, para mejorar el anlisis y evitar que el ruido intervenga, es por ello que normalizamos a la misma magnitud de 1 mximo de potencia. Se aplica luego la correlacin cruzada de la primera seal de referencia con la tercera y luego la segunda con la tercera. Por ltimo se implementa el algoritmo de seleccin el cual nos dice si hay o no simetra en las seales y cual se corri menos o ms. Si la posicin de la frecuencia se corre mucho, la seal no es la que deseamos, y por lo contrario si es menor el corrimiento de una seal con respecto a la otra correlacionada, entonces si hay simetra y por ende es la seal deseada o la que dijimos por tercera vez. Aqu el mximo de la correlacin determina si hay sincrona entre las seales correlacionadas, si el mximo de una supera a la otra, entonces la que tiene la posicin mayor es la seal no deseada. Esto es muy importante saberlo para la implementacin del algoritmo de seleccin de la seal deseada. Los pasos en detalles que describen la estructuracin en la programacin del proyecto de reconocimiento de voz son los siguientes: 1. Inicializar las variables y colocar la frecuencia de muestreo fs = 16000 Hz. Utilice wavrecord para grabar 3 seales de voz. Tomar las dos primeras de referencia y la tercera como la seal deseada.
2. 3.
4. 5. 6.
Use la funcin spectrogram para procesar las seales almacenadas y obtener la matriz de cada una de las seales. Aplicar la traspuesta de la matriz a cada seal, utilizar la funcin suma, para sumar las columnas de la matriz y obtener el espectro en frecuencia de la seal, esto para cada seal. Normalizar los espectros de frecuencia, con el empleo de la normalizacin lineal. Hacer la correlacin cruzada para las tres seales almacenadas, las dos primeras por separado con respecto a la tercera. Crear un algoritmo de decisin el cual contemple el cambio de frecuencia o desplazamiento por la correlacin, en donde si mayor es el corrimiento de una seal con respecto a la otra correlacionada, menor simetra y por ende no es la palabra deseada.
IV. RESULTADOS.
Los primeros resultados arrojan la implementacin del espectrograma en MATLAB, la palabra encendido se nos muestra en la siguiente figura 1. Se define fs = 16000, Nfft = 1024, la longitud de la ventana de Hanning es 512, y la longitud de solapamiento es 380. Es necesario mencionar que la longitud de la ventana tiene que ser menor o igual que de la longitud de la STFT (Nfft) cuando se programa en MATLAB.
A partir de la figura 1, el eje X es el eje de tiempo y el eje Y es el eje de frecuencia. La resolucin del color representa el gradiente de la distribucin de energa. Significa el color ms profundo es el de ms alta de distribucin de energa en esa zona. Como siguiente punto se obtiene la normalizacin del espectro para todas las seales analizadas.
diferentes, lo cual no es muy recomendable al realizar el anlisis en frecuencia, ya que puede introducir ruido indeseado. Analicemos que la primera y tercera grafica tiene un espectro muy similar en la primera fila. La segunda fila de las grficas corresponde a la normalizacin de los espectros lo cual mejora el anlisis, facilitndolo y evitando errores al sistema de reconocimiento de voz, por la estandarizacin de la potencia. Vemos que en el eje x de las grficas en la figura 4 muestra un rango de frecuencias, estas no son frecuencias reales o que corresponden al espectro original, estas frecuencias corresponde al anlisis por medio de la STFT y no tiene que ver con la frecuencia correspondiente al espectro original. Se procede a efectuar la correlacin de la seales de referencia con la tercera, obteniendo la siguiente respuesta en frecuencia. Las palabras dichas fueron encender y apagar.
En la figura 2 el espectro no es normalizado, esto afecta ya que complica ms el anlisis porque cada seal tiene una magnitud de potencia diferente, y es mejor estandarizar a 1, como vemos en la figura 3, ya que eliminamos ruido.
Se observa en la figura 5, que la primera grafica de la izquierda es encender, la cual es mucho ms simtrica que la de la derecha que es apagar. Esto se debe a que la tercera palabra o la deseada fue encender, por ende va tener mayor simetra en ambos lados de la fundamental.
La figura 4 muestra las tres seales grabadas respectivamente, en la primera columna se muestra la seal de la palabra encender, la segunda columna de la palabra apagar y la tercera columna es la palabra deseada, en este caso encender. La primera fila de las grficas corresponde a la salida del specgram, en donde se obtiene la potencia del espectro, vemos que las magnitudes de potencia son
Obtenemos tambin como resultado el cambio o corrimiento en frecuencia, el cual solo corresponde al efectuar lo correlacin cruzada, observamos que la posicin de la seal de encendido no cambia como lo hace la de apagado, ms que todo cambia la posicin mxima de la correlacin cruzada. Teniendo en cuenta que si una seal tiene una posicin mayor con respecto a la otra, entonces no corresponder a la seal deseada. En este caso el algoritmo escoge la seal encender porque su mxima correlacin es menor que la seal de apagar.
recorrindo todo su espectro. El solapamiento entre las ventanas es muy importante ya que beneficia en la resolucin de la STFT, por ende es bueno que sea grande.
En la figura 6 se obtiene la correlacin cruzada de la palabra encender a la izquierda y apagar a la derecha, en este caso la palabra deseada fue apagar, por ende tendr mejor simetra en la correlacin de apagar.
La diferencia del cambio de frecuencia es grande ya que la seal de encender su mxima posicin de la correlacin se encuentra en la posicin 8, mientras que la de apagar se encuentra en 1, esto nos da como resultado que la palabra que escoge el algoritmo a desplegar es apagar, ya que el mximo de la correlacin de apagar es menor que la de encender.
V. DISCUSIN.
Al analizar los resultados y el comportamiento del sistema de reconocimiento de voz fijado, es importante modular bien la voz ya que en algunas ocasiones, el sistema no poda hacer la diferenciacin, porque la posicin mxima de la correlacin no era mayor a dos o estaban muy cercanas, por ende el sistema no poda dictar una sentencia. La diferencia de posicin o cambio de frecuencia en la correlacin es un factor determinante al momento de que el sistema nos muestre una respuesta apropiada, palabras muy parecidas en el espectro pueden afectar al momento de hacer una seleccin por parte del algoritmo, ya que solo la investigacin contempla la correlacin con palabras de pronunciacin muy diferente. Al multiplicar cada una de las seales por medio de una funcin ventana, permite aplicar la transformada corta de Fourier y obtener una mejor representacin espectral, ya que la ventana va truncando por pedazos la seal,