SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

59
SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD VOCAL Y LIMITACIÓN MOTRIZ María Andrea Carrero Núñez UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS Facultad Tecnológica Ingeniería en Control y Automatización Bogotá D.C. Agosto, 2021

Transcript of SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

Page 1: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON

DISCAPACIDAD VOCAL Y LIMITACIÓN MOTRIZ

María Andrea Carrero Núñez

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

Facultad Tecnológica

Ingeniería en Control y Automatización

Bogotá D.C. Agosto, 2021

Page 2: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON

DISCAPACIDAD VOCAL Y LIMITACIÓN MOTRIZ

María Andrea Carrero Núñez

Código: 20182383007

Monografía

Presentado para optar al título de: Ingeniera en Control y Automatización

Director

Miguel Ricardo Pérez Pereira

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

Facultad Tecnológica

Ingeniería en Control y Automatización

Bogotá D.C. Agosto, 2021

Page 3: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

i

Dedicatoria

A mi familia, en especial a mi madre que me ha apoyado durante mi proceso de formación, de

manera incondicional.

Page 4: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

ii

Índice

Índice .......................................................................................................................................... ii Índice de Tablas ......................................................................................................................... iv

Resumen ..................................................................................................................................... v 1. Introducción ........................................................................................................................ 1

2. Planteamiento del problema................................................................................................. 2 3. Justificación ........................................................................................................................ 3

4. Objetivos ............................................................................................................................. 4 4.1 Objetivo General ........................................................................................................... 4

4.2 Objetivos específicos .................................................................................................... 4 5. Antecedentes ....................................................................................................................... 5

6. Marco teórico .....................................................................................................................10 6.1 Síntesis de voz:.................................................................................................................10

6.2 Tipos de Sintetizador ........................................................................................................11 6.3 Python ..............................................................................................................................15

6.4 Microcontroladores ..........................................................................................................16 6.4.1 Microcontrolador PIC ................................................................................................16

6.4.2 Microcontrolador AVR ..............................................................................................16 6.4.3 Microcontrolador ARM .............................................................................................16

6.5 Herramientas de Software y Hardware..............................................................................17 6.5.1 Pyttsx3 ......................................................................................................................17

6.5.2 Tesseract y pytesseract...............................................................................................18 6.5.3 Onshape.....................................................................................................................18

6.5.4 Joystick .....................................................................................................................19 7. Metodología .......................................................................................................................21

7.1 Herramienta de sintetización ............................................................................................21 7.2 Desarrollo de algoritmo para aplicativo de sintetizador de texto a voz ..............................25

7.2.1 Desarrollo algoritmo sintetizador ...............................................................................26

7.2.2 Desarrollo algoritmo para prototipo ...........................................................................30 7.3 Desarrollo de prototipo para la manipulación del aplicativo sintetizador ...........................30

7.3.1 Método de microcontrolador como HID ....................................................................31 7.3.2 Método de Microcontrolador – Python .......................................................................34

7.3.3 Diseño de piezas para el prototipo..............................................................................35 7.4 Diseño de interfaz gráfica de usuario ................................................................................37

8. Resultados ..........................................................................................................................42 8.1 Diseño definitivo ..............................................................................................................42

8.2 Restricciones de la solución ..............................................................................................43 8.3 Validación del resultado ...................................................................................................43

8.3.1 Prueba de practicidad .................................................................................................43 8.3.2 Prueba de palabras por minuto ...................................................................................46

8.4 Evaluación del impacto de la solución ..............................................................................48 9. Conclusiones ......................................................................................................................49

10. Recomendaciones ............................................................................................................50 11. Referencias......................................................................................................................51

Page 5: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

iii

Índice de Figuras

Figura 1 Código morse y de mouse [10] ...................................................................................... 8

Figura 2 Diagrama de un sintetizador de texto a voz [15] ...........................................................11 Figura 3 Diagrama básico de síntesis por formantes [16] ............................................................12

Figura 4 Maquina parlante [14] ..................................................................................................13 Figura 5 Entorno grafico Onshape [Autor] .................................................................................19

Figura 6 Modulo Sensor Joystick KY-023 [27] ..........................................................................20 Figura 7 Diagrama de modelo de producción de voz [28] ...........................................................22

Figura 8 Sintetizador por formantes en cascada o serie [29] .......................................................22 Figura 9 Sintetizador por formantes en paralelo [29] ..................................................................23 Figura 10 Sintetizador por formantes configuración combinada [29] ..........................................23

Figura 11Diagrama de flujo del funcionamiento del algoritmo [Autor] .......................................26 Figura 12 Extracción de caracteres de imagen [Autor] ................................................................28

Figura 13 Diagrama de bloques para desarrollo de prototipo [Autor] ..........................................31 Figura 14 Modulo Sensor Joystick KY-023 [27] ........................................................................31

Figura 15 Etapas del método HID ..............................................................................................32 Figura 16 Diagrama de flujo algoritmo modulo sensor ...............................................................33

Figura 17 Secciones de método Microcontrolador y Python .......................................................34 Figura 18 Diagrama de flujo programa Python ...........................................................................35

Figura 19 Soporte para mandíbula [Autor] .................................................................................36 Figura 20 Cilindro de acople [Autor] ..........................................................................................36

Figura 21 Caja y tapa para compactar el prototipo [Autor] .........................................................37 Figura 22 Interfaz de usuario [Autor] .........................................................................................37

Figura 23 Lista de frases de saludos [Autor] ...............................................................................38 Figura 24 Lista de frases de respuesta [Autor] ............................................................................38

Figura 25 Lista de frases de preguntas [Autor] ...........................................................................38 Figura 26 Lista de frases de despedidas [Autor] .........................................................................39

Figura 27 Panel de texto y teclado de interfaz [Autor] ................................................................39 Figura 28 Botón para buscar imagen y botón de reproducir el texto [Autor] ...............................40

Figura 29 Texto extraído de imagen e imagen original [Autor] ...................................................40 Figura 30 Sección frases definidas por usuario [Autor] ..............................................................41

Figura 31 Prototipo obtenido junto con el aplicativo sintetizador [Autor] ...................................42 Figura 32 Mouse acondicionado [Autor] ....................................................................................43

Figura 33 Grafica de tiempos de acuerdo al número de pruebas con prototipo ............................44 Figura 34 Usuario validando el sistema ......................................................................................44

Figura 35 Manipulación de mouse acondicionado ......................................................................45 Figura 36 Grafica de tiempos de acuerdo al número de pruebas con mouse acondicionado .........45

Figura 37 Usuario con discapacidad validando el sistema sintetizador y el prototipo [Autor]......46 Figura 38 Usuario simulando condiciones de discapacidad para la validación del sistema [Autor]

..................................................................................................................................................47

Page 6: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

iv

Índice de Tablas

Tabla 1 Unidades de concatenación ............................................................................................15

Tabla 2 Comparación de librerías ...............................................................................................25 Tabla 3 Tiempos obtenidos de prueba con prototipo ...................................................................44

Tabla 4 Tiempos obtenidos de prueba con mouse acondicionado ...............................................45 Tabla 5 Tiempos obtenidos en prueba para persona discapacitada usando el prototipo................46

Tabla 6 Palabras por minuto implementando el prototipo ...........................................................47 Tabla 7 Palabras por minuto implementando el mouse acondicionado ........................................47

Page 7: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

v

Resumen

Debido a la dificultad de comunicación que presenta una persona con limitación vocal y de

movilidad en sus miembros superiores, se buscó el desarrollo de un sistema sintetizador que les

permita tener una mejor comunicación con las demás personas de su entorno, es por esto, que en

el presente documento se explicará el desarrollo e implementación de un sintetizador de texto a

voz para personas con discapacidad vocal y limitación en el movimiento de las extremidades

superiores (manos, brazos).

En el desarrollo del sistema sintetizador, se elaboró una aplicación la cual se visualiza como una

interfaz de usuario, ésta consta principalmente de un teclado y un panel de texto donde el usuario

puede ver lo que él mismo está conformando o escribiendo mediante el uso del teclado, el desarrollo

de esta aplicación fue realizado mediante la implementación de Python, ya que es un software libre

y cuenta con diversas herramientas para el desarrollo de la aplicación, luego, se implementó un

sensor que permitiera de manera practica el manejo de la aplicación, para este caso se realizaron

dos adaptaciones de mouse, una de ellas consistió en la implementación de un módulo sensor

joystick con un microcontrolador, la segunda consistió en el aprovechamiento del sensor óptico de

un mouse, al cual se le realizaron unos ajustes para adaptarlo a la situación que se presentaba; A

las dos adaptaciones de mouse realizadas, se les acondiciona una estructura para que el usuario

pueda manipular el mouse para el uso de la aplicación.

Finalmente, se obtuvo el sintetizador de texto a voz manipulado por medio de un sensor mecánico

y uno óptico, de lo cual se pudo obtener una comparación de cuál de los dos mecanismos era más

práctico y de mejor funcionamiento para el uso de la aplicación del sintetizador.

Palabras claves: Síntesis de voz, Procesamiento de texto, Sensor, Voz

Page 8: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

1

1. Introducción

La comunicación es un aspecto esencial que compete a todas las personas para expresarse de

manera directa sobre algo, sin embargo hay quienes presentan una discapacidad para comunicarse

verbalmente, conocida como mutismo o afonía, la cual algunas veces está acompañada de sordera,

de acuerdo a la OMS (Organización Mundial de la Salud), existen alrededor de 1500 millones de

personas que presentan problemas de audición o sordera, lo que conlleva como consecuencia

dificultad en la comunicación y el habla, también se tiene que una persona puede contar con más

de una discapacidad, entre estas se encuentra también la limitación de movimiento [1], como lo fue

el caso del físico Stephen Hawking. En vista de las dificultades que presenta este tipo de población,

se comenzó a hacer uso de la tecnología para poder dar una solución a estas brechas, en algunos

casos se han realizado guantes traductores de señas a voz, pero, de acuerdo a las condiciones de

discapacidad que trata este proyecto, este tipo de solución no aplicaría. Por otro lado, se han

desarrollado aplicaciones que permiten la realización de síntesis de texto a voz para que la persona

o usuario pueda comunicarse de una manera más sencilla, estas aplicaciones se acondicionan a

sensores u otros dispositivos, para que el usuario pueda hacer uso de ella, un ejemplo claro de este

tipo de tecnología, es ACAT1.

Se estima que en Colombia el 2,3% de la población tiene alguna discapacidad, un 5,3% corresponde

a discapacidad auditiva y el 5,18% a discapacidad de voz y habla, y un 34,05% corresponde a

discapacidades del movimiento del cuerpo [2], adicional a esto, existe la posibilidad de que una

persona cuente con limitación de movimiento y a su vez mutismo, impidiendo así, la manera de

comunicarse con la sociedad.

De acuerdo a lo anterior, con el propósito de facilitarle a las personas con discapacidad motora y

vocal, comunicarse con los demás, en este trabajo se presenta el desarrollo de un sistema prototipo

de sintetizador de voz, que le permita al usuario hacer uso de él de una manera sencilla y así mismo

poder comunicarse con las demás personas, para ello se realizó una investigación y

acondicionamiento de herramientas que permitieran el desarrollo del prototipo, haciéndolo de bajo

costo y fácil acceso.

1 El kit de herramientas de asistencia al contexto (ACAT) permite a los usuarios comunicarse fácilmente con otros a

través de la simulación de teclado, la predicción de palabras y la síntesis de voz.

Page 9: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

2

2. Planteamiento del problema.

Debido a la discapacidad de mutismo o afonía que se presenta en la población, se han presentado

varias estrategias para permitirles a estas personas comunicarse con los demás, entre estas

estrategias se encuentra el lenguaje de señas, lo cual implica el uso de las manos y expresiones

faciales, que permite expresar lo que se desea transmitir, por otro lado, están las estrategias

tecnológicas, entre ellas se encuentran los sintetizadores de voz, los cuales con sistemas o

dispositivos encargados de convertir señales a habla, estos sintetizadores se pueden encontrar en

dispositivos móviles mediante las apps como lo es el traductor, en el cual se logra evidenciar la

versatilidad que poseen los sintetizadores de voz para emitir las oraciones o frases que se le

ingresan por medio de texto, sin embargo en algunos casos pueda que las personas presenten alguna

otra limitación aparte de la vocal, como lo puede ser la limitación motriz en sus miembros

superiores o la falta de ellos, lo cual le impide hacer uso de las aplicaciones móviles.

Colombia no cuenta con una cifra totalmente confirmada de la población que tiene alguna

discapacidad, pero de acuerdo al RLCPD (Registro de Localización y Caracterización de Personas

con Discapacidad), se tiene que el 2,3% de la población colombiana presenta alguna discapacidad

[3]. De este porcentaje se estima que un 5,3% corresponde a discapacidad auditiva y el 5,18% a

discapacidad de voz y habla, y un 34,05% corresponde a discapacidades del movimiento del

cuerpo, manos, brazos, piernas, de igual manera se especifica que de acuerdo a censos realizados,

se tiene que una persona puede contar con más de una discapacidad [2], por lo que existe la

posibilidad de que una persona cuente con limitación de movimiento y a su vez mutismo.

De acuerdo a estas necesidades que se presentan, se han desarrollado diversas soluciones para la

inclusión en la comunicación, como lo es el lenguaje de señas o el Centro de Relevo proporcionado

por el Ministerio de las Tic’s (MinTic), sin embargo, estas herramientas no pueden ser usadas por

la población con discapacidad motriz y vocal, ya que para su uso requieren de la implementación

de sus miembros superiores , por ello se podría cuestionar si ¿es posible desarrollar un sistema

sintetizador acondicionado a este tipo de población, que sea de fácil manipulación y de bajo costo?

Page 10: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

3

3. Justificación

Aunque la comunicación sea un aspecto esencial que requieren todas las personas para expresarse

de manera directa sobre algo, hay personas que presentan una discapacidad para comunicarse

verbalmente, conocida como mutismo o afonía, es por esto que se han presentado varias estrategias

para permitirles a estas personas comunicarse con los demás, entre estas estrategias se encuentra el

lenguaje de señas, lo cual implica el uso de las manos y expresiones faciales, que permite expresar

lo que se desea transmitir, sin embargo, el lenguaje de señas a pesar de que se usa en todo el mundo,

presenta algunas variaciones en algunas regiones; por otro lado, están las estrategias tecnológicas,

entre ellas se encuentran los sintetizadores de voz, los cuales con sistemas o dispositivos

encargados de convertir señales a habla, estos sintetizadores se pueden encontrar en dispositivos

móviles mediante las apps como lo es el traductor, en el cual se logra evidenciar la versatilidad que

poseen los sintetizadores de voz para emitir las oraciones o frases que se le ingresan por medio de

texto; entre las estrategias tecnológicas, también se pueden encontrar guantes o mecanismos que

permiten la traducción de las señas a textos o audios lo cual facilita la comunicación para las

personas con limitación vocal, sin embargo, estas soluciones tecnológicas en algunos casos no son

del todo útiles, debido a que algunas personas que presentan problemas de comunicación, también

presentan complicaciones o discapacidades que les impide realizar movimientos con sus manos o

brazos, lo cual complicaría la manipulación de dispositivos móviles, uso de guantes traductores de

señas o la implementación del lenguaje de señas.

Debido a lo anterior mencionado, se requiere la realización de un prototipo de sintetizador de voz

que sea manejado a través de un sensor fácilmente manipulable por personas sin extremidades

superiores, para que de eso modo su comunicación con los demás no sea limitada por sus

condiciones físicas.

Page 11: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

4

4. Objetivos

4.1 Objetivo General

Desarrollar un sistema prototipo de sintetizador de voz manipulado por medio de un sensor,

para personas con movilidad reducida de extremidades superiores y limitación vocal.

4.2 Objetivos específicos

• Diseñar un prototipo de sintetizador de voz que permita a la población con limitación motriz

y vocal comunicarse con las personas oyentes.

• Diseñar la interfaz gráfica del sistema.

• Validar el funcionamiento del prototipo a través de una persona con condiciones normales,

simulando las limitaciones de la población a la que se dirige el proyecto.

Page 12: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

5

5. Antecedentes

En esta sección se expondrán algunos proyectos de sintetizadores de texto a voz que han sido

implementados para facilitar la comunicación de las personas que presentan discapacidad vocal o

algunas complicaciones con el habla, estos sintetizadores en ciertos casos van de la mano con otro

dispositivo, el cual le proporciona al sintetizador las señales para su funcionamiento, algunos

dispositivos suelen ser sensores neuronales, guantes, cámaras, entre otros.

De [4] los autores, implementando Machine Learning, buscaban el desarrollo de un dispositivo que

pudiera beneficiar a la población con limitaciones de voz y movimiento, haciendo uso de las

reproducciones de gestos, las cuales juegan un papel esencial para convertir los datos del sensor en

salida de voz o para operar un robot de selección y colocación para el movimiento restringido. El

dispositivo está diseñado para ser un dispositivo portátil como un guante que se lleva en la mano

de la persona. La unidad de sensores se coloca en nodos específicos del guante para registrar la

posición del gesto. Los sensores de acelerómetro o giroscopio se pueden implementar fácilmente.

Los datos de detección son recopilados por el microcontrolador que los transmite a un nuevo

microcontrolador a través del transceptor RF / Bluetooth conectado al sistema. con los gestos o

datos recibidos, se tiene como resultado un conjunto de caracteres o una cadena, seguido de esto

se utiliza un algoritmo de revisión ortográfica para mejorar la cadena con el propósito de formar

una palabra coherente con lo que la persona expresó mediante los gestos. Las palabras se introducen

en una unidad de conversión de texto a voz donde se utiliza una voz generada por computadora

para generar las palabras. Finalmente se logró un producto que permite la comunicación de las

personas sordomudas con personas que no comprenden las señas, mediante la salida de voz que se

obtuvo, adicional a esto se menciona que pude usarse en otras aplicaciones como controlar un robot

para recoger y colocar objetos para personas en silla de ruedas, personas con impedimentos de

movimiento y ancianos.

En [5] los autores plantean un sistema que consta principalmente de dos módulos, el primer módulo

consiste en extraer los gestos del lenguaje de señas indio (ISL) a partir de un video en tiempo real

y mapearlo con un habla comprensible para los humanos. En consecuencia, el segundo módulo

tomará el lenguaje natural como entrada y lo mapeará con gestos animados de lenguaje de señas

indio equivalentes. El procesamiento de video a voz incluirá la formación de cuadros a partir de

videos, la búsqueda de la región de interés (ROI) y el mapeo de imágenes con una base de

conocimiento del idioma utilizando un enfoque basado en correlación y luego la generación de

audio relevante utilizando la API de Google Text-to-Speech (TTS). A la inversa, el lenguaje natural

se asigna con gestos equivalentes del lenguaje de señas indio mediante la conversión de voz a texto

mediante la API de Google Speech-to-Text (STT), lo que permite asignar aún más el texto a gestos

animados relevantes de la base de datos. Para el desarrollo del proyecto, realizaron capturas de

imágenes o fotogramas de las señas que hace la persona, luego de tener las capturas, se realizó un

mapeo del cual se pudo llevar las señas a formato de texto, permitiendo de esta manera realizar una

conversión del lenguaje de señas exitosa, pero para una mejor interacción humano-computadora,

se debe procesar aún más el texto obtenido anteriormente, de esta manera se convierte mediante

Google TTS (Text to Speech), lo cual da todas las disposiciones para la conversión de texto a audio,

Page 13: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

6

por otra parte se hace uso de Google SST (Speech to Text) para procesar el lenguaje natural de una

persona hablante, el primer paso es generar datos de texto a partir de datos de voz de audio.

De [6], se tiene un planteamiento para la elaboración de un dispositivo que permita comunicarse a

las personas mudas con personas que puedan hablar, mediante sensores neuronales. Este

dispositivo utiliza sensores neuronales que se fijan sobre la cabeza y detrás del lóbulo de la oreja

del usuario. Los usuarios pueden realizar las señas que se implementan normalmente para

transmitir sus ideas. Los sensores detectan los impulsos cerebrales ya que cada movimiento de la

mano tiene un conjunto específico de impulsos cerebrales y luego se realizan algunos cálculos

específicos utilizando la Transformada Discreta de Fourier. La lógica difusa en la inteligencia

artificial se utiliza para hacer coincidir las soluciones

obtenidas de las señales convertidas con las soluciones almacenadas para que convierta los

impulsos en voz y de esa voz (la voz traducida y sintetizada artificialmente de los tontos) como

salida que hace a otros. para entender sus comentarios fácilmente. De esta manera, el sintetizador

de voz artificial reconforta a la persona muda a superar su discapacidad comunicándose como una

persona normal. Por otra parte, de [7] se tiene que mediante el uso de LabVIEW se desarrolló una

aplicación capaz de ayudar a las personas que cuentan con algunas discapacidades, en específico

discapacidades visuales y/o vocales, aunque cabe aclarar que también es útil al resto de la

población. Esta aplicación es una herramienta que consta de un convertidor de Texto a Voz (TTS)

con la capacidad de leer archivos de texto en código ASCII (.txt), imágenes con extensión .jpg y

texto introducido directamente desde la misma interfaz gráfica de la aplicación. Además, es capaz

de convertir el texto interpretado en documentos codificados en Braille y desplegarlos en un

archivo del procesador de texto más común que es Microsoft Word. Como punto final, la aplicación

es capaz de guardar la lectura computarizada en archivos de audio tipo WAV (WAVE form audio

file format) y así crear audiolibros de las fuentes de texto ya descritas.

En [8] se observó que tuvieron como referencia ACAT, el programa mediante el cual Stephen

Hawking se comunicaba con la sociedad, de allí nace la idea de la siguiente aplicación, la cual

permite tener una comunicación un poco más directa entre las personas que presentan

discapacidades que les impide hablar, y las personas que están a su disposición o compañía. El

software desarrollado, es una aplicación con entorno gráfico, el cual cuenta de dos o tres usuarios

que la usan, es decir se pueden registrar dos o tres personas en la aplicación, una de ellas es el

paciente o la persona que presenta la discapacidad que le impide comunicarse correctamente, otro

de los usuarios es la persona es quien se encuentra la mayoría del tiempo con el paciente, y un

tercer usuario puede ser el médico tratante o el terapeuta, ya que la aplicación va enfocada a la

población que por alguna alteración en su desarrollo no pueden moverse correctamente ni tampoco

hablar, pero son conscientes de lo que sucede en su entorno. La aplicación puede manejarse con un

mouse o un joystick, ya que lo que se requiere para su funcionamiento es un clic, de esta manera

se selecciona las letras para formar las frases que se quieren transmitir, o se puede también hacer

selección de alguna película para el entretenimiento del usuario.

De [9] los autores ejecutaron la elaboración de un guante inteligente para personas con problemas

de audición e incapacidad para hablar. El guante consta de cinco sensores flexibles que permiten

reconocer la torsión de cada dedo, el controlador utilizado como parte del lado del transmisor fue

un Arduino NANO interconectado con el transmisor de RF, el cual permite enviar las señales de

Page 14: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

7

los sensores. Los sensores flexibles y el transmisor de RF están interconectados con el

microcontrolador. En el lado del colector, hay un módulo de RF para obtener las señales. El

microcontrolador utilizado como parte del lado beneficiario fue el Arduino Mega2560, se empleó

también el módulo Emic-2, mediante el cual se intenta transmitir el sonido a través de un altavoz

de 8 ohmios. El módulo de texto a voz de EMIC 2 se utiliza para crear el sonido árabe donde en

EMIC 2 se caracteriza por los sonidos de letras en inglés y español según las hojas técnicas. El

guante habla de las letras de comunicación basadas en gestos, ya que produce un sonido a través

del parlante, lo que ayuda a restringir el límite de correspondencia entre los individuos que no

cuentan con la voz y los oyentes. Con este proyecto se buscó ayudar a esta clase de individuos que

no hablan, a hablar con otros y mejorar sus compromisos con el desarrollo de su entorno.

En [10] se tiene que, de acuerdo a que las personas con discapacidades graves tienen diferentes

estados y cursos de su enfermedad, los dispositivos de entrada que se usan para el sistema de

asistencia no son los mismos, es por eso que, de acuerdo con las necesidades de las personas con

discapacidades graves, se diseñó un dispositivo de entrada de asistencia (AID) el cual se integró

con el sistema Intel Assistive Context-Aware Toolkit (ACAT) para personas con discapacidades

graves. Cabe mencionar que ACAT era la plataforma mediante la cual Stephen Hawking se

comunicaba. El ACAT AID es un dispositivo de entrada de asistencia diseñado para el sistema

Intel ACAT, de acuerdo con las necesidades de los discapacitados graves, se diseñaron e integraron

varios tipos de entrada de asistencia (como el tipo inductivo y el tipo de contacto) con el sistema

Intel ACAT para que los discapacitados graves seleccionaran más opciones. Hay cinco tipos de

interruptores para la entrada de ACAT AID, que son tipo de interruptor, tipo de sensor, tipo de

imagen, tipo de bioseñal y tipo de voz, etc. El tipo de interruptor (interruptor de tipo mecánico)

pertenece al tipo de entrada de contacto, como los interruptores de botón y el interruptor controlado

por la boca. Debido a que el interruptor de tipo inductivo necesita energía para actuar, se le llamó

nuevamente interruptor de tipo activo. De lo contrario, el interruptor de tipo de contacto se

denominó interruptor de tipo pasivo. El mismo tipo de señal de entrada se generará para el ACAT

AID mediante el procesamiento de señales. El usuario puede operar la función de computadora /

tableta con solo una tecla, y comunicarse con otros, controlar los electrodomésticos, jugar, estudiar

y trabajar. En este estudio, se utilizó un concepto de diseño modular para ampliar los tipos de

entrada, de esta manera se pueden integrar varios tipos de interruptores de entrada y mejorar la

entrada hacia una mayor eficiencia, el sistema puede conectar interruptores activos y pasivos, y

usar codificación de código Morse para crear instrucciones simples para la entrada. Hay dos modos

de funcionamiento en ACAT AID. Uno es el modo de entrada ACAT, que incluye cuatro

instrucciones para mejorar el efecto de entrada de ACAT, el elemento corto del código Morse. El

otro es el modo de mouse, mediante la figura que se presenta a continuación se puede observar los

códigos empleados y el movimiento del mouse para el funcionamiento de ACAT AID.

Page 15: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

8

Figura 1 Código morse y de mouse [10].

De [11] los autores diseñaron un software llamado TTS Gramaty, una aplicación sencilla, con la

funcionalidad de convertir de texto a voz. El sistema fue desarrollado usando lenguaje C # sobre

.Net Framework 3.5. La aplicación se divide en dos módulos principales: el módulo de la aplicación

principal que incluye los componentes básicos de la GUI que maneja las operaciones básicas de la

aplicación, como la entrada de parámetros para la conversión, ya sea a través de un archivo o

entrada directa del teclado.

El segundo módulo, el motor de conversión principal que se integró en el módulo principal, es para

la aceptación de datos y, por lo tanto, la conversión. TTS Gramaty (TTSG) convierte texto en voz

escribiendo el texto en el campo de texto proporcionado o copiando un documento externo en el

computador y luego pegándolo en el campo de texto proporcionado en la aplicación. También

proporciona una funcionalidad que permite al usuario navegar y abrir un documento de texto en la

máquina. Luego, TTSG carga el texto del documento en el área de texto de la aplicación y el

procedimiento de lectura se inicia automáticamente. TTSR contiene una función excepcional que

le da al usuario la opción de guardar su texto ya convertido en cualquier parte de la máquina local

en un formato de audio; esto permite al usuario copiar el formato de audio a cualquiera de sus

dispositivos de audio, de modo que en adelante pueda tratarlo como un libro de audio.

En [12] los autores proponen la primera aplicación TTS árabe que proporciona un sistema

inteligente de predicción de texto con características de alta usabilidad, con un gran corpus global

y también un corpus local. La predicción de palabras utiliza modelos de lenguaje estadístico en un

gran corpus árabe que se recopilan de las conversaciones diarias. La aplicación TTS árabe

inteligente funciona en teléfonos inteligentes o tabletas para el uso diario. La página de inicio tiene

las funciones principales: convertir texto a voz después de escribir una palabra / una oración usando

predicciones de palabras mientras el usuario está escribiendo. El sistema de predicción de palabras

utiliza corpus globales y locales para predecir nueve palabras potenciales. Las nuevas palabras se

incluyen inmediatamente en el corpus local para ser utilizadas en el modelado del lenguaje para el

próximo uso. Para mayor facilidad de uso, el sistema utiliza características como: Completar

palabras automáticamente usando nuestro corpus global como léxico, guardar frases favoritas con

su discurso para un fácil acceso, diferentes configuraciones de voz como género y edad, fácil acceso

Page 16: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

9

a frases predefinidas de uso frecuente en diferentes lugares y dominios como viajes, restaurantes,

compras, hospitales, escuelas y mezquitas. El usuario o el cuidador también pueden crear categorías

especiales y agregar fotos con el texto y el habla deseados que podrían ser usando un sintetizador

TTS o una grabación de voz natural.

Page 17: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

10

6. Marco teórico

6.1 Síntesis de voz:

La síntesis de voz es el proceso de transformar el texto a sonido, lo cual sirve para la creación de

voz artificial. Su funcionamiento se da una vez se entregan las palabras en formato de texto,

enseguida el sintetizador se encarga de pronunciarlas, puede ser implementado en productos

software o hardware.

El habla sintetizada se puede crear mediante la concatenación de fragmentos de habla grabados que

son almacenados en una base de datos. Los sistemas difieren en el tamaño de las unidades de habla

almacenadas; un sistema que almacena fonos y difonos permite un mayor rango de sonidos, pero

carece de claridad. Para usos específicos, el tamaño del almacenamiento de palabras completas u

oraciones permite una mayor calidad de audio. De manera alternativa, un sintetizador puede

incorporar un modelo de tracto vocal u otras características de la voz humana para recrear

completamente una voz sintética [13] [14].

En un conversor texto a voz (TTS: Text-to-Speech) intervienen varios módulos que realizan

transformaciones del texto de entrada y le incorporan una cantidad de información adicional para

generar el sonido sintetizado, tales como el procesamiento del texto o procesamiento de lenguaje

natural, la generación de la prosodia y el bloque de la síntesis de la voz, a continuación, se explicará

cada uno de estos módulos:

Procesamiento del texto: Uno de los primeros pasos es la normalización del texto para expandir

abreviaciones, convertir números y fechas en texto, etc. Esta es una tarea importante ya que es

necesario para el correcto funcionamiento de los siguientes módulos que el texto este constituido

solamente por grafemas, es decir unidades mínimas de escritura. En ocasiones se realiza también

un etiquetado morfosintáctico, que resulta necesario para tareas como la conversión de grafemas a

fonemas y la generación de junturas terminales en la prosodia, se realiza la conversión de grafemas

a fonemas y la silabificación para obtener la secuencia de fonemas necesaria para reproducir el

texto, incluyendo la información sobre sílabas que también es importante para los siguientes

módulos [15].

Prosodia: En este componente se genera la información prosódica para poder producir la voz. Para

ello se predicen las frases entonativas y la entonación de la oración, y también la duración y la

energía de los fonemas. La correcta generación de esta información repercutirá directamente en la

naturalidad y expresividad del sistema [15].

Generación de la voz: En este último componente es donde se genera la voz considerando la

información proporcionada por los módulos de Procesamiento del texto y Prosodia, la cual está

constituida por la secuencia de fonemas con la información relativa a su duración, energía,

frecuencia fundamental y posición dentro de la frase entonativa, la oración y el discurso.

Page 18: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

11

A continuación, se observa el diagrama de un sintetizador de texto a voz típico, allí se puede ver

los tres bloques mencionados anteriormente, el analizador de texto o procesamiento de texto, el

analizador lingüístico o prosodia, y finalmente el generador de sonido o voz [15].

Figura 2 Diagrama de un sintetizador de texto a voz [15].

6.2 Tipos de Sintetizador

Síntesis por formantes

La síntesis por formantes fue la primera técnica de síntesis en ser desarrollada y fue la dominante

hasta los primeros años de la década de los 80. La síntesis por formantes adopta el siguiente enfoque

al problema de la síntesis modular, basado en modelo y acústico-fonético. Se hace uso de un

modelo acústico de tubo de un modo particular, ya que los elementos de control del tubo se pueden

relacionar fácilmente con propiedades acústico-fonéticas. En la figura 3 se muestra un esquema

básico de la síntesis por formantes, donde se observa como el sonido se genera en la fuente

periódica para sonidos sonoros, y ruido blanco para sonidos obstruyentes. Esta señal base se

introduce en el modelo de tracto vocal, haciendo diferencia en el modelado de las cavidades oral y

nasal, de modo que la señal pueda pasar por esta última únicamente en el caso que el sonido

requiriera de ser nasalizado. Por último, la salida de estas componentes se combina y se pasa a

través de una componente de radiación que simula las características de radiación de los labios y

de la nariz [16].

Page 19: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

12

Figura 3 Diagrama básico de síntesis por formantes [16].

La valoración o evaluación de la síntesis por formantes tiene un resultado claro ya que suena casi

natural, por eso también es llamado “sonar limpiamente”, aunque está lejos de ser natural. Esto se

debe principalmente a que tanto el modelo de fuente como el de destino y el de transición son

demasiado simplistas, dejando de lado muchas de las sutilezas que realmente están implicadas en

la dinámica del habla. De acuerdo a la manipulación de los valores requeridos para al síntesis por

formantes, existe un conflicto entre tener un modelo fácilmente controlable y otro que produce un

habla sintética de alta calidad. La mayor crítica hacia la síntesis por formantes es que esta no suena

natural. Aun así, por producir habla inteligible la hace aún hoy competitiva según sea la aplicación

en la que vaya a ser utilizada [16].

Síntesis articulatoria

Este tipo de sintetizadores son modelos físicos basados en las descripciones detalladas de

mecanismos fisiológicos de producción de voz y generación de sonidos en el aparato vocal,

posiblemente es la forma más obvia de sintetizar habla, ya que se intenta simular de manera directa

la producción del habla humana, este enfoque es el más antiguo de los planteamientos en síntesis,

ya que la conocida “máquina parlante” de von Kempelen puede ser vista como un sintetizador

articulatorio [14][16].

Page 20: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

13

Figura 4 Maquina parlante [14].

Esta máquina era un dispositivo mecánico con tubos, fuelles y conductos, los cuales con un

pequeño entrenamiento podrían ser utilizados para producir habla reconocible. Este dispositivo

solamente imita el tracto vocal usando fuentes y filtros, con la ventaja de que, al ser controlado por

un ser humano en tiempo real, los ajustes llevados a cabo se aprovechan de los mecanismos usados

por él para el control de la producción de la voz. Muchos sintetizadores modernos son extensiones

de los modelos acústicos de tubos, pudiéndose construir modelos generales complejos a partir del

conocimiento de las propiedades de propagación del sonido [16].

Síntesis derivada de las técnicas de predicción lineal

Este tipo de síntesis son de análisis-síntesis que trabajan con parámetros Lineal Predictive Coding

(LPC) para controlar la función de transferencia del filtro que simula el tracto vocal, LPC es una

de las técnicas de mayor alcance de análisis del habla y uno de los métodos más útiles para codificar

el hablan con calidad en un índice binario. Proporciona estimaciones extremadamente exactas de

los parámetros del habla, el cual es relativamente eficiente. El LPC comienza asumiendo que la

señal del habla es producida por un zumbador en el extremo de un tubo. El espacio entre las cuerdas

vocales produce el zumbido, que es caracterizado por su intensidad y la frecuencia. La zona vocal

forma el tubo, que es caracterizado por sus resonancias, que se llaman formantes.

El LPC analiza la señal del habla estimando los formantes, quitando sus efectos de la señal del

habla, y estimando la intensidad y frecuencia del zumbido restante, al proceso de quitar los

formantes se le llama filtración inversa, la señal restante se conoce como residuo, de esta manera

el LPC sintetiza la señal de habla invirtiendo el proceso, es decir utiliza el residuo para crear la

señal fuente, utiliza los formantes para crear un filtro y funcione la fuente a través de él para

finalmente tener como resultado el habla [17].

Síntesis concatenativa

La síntesis concatenativa es la opción que ha tenido más seguidores dentro de la comunidad

científica, parte de unidades de voz pregrabadas que debe de unir entre sí para generar el mensaje

oral. Estos sintetizadores intentan reducir al máximo el ruido de la codificación, y se realiza por

medio de una concatenación de unidades digitalizadas que son grabadas previamente y es ajustada

a la nueva producción de frase por medio de la prosodia original [16][17].

Page 21: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

14

La técnica de concatenación de unidades, utiliza unidades pregrabadas del lenguaje que se

concatenan en base a los algoritmos computacionales de la selección para formar nuevas palabras

y oraciones, las unidades de voz digitalizadas, que son escogidas por el sintetizador, en base a la

transcripción fonética del texto que quiere convertirse en habla, actualmente la mayoría de los

conversores utilizan síntesis por concatenación de unidades, ya que con menos esfuerzo se obtienen

mejores resultados. Las unidades que participan en la concatenación, pueden ser de diferente

tamaño en un mismo sistema, las unidades que más frecuentemente se han utilizado en diferentes

proyectos son cinco, fonema, difonema, trifonema, silabas y semisilabas, y por último palabras, en

la tabla 1 se puede apreciar una descripción de cada unidad. En cuanto a la calidad de voz sintética,

con el método de concatenación se consiguen mejores resultados, ya que la síntesis por

concatenación permite alcanzar un alto grado de naturalidad [18][19].

UNIDAD DESCRIPCIÓN

Fonema

Es la unidad mínima capaz de diferenciar significados en las palabras, los fonemas agregan mucha flexibilidad a los sintetizadores que los utilizan. Una limitante del uso de los fonemas para la sintetización es su propiedad abstracta que engloba variaciones fonéticas contextuales (alófonos) lo que desemboca en una mala calidad de la voz sintética.

Difonema

Los efectos coarticulatorios tienden a minimizarse en el centro acústico de un fonema, lo cual derivó la propuesta del difonema, el trozo de voz que va desde la mitad de un fonema a la mitad del siguiente, como la unidad más satisfactoria para la concatenación.

Trifonema

Un trifonema es aquella unidad constituida por un fonema más de la mitad del segmento precedente y la mitad del siguiente segmento, con objetivo de evitar la concatenación por el segmento que ocupa el centro del trifonema. Su uso dota de más naturalidad al sintetizador de voz, aunque no se usa esta metodología en todas las ocasiones.

Silabas y semisilabas

La semisilaba es aquella unidad formada por la mitad de la silaba estableciendo el límite en el centro del núcleo silábico (una vocal). La concatenación a nivel de silabas, implícitamente incluye los

Page 22: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

15

conceptos de unidades fonéticas: fonemas, difonemas y trifonemas, es por eso que muchas veces se escoge esta unidad como base de los sistemas.

Palabras

La palabra es la unidad que más proporciona calidad a la síntesis, pero sería necesario disponer de una base de datos con todas las palabras, donde cada palabra haya sido grabada en diferentes contextos para solucionar problemas de coarticulación. Por este motivo esta unidad se usa de manera restringida donde los vocabularios suelen ser limitados.

Tabla 1 Unidades de concatenación

6.3 Python

Python es un lenguaje de programación que puede ser clasificado como un lenguaje de alto nivel,

multiplataforma, de tipado dinámico y multiparadigma. Es administrado por la Python Software

Foundation. Posee una licencia de código abierto, denominada Python Software Foundation

License. De igual forma Python es un lenguaje que puede ser implementado en cualquier sistema

operativo, en la página oficial de Python se encuentran los instaladores en las versiones que se

requieran para el sistema que se requiera [20].

La biblioteca estándar de Python es muy extensa y ofrece una amplia variedad de funciones,

contiene módulos incorporados (escritos en C) que brindan acceso a la funcionalidad del sistema,

como E / S de archivos que de otra manera serían inaccesibles para los programadores de Python,

así como módulos escritos en Python que brindan soluciones generalizadas para muchos problemas

que ocurren en programación diaria. Algunos de estos módulos están diseñados explícitamente

para fomentar y mejorar la portabilidad de los programas de Python al abstraer los aspectos

específicos de la plataforma en API independientes de la plataforma. Los instaladores de Python

para la plataforma Windows generalmente incluyen la biblioteca estándar completa y, a menudo,

también incluyen muchos componentes adicionales. Para los sistemas operativos similares a Unix,

Python normalmente se proporciona como una colección de paquetes, por lo que puede ser

necesario utilizar las herramientas de empaquetado proporcionadas con el sistema operativo para

obtener algunos o todos los componentes opcionales.

Además de la biblioteca estándar, existe una colección creciente de varios miles de componentes

(desde programas y módulos individuales hasta paquetes y marcos de desarrollo de aplicaciones

completos), disponibles en la página oficial de Python [21][20].

Page 23: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

16

6.4 Microcontroladores

Un microcontrolador es como un computador, el cual cuenta con un circuito programable capaz de

ejecutar las ordenes grabadas en su memoria, existen varios tipos de microcontroladores, a

continuación, se mencionarán algunos de ellos:

6.4.1 Microcontrolador PIC

Controlador de interfaz periférica (PIC) proporcionado por Micro-chip Technology para

categorizar sus microcontroladores de chip solitarios. Estos dispositivos han sido exitosos en

microcontroladores de 8 bits. La principal causa detrás de esto es que la tecnología de microchips

ha estado actualizando constantemente la arquitectura de los dispositivos e incluye muchos

periféricos necesarios para el microcontrolador para satisfacer las necesidades de los usuarios. Los

microcontroladores PIC son muy populares entre aficionados e industriales, esto es solo causa de

una amplia disponibilidad, bajo costo, gran base de usuarios y capacidad de programación en serie.

6.4.2 Microcontrolador AVR

AVR también conocido como Advanced Virtual RISC, es una arquitectura Harvard personalizada

de 8 bit. Fue inventado en el año 1966 por Atmel. La arquitectura de Harvard significa que los

datos se acumulan en diferentes espacios y se usan simultáneamente. Fue una de las principales

familias de microcontroladores que empleó memoria flash en el chip básicamente para almacenar

programas, en contraste con EPROM, EEPROM o ROM programables de una sola vez, utilizados

por otros microcontroladores al mismo tiempo. La memoria flash es una memoria programable no

volátil (constante en el apagado).

Existen multiplataformas que generalmente su diseño o hardware consiste en un microcontrolador

AVR, algunas de estas multiplataformas pueden llegar a ser de bajo costo o económicas, lo cual

permite que cualquier persona pueda adquirirlas.

6.4.3 Microcontrolador ARM

ARM es el nombre de una empresa que diseña microprocesadores de arquitectura y adicional a

esto también se dedica a otorgar licencias a los productores que fabrican chips originales. En

realidad, ARM es una arquitectura RISC (de instrucciones reducidas) genuina de 32 bits.

Inicialmente fue desarrollado en el año 1980 por Acorn Computers Ltd. Este microprocesador de

base ARM no tiene memoria flash incorporada. ARM está especialmente diseñado para

dispositivos con microcontroladores, es fácil de entrenar y usar, sin embargo, lo suficientemente

potente como para los dispositivos integrados más desafiantes [22].

Page 24: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

17

6.5 Herramientas de Software y Hardware

6.5.1 Pyttsx3

Pyttsx3 es una biblioteca de conversión de texto a voz en Python. A diferencia de las bibliotecas

alternativas, funciona sin conexión y es compatible con Python 2 y 3, es compatible con los motores

de voz que tiene cada sistema operativo, a continuación, se listan los motores de voz junto con los

sistemas operativos correspondientes [23].

• sapi5 – SAPI5 en Windows

• nsss – NSSpeechSynthesizer en Mac OS X

• espeak – eSpeak en cualquier otra plataforma

Pyttsx3 cuenta con múltiples funciones que permiten usar de manera correcta la librería, entre sus

funcionas está pyttsx3.init(), la cual obtiene una referencia a una instancia de motor que usará el

controlador dado. Entre sus funciones se pueden encontrar aquellas que permiten la caracterización

del motor que se está usando, a continuación, se listarán algunas de las funciones o propiedades:

getProperty (): Obtiene el valor actual de una propiedad del motor. En esta función se pueden

modificar los siguientes parámetros

• rate: Tasa de habla entera en palabras por minuto. El valor predeterminado es 200 palabras

por minuto.

• Voice: Identificador de cadena de la voz activa.

• Voices: Lista de pyttsx3.voice.Voiceobjetos descriptores.

• Volumen: Volumen de punto flotante en el rango de 0.0 a 1.0 inclusive. El valor

predeterminado es 1.0.

runAndWait (): Se bloquea mientras se procesan todos los comandos actualmente en cola. Invoca

devoluciones de llamada para las notificaciones del motor de forma adecuada. Devuelve cuando

todos los comandos en cola antes de esta llamada se vacían de la cola.

say (texto: unicode, nombre: cadena): Pone en cola un comando para pronunciar un enunciado.

La voz se emite de acuerdo con las propiedades establecidas antes de este comando en la cola.

setProperty (nombre, valor): Pone en cola un comando para establecer una propiedad del motor.

El nuevo valor de propiedad afecta a todas las expresiones en cola después de este comando.

• Rate: Tasa de habla entera en palabras por minuto.

• Voice: Identificador de cadena de la voz activa.

• Volumen: Volumen de punto flotante en el rango de 0.0 a 1.0 inclusive.

Page 25: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

18

6.5.2 Tesseract y pytesseract

• Tesseract

Tesseract se desarrolló originalmente en Hewlett-Packard Laboratories Bristol y en Hewlett-

Packard Co, Greeley Colorado entre 1985 y 1994, con algunos cambios más realizados en 1996

para portar a Windows, y algunos C ++ izing en 1998. En 2005 Tesseract estaba abierto

suministrado por HP. Desde 2006 hasta noviembre de 2018 fue desarrollado por Google.

Tesseract es un motor de reconocimiento de texto de código abierto (OCR), disponible bajo la

licencia Apache 2.0. Tesseract se puede utilizar directamente a través de la línea de comandos o

(para programadores) mediante el uso de una API para extraer texto impreso de las imágenes.

Admite una amplia variedad de idiomas. Tesseract no tiene una GUI incorporada, pero hay varias

disponibles en la página 3rdParty. Las herramientas externas, los envoltorios y los proyectos de

capacitación para Tesseract se enumeran en complementos. Tesseract se puede utilizar en su propio

proyecto, bajo los términos de la Licencia Apache 2.0. Tiene una API con todas las funciones y se

puede compilar para una variedad de objetivos, incluidos Android y iPhone. Consulte las páginas

de 3rdParty y AddOns para ver ejemplos de lo que se ha hecho con él [24].

• Pytesseract

Python-tesseract es una herramienta de reconocimiento óptico de caracteres (OCR) para Python.

Es decir, reconocerá y “leerá” el texto incrustado en las imágenes. Python-tesseract es un

contenedor para el motor Tesseract-OCR de Google. También es útil como un script de invocación

independiente para tesseract, ya que puede leer todos los tipos de imágenes compatibles con las

bibliotecas de imágenes Pillow y Leptonica, incluidos jpeg, png, gif, bmp, tiff y otros. Además, si

se usa como un script, Python-tesseract imprimirá el texto reconocido en lugar de escribirlo en un

archivo. Al igual que las demás librerías y herramientas que ofrece Python, su instalación se realiza

mediante comandos que se ingresan en la consola del sistema o terminal, en ocasiones se presentan

errores en la instalación que impiden el correcto funcionamiento de la librería o paquete, para esto

en la página oficial de donde se obtienen las características de pytesseract, se obtiene la información

necesaria para solucionar esos errores y/o problemas que se presenten [25].

6.5.3 Onshape

Onshape es un programa de diseño CAD 3D en la nube. Fue desarrollado por el equipo de

SolidWord y funciona sobre un navegador, sin necesidad de licencia ni instalación. Por lo tanto, es

independiente del sistema operativo y navegador que se esté usando. En este software, cuando se

crea un proyecto, este queda automáticamente guardado en la nube y los proyectos creados están

siempre “up to date” para que puedan ser modificarlos con el móvil, tablet o navegador web.

Onshape permite a los equipos colaborar en un solo diseño compartido, de la misma manera que

varios escritores pueden trabajar juntos editando un documento compartido a través de servicios

en la nube. Se centra principalmente en CAD mecánico (MCAD) y se utiliza para el diseño de

productos y maquinaria en muchas industrias, incluida la electrónica de consumo, maquinaria

mecánica, dispositivos médicos, impresión 3D, piezas de máquinas y equipos industriales.

Page 26: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

19

Las actualizaciones de Onshape se lanzan directamente a la interfaz web y el software no requiere

trabajo de mantenimiento por parte del usuario [26].

Figura 5 Entorno grafico Onshape [Autor]

• En noviembre de 2012, los ex directores ejecutivos de SolidWorks, Jon Hirschtick y John

McEleney, dirigieron un equipo de seis cofundadores que lanzaron Belmont Technology,

un nombre de marcador de posición que luego se cambió a Onshape. La primera ronda de

financiación de la compañía fue de $ 9 millones de North Bridge Venture Partners y

Commonwealth Capital.

• En agosto de 2015, la compañía lanzó su aplicación Onshape para Android.

• En abril de 2016, Onshape presentó su Plan de educación, con una versión gratuita de

Onshape Professional dirigida a estudiantes universitarios y educadores.

• En octubre de 2019, Onshape acordó ser adquirida por PTC

6.5.4 Joystick

El Módulo KY-023 Sensor Joystick es un dispositivo electromecánico consta de dos

potenciómetros en un ángulo de 90 grados, lo que se requiere de 2 pines analógicos para realizar

la interfaz con cualquier tarjeta de desarrollo: Arduino, ESP32, ESP8266, etc.

Este elemento permite el control y manejo de determinados aparatos electrónicos. Normalmente se

utilizan para proyectos robóticos en el cual se necesitan para la movilidad analógica de las

articulaciones de un brazo robótico [27].

Page 27: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

20

Figura 6 Modulo Sensor Joystick KY-023 [27].

• Modelo = KY-023

• Tamaño = 37x25x32mm

• Peso = 15 g

• Material = Plástico ABS. Cobre

• Acepta una variedad de tamaños de cable = (29-20 AWG)

• Tamaño = 17.7cm x 4.6cm

Page 28: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

21

7. Metodología

En esta sección se describe el procedimiento que se realizó para la elaboración del sistema prototipo

sintetizador de texto a voz, el cual comprende la parte de software, en la cual se realizó el aplicativo

de sintetizador y la parte de hardware, donde se desarrolló un mecanismo acorde a la necesidad de

la población a la que se dirige el proyecto.

7.1 Herramienta de sintetización

Para realizar el software, se inició con la investigación de cómo funciona Python en el área de

sintetizadores y con qué herramientas cuenta para ese tipo de área, se encontró que consta de dos

librerías, Pyttsx3 y gTTS, a continuación, se explicará el funcionamiento de la librería Pyttsx3, y

posteriormente un resumen del funcionamiento de las dos (pyttsx3 y gTTS) y su implementación.

Pyttsx3 es una librería multiplataforma que no requiere de una conexión a internet para su

funcionamiento, pyttsx3 obtiene el motor de voz a través de la inicialización, cuando se llama la

operación “init” por primera vez, se devuelve un objeto de motor pyttsx3, cuando se llama

nuevamente, si hay una instancia de objeto de motor, se usará la existente, de lo contrario, se

volverá a crear uno.

Pyttsx3 puede usar cualquier controlador que se le defina mediante la función “init”, sin embargo,

si no se le indica, pyttsx3 obtiene el motor de voz de acuerdo al sistema operativo en el que se esté

ejecutando, principalmente están SAPI5 para Windows, NSSpeechSynthesizer en MAC OS y

eSpeak en Ubuntu o cualquier otra plataforma.

Para este caso se hizo uso del motor SAPI5, puesto a que la aplicación fue desarrollada en

Windosws, SAPI es un motor de voz, que de acuerdo a las características que presenta para la

manipulación de las voces que contiene, usa un método de síntesis de formantes.

El método de síntesis de formantes construye los sonidos a partir de un modelo físico del tracto

(conducto) vocal a través de un conjunto de filtros excitados por fuentes que simulan las cuerdas

vocales. De acuerdo a la investigación se obtuvo que inicialmente se implementaban trenes de

impulsos o dientes de sierra como entrada al sistema, ahora se implementan modelos matemáticos

que permiten controlar los parámetros de la señal glotal, a continuación, se presenta un modelo de

producción de voz [28].

Page 29: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

22

Figura 7 Diagrama de modelo de producción de voz [28].

El modelo de glotis, hace referencia al modelo del espacio limitado que hay entre las cuerdas

vocales verdaderas. Existen diferentes modelos de la glotis, uno de ellos es denominado modelo

exponencial representado por una función transferencia Z de la siguiente forma:

−𝑎𝑒 ln(𝑎)𝑧−1

(1 − 𝑎𝑧−1)2

donde e es la base de los logaritmos neperianos. El numerador es seleccionado de manera que

𝑔(𝑛) = 𝑍−1{𝐺(𝑧)} tenga un valor máximo aproximadamente igual a 1.

De acuerdo a la investigación, se evidenció que los sintetizadores por formantes presentan dos

configuraciones, paralela y en cascada, sin embargo, el mejor resultado se obtiene haciendo una

combinación de estas dos configuraciones, a continuación, se muestran las configuraciones del

sintetizador por formantes. Inicialmente se cuenta con la configuración en cascada o serie, para

este caso se requiere de una fuente de excitación al sistema, esta configuración se conforma por

filtros pasa banda que solo necesitan la frecuencia de los formantes [29].

Figura 8 Sintetizador por formantes en cascada o serie [29].

En la figura 9, se observa la configuración en paralelo, aunque la excitación a los formantes se

realice al mismo tiempo, cada uno de ellos cuenta con una ganancia independiente y a su vez un

ancho de banda que se debe controlar de acuerdo a la salida de audio que se quiera tener

Page 30: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

23

Figura 9 Sintetizador por formantes en paralelo [29].

La literatura plantea, que la configuración combinada o PARCAS en un sintetizador por formantes,

puede obtener mejores resultados que su implementación por separado, en la figura 10 se presenta

como es este tipo de configuración.

Figura 10 Sintetizador por formantes configuración combinada [29].

En este caso se listan las variables que tiene el sistema, para saber a qué hacen referencia, las

constantes K se seleccionan para equilibrar las amplitudes de los formantes de las vocales

• F0 y A0 - Frecuencia y amplitud de la componente vocalizada.

• Fn y Qn – Frecuencias formantes y valores de Q (frecuencia formante/ Ancho debanda)

• VL y VH - Amplitud de la componente sonora (baja y alta).

• FL y FH - Amplitud de la componente no vocalizada (baja y alta).

• QN - Q valor de formante nasal a 250 Hz.

De acuerdo al funcionamiento del sintetizador por formantes, se tiene que para la formación de una

palabra se parte de una fuente que excita un sistema compuesto de filtros, y de acuerdo a las

condiciones de frecuencia, amplitud y ancho de banda que se maneje, se emitirá el sonido

Page 31: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

24

Una vez explicada la manera en que pyttsx3 selecciona el motor de voz, se procede a dar una

descripción y validación de gTTS y pyttxz3:

Inicialmente se encontró la librería gTTS, lo que significa (Google Text-To-Speech), esta librería

se conecta directamente con la API de Google, por lo cual se puede hacer uso de diversos idiomas

y contar con el procesamiento que realiza Google. Se decide realizar una prueba base con la librería,

la cual se explica mediante el siguiente seudocódigo

Importación de librerías

Función Hablar (parámetro)

Asignación de valor obtenido a variable

Configuración idioma

Designación nombre archivo .mp3

Guardar archivo .mp3

Sonar archivo

Entrada por consola

Ejecución Función Hablar (parámetro)

Realizando la prueba implementando la librería gTTS, se hizo necesaria la implementación de una

librería auxiliar que permitiera sonar o emitir el archivo mp3 que se generó.

Siguiendo con la investigación de herramientas, se encontró la librería pyttsx3, para este caso, la

librería no cuenta con una conexión a la API de Google, sin embargo, al igual que con la anterior

herramienta, se realizó una prueba para evidenciar su funcionamiento, para ello se realizó el

siguiente algoritmo

Importar librería

Función Hablar (parámetro)

Sonar parámetro

Esperar un tiempo

Inicialización motor sintetizador

Page 32: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

25

Entrada por consola

Ejecución Función Hablar (parámetro)

De acuerdo a la información adquirida y a la implementación de las dos herramientas o librerías,

se realizó una comparación de algunas de sus características, en la tabla 2 se evidencia esta

comparación, de la cual se decide implementar la librería Pyttsx3, ya que no requiere de una librería

auxiliar para permitir la emisión de audio, adicional a esto, aunque no cuenta con la API de Google,

no requiere de una conexión a internet, lo cual haría que su ejecución se pueda realizar en cualquier

ámbito.

gTTS Pyttsx3

Requiere de conexión a internet No requiere de conexión a internet

Interacción con API de texto a voz de Google

Translate Guarda el audio como archivos mp3

Guarda el audio como archivos mp3 Modificación de propiedades de audio

Diferentes idiomas Diferentes idiomas

Tabla 2 Comparación de librerías

7.2 Desarrollo de algoritmo para aplicativo de sintetizador de texto a voz

El desarrollo de estos algoritmos se realizó de manera paralela en el software Python versión 3.6,

teniendo en cuenta que se realizaron en diferente script para realizar su unificación en uno solo, se

implementó el método de “Hilos”, el cual permite que en un solo script se puedan ejecutar de

manera paralela dos programas sin que interfieran el uno en el otro, esto se realiza mediante la

implementación de la librería threading de Python.

Importar librería

Función Hilo 1 ()

Algoritmo sensor joystick

Función Hilo 2 ()

Algoritmo sintetizador

Declaración Función Hilo 1 Ejecución Función 1

Page 33: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

26

Declaración Función Hilo 2 Ejecución Función 2

7.2.1 Desarrollo algoritmo sintetizador

De acuerdo a las validaciones realizadas a las herramientas de Python (pyttsx3 y gTTS), se

determinó que la librería más adecuada para la realización de la aplicación era pyttsx3, debido a

que no tiene la limitación de que depende de una conexión a internet, y adicional a esto, ella misma

cuenta con las funciones para la emisión del sonido. El funcionamiento del algoritmo se puede

interpretar de acuerdo al siguiente diagrama, de acuerdo a las necesidades o acciones que requiera

realizar la persona que lo ejecute.

Figura 11 Diagrama de flujo del funcionamiento del algoritmo [Autor]

De acuerdo al diagrama de flujo que se presenta en la figura 11, se tiene que la opción inicial en el

funcionamiento del algoritmo, es la redacción del texto, donde se requiere el ingreso de los datos

para proceder con la conformación del texto y finalmente realizar el proceso de síntesis, sin

embargo si no se inicia con la redacción del texto, se tiene la opción de obtener el texto de una

imagen, para ello el algoritmo espera que el usuario decía cargar la imagen, una vez tomada la

decisión se procede a la selección de la imagen que se quiere y mediante el reconocimiento óptico

Page 34: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

27

de caracteres obtener el texto de la imagen, luego de ello el algoritmo sigue al proceso de síntesis

de texto a voz. Si no se inicia por la redacción de texto o la opción de trabajar con una imagen, se

tiene una tercera opción que es un listado de frases, allí el algoritmo espera que el usuario

seleccione la frase que desea y luego de esto pasa al proceso de síntesis para finalmente emitir el

sonido, también está la opción de iniciar el algoritmo mediante el ingreso de frases, para este caso,

se espera que el usuario ingrese las frases que quiera o considere de más utilidad, son almacenadas

en una lista, luego de esto el algoritmo espera que se seleccione una de ellas para proceder con la

síntesis de texto a voz y emitir el sonido. Si no se inicia con esta última opción, el algoritmo sigue

en espera de que el usuario decida qué acción quiere realizar.

Inicialmente se realizó la configuración de la librería pyttsx3, para ello se implementaron las

siguientes líneas:

• engine = pyttsx3.init()

• voices = engine.getProperty('voices')

• engine.setProperty('voice', 'spanish-latin-am+f1')

• rate = engine.getProperty('rate')

• engine.setProperty('rate', rate+30)

Esta configuración lo que permite es iniciar el motor de voz, en este caso toma por defecto el del

sistema operativo, seguido a esto se le asignó el tipo de voz que se quiere usar y por último la

velocidad de reproducción de las palabras.

Luego para el ingreso de texto, se realiza la construcción de un teclado donde todas las teclas se

dirigen al mismo command o función, para este paso se implementó una función lambda que

permite obtener las letras del teclado y realizar su concatenación, en este caso, cada que el usuario

efectúe un “espacio” o un “punto”, el sintetizador sonará la palabra anteriormente escrita. A

continuación, se observa un seudocódigo de la función.

Función Hablar ()

Declaración variables

Frase = Obtener lo que hay en el panel de texto

Recorrer Frase

Si Frase = ‘ ‘ o Frase = ‘.’

Almacenar posiciones

Frase2 = Frase [posiciones almacenadas]

Decir (Frase2)

Esperar

Page 35: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

28

En este caso, se implementaron dos parámetros más de la librería pyttsx3, el primero es el

encargado de sonar o decir lo que se encuentra en la instancia del motor de voz, y el segundo da

una espera en el programa hasta que se haya terminado de reproducir la palabra o frase.

• engine.say ()

• engine. runAndWait ()

Posterior a esto, se realizó la parte de síntesis a partir de imágenes, para ello se implementó el

reconocimiento óptico de caracteres mediante las herramientas pytesseract y Tesseract-ORC, las

cuales permiten la extracción de texto de una imagen, para este caso, se empleó un botón auxiliar

que permite reproducir el texto que se ha extraído, de igual manera en la función del botón se

emplea la línea “engine.say ()”

Figura 12 Extracción de caracteres de imagen [Autor]

Luego, el algoritmo presenta una sección en la que se trabajan frases predeterminadas, para este

caso se cuenta con un listado de frases, que se consideran las más usadas en una conversación, se

realizó una barra de herramientas, donde se separaron las frases por categorías, saludos, respuestas,

preguntas y despedidas, cada frase está asociada a un command o función, que obtiene el string de

la frase que se seleccionó y lo suena mediante la función “engine.say ()”

Por último, el algoritmo para el aplicativo de sintetizador de texto a voz, cuenta con la opción de

que el usuario pueda adicionar las frases que el más emplea, para esto se realizaron tres funciones,

una de agregar frase, otra de eliminar frase y otra de sonar la frase, las frases agregadas por el

usuario se visualizan en una Listbox y en un archivo de texto, para tener registro de las frases y no

recurrir a ingresarlas nuevamente cada que se ejecute la aplicación, a continuación se presentan las

funciones correspondientes:

Page 36: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

29

Adicionar frase

Inicialmente se cuenta con la función de agregar frase, para este caso se define la función, una vez

se ejecute, se obtiene el string que se encuentre en el panel de texto y es añadido al final de la lista

que se encuentra en la interfaz, luego de esto, el algoritmo manipula el archivo de texto donde se

guardarán las frases que el usuario ingrese, para este caso se escribirá en el archivo la frase que el

usuario acabe de ingresar, a continuación se presenta un seudocódigo del funcionamiento de la

función agregar

Función agregar frase ()

Obtener lo que contiene el panel de texto

Insertar en la posición final de la lista

Abrir archivo de texto a través de la opción de escritura

Escribir en el archivo la frase obtenida

Guardar cambios

Eliminar frase

Para la acción de eliminar una frase de la lista que ya no se requiera, se inicia la función eliminar,

una vez se ejecute, procede a recorrer toda la lista y detecta cuál de las frase que se contienen fue

seleccionada, una vez detectada la frase obtiene el índice de posición de ésta y procede a eliminarla

de la lista, al borrar la frase de la lista, se debe eliminar igualmente del archivo de texto, para ello

el algoritmo manipula el archivo de texto obteniendo el número de líneas que contiene el archivo,

luego de ello se le indica que obtenga la línea que corresponde al ítem de la frase a eliminar y la

borre, una vez eliminada la frase, se corre la posición de las demás líneas que tiene el archivo de

texto, estas acciones se reflejan por medio del siguiente seudocódigo

Función eliminar frase ()

Recorrer Lista de frases

Obtener ítem de la frase seleccionada

Eliminar frase seleccionada de la Lista

Abrir archivo de texto a través de la opción de lectura

Obtener número de líneas del archivo

Abrir archivo de texto a través de la opción de escritura

Page 37: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

30

Encontrar la línea correspondiente al ítem

Eliminar línea del archivo

Correr la posición de las demás frases

Guardar cambios

Sonar frase

Finalmente, se define la función de sonar frase, al ser ejecutada esta función, recorre la lista donde

se contienen las frases para saber el ítem de la frase que se está seleccionando y así mediante ese

valor de posición, obtener la frase que le corresponda, una vez se tiene la frase, se procede a emitir

el sonido y se espera mientras este termina de reproducirse, a continuación, se presenta un

seudocódigo de esta función

Función sonar frase ()

Recorrer Lista de frases

Obtener ítem de la frase seleccionada

Obtener frase del ítem

Reproducir frase seleccionada de la Lista

Esperar

7.2.2 Desarrollo algoritmo para prototipo

El desarrollo del algoritmo para el prototipo se definió de acuerdo a los métodos que se mencionan

en la sección 7.3, de los cuales uno de ellos permitió la integración del algoritmo del prototipo

dentro del programa principal de la aplicación.

7.3 Desarrollo de prototipo para la manipulación del aplicativo sintetizador

En la elaboración del prototipo fue de gran importancia tener en cuenta el cómo se comunican las

personas que no pueden hablar y a su vez no pueden hacer uso de las manos o brazos, en esto se

encontró que existen centros especializados que les enseñan a manejar los pies para así manipular

las cosas, como lo puede ser una Tablet o un lápiz, o en otros caso hacen uso de la boca para

manipular el lápiz, es por esto, que el prototipo se enfoca en una manipulación con la quijada, y

como una segunda opción o alternativa , se adecúa un mouse para una manipulación con el pie.

Page 38: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

31

Para la propuesta principal, la cual es la manipulación con la quijada, el desarrollo se dio mediante

el seguimiento del diagrama de bloques que se presenta a continuación:

Figura 13 Diagrama de bloques para desarrollo de prototipo [Autor]

Inicialmente se procedió con la búsqueda de un sensor o dispositivo que sirviera para simular un

mouse, mediante la búsqueda se encontró un módulo sensor joystick, el cual permite un

desplazamiento en las coordenadas x, y, y a su vez cuenta con un pulsador, el cual sirve para la

simulación del clic que se requiere en un mouse.

Figura 14 Modulo Sensor Joystick KY-023 [27]

Este módulo cuenta con la ventaja de que es de fácil implementación y adicional a ello es de bajo

costo, lo cual hace posible que cualquier persona pueda adquirirlo y manipularlo sin inconveniente.

7.3.1 Método de microcontrolador como HID

Este método consta de la configuración del microcontrolador como un dispositivo de interfaz

humana (HID), lo cual permite que, al conectar la tarjeta al computador, este la reconozca como

un teclado o un mouse.

Para este caso, se implementó un programa en el microcontrolador para adquirir los datos del

módulo sensor Joystick, y que fueran enviado mediante el puerto serial, luego de cargar el programa

a la tarjeta, mediante el software “Flip” se le cargó un archivo de extensión .hex correspondiente a

Selección de sensor

Adaptación del sensor

Diseño de prototipo

Implementación

Page 39: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

32

la función de un mouse, el cual permitió convertir el microcontrolador en HID y de esta manera el

computador lo reconoció como un mouse. Este método se seccionó en dos etapas como se muestra

en al diagrama de la figura 15.

Figura 15 Etapas del método HID

La primera etapa que se refleja en el diagrama de la figura 15 comprende el algoritmo del módulo

sensor, este algoritmo adquiere los datos del módulo de acuerdo a los pines que se definieron, una

vez obtenidos los datos se hacen validaciones para determinar si cumple con ciertos rangos o

condiciones de acuerdo al valor obtenido del módulo sensor, una vez validados los valores,

mediante la implementación del protocolo serial se envía el valor de posición del sensor al

computador, a continuación se presenta un diagrama de flujo del algoritmo implementado

Algoritmo para el modulo sensor

joystick

Configuración para HID

Page 40: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

33

Figura 16 Diagrama de flujo algoritmo modulo sensor

De acuerdo a la figura 16, el algoritmo parte te la lectura de datos emitidos por el módulo sensor,

seguido de esto comienza con una validación de acuerdo al pin que esté recibiendo la variación de

valor, eso puede variar entre si se está leyendo el pulsador, o los valores emitidos para los ejes X y

Y, de acuerdo al valor que se reciba, el algoritmo hace una comparación para saber si las

coordenadas y el estado del pulsador variaron, de acuerdo al resultado de la variación, se asigna el

nuevo valor o el nuevo estado a las variables que se le envían al computador mediante el protocolo

de comunicación serial.

Page 41: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

34

La segunda etapa de este método comprende la configuración que se debe realizar para volver el

microcontrolador un dispositivo HID, para esto se implementó el programa Flip, que es para

programar microcontroladores AVR, con ayuda de este software se le instala un archivo al

microcontrolador para que el computador lo reconozca como un dispositivo HID, el archivo que se

le instala o programa al microcontrolador se obtuvo de internet.

7.3.2 Método de Microcontrolador – Python

Este método consiste en realizar una comunicación entre el microcontrolador y Python mediante

el puerto serial, de esta manera se le envían los parámetros del sensor a Python, y allí al ejecutarse

el programa, junto con la información que se recibió, se puede controlar el movimiento y clic del

cursor, en este caso el computador sigue reconociendo el microcontrolador como dispositivo en el

puerto COM. Para este caso no es necesario flashear o cargar archivos adicionales al

microcontrolador para que se comporte como un HID. En este caso, de acuerdo a la figura 17, el

método consiste en el envío de datos que se realizan desde el microcontrolador a Python, esto se

explicara en dos secciones.

Figura 17 Secciones de método Microcontrolador y Python

La primera sección consiste en el algoritmo implementado en el microcontrolador, para este caso

se referencia el diagrama de flujo que se presenta en la figura 16, ya que se implementó el mismo

principio de algoritmo, en cuanto a la lectura del sensor, la validación de los valores obtenidos con

las referencias establecidas y finalmente el envío de datos a través del serial, para este caso el

algoritmo solo presentó una modificación que consiste en un dato para variar la sensibilidad del

módulo sensor.

La segunda sección consta del algoritmo implementado en Python para obtener los valores del

sensor y que se comporte como mouse, para su explicación, ser hará uso de la figura 18, la cual

presenta un diagrama de flujo del algoritmo, para hacer uso de los datos recibidos como mouse, se

requiere la importación de la librería mouse en Python.

Inicialmente se tiene la especificación del puerto COM del que se van a recibir los datos, este puerto

se obtiene al conectar el microcontrolador al computador, luego de ello, el algoritmo cuenta con un

tiempo de 1 segundo para establecer la conexión entre el puerto serial y Python, una vez establecida

la conexión, se comienzan a leer o recibir los datos que el microcontrolador está enviando, luego

estos datos son asignados a las variables correspondientes de posición y la obturación del módulo

sensor para simular el clic, si los valores son de posición, el cursor se moverá de acuerdo a las

coordenadas que se estén recibiendo, si el valor es de obturación, el cursor ejecutará la función de

clic

Microcontrolador Python

Page 42: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

35

Figura 18 Diagrama de flujo programa Python

7.3.3 Diseño de piezas para el prototipo

Teniendo en cuenta que el prototipo se va a manipular con la quijada, se realiza un soporte para la

quijada, el cual va adherido a un cilindro de acople, el cual cuenta con un orificio en uno de sus

extremos para encajar con el módulo sensor joystick. Para la elaboración de las piezas del prototipo,

inicialmente se tomó la medida de curva inferior de la cara de 5 personas entre los 20 y 70 años,

esta medida se realizó por debajo de la mandíbula, de una punta de la oreja hasta la otra, de esto se

obtuvo un valor promedio de 20 cm. De acuerdo a este valor se realiza el soporte para la mandíbula,

el cual es un arco o media circunferencia, sin embargo, se incrementan 2 cm más del valor obtenido

para que la pieza no quede ajustada a la cara de las personas.

En la figura 19 se observa una ilustración 3D del soporte de la mandíbula realizado, cuenta con un

diámetro de 14, 5 cm, una curvatura de 22 cm y un ancho de 2,5 cm

Page 43: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

36

Figura 19 Soporte para mandíbula [Autor]

Para la elaboración del cilindro de acople, se estimó una altura aproximada de 26 cm entre la parte

superior de una mesa y la mandíbula de la persona, a partir de ello, se toma la medida de 20 cm

para el cilindro, puesto a que el módulo sensor compensa el valor restante. El cilindro se diseña

macizo exceptuando 2 cm, que es donde se acopla el módulo sensor joystick.

Figura 20 Cilindro de acople [Autor]

Para compactar las piezas del prototipo, se diseñó una caja de acorde a las dimensiones que ocupa

el microcontrolador y el módulo sensor joystick, la caja cuenta con un orificio para la alimentación

del microcontrolador. Se realizo el diseño de una tapa, la cual consta con un orificio en la zona del

joystick, permitiendo libertad de movimiento del sensor a través del cilindro de acople. Todas las

piezas fueron diseñadas a través de la herramienta online Onshape,

Page 44: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

37

Figura 21 Caja y tapa para compactar el prototipo [Autor]

7.4 Diseño de interfaz gráfica de usuario

La interfaz gráfica de usuario fue desarrollada mediante la implementación de la librería Tkinter,

haciendo uso de diversos Widgets. En la figura 22 se puede observar de manera general la interfaz.

Figura 22 Interfaz de usuario [Autor]

A continuación, se explicará cada sección que compone la interfaz de usuario:

1. Frases predeterminadas

Esta parte de la interfaz se compone por un menú de herramientas, el cual cuenta con cuatro listas

desplegables, las cuales son saludos, respuestas, preguntas y despedidas, cada una de ellas contiene

las frases que más se frecuentan de acuerdo a cada una de esas ocasiones, al dar clic sobre alguna

Page 45: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

38

de las frases que contenga la barra de menú se reproducirá esa frase seleccionada. En las siguientes

figuras se pueden observar las listas de frases que tiene la aplicación

Figura 23 Lista de frases de saludos [Autor]

Figura 24 Lista de frases de respuesta [Autor]

Figura 25 Lista de frases de preguntas [Autor]

Page 46: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

39

Figura 26 Lista de frases de despedidas [Autor]

2. Panel de texto y teclado

La sección del panel de texto y el teclado, es la parte principal de la interfaz, pues allí es donde el

usuario redactará lo que quiere comunicar mediante el sintetizador, en el panel se mostrará todo lo

que se esté escribiendo por medio del teclado, una característica importante de resaltar, es que la

tecla o botón donde esté situado el cursor se resalta en color azul, de esta manera el usuario sabrá

si está ubicado en la tecla que quiere, en la figura 27 se evidencia el panel de texto y el teclado

Figura 27 Panel de texto y teclado de interfaz [Autor]

En las funciones del teclado, se encuentran las opciones de borrar, que borrar (DELETE) letra por

letra, también está la función borrar todo (DELETE ALL), la cual limpia todo el panel de texto. Se

Page 47: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

40

cuenta también con la función de SELECCIONAR, mediante la cual se selecciona un fragmento

de texto que se quiera copiar, para hacer uso de la función SELECCIONAR, primero el usuario

debe ubicarse en el inicio de la frase, luego obturar el botón, posteriormente se debe ubicar al final

de lo que quiere seleccionar y obturar nuevamente el botón, cuando esto suceda se habilita el botón

COPIAR, lo cual permitirá almacenar la frase seleccionada, para luego mediante el botón PEGAR

ubicarla donde el usuario quiera.

3. Extracción de texto de una imagen

En esta sección, se encuentra el botón que se ve en la figura 28, mediante la obturación de éste, se

abre un explorador de archivos, el cual permite la navegación en el computador para buscar la

imagen que requiera el usuario.

Figura 28 Botón para buscar imagen y botón de reproducir el texto [Autor]

Una vez seleccionada la imagen, se realiza el proceso de extracción de caracteres de la imagen y

se visualizan en el panel de texto

Figura 29 Texto extraído de imagen e imagen original [Autor]

Luego de que se extrae el texto, mediante el botón Reproducir, que se encuentra abajo del de

imagen, se reproduce el texto que se obtuvo en el panel

Page 48: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

41

4. Frases definidas por el usuario

En esta sección el usuario puede agregar las frases que el considere de más uso y tenerlas a la mano,

con el propósito de no tener que redactarlas siempre, en la figura 30 se puede observar la

distribución que tiene esta sección de la interfaz:

Figura 30 Sección frases definidas por usuario [Autor]

1. Panel de texto: En este caso, se tiene un panel de texto más pequeño, en el cual el usuario

mediante el teclado principal de la interfaz, va a escribir la palabra que quiere añadir a la

lista.

2. Agregar: El botón agregar cumple con la función de añadir a la lista y a un archivo, la

palabra ingresada por el usuario

3. Reproducir: Una vez el usuario seleccione alguna de las frases que se presenten en la lista,

mediante este botón se emitirá la palabra seleccionada

4. Eliminar: Esta opción permite eliminar cualquier frase que el usuario desee, para ello

primero la debe seleccionar y luego si obturar el botón de eliminar

5. Lista: En esta sección se visualizarán las frases añadidas por el usuario

Page 49: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

42

8. Resultados

En esta sección se mostrará el resultado que se obtuvo para la solución del problema planteado

inicialmente, el cual era la comunicación entre personas con condiciones normales y personas con

limitación vocal y motriz en miembros superiores. Esta sección se divide en cuatro etapas, la

primera mostrará el resultado de manera general, la segunda comprenderá las restricciones que se

presentaron en la solución, la tercera comprende la validación del funcionamiento del sistema, y la

última trata del impacto que tiene la solución obtenida.

8.1 Diseño definitivo

Como resultado final se obtuvo una aplicación de sintetizador de texto a voz, la cual cuenta con

varias funciones que le permiten al usuario transmitir su idea o lo que quiere comunicar, esta

aplicación de sintetizador es manipulada mediante un prototipo de mouse diseñado para la

condición de las personas a las que se dirige el proyecto, este prototipo consta de un módulo sensor

joystick y un microcontrolador, con el fin de que sea un prototipo de fácil acceso y practicidad

para quien lo requiera usar o quien quiera elaborarlo, este prototipo es manipulado mediante

movimientos ejercidos por la mandíbula, en la figura 31 se observa el prototipo obtenido

Figura 31 Prototipo obtenido junto con el aplicativo sintetizador [Autor]

Adicional a ello, se realizó una modificación a un mouse, con el fin de adaptarlo a las condiciones

que presentan las personas a las que va dirigido el proyecto, para ello se le acondiciona un pedal,

el cual cuenta con un pulsador interno que se encuentra conectado al pulsador izquierdo original

del mouse, para que de este modo la persona pueda hacer uso de él mediante los pies, en la figura

32 se presenta la alternativa de mouse,

Page 50: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

43

Figura 32 Mouse acondicionado [Autor]

8.2 Restricciones de la solución

Las restricciones que presenta sistema sintetizador de voz para personas con discapacidad vocal y

limitación motriz, se basan en las pruebas o validaciones realizadas

• La pausa que tiene la aplicación al emitir el sonido es extensa e impide ir haciendo

uso de otras herramientas de la aplicación

• El prototipo no es ajustable a la altura de la persona que lo esté usando, por esta

razón la manipulación del mismo puede tornarse incomoda y complicada.

• El diámetro del soporte de la mandíbula no es ajustable, por lo cual presenta una

limitación en los rangos de edad de las personas que vayan a hacer uso del prototipo

8.3 Validación del resultado

Para validar el funcionamiento del sistema de sintetizador, se hizo uso de un grupo de 5 personas,

las cuales oscilaban entre los 20 y 45 años, cuatro de estas personas, contaban con condiciones

normales, por lo cual debían simular las condiciones de discapacidad de las personas a las que se

dirige el proyecto. La persona restante cuenta con las condiciones de discapacidad.

8.3.1 Prueba de practicidad

Inicialmente se realiza una prueba de practicidad, entre el prototipo diseñado y la adaptación del

mouse, esta prueba consiste en manipular la aplicación del sintetizador mediante los dos

mecanismos.

Al realizar la prueba se le pide al usuario escribir la siguiente frase “La cortesía es la principal

muestra de cultura”, para este caso la validación fue realizada por cuatro personas que simularon

las condiciones de discapacidad, primero se realizó la prueba con el prototipo diseñado, de esto se

obtuvieron los datos que se muestran en tabla 3

Page 51: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

44

Tiempos con prototipo (min)

Usuario 1 Usuario 2 Usuario 3 Usuario 4

Intento 1 4,5 3,52 5,27 4,64

Intento 2 3,27 3,56 3,58 3,54

Intento 3 3,28 3,16 3,29 3,31

Tabla 3 Tiempos obtenidos de prueba con prototipo

La tabla 3 representa los valores de tiempo (en minutos) obtenidos para cada usuario en los tres

intentos que realizaron para la redacción de la frase, graficando esto valores se obtiene la siguiente

representación

Figura 33 Gráfica de tiempos de acuerdo al número de pruebas con prototipo

De acuerdo al grafico obtenido, se puede evidenciar que, al realizar más intentos o pruebas, la

persona se adapta al prototipo y de esta manera reduce el tiempo en el que escribe la frase.

Figura 34 Usuario validando el sistema

Luego, se repitió la prueba, pero en este caso no se implementó el prototipo, sino el mouse

acondicionado, de este modo se obtuvieron los siguientes valores de tiempo (en minutos)

Page 52: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

45

Tiempos con mouse acondicionado (min)

Usuario 1 Usuario 2 Usuario 3 Usuario 4

Intento 1 1,35 2,26 2,4 2,42

Intento 2 1,1 2,06 2,41 2,37

Intento 3 1,19 1,28 2,39 2,26

Tabla 4 Tiempos obtenidos de prueba con mouse acondicionado

Para realizar las pruebas con el mouse acondicionado, se debe ubicar éste en el suelo, pues su

manipulación es realizada mediante los pies, en la figura 35 se muestra como se hizo uso de este

mecanismo

Figura 35 Manipulación de mouse acondicionado

Graficando los valores obtenidos en esta prueba, se tiene la siguiente representación

Figura 36 Gráfica de tiempos de acuerdo al número de pruebas con mouse acondicionado

De acuerdo a la gráfica se ve que los tiempos son más cortos que con el prototipo, y en este caso

se evidencia que algunos usuarios presentan constancia en el tiempo que demoran en redactar la

frase.

Posterior a los resultados obtenidos, se les preguntó a los usuarios que de acuerdo a su experiencia

cuál de los dos le resultó más práctico y por qué, teniendo como resultado que a los 4 usuarios les

Page 53: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

46

pareció más fácil el uso del mouse acondicionado, sin embargo, recalcan que para una persona con

discapacidad es mucho más aplicable el mecanismo del prototipo.

La quinta persona que participó en las pruebas, cuenta con una discapacidad de parálisis cerebral,

la cual le impide hablar de manera clara y tener control en los movimientos de sus extremidades,

puesto a que presenta movimientos involuntarios, lo cual le dificulta tener total control sobre el

prototipo y la alternativa de mouse acondicionado.

Para esta persona se realizó una prueba específica, que consistía en obtener el tiempo que demoraba

en escribir una sola palabra mediante el mecanismo del prototipo, para este caso la frase que se

seleccionó es “eucalipto”, la prueba se repitió tres veces, obteniendo los valores que se muestran

en la tabla 5

Figura 37 Usuario con discapacidad validando el sistema sintetizador y el prototipo [Autor]

Tiempos obtenidos con prototipo (min)

Intento Tiempo

1 3,56

2 3,23

3 2,54

Tabla 5 Tiempos obtenidos en prueba para persona discapacitada usando el prototipo

De acuerdo a los valores obtenidos, se evidenció que para la redacción de una palabra que consta

de 9 letras, una persona con las condiciones y limitaciones que presenta el usuario, va a tardar

aproximadamente 4 minutos en redactarla, también se evidencia que al realizar más intentos la

persona pudo presentar mayor control del prototipo, sin embargo, necesitó de la ayuda de otra

persona para que le ayudara a sostener el prototipo para su uso.

8.3.2 Prueba de palabras por minuto

Al igual que en la anterior prueba se les pide a los usuarios redactar la frase en el aplicativo del

sintetizador, mediante los dos mecanismos. Para este caso se extrae el número de palabras que

contiene la frase y se calcula cuantas palabras por minuto se pueden escribir en el aplicativo

sintetizador, teniendo en cuenta los valores de tiempo obtenidos en la anterior prueba, se realiza la

siguiente operación para obtener la cantidad de palabras por minuto

Page 54: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

47

𝑝𝑚 = 𝑛𝑢𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠 𝑒𝑛 𝑙𝑎 𝑓𝑟𝑎𝑠𝑒

𝑚𝑖𝑛𝑢𝑡𝑜𝑠

Figura 38 Usuario simulando condiciones de discapacidad para la validación del sistema [Autor]

En la figura 38, se evidencia al usuario haciendo la prueba de palabras por minuto, para este caso

él simuló las condiciones de discapacidad, sin embargo, decide hacer uso de un soporte para el

prototipo.

Para este caso el número de palabras corresponde a 8, y los minutos son los que se encuentran en

la tabla 3

Numero de palabras por minuto con prototipo Usuario 1 Usuario 2 Usuario 3 Usuario 4

Intento 1 1,77777778 2,27272727 1,51802657 1,72413793

Intento 2 2,44648318 2,24719101 2,23463687 2,25988701

Intento 3 2,43902439 2,53164557 2,43161094 2,41691843

Tabla 6 Palabras por minuto implementando el prototipo

Se realiza la misma operación para los valores de tiempo de la tabla 4, teniendo como resultado los

datos de la tabla 6

Numero de palabras por minuto con mouse acondicionado

Usuario 1 Usuario 2 Usuario 3 Usuario 4

Prueba 1 5,92592593 3,53982301 3,33333333 3,30578512

Prueba 2 7,27272727 3,88349515 3,31950207 3,37552743

Prueba 3 6,72268908 6,25 3,34728033 3,53982301

Tabla 7 Palabras por minuto implementando el mouse acondicionado

Análisis:

Como se pudo observar mediante la implementación del mouse acondicionado se logró la mayor

cantidad de palabras por minuto, lo cual corresponde a un valor de 7.27, lo cual se podría interpretar

como 7 palabras y media, es decir que para ese caso el usuario redactó 7,27 palabras en 1,1 minutos,

por lo que se puede decir que casi logra escribir la frase completa en 1 minuto. Implementando el

Page 55: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

48

prototipo diseñado, se obtuvo que el valor máximo de palabras por minuto fue de 2.53,

correspondiente a un tiempo de 3.16 minutos, lo cual si muestra una diferencia notoria en cuanto

al otro mecanismo.

8.4 Evaluación del impacto de la solución

El sistema sintetizador de texto a voz junto con el prototipo desarrollado, funcionan como una

herramienta de apoyo para las personas que presentan dificultades a la hora de comunicarse de

manera verbal, cabe mencionar que este sistema se realizó de manera tal que fuera de fácil acceso

y uso para todos los usuarios que lo requieran, pues es importante desarrollar algo que realmente

las personas puedan adquirir y manipular sin inconveniente, para su beneficio.

La implementación de este sistema en general, puede ayudar a mejorar la condición de

comunicación de las personas que presentan discapacidad vocal y motriz en sus miembros

superiores, requiere de más adaptaciones, las cuales se mencionarán más adelante, pero de acuerdo

a la experiencia de validación del funcionamiento por una persona con estas discapacidades, si es

útil y beneficioso para esta población.

Page 56: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

49

9. Conclusiones

La librería pyttsx3 permite la elaboración de un sintetizador de texto a voz de bajo costo, debido a

que se trabaja con software libre, además de esto no requiere de conexión a la red, haciendo que el

sistema sea portable sin ningún inconveniente y pueda hacerse uso de él en cualquier localización,

también se resalta que mediante la implementación de la librería se puede llegar a obtener el archivo

de audio de la sintetización que se esté realizando.

Aunque el prototipo diseñado permite las personas con limitación motriz en miembros superiores

y limitación vocal se comuniquen con una persona oyente, presenta ciertas limitaciones para su

uso, dado a que el prototipo no tenía la opción de adaptarse a una superficie se requirió de alguien

más que pudiera sostenerlo para que el usuario con discapacidad hiciera uso de él.

El desarrollo de la interfaz permite que al usuario tener una interacción más dinámica con el

sintetizador de texto a voz, pues cuenta con funciones como la extracción de texto a partir de

imágenes, o la misma personalización que el usuario quiera hacer mediante la opción de agregar

sus frases predeterminas.

Realizando las pruebas de validación de prototipo mediante personas con condiciones normales, se

evidenció que mientras la persona se va adaptando al prototipo, los tiempos de escritura de texto

para el sintetizador, van a ser altos en comparación con otros mecanismos, como lo fue con la

adaptación de un mouse.

Debido a que la librería implementada usa el motor de voz del sistema operativo en el que se

encuentra, hace que la sintetización se realice sin complicaciones u obstáculos, pues no se requiere

descargar ningún otro componente para su ejecución, sin embargo, si se quiere se pueden adicionar

voces al motor de voz del sistema operativo, y desde el programa hacer selección de la voz que se

quiera usar.

A través de la investigación realizada para el desarrollo del proyecto, se supo que el motor de voz

del sistema operativo en el que se realizó el sintetizador, cuenta con una síntesis por formantes, lo

que implica que se basa en un modelo acústico que crea el habla a partir de la excitación del sistema

por medio de ondas, las cuales se someten a filtros para finalmente tener el sonido, el sonido que

se reproduce es robótico.

Aunque el sonido reproducido mediante la síntesis por formantes no suena muy humano, igual es

inteligible y tiene la ventaja de que no requiere una base de datos con audios previos para su

emisión, como lo que sucede en el método de síntesis concatenativa.

Al realizar el prototipo que permitiera hacer uso de la aplicación mediante un sensor, se contaron

con diferentes opciones de microcontroladores y sensores, sin embargo, se hizo uso de uso de un

módulo sensor joystick y un microcontrolador, con el fin de que el prototipo fuera de fácil uso y a

su vez no presentara costos elevados, puesto a que la idea de su implementación, es que sea un

elemento de fácil acceso y adaptabilidad para quien haga uso de él.

Page 57: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

50

10. Recomendaciones

Como trabajo a futuro, en cuanto a la aplicación, se tiene como aspecto a mejorar la parte de emitir

el sonido de la palabra que se está sintetizando, puesto a que cuando se ejecuta esa función, el

sistema tiende a detenerse un poco y no permite hacer uso de ninguna otra herramienta del

aplicativo, otra cosa a mejorar, de acuerdo a la experiencia de los usuarios, es integrar las funciones

que se pueden realizar con un teclado convencional, es decir comandos, alternar de mayúsculas a

minúsculas, entre otras.

En cuanto al prototipo, como trabajo a futuro se espera rediseñar las piezas, de manera que pueda

ser un sistema ajustable de acuerdo a las características físicas que presenta el usuario, para que de

esta manera no haya limitación en la edad de quienes puedan hacer uso de él, y que también se

pueda ajustar el cilindro de soporte de acuerdo a la altura que se requiera.

Page 58: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

51

11. Referencias

[1] O. M. de la Salud, “Sordera y pérdida de la audición.” [Online]. Available:

https://www.who.int/es/news-room/fact-sheets/detail/deafness-and-hearing-loss.

[2] Ministerio de Salud, “Sala situacional de las Personas con Discapacidad (PCD) Ministerio

de Salud y Protección Social Oficina de Promoción Social,” p. 34, 2018.

[3] Ministerio de Salud y Protección Social, “Boletines Poblacionales: Personas con

Discapacidad,” pp. 1–15, 2020.

[4] A. Gupta and S. Jagadish, “Machine learning oriented gesture controlled device for the

speech and motion impaired,” 2017 Int. Conf. Data Manag. Anal. Innov. ICDMAI 2017, pp.

294–297, 2017.

[5] P. G. Ahire, K. B. Tilekar, T. A. Jawake, and P. B. Warale, “Two way communicator

between deaf and dumb people and normal people,” Proc. - 1st Int. Conf. Comput. Commun.

Control Autom. ICCUBEA 2015, pp. 641–644, 2015.

[6] G. Adiline Macriga, K. Kruthiga, and S. Anusudha, “Artificial Voice synthesizer using fuzzy

logics,” Proc. 2017 2nd Int. Conf. Comput. Commun. Technol. ICCCT 2017, pp. 388–392,

2017.

[7] L. J. Mona Peña, J. A. Alvarado Bustos, and O. Mendez Hernandez, “Software

decodificador de texto a voz para ayuda a personas con capacidades diferentes,” Res.

Comput. Sci., vol. 74, no. 1, pp. 73–79, 2014.

[8] S. G. Francisco, D. O. Sánchez, G. En, I. Informática, and L. G. Salvador, “Software para la

comunicación de personas con dificultad de movimiento,” 2017.

[9] C. O. U. S. Rfid, “D Esign and I Mplementation of a V Ehicular a Ccess,” 2017 IEEE Int.

Conf. Power, Control. Signals Instrum. Eng., no. November, pp. 223–225, 2006.

[10] Taiwan zhi shi chuang xin xue hui, “The Assistive Input Devices with Intel ACAT System

for the Severe Disabled - Applied system innovation : proceedings of 4th IEEE International

Conference on Applied System Innovation 2018 (IEEE ICASI 2018) : Chiba, Japan, April

13-17, 2018,” 2018 IEEE Int. Conf. Appl. Syst. Invent., pp. 1015–1017, 2018.

[11] P. Mukherjee, S. Santra, S. Bhowmick, A. Paul, P. Chatterjee, and A. Deyasi, “Development

of GUI for text-to-speech recognition using natural language processing,” 2018 2nd Int.

Conf. Electron. Mater. Eng. Nano-Technology, IEMENTech 2018, pp. 1–4, 2018.

[12] A. Alsaif, N. Albadrani, A. Alamro, and R. Alsaif, “Towards intelligent Arabic text-to-

speech application for disabled people,” 2017 Int. Conf. Informatics, Heal. Technol. ICIHT

2017, pp. 0–5, 2017.

[13] J. Llisterri, “• El objetivo de la síntesis del habla es la producción ( generación ) artificial de

mensajes orales • La síntesis es una técnica complementaria del reconocimiento en la

comunicación persona - máquina,” pp. 1–8.

[14] A. Larios, “Reconocimiento y síntesis de voz,” pp. 1–9, 1999.

[15] P. D. Agüero, “Síntesis de voz aplicada a la traducción voz a voz,” TDX (Tesis Dr. en Xarxa),

2012.

[16] C. Manuel and M. Sánchez, “Modelado de la cualidad de la voz para la síntesis del habla

expresiva,” pp. 1–3.

[17] C. Ii and S. De Voz, “Capitulo II. Síntesis de Voz,” pp. 8–17, 1999.

[18] K. Palacio, J. Auquilla, and E. Calle, “Diseño e Implementación de un Sistema de Síntesis

de Voz,” Rev. Tecnológica ESPOL, vol. 21, no. 1, pp. 105–113, 2008.

Page 59: SISTEMA SINTETIZADOR DE VOZ PARA PERSONAS CON DISCAPACIDAD …

52

[19] “Sintetizadores y Corpus de voz,” Corpus, pp. 13–25, 2002.

[20] J. Tusón, “Introducción al lenguaje,” no. June, 2003.

[21] Docs.python.org, “La biblioteca estándar de Python.” .

[22] N. Velasco, “Sistema embebido para la conexión de un PLC siemens S7-200 a la red GSM,”

pp. 34–69, 2005.

[23] N. M. Bhat, “pyttsx3 Documentation,” 2020.

[24] tesseract-ocr.github.io, “Tesseract-OCR.” [Online]. Available: https://tesseract-

ocr.github.io/tessdoc/#introduct.

[25] pypi.org, “Pytesseract.” [Online]. Available: https://pypi.org/project/pytesseract/.

[26] A. Pérez, “Tutorial Onshape,” 2016.

[27] P. Technical, “KY-023 Joystick module ( XY-Axis ),” pp. 98–103, 2017.

[28] J. C. Gómez, “Procesamiento Digital de Señales de Voz Diseño de Filtros Digitales,” pp. 1–

20, 2005.

[29] E. Superiores, M. C. Ciudad, and J. E. Brieva, “Sintesis de voz esofagica.”