Recocimiento de Voz en Labview

5
RECONOCIMIENTO DE COMANDOS DE VOZ CON LABVIEW LABORATORIO DE INSTRUMENTACION VIRTUAL “LIV” Universidad Distrital “Francisco José de Caldas” Noviembre del 2000 Resumen: El proyecto tiene como objetivo el reconocimiento de comandos de voz, más exactamente de los números, pronunciados por un único usuario, mediante el software Labview. Mediante un análisis de la señal de voz y la comparación de las características más significativas con un archivo de audio grabado en la memoria de un computador, se busca el identificar que número pronuncia el usuario. Palabras clave: Reconocimiento, Labview, señales. 1. Introducción El problema consiste en caracterizar la señal de audio que se obtiene a través de la tarjeta de audio de un computador; la aplicación se implementó sobre un computador puesto que este permite el procesamiento rápido y eficiente de la información y puede ser utilizado para darle mayor aplicabilidad al reconocimiento de comandos, por ejemplo la marcación telefónica para una persona discapacitada. Otra herramienta empleada, que es parte importante del desarrollo, es el software que se encarga de tomar la señal de audio y analizarla. Con la posibilidad de varios programas que realizaban esta función se optó por la viabilidad de Labview (programación gráfica), ya que este permite tanto una análisis en tiempo, frecuencia y tiempo- frecuencia, y al mismo tiempo permite una interfaz gráfica necesaria para un manejo eficiente de la aplicación. 2. Planteamiento del problema Inicialmente se considero analizar la señal en el tiempo, para esto se deben considerar varios aspectos: cómo capturaba la señal la tarjeta de audio, o en otras palabras cómo convertía la señal análoga proveniente del tracto vocal del usuario en una señal digital compuesta de muestras a una específica frecuencia de muestreo. Es posible contener toda la muestra de la señal en un mismo paquete de información, es decir, en el momento en que el usuario pronunciaba el comando este en su totalidad era capturado por la tarjeta audio, teniendo en cuenta que esta capturaba a una frecuencia de 11025 Hz. La frecuencia de muestreo es la más apropiada para obtener una señal completa sin tener que incomodar al usuario con una pronunciación rápida o a un determinado tiempo?. Se utiliza un código eficiente que permitiera capturar la muestra y hacer la comparación en un tiempo procesamiento mínimo?. Al analizar la señal en el tiempo, se puede caracterizar de la mejor forma considerando que la señal de voz de una persona es una señal no estacionaria en el tiempo?. Es

Transcript of Recocimiento de Voz en Labview

Page 1: Recocimiento de Voz en Labview

RECONOCIMIENTO DE COMANDOS DE VOZ CON LABVIEW

LABORATORIO DE INSTRUMENTACION VIRTUAL “LIV”Universidad Distrital “Francisco José de Caldas”

Noviembre del 2000

Resumen: El proyecto tiene comoobjetivo el reconocimiento decomandos de voz, más exactamente delos números, pronunciados por unúnico usuario, mediante el softwareLabview.

Mediante un análisis de la señal de vozy la comparación de las característicasmás significativas con un archivo deaudio grabado en la memoria de uncomputador, se busca el identificar quenúmero pronuncia el usuario.

Palabras clave: Reconocimiento, Labview, señales.

1. Introducción

El problema consiste en caracterizar laseñal de audio que se obtiene a travésde la tarjeta de audio de uncomputador; la aplicación seimplementó sobre un computadorpuesto que este permite elprocesamiento rápido y eficiente de lainformación y puede ser utilizado paradarle mayor aplicabilidad alreconocimiento de comandos, porejemplo la marcación telefónica parauna persona discapacitada.

Otra herramienta empleada, que esparte importante del desarrollo, es elsoftware que se encarga de tomar laseñal de audio y analizarla. Con laposibilidad de varios programas querealizaban esta función se optó por laviabilidad de Labview (programacióngráfica), ya que este permite tanto una

análisis en tiempo, frecuencia ytiempo- frecuencia, y al mismo tiempopermite una interfaz gráfica necesariapara un manejo eficiente de laaplicación.

2. Planteamiento del problema

Inicialmente se considero analizar laseñal en el tiempo, para esto se debenconsiderar varios aspectos: cómocapturaba la señal la tarjeta de audio,o en otras palabras cómo convertía laseñal análoga proveniente del tractovocal del usuario en una señal digitalcompuesta de muestras a unaespecífica frecuencia de muestreo. Esposible contener toda la muestra de laseñal en un mismo paquete deinformación, es decir, en el momentoen que el usuario pronunciaba elcomando este en su totalidad eracapturado por la tarjeta audio, teniendoen cuenta que esta capturaba a unafrecuencia de 11025 Hz. La frecuenciade muestreo es la más apropiada paraobtener una señal completa sin tenerque incomodar al usuario con unapronunciación rápida o a undeterminado tiempo?. Se utiliza uncódigo eficiente que permitieracapturar la muestra y hacer lacomparación en un tiempoprocesamiento mínimo?. Al analizar laseñal en el tiempo, se puedecaracterizar de la mejor formaconsiderando que la señal de voz deuna persona es una señal noestacionaria en el tiempo?. Es

Page 2: Recocimiento de Voz en Labview

2

necesario buscar la mejor forma de caracterizar la señal utilizando elmínimo espacio de memoria posible,optimizando el desempeño y losrequerimientos de la aplicación.

Figura 1. VIs para audio.

Antes de comenzar a hablar sobre elanálisis de la señal es necesariodiscutir la forma en que la tarjeta deaudio captura la señal, y la forma enque Labview interpreta los datos que leentrega el dispositivo de audio y comolos procesa. Labview tiene unasfunciones definidas como VIs(instrumentos virtuales) que secaracterizan por su funcionalidad,modularidad, y por supuesto supresentación gráfica. Dentro de estosvi se encontraban aquellos referentes ala tarjeta de audio y los cuales: abrenel puerto, lo configuran, lo inicializany lo leen. Figura 1. La captura se haceen formato mono de ocho bits y a unafrecuencia de 11025 Hz con un tamañode espacio memoria o buffer de 16384,que corresponde al número demuestras. En la Figura 2. se observauna señal de voz en el tiemporepresentada en 255 niveles de latarjeta de audio. Estos permitía unacaptura de la señal a una velocidadque depende de las características deprocesamiento de la máquina y de lafrecuencia y el número de muestrasque se utilizaron. Puesto que lascaracterísticas de la máquinadeterminaban en cierta manera algunascaracterísticas de configuración de latarjeta de audio el problema se resolvió

de manera empírica ajustando lascondiciones que permitían una capturacompleta de la señal; teniendo encuenta que la información a capturarno era muy extensa y estabarelacionada con la pronunciación delos números de 0 a 9.

3. Análisis en el Tiempo

Una señal en el tiempo se puedecaracterizar por ser estacionaria, eneste caso significa que en un rango detiempo, por ejemplo de 0 a 1us, seencuentran las mismas frecuencias,una señal no estacionaria presenta uncambio de frecuencias en un rango detiempo, una señal no estacionaria esuna señal chirp donde a medida quetranscurre el tiempo la señal pasa deuna frecuencia menor a una mayor,una señal modulada en frecuencia esotro ejemplo de una señal noestacionaria. Partiendo de esto es fácildeterminar que una señal de voz es noestacionaria, puesto que esta secompone de partes en la que esperiódica y que corresponde a lasvocales, y partes en la que es una señalaleatoria que corresponde a lasconsonantes.

Figura 2. Dominio del tiempo.

Page 3: Recocimiento de Voz en Labview

3

Como se menciono antes inicialmentese analizo la señal en el tiempo, dondeel primer problema fue capturar laseñal en un mismo paquete deinformación dentro de un ciclo decomparación, en este proceso eradifícil realizar una comparacióneficiente, pero a partir de esto seanalizo los picos de la señal, crucespor cero, se opto también por efectuaruna convolución, pero sin tener buenosresultados; es necesario entoncesbuscar la forma de obtener algunainformación adicional de la señal, yuna forma es mediante unatransformada.

4. Análisis en Frecuencia.

Figura 3. Dominio de la frecuencia

Una información adicional decualquier señal es su espectro defrecuencias, y este se obtiene mediantela transformada de Fourier. Figura 3.El procedimiento para comparar lasdos señales, la que se captura con latarjeta y la que se guardaba en lamemoria del computador, consistía enobtener el espectro y hallar laslocalizaciones y amplitudes de sus

picos, mediante el VI de LabviewTHD (Total Harmonic Distortion,Figura 4) que realiza esta función, conla posibilidad de escoger un númerodeterminado de picos para describir laseñal con más exactitud, además deesto utilizar una ventana de Hammingpara suavizar las discontinuidades enel momento en que se captura la señaly se analiza; se tenía la posibilidad dealgunas otras ventanas pero la anteriorarrojo buenos resultados.

Figura 4. VI THD

A partir de este análisis se realizaronvarias pruebas inicialmente con elnúmero uno, pero se tenía el problemade que al pronunciar uno y u elprograma identificaba el comando devoz como él mismo; este problemaconsistía en que la transformada deFourier representa de igual forma unaseñal estacionaria y una señal noestacionaria con las mismasfrecuencias a lo largo de un periodo detiempo, como el número uno contienevocales la señal que representa estapronunciación contiene armónicos querepresentan las señales periódicas deestas, por esta razón al pronunciar unoy u el programa no diferenciaba conexactitud que lo que se estabapronunciando era uno.

El espectro de frecuencias de estaforma era muy útil para elreconocimiento pero no entregaba unainformación adicional que nospermitiera diferenciar con exactitud elcomando, aunque muy posiblemente

Page 4: Recocimiento de Voz en Labview

4

nos podría ayudar a diferenciar lasvocales, ya que estas se identifican porsus frecuencias.

De esta manera el problema de que laseñal de voz no es estacionaria debíasolucionarse buscando otra forma quenos permitiera determinar totalmentelas características de la señal y sucomportamiento en el tiempo, esto sepuede lograr analizando la señal envarios intervalos de tiempo y en esosintervalos definir las frecuencias de laseñal, y esto a la vez se debe definircomo un espectrograma tiempo-frecuencia. Algunas funciones queentrega estas características son laSTFT (Short-time Fuorier Transform)y Wigner Distributions.

5. Análisis Tiempo-Frecuencia

Un algoritmo eficiente que nospermite analizar una señal en el tiempoy la vez en la frecuencia es latransformada Wavelet. Labview tienela opción de transformada WaveletDaubechies 4.vi. Figura 5.

Figura 5. VI Wavelet

Este algoritmo procesa másrápidamente la información entregandouna información tiempo frecuencia dela señal analizada permitiendo unreconocimiento casi en tiempo real. Esimportante mencionar que latransformada consiste de un banco defiltros sobre la señal original que buscaobtener información de frecuencia enintervalos de tiempo, aunque lo que sedesearía es obtener que frecuencias

ocurren y a que tiempos esto esimposible debido al principio deincertidumbre Heisenberg. A partir deesta transformada se pudo observarque para cada comando pronunciadoefectivamente su transformada eradiferente, sin embargo ydesafortunadamente esas diferenciasno eran tan notorias entre uno y otrocomando. La Figura 6 muestra latransformada Wavelet de una señal.

Figura. 6. WT

Para hacer una comparación en untiempo mínimo se necesitaba extraeresta misma información de losarchivos grabados en la memoria y a lavez obtener una informaciónsignificativa de esta transformada, seoptó por buscar los picos de la señalcaracterizándola por la localización yla amplitud de estos, además se optótambién por hallar el valor AC de laseñal en diferentes espacios sobre eleje x, la operación matemática quenos permite esto corresponde a lafunción de probabilidad del segundomomento de un arreglo de números, elsegundo momento también nos da laventaja de evitar los valores negativosy hacer más notoria una diferenciaentre la comparación de los comandospor tratarse de una función cuadratica.De igual forma al capturar la señal dela tarjeta de audio se analizaba paraobtener la información característicade la señal en un pequeño espacio

Page 5: Recocimiento de Voz en Labview

5

tiempo y realizar una comparación enun nuevo ciclo, es de aclarar que elpatrón de algunos comandos es muyparecido a otros, especialmente paralos comandos que terminan con igualpronunciación como s ó o.

6. Resultados.

El principal inconveniente consiste endiferenciar los comandos que tienenuna pronunciación muy parecida, encuanto comandos que terminan dediferente pronunciación elreconocimiento es más efectivo, seespera encontrar una forma a partir dela transformada que nos permitecaracterizar con mayor detalle la señalde voz logrando comparar másefectivamente dos señales. Se encontróque la transformada Wavelet nodifiere mucho de un usuario a otro, porlo tanto este procedimiento se podríaextender a múltiples usuarios.

7. Conclusiones

Labview permitió una programacióngráfica más rápida y fácil, además dela posibilidad de analizar las señalescon ayuda de VIs para procesamientodigital, se tuvo también la posibilidadde analizar la señal: en el tiempo,frecuencia y tiempo- frecuencia.Observando la forma de las señales deuna manera gráfica muy ordenada ysencilla. En cuanto al análisis de la vozse concluye que una buena forma dereconocimiento es mediante Wavelet,puesto que permite caracterizar unaseñal no estacionaria, que era el casode la voz. Se espera encontrar unaforma de aprovechar mejor estatransformada y lograr utilizarlaefectivamente para el reconocimientode cualquier comando. Se plantea laposibilidad de analizar las señales

como decrecientes o crecientes en elcaso de dos y tres, ya que medianteeste método el reconocimiento no esmuy efectivo. Una señal decrecientedisminuye la intensidad a medida quetranscurre el tiempo, es el caso de lapronunciación de tres al contrario dedos que es creciente.