Una aplicación alternativa para personas discapacitadas
Una aplicación alternativa para personas discapacitadas
Una aplicación alternativa para personas discapacitadas
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
Las tecnologías del reconocimiento de voz y su<br />
implementación en software libre<br />
<strong>Una</strong> aplicación <strong>alternativa</strong> <strong>para</strong> <strong>personas</strong><br />
<strong>discapacitadas</strong> 1<br />
Coca Bedoya, Óscar Julián 2 y Ramírez Rendón, Carlos Alberto 3 . GLEC.<br />
Resumen<br />
Este documento, presenta una introducción general de las tecnologías del<br />
reconocimiento de voz y cómo éstas pueden ayudar a que las <strong>personas</strong> con<br />
alteraciones motoras utilicen, de una manera amigable y dinámica, las<br />
tecnologías de la información (TIC's). El sistema operativo GNU/Linux, una<br />
tecnología moderna de la información, puede usarse <strong>para</strong> la creación de<br />
nuevas utilerías y la personalización, según las necesidades de los<br />
programadores y usuarios, <strong>para</strong> diseñar e implementar una interfaz<br />
Hombre/Máquina a través de comandos orales.<br />
Palabras clave: Comandos orales, Gnome, Interfaz hombre máquina,<br />
Software Libre.<br />
I. Introducción<br />
El reconocimiento de voz es un campo disciplinal muy nuevo, surgido en los<br />
inicios de la década de los años cincuenta, que presenta una evolución<br />
significativa, debido al uso de diferentes enfoques de reconocimiento de<br />
patrones, tales como: el estadístico, que emplea los modelos ocultos de<br />
Markov (HMM); el sintáctico, que se basa en encontrar las relaciones<br />
estructurales que guardan los objetos de estudio utilizando la teoría de los<br />
lenguajes formales; el lógico combinatorio, que se fundamenta en la idea de<br />
que la modelación del problema debe ser lo más cercano posible a la<br />
realidad; las redes neuronales artificiales (RNA's), fundamentadas en la<br />
simulación del comportamiento neuronal del cerebro humano; y en los<br />
últimos años, algunos híbridos como el Branch and Bounds, que combina las<br />
1 Basado en el trabajo de grado “Acceso al escritorio Gnome del Sistema Operativo GNU/Linux<br />
utilizando la voz: una ayuda a las <strong>personas</strong> <strong>discapacitadas</strong>”, realizado como requisito parcial <strong>para</strong> optar<br />
al título de Pregrado en Ingeniería de Sistemas y Telecomunicaciones, Facultad de Ingeniería,<br />
Universidad de Manizales, 2005.<br />
2 Estudiante Ingeniería de Sistemas y Telecomunicaciones, Facultad de Ingeniería, Universidad de<br />
Manizales. E-mail: juliancoca@athenea.umanizales.edu.co<br />
3 Estudiante Ingeniería de Sistemas y Telecomunicaciones, Facultad de Ingeniería, Universidad de<br />
Manizales. E-mail: karlox@linuxmail.org<br />
VENTANA INFORMÁTICA No. 12 – Universidad de Manizales, enero – junio / 2005 – pp 203-209
- Universidad de Manizales, enero – junio / 2005<br />
RNA's y los HMM.<br />
Los avances logrados con el uso de los enfoques mencionados, han<br />
evolucionado desde el reconocimiento de palabras aisladas dependientes del<br />
hablante, hasta el discurso continuo independiente del mismo, pasando por<br />
la edición de texto a través de comandos orales, la autenticación de usuarios<br />
en sistemas de seguridad, la administración de sistemas informáticos a<br />
través de comandos orales y los sistemas de comunicación móvil con<br />
marcado automático por voz.<br />
Debido a lo nuevo de este campo disciplinal, los actuales motores de<br />
reconocimiento de voz presentan falencias en su rendimiento, situación que<br />
lo convierte en un medio de cultivo atractivo <strong>para</strong> investigación pionera por<br />
parte de inquietos profesionales y estudiantes.<br />
A. Obstáculos de la Vida Moderna<br />
Actualmente, las <strong>personas</strong> <strong>discapacitadas</strong> o con alteraciones motoras de los<br />
miembros superiores, están buscando con urgencia soluciones tecnológicas<br />
que les permitan una interfaz, amigable y flexible, <strong>para</strong> desarrollar sus<br />
actividades relacionadas con un computador.<br />
En el medio latinoamericano, muchos aplicativos de software <strong>para</strong><br />
reconocimiento de voz tienen un alto valor comercial y, en algunos casos, no<br />
suplen las necesidades de este grupo social. Es más, la mayoría de las<br />
aplicaciones comerciales están enfocadas a la creación de documentos y<br />
envío de correos, pero <strong>para</strong> acceder a ellos es necesario entrar en el menú<br />
de aplicaciones, buscar el programa de reconocimiento de voz y ejecutarlo<br />
manualmente.<br />
Otros aplicativos de reconocimiento de voz, por el contrario, se cargan al<br />
iniciar el equipo; sin embargo presentan algunas limitaciones, como: la<br />
configuración del volumen del micrófono o de la multimedia no es<br />
automática; la configuración de algunas aplicaciones es difícil y dispendiosa;<br />
y requiere de los archivos de entrenamiento <strong>para</strong> su correcto funcionamiento.<br />
Además de lo anterior, los costos de aplicativos de reconocimiento de voz y<br />
los requerimientos mínimos de hardware y software, implican que el acceso a<br />
ellos está limitado a un pequeño y privilegiado grupo de <strong>personas</strong>.<br />
II. <strong>Una</strong> <strong>alternativa</strong> <strong>para</strong> la integración social<br />
Permitir a las <strong>personas</strong> <strong>discapacitadas</strong> o con alteraciones motoras de los<br />
miembros superiores, o a cualquier otro tipo de usuario, la utilización de<br />
herramientas de reconocimiento de voz <strong>para</strong> la realización de sus labores<br />
periódicas que involucren la interacción con un computador, es un gran reto,<br />
dada la diversidad de las características que se deben tener en cuenta <strong>para</strong><br />
2
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
la obtención de patrones en el reconocimiento de voz.<br />
Así pues, se pretende construir una aplicación que permita la navegación de<br />
algunos submenús del escritorio Gnome, que se instale fácilmente, y que<br />
sea independiente del hablante, teniendo en cuenta el compromiso social;<br />
éstas características la convierten en una herramienta útil y ambiciosa <strong>para</strong><br />
los usuarios que no cuentan con los recursos económicos, y que quieran<br />
utilizarla <strong>para</strong> sacar el mayor provecho de las aplicaciones que los sistemas<br />
operativos les proporcionan.<br />
Este trabajo implica, de manera adicional, crear un espacio virtual dentro del<br />
servidor del GLEC (Grupo Linux Eje Cafetero), donde todos los interesados<br />
en el tema podrán consultar nuestros avances, documentos relacionados,<br />
enlaces de interés, foros de discusión, hacer sus preguntas y sugerencias.<br />
Logrando con esto la unificación de islas de conocimiento.<br />
III. El reconocimiento de voz en la<br />
plataforma GNU/Linux<br />
GNU/Linux es un sistema operativo de laboratorio concebido bajo una<br />
Licencia Pública General (GPL), la cual establece que todos los desarrollos<br />
bajo los términos de ésta, deben liberar su código fuente, contener la<br />
documentación, dar permisos <strong>para</strong> que cualquier persona que quiera realizar<br />
cambios al código fuente lo pueda hacer, siempre y cuando éstas <strong>personas</strong><br />
respeten los derechos morales y patrimoniales del autor, y que además siga<br />
manteniendo los términos de ésta licencia.<br />
El software libre ha nacido con la filosofía de permitir a cualquier persona<br />
natural acceder a él con un bajo costo y así incrementar la participación de<br />
los mismos en el desarrollo y utilización de las tecnologías de la información.<br />
La gran bondad de GNU/Linux radica en su implementación a nivel mundial<br />
por programadores de toda clase y, por tanto, se puede tener una respuesta<br />
rápida ante cualquier dificultad que se presente, lo que se refleja también en<br />
una gran comunidad que permite alta disponibilidad de la información y<br />
actualización del sistema operativo.<br />
Inicialmente GNU/Linux se diseñó e implementó como un sistema operativo<br />
orientado a servidores, esto aclara por qué a pesar de su trascendencia y<br />
robustez, GNU/Linux no era en un principio un sistema operativo utilizado por<br />
los usuarios en sus computadores de escritorio, debido a la falta de<br />
aplicaciones orientadas a suplir sus necesidades.<br />
Con la aparición de los escritorios gráficos como Gnome y casas de<br />
desarrollo de las diferentes distribuciones de GNU/Linux como son: Debian,<br />
Suse, Fedora y otras, se logró darle una orientación a GNU/Linux hacia los<br />
3
- Universidad de Manizales, enero – junio / 2005<br />
usuarios finales, esto gracias a la inclusión de aplicaciones de multimedia,<br />
paquetes de ofimática y otros.<br />
A.Avances y Retrocesos de una larga Búsqueda<br />
En la actualidad los diseñadores y desarrolladores de las distribuciones de<br />
GNU/Linux, se han preocupado por crear interfaces amigables <strong>para</strong> acceder<br />
a las aplicaciones y permitir su uso <strong>para</strong> una gran variedad de usuarios,<br />
como es el caso de la distribución BLINDUX.<br />
Dentro del tipo de interfaces interactivas están las consolas Braille y su<br />
integración con las aplicaciones orientadas a las <strong>personas</strong> invidentes,<br />
aplicaciones que utilizan los sintetizadores de voz <strong>para</strong> guiar a los usuarios, y<br />
otras aplicaciones que están orientadas a la administración del sistema<br />
operativo a través de comandos hablados, como lo hace el paquete<br />
CvoiceControl.<br />
CvoiceControl fue desarrollado por Daniel Kiecza y básicamente es un<br />
sistema de reconocimiento de voz dependiente del hablante, basado en<br />
HMM; su objetivo es permitir al usuario ejecutar comandos de Unix/Linux a<br />
través de comandos orales.<br />
El lenguaje de programación utilizado <strong>para</strong> la implementación de<br />
CvoiceControl es C. Es de aclarar, que la codificación realizada presenta<br />
falencias de programación, reflejadas en la ausencia de identación del<br />
código fuente y el uso de punteros globales, por lo cual la lectura y estudio<br />
del código son tareas difíciles de implementar. El CvoiceControl, permitió<br />
grabar los segmentos de voz correspondientes a los comandos orales, pero<br />
no su ejecución.<br />
Dadas las razones anteriores, se planteo la necesidad de contactar a Daniel<br />
Kiecza con el fin de obtener mayor información sobre el análisis y diseño de<br />
CvoiceControl; el autor nunca dió respuesta, por tal motivo, se buscaron<br />
otras <strong>alternativa</strong>s <strong>para</strong> utilizar o implementar otro motor de reconocimiento de<br />
voz.<br />
En esta búsqueda continua de otros sistemas de reconocimiento de voz<br />
implementados con software libre, se encontró el Perlbox-Voice; ésta<br />
aplicación transforma texto en voz utilizando el sintetizador Festival, permite<br />
además ejecutar comandos orales que se encuentran asociados a una<br />
aplicación específica de GNU/Linux y responde con mensajes de voz a<br />
ciertos comandos orales (por ejemplo un saludo) guiando al usuario. El<br />
idioma predeterminando <strong>para</strong> el reconocimiento de los comandos orales, es<br />
el inglés.<br />
La principal característica de Perlbox-Voice es su independencia del<br />
4
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
hablante, debido al uso de Sphinx-II como motor de reconocimiento, el cual<br />
permite la identificación tanto de palabras aisladas como del discurso<br />
continuo, dando resultados favorables de respuesta de reconocimiento de<br />
voz.<br />
El Sphinx-II fue desarrollado por el grupo CMU-Sphinx de la Universidad de<br />
Carnegie Mellon, el cual se ha preocupado por las falencias de los motores<br />
de reconocimiento de voz existentes, y el resultado de esto es el desarrollo<br />
Sphinx-II, que utiliza los modelos ocultos de Markov y un diccionario de<br />
lenguaje orientado al idioma inglés.<br />
El Sphinx-II, se puede utilizar a través de una API de funciones que permite<br />
desarrollar aplicaciones que integran el reconocimiento de voz. Esta API fue<br />
desarrollada bajo el lenguaje C, su código fuente está bien documentado, y<br />
en com<strong>para</strong>ción con otras herramientas de reconocimiento de voz<br />
disponibles <strong>para</strong> GNU/Linux, tiene buena estética en su codificación.<br />
La primera fase consistió en la descarga e instalación del código fuente del<br />
Sphinx-II en las distribuciones de GNU/Linux que se tenían a disposición:<br />
Debian Woody, SUSE 9.1 y Red Hat 8. Posteriormente se realizaron pruebas<br />
utilizando un micrófono de baja calidad y una tarjeta de sonido genérica, <strong>para</strong><br />
capturar voz utilizando las funciones de la API de Sphinx-II, que permiten el<br />
acceso y grabación en modo crudo (a nivel de hardware). Los resultados<br />
obtenidos fueron satisfactorios.<br />
Lo anterior garantiza que los requerimientos de hardware son mínimos,<br />
bajando así los costos <strong>para</strong> el usuario que utilice una aplicación que integre<br />
la API Sphinx-II, lo que beneficiará a un mayor grupo social en el que se<br />
encuentran las entidades de ayuda a discapacitados, las <strong>personas</strong><br />
<strong>discapacitadas</strong> y cualquier persona que necesite este tipo de aplicaciones<br />
implantadas sobre un computador con pocas exigencias de hardware.<br />
La siguiente fase fue la traducción de los manuales técnicos y de usuario del<br />
Sphinx-II, lo cual ha permitido una mayor apropiación de la estructura y<br />
funcionamiento de la API.<br />
IV. Conclusiones<br />
La técnica más utilizada <strong>para</strong> el reconocimiento de voz son los modelos<br />
ocultos de Markov, dado su buen rendimiento <strong>para</strong> el reconocimiento del<br />
discurso continuo e independiente del hablante, como se puede notar en los<br />
sistemas de reconocimiento de voz referenciados en este documento.<br />
El Sphinx-II es un sistema de reconocimiento de voz muy robusto y es<br />
recomendable su uso <strong>para</strong> integrarlo en aplicaciones que lo necesiten.<br />
5
- Universidad de Manizales, enero – junio / 2005<br />
El uso de ingeniería de software en el desarrollo de aplicaciones, permite que<br />
éstas tengan características como escalabilidad, calidad, facilidad de<br />
mantenimiento y reutilización de código. Pues el software es un producto no<br />
terminado.<br />
El desarrollo de proyectos con software libre, permite un mayor alcance de<br />
las aplicaciones informáticas que solucionan los problemas cotidianos a las<br />
comunidades menos favorecidas, permitiendo así trascender en los campos<br />
social y científico.<br />
Bibliografía<br />
[1] CMU SPHIX. [en<br />
linea]. Estados Unidos: Carnigie Mellon University. Disponible En:<br />
http://www.speech.cs.cmu.edu / sphinx/Sphinx.html. Consultado en<br />
13.08.03.<br />
[2] GOLOMB, Josh. Speech Recognition History. Leland Stanford Junior<br />
University. (en línea) Disponible En:<br />
http://florin.stanford.edu/~t361/Fall2000/jgolomb/YYSpeechHistoryWB.ht<br />
m. 2001. Consultado en 13.08.03.<br />
[3] GRASSO, Michael y FININ, Tim. Integración de Tareas en Ambientes de<br />
Reconocimiento de Voz Multimodales. (en línea) Disponible En: URL:<br />
http://www.acm.org/crossroads/crew/michael_grasso.html. Consultado en<br />
07.08.03.<br />
[4] LOPEZ MORENO, J. Desarrollo de un reconocedor de dígitos con<br />
distintos énfasis. Universidad de las Américas, (en línea) Disponible En:<br />
http://mailweb.udlap.mx/ ~tesis/lis/lopez_m_j/ seccion_1_5.pdf.<br />
Consultado en 07.04.03.<br />
[5] PMXSHOP. Reconocimiento de voz. (en línea) Disponible En:<br />
http://www.pmx-shop.com/Reconocimiento de voz.htm. Consultado en<br />
07.08.03.<br />
[6] FREE SOFTWARE FUNDATION. GNU Operating System - Free<br />
Software Fundation. Disponible En: . Consultado en<br />
08.11.04.<br />
[7] KIECZA, Daniel. DANIEL KIECZA. Disponible En:<br />
URL:. Consultado en<br />
08.08.04.<br />
6