image/svg+xmlEn este artículo se muestra el desarrollo de un sintetizador numérico de voz utilizando técnicas de procesamiento digital de imágenes y redes neuronales artifciales. Tales técnicas fueron implementadas utilizando el software Matlab instalado en una PC, la cual corresponde a la interface oral de comunicación para el discapacitado. Se realizó el reconocimiento de los números a partir de manuscritos digitalizados, hasta un total de tres dígitos para la parte entera y dos para la parte decimal, obteniendo resultados satisfactorios.Palabras Clave:Transformaciones Morfológicas, Segmentación de imágenes, Red Neuronal Multicapa, Software Matlab.This article shows the development of voice synthesizer numerical techniques using digital image processing and artifcial neural networks. Such techniques were implemented using Matlab software installed on a PC, which corresponds to oral communication interface for the handicapped. Recognition was performed numbers from digitized manuscripts, to a total of three digits for the integer part and two for the integer part, obtaining satisfactory results.Key words:Morphological transformations, image segmentation, Neural Network Multilayer, Software Matlab.PAIDEIA XXIVol. 3, Nº 4, Lima, diciembre 2013, pp. 120-127ResumenAbstractSINTETIZADOR NUMÉRICO DE VOZ PARA PERSONAS CON DISCAPACIDAD DEL HABLAPedro freddy Huamaní Navarrete / Magaly Jannet Ramírez Carvo
image/svg+xml121PAIDEIA XXISintetizador numérico de voz para personas con discapacidad del hablaINTRODUCCIÓNActualmente existe un gran número de personas con discapacidad del habla (mudos), que para expresarse emplean un lenguaje de signos o señas, el cual posee un alto grado de difcultad en su aprendizaje. Por tal motivo, el presente artículo, a través de las técnicas de procesamiento de imágenes y entrenamiento de una red neuronal, brinda una alternativa para lograr una comunicación por medio de un sintetizador de voz, solo para números.La carencia de sintetizadores de voz numéricos en el mercado local y la importancia de aportar a la comuni-cación de personas con discapacidad del habla, motiva al uso de la tecnolo-gía digital a través del uso de diversos algoritmos de procesamiento de imá-genes, para la realización de técnicas de segmentación y posterior reconoci-miento de patrones, utilizando redes neuronales multi capas con algoritmo de aprendizaje backpropagation.Cabe resaltar que el sintetizador planteado está basado en la síntesis de voz de números con tres dígitos en la parte entera y dos dígitos en la parte decimal, los cuales corresponden a manuscritos en hojas de trabajo predeterminadas, y con dimensiones particulares. De esta manera, la implementación del sintetizador de voz es realizado mediante una PC, el cual corresponde a la interfaz oral de comunicación entre el discapacitado y las personas con los que desee comunicarse, y haciendo uso de las bondades que ofrece las librerías del software Matlab para elaborar la estructura lógica del sintetizador propuesto.DESARROLLO DEL TRABAJOPara el desarrollo de este trabajo se optó por utilizar: un micrófono omnidireccional, con respuesta de frecuencia de 100 Hz a 11 KHz, impedancia de salida 2000 Ohms y una dirección de -60Db; un escáner convencional con resolución de 2400x4800 ppp, color de 48 bits y tecnología OCR. Además, se usó una PC convencional con procesador de 2.4 GHz, RAM de 512 MB y HD de 32 GB, el software Matlab y una base de datos con grabaciones de voz en archivos WAV, codifcados con PCM, frecuencia de muestreo de 8KHz, 16 bits por muestra y mono canal. Este trabajo está compuesto por cinco etapas, que a continuación se procede a describir:1. Creación de base de datos con grabaciones de voz en archivos WAV.La base de datos creada está con-formada por grabaciones digitales, las cuales fueron realizadas para la cons-trucción del patrón digital de voces en formato *.WAV. Estas grabaciones tu-vieron diferentes tiempos de duración y fueron agrupadas en 5 clases:- 1ra clase. Grabaciones correspon-dientes a los números del 0 al 9.- 2da clase. Grabaciones correspon-dientes a los números del 11 al 19.
image/svg+xml122PAIDEIA XXIPedro Freddy Huamaní Navarrete / Magaly Jannet Ramírez Carvo- 3ra clase. Grabaciones correspon-dientes a los números 10, 20, 30, 40, 50, 60, 70, 80 y 90.- 4ta clase. Grabaciones correspon-dientes a los números 100, 200, 500, 700 y 900.- 5ta clase. Grabaciones correspon-dientes a nexos y conectores: Y, PUNTO.De esta manera, con la combinación apropiada de estos archivos digitales de voz, fue posible reproducir toda cantidad numérica desde 0 hasta 999. De igual forma, para la parte decimal, fue posible realizar la combinación apropiada de archivos digitales, para reproducir digitalmente desde 0.00 hasta 0.99.2. Digitalización de manuscritos.La digitalización de los manuscritos se basó en la operación de escaneado de una hoja Bond A4, donde el manuscrito se representó de forma legible y libre de ruido. Para ello se utilizó una resolución de 230x280 pixeles con 1 bit por pixel (blanco y negro), y en un archivo digital de formato BMP. Estas características permitieron un efciente procesamiento y posterior reconocimiento de cada patrón numérico. Seguidamente, en la Figura 1, se muestra el resultado de la digitalización de un manuscrito que representa a un número con tres dígitos en la parte entera, y dos en la parte decimal.Figura 1: Imagen perteneciente a un manuscrito digitalizado.3. Procesamiento de los manuscritos digitalizados.El procesamiento de la imagen digital está basado en seis partes, tal como lo señala el diagrama de bloques de la Figura 2. En este diagrama de bloques se puede observar claramente el uso de operaciones morfológicas, el uso de la segmentación, así como de la decimación, tanto de flas como de columnas, y de una operación de determinación y generación de valores padrones.Para la realización de las operaciones morfológicas, se utilizó un elemento estructural del tipo “square” con un ancho de pixeles igual a 3. Su elección se produjo después de realizar varias pruebas y de verifcación del mejor comportamiento frente a la característica de la imagen digital procesada.Posteriormente, la imagen digital fue segmentada por cada dígito, y luego decimada con el fn de reducir el número de flas y columnas, pero conservando la forma original. Antes
image/svg+xml123PAIDEIA XXISintetizador numérico de voz para personas con discapacidad del hablade aplicarse sobre la red neuronal, se procedió a la determinación de los valores padrones, a partir de tres 4. Entrenamiento de patrones de imágenes.El entrenamiento de la red neuro-nal fue realizado en base a vectores conformados por los seis valores pa-drones normalizados. Para este proce-dimiento, se trabajó con el número de capas y neuronas anteriormente indi-cado, así como también con funciones de transferencia del tipo no lineal para las primeras tres capas, y del tipo li-neal para la última capa de neuronas. Asimismo, con ayuda del toolbox de Neural Networks del Matlab, se logró realizar el entrenamiento respectivo.Se planteó el uso de 250000 iteraciones con el interés de lograr un mínimo error. Asimismo, una tasa de aprendizaje de 0.008 y un error mínimo cuadrático de 0.0002. Para una mejor clasifcación y reconocimiento de cada dígito a través de la red neuronal, se propuso determinar valores que sumas verticales y tres horizontales sobre cada número de la imagen binaria resultante.permitan establecer los rangos de reconocimiento para cada número. Tal como lo muestra la Tabla 1.5. Generación de la voz digital.Una vez entrenada la red neuronal, se procedió a la generación de la voz digital correspondiente. Dicha generación se obtuvo a partir de la concatenación de vectores obtenidos después de la lectura de los archivos de audios digitalizados y correspondientes a cada número reconocido. Esto quiere decir, que después de reconocer cada dígito del número completo, se procedió a la apertura y lectura del archivo de audio digital de la base de datos previamente creada. Esto es realizado con cada número para posteriormente unir los vectores y reproducirlo todo en conjunto a una misma frecuencia de muestreo.Figura 2: Diagrama de bloques del procesamiento de las imágenes digitales.
image/svg+xml124PAIDEIA XXIPedro Freddy Huamaní Navarrete / Magaly Jannet Ramírez CarvoNúmeroRango098 - 10218 – 12218 - 22328 – 32438 – 42548 – 52658 – 62768 – 72878 – 82988 – 92Tabla 1: Rangos permisibles para cada número.PROCESO DE SIMULACIÓNSe inicia con el hecho de que el manuscrito se encuentre digitalizado (Figura 1), para luego realizar las operaciones morfológicas de dilatación y apertura, tal como lo muestra la Figura 3. Luego, se procede al recorte de la imagen con la fnalidad de obtener cada número de manera independiente. Este recorte o segmentación de la imagen genera a su vez seis imágenes de dimensiones diferentes, incluyendo el punto decimal. La obtención del recorte se logró considerando sumas perpendiculares y teniendo en cuenta los pixels de color blanco. De esta manera se pudo aislar cada uno de los dígitos, con que se encuentra conformado el número completo.Figura 3. Operación de segmentación sobre la imagen digitalizada.Posteriormente, se reduce el tamaño de cada imagen procediendo a una operación de decimación por flas y por columnas. Luego, se determinan los valores padrones conformados por seis valores de la representación matricial de la imagen reducida. Este conjunto de valores padrones formará el vector de entrada a la red neuronal. A continuación, en la Figura 4 se muestra un ejemplo del procedimiento de obtención de los seis valores de representación matricial, a partir de sumas de elementos de la matriz en tres flas y tres columnas diferentes. 255255255255255255255255255000000255255000000255255000000255255000000255255000000255255000000255255000000255255000000255255000000255255000000255255255255255255255255255Valor 1Valor 2Valor 3Valor 4Valor 5Valor 6Figura 4: Representación matricial de la Imagen reducida del número ‘cero’, con sus respectivas posiciones en las flas y columnas.Obtenida las sumas, se fnaliza con la normalización del vector de seis elementos con la fnalidad de facilitar el entrenamiento de la red neuronal. En la fgura 5 se muestra la matriz con los seis valores padrones por cada dígito y el punto decimal, y correspondiente al número “207.15”.
image/svg+xml125PAIDEIA XXISintetizador numérico de voz para personas con discapacidad del hablaFigura 5: Matriz con valores padrones del número “207.15”Para el entrenamiento y comproba-ción del desempeño de la red neuronal, se utilizaron manuscritos legibles sobre hojas de trabajo de tamaño A4 y tipo Bond. Estos manuscritos corresponden a un grupo de seis personas, entre las edades de 20 a 30 años, y a las cuales se les solicitó una muestra de 10 dígitos. Por lo tanto, el universo de trabajo llegó a ser igual a 60 muestras numéricas.La red neuronal utilizada (Figura 6) fue entrenada con el tipo de aprendiza-je supervisado y una función de trans-ferencia del tipo lineal en la última capa de neuronas. Con esto se eligió un vector de salida deseada, corres-pondiente a los números del cero al nueve según el vector de entrada uti-lizado. Ver la siguiente representación para el vector de entrada de entrena-miento de la red, y su correspondiente vector de salida deseada.>> X = [n0 n1 n2 n3 n4 n5 n6 n7 n8 n9 ]; % matriz de 6x60>> Yd = [10*ones(1,6) 1*ones(1,6) 2*ones(1,6) ...3*ones(1,6) 4*ones(1,6) 5*ones(1,6) 6*ones(1,6) ...7*ones(1,6) 8*ones(1,6) 9*ones(1,6)] / 10;Donde:n0, n1, …, n9, representan a las matrices con valores padrones tal como se señaló en la fgura 5.Yd representa a una matriz de 1x60 correspondiente a los números 1, 0.1, 0.2, 0.3, …, 0.9. Donde, el valor “1” hace referencia al dígito de entrada “0”, el valor “0.1” hace referencia al dígito de entrada “1”, y así sucesivamente hasta el valor “0.9” que hace referencia al digito de entrada “9”....X1X2X5X6...1238......1ENTRADAS A L I D A8712312910181920b1b2b7b8b1b2b3b18b19b20b1b2b3b8b9b14taCapa3era Capa2da Capa1er CapaYFigura 6: Esquema de la Red Neuronal Multicapa utilizada.El proceso de entrenamiento de la red neuronal utilizó seis vectores padrones por cada número. Y la etapa de inicialización y entrenamiento se realizaron haciendo uso del toolbox de Neural Networks.limites = [ zeros(6,1) ones(6,1) ];net = newff( limites , [ 8 20 10 1 ] , { ‘tansig’ ‘tansig’ ‘tansig’ ‘purelin’ } , ‘traingd’ );net.trainParam.epochs = 250000;net.trainParam.lr = 0.008;net.trainParam.mse = 0.0002;net = train( net , X , Yd );A continuación, se muestran los ar-chivos de voz utilizados para sinteti-zar el ejemplo tomado en la Figura 1.>> X1= wavread (‘2.wav’);
image/svg+xml126PAIDEIA XXIPedro Freddy Huamaní Navarrete / Magaly Jannet Ramírez Carvo%archivo de sonido DOS>> X2= wavread (‘100s.wav’); %archivo de sonido CIENTOS>> X3 = wavread(‘7.wav’); %archivo de sonido SIETE>> X4 = wavread(‘punto.wav’); %archivo de sonido PUNTO>> X5 = wavread(‘15.wav’);%archivo de sonido QUINCE>> X = [ X1 X2 X3 X4 X5 ];%concatenando los vectores>> sound( X , 8000 ) %reproducción con Fs = 8000 HzRESULTADOSLa respuesta de la red neuronal ar-tifcial, con el grupo de personas que participaron en su entrenamiento, logró un resultado óptimo del 97% a base de simulaciones y pruebas de los diferentes números, desde el 0.00 has-ta el 999.99. Por otro lado, con el gru-po de personas que no participaron en el entrenamiento de la red neuronal se obtuvo un resultado alrededor del 58%. Cifra que puede mejorarse si in-crementamos el conjunto de personas para la etapa de entrenamiento de la red neuronal. A continuación, algunas pruebas de reconocimiento.1ra Prueba:Número 362.94Corresponde a un número a repro-ducir con una cantidad de cifras límite, es decir 3 dígitos enteros y 2 dígitos deci-males; por lo tanto, las dimensiones de la matriz principal fue de 6 flas correspon-diente a los valores padrones obtenidos de cada cifra y 6 columnas defnidas por el número de dígitos que posee el número total a reproducir y del punto decimal.2da Prueba:Número 92.53Corresponde a un número de 2 dí-gitos enteros y 2 dígitos decimales, por lo tanto las dimensiones de la matriz principal fue de 6 flas referidas a los valores padrones y 5 columnas corres-pondiente a los dígitos del número a reproducir y el punto decimal.3ra Prueba:Número 05.27Corresponde a un número con 1 dígito entero, ya que el cero a la izquierda no tiene valor, y 2 dígitos decimales; por lo tanto, la dimensión de la matriz principal fue de 6 flas referidas a los valores padrones y 4 columnas correspondientes a los dígitos del número a reproducir y el punto decimal.4ta Prueba:Número 0.03Para este ejemplo, el número a re-producir consta de un digito entero y 2 dígitos decimales; por lo tanto las di-mensiones de la matriz principal fue de 6 flas referidas a los valores padro-nes y 4 columnas correspondiente al único digito de la parte entera, el pun-to decimal y los 2 dígitos decimales.CONCLUSIONESEl sintetizador de voz planteado en este trabajo de investigación, no res-ponde a todas las muestras numéri-cas que conforman los números a ser sintetizados; es decir, reproducidos, debido a que la red neuronal artifcial utilizada no logra reconocer todos los números, pues su entrenamiento ha sido realizado con un grupo conforma-do por pocas personas (universo pe-queño). Por tal razón, mientras mayor
image/svg+xml127PAIDEIA XXISintetizador numérico de voz para personas con discapacidad del hablasea el número de vectores de entrada (representación matricial de las mues-tras numéricas) a la red neuronal para su entrenamiento o aprendizaje, ma-yor será el rango de reconocimiento de números; es decir, la red neuronal re-conocerá números de un grupo mayor de personas, sean niños y/o adultos. El sintetizador de voz fue diseñado para reproducir números conforma-dos hasta por tres dígitos enteros y dos decimales, en tal sentido, si el nú-mero a sintetizar no posee el número de cifras límite, entonces el algoritmo diseñado para la reproducción auto-máticamente asignará a las variables correspondientes, sea en la parte de los dígitos enteros o decimales, el nú-mero cero. Con esto completaría el nú-mero de cifras límite. La calidad del sintetizador de voz dependerá de la frecuencia de mues-treo seleccionada, para la digitalización de las diferentes voces. En tal sentido es preciso indicar que a mayor frecuen-cia de muestreo, mayor es el número de muestras y el número de bits. En con-secuencia, la digitalización de la señal analógica resulta más precisa y la cali-dad de la voz mejora, lo cual da como resultado un incremento del número de KBytes del archivo de voz digital.REfERENCIAS BIBLIOGRáfICASAlan V. OPPENHEIM, Alan S. WILLSKY, S Hamid NAWAB. Señales y Sistemas, 2da Edición, Prentice Hall Hispanoamericana, México, 1998.Rafael C. GONZÁLEZ, Richard E. WOODS. Tratamiento Digital de Imágenes, Addison-Weslley Iberoamericana S.A, U.S.A, 1996.Rafael C. GONZÁLEZ, Richard E. WOODS and Steven L. Eddins. Digital Image processing using MATLAB, Editorial Dorling Kindersley, 2004.Simon HAYKIN. Neural Networks a comprehensive foundation, Editorial Prentice Hall, 1994.Martín del Brío BONIFACIO, SANZ MOLINA Alfredo. Redes Neuronales y sistemas borrosos, 3ra Edición, Editorial Ra-Ma, 2006.Luis A. HERNANDO. Introducción a la teoría y estructura del lenguaje, 2da Edición, Editorial Verbum, S.L., Madrid-España, 1995.Matías ZAñARTU SALAS. Aplicaciones del análisis acústico en los estudios de la voz humana [Artículo], Escuela de Fonoaudiología-Universidad Mayor, Santia-go-Chile, 2003. [en línea]. Disponible en: URL:http://www.sld.cu/galerias/pdf/si-tios/rehabilitacionlogo/aplicaciones_del_analisis_acustico_de_lavoz_humana.pdf.Eduardo LLEIDA SOLANO.Conversor Texto-Voz.[Artículo]. [en línea]. Disponible en: URL:http://dihana.cps.unizar.es/investigacion/voz/ctv.html Genoveva VELÁSQUEZ RAMíREZ. Sistema de Reconocimiento de Voz en Matlab. Universidad de San Carlos de Guatemala-Facultad de Ingeniería, Tesis de Pre-Grado, Guatemala, 2008. Disponible en: URL:http://biblioteca.usac.edu.gt/tesis/08/08_0223_EO.pdf