ARQUITECTURA ALGORÍTMICA PARA ELrepository.udistrital.edu.co/bitstream/11349/4473/1... · Speech...
Transcript of ARQUITECTURA ALGORÍTMICA PARA ELrepository.udistrital.edu.co/bitstream/11349/4473/1... · Speech...
ARQUITECTURA ALGORÍTMICA PARA EL RECONOCIMIENTO DE PATRONES FONÉTICOS
DEL HABLA SUB-VOCAL EN EL ESPAÑOL.
OLGA LUCÍA RAMOS SANDOVAL
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE INGENIERÍA PROGRAMA DE DOCTORADO EN INGENIERÍA
ÉNFASIS EN CIENCIAS DE LA INFORMACIÓN Y EL CONOCIMIENTO
BOGOTÁ, D.C. 2016
ARQUITECTURA ALGORITMICA PARA EL RECONOCIMIENTO DE PATRONES FONÉTICOS
DEL HABLA SUB-VOCAL EN EL ESPAÑOL.
OLGA LUCÍA RAMOS SANDOVAL
Tesis de grado para optar por el título de Doctor en Ingeniería
Director:
JORGE ENRIQUE SABY BELTRÁN, Ph.D.
Co-Director:
DARÍO AMAYA HURTADO, Ph.D.
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE
CALDAS FACULTAD DE INGENIERÍA
PROGRAMA DE DOCTORADO EN INGENIERÍA ÉNFASIS EN CIENCIAS DE LA INFORMACIÓN Y EL
CONOCIMIENTO BOGOTÁ, D.C.
2016
Comisión de Doctorado Esta tesis, titulada “Arquitectura Algorítmica para el Reconocimiento de Patrones Fonéticos del Habla Sub-Vocal en el Español”, escrita por Olga Lucia Ramos Sandoval, ha sido aprobada en cuanto a estilo y contenido intelectual. Hemos leído esta tesis y la aprobamos, ______________________________________ Doctor João Mauricio Rosário Jurado 1 ______________________________________ Doctor Oscar Fernando Avilés Sánchez Jurado 2 ______________________________________ Doctor Giovanny Mauricio Tarazona Bermúdez Jurado 3 ______________________________________ Doctor Jorge Enrique Saby Beltrán Director ______________________________________ Doctor Darío Amaya Hurtado Codirector Fecha de la defensa: 28 de octubre de 2016
DEDICATORIA
A Dios por mi familia, a mis amados hijos Daniela y Kamilo, por darme
fortaleza siempre y todo su amor. A mi amado esposo por su
persistencia y por enseñarme a luchar por las metas trazadas. A mis
padres y hermanos por su apoyo.
AGRADECIMIENTOS
El autor expresa sus agradecimientos a:
A los Doctores Jorge Enrique Saby y Darío Amaya Hurtado, por sus
enseñanzas, sus orientaciones su y acompañamiento en los momentos
difíciles.
Al Doctor Giovanny Mauricio Tarazona, por su apoyo y persistencia
Al Ingeniero Juan Pablo Ramírez, por toda su colaboración
CONTENIDO
1. INTRODUCCIÓN ...................................................................................... 16
1.1. FORMULACIÓN DEL PROBLEMA ............................................ 18
1.2. PREGUNTA DE INVESTIGACIÓN ........................................... 18
1.3. OBJETIVOS ......................................................................................... 19
1.3.1. General .......................................................................................... 19
1.3.2. Específicos ................................................................................... 19
1.4. MARCO METODOLÓGICO ......................................................... 19
1.5. HIPÓTESIS DE SOLUCIÓN .......................................................... 19
2. MARCO TEÓRICO Y REFERENCIAL ................................................ 21
2.1. Marco teórico ........................................................................................ 21
2.1.1. Sistema de reconocimiento automático de habla subvocal .. 21
2.1.2. Adquisición de datos .................................................................. 21
2.1.3. Micrófono tipo NAM ................................................................. 22
2.1.4. Preprocesamiento ........................................................................ 23
2.1.5. Extracción de características...................................................... 25
2.1.6. Dynamic Time Warping (DTW) .................................................... 32
2.1.7. Reconocimiento de patrones ..................................................... 35
2.2. MARCO REFERENCIAL ................................................................ 37
2.2.1. Imágenes ....................................................................................... 37
2.2.2. Electromiografía .......................................................................... 38
2.2.3. Murmuro no Audible .................................................................. 39
2.2.4. Detección de voz ......................................................................... 41
3. CONSIDERACIONES FONOLÓGICAS ............................................. 42
3.1.1. Fonética y fonología. .................................................................. 42
3.1.2. La lingüística y el reconocimiento de habla. ........................... 42
3.1.3. Unidades lingüísticas para el reconocimiento. ........................ 43
3.1.4. Características fonéticas de las unidades lingüísticas. ............ 45
4. DESARROLLO DE LA INVESTIGACIÓN ........................................ 51
4.1. Adquisición de la señal ........................................................................ 51
4.1.1. Muestra poblacional .................................................................... 51
4.1.2. Micrófono Tipo NAM ............................................................... 53
4.1.3. Pre-procesamiento ...................................................................... 54
El pre-procesamiento se utiliza para estandarizar las características de
las señales adquiridas, garantizando su uniformidad al momento de
implementar los métodos de extracción de características. A
continuación, se realiza una breve descripción de las técnicas utilizadas
en el pre- procesamiento. ............................................................................. 54
4.1.3.1. Eliminación de Silencios ........................................................ 54
4.2. Extracción de Características .............................................................. 56
4.2.1. Software ........................................................................................ 56
4.2.2. Descomposición por paquetes de Wavelet ............................... 56
4.2.3. Codificación predictiva lineal (LPC) ........................................ 64
4.3. Coeficientes Cepstrales en Frecuencia Mel (MFCC) ...................... 68
4.3.1. Pre-énfasis: ................................................................................... 70
4.3.2. Ventaneo de la señal: .................................................................. 71
4.3.3. Cálculo de la FFT ........................................................................ 71
4.3.4. Banco de filtros de Mel y logaritmo: ........................................ 75
4.3.5. Transformada discreta de Coseno ............................................ 77
4.4. Algoritmo de Inteligencia Artificial ................................................... 81
4.4.1. Clasificador para Descomposición por paquetes de Wavelet 84
4.4.2. Clasificador para Codificación Predictiva Lineal.................... 86
4.4.3. Clasificador para Coeficientes Ceptrales en Frecuecias Mel 86
5. ANÁLISIS DE RESULTADOS Y APORTES ....................................... 89
6. CONCLUSIONES ....................................................................................... 96
7. TRABAJOS FUTUROS .............................................................................. 98
8. REFERENCIAS ........................................................................................... 99
ANEXO 1. Generalidades de los sistemas de captura y micrófono utilzado
para la adquisición de la señal subvocal NAM ................................................. 106
ANEXO 2. Código Embebido para método MFCC ..................................... 108
ANEXO 3. Recognition of Spanish Vowels through Imagined ................... 119
Speech by Using Spectral Analysis and SVM ................................................... 119
ANEXO 4. Embedded MFCC feature extraction system for speech
processing .............................................................................................................. 120
ANEXO 5. Comparative Analysis of the MFCC coefficients for voiced and
silent speech ........................................................................................................... 121
ANEXO 6. Embedded Wavelet Analysis of Non-Audible Signal ............... 122
NOMENCLATURA
𝜔 Frecuencia. Angular
𝑎𝑘 Coeficientes del denominador del filtro digital
𝑏𝑘 Coeficientes del numerador del filtro digital
𝐹 Tranformada de Fourier
𝜓 Wavelet madre
𝜑 Función de escala para la Wavelet madre
ℎ(𝑛) Vector de coeficientes para el filtro pasa alto en la descomposición wavelet
𝑔(𝑛) Vector de coeficientes para el filtro pasa bajo en la descomposición wavelet
𝜃𝑘 Polos del modelo discreto del tracto vocal
𝛼𝑘 Coeficientes del predictor lineal
𝑅(𝑘) Coeficientes de autocorrelación
LISTA DE TABLAS Tabla 1. Filtros digitales IIR. ................................................................................. 24
Tabla 2. Wavelets de tiempo continúo. ............................................................... 28
Tabla 3. Punto de articulación y modo de articulación de los fonemas
consonánticos. ......................................................................................................... 44
Tabla 4. Selección de muestras. ............................................................................ 52
Tabla 5. Coeficientes en el sistema embebido. ................................................... 78
Tabla 6. Coeficientes calculados en Matlab ........................................................ 78
Tabla 7. Porcentaje de patrones identificados erróneamente. ......................... 89
Tabla 8. Respuesta de la red neuronal entrenada con los datos de entropía. 89
Tabla 9. Porcentaje de patrones identificados erróneamente. ......................... 90
Tabla 10. Respuesta de la red neuronal entrenada con los datos de la media
aritmética. ................................................................................................................. 90
Tabla 11. Porcentaje de patrones identificados erróneamente. ....................... 91
Tabla 12. Respuesta de la red neuronal entrenada con los datos de desviación
estándar. ................................................................................................................... 91
Tabla 13. Porcentaje de patrones identificados erróneamente. ....................... 92
Tabla 14. Respuesta de la red neuronal entrenada con los datos LPC........... 93
Tabla 15. Porcentaje de patrones identificados erróneamente. ....................... 93
Tabla 16. Respuesta de la red neuronal entrenada con los datos MFCCs ..... 94
Tabla 17. Producción científica derivada del proyecto. .................................... 95
LISTA DE FIGURAS Figura 1. Esquema de un micrófono NAM. ...................................................... 22
Figura 2. Watchdog del conversor analogo – digital. ........................................... 23
Figura 3. Señal original (a) y señal contaminada con ruido de media cero (b).
................................................................................................................................... 26
Figura 4. Espectros de amplitud para las señal original y contaminada. ........ 27
Figura 5. Transformada de Wavelet continua para una señal no estacionaria. 29
Figura 6. Resolución de tiempo y frecuencia. .................................................... 29
Figura 7. Procesos involucrados en el cálculo de MFCCs ............................... 30
Figura 8. Operación de ventaneo. ........................................................................ 31
Figura 9. Coeficientes de Mel para las dos primeras ventanas de los fonemas
/a/, /e/ y /o/. ........................................................................................................ 32
Figura 10. Conjunto de señales a comparar. ...................................................... 33
Figura 11. Cálculo de distancias euclidianas. ...................................................... 33
Figura 12. Matriz de costo acumulado. ............................................................... 34
Figura 13. Camino óptimo. ................................................................................... 35
Figura 14. Visualización de la envolvente entre las dos señales. ..................... 35
Figura 15. Topología de la red neuronal utilizada ............................................. 36
Figura 16. Modelo conceptual de la producción del habla. ............................. 43
Figura 17. Espectrograma de la señal de habla subvocal para el fonema /ta/.
................................................................................................................................... 47
Figura 18. Espectrograma de la señal de habla subvocal para el fonema /te/.
................................................................................................................................... 48
Figura 19. Espectrograma de la señal de habla subvocal para el fonema /ti/.
................................................................................................................................... 48
Figura 20. Espectrograma de la señal de habla subvocal para el fonema /to/.
................................................................................................................................... 49
Figura 21. Espectrograma de la señal de habla subvocal para el fonema /tu/.
................................................................................................................................... 49
Figura 22. Arquitectura algorítmica propuesta. .................................................. 51
Figura 23. Estructura y ubicación del micrófono tipo NAM. ......................... 53
Figura 24. Señales de audio de habla normal y habla sub-vocal. ..................... 54
Figura 25. Eliminación de silencio y normalización de la señal. ..................... 55
Figura 26. Árbol de descomposición para tres niveles. .................................... 57
Figura 27. Paquetes Wavelets para la función Daubechie # 8. ......................... 58
Figura 28. Descomposición de la señal capturada para el fonema /ta/. ....... 60
Figura 29. Distribución de los coeficientes para 6 niveles de descomposición.
................................................................................................................................... 60
Figura 30. Diagrama de bloques del sistema de reconocimiento propuesto. 61
Figura 31. Entropías para los tres primeros niveles del fonema /ta/. ........... 62
Figura 32. Calculo de las Entropías de Shannon para cada fonema y nivel. . 62
Figura 33. Cálculo de la media aritmética para los coeficientes de detalle y
aproximación. .......................................................................................................... 63
Figura 34. Cálculo de la desviación estándar de los coeficientes de detalle y
aproximación. .......................................................................................................... 63
Figura 35. Ventano de una señal. ......................................................................... 65
Figura 36. Estimación del espectro para la pronunciación del fonema /te/. 67
Figura 37. Reconstrucción de los espectros para distintos fonemas vocálicos.
................................................................................................................................... 67
Figura 38. Algoritmo para el cálculo de los coeficientes predictivos lineales 68
Figura 39. Partes del sistema de procesamiento. ............................................... 68
Figura 40. Representación de la señal NAM del fonema /te/. ....................... 69
Figura 41. Diagrama de flujo de proceso de pre-énfasis embebido en la
tarjeta. ....................................................................................................................... 70
Figura 42. Cálculo de FFT..................................................................................... 72
Figura 43. Espectro de magnitud para la primera ventana de la señal. .......... 73
Figura 44. Espectro de magnitud para la segunda ventana de la señal. ......... 74
Figura 45. Espectro de magnitud para la tercera ventana de la señal. ............ 74
Figura 46. Espectro de magnitud para la cuarta ventana de la señal. ............. 75
Figura 47. Banco de filtros de Mel. ...................................................................... 76
Figura 48. Gráfica de los coeficientes embebidos. ............................................ 79
Figura 49. Coeficientes calculados en Matlab .................................................... 80
Figura 50. MFCCs para diferentes fonemas vocálicos. .................................... 80
Figura 51. Algoritmo para la extracción de coeficientes cepstrales en
frecuencia Mel. ........................................................................................................ 81
Figura 52. Algoritmo desarrollado para la red neuronal. .................................. 82
Figura 53. Estructura general de la red neuronal. .............................................. 82
Figura 54. Diagrama de bloques para la capa oculta. ........................................ 83
Figura 55. Diagrama de bloques para la capa de salida. .................................... 84
Figura 56. Proceso de entrenamiento de la red las características de entropía.
................................................................................................................................... 85
Figura 57. Proceso de entrenamiento de la red con los datos de la media
aritmética. ................................................................................................................. 85
Figura 58. Proceso de entrenamiento de la red con la desviación estándar de
los coeficientes. ....................................................................................................... 86
Figura 59.Entrenamiento de la red neuronal para los espectros ajustados con
LPC. .......................................................................................................................... 86
Figura 60. Diagrama de la metodología propuesta. ........................................... 87
Figura 61. Error de la red en función de la cantidad de neuronas en la capa
oculta......................................................................................................................... 87
Figura 62. Comportamiento de la red neuronal durante el entrenamiento. 88
Figura 63. Trabajos con clasificación SCIMAGO. ............................................ 95
Figura 64. Trabajos indexados en Publindex. .................................................... 95
RESUMEN
El habla sub-vocal, es una técnica de reciente investigación, que puede ser
aplicada para habilitar formas alternas de comunicación en diferentes
escenarios como, ambientes de alta contaminación auditiva, personas con
discapacidad en el aparato fonador, comunicación subacuática, entre otros.
Esta técnica se fundamenta, en la información que se produce al intentar
pronunciar un vocablo o una palabra, pero no se ve representada en una señal
sonora. Es decir, estas señales representan la intención del habla antes de ser
articulada. En este trabajo, se presenta una arquitectura algorítmica, para el
reconocimiento de patrones de fonemas del idioma español, que permite
instanciar dicha habla sub-vocal. Se realizó una adquisición de las señales
producidas por el habla silenciosa, utilizando un micrófono de Murmuro No
Audible (NAM), diseñado para tal propósito. Posteriormente, las muestras
capturadas fueron procesadas y analizadas utilizando técnicas de análisis
frecuencial y temporal. Además, se utilizaron métodos de algoritmos basados
en inteligencia artificial, para desarrollar una arquitectura de identificación de
patrones, que permitió realizar la identificación de fonemas del idioma
español. Como aporte de este trabajo, se obtuvieron diferentes resultados a
partir de la implementación de distintas técnicas de análisis y extracción de
características, así como, de clasificación y reconocimiento, haciendo uso de
aprendizaje de máquina y un sistema digital para su ejecución en tiempo real,
consiguiendo una identificación cercana al 90%.
ABSTRACT
Silent speech is a recent subject in research. The objective is to allow the
communication within high-noise environments, help people with language
and speech disorders and under-water communication. Silent Speech is based
on the information produced when a word is thought by a speaker-person but
sonorous response is not produced. It means that the produced signals
represent the intention of speak before the overt production (sonorous
production). In this work is described the process of design and
implementation of a recognition process for silent phonemes of the Spanish
language. First was performed the acquisition of silent speech signals which
were processed in further steps for feature extraction, using methodologies
based in time and frequency representations. For the pattern recognition
phase, algorithms based on Artificial Intelligence were implemented to
perform the identification and classification of the silent speech signals. As
result of this work were evaluated different processing and classification
techniques with recognition indices near from 90%.
16
1. INTRODUCCIÓN
La comunicación, es una herramienta de uso cotidiano para el ser humano que le
permite interactuar con otras personas en una sociedad o ambiente especifico
(Watzlawick, Bavelas, Jackson, & O’Hanlon, 2011) y puede dividirse en dos grandes
categorías, la primera es la comunicación verbal (Gärdenfors & Warglien, 2013), que
se refiere a la divulgación de información a través de signos lingüísticos característicos
de una cultura, y pueden ser orales o escritos. Por otro lado, se encuentra la
comunicación no verbal (Knapp, Hall, & Horgan, 2013), que es la transmisión de
mensajes sin el uso de palabras, es decir, indicios, gestos, o señales como el lenguaje
facial o corporal.
De las dos categorías anteriores, el tipo de comunicación más común es el habla, que
está basada en la combinación de léxico y nombres extraídos de un grupo de palabras
denominado vocabulario. La producción del habla, a nivel lingüístico describe como
se ubican los labios, mandíbula y lengua para lograr emitir un sonido, y depende de
dos procesos fundamentales, la percepción, por medio de la cual se interpretan y
entienden los sonidos propios de un lenguaje, y la repetición, que es cuando un
sonido se trasforma en un movimiento inconsciente volviendo el habla un
movimiento mecánico.
El habla, involucra tres etapas en su producción, la primera es la intención de generar
un sonido relacionado a un concepto en particular, la segunda, incluye la codificación
gramatical, morfo-fonológica y fonética para generar la activación correspondiente
en los órganos que conforman el aparato fonador, y por último, se realiza la
articulación o producción de voz (Levelt, 1999). Estos procesos, han sido de gran
interés en las últimas décadas para la comunidad científica, la cual a partir de los
últimos desarrollos tecnológicos han hecho de las técnicas de procesamiento digital
de señales, métodos más eficientes y eficaces para construir sistemas de
reconocimiento de voz cada vez más complejos.
Actualmente, existen desarrollos de carácter tecnológico capaces de procesar,
interpretar y generar el habla, conocidos como sistemas ASR (Automatic Speech
Recognition), (L. Rabiner & Schafer, 2011) ,que basan su funcionamiento en la acústica
de las señales de voz por lo cual poseen ciertas limitaciones, como la susceptibilidad
al ruido presente en el medio de transmisión del mensaje y además dependen de la
amplitud de las señales vocales, por lo que patologías, como la disfonía y afonía que
afectan la correcta producción de voz del usuario tienen una incidencia directa en el
desempeño del sistema.
Como una posible solución a las limitaciones mencionadas anteriormente, se
propone el uso del habla sub-vocal, ya que esta no depende de la producción de voz
17
audible, en lugar de esto utiliza señales adquiridas de los procesos bio-eléctricos que
controlan los órganos que componen el aparato fonador. A partir de este concepto
surgen desarrollos como las interfaces de habla silenciosa o por sus siglas en inglés
SSI (Silent Speech Interface) (Denby et al., 2010). Sin embargo, estos sistemas aún se
encuentran en etapa experimental.
Algunos trabajos han realizado acercamientos al procesamiento y clasificación de este
tipo de señales, utilizando diferentes medios para la adquisición de las mismas, como
es el caso de (Wand, Janke, & Schultz, 2014) donde emplean sensores para
electromiografía de superficie capaces de registrar la actividad muscular generada al
momento de la producción de sonido, obteniendo un error de reconocimiento en
palabras pronunciadas de 16.8% y murmuradas de 34.8%, de la misma manera en (L.
Mendoza, Peña, Muñoz-Bedoya, & Velandia-Villamizar, 2013) utilizan sensores
similares, pero para el procesamiento de las señales utilizan Wavelet Packets,
obteniendo un rango de reconocimiento entre 74% y 76%.
En otros trabajos se observan desarrollos basados en el comportamiento de órganos
pertenecientes al tracto vocal, como la glotis a través del análisis de vibraciones (Patil
& Hansen, 2010) o electromagnetismo (Quatieri et al., 2006), donde se llega a la
conclusión que los dos sistemas tienen un amplio potencial en la detección de
estímulos sub-vocales, también se han elaborado trabajos con sensores ultrasónicos
y procesamiento de imágenes para analizar el movimiento de la lengua como se
aprecia en (Hueber et al., 2010), donde alcanzan una tasa de reconocimiento del 60%
para fonemas del idioma inglés utilizando PCA (Principal Component Analysis) y HMM
(Hidden Markov Models).
Otro dispositivo de captura, ampliamente utilizado para registrar señales de este tipo,
son los micrófonos de murmullo no audible NAM, con el cual se han elaborado
numerosos trabajos, además de obtenerse resultados significativos tal cual se muestra
en (Nakajima, Kashioka, Shikano, & Campbell, 2003) y (Hirahara et al., 2010),
además utilizando técnicas como LAD (Linear Discriminant Analysis) y GMM (Gaussian
Mixture Models) se obtuvo un porcentaje de identificación superior a 60% como se
presenta en (V.-A. Tran, Bailly, Lœvenbruck, & Toda, 2010).
Por último en (Ramos, Gamma, & Hurtado, 2015), fue elaborada una revisión de los
diferentes dispositivos mencionados con anterioridad, concluyendo que el micrófono
de tipo NAM presenta una serie de ventajas frente a los demás dispositivos de
adquisición, debido a que es cómodo para el usuario, su uso es comercial y es cercano
a la independencia del hablante.
18
1.1. FORMULACIÓN DEL PROBLEMA
Un aspecto relevante en los seres vivos es la comunicación, específicamente en el
humano, el medio más utilizado para comunicarse, es el habla, que le permite
intercambiar información con sus semejantes. Para algunas personas, la posibilidad
de comunicarse a través del habla, es nula, por diversos problemas. Por ejemplo, por
dificultades fisiológicas, que le impide reproducir las señales enviadas desde el
cerebro. Para el último censo en Colombia, (DANE, 2005), se registraron 157417
personas con limitaciones con el habla. Otros escenarios donde la alteración de la
comunicación humana se hace presente, es en lugares que poseen alta contaminación
auditiva también denominados ambientes ruidosos. En el mismo sentido, en los
ámbitos subacuáticos, se hace necesario contar con un sistema que permita la
comunicación humana.
Una alternativa de comunicación para los escenarios expuestos, es el habla sub-vocal
o lenguaje silencioso. Éste consiste en la transferencia de señales neurológicas
generadas por el cerebro, cuando se tiene la intención de pronunciar una palabra, que
luego son enviadas a los músculos de la garganta, aun existiendo algún daño o
parálisis en el aparato fonador.
Investigaciones recientes han dado como resultado las llamadas interfaces de lenguaje
silencioso, que consisten en proceso de adquisición y reconocimiento de fonemas,
sílabas o palabras para lograr trasmitir el mensaje que se tiene la intención de decir,
sin que llegue realmente a ser expresado como una señal sonora. A pesar de ello, y
que en los últimos tiempos se han realizado trabajos significativos para el
reconocimiento automático del habla sonora, son mínimas las investigaciones
encontradas en función de la identificación de patrones del idioma español utilizando
habla sub-vocal y sus resultados alcanzan un reconocimiento del 76% (L. Mendoza
et al., 2013), haciendo poco factible la construcción de un sistema en tiempo real
debido a la margen de error presente.
1.2. PREGUNTA DE INVESTIGACIÓN
¿Cuál es la arquitectura del algoritmo que permita la discriminación y el
reconocimiento de patrones de fonemas del idioma español utilizando el habla sub-
vocal?
En esta investigación, se plantea y evalúa una arquitectura algorítmica que logra la
discriminación de patrones de fonemas del idioma español, basados en las señales
provenientes del habla sub-vocal, permitiendo identificar dichos fonemas, a través
del análisis con diferentes técnicas para su procesamiento, y la aplicación de métodos
basados inteligencia artificial.
19
1.3. OBJETIVOS
1.3.1. General
Diseñar y evaluar el desempeño de una arquitectura algorítmica para la
discriminación y el reconocimiento de patrones de cinco fonemas del idioma
español, basado en el habla sub-vocal, aplicando técnicas de procesamiento de
señales e inteligencia artificial en tiempo real.
1.3.2. Específicos
Diseñar y desarrollar un sistema de adquisición de las señales generadas
por el cerebro bajo el concepto del habla sub-vocal, utilizando la técnica de
murmuro no audible.
Realizar el procesamiento digital de las señales del habla sub-vocal, para
realizar la extracción de características y la posterior identificación de
patrones asociados a fonemas del español.
Diseñar un modelo computacional de aprendizaje para la interpretación
de patrones en tiempo real de las señales obtenidas a través del habla sub-
vocal.
1.4. MARCO METODOLÓGICO
Con el propósito de dar cumplimiento a los objetivos propuestos, el marco
metodológico, se desarrolló inicialmente con una etapa de captura de la señal del habla
sub-vocal, utilizando como elemento primario un sensor tipo NAM. Posterior a esto,
se realizó una etapa de pre-procesamiento a la señal adquirida, donde se diseñaron
filtros digitales que eliminaron ruidos asociados a la señal capturada. Se continuó con
la etapa de extracción de características, aplicando técnicas de transformación de
dominio temporal y frecuencial, con el propósito de implementar una etapa de
identificación de patrones de fonemas del idioma español, empleando algoritmos de
inteligencia artificial. Finalmente, los pasos descritos fueron implementados en un
sistema embebido para su operación en tiempo real. La metodología utilizada en el
desarrollo del proyecto se basó en el método experimental.
1.5. HIPÓTESIS DE SOLUCIÓN
Una arquitectura algorítmica, con fundamento en inteligencia artificial, basado en
el procesamiento de señales del habla sub-vocal, puede l legar a discriminar
patrones lingüísticos, que permitan la identificación de fonemas del español, en
20
tiempo real. Convirtiéndose en una herramienta que permite la comunicación en
ambientes con contaminación auditiva.
El presente documento está distribuido de la siguiente manera: el capítulo uno,
introducción contiene lo referente a la formulación de la propuesta de investigación.
El capítulo dos, presenta los referentes teóricos y el marco referencial en las temáticas
de desarrollo de la investigación. El capítulo tres, describe el desarrollo de la
investigación. En el capítulo cuatro, se expone los resultados y los principales aportes.
Por último, se presentan las conclusiones y trabajos futuros.
21
2. MARCO TEÓRICO Y REFERENCIAL
2.1. Marco teórico
2.1.1. Sistema de reconocimiento automático de habla subvocal
La comunicación es una herramienta de uso diario para el ser humano, debido a que
ésta es el proceso a través del cual se generan señales o indicios con la intención de
enviar o transmitir información (Lasswell, 1948), y para que sea exitosa, tanto el
emisor como el receptor deben tener el conocimiento o las habilidades necesarias
para decodificar correctamente los elementos que componen el mensaje. Una de las
formas de comunicación más comunes y naturales para el ser humano es el habla, la
cual involucra tres etapas en su producción, la primera es la intención de generar un
sonido que se relacione con algún objeto o concepto, la segunda es la codificación
gramatical y por último la articulación de voz.
En la actualidad existen desarrollos de carácter tecnológico que son capaces de
procesar, interpretar y generar el habla, que basan su operación en las señales
acústicas producidas por el discurso en voz alta, por lo cual poseen ciertas
limitaciones, como la alta susceptibilidad al ruido del ambiente y patologías que
afectan la articulación de palabras como la afonía. Como una posible solución a las
limitaciones mencionadas, se propone la elaboración de un sistema de
reconocimiento de habla sub-vocal, debido a que este no depende en gran medida de
la generación de voz audible, sino que utiliza señales provenientes de los procesos
bioeléctricos generados antes de la producción de voz. En los apartados siguientes se
exponen y explican algunos de los conceptos y fundamentos teóricos tenidos en
cuenta para la realización del sistema propuesto.
2.1.2. Adquisición de datos
Para la adquisición de datos, es importante tener en cuenta que la producción de voz
involucra diferentes procesos controlados por el cerebro y el sistema nervioso
central, en los cuales se involucran la actividad muscular asociada en el aparato
fonador. Cuando un músculo es activado por el sistema nervioso central, se genera
un flujo de impulsos bioeléctricos que pueden ser registrados por electrodos de
superficie u otros sensores para su posterior procesamiento.
Aunque existen en la actualidad diversas tecnologías y sensores para desarrollar
sistemas conocidos como Interfaces de habla silente, algunos ejemplos son los
sensores de articulografía electromagnética, electrodos de superficie(Wand et al.,
2014), ultrasonido (Hueber et al., 2010) y el micrófono tipo NAM (Yang, Brown, Lu,
Yamagishi, & King, 2012), que fue utilizado en el desarrollo de este trabajo.
22
2.1.3. Micrófono tipo NAM
Los micrófonos NAM en sistemas de reconocimiento de habla sub-vocal son algunos
de los sensores más prometedores debido a sus características, como lo son la
portabilidad y facilidad de instalación, es cercano a la independencia con respecto al
hablante, además es de uso comercial y su fabricación es sencilla. El murmullo no
audible, hace referencia a los sonidos de inferiores a 30 dB (Darbyshire & Young,
2013), producidos en el aparato fonador por el paso de aire en la laringe, de acuerdo
a lo anterior, un micrófono NAM está diseñado para detectar y registrar exitosamente
las vibraciones generadas por los sonidos de baja intensidad mencionados
anteriormente.
El micrófono NAM utilizado para el desarrollo de este trabajo está conformado por
un sensor MEMS ADMP401 que se encuentra instalado dentro de una cubierta
específicamente diseñada para sujetar el micrófono, además de permitir la conexión
de éste con el dispositivo de adquisición. El extremo del contenedor que tiene el
micrófono está cubierto por una capa de caucho siliconado, con el fin de imitar la
textura de la piel humana y facilitar la propagación de las vibraciones o señales
generadas antes de la producción de sonido hasta el micrófono. En la Figura 1, se
muestra la posición ideal del micrófono para registrar correctamente las señales, así
como un esquema de su estructura.
Figura 1. Esquema de un micrófono NAM.
La adquisición y procesamiento de señales, son dos de las etapas más importantes de
todo el sistema, debido a que una buena adquisición entrega señales crudas con una
alta cantidad de información y a partir del procesamiento, se obtienen características
relevantes de las señales capturadas. Para realizar lo dicho previamente, se debe
contar con un hardware capaz de adquirir y procesar de manera adecuada las señales
provenientes del dispositivo de captura. El elemento seleccionado fue un sistema
embebido de STM Electronics, la tarjeta de desarrollo STM34F407 cuyos componentes
cuentan con las siguientes características:
23
2.1.3.1. Micro-procesador
Este sistema de desarrollo cuenta con un procesador ARM Cortex/M4 de 32 bits,
con unidad de coma flotante y está desarrollado para proveer una plataforma de bajo
costo que afronte los requerimientos actuales para un microprocesador, a través de
un número reducido de pines y bajo consumo de energía. El procesador soporta una
seria de instrucciones de procesamiento digital para el análisis de señales y el cálculo
de algoritmos complejos.
2.1.3.2. Conversor análogo digital
El sistema de desarrollo cuenta con tres módulos de conversión análoga-digital
embebidos, y cada uno tiene hasta 16 canales externos, lo que permite la adquisición
individual o un modo scan donde la conversión es automática para un rango de
canales escogidos. La adquisición puede alcanzar una tasa de hasta 2.4 millones de
muestras por segundo. El ADC de este sistema embebido, puede ser configurado
para que se active un watchdog, que activa un bit de estado, que permite determinar si
la señal de entrada está en una ventana acotada por un límite inferior y un límite
superior, como se presenta en la Figura 2. Los límites de esta ventana pueden ser
configurados de manera independiente a través de dos registros de 16 bits, en un
rango de entrada de 0 a 3 V.
Figura 2. Watchdog del conversor analogo – digital.
2.1.4. Preprocesamiento
Debido a las características inherentes de las señales producidas por el habla sub-
vocal, como baja amplitud y perdida de componentes frecuenciales, que se deben a
la composición de los órganos que conforman el aparato fonador, además de los
factores externos que se involucran en su adquisición, como ruido causado por la
presencia de individuos ajenos a la captura en el ambiente, o variaciones en la señal
Límite Superior de guarda
Límite Inferior de guarda
Señal Análoga (mV)
0
3000
Zona de Interrupción
24
debido al sensor y elementos conductores de la misma, se hace necesaria la
elaboración de una etapa de pre-procesamiento con operaciones de filtrado y
amplificación.
La amplificación se realiza, con la finalidad de realzar las características de la señal en
un rango desde 0 hasta 3.3V y mejorar su adquisición al momento de ingresarla en el
sistema embebido, por otro lado, el filtrado se implementa con el objetivo de
seleccionar o eliminar datos de la señal que no aportan datos relevantes para permitir
una caracterización e identificación adecuada. Con el uso del sistema embebido
STM32F407 resulta factible la implementación de filtros digitales, que son una
versión computarizada de los filtros análogos y tienen una serie de ventaja frente a
éstos, como su estabilidad a lo largo del tiempo, debido a que no sufren desgaste y
solo requieren operaciones aritméticas.
Los filtros digitales se dividen en dos categorías según su repuesta al impulso, si ésta
cae después de pasar un tiempo 𝑡 se dice que es un filtro FIR (Finite Impulse Response),
por otro lado, si se mantiene de manera indefinida es un filtro IIR (Infinite Impulse
Response). La principal diferencia entre estos dos es su programación, porque el filtro
FIR solamente depende del valor de las entradas, mientras que el IIR depende de las
entradas y salidas. Los filtros IIR requieren menos coeficientes, por lo tanto, su
tiempo de ejecución es menor, no obstante, su comportamiento en fase no es lineal.
En la Tabla 1 se muestran algunos de los filtros establecidos bajo estas características
y un breve resumen de sus características.
Tabla 1. Filtros digitales IIR.
Nombre Características Ecuación
Butterworth
No tiene oscilación en la banda de
paso. Se caracteriza por tener una
respuesta suave en la banda de paso.
𝐻(𝜔) = √1
1 + (𝜔𝜔𝑐)2𝑁
Chebyshev
Menor zona de transición. Posee ripple
en la zona de paso. Su mayor ventaja
es su rápida respuesta en la zona de
transición.
𝐻(𝜔) =1
√1 + 휀2𝑇𝑛2(𝜔𝜔0)
Elípticos
Posee ripple en las bandas de paso y de
transición.
Su zona de transición es la más rápida.
𝐻(𝜔) =1
√1 +1
𝛼2𝑇𝑛2(1𝜔)
Por otro lado, los filtros FIR son de fácil implementación y se diseñan para ser
estables y alcanzar un comportamiento lineal en fase. Su complejidad precisamente
radica en el diseño, debido a que se debe escoger una frecuencia ideal de trabajo,
25
calcular su respuesta al impulso y cuando el filtro llegue a la respuesta deseada se
detiene para almacenar los coeficientes obtenidos. Su implementación se realiza a
través de las ecuaciones en diferencias que definen el comportamiento de los filtros,
como se ve en las ecuaciones (1) y (2) para filtros FIR e IIR respectivamente.
𝑦[𝑛] = ∑𝑏𝑘𝑥[𝑛 − 𝑘]
𝑀
𝑘=0
( 1 )
𝑦[𝑛] = ∑𝑏𝑘𝑥[𝑛 − 𝑘] −
𝑀
𝑘=0
∑𝑎𝑘𝑦[𝑛 − 𝑘]
𝑁
𝑘=0
( 2 )
Donde 𝑏𝑘 y 𝑎𝑘 son los coeficientes de los valores de entrada y salida, M y N definen
el orden de los filtros, así como la cantidad de ceros y polos del filtro.
2.1.5. Extracción de características
En procesamiento de señales enfocado a la elaboración de algoritmos de inteligencia
artificial y reconocimiento de patrones, las técnicas de extracción de características
son todas aquellas, que a partir de un conjunto inicial de datos pueden calcular valores
nuevos (características) para proveer información relevante y no redundante del
conjunto original, con el fin de facilitar y reducir el tiempo de entrenamiento en los
algoritmos de inteligencia artificial, además de estar relacionadas con la reducción
dimensional de los datos.
Cuando los datos de entrada para un algoritmo de clasificación e identificación son
demasiado grandes para ser procesados de manera eficaz, se pueden transformar en
un grupo reducido de características que generalicen y mantengan la información más
importante del conjunto original. En esta sección, se describen algunas de las técnicas
utilizadas para extraer información a partir de las señales adquiridas utilizando el
micrófono NAM, unas de estas convierten los datos de un dominio a otro para
facilitar su manipulación, y otras simplemente aprovechan las características
inherentes de la señal para obtener datos discriminantes a la hora de realizar el
reconocimiento.
2.1.5.1. Transformada de Fourier
Esta transformada, denominada así por el matemático Joseph Fourier, es una
operación matemática de transformación de dominios, para convertir los datos de
una señal en el dominio del tiempo al dominio de la frecuencia y tiene un sin número
de aplicaciones en la ingeniería, física, química y demás campos de la ciencia, además
esta transformación es reversible, pudiendo pasar de un dominio al otro sin ningún
problema.
En ingeniería se utiliza para obtener información de una señal, que no es visible en
el dominio del tiempo, con lo cual se estaría hablando de una extracción de
26
características y reducción de dimensión, debido a que la cantidad de datos que arroja
la FT puede ser configurado independientemente del tamaño temporal de la señal.
En la ecuación (3) se encuentra la expresión que representa la Transformada de
Fourier en tiempo continuo (CFT), donde 𝜔 es la frecuencia angular, y 𝑓(𝑡) la señal
en el dominio temporal.
𝐹[𝑓(𝑡)] = ∫ 𝑓(𝑡)𝑒−𝑗𝜔𝑡𝑑𝑡
∞
−∞
( 3 )
No obstante, el uso de la CFT en aplicaciones de procesamiento digital de señales
debe realizarse a través de su versión discreta, la Transformada de Fourier en tiempo
Discreto (DFT). Esta versión de la CFT, requiere que la señal de entrada sea una
secuencia discreta y de una duración determinada, lo cual se logra con el muestreo de
una señal continua, como se ilustra en la ecuación (4), donde k representa los
coeficientes de la transformada y j el valor de la señal temporal que está siendo tenido
en cuenta en el cálculo.
𝑋[𝑘] =∑𝑥[𝑗]𝑒−2𝜋𝑖[𝑗−1][𝑘−1]
𝑁
𝑁
𝑗=1
( 4 )
En la práctica el cálculo de la DFT se realiza utilizando un algoritmo de optimización
computacional conocido como la Transformada Rápida de Fourier (FFT), que
disminuye el tiempo de cálculo de la transformada, pasando de realizar 𝑁2
operaciones a 𝑛 log (𝑛), pero pone ciertas limitaciones a la señal y el espectro
resultante, por ejemplo, es obligatorio que la duración de la señal en termino de
muestras debe ser un valor potencia de 2 (128, 256, 512, 1024). Existen diferentes
metodologías para el cálculo de la FFT, como la FFT del factor primo, algoritmo de
Bruun, algoritmo de Rader, y el más usado, algoritmo de Colley-Tukey que divide la
señal en dos hasta obtener pares de muestras y aplicar de manera recursiva la
transformada a cada par de datos. Para mostrar la capacidad de análisis que ofrece
una trasformación de dominio como la FFT, se tiene la señal 𝑦(𝑡) =
2𝑆𝑒𝑛(2𝜋50𝑡) + 0.8𝐶𝑜𝑠(2𝜋100𝑡) como se muestra en la Figura 3.
Figura 3. Señal original (a) y señal contaminada con ruido de media cero (b).
27
En la Figura 4, se aprecia la señal escogida para ejemplificar el comportamiento de
este algoritmo, la cual fue corrupta con ruido de media cero alterando notablemente
su comportamiento en el dominio del tiempo al cambiar su amplitud y forma, sin
embargo, en el dominio de la frecuencia que es obtenido tras aplicar la trasformada
rápida de Fourier, se puede observar que la distribución de frecuencias, así como los
dos valores de amplitud más altos no cambian drásticamente su comportamiento.
Figura 4. Espectros de amplitud para las señal original y contaminada.
2.1.5.2. Transformada Wavelet
Un método para analizar cualquier señal y disminuir los problemas de resolución
relacionados las trasformaciones de dominios es el MRA (MultiResolution Analysis),
utilizando esta metodología es posible analizar la señal en diferentes frecuencias y
resoluciones, y su diseño está concebido para obtener datos relevantes del tiempo en
las altas frecuencias y de frecuencia en las bajas, sin embargo, esta aproximación
tiene sentido si las altas frecuencias se presentan en periodos de corta duración, y las
bajas durante un tiempo más prolongado.
Una de las técnicas incluidas en este grupo de herramientas analíticas es la
Transformada Wavelet, que es muy similar a la transformada de Fourier en tiempo
corto, pero solo porque se debe multiplicar la señal por una función ventana y la
transformada se calcula para diferentes secciones de tiempo, sin embargo existen dos
grandes diferencias, la primera es que la transformada Wavelet no computa frecuencias
negativas, y el ancho de la ventana va cambiando cada vez que la transformada se
calcula para cada componente espectral, siendo esta la característica más importante
de este algoritmo. La transformada Wavelet de tiempo continuo se define según la
expresión mostrada en la ecuación (5).
𝐶𝑊𝑇𝜒𝜓(𝜏, 𝑠) =
1
√𝑠∫ 𝑥(𝑡)𝜓∗ (
𝑡 − 𝜏
𝑠)𝑑𝑡
∞
−∞
( 5 )
Donde 𝑠 es el parámetro de escala, 𝜏 es la constante de traslación, 𝜓 es la función
“transformante”, y se le conoce como wavelet madre y 𝑥(𝑡) es la señal a transformar.
28
El nombre wavelet significa literalmente onda pequeña, donde pequeño significa que
el tamaño de la ventana es finito, y onda es debido a que la ventana es oscilatoria. La
traslación es la propiedad de desplazamiento temporal de la ventana, pero a diferencia
de la FFT, la ecuación (5) no está en términos de frecuencia sino de escala.
Esta escala se puede comparar con la misma que es utilizada en cartografía, a menor
escala se obtienen datos más detallados. En términos de frecuencia, las bajas
frecuencias son una escala grande, lo que corresponde con información global de la
señal, mientras que las altas frecuencias a una escala pequeña, son información
detallada de un patrón particular en la señal, en otros términos, la escala dilata o
contrae la señal si esta estuviera en el numerador de la expresión, pero como se
encuentra en el denominador el comportamiento de la escala es como se explica en
la ecuación (6).
𝑓(𝑡) = 𝑓(𝑠𝑡) {𝑠 > 1𝑠 < 1
𝐷𝑖𝑙𝑎𝑡𝑎𝐶𝑜𝑛𝑡𝑟𝑎𝑒
( 6 )
Para el cálculo de la CWT (Continuous Wavelet Transform) primero se debe escoger una
wavelet madre como prototipo para las funciones ventana. En la Tabla 2, se presentan
algunas de las expresiones de las funciones wavelet existentes.
Tabla 2. Wavelets de tiempo continúo.
Nombre Función
Mexican Hat 𝜓(𝑡) =2
√3𝜎𝜋1/4(1 −
𝑡2
𝜎2) 𝑒
−𝑡2
2𝜎2
Meyer 𝜓(𝑡) =
{
1
√2𝜋𝑆𝑖𝑛 (
𝜋
2𝜐 (3|𝑡|
2𝜋− 1))𝑒𝑗𝜔/2 𝑠𝑖 2𝜋 3⁄ < |𝑡| < 4𝜋 3⁄
1
√2𝜋𝐶𝑜𝑠 (
𝜋
2𝜐 (3|𝑡|
2𝜋− 1))𝑒𝑗𝜔/2 𝑠𝑖 4𝜋 3⁄ < |𝑡| < 8𝜋 3⁄
0 𝑑𝑒 𝑜𝑡𝑟𝑜 𝑚𝑜𝑑𝑜
Poisson 𝜓(𝑡) = {(𝑡 − 𝑛
𝑛!) 𝑡𝑛−1𝑒−𝑡 𝑝𝑎𝑟𝑎 𝑡 ≥ 0
0 𝑝𝑎𝑟𝑎 𝑡 < 0
Hermitian 𝜓𝑛(𝑡) = (2𝑛)−𝑛2𝑐𝑛𝐻𝑛 (
𝑡
√𝑛) 𝑒−
12𝑛𝑡2
Shannon 𝜓(𝑡) =∏(𝑡 − 3𝜋 2⁄
𝜋) +∏(
𝑡 + 3𝜋 2⁄
𝜋)
Morlet 𝜓𝑐(𝑡) = 𝑐𝜎𝜋−14𝑒−
12𝑡2(𝑒𝑖𝜎 − 𝜅𝜎)
Una vez se ha seleccionado la wavelet madre, esta se inicia con un valor de escala igual
a 1, y a medida que se ve ejecutando la transformada se va cambiando la escala por
29
valores más bajos o altos. La ventana se ubica al inicio de la señal, es decir en 𝑡 = 0
y con un valor de escala igual a 1 se multiplica por la señal para luego integrarse.
Como resultado final de incrementar la traslación y escala, se obtienen datos en un
plano tiempo-escala, en donde cada valor computado para la escala seleccionada
forma una fila en el plano, y las columnas irán siendo formadas a medida que la escala
también lo hace como se ve en la Figura 5.
Figura 5. Transformada de Wavelet continua para una señal no estacionaria.
Para explicar mejor el funcionamiento de la transformada wavelet, se tiene el gráfico
que muestra la Figura 6. Asumiendo que cada uno de los rectángulos tiene la misma
área, cada una representa una porción del plano tiempo-frecuencia, pero con
diferentes proporciones, lo cual indica que para bajas frecuencias se tiene un rango
de información temporal más amplio, y para las altas la información que predomina
es de frecuencia. La diferencia y eficacia de la transformada depende en gran medida
de la wavelet madre utilizada, debido a que esta puede variar las dimensiones de las
áreas, por lo cual se debe buscar un balance en la relación frecuencia-tiempo, en otras
palabras, realizar la selección de una función wavelet que permita obtener los datos
que se quieren calcular.
Figura 6. Resolución de tiempo y frecuencia.
30
2.1.5.3. Coeficientes cepstrales de las frecuencias de Mel (MFCC)
Los MFCC son valores que representan las señales de audio provenientes del habla,
teniendo en cuenta los límites de percepción para la audición humana y es una de las
herramientas más utilizada en el desarrollo de trabajos relacionados con señales
pertenecientes al habla (Zhou, Garcia-Romero, Duraiswami, Espy-Wilson, &
Shamma, 2011). En la Figura 7 se muestra un esquema que muestra en orden los
procesos que deben realizarse para calcular de manera adecuada los coeficientes.
Figura 7. Procesos involucrados en el cálculo de MFCCs
Pre-énfasis
La primera etapa para el cálculo de los coeficientes de Mel, es el pre-énfasis, cuyo
objetivo es incrementar la cantidad de energía presente en las altas frecuencias de la
señal, para hacer de ésta, información detectable y útil en el procesamiento de voz.
Las ventajas de su implementación no se ven reflejadas sino hasta etapas posteriores,
como el reconocimiento de patrones donde el aumento de las altas frecuencias es
proporcional a la tasa de reconocimiento. Para el caso de estudio, el pre-énfasis se
realiza utilizando un filtro pasa alto de primer orden, como se expresa en la ecuación
(7), cuyo valor de multiplicación para el valor del atraso a la salida varía entre 0.95 y
0.98.
sf[n] = s[n] − 0.97s[n − 1] ( 7 )
Ventaneo
En el procesamiento de señales de voz, debe tenerse en cuenta que una de sus
propiedades es que son no estacionarias., es decir, la frecuencia de éstas varia con
respecto al tiempo y por ende sus características no son constantes. Esto implica un
problema al momento de implementar técnicas clásicas de procesamiento, como la
Transformada de Fourier y otros análisis temporales, no obstante, estas variaciones
son lentas con respecto al tiempo dada la estructura del tracto vocal (L. R. Rabiner &
Schafer, 2011). De acuerdo a lo anterior, si se realiza una segmentación de la señal en
divisiones lo suficientemente pequeñas para asumir que son estacionarias, pero aun
así del tamaño adecuado para considerar que son información importante, es posible
aplicar las técnicas clásicas. (Jurafsky & Martin, 2009). Algunas de los factores a tener
en cuenta en el ventaneo de la señal son:
Ancho y desplazamiento de la ventana
Forma de la ventana
31
En la Figura 8 se muestra la operación de ventaneo para una señal proveniente de la
pronunciación del fonema vocálico /e/, para habla normal.
Figura 8. Operación de ventaneo.
La forma de ventana escogida, fue de tipo Hamming como se expresa en la ecuación
(8).
𝑤[𝑛] = {0.54 − 0.46 cos[2𝜋 𝑛 𝑁⁄ ]
0
0 ≤ 𝑛 ≤ 𝐿 − 1
𝑝𝑜𝑟 𝑙𝑜 𝑑𝑒𝑚á𝑠 ( 8 )
Periodograma
La tercera fase del cálculo de los coeficientes es la estimación de la energía que hay
en cada una de las ventanas de la señal, esto se realza utilizando el periodograma, el
cual se calcula obteniendo la transformada de Fourier para cada una de los segmentos
realizados en la etapa de ventaneo y es expresado en la ecuación (9).
𝑃𝑖[𝑘] =1
𝑁|𝑆𝑖[𝑘]|
2 ( 9 )
Donde, 𝑆𝑖[𝑘] es la DFT de un segmento de la señal y 𝑘 es la resolución de la
trasformada. A partir del periodograma, se tiene una representación del espectro de
potencia de la señal, con el cual se estima la potencia presente en todas y cada una de
las divisiones de la señal, teniendo información de la señal completa.
Banco de filtros de Mel y operación Logaritmo
El filtrado de los datos obtenidos en el periodograma se elabora con un banco de
filtros triangulares, en donde por encima de 1KHz, el filtro se relaciona de manera
logarítmica y por debajo de éste valor lo hace de manera lineal. La escala de Mel fue
desarrollada a partir de la percepción que posee el oído humano para los
componentes frecuenciales del sonido, cuyo comportamiento es no lineal (Hossan,
Memon, & Gregory, 2010). Para convertir los valores de frecuencia a la escala de Mel
32
se utiliza la función descrita en la ecuación (10), donde 𝑓 es la frecuencia lineal, y el
número de filtros varía entre 20 y 40 (Huang, Acero, Hon, & Reddy, 2001).
𝑚𝑒𝑙(𝑓) = 2595 ln (1 +𝑓
700) ( 10 )
Transformada discreta de coseno (TDC)
Para finalizar el cómputo de los coeficientes, se aplica la transformada discreta de
coseno a los datos obtenidos tras la implementación del banco de filtros. A diferencia
de otras metodologías, la implementación de la TDC permite realizar una correlación
entre la energía de la señal, esto se debe a que en primer lugar la TDC es
computacionalmente más cómoda, y segundo, debido a la forma triangular de los
filtros, estos se traslapan en ciertas zonas dando una relación muy marcada en esas
intersecciones, por lo cual se debe aplicar un método de correlación que disminuya
ese fenómeno, siendo la TDC una herramienta muy útil.
En la Figura 9 se muestra una gráfica con el valor de los coeficientes calculados para
los fonemas /a/, /e/ y /o/.
Figura 9. Coeficientes de Mel para las dos primeras ventanas de los fonemas /a/, /e/ y /o/.
2.1.6. Dynamic Time Warping (DTW)
DTW es una técnica de procesamiento que permite realizar análisis sobre series
temporales que pueden variar en tiempo y velocidad a través de la cuantificación de
diferencias con el fin de encontrar un alineamiento óptimo entre las dos secuencias
bajo ciertas condiciones. En un principio, ésta técnica fue concebida como un
complemento parar procesar señales de voz en sistemas de reconocimiento
automático de habla, sin embargo, también ha sido utilizada con éxito en otros
campos como la minería de datos. En el procesamiento de señales de audio resulta
útil debido a la naturaleza de éstas, debido a que por lo general dos señales de voz
nunca tienen la misma pronunciación ni duración. (Deng & Leung, 2015)
33
Esta técnica tiene tres etapas de operación, en la primera se realiza el cálculo de las
distancias euclidianas para todos los puntos de las señales, luego, se realiza el mapeo
de la función de costo calculada con los valores de las distancias previamente
obtenidas, y por último hace la búsqueda del camino más corto dentro de la matriz
de costo, que permita la comparación entre las dos señales (Müller, 2007). Para
ejemplificar el funcionamiento de este algoritmo se van a utilizar el par de señales
mostradas en la Figura 10.
Figura 10. Conjunto de señales a comparar.
El par de señales sinusoidales que tienen un comportamiento similar en cuanto a
velocidad, pero tienen distinta duración en término de muestras y tiempo. En la
primera etapa del cómputo de DTW se deben hallar las distancias de todas las parejas
de puntos existentes en la pareja de señales, para hacer esto se ubican las dos señales
sobre ejes coordenados y se consignan en una matriz los datos de las distancias
euclidianas calculadas punto a punto. Para el caso de ejemplo se ubicó la señal 1 sobre
el eje horizontal y la señal 2 sobre el eje vertical obteniendo la matriz de distancias
mostrada en la Figura 11.
Figura 11. Cálculo de distancias euclidianas.
34
Se puede observar que los valores más pequeños de las distancias calculadas en la
primera etapa presentan patrones diagonales, esto significa que las distancias son
menores entre aquellas muestras que poseen índices similares. Para crear una
correlación entre las dos señales, hay que calcular un camino en el gráfico de la Figura
11. Cálculo de distancias euclidianas. Figura 12, que permita llegar desde el punto
𝑃(0,0) hasta 𝑃(𝐴, 𝐵), donde 𝐴y 𝐵 son las longitudes de las señales en términos de
muestras con la menor distancia posible. El objetivo de este algoritmo es encontrar
dicho camino teniendo en cuenta las siguientes condiciones:
1) El camino debe comenzar en 𝑃(0,0)y terminar en 𝑃(𝐴, 𝐵).
2) No es posible retroceder, por lo cual el camino solo puede ir hacia adelante, es decir,
a partir de un punto 𝑃(𝑥, 𝑦), solo se puede girar hacia arriba 𝑃(𝑥, 𝑦 + 1), hacia la
izquierda 𝑃(𝑥 + 1, 𝑦) o en diagonal 𝑃(𝑥 + 1, 𝑦 + 1)
Con estas condiciones se impide que se presente un problema combinatorio, y en
lugar de esto se convierte en un problema de programación dinámica que puede
resolverse en (𝐴 ∗ 𝐵) operaciones. Para facilitar la búsqueda del camino óptimo se
utiliza algo conocido como matriz de costos acumulados, la cual va acumulando las
distancias euclidianas para formar un nuevo set de datos, y sobre éste realizar la
búsqueda. En la Figura 12 se encuentra la matriz de costo acumulado.
Figura 12. Matriz de costo acumulado.
El cálculo del camino óptimo 𝑊 = (𝑤1, …… ,𝑤𝐿) se realiza en reversa, es decir, se
inicia por el punto 𝑊𝐿 = 𝑃(𝐴, 𝐵) hasta llegar al punto 𝑊0 = 𝑃(𝐴, 𝐵) siguiendo las
expresiones de la ecuación (11).
𝑊𝐿−1 = {
(1, 𝑏 − 1),(𝑎 − 1,1),
min{𝑃(𝑎 − 1, 𝑏 − 1), 𝑃(𝑎 − 1, 𝑏). 𝑃(𝑎, 𝑏 − 1)}
𝑠𝑖 𝑎 = 1𝑠𝑖 𝑏 = 1
, 𝑑𝑒 𝑜𝑡𝑟𝑜 𝑚𝑜𝑑𝑜
( 11 )
35
Las distancias que están consignadas en la Figura 13, y es en esta matriz de datos
donde se debe realizar la búsqueda del camino óptimo que minimice el error a la hora
de comparar las dos señales.
Figura 13. Camino óptimo.
En la Figura 14, se muestra la gráfica de los puntos que conectan las dos señales al
recorrer el camino que produce el costo mínimo, y por lo tanto permite comparar las
dos señales obteniendo un error mínimo al momento de realizarlo.
Figura 14. Visualización de la envolvente entre las dos señales.
2.1.7. Reconocimiento de patrones
Es una rama de la ingeniería y computación que se encarga de describir y clasificar
objetos, representaciones y/o señales. Los patrones son obtenidos a través de
procesos de adquisición, partición, extracción de características y descripción. Esta
ciencia funciona gracias a un conjunto de datos con todos los posibles patrones a
reconocer debidamente discriminados.
El reconocimiento trabaja en función de un conjunto previo con todos los posibles
patrones a identificar debidamente etiquetados y separados según sus características.
El rango de acción que tiene sus aplicaciones es muy amplio, como por ejemplo
previsión de condiciones meteorológicas, reconocimiento de huellas dactilares,
36
rostros y voz, así como detección de irregularidades en imágenes médicas, sin
embargo, las más importantes se relacionan con la audición y visión de máquina.
Algunos de los algoritmos más utilizados para llevar a cabo esta tarea, son los
asociados al aprendizaje de máquina como las redes neuronales y máquinas de
soporte vectorial (Duda, Hart, & Stork, 2012).
2.1.7.1. Redes neuronales artificiales
Las redes neuronales con un modelo de aprendizaje de máquina y procesamiento
automático de datos que fueron concebidas como una simulación del sistema
nervioso animal, que está constituido por unidades funcionales llamadas neuronas.
El primer modelo fue propuesto en 1943, el cual era un modelo binario donde cada
neurona tenía un único valor de umbral configurado, y sirvió como base para todos
los desarrollos realizados hasta el día de hoy.
Algunas de las características que hacen de las redes neuronales algoritmos muy útiles,
son su capacidad de procesamiento no lineal y paralelo, además son adaptables y
auto-organizables dependiendo del problema requiera ser resuelto. En cuanto a sus
aplicaciones se encuentran el ajuste de datos, clustering, control, optimización,
identificación de sistemas y reconocimiento de patrones.También existe una amplia
variedad en la construcción o arquitectura de este tipo de modelos, desde el más
sencillo conocido como perceptrón, hasta las redes MLP (Multi Layer Perceptron)
(Kruse, Borgelt, & Klawonn, 2013), redes de Hopfield (Anand, Hephzibah, &
Anandan, 2014), mapas de Kohonen (Angeli, Quesney, & Gross, 2012), etc.
La arquitectura de red utilizada para el reconocimiento de patrones es un perceptrón
multicapa Feed-forward, el cual está conformado por tres capas, la primera para ingresar
los patrones, la segunda, conocida como la capa oculta que se encarga de todo el
procesamiento de datos, y por último la capa de salida, que ajusta los valores
procesados para arrojar una respuesta coherente con la cantidad y características de
las clases tenidas en cuenta. En la Figura 15 se muestra el esquema de una red
neuronal de tipo feed-forward configurada para realizar un reconocimiento de patrones.
Figura 15. Topología de la red neuronal utilizada
37
En este desarrollo en concreto se utilizaron las funciones de activación tangente
sigmoidal y la función de clasificación denominada softmax como se muestra en las
ecuaciones (12) y (13) respectivamente, donde 𝑥, es el valor de salida para cada capa.
𝑇𝑎𝑛𝑠𝑖𝑔(𝑥) =2
1 + 𝑒−2𝑥− 1 ( 12 )
𝑆𝑜𝑓𝑡𝑚𝑎𝑥(𝑥) =𝑒𝑥
∑ 𝑒𝑥𝑛𝑖=1
( 13 )
Una vez establecida la estructura de la red, se debe implementar el algoritmo de
aprendizaje para la red neuronal, para que sea capaz de distinguir las características
existentes en los diferentes patrones. El entrenamiento utilizando el algoritmo
backpropagation (Lin Wang, Zeng, & Chen, 2015), y como parámetros para detener el
aprendizaje se tienen el error, las épocas, el tiempo, y el valor del gradiente o la
dirección en la que el error está variando. Para la mayoría de las aplicaciones se utiliza
éste entrenamiento variando el tipo de error, por ejemplo, para ajuste de datos se
utiliza el error cuadrático medio, mientras que para tareas de reconocimiento de
patrones se recomienda el uso del error por entropía cruzada (EEC) (Saric & Xiao,
2011), como se ilustra en la ecuación (14).
𝐸𝐸𝐶 = −1
𝑁∑[𝑦𝑛 ∙ log [�̂�𝑛] + [1 − �̂�𝑛] ∙ log [1 − �̂�𝑛]]
𝑁
𝑛=1
( 14 )
En esta expresión, 𝑦𝑛es la salida deseada y �̂�𝑛 la salida obtenida.
2.2. MARCO REFERENCIAL
2.2.1. Imágenes
(Ahmadi, McLoughlin, & Sharifzadeh, 2010) hacen un análisis de las características
de adquisición de señales de la voz en tracto vocal, a través de sensores ultrasónicos
de baja frecuencia. Este análisis da como resultado que en frecuencias comprendidas
entre 20 y 100 KHz la adquisición de estas señales es buena.
(Srinivasan, Raj, & Ezzat, 2010) realizan el reconocimiento de los dígitos del 0 al 9
del idioma inglés, utilizando sensores ultrasónicos, con seis hablantes. El algoritmo
de reconocimiento utiliza Cadenas Ocultas de Markov, y obtuvieron el 33% de
exactitud en el resultado.
(Hueber et al., 2010) Realizaron una interfaz de habla silenciosa, a través de captura
de imágenes ultrasónicas de la lengua y los labios. El sistema se basa en un
diccionario audiovisual que asocia a las observaciones visuales a la pronunciación
acústica de diferentes fonemas. El algoritmo de discriminación está basado en
38
modelos ocultos de Markov. Los movimientos de la boca son registrados por una
cámara de video y son procesados con técnicas de análisis de imágenes para
identificar letras o fonemas, alcanzaron el 60% de la identificación.
(Kalgaonkar, Hu, & Raj, 2007) propusieron un algoritmo en tiempo real que realiza
un análisis frecuencial a las señales de voz captadas a través de sensores ultrasónicos.
La muestra se realizó con 4 hablantes, tres hombres y una mujer, con 30 frases
diferentes, bajo diversas condiciones. El algoritmo desarrollado digitaliza la señal y la
demodula, luego hace una aproximación por Euler y aplican algoritmo de Görtzel.
El algoritmo les permitió determinar que le método basado en el efecto Doppler es
mucho más eficiente que un método acústico debido que puede aislar regiones de
actividad de voz en muy altas condiciones de ruido.
(Hasegawa & Ohtani, 1992) realizaron un sistema de interpretación de movimientos
de la boca. Estos son registrados por una cámara de video y son procesados por
técnicas de análisis de imágenes para identificar letras o fonémas. Permitido
identificar la pronunciación de letras como las vocales, para esto el sistema se vale de
las condiciones dimensionales de la boca como alto (H), ancho (W), área(A), y
contorno de los labios. La investigación dio como resultado identificar los
movimientos de la boca para las cinco vocales del idioma Japonés, con un 91%, de
exactitud.
2.2.2. Electromiografía
En el trabajo presentado por (Meltzner, Colby, Deng, & Heaton, 2011), se realizó
una descripción de un método de adquisición y procesamiento para el
reconocimiento del habla basado en señales generadas el lenguaje silencioso. Para la
adquisición de las señales, se utilizó una técnica electromiografía. Fueron empleados
8 electrodos, colocados sobre la superficie facial y acorde a los músculos del habla,
Las señales de electromiografía adquiridas, son procesadas por medio de una
máquina de estados finita, donde se identifica el inicio del habla y posteriormente se
realizan análisis de identificación a través de modelos de Markov.
Otro trabajo basado en electromiografía es el realizado en (Wand et al., 2014), donde
hicieron un trabajo orientado al reconocimiento del habla silenciosa. Los sensores
fueron ubicados en los músculos faciales, con ello consiguieron registran la actividad
del aparato fonador humano, procesándola con distintas wavelets, alcanzado una tasa
de error inferior al 10%.
(Jorgensen & Dusan, 2010) utilizó en sensores electromiograficos, con el propósito
de realizar reconocimiento de patrones del habla silenciosa. Los sensores fueron
colocados en la laringe y en áreas sublinguales, debajo de la mandíbula. Las señales
adquiridas fueron filtradas a través de un filtro notch, para eliminar la frecuencia de la
red eléctrica. Para el procesamiento de la señal, se muestreó a una frecuencia de 2000
Hz y se utilizó como estrategia de reconocimiento arboles de transformadas Wavelets.
39
Esta investigación, ha sido aplicada a tecnologías de comunicación hombre máquina,
con amplias afinidades en el campo de la robótica y el reconocimiento de palabras.
2.2.3. Murmuro no Audible
Para la captura de la señal originada por el habla silenciosa, (Nakajima et al., 2003)
utilizó como sensor un micrófono NAM. Los autores, presentan la manera como se
puede llegar a implementar este tipo de sensor. Además, estudiaron la posición que
debe tener este sobre la piel, para obtener la una señal más precisa. En este se propone
un algoritmo de reconocimiento, basado en cadena Markov. En sus pruebas
obtuvieron el 90% de precisión en ambientes con contaminación auditiva. Otro
trabajo relacionado con la identificación de habla a través del murmuro no audible,
es el realizado por (P. Heracleous, Nakajima, Lee, Saruwatari, & Shikano, 2003),
donde proponen un modelo de reconocimiento basado en cadenas de Markov
mejorando las distancias del modelo.
La investigación realizada por (V. A. Tran, Bailly, Lœvenbruck, & Jutten, 2008) con
la captura de señales NAM, plantea la importancia del habla silenciosa asociada a los
sistemas de comunicación celular, resaltando las restricciones que estos equipos
tienen en lugares públicos y la aplicación de los NAM como sistemas manos libres.
En él se analiza el reconocimiento de fonémas del alfabeto en lengua francesa,
mostrando como una prioridad detectar la frecuencia fundamental de la voz. Esta
condición mejora los resultados obtenidos sobre el proceso de identificación con
modelos de Markov y sus distribuciones gaussianas. Para determinar la frecuencia
fundamental, se aplica una red neuronal artificial. Las actividades de investigación se
realizaron con las vocales /a/, /e/, /i/, /o/, /u/ y las consonantes, /p/, /pj/, /b/,
/bj/, /m/, /mj/ con pronunciación bilabial. /d/, /t/, /s/, /ts/, /z/, /j/, /n/, con
pronunciación alveolar. /k/, /kj/, /g/, /gj/, con pronunciación palatal. /f/, /∫/,
/t∫/, /ƺ/, con pronunciación fricativa, entre otras. Dentro de los resultados, se
presentan tablas comparativas donde muestran índices de confusión entre
pronunciaciones. Estos indicadores son mostrados de forma porcentual. De este
análisis, se puede resaltar que las transiciones de pronunciación del mismo tipo,
presentan los mayores índices de error.
En la investigación realizada por (Panikos Heracleous, Tran, Nagai, & Shikano,
2010), plantea un sistema de reconocimiento de fonemas vocales, los cuales son
adquiridos por medio de un micrófono NAM. El desarrollo, además de analizar la
información del micrófono por medio de los modelos ocultos de Markov, se apoya
en análisis de imágenes sobre fotogramas que representan los espectrogramas del
micrófono. El espectrograma presenta en función del tiempo las componentes de
frecuencia de la señal de carácter instantáneo. En (Panikos Heracleous et al., 2010),
se muestra una representación de los fonemas japoneses /a/, /e/, /i/, /o/, /u/, en
un espacio tridimensional, contemplando los principales componentes de frecuencia
presentes en la señal de NAM. La investigación (Panikos Heracleous et al., 2010)
40
,también demuestra las diferencias de posición con respecto a una adquisición de
audio sonora normal.
La investigación de (Toda, 2012) ilustra cómo los sonidos o ruidos naturales del
cuerpo humano, afectan la calidad del habla capturada por los micrófonos NAM.
Como método de mejora, esta investigación y la realizada también por (Toda,
Nakagiri, & Shikano, 2012) plantean el uso de un algoritmo de estimación de máxima
verosimilitud, por sus siglas en inglés MLE. Utiliza modelos gaussianos de Markov,
determina la frecuencia fundamental del fono parlante. Este sistema termina con el
reconocimiento de los fonemas, para hacer una conversión a voz. En síntesis, el
sistema reconoce las intenciones de habla del fono parlante y las reproduce como
habla sonora.
La investigación de (Miyamoto, Nakamura, Toda, Saruwatari, & Shikano, 2009)
ilustran métodos para mejorar las características del micrófono NAM. La
propagación del murmuro a través de los tejidos del sistema fonador, provocan
cambios y ruidos sobre las señales de NAM. Como estrategias para reducir esta
condición de ruido, se propone compensar las señales por medio de técnicas
matemáticas como diferencia de la media espectral (CMS), regresión lineal de máxima
verosimilitud restringida (CMLLR) y máximo con restricciones de regresión lineal
(CSMAPLR). El uso del método CMS, compensa eficazmente componentes estáticas
de audio y se caracteriza por las distorsiones múltiples o armónicas. La
implementación de CMLLR, reduce la diferencia entre un modelo y su adaptación a
los datos adquiridos. Este método estima múltiples transformaciones lineales
regresivas que permiten organizar grupos o clases, de acuerdo a la forma de
adaptación que se presente, el método asume un árbol de regresión. El método de
CSMAPLR, es en resumen una versión más robusta, pero a su vez mas difícil de
implementar. Dentro de los resultados y las comparaciones hechas en la investigación
se puede resaltar, que la ubicación del micrófono NAM, ofrece diferentes niveles de
distorsión en las señales acústicas adquiridas. Esta investigación concluye que la
implementación de un método de compensación, en el algoritmo, mejora las
condiciones de habla y reconocimiento con sistemas NAM. Dados los resultados se
estima como mejor técnica la CSMAPLR.
La investigación planteada por (Babani, Toda, Saruwatari, & Shikano, 2011) se
propone la identificación del habla utilizando, la transformada normal (SAT). La
búsqueda de los coeficientes y características del sistema SAT, son realizados con la
implementación de una función objetivo y un criterio de optimización en el algoritmo
de reconocimiento. Para el proceso de optimización, se usan varias muestras de habla
por medio de micrófonos NAM y micrófonos de habla sonora normal. Las dos
lecturas de señal, son implementadas para hacer la búsqueda del vector óptimo del
SAT. Los resultados que evidencia la investigación muestran que es posible mejorar
el sistema de identificación del habla NAM, en un 2%.
41
La investigación planteada por (Ishii, Toda, Saruwatari, Sakti, & Nakamura, 2011),
presenta una técnica para reducir el ruido ciego. Este es producido por características
naturales del organismo como, movimientos musculares, respiración y latidos del
corazón. De forma adicional, aparecen otros ruidos producidos por factores
externos, como el movimiento de las extremidades y la fricción de las prendas de
vestir con la piel. La investigación (Ishii et al., 2011), propone la implementación de
dos micrófonos NAM, produciendo un efecto de adquisición sonora en estéreo. El
modelo planteado por el autor en (Ishii et al., 2011), toma las frecuencias estáticas de
las dos señales de audio, y por medio de un proceso de filtrado se estiman las
componentes de ruido en la señal estéreo. Posteriormente, una etapa de reducción
del ruido se aplica, con el análisis de las potencias presentes en las componentes
espectrales. Esto implica hacer una trasformación de Fourier, directa e inversa.
2.2.4. Detección de voz
Investigación de (Lopez-Larraz, Mozos, Antelis, & Minguez, 2010) plantea cómo
reconocer silabas del idioma español a través de electromiografía colocando
electrodos de superficie en la cara, tomaron como base un vocabulario que albergara
todas las vocales combinadas con una consonante para producir sonidos de
diferentes tipos labiales, dentales, palatales, velares y alveolares, utilizaron algoritmos
de Matlab, para el reconocimiento lograron un 33% de precisión.
(Hassan, Mohamad, Kalil, & Murah, 2011) buscaban cómo realizar un algoritmo de
reconocimiento de voz para el control de movimiento en robots a través del uso de
algoritmos de reconocimiento de Microsoft. En su trabajo, (Ettaouil, Lazaar, & En-
Naimani, 2013) propusieron una investigación para realizar un sistema de
reconocimiento de dígitos arábigos en idioma árabe, Implementaron una red
neuronal óptima con procesamiento de cadenas ocultas de Markov, modelo hibrido,
obtuvieron 84% en el resultado con una red neuronal de T=34 y el 86% con T=48.
(Lei Wang, Liu, Wei, & Hu, 2013) buscan mejorar los sistemas de reconocimiento de
fonemas del idioma Mandarín implementaron filtros Gabo para el procesamiento de
las señales, diseñaron un sistema tándem que integra diferentes características de
fonemas del idioma mandarín con la implementación de los filtros lograron
identificar vocales sordas del idioma mandarín y algunas consonantes.
(Varsavsky & McDermott, 2013), plantearon un algoritmo para aumentar la precisión
en el reconocimiento de pablaras en personas que utilizan implante coclear. Ajustaron
de manera automática los electrodos para generar los estímulos de forma simultánea.
El algoritmo tuvo en cuenta un procesamiento para la puntuación. Realizaron prueba
de con seis implantes dando mejor rendimiento que los procesos estándar. Se utilizó
una interfaz realizada en Matlab & Simulink ®.
42
3. CONSIDERACIONES FONOLÓGICAS
El enfoque práctico de esta investigación se encuentra particularmente
fundamentado en el análisis de las señales de murmuro no audible. Las características
que definen la naturaleza de la producción de estas formas de onda, claramente
difieren de aquellas que distinguen a las de las señales generadas en la acción de habla
sonora. Sin embargo, la concepción lingüística, vista desde los rasgos fonéticos y
fonológicos, es un punto común que comparten y que dada la importancia de la voz
silente, es necesario analizar con el fin de fundamentar el método y las características
procedimentales, en los algoritmos de extracción y clasificación, como fin último de
esta investigación. De acuerdo a lo anterior, es necesario definir dichos aspectos
lingüísticos, por lo que a continuación se definirán en términos de la fonética y
fonología.
3.1.1. Fonética y fonología.
La fonética y la fonología dentro de la lingüística, respectivamente, se encargan del
estudio de las características de los sonidos del habla cuando estos son articulados a
través del aparato fonador, y la codificación de las unidades lingüísticas que dichas
formas de onda representan (Gleason & Ratner, 2010). Mientras la fonética trata la
naturaleza de la producción de los sonidos, comprometiendo el análisis acústico en
términos de sus propiedades físicas, que se podría extender al dominio
suprasegmental de acuerdo a su definición (Saby Beltrán, 2002) y la variación
articulatoria en el tracto vocal, la fonología se ocupa de la organización lingüística de
los sonidos que son producidos y percibidos en el habla (Gil Fernández, 2007).
De acuerdo a dichas definiciones, la fonética y fonología se encuentran ligadas al
análisis de los sonidos y su utilización dentro del lenguaje. A partir de esta relación,
es posible caracterizar los lazos entre las diferentes unidades lingüísticas para definir
su aporte y comportamiento en el lenguaje. Los Fonemas son definidos como dichas
unidades representativas de los sonidos en el habla, y marcan los rasgos distintivos
en el significado de los mensajes comunicados a través de este proceso comunicativo
(Ávila, 2007). El estudio fonético del habla, del cual es basado el análisis de los
fonemas, tiene dos objetivos principales: El primero hace referencia a la
caracterización de los mecanismos involucrados en la producción y percepción del
habla, y el segundo se encarga de la explicación del proceso codificación-
decodificación de la información lingüística, contenida en las señales de voz en la
comunicación oral (Llisterri, 2010).
3.1.2. La lingüística y el reconocimiento de habla.
Tal y como se describieron los objetivos del estudio fonético, la base de la
formulación de los procesos involucrados en el habla son relacionados con la
concepción y diseño metodológico de los sistemas de reconocimiento de voz
(Rabiner & Schafer, 2011). La Figura 16 muestra el modelo conceptual de la
43
producción del habla, el cual es el resultado del estudio fonético del habla y
modificado para su interpretación, validación e implementación como base de los
sistemas de reconocimiento de voz.
Figura 16. Modelo conceptual de la producción del habla.
El modelo conceptual de la Figura 16, permite relacionar el fundamento fonético
descrito anteriormente con el contexto metodológico de los sistemas de
reconocimiento de habla. A partir de este modelo, es posible esbozar y proponer
metodologías que se adapten a su fundamento en términos lingüísticos e ingenieriles,
donde el objetivo es reconocer el mensaje que el hablante (emisor), transmite a través
de las ondas sonoras y cuyo sentido se obtiene a través de la intención que comunica.
De acuerdo al modelo de producción de habla, es posible reconocer dos importantes
elementos a tener en cuenta en el diseño de las metodologías de análisis, extracción
y reconocimiento de señales de voz (sea sonora o silente). Por un lado, se tiene el
modelo del hablante, que en un caso generalizado corresponde a cualquier persona
involucrada en el proceso comunicativo oral y que participa activamente a través de
la producción de habla. Por el otro, se tiene el reconocimiento de habla que es
realizado por la persona receptora del mensaje, la cual efectúa un proceso de
decodificación, en el que analiza y procesa el significado del mensaje enmarcado
dentro la señal de voz producida por el emisor, como método de comprensión de la
información comunicada. En estos términos, el sistema de recepción es el que es
analizado para construir dispositivos de reconocimiento de habla.
El análisis fonético de las señales de voz, corresponde al primer paso en el desarrollo
de sistemas de reconocimiento de habla. Con una descripción teórica detallada de
estos elementos característicos en señales de voz, es posible fundamentar y proponer
las unidades lingüísticas a reconocer por el sistema.
3.1.3. Unidades lingüísticas para el reconocimiento.
El conjunto de unidades lingüísticas para la identificación, conforma el grupo de
elementos de interés del cual se basará el sistema de reconocimiento. Teniendo en
mente esto, una correcta caracterización de dichos elementos, así como la
diferenciación en términos de extensión, se hace necesaria. De acuerdo a que el
sistema está orientado al procesamiento de señales de habla subvocal, se opta por el
análisis de fonemas consecutivos representados por grafemas derivados de
estructuras silábicas tal y como se definen en (Hidalgo Navarro & Quilis Merín,
2012).
44
En primer lugar, se analizaron las características fonéticas y fonológicas de los
elementos consonánticos en cuanto al punto de articulación y modo de articulación.
La Tabla 3, muestra la relación entre la descripción modal y de punto al articular las
consonantes en según el Alfabeto Fonético Internacional (AFI).
Tabla 3. Punto de articulación y modo de articulación de los fonemas consonánticos.
Para escoger las estructuras silábicas como elementos objetivo de clasificación, se
tuvo en cuenta la definición de las señales de habla subvocal producidas a partir del
murmuro-no-audible (NAM). De acuerdo a (Heracleous, Nakajima, Saruwatari, &
Shikano, 2005), las señales NAM son sonidos de baja intensidad que se producen
cuando se realiza la pronunciación de unidades lingüísticas definidas en forma de
susurro. Teniendo en cuenta lo anterior, estas señales objetivo de habla subvocal,
corresponden a sonidos sordos dentro de la representación fonética internacional.
Es por eso que, para garantizar la integridad de las señales, y la clasificación de la
información importante derivada de los fonemas vocálicos de las palabras. Se optó
por tomar fonemas consonánticos sordos que los acompañen. A partir de la
información suministrada en (Gil Fernández, 2007; Quilis, 2002), los fonemas /p/,
/t/ y /k/, corresponden a unidades lingüísticas con un modo de articulación de tipo
oclusivo, y puntos de articulación de tipo bilabial, dental y velar respectivamente.
El punto de articulación de cada fonema, hace referencia a las zonas de la cavidad
bucal en las que los órganos articulatorios se unen para producir el sonido asociado.
En el caso de la /p/ es llamado bilabial, por su punto de articulación, que se realiza
al juntar los labios en la pronunciación. Para la /t/ la articulación es dental debido
que la punta de la lengua, hace contacto con los dientes del maxilar superior. Por
último, el fonema /k/ se lleva a cabo en la zona linguovelar. El modo de articulación
es definido como la forma en que el aire sale de los órganos articulatorios, y para los
tres fonemas es denominado oclusivo, porque el aire sale de golpe, produciendo una
pequeña explosión que es posible de caracterizar en términos temporales y de
frecuencia dentro del sistema de reconocimiento.
45
De acuerdo a estas características lingüísticas, se optó por escoger el fonema
consonántico /t/, debido a que para esta unidad, se garantiza una mejor
discriminación de acuerdo a sus aportes en la producción de habla subvocal. Esta
unidad fonológica acompañada de los fonemas vocálicos /a/, /e/, /i/, /o/ y /u/,
forma así el grupo de clasificación /ta/, /te/, /ti/, /to/ y /tu/, que es caracterizado
en términos de tiempo y frecuencia para posteriores tareas de reconocimiento, tal y
como se explica más adelante.
3.1.4. Características fonéticas de las unidades lingüísticas.
La construcción de un sistema de reconocimiento automático del habla, se basa en la
conceptualización del modelo comunicativo que se ve en la Figura 16. A partir de él,
es posible definir ciertos elementos característicos que representan la base del sistema
a desarrollar. Como bien se explicó anteriormente, los fonemas que se plantearon
analizar en esta investigación corresponden a compuestos de elementos fonológicos
mínimos entre consonantes y vocales.
Cada uno de estos elementos corresponde a la unidad de reconocimiento mínima, la cual
es definida como el elemento indivisible en la tarea de reconocimiento; y que difiere
de la unidad fonológica mínima (i.e. fonema). De acuerdo a esto, a partir de los
requerimientos y características propias del sistema de reconocimiento de voz, es
posible definir diferentes unidades de reconocimiento, las cuales pueden variar desde
unidades fonológicas mínimas y sus compuestos, hasta palabras (Rabiner & Schafer,
2011). El grupo de unidades de reconocimiento, es denominado vocabulario de
reconocimiento, y detalla el alcance del sistema de reconocimiento, y su aplicación
específica.
A partir de estas consideraciones, se realiza un análisis específico sobre las
características fonéticas del vocabulario de reconocimiento. En este caso orientado a
los fonemas compuestos del grupo: /ta/, /te/, /ti/, /to/ y /tu/. La fonética acústica
en este caso permite realizar tal análisis, con el que es posible establecer los primeros
parámetros de caracterización en posteriores etapas de extracción de características.
Las señales de habla subvocal, difieren en varios sentidos a las señales de voz sonora.
Sin embargo, se mantienen las características de punto y modo de articulación cuando
estas son producidas, por lo que es posible encontrar similitudes en las formas de
onda producto de la articulación sonora y silente de las señales analizadas.
En el habla sonora, existen características fonéticas específicas que son propias de
algunos de los fonemas vocálicos analizados. En general, para una señal de voz
sonora debido a sus características no-estacionarias, hacen que no posean elementos
característicos propios en su representación en frecuencia, lo cual sumado a la
dependencia que existe con la persona que produce el sonido, hacen que se dificulte
el proceso de extracción de características; por esta razón se han desarrollado otras
46
metodologías que explotan las representaciones temporales y de frecuencia de
manera integral para cumplir con la tarea de extracción.
Sin embargo, existen posiciones relativas típicas que ayudan a caracterizar y/o
analizar el comportamiento de la señal de voz sin importar la persona, entonación,
potencia, lugar de origen, o tipo de lengua utilizada al realizar la pronunciación de las
unidades de (Fernando Trujillo Sáez, Antonio González Vázquez, Pablo Cobo
Martínez, & Elisabel Cubillas Casas, 2002; Fujisaki & Kawashima, 1968).
Estas variables acústicas son denominadas Formantes, y corresponden a frecuencias
que están contenidas en el espectro de amplitud de las señales analizadas, en donde
existe una mayor concentración de energía en la señal (Fernández, 1988; Fernando
Trujillo Sáez et al., 2002). De acuerdo a esto, es necesario realizar un análisis
estadístico de estas propiedades, como forma de caracterización fonética del habla
subvocal. Sin embargo, dado que un desarrollo de tales alcances va más allá del
objetivo de esta investigación, se limita a la presentación de algunos ejemplos de los
espectros de potencia, que evidencian la posible presencia de los formantes en señales
de habla silente.
Para los fonemas vocálicos, los formantes se pueden distinguir de acuerdo a la
llamada Correlación articulatoria-acústica, con la cual de acuerdo a la abertura de la
mandíbula, la posición horizontal de la lengua y la labialización, determinan la
frecuencia distintiva de los formantes para los fonemas vocálicos. La Figura 17,
muestra esta representación a través del trapecio vocálico.
Figura 17. Correlación articulatoria-acústica de las vocales en el español.
2500 2000 1500 1000200
300
400
500
600
700
[i][u]
[e][o]
[a]
Segundo
Formante F2 (Hz)
Prim
er F
orm
an
te
F1
(Hz)
Cerrada
Media
Abierta
Anterior Central Posterior
47
La transcripción fonética del español con el alfabeto fonético internacional para las
vocales en el español, relaciona la naturaleza oscilatoria en el dominio de la frecuencia
denotada por las características de los formantes de estos fonemas sonoros, con la
ubicación de la lengua al momento de la producción de voz (anterior, central o
posterior) y posición de la mandíbula (cerrada, semi-abierta o media y abierta). De
esta forma, se contruye la relación de la articulación con las frecuencias comunes para
la /a/, /e/, /i/, /o/ y /u/, tal y como se observa en la Figura 17.
Las Figuras 18-22, corresponden a los espectrogramas de las señales de habla silente
para los fonemas /ta/, /te/, /ti/, /to/ y /tu/ respectivamente. En ellas se puede
observar claramente algunas regiones en donde existe mayor representación de
energía en algunos rangos de frecuencia (en su mayoría correspondientes a los
primeros 2 kHz), durante todo el rango de tiempo de la señal.
Figura 18. Espectrograma de la señal de habla subvocal para el fonema /ta/.
La Figura 18, muestra el espectrograma de la señal correspondiente a la
pronunciación del fonema /ta/, se puede observar en esta figura, (así como en las
Figuras 19-22), que para los primeros 50 ms de la señal, toda la banda de frecuencia
registra valores altos de energía en la señal. Esto es debido al sobrepico que se
evidencia en la forma de onda al inicio de la grabación. Particularmente para la Figura
17, existen amplitudes de energía altos para el rango de frecuencias de 0-2600 Hz, el
cual se debe a las características de ruido que poseen las señales de habla subvocal.
48
Figura 19. Espectrograma de la señal de habla subvocal para el fonema /te/.
Para la Figura 19, la banda de frecuencia en la que la señal contiene información espectral relevante, se encuentra enmarcada de 1 a 2 kHz, lo cual se evidencia en el espectro de amplitud representado a través del código de color de la gráfica. Estas franjas de potencia que se reflejan sobre las bandas específicas de frecuencia, podrían ayudar a caracterizar las señales de habla subvocal para el fonema /te/.
Figura 20. Espectrograma de la señal de habla subvocal para el fonema /ti/.
De manera similar, la Figura 20 (espectrograma del fonema /ti/) muestra un rango de frecuencias característico que va desde un poco más de los 500 Hz hasta los 2000 Hz, esta característica diferenciable permitiría encontrar componentes específicas relacionadas con los formantes para las señales de voz sonora.
49
Figura 21. Espectrograma de la señal de habla subvocal para el fonema /to/.
Para el fonema /to/ representado a través de la Figura 21, hay un marcado retraso
en relación a los demás espectros de los otros fonemas, en este caso, el rango de
frecuencias está mucho mejor definido entre los 1200 Hz y los 2000 Hz,
expandiéndose su banda de frecuencia al final de la producción de esta señal.
Figura 22. Espectrograma de la señal de habla subvocal para el fonema /tu/.
Por último, el espectrograma de la Figura 22 muestra similitudes con el generado para
la señal del fonema /te/, lo cual evidencia características de tiempo-frecuencia que
pueden servir para la identificación de patrones en posteriores etapas de clasificación.
50
Herramientas matemáticas como las que se mostraron anteriormente, basadas en la
aplicación de la transformada en tiempo corto de Fourier, ayudan al análisis de señales
no estacionarias como las de habla sonora y silente, además permiten encontrar
valores de frecuencia predominantes en términos de potencia, que ayudan a
caracterizar su comportamiento y su naturaleza de producción.
51
4. DESARROLLO DE LA INVESTIGACIÓN
El presente capitulo describe el desarrollo de la investigación. Obedeciendo a la
arquitectura algorítmica que se ilustra en la Figura 23, donde se distinguen tres
grandes bloques. El primero es la adquisición de la señal, donde se realiza el proceso
de captura de la señal, propia del habla sub-vocal, a la que se aplican técnicas de pre-
procesamiento que permiten la preparación de dicha señal para la etapa posterior. El
siguiente bloque es la extracción de características, proceso de máxima importancia
en esta investigación. La extracción de las características de la señal sub-vocal, se
realizó a través de tres métodos: Descomposición por Paquetes de Wavelet (DWPT),
Codificación Predictiva Lineal (LPC) y Coeficientes Cepstrales en Frecuencia Mel
(MFCC). La parte final del capítulo, describe el entrenamiento de la red neuronal
desarrollada para cada uno de los métodos de extracción y sus resultados.
Figura 23. Arquitectura algorítmica propuesta.
4.1. Adquisición de la señal
Es este apartado, se describe la adquisición de la señal de habla subvocal, realizando
captura de la señal del murmuro no audible, a través de un elemento primario que
detecta la vibración en el apófisis mastoideo.
4.1.1. Muestra poblacional
Para la selección de la muestra poblacional, se toma en cuenta el universo de la
problemática, donde el escenario más asequible son los ambientes con contaminación
52
auditiva o ambientes ruidosos. Aunque las leyes (Resolución 627 de 2006 del
Ministerio de Ambiente) tengan establecidos los niveles máximos de ruidos para
vecindarios residenciales y comerciales, la contaminación sigue en aumento (Pacheco,
Pacheco, Franco, & Behrentz, 2009). La metodología utilizada en la selección de la
muestra poblacional, inicio con la definición de la población objeto, continuando con
la delimitación de la población, la elección del tipo de muestra y finalmente, se
definido el tamaño muestra, en función de los datos requeridos (Iza Alcívar &
Fabricio, 2016).
La población objeto fue seleccionada de acuerdo a la problemática planteada, donde
la unidad de análisis, corresponde con personas que están en contacto con un
ambiente ruidoso. En la delimitación de la población, se tuvo en cuenta la diferencia
entre las características fonéticas y fonológicas entre hombres y mujeres, que aunque
no presenta grandes factores diferenciadores, se puede distinguir que los rasgos
lingüísticos, tiene mayor acentuación en el sexo masculino que en el femenino, al
igual que se observan propiedades similares por grupos de edades (Rissel, 1981). La
delimitación de la población para esta investigación se definió para un grupo de 30
individuos masculinos con edades entre 21 y 35 años.
Las muestras se clasifican en dos grupos, muestras probabilísticas y no probabilísticas
(Hidalgo & Ramírez, 2009). Las muestras no probabilísticas, denominadas muestras
dirigidas, hacen una selección informal. La ventaja de este tipo de muestras, radica en
su aplicabilidad en estudios que requieran una selección de la población con
características relevantes, que identifiquen el problema a investigar (Meiriño, Brea,
Vila, & López, 2016). Finalmente, el tamaño de las muestras para el desarrollo de esta
investigación, fue de 1500 registros, donde se realizaron 10 registros para cada
persona y 300 capturas por fonema. La Tabla 4 ilustra en resumen la selección de las
muestras. Para el entrenamiento de los algoritmos de clasificación e identificación
basados en inteligencia artificial, se utilizó el 60% de los datos o 900 muestras, y los
600 datos restantes se utilizaron para validar el desempeño del algoritmo con
muestras no presentes al momento de entrenarlo.
Tabla 4. Selección de muestras.
Definición de la población Personas que se encuentren en ambientes ruidoso
Delimitación de la población 30 individuos masculinos, con edades entre 21 y 35 años
Tipo de muestra No probabilística
Tamaño de la muestra 1500 registros
53
4.1.2. Micrófono Tipo NAM
La primera etapa de la metodología propuesta, consistió en el registro de muestras
para cada uno de los voluntarios presentes en el experimento, utilizado un micrófono
diseñado para la captura de murmullos no audibles (NAM). Un micrófono tipo NAM
(Tsuruta et al., 2014) asemeja su funcionamiento a un estetoscopio, y comúnmente
se ubica en la zona posterior de la oreja, justo debajo del hueso mastoide, donde es
posible percibir las variaciones en la piel, por el paso de aire en el tracto vocal cuando
se pronuncian vocablos, sin producir vibraciones en las cuerdas vocales.
En la Figura 24, se presenta un esquema de la ubicación del micrófono tipo NAM
diseñado, teniendo en cuenta los datos obtenidos en la revisión documental sobre su
desarrollo. El diseño realizado para la elaboración del experimento tiene una capa de
silicona, para emular el comportamiento de la piel humana en la zona que fue ubicado
el micrófono, la capa de silicona se encuentra en contacto con un micrófono MEMs
encargado de registrar las variaciones sobre la piel, producidas por el paso de aire en
el tracto vocal.
El anexo 1, muestra las características generales del micrófono utilizado y las
generalidades de los sistemas de captura.
Figura 24. Estructura y ubicación del micrófono tipo NAM.
La longitud de las señales capturadas fue de 1.5 segundos y 4800 muestras, debido a
que la frecuencia de muestreo utilizada fue de 8Khz, común en aplicaciones de
reconocimiento y procesamiento de voz. A diferencia de una señal de audio
proveniente del discurso en voz alta, las muestras capturadas a través de habla sub-
vocal, presentan una amplitud inferior, así como una disminución en la cantidad de
sus componentes espectrales, aportando información relevante solo hasta 2000 Hz,
a diferencia de los 3800 Hz para señales de voz comunes (Titze, 2001).
En la Figura 25 se muestra una gráfica comparando dos señales de la misma vocal
capturada a través de la pronunciación en voz alta del fonema /ti/, para el caso de la
señal azul y habla sub-vocal para el caso de la señal roja. Aunque la similitud en la
forma de onda es evidente la señal roja es aproximadamente 5 veces menor en
54
amplitud y posee menos componentes espectrales, lo que reduce drásticamente su
calidad, no obstante, para realizar un reconocimiento de habla ésta similitud resulta
suficiente realizando ajustes en los procesos siguientes para abarcar los componentes
frecuenciales que arrojen información relevante del habla sub-vocal.
Figura 25. Señales de audio de habla normal y habla sub-vocal.
Una vez adquirida la señal pura se hace necesario realizar un pre-procesamiento que
involucra los sub-procesos de eliminación de silencios, normalización y filtrado.
4.1.3. Pre-procesamiento
El pre-procesamiento se utiliza para estandarizar las características de las señales
adquiridas, garantizando su uniformidad al momento de implementar los métodos
de extracción de características. A continuación, se realiza una breve descripción de
las técnicas utilizadas en el pre- procesamiento.
4.1.3.1. Eliminación de Silencios:
Se denomina eliminación de silencios a desechar las señales que no tienen contenido
de información. Para este efecto se pueden aplicar, tradicionalmente, tres métodos:
cálculo de potencia, detección de cruce por cero y cálculo de la frecuencia central.
Para esta investigación el proceso utilizado fue el cálculo de potencia, con umbral de
2%. Las señales por debajo de ello fueron desechadas por considerarlas sordas.
55
4.1.3.2. Normalización:
Debido a que no existe igual aprehensión lingüística para todos los individuos y a las
características propias de la señal subvocal, se hace necesario realizar una
normalización de la señal. Esta investigación realizó una normalización entre valores
de -1 y 1.
La Figura 26 ,muestra la señal pura y las respectivas señales después de aplicados los
procesos anteriormente descritos.
Figura 26. Eliminación de silencio y normalización de la señal.
4.1.3.3. Filtrado
El proceso de filtrado, se hace necesario para realizar la eliminación de señales
espurias que pueden provenir de cualquier órgano componente del aparato fonador.
Para contrarrestar esto, se desarrolló un filtro pasabajas Butterworth de tercer orden,
con frecuencia de corte en 2200Hz, que permite determinar los componentes
frecuenciales que llevan información del habla subvocal.
Terminando el proceso de adquisición de da cumplimiento al primer objetivo
específico, planteado en esta investigación. A través de la adquisición de la señal
subvocal, gráficamente se puede observar que se disminuye la amplitud de esta señal,
respecto a la l de habla sonora. Sin embargo, se conservan las características generales
de la señal de voz.
56
Luego de realizar el proceso de pre-procesamiento, la señal está preparada para
realizar la extracción de sus características, que se abordara en el siguiente capítulo.
4.2. Extracción de Características
La extracción de características es un factor de alta relevancia en los sistemas de
reconocimiento de voz. Por lo tanto, para esta investigación, también constituye un
componente indispensable, a pesar de que no se produce habla sonora. Este
apartado, presenta los métodos de extracción de características desarrollados en
cumplimiento al segundo objetivo propuesto.
La extracción de características se realizó a través de tres métodos: Descomposición
por paquetes de wavelet, Codificación Predictiva Lineal (LPC) y Coeficientes
Cepstrales en Frecuencias Mel (MFCC).
4.2.1. Software
Para la implementación de la adquisición de datos, las diferentes técnicas de
extracción utilizadas en este documento y el entrenamiento de los algoritmos de
inteligencia artificial, para la tarea de clasificación de patrones se utilizó el software
de programación matricial MATLAB® de MathWorks® en su versión 8.5. La
programación del sistema embebido, para la implementación física y en tiempo real
del sistema de reconocimiento, fue elaborada en el compilador para dispositivos
ARM , Keil de uVision en su versión 5.21a.
Para realizar el sistema de reconocimiento automático de fonemas del idioma español
mediante habla sub-vocal, se probaron diferentes metodologías para la extracción de
características, así como la programación de los coeficientes cepstrales de las
frecuencias de Mal en el sistema embebido, para su operación en tiempo real.
4.2.2. Descomposición por paquetes de Wavelet
Este método, es una generalización de la descomposición de señales realizada con la
transformada discreta de wavelet (DWT), pero permite realizar un análisis más
profundo de la señal original, al dividirla en una mayor cantidad de secciones. El
análisis tradicional consiste en dividir la señal en dos partes iguales, una de
aproximación y otra de detalle, luego el proceso es repetido para la sección que
contiene los datos de aproximación, hasta alcanzar el nivel de descomposición
deseado. La división de la señal es realizada mediante dos filtros, un filtro pasa alto y
un filtro pasa bajo que, para el caso práctico en el análisis con wavelets, son la función
wavelet madre (𝜓) y la función de escala (𝜑). El análisis por medio de paquetes wavelets,
utiliza formas de onda dependientes de tres parámetros, tiempo, escala y frecuencia.
Dada una función wavelet que cumpla con la condición de ortogonalidad presente en
la expresión de la ecuación (16), se puede generar un grupo de funciones conocidas
como paquetes base de wavelet.
57
∫ 𝜓𝑎,𝑏(𝑡) ∙
∞
−∞
𝜓𝑎′,𝑏′∗ (𝑡)𝑑𝑡 = 𝛿(𝑎 − 𝑎′)𝛿(𝑏 − 𝑏′) {1 𝑠𝑖 𝑎 = 𝑎′ ∧ 𝑏 = 𝑏′
0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜 ( 16 )
Esta expresión, indica que el resultado del producto punto de una wavelet madre
escalada y trasladada es un impulso unitario. Una propiedad interesante de las wavelets
que cumplen el criterio de ortogonalidad, es que los filtros de análisis o
descomposición, y síntesis o reconstrucción son los mismos, y si además son
ortonormales, es posible elaborar una descomposición sin pérdida global de energía,
sin información redundante y reconstruir completamente la señal, en caso de ser
necesario. (Chan, 1995)
El proceso de análisis mencionado para la DWT solamente tiene en cuenta el vector
de coeficientes de aproximación, y la información perdida entre dos niveles sucesivos
es almacenada en los coeficientes de detalle, sin que dicha información sea re-
analizada. El actual método de descomposición por paquetes, divide de nuevo los
coeficientes de detalle, de la misma manera que ocurre con los de aproximación, lo
cual ofrece un análisis más profundo del comportamiento temporal y frecuencial de
la señal. La idea de este análisis es iniciar con la división de la señal orientada hacia el
factor de escala, y luego obtener información de las frecuencias presentes en cada
nivel. En la Figura 27, se ilustra la estructura obtenida al utilizar los paquetes de
wavelets para descomponer una señal en tres niveles.
Figura 27. Árbol de descomposición para tres niveles.
La generación de los paquetes de wavelets es factible cuando se realiza la selección de
una wavelet que cumple con los criterios de ortogonalidad para la ecuación (16),
algunos tipos de onda que cumplen esas características son las wavelets Haar, Symlet,
Coiflet, Meyer y Daubechie. El proceso se inicia utilizando dos filtros de longitud total
2𝑁, donde ℎ(𝑛) será el filtro pasa alto y 𝑔(𝑛) es el filtro pasa bajo, correspondientes
a la forma de la wavelet utilizada. Definiendo la secuencia de funciones de acuerdo al
número de descomposición requerido, las funciones de los filtros son obtenidas de
la siguiente manera:
58
𝜑(𝑥) = 𝑊2𝑛(𝑥) = √2 ∑ ℎ[𝑛]
2𝑁−1
𝑛=0
∙ 𝑊𝑛[2𝑥 − 𝑛], 𝑛 ∈ ℤ+ ( 17 )
La ecuación (17) pertenece al filtro pasa alto o la función de escala que entrega los
coeficientes de detalle, y su contraparte, que actúa como filtro pasa-bajo o función
wavelet para la obtención de los coeficientes de aproximación, se muestra en la
ecuación 18.
𝜓(𝑥) = 𝑊2𝑛+1(𝑥) = √2 ∑ 𝑔[𝑛]
2𝑁−1
𝑛=0
∙ 𝑊𝑛[2𝑥 − 𝑛], 𝑛 ∈ ℤ+ ( 18 )
De esta manera se obtienen los paquetes de wavelets requeridos para representar una
función los niveles de descomposición deseados.
Para el caso de estudio, se dividió la señal en 6 niveles de descomposición, utilizando
las funciones wavelets mostradas en la Figura 28.
Figura 28. Paquetes Wavelets para la función Daubechie # 8.
En las gráficas de la Figura 28, se puede apreciar que, a distintos niveles la función
presenta valores de traslación y escala diferentes, lo cual es un comportamiento
esperado en el método de descomposición por paquetes. Como ha sido mencionado
anteriormente, fue utilizada una función wavelet de la familia Daubechie, en primer
lugar, por sus propiedades ortogonales y ortonormales, y en segunda instancia porque
59
son funciones que se caracterizan por tener un número máximo de momentos de
desvanecimiento.
Esta última característica, es un indicador de la calidad con la que los distintos
paquetes pueden realizar la descomposición y representación de la señal, es decir,
mientras mayor sea el número de momentos de desvanecimiento, mejor será el
análisis de la señal. Por ejemplo, la función Daubechie # 8 tiene 4 momentos de
desvanecimiento, que resultan suficientes para analizar por completo el ancho de
banda de una señal de habla sub-vocal. Para los paquetes de funciones Wavelet de la
familia Daubechie, los coeficientes de los filtros deben cumplir las siguientes
condiciones.
∑ ℎ[𝑛] ∙ ℎ∗[𝑚 + 2𝑘] = 𝛿[𝑘, 0] = {∑|ℎ[𝑚]|2 𝑠𝑖 𝑘 = 0,
𝑁−1
𝑚=0
0 𝑠𝑖 𝑘 ≠ 0
𝑁−1
𝑚=0
( 19 )
∑ℎ[𝑛] =
𝑁−1
𝑛=0
√2 ( 20 )
∑[−1]𝑛 ∙ 𝑛𝑘 ∙ ℎ[𝑁 − 1 − 𝑛] = 0, 𝑝𝑎𝑟𝑎 0 ≤ 𝑘 ≤𝑁
2− 1
𝑁−1
𝑛=0
( 21 )
Con estas condiciones, se pueden hallar las funciones base Daubechie, sin embargo,
encontrar esas funciones base definidas en una expresión cerrada o de forma analítica
resulta complicado e innecesario, debido a que existen tablas que indican los valores
de los coeficientes, dependiendo de la wavelet a ser utilizada (Strang, 1992). Dentro de
este grupo de wavelets, existen un amplio rango de funciones, desde aquellas que son
altamente localizadas o concentradas, y otras altamente suavizadas o dilatadas. La
expresión que se utiliza para aplicar la transformada wavelet a la señal, de acuerdo al
nivel de descomposición, es como se muestra en la ecuación (22).
𝑊[2𝑗 , 2𝑗𝑛] =1
√2𝑗∑𝜓𝑛
𝑗′[𝑘
2𝑖− 𝑛] ∙ 𝑊[𝑘]
𝑘
( 22 )
En la ecuación anterior 𝑗, hace referencia al nivel de descomposición, 𝑘 y 𝑛 son los
factores de expansión y traslación respectivamente. De igual manera, el superíndice
𝑗, que acompaña la función wavelet 𝜓, indica la función que se debe aplicar para
realizar la transformada, siguiendo la secuencia que se encuentra ilustrada en la Figura
28. En la Figura 29, se presentan los primeros dos niveles de descomposición para la
señal de habla sub-vocal, adquirida al momento de pronunciar el fonema /ta/,
después de implementar las técnicas de pre-procesamiento, como la eliminación de
60
silencio y el realce de altas frecuencias. Las señales de color azul, representan los
coeficientes de aproximación y las verdes los coeficientes de detalle. Es importante
mencionar que los valores de cada grupo de coeficientes son adimensionales.
Figura 29. Descomposición de la señal capturada para el fonema /ta/.
Para la extracción de características fueron utilizados 2𝑗+1 − 1 grupos de
coeficientes, divididos en los 6 niveles de descomposición. Esto quiere decir, que los
127 grupos de coeficientes fueron reducidos a 6 características para los coeficientes
de aproximación y 6 características para los coeficientes de detalle. La Figura 30,
ilustra de manera gráfica la descomposición de la señal original, y la cantidad de
coeficientes que se obtiene cuando se alcanza el máximo nivel deseado. Cada nuevo
grupo de coeficientes de aproximación y detalle, divide a la mitad la señal de la cual
fueron extraídos, debido a la operación de diezmado que se realiza después de aplicar
la transformada wavelet con la función correspondiente.
Figura 30. Distribución de los coeficientes para 6 niveles de descomposición.
Para cualquier sistema o algoritmo relacionado al reconocimiento de patrones, en
este caso de haba sub-vocal, la selección y extracción de características es una etapa
crítica y fundamental para el resultado final del sistema, porque, sin importar lo
sofisticado, complejo o eficiente que sea el algoritmo clasificador, éste tendrá un bajo
rendimiento creo si las características no definen lo suficientemente bien el
comportamiento de los patrones a reconocer.
61
Los métodos para extracción de características, no solamente deben ser capaces de
representar y condensar la información de una señal, sino que además deben hacerlo
utilizando una menor cantidad de datos. En la Figura 31, se encuentra descrita la
metodología llevada a cabo para realizar la extracción de características de las señales
de habla sub-vocal mediante los paquetes wavelet de la función Daubechie #8. Se
inició con la descomposición de las señales en seis niveles, posteriormente los
coeficientes de aproximación y detalle se almacenaron por nivel para obtener
parámetros estadísticos, como la media aritmética, desviación estándar y entropía,
que fueron utilizados para el entrenamiento y comprobación del algoritmo
clasificador.
Figura 31. Diagrama de bloques del sistema de reconocimiento propuesto.
Para clasificar los patrones extraídos de los fonemas de habla sub-vocal, se
entrenaron tres redes neuronales, una para cada parámetro estadístico calculado. El
primer parámetro fue la Entropía de Shannon, como se ve en la ecuación (23), donde
𝑖 es el índice del coeficiente, y 𝑠 es el valor del coeficiente.
𝐸𝑛𝑡𝑟𝑜𝑝𝑖𝑎 = −∑𝑠𝑖2 ∙ log (𝑠𝑖
2)
𝑖
( 23 )
Este valor es un indicador de la incertidumbre existente en una fuente de
información, se dice que si la información es insuficiente su entropía será mayor, por
lo tanto, se puede afirmar que, para una mayor profundidad o mayor nivel de
descomposición, el valor de entropía obtenido será cada vez menor. El diagrama de
la Figura 32 presenta la distribución de entropías para los coeficientes de las señales
presentes en la Figura 27, incluyendo un nivel más de descomposición. Como se
esperaba, al aumentar el nivel de descomposición, el valor de la entropía disminuye,
62
siendo para el nivel 3 evidentemente inferior al valor que tienen los coeficientes de
aproximación y detalle en el nivel 1.
Figura 32. Entropías para los tres primeros niveles del fonema /ta/.
Al final de este proceso, se obtuvo un vector de características con una longitud de
12 valores, 6 entropías para los coeficientes de aproximación y 6 entropías para los
coeficientes de detalle, como se aprecia en la Figura 33.
Figura 33. Calculo de las Entropías de Shannon para cada fonema y nivel.
En esta figura, se aprecia que la forma de los datos concatenados es similar para los
coeficientes de aproximación, especialmente para los primeros dos niveles de
descomposición. No obstante, el valor de las entropías es diferente para cada uno de
los fonemas a identificar (/ta/, /te/, /ti/, /to/ y /tu/). La señal de color verde, y
cuyos valores de entropías son mayores a los demás fonemas vocálicos, pertenecen
a la señal de habla sub-vocal asociada con la pronunciación del fonema /to/, lo cual
indicia que la información contenida en su registro, no es relevante.
El siguiente parámetro estadístico es la media aritmética de los coeficientes, permite
obtener información de la distribución de las frecuencias de la señal en cada sub-
banda o nivel de descomposición como se aprecia en la Figura 34. En este caso los
63
patrones no tuvieron un comportamiento homogéneo, sino que su distribución
coincide con la agrupación lingüística entre de vocablos abiertos y cerrados. Los
fonemas /ta/, /te/ y /to/ se agruparon en la zona inferior de la gráfica, y los fonemas
/ti/ y /tu/ en la parte superior.
Figura 34. Cálculo de la media aritmética para los coeficientes de detalle y aproximación.
El último parámetro estadístico tenido en cuenta para condensar la información de
los coeficientes de aproximación y detalle, es la desviación estándar, que proporciona
información sobre cambio en la distribución de frecuencias en cada nivel. Con este
parámetro, lo que se pretende es encontrar un indiciador de la variación de los
coeficientes de acuerdo al nivel de descomposición, en otras palabras, conocer de
manera indirecta el comportamiento de los componentes frecuenciales a medida que
la señal va siendo analizada. La Figura 35, condensa en una gráfica el comportamiento
de la desviación estándar de los coeficientes para cada nivel.
Figura 35. Cálculo de la desviación estándar de los coeficientes de detalle y aproximación.
64
Para los resultados obtenidos de los métodos del promedio aritmético y la desviación
estándar, se puede concluir que la distribución de las frecuencias, cumplen con las
características fonológicas de los fonemas. La agrupación de los fonemas que
contienen vocales abiertas y semi-abiertas presentan una distribución frecuencial
cercana. En el mismo sentido, se observa la agrupación y distribución frecuencial, de
los fonemas cuya composición silábica está dada por las vocales cerradas (ti y tu).
4.2.3. Codificación predictiva lineal (LPC)
El análisis predictivo lineal, es una de las técnicas ampliamente utilizadas en el
procesamiento de señales de voz, convirtiéndose en un método popular para la
estimación de parámetros en la producción de voz, y por lo tanto resulta factible su
aplicación en señales de habla sub-vocal (L. R. Rabiner & Schafer, 2011). Además,
esta técnica permite representar almacenar y transmitir los datos de señales de habla
sub-vocal utilizando una menor tasa de bits, al reducir la dimensión de los mismos,
haciendo posible el desarrollo de sistemas de reconocimiento de habla automático
eficiente a nivel computacional. El cálculo de los coeficientes predictivos lineales se
realizó en tres etapas diferentes, como se explica a continuación:
4.2.3.1. Filtrado
La primera etapa para la formulación de los coeficientes predictivos lineales consiste
en filtrar la señal, para remover el silencio presente, y realzar algunas características a
través del pre-énfasis (Loweimi, Ahadi, Drugman, & Loveymi, 2013). La eliminación
de silencio se realiza retirando las muestras con un nivel de energía inferior al
promedio de la señal, utilizando un umbral para no retirar información con
características relevantes. Por otro lado, el pre-énfasis tiene la función de incrementar
la magnitud de las frecuencias más altas de la señal mediante un filtro pasa altos de
primer orden, igual al de la ecuación (7).
Este procedimiento realza las frecuencias altas, haciéndolas detectables y
normalizando la señal en términos de amplitud, con lo cual se mejora la extracción
de los coeficientes predictivos lineales, así como su posterior clasificación e
identificación.
4.2.3.2. Segmentación y ventaneo
La segmentación, consiste en dividir una señal en fragmentos iguales, utilizando un
intervalo de tiempo fijo y un corrimiento temporal constante. Para este caso, el
segmento fue de 40 ms, con un corrimiento de 10 ms hasta completar el total de la
señal. Cada segmento fue procesado con la función de ventana Hamming, para evitar
distorsiones al inicio y final de cada segmento. En la Figura 36, se presenta un ejemplo
gráfico de la operación de segmentación y ventaneo.
65
Figura 36. Ventano de una señal.
4.2.3.3. Análisis de autocorrelación
De las distintas formulaciones que existen para encontrar los coeficientes predictivos
lineales, fue escogido el método por autocorrelación, debido a que es una forma
conveniente de representar características temporales de la señal, asociadas con la
periodicidad, además, resulta computacionalmente sencilla de calcular (Bansal, Dev,
& Jain, 2010). En la expresión de la ecuación (24), se presenta de forma general la
definición para la autocorrelación de una señal.
∅[𝑘] = ∑𝜃𝑘 𝑌[𝑛 − 𝑘]
𝑝
𝑘=1
( 24 )
Para realizar el análisis predictivo lineal, se tomó como referencia el modelo discreto
del tracto vocal en la producción de audio, que describe su funcionamiento como un
filtro digital variante en el tiempo representado por la función de transferencia de la
ecuación (25) (Schafer & Rabiner, 1975).
𝑌[z]
𝑈[z]=
𝐴
1 − ∑ 𝜃𝑘 𝑧−𝑘𝑝
𝑘=1
( 25 )
En la ecuación (25), 𝑌[𝑧] hace referencia a la señal de voz, 𝑈[z], es la excitación de
los órganos que componen el aparato fonador y 𝜃𝑘 son los polos del filtro digital,
que reflejan el comportamiento del espectro compuesto por las distintas frecuencias
que se encuentran en tracto vocal. Es importante destacar, que el modelo de la
ecuación (25) es un modelo simplificado, que solamente comprende sonidos no
nasales, como los de habla sub-vocal. De la ecuación (25), se obtiene ecuación en
diferencias de la expresión (26) para representan el comportamiento del sonido
obtenido en función de la excitación 𝑈[𝑛].
𝑌[n] = ∑𝜃𝑘 𝑌[𝑛 − 𝑘]
𝑝
𝑘=1
+ A ∙ 𝑈[n] ( 26 )
66
Teniendo presente, que A solamente existe en los instantes que hay excitación de los
órganos productores de sonido, es posible obviar su aporte en los instantes que hay
entre cada excitación, reescribiendo la expresión como se muestra en (27).
𝑌[n] = ∑𝜃𝑘 𝑌[𝑛 − 𝑘]
𝑝
𝑘=1
( 27 )
La metodología LPC, busca encontrar un predictor lineal que se ajuste al
comportamiento de la señal descrita en (27), aproximando el valor de los coeficientes
𝜑𝑘 . En la ecuación (28) se muestra la forma general que tiene el predictor lineal,
donde �̂�[n] es la señal predicha.
�̂�[n] = ∑𝛼𝑘 �̂�[n − k]
𝑝
𝑘=1
( 28 )
Para conseguir un ajuste apropiado, se debe minimizar el error de predicción, dado
por la expresión de la ecuación (29). Sí no es tenido en cuenta el aporte realizado cada
vez que la excitación se produce en el tracto vocal, el error puede acercarse bastante
a cero, en caso contrario, el ajuste del predictor será únicamente aproximado.
𝐸 =∑[𝑌[n] − �̂�[n]]2
𝑁
𝑛=1
( 29 )
El error varía en función de los coeficientes de predicción 𝛼𝑘 , por lo tanto, se deben
encontrar los valores de 𝛼𝑘 , tales que el error de la ecuación (29) tienda a cero. Lo
anterior resulta ser una derivada del error en función de la variación de los
coeficientes 𝛼𝑘 , como se muestra en la ecuación (30).
𝜕𝐸
𝜕𝛼𝑘 = 0, para 𝑘 = 1,2,3, … . . p ( 30 )
Resolviendo la derivada, se obtiene una solución similar a la función de
autocorrelación mostrada en la ecuación (31), pero multiplicada por los coeficientes
predictivos lineales.
𝜕𝐸
𝜕𝛼𝑘 = 𝛼𝑘 ∑𝑌[n]𝑌[n + k]
𝑁−1
𝑛=0
= 𝛼𝑘 𝑅[k] ( 31 )
Utilizando los términos de autocorrelación, el problema de encontrar los coeficientes
se reduce a solucionar el sistema de ecuaciones lineales mostrado en (32) y (33).
[ 𝑅(0) 𝑅(1) … 𝑅(𝑝 − 2) 𝑅(𝑝 − 1)𝑅(1) 𝑅(0) ⋮ ⋮ 𝑅(𝑝 − 2)
⋮ 𝑅(1) ⋮ ⋮ ⋮𝑅(𝑝 − 2) ⋮ ⋮ 𝑅(0) 𝑅(1)
𝑅(𝑝 − 2) 𝑅(𝑝 − 2) … 𝑅(1) 𝑅(0) ]
[ 𝛼1𝛼2⋮⋮𝛼𝑝]
=
[ 𝑟(1)𝑟(2)⋮⋮
𝑟(𝑝)]
( 32 )
𝛼 = 𝑅−1𝑟 ( 33 )
67
Como se aprecia en la expresión número (32), la matriz que contienen los coeficientes
de auto correlación 𝑅 es simétrica, por lo tanto, encontrar su inversa y coeficientes
predictivos lineales, se vuelve una tarea iterativa y computacionalmente eficiente. En
la Figura 37, se muestra la estimación del espectro para la pronunciación del fonema
vocálico /te/.
Figura 37. Estimación del espectro para la pronunciación del fonema /te/.
La metodología LPC fue utilizada para obtener la reconstrucción o ajuste del espectro
de frecuencias para cada muestra, utilizando un predictor lineal de 7 coeficientes. La
Figura 38, muestra los espectros suavizados para la pronunciación de los fonemas
vocálicos que acompañan la consonante /t/.
Figura 38. Reconstrucción de los espectros para distintos fonemas vocálicos.
Para este método de clasificación, los resultados presentan que se realizó la
predicción que arrojo un patrón que distingue a cada uno de los fonemas. Las señales
originales utilizan 1024 puntos para su representación, utilizando la predicción, los
patrones se obtienen con 128 puntos. De igual manera, las características lingüísticas
se agrupan de acuerdo al vocablo de la estructura silábica, es decir abierto o cerrado.
Se distingue además que la información relevante del habla sub-vocal está alrededor
68
de los 2000Hz. El algoritmo aplicado para desarrollar este método de extracción de
características se muestra en la Figura 39.
Figura 39. Algoritmo para el cálculo de los coeficientes predictivos lineales
4.3. Coeficientes Cepstrales en Frecuencia Mel (MFCC)
La metodología utilizada para obtener los coeficientes cepstrales, involucra la
transformada de Fourier para encontrar el periodograma de la señal. Por lo tanto, en
la primera parte de esta sección se describen las etapas correspondientes a la
adquisición, pre-énfasis, segmentación y cálculo del espectro de magnitud de señales
de habla sub-vocal utilizando la transformada rápida de Fourier. Estas etapas son
embebidas en una tarjeta de desarrollo, a fin de construir un sistema portable para el
procesamiento de habla sub-vocal. El diagrama de la Figura 40, muestra la
representación gráfica del sistema de procesamiento hasta el cálculo de la FFT.
Figura 40. Partes del sistema de procesamiento.
69
Después de ubicar el micrófono NAM en la apófisis mastoides para la adquisición de
las señales, se continúa con el acondicionamiento de esta señal, en este caso, a través
de una etapa de amplificación por medio de un transistor, el cual entrega la señal
acondicionada para ser tratada digitalmente en la tarjeta de desarrollo.
El sistema embebido al cual ingresa la señal acondicionada, es la tarjeta
STM32F4Discovery de la marca STMicroelectronics®, la cual es trabajada a una
frecuencia de reloj de 8 MHz, junto con las librerías HAL (Hardware Abstraction Layer)
de ST®, y la CMSIS de ARM®.
Los principales módulos del microcontrolador involucrados para el desarrollo que se
plantea en este documento, son: El módulo ADC (Analog to Digital Converter), DAC
(Digital to Analog Converter), y el de comunicación UART (Universal Asynchronous Receiver
Transmitter).
La digitalización de la señal de habla sub-vocal, se realiza utilizando el módulo ADC
del microcontrolador, el cual es configurado a una resolución de 12 bits y a un tiempo
de muestreo aproximado de 125 µs. La señal de voz escogida para su procesamiento,
en este caso corresponde a la de la pronunciación del fonema /te/, cuya duración
neta aproximada es de 600 ms.
Los 600 ms de la señal, corresponden a 4800 muestras de acuerdo al tiempo de
muestreo alcanzado por el MCU, sin embargo, definir un arreglo de entrada limitado
exactamente a esta cantidad de muestras, representaría problemas a la hora de
capturar la señal sin que existan corrimientos en la adquisición. Es por esto que se
define un vector de entrada de 4000 muestras, que corresponde a 600 ms para la
adquisición de la señal NAM, con lo cual se mitiga esta condición. La Figura 41,
muestra la señal NAM de la pronunciación del fonema /te/.
Figura 41. Representación de la señal NAM del fonema /te/.
70
4.3.1. Pre-énfasis:
El pre-énfasis para esta metodología, se realiza con el filtro pasa alto de primer orden,
presentado en la ecuación 5. Las N muestras de información de la señal, fueron
almacenados en la memoria de programa, como elementos de un arreglo de N datos
de tipo float32_t. A este vector de datos fue aplicado el filtro de primer orden para
el pre-énfasis de la señal, tal y como se muestra en el diagrama de bloques de la Figura
42. El nuevo vector 𝑠𝑓[𝑛], representa la señal 𝑠[𝑛] al aplicarle el filtro pasa altos, sin
embargo, su notación en términos de 𝑖, se realiza para representar el proceso iterativo
en el algoritmo.
Figura 42. Diagrama de flujo de proceso de pre-énfasis embebido en la tarjeta.
Hay N
muestras?
Conversión análoga-digital
Almacenar en el vector s[n]
No
sf[i]=s[i]-0,97s[i-1]
i=i+1
i==N?
Siguiente etapa
71
4.3.2. Ventaneo de la señal:
Las señales de habla sub-vocal, hacen parte del grupo de formas de onda del tipo no
estacionarias, en pocas palabras, esto quiere decir que su frecuencia varía en el
tiempo, y por ende sus características estadísticas no son constantes. Esto representa
problemas a la hora de realizar análisis clásicos de la señal (i.e. Fourier, o análisis
temporales), sin embargo existe la ventaja de que estas variaciones de la frecuencia
en relación al tiempo, son bastante lentas, debido a las propiedades del sistema del
tracto vocal (L. R. Rabiner & Schafer, 2011).
De acuerdo a esto, si se realiza la segmentación de una señal, en ventanas de tiempo
lo suficientemente cortas como para considerarse estacionarias, y lo suficientemente
largas como para encontrar características importantes en la señal, es posible
continuar con el tratamiento clásico de señales, sin inconvenientes debidos a la no-
estacionariedad de estas formas de onda (Jurafsky & Martin, 2009).
Se deben tener en cuenta varios parámetros al momento de realizar el ventaneo de la
señal a través de los frames resultantes. El primero de ellos, es el ancho de la ventana
(𝑓𝑤), que para este caso es de 40 ms y corresponde a la duración total del frame, el
desplazamiento (𝑓𝑠) es de 10 ms, y marca el tiempo muerto que existe entre el inicio
de uno de los frames, con el siguiente, y por último, se define la forma de la ventana.
Al igual que en la implementación de la codificación predictiva lineal, se utiliza una
forma de ventana del tipo Hamming, dado que evita discontinuidades al momento
del cálculo de la transformada de Fourier de los segmentos de la señal, al limitar los
valores frontera de la ventana de la señal a cero. El ancho de la ventana se escogió de
40 ms, ya que se encuentra dentro del rango recomendado para esta clase de
aplicaciones [20 40] ms y además, porque de acuerdo al tiempo de muestreo, este
ancho de ventana corresponde a 320 datos de la señal filtrada 𝑠𝑓[𝑛]. Por último, el
desplazamiento entre las muestras se tomó de 10 ms, a razón de los criterios de
recomendación que se resumen en (Huang et al., 2001).
Para embeber el proceso de segmentación en la tarjeta, se definió un arreglo
bidimensional como matriz contenedora de los datos a guardar. Este arreglo fue
definido en relación al número de ventanas obtenidas en la señal 𝑠𝑓[𝑛].
4.3.3. Cálculo de la FFT
El proceso de segmentación de la señal, permitió dividir en ventanas de igual
duración el vector de datos que representa la señal NAM en tiempo discreto. Esto
permite realizar tareas de procesamiento específico, como la de la extracción de
características a partir de la representación en frecuencia de la señal. Así, se hace
necesario realizar el cálculo de la transformada de Fourier para hallar las
componentes en frecuencia que caracterizan a las formas de onda analizadas.
72
Orientándose en la implementación de un algoritmo para esta tarea, utilizando la
tarjeta de desarrollo, se utilizó la librería DSP de CMSIS, para calcular la FFT de los
segmentos de la señal digitalizada. Para calcular correctamente esta información, se
realizó la estimación de la magnitud de la transformada de Fourier para una secuencia
real, como la de los segmentos resultantes en el ventaneo. El diagrama de la Figura
43, muestra el procedimiento seguido para esta tarea.
Figura 43. Cálculo de FFT.
Como se puede observar en la Figura 43, después de realizar el cálculo de la FFT, se
visualizan los datos en un osciloscopio como método de verificación del
procesamiento realizado. Esto es logrado a partir del módulo DAC del sistema
embebido, el cual es configurado para esta tarea.
La metodología propuesta resumida en la Figura 40, fue aplicada con éxito a la señal
de habla sub-vocal del fonema /te/, que se muestra en la Figura 41. De esta forma,
y como resultado final, fue posible obtener el espectro de magnitud de cada uno de
los segmentos de la señal.
La Figura 41, muestra la representación en el dominio temporal de la señal analizada.
En esta captura tomada del osciloscopio, se puede ver claramente que el contenido
de información relevante en la señal, inicia aproximadamente a los 70 ms, por lo que
los segmentos de fuera de este umbral de tiempo fueron descartados. A partir de esto,
el primer segmento de señal inicia en el dato número 896 del vector de adquisición
(equivalente a 70 ms). Y el último segmento, se ubica a los 390 ms del inicio de la
señal. Con estos datos, es posible hallar el número de segmentos por analizar en los
360 𝑚𝑠 de duración neta de la señal de habla sub-vocal, a partir de la ecuación 38.
Final del vector?
Cálculo FFT
Conversión Digital - Análoga
No
Return
Osciloscopio
73
𝑁𝑓 =𝑁𝑠 −𝑤𝑓
𝑠𝑓+ 1 ( 37 )
Donde 𝑁𝑓 es el número de segmentos contenidos en la señal, 𝑁𝑠 corresponde al
número de muestras de la señal, el valor de 𝑤𝑓 equivale al ancho de la ventana en
número de muestras y 𝑠𝑓 al valor de corrimiento en número de muestras. Con
propósitos de explicación, solo se tendrán en cuenta las 4 primeras ventanas de la
señal, cuyos espectros se muestran a continuación.
La Figura 44, muestra el espectro de magnitud de la primera ventana, y que
corresponde a un ancho de segmento igual a 40 ms (320 muestras). Se puede notar
claramente en el espectro que, debido a los efectos de normalización, aplicados a
través de la etapa de pre-énfasis, los picos de amplitud presentes en las frecuencias
altas de la señal, son dominantes con respecto a los valores en las bajas frecuencias,
sin embargo, hay un valor dominante que se presenta aproximadamente a los 3200
Hz en la señal, valor importante que puede ser utilizado para caracterizar la señal en
etapas siguientes.
Figura 44. Espectro de magnitud para la primera ventana de la señal.
Para el caso de la segunda ventana en la Figura 45, en su espectro de magnitud se
puede ver una variación con respecto al espectro anterior, en donde se aprecia una
componente en baja frecuencia, cuyo valor es importante por la magnitud que posee,
esta componente de baja frecuencia, se ubica en aproximadamente 400 Hz, y como
se puede observar en las siguientes figuras, se mantiene. Esto se debe a que la
definición de este segmento de ventana, al utilizar la FFT, se encuentra ubicado en
un intervalo de la señal, donde hay mayor información sobre las características de
frecuencia.
74
Figura 45. Espectro de magnitud para la segunda ventana de la señal.
Para la tercera ventana, el espectro de la Figura 46 condensa mejores resultados con
respecto a las frecuencias altas de la señal, aunque manteniendo el valor de baja
frecuencia en 400 Hz, como se mencionó anteriormente. El pico prominente en alta
frecuencia, se ubica al igual que para las primeras dos ventanas en una frecuencia de
aproximadamente 3200 Hz, convirtiéndose este valor en un elemento dominante en
la representación en frecuencia de la señal.
Figura 46. Espectro de magnitud para la tercera ventana de la señal.
Mientras que el número de ventanas va aumentando, también lo hace el intervalo en
el que se encuentra definida, y por ende se encuentra mayor información que define
el comportamiento de la señal en frecuencia. Este comportamiento se puede notar
75
claramente en la Figura 47, donde la ventana definida en el mantiene una frecuencia
baja con una alta cantidad de energía en el valor de 400 Hz, y además componentes
de alta frecuencia en diferentes puntos; en 3200 Hz, 3400 Hz y 3800 Hz
aproximadamente.
Figura 47. Espectro de magnitud para la cuarta ventana de la señal.
Una vez realizada la transformada rápida de Fourier, el cálculo de los coeficientes
cepstrales en las frecuencias de Mel, es un proceso que se compone de 4 pasos como
se ilustra en la Figura 7. Debido a que la implementación de la transformada rápida
de Fourier, incluye los procesos de preénfasis y ventaneo, el siguiente paso para
estimar los MFCC, es el cálculo del periodograma. Este proceso es aplicado al
segmento de la señal adquirido en la etapa anterior, y de esta forma es posible obtener
una estimación de la energía presente en las frecuencias que definen la señal en
cuestión. Esta tarea, también fue embebida en el MCU haciendo uso de la librería
DSP de CMSIS, la cual es diseñada para los dispositivos ARM®, como el que se
utiliza en este caso. La ecuación (4) y (9), muestran la estimación del periodograma
de la señal segmentada 𝑥𝑖[𝑛].
4.3.4. Banco de filtros de Mel y logaritmo:
El siguiente paso de estimación de los coeficientes de Mel, es el filtrado del espectro
de potencia, a partir de una serie de funciones triangulares denominadas filtros de
Mel. Los filtros de Mel, son funciones definidas dentro de pequeños intervalos
definidos en vectores de igual longitud al de la mitad de los datos de salida del
periodograma de la señal, en este caso, este valor corresponde a 256. La Figura 48,
corresponde a 26 filtros de Mel superpuestos.
76
Figura 48. Banco de filtros de Mel.
A partir de la longitud de los datos, es posible realizar la definición de las funciones
que representan los filtros de Mel, para esto, se realiza primero una conversión al
espacio de frecuencias de Mel, de las frecuencias específicas que definen los picos
máximos de las funciones triangulares. Para esto, se utiliza la ecuación (10).
Los valores en términos de frecuencias de Mel, son calculados a partir del ancho de
banda que se desea trabajar, para este caso, el rango se define desde 0 hasta la
frecuencia máxima detectable por el sistema, es decir 4000 Hz. Estos valores de
frecuencia máximo y mínimo son convertidos a través de 41, y después son definidos
los frequency bins de cada uno de los filtros, espaciando linealmente los rangos de
frecuencia y definiendo en total 26 filtros, de los cuales son utilizados solo 13 para
abarcar el ancho de banda de la señal de habla sub-vocal. La función por partes que
se define en la ecuación (38), muestra el proceso de cálculo de los rangos de
frecuencia para los 26 vectores que integran el banco de filtros de Mel.
𝐻𝑚(𝑘) =
{
0𝑘 − 𝑓(𝑚 − 1)
𝑓(𝑚) − 𝑓(𝑚 − 1)
𝑓(𝑚 + 1) − 𝑘
𝑓(𝑚 + 1) − 𝑓(𝑚)
0
𝑘 < 𝑓(𝑚 − 1)
𝑓(𝑚 − 1) ≤ 𝑘 ≤ 𝑓(𝑚)
𝑓(𝑚) ≤ 𝑘 ≤ 𝑓(𝑚 + 1)
𝑘 > 𝑓(𝑚 + 1)
( 38 )
Donde,𝐻𝑚(𝑘), es la matriz contenedora de los filtros de Mel, 𝑚 hace referencia al
filtro que se calcula en determinado instante, y 𝑓 es el vector que contiene los
frequency bins en términos de las frecuencias de Mel, y 𝑘 es el índice del vector que
está siendo calculado. Este proceso da como resultado, un arreglo de dimensiones
13x256 datos de tipo float32_t, que para este caso y teniendo en cuenta su carácter
estático, fueron almacenados en la memoria ROM del MCU, para disminuir el uso
de memoria de programa.
Después cada filtro definido en la matriz 𝐻𝑚(𝑘), es multiplicado término a término
con el periodograma del segmento de señal que se está procesando en ese instante,
77
de esta forma se obtienen nuevos vectores que contienen la estimación de la energía,
en los rangos de frecuencia definidos por los filtros. Por último, los valores
contenidos en cada uno de los 13 vectores, son sumados entre sí para obtener los
coeficientes de energía que finalmente son guardados como valores de un arreglo de
13 posiciones. Como último paso, es aplicado la operación de logaritmo, para realizar
el mapeo en términos cepstrales de la energía que definen los coeficientes.
4.3.5. Transformada discreta de Coseno
El último paso para estimar los MFCC de la ventana de la señal, es la aplicación de la
DCT como método de de-correlación de las energías estimadas a través del
periodograma. Para este caso, se aplicó la DCT tipo II, de forma ortogonal, para
normalizar y realizar la de-correlación que se presenta gracias al traslapamiento
debido a la aplicación del banco de filtros en la señal. La ecuación (39), define la DCT
embebida en el MCU.
𝑀𝐹𝐶𝐶𝑘 = √2
𝑁∑ 𝐸𝑛 cos [
𝑘𝜋
𝑁(𝑛 +
1
2)] ,
𝑁−1
𝑛=0
𝑘 = 0, … , 𝑁 − 1.
( 39 )
Donde 𝑀𝐹𝐶𝐶𝑘 es el coeficiente calculado en la iteración, 𝐸, es la estimación de la
energía en términos de cepstrum calculada anteriormente, y 𝑁 es el número de datos
del arreglo contenedor de los coeficientes, que para este caso es de 13. Los
coeficientes de Mel, para cada ventana, por último, son almacenados en un arreglo
bidimensional para su posterior análisis. Cada uno de los procesos que se explicaron
anteriormente, fueron embebidos en la tarjeta de desarrollo STM32F4Discovery. Así
mismo, las características de implementación de los algoritmos, fueron las que se
tuvieron en cuenta en el análisis metodológico. Como forma de análisis de este
trabajo, se realizó una comparación de los resultados obtenidos al calcular los MFCC.
Dicha comparación, fue realizada entre los coeficientes de salida del sistema
embebido, y el mismo algoritmo de estimación de los coeficientes de Mel,
implementado en Matlab ®.
Como aspecto a tener en cuenta, primero se debe notar que este desarrollo depende
en gran medida del proceso de filtrado en términos de las frecuencias de Mel. El
banco de filtros de Mel, como se explicó anteriormente, se trata de una serie de
vectores cuyos valores en su mayoría son 0 pero que, en ciertos intervalos, dichas
magnitudes aumentan su valor hasta llegar a la unidad para después volver a 0,
formando así un filtro triangular, el cual, al multiplicarse término a término con la
78
ventana de trabajo, se estima el rango de energías presente en el intervalo específico
definido por el filtro.
El número de filtros que se definen para esta tarea, depende en gran medida del
criterio que se tenga presente para el desarrollo de la aplicación que se desee realizar.
En este caso, el número de filtros diseñado, fue de 26, de los cuales solo fueron
tenidos en cuenta 13, lo cual, en términos de frecuencia, permiten encontrar
información relevante en una señal dentro del intervalo [0 1000] Hz
aproximadamente. A partir de estas restricciones, se maneja entonces un rango de
frecuencias limitado con el cual trabajar. Las Tabla 5 y Tabla 6, condensan los
coeficientes cepstrales en frecuencias de Mel, para las señales que ingresan al
algoritmo embebido y Matlab® respectivamente.
Tabla 5. Coeficientes en el sistema embebido.
Índice del coeficiente
Muestra 1 2 3 4 5 6 7 8 9 10 11 12
#1 -0,47 -0,57 -0,39 0,11 -0,10 -0,21 -0,33 -0,15 -0,18 0,14 0,04 0,00
#2 -0,44 -0,61 -0,38 0,09 -0,04 -0,20 -0,36 -0,22 -0,15 0,20 0,03 -0,01
#3 -0,39 -0,62 -0,35 0,06 -0,08 -0,19 -0,34 -0,20 -0,13 0,18 0,04 0,01
#4 -0,34 -0,69 -0,26 0,00 -0,02 -0,22 -0,27 -0,24 -0,12 0,22 0,02 0,05
#5 -0,38 -0,63 -0,26 0,01 -0,06 -0,22 -0,27 -0,25 -0,15 0,24 0,02 0,03
Tabla 6. Coeficientes calculados en Matlab
Índice del coeficiente
Muestra 1 2 3 4 5 6 7 8 9 10 11 12
#1 -0,23 -0,83 -0,31 -0,04 -0,07 -0,33 -0,15 -0,42 0,07 0,23 -0,05 0,10
#2 -0,19 -0,78 -0,29 -0,01 -0,06 -0,36 -0,13 -0,38 0,08 0,20 -0,03 0,12
#3 -0,17 -0,78 -0,30 0,03 -0,07 -0,33 -0,18 -0,34 0,10 0,17 -0,04 0,14
#4 -0,15 -0,86 -0,24 0,01 -0,08 -0,23 -0,21 -0,32 0,09 0,14 -0,03 0,09
#5 -0,15 -0,86 -0,17 -0,02 -0,06 -0,23 -0,13 -0,34 0,06 0,14 -0,02 0,09
Cada una de las tablas, lista los coeficientes de Mel para las señales de habla subvocal.
La Figura 49 y Figura 50 muestran gráficamente los coeficientes. Estas magnitudes,
se han superpuesto para evidenciar la variación presente en cada una, y se identifican
a partir de los símbolos de cruz (+).
79
Como se puede notar, existe una correlación marcada entre los coeficientes para cada
ventana, en donde se demarca un patrón determinado para cada señal, en cada
algoritmo. Estos patrones, si se observa con detenimiento, a su vez presentan una
relación en cuanto a la forma en que varían los coeficientes entre sí. A pesar de que
las magnitudes obtenidas no son las mismas, al graficarlos, se observa claramente que
la variación entre los MFCC es proporcional para los dos algoritmos. A excepción
del coeficiente 7 representado en la Figura 50, el patrón seguido por las magnitudes
de los MFCC se mantiene en los dos casos.
Dado que se pretende hacer una comparación en términos de resultados obtenidos
entre el algoritmo embebido en la tarjeta de desarrollo, y el realizado en Matlab, es
necesario tener en cuenta que para los dos casos no se contó con la misma señal para
realizar el procesamiento. El algoritmo de Matlab, es una señal sinusoidal generada
en un estudio profesional de audio, y la señal de entrada al sistema embebido proviene
de un generador de señales. Esto evidencia que a pesar de que, para el sistema
embebido, haya presencia de ruido, el algoritmo es capaz de caracterizar
correctamente la señal de entrada.
La Figura 49, muestra los coeficientes de Mel estimados por el algoritmo embebido,
en esta figura, se observa que el valor más alto corresponde al coeficiente 9 de las
ventanas de tiempo, esto corresponde a los valores de frecuencia de la señal junto
con la definición del banco de filtros de Mel, en donde la energía representada a
través del cálculo de la transformada discreta de coseno, entrega el valor más alto en
donde el filtro triangular definido para la frecuencia de 1 kHz se encuentra definido.
Figura 49. Gráfica de los coeficientes embebidos.
Los coeficientes obtenidos con el algoritmo de Matlab, mostrados de la Figura 50,
muestran un patrón similar que presentan los coeficientes embebidos mostrados en
80
la figura anterior. Sin embargo, los valores de magnitud para las frecuencias por
debajo de 1kHz (Índice 4 y 6). Este comportamiento no se encuentra en algoritmo
embebido, y puede ocurrir debido al uso de funciones predefinidas en Matlab. A
pesar del comportamiento de los componentes de bajas frecuencias, el
comportamiento de los patrones es constante, y responde adecuadamente ante el
ingreso de nuevas señales. Lo anterior también aplica para el sistema embebido.
Figura 50. Coeficientes calculados en Matlab
Al terminar el desarrollo del algoritmo, se procesaron las muestras almacenadas
obteniendo para cada una, un conjunto de coeficientes cepstrales, como se ilustra en
la Figura 51. En esta figura, es evidente el cambio existente en el comportamiento de
los patrones, a pesar de que algunas señales tengan comportamientos similares en
algunos coeficientes, como son los casos de las señales /te/ y /ti/.
Figura 51. MFCCs para diferentes fonemas vocálicos.
81
Para este método, solo se puede observar que se generan patrones para cada uno de los fonemas. Debido a que los coeficientes están en la escala Mel, no se distinguen sus características lingüísticas. La Figura 52 resume el algoritmo desarrollado para la extracción de los coeficientes cepstrales en frecuencia Mel.
Figura 52. Algoritmo para la extracción de coeficientes cepstrales en frecuencia Mel.
Finalizados todos los procesos de extracción de características, se pueden concluir que en general, cada uno de los métodos, entrega un patrón para cada uno de los fonemas y que sus características lingüísticas se cumplen, de acuerdo a su estructura silábica. En el siguiente aparte, se describe los entrenamientos de los algoritmos de inteligencia artificial desarrollados para la obtención de los patrones de los cinco fonemas.
4.4. Algoritmo de Inteligencia Artificial
Al finalizar cada método de extracción de características se aplicó un algoritmo de
inteligencia artificial. La Figura 53, muestra el algoritmo desarrollado en cada uno de
los métodos para la obtención de los patrones de cada uno de los fonemas.
82
Figura 53. Algoritmo desarrollado para la red neuronal.
Para esta investigación, se diseñó y desarrolló una red neuronal perceptrón multicapa,
entrenada por retro propagación. Cálculo de error por entropía cruzada, debido al
tipo de etiquetas (1,0) en las clases y la actualización de los pesos se realizó a través
del algoritmo de direcciones conjugadas. La Figura 54 , ilustra la estructura general
de la red neuronal implementada.
Figura 54. Estructura general de la red neuronal.
El algoritmo de entrenamiento fue backpropagation, cuya implementación tiene ciertas
variantes cuando la tarea que debe realizar la red está asociada con el reconocimiento
de patrones. En la ecuación (34) se encuentra la función de actualización de pesos a
través de la regla delta, con una dirección de búsqueda αi, y un ajuste de gradiente
Ai.
xi+1 = xi + αiAi ( 34 )
A diferencia de la actualización de pesos para una red de ajuste o predicción, en el
reconocimiento de patrones se suele utilizar el descenso de gradiente conjugado
(Hager & Zhang, 2006), que básicamente desplaza el error en dos direcciones, la
primera desplaza el error hasta alcanzar un mínimo global, luego se calcula la segunda
dirección o dirección conjugada, que no varía en dirección, únicamente en magnitud,
83
facilitando la consecución de un mínimo global. En las ecuaciones (34) y (35), se
encuentra las expresiones de la primera dirección, y la dirección conjugada
respectivamente, donde J(w), es el gradiente del error en función de los pesos de la
red.
Ai = −J(w)i + Bi ∙ Ai−1 ( 35 )
Bi =J(w)i
𝑇 ∙ J(w)i
J(w)i−1𝑇 ∙ J(w)i−1
( 36 )
El valor de la ecuación (36), es la tasa entre la norma cuadrática del gradiente actual
y el gradiente pasado, realizando la actualización de los pesos relacionados con la
segunda dirección de descenso. Otro elemento que presenta una variación al
momento de realizar el entrenamiento de la red neuronal es el cálculo de error que,
en lugar de utilizar el error cuadrático medio, se emplea el error calculado por
entropía cruzada, como se presentan en la ecuación (40). (Saric & Xiao, 2011). Donde
𝑦𝑛, es la salida deseada y �̂�𝑛 es la salida obtenida.
𝐸𝑟𝑟𝑜𝑟 = −1
𝑁∑[𝑦𝑛log [�̂�𝑛] + (1 − 𝑦𝑛)log (1 − �̂�𝑛)]
𝑁
𝑛=1
( 40 )
El entrenamiento en su totalidad fue realizado antes de ingresar la estructura de la
red en el sistema embebido. El proceso de embeber la red fue dividido en dos etapas,
de las cuales la primera tuvo en consideración los valores de entrada, pesos y bias de
la capa oculta, así como la función de activación tangente sigmoide como se muestra
en la Figura 55.
Figura 55. Diagrama de bloques para la capa oculta.
Para programar el proceso mostrado en la Figura 55 en el sistema embebido se
utilizaron las matrices, vectores y operaciones presentadas en la ecuación (41).
[𝐻𝐿𝑜1⋮
𝐻𝐿𝑜𝑚
] = 𝐴𝐹𝐻𝐿 ([
𝑊ℎ𝑙1,1 ⋯ 𝑊ℎ𝑙1,𝑛⋮ ⋱ ⋮
𝑊ℎ𝑙𝑚,1 ⋯ 𝑊ℎ𝑙𝑚,𝑛
] [𝐼1⋮𝐼𝑛
] + [𝐵ℎ𝑙1⋮
𝐵ℎ𝑙𝑚
]) ( 41 )
Donde,
𝐼= Entrada de la red neuronal
𝑊ℎ𝑙= Pesos de la capa oculta
𝐵ℎ𝑙= Bias de la capa oculta
84
𝐻𝐿𝑜 = Salida de la capa oculta
𝐴𝐹𝐻𝐿=Función de activación para la capa oculta, específicamente la función tangente sigmoide (Namin, Leboeuf, Muscedere, Wu, & Ahmadi, 2009), cuya expresión se muestra en la ecuación (12). La segunda parte involucra los valores provenientes de la capa oculta para realizar la implementación de la capa de salida como se muestra en la Figura 56.
Figura 56. Diagrama de bloques para la capa de salida.
En este diagrama se tienen en cuenta los valores de los pesos y bias calculados para
el funcionamiento de la capa de salida, así como la programación de la función
exponencial normalizada (Tuske, Tahir, Schluter, & Ney, 2015) para finalizar la tarea
de clasificación. La expresión mostrada en la ecuación (43), resume las operaciones
necesarias para que la red neuronal funcione de manera adecuada en el sistema
embebido.
[𝑁𝑁𝑜1⋮
𝑁𝑁𝑜𝑚
] = 𝐴𝐹𝑂𝐿 ([
𝑊𝑜𝑙1,1 ⋯ 𝑊𝑜𝑙1,𝑛⋮ ⋱ ⋮
𝑊𝑜𝑙𝑚,1 ⋯ 𝑊𝑜𝑙𝑚,𝑛
] [𝐻𝐿𝑜1⋮
𝐻𝐿𝑜𝑛
] + [𝐵𝑜𝑙1⋮
𝐵𝑜𝑙𝑚
]) ( 43 )
Donde,
𝑊𝑜𝑙= Pesos de la capa de salida
𝐵𝑜𝑙= Bias de la capa de salida
𝑁𝑁𝑜= Salida y respuesta de la red neuronal.
𝐴𝐹𝑂𝐿=Función de activación de la capa oculta, conocida como exponencial
normalizada y se expresa en la ecuación (13).
A continuación, se describe el desarrollo del clasificador para cada método.
4.4.1. Clasificador para Descomposición por paquetes de Wavelet
Para clasificar la información de las entropías, se utilizó una red neuronal con
perceptrón multicapa, debido a que los patrones no son linealmente separables, con
37 neuronas en la capa oculta, cuyo proceso de entrenamiento puede verse en la
Figura 57.
85
Figura 57. Proceso de entrenamiento de la red las características de entropía.
En el caso de las entropías, el entrenamiento no se detuvo por épocas, valor de error
o entropía cruzada, el criterio de detención fue la validación del descenso del
gradiente. En este caso el entrenamiento se detiene cuando el gradiente presenta un
comportamiento estático por más de 7 épocas, como se aprecia en la Figura 57.
Después de 85 épocas el error permaneció estático en 0.053673. La red fue
almacenada para su comparación con las otras, y así determinar que valores
estadísticos describen mejor el comportamiento de los patrones a reconocer.
Debido a la naturaleza de los patrones obtenidos con el promedio aritmético, se
necesitaron más neuronas y épocas para separar las clases. En este caso, el algoritmo
clasificador necesitó 47 neuronas y 213 épocas para detener el entrenamiento del
algoritmo, como se muestra en la Figura 58. La diferencia con el anterior es evidente,
y aunque se trate de un cálculo estadístico de los mismos coeficientes, los resultados
cambian drásticamente. Aunque el valor de error es inferior al clasificador anterior,
no necesariamente es un indiciador confiable del desempeño de la red ante nuevos
patrones, debido a que puede tratarse de un sobre aprendizaje en la red, con lo cual
se ve limitada su capacidad de generalización, y por lo tanto, en su tarea de
clasificación para nuevos patrones no utilizados para el aprendizaje.
Figura 58. Proceso de entrenamiento de la red con los datos de la media aritmética.
Por último, para los valores relacionados con la desviación estándar, la estructura de
la red necesitó de 68 neuronas en la capa oculta y 188 épocas para llegar a un valor
86
de error lo suficientemente bajo para detener el algoritmo de aprendizaje. Aunque el
error alcanzado fue de 6.571𝑒−7 unidades, el verdadero desempeño se mide con los
patrones no tenidos en cuenta al momento de entrenar la red. El proceso de
entrenamiento de esta red para el último parámetro calculado a partir de la
descomposición wavelet se presenta en la Figura 59.
Figura 59. Proceso de entrenamiento de la red con la desviación estándar de los coeficientes.
4.4.2. Clasificador para Codificación Predictiva Lineal
Para la clasificación y reconocimiento de patrones obtenidos con el algoritmo LPC,
también se utilizó una red neuronal multicapa entrenada con el 60% de las muestras,
con el fin de realizar pruebas sobre el algoritmo con el 20% restante.
Para realizar la clasificación de las características extraídas con la metodología LPC,
se utilizó una red neuronal con 25 neuronas en la capa oculta, y fueron necesarias 70
épocas como lo ilustra la gráfica de la Figura 60.
Figura 60.Entrenamiento de la red neuronal para los espectros ajustados con LPC.
4.4.3. Clasificador para Coeficientes Ceptrales en Frecuecias Mel
Para desarrollar el algoritmo de reconocimiento en el sistema embebido, se llevaron
a cabo los procesos mostrados en el esquema de la Figura 61. En este diagrama se
87
incluyen las etapas de adquisición de señales y el procesamiento de las mismas, la
implementación de las técnicas de extracción de características, y por último el
entrenamiento, evaluación y embebido de la red.
Figura 61. Diagrama de la metodología propuesta.
Siguiendo la metodología expuesta en la Figura 61, los MFFCs calculados
anteriormente se utilizaron como material de entrenamiento y validación de una red
neuronal. De acuerdo a los datos presentados en la Figura 62, se escogió el valor de
32 neuronas para realizar la implementación en el sistema embebido, lo anterior
obedece a que el comportamiento de la red no mejoró significativamente para valores
de neuronas superiores al escogido. En la Figura 62, se muestra el comportamiento
del error de entrenamiento al aumentar la cantidad de neuronas en la capa oculta.
Figura 62. Error de la red en función de la cantidad de neuronas en la capa oculta.
88
De acuerdo a los datos presentados en la Figura 62, se escogió el valor de 32 neuronas
para realizar la implementación en el sistema embebido, lo anterior obedece a que el
comportamiento de la red no mejoró significativamente para valores de neuronas
superiores al escogido. En la Figura 63, se puede observar el proceso de
entrenamiento de la red neuronal, el cual necesitó 237 épocas para alcanzar un valor
lo suficientemente bajo para detener el aprendizaje. El código desarrollado para la
validación en el sistema embebido se presenta en el anexo 2.
Figura 63. Comportamiento de la red neuronal durante el entrenamiento.
La Tabla 7 resume el proceso de clasificación aplicado a la identificación de
patrones de habla sub-vocal.
Tabla 7. Resumen de la red neuronal aplicada en cada método de extracción de características.
Método de Extracción
Datos de la red neuronal
No. de datos del
vector de entrada
No. de
neuronas
capa oculta
Iteraciones o
épocas
Wavelet
Entropía 12 37 85
Promedio 12 47 213
Desviación Estándar 12 48 188
Codificación
Predictiva Lineal
128 35 70
Coeficientes Cepstrales de las
Frecuencias de Mel 104 32 237
89
5. ANÁLISIS DE RESULTADOS Y APORTES
El apartado de resultados, se encuentra enfocado a los valores obtenidos del
algoritmo de clasificación y reconocimiento de patrones. Primero se realizó la
evaluación de los algoritmos entrenados con la transformada Wavelet, y los tres
parámetros estadísticos hallados, Entropía, Promedio y Desviación Estándar. En la
Tabla 8 se condensan los resultados de evaluar los datos adquiridos para las etapas
de extracción de características.
Tabla 8. Porcentaje de patrones identificados erróneamente.
Observación Fonema vocálico
/ta/ /te/ /ti/ /to/ /tu/
# Muestras mal clasificadas 68 53 63 93 85
Porcentaje 11,333% 8,833% 10,500% 15,500% 14,167%
Los valores porcentuales para las todas las tablas presentes se encuentran sobre una
base de 600 muestras. La tasa promedio de reconocimiento fallido para la red
entrenada con los datos relacionados al cálculo de las entropías para los coeficientes
de aproximación y detalle, fue de 12.067%. Esto indica que, para las 600 muestras de
prueba, el algoritmo no fue capaz de reconocer adecuadamente alrededor de 72
muestras. De igual manera, el algoritmo fue validado con nuevas muestras en
condiciones diferentes a las presentadas en el momento de la adquisición, los
resultados de estas nuevas 5 muestras para cada fonema se encuentran en la Tabla 9
Tabla 9. Respuesta de la red neuronal entrenada con los datos de entropía.
# Muestra Fonema
Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
1
0,7517 1,81E-09 2,58E-17 1,36E-10 0,0002 /ta/
6,40E-06 0,9967 1,49E-07 0,3087 0,0266 /te/
2,05E-10 2,77E-11 0,9962 3,49E-06 0,1311 /ti/
0,2483 9,02E-06 1,96E-08 0,6798 0,0260 /to/
2,06E-06 3,56E-11 0,0038 0,0115 0,8161 /tu/
2
0,9966 5,90E-06 3,12E-18 1,72E-06 0,0003 /ta/
2,24E-10 0,9985 0,0040 2,03E-06 0,0349 /te/
1,37E-19 8,29E-08 0,9960 0,0028 0,0002 /ti/
0,0034 2,98E-06 1,68E-15 0,8023 0,4324 /to/
5,32E-10 3,17E-07 5,56E-10 0,1949 0,5322 /tu/
3
0,9998 6,01E-05 1,29E-09 0,0433 0,0015 /ta/
2,82E-09 0,7951 3,52E-05 0,0136 1,17E-05 /te/
2,59E-19 4,42E-07 0,9905 1,90E-06 3,66E-07 /ti/
0,0002 0,1466 0,0005 0,7775 0,9805 /to/
2,97E-11 0,0583 0,0090 0,1656 0,0180 /tu/
4
0,4473 0,0445 1,81E-10 0,0006 6,83E-07 /ta/
2,51E-07 0,8546 0,0008 0,7234 5,15E-08 /te/
8,20E-12 0,0312 0,9992 0,0018 1,44E-05 /ti/
90
# Muestra Fonema
Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
0,5490 0,0403 1,58E-08 0,0515 0,4081 /to/
0,0037 0,0293 1,88E-06 0,2227 0,5918 /tu/
5
0,8989 1,56E-07 2,63E-17 0,4708 0,0002 /ta/
0,0173 0,9900 0,1624 0,0003 0,0021 /te/
2,04E-07 0,0012 0,8376 1,14E-06 3,17E-05 /ti/
0,0817 0,0003 2,20E-10 0,4218 0,2145 /to/
0,0021 0,0085 1,01E-06 0,1072 0,7832 /tu/
Los resultados mostrados, revelan la confusión existente en el reconocimiento de los
fonemas /ta/ y /to/, que obedece en gran medida a la cercanía de las frecuencias, y
que ambos fonemas están acompañados de una vocal cuya pronunciación es abierta.
El siguiente parámetro estadístico, es el promedio aritmético de los coeficientes por
cada nivel. Los resultados de la evaluación de las 600 muestras se muestran en la
Tabla 10, donde el porcentaje de muestras calcificadas incorrectamente aumento
hasta un 20.433 %, evidenciando que este parámetro estadístico no es un valor
adecuado para realizar el reconocimiento. La mayoría de muestras mal clasificadas
fueron para el fonema /to/.
Tabla 10. Porcentaje de patrones identificados erróneamente.
Observación Fonema vocálico /ta/ /te/ /ti/ /to/ /tu/
# Muestras Mal clasificadas 75 155 83 195 105
Porcentaje 12,500% 25,833% 13,833% 32,500% 17,500%
La mala clasificación de las muestras provenientes de la pronunciación del fonema
/to/, tuvo un impacto negativo en el reconocimiento de las nuevas muestras, como
se ve en la Tabla 11.
Tabla 11. Respuesta de la red neuronal entrenada con los datos de la media aritmética.
# Muestra
Fonema vocálico Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
1
0,9544 0,9997 5,65E-50 1,84E-14 4,87E-39 /ta/
3,3273E-23 3,E-15 8,09E-13 6,98E-18 5,45E-22 /te/
1,5927E-37 1,41E-26 0,9991 0,0335 0,0103 /ti/
4,5567E-06 2,15E-32 5,45E-36 9,11E-12 4,42E-29 /to/
2,2188E-16 3,56E-30 0,0009 0,9665 0,9833 /tu/
2
0,9928 7,81E-17 1,26E-22 4,02E-07 4,70E-25 /ta/
1,54E-17 0,9920 1,66E-08 5,56E-13 5,57E-23 /te/
1,41E-27 6,74E-07 0,9978 3,54E-22 2,98E-12 /ti/
5,77E-07 5,63E-08 5,20E-13 0,9598 5,66E-17 /to/
2,81E-16 0,0080 0,0002 2,67E-17 0,99702 /tu/
3
2,81E-14 2,30E-19 3,35E-49 8,69E-08 0,0122 /ta/
0,2345 0,9875 9,28E-12 5,03E-13 4,96E-15 /te/
9,51E-28 0,0007 0,9273 7,06E-09 3,34E-15 /ti/
91
# Muestra
Fonema vocálico Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
0,7648 1,51E-08 4,42E-29 0,9906 0,9999 /to/
3,55E-11 0,0119 0,0727 3,71E-10 8,61E-16 /tu/
4
0,9890 0,9997 9,46E-27 1,04E-18 4,44E-13 /ta/
1,46E-27 3,35E-15 0,9949 0,7794 4,23E-24 /te/
1,25E-36 1,41E-26 0,0003 1,00E-12 6,35E-21 /ti/
1,10E-06 2,15E-32 1,49E-16 0,0016 0,29073396 /to/
9,43E-16 3,56E-30 1,17E-08 0,2190 0,70926604 /tu/
5
0,9025 3,70E-07 4,88E-29 1,72E-24 1,27E-02 /ta/
1,93E-24 0,99469 1,05E-07 5,19E-15 1,08E-18 /te/
1,17E-20 4,12E-06 0,99584 1,01E-04 0,9080 /ti/
9,75E-07 1,28E-10 3,04E-17 5,42E-07 3,87E-07 /to/
4,15E-12 1,93E-11 6,43E-07 0,9995 0,0793 /tu/
Aunque la columna que contiene los resultados para el fonema /to/, presento 3
resultados incorrectos de 5, el desempeño en general de la red neuronal entrenada
con éstos patrones no fue satisfactorio, comparado con los datos de la Tabla 9. De
manera similar a los resultados anteriores, los patrones obtenidos con la desviación
estándar de los coeficientes mostraron un desempeño deficiente, en este caso las
muestras mal clasificadas tuvieron un promedio de 21.833%, y de nuevo, los patrones
del fonema /to/ fueron los que más error presentaron, aumentando de 195 a 215
muestras mal clasificadas, como se aprecia en la Tabla 12.
Tabla 12. Porcentaje de patrones identificados erróneamente.
Observación Fonema vocálico /ta/ /te/ /ti/ /to/ /tu/
# Muestras Mal clasificadas 84 162 81 215 113
Porcentaje 14,000% 27,000% 13,500% 35,833% 18,833%
Para este caso, el desempeño fue peor para las nuevas muestras. Todos los fonemas
fallaron en al menos una muestra, con un margen de error más elevado, comparando
la Tabla 13 con la Tabla 11, no solo hubo mayor cantidad de muestras identificadas
erróneamente, los errores para cada intento de clasificación fueron mayores, como
lo es el caso de la tercera muestra del fonema /ta/, y en su mayoría para el fonema
/to/.
Tabla 13. Respuesta de la red neuronal entrenada con los datos de desviación estándar.
# Muestra
Fonema vocálico Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
1
0,9954 0,9887 6,E-53 2,25E-33 0,0127 /ta/
3,33E-23 0,0113 7,87E-16 4,75E-16 1,08E-18 /te/
1,59E-37 2,41E-16 0,9608 2,58E-18 0,9080 /ti/
92
# Muestra
Fonema vocálico Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
5,E-06 9,83E-10 1,09E-41 1,08E-05 3,87E-07 /to/
2,22E-16 6,69E-13 0,0392 0,9594 0,07934517 /tu/
2
0,9903 2,28E-21 5,65E-50 1,84E-14 4,12E-18 /ta/
1,93E-24 0,9962 8,E-13 6,98E-18 1,93E-16 /te/
1,17E-20 5,63E-07 0,9991 0,0335 1,12E-06 /ti/
8,72,E-07 8,23E-10 5,45E-36 9,11E-12 6,45E-11 /to/
4,15E-12 3,82E-10 0,0009 0,9268 1,0000 /tu/
3
3,E-14 1,88E-12 8,74E-10 1,72E-24 4,87E-39 /ta/
1,50E-19 1,58E-05 2,71E-25 5,19E-15 5,45E-22 /te/
9,51E-28 0,9682 0,9921 0,0101 0,0103 /ti/
1,0000 3,94E-18 1,31E-34 5,00E-07 4,42E-29 /to/
3,55E-11 6,11E-08 3,52E-12 0,9182 0,9897 /tu/
4
0,9666 2,66E-31 1,89E-33 8,69E-08 0,0022 /ta/
1,55E-25 0,9977 0,9711 5,03E-13 4,96E-15 /te/
1,54E-36 1,71E-14 3,33E-07 7,06E-09 3,34E-15 /ti/
3,E-11 9,40E-11 4,12E-11 0,9957 0,9999 /to/
7,E-17 5,25E-12 0,0289 3,71E-10 8,61E-16 /tu/
5
0,9928 2,00E-46 3,35E-49 1,04E-18 3,21E-21 /ta/
3,E-38 1,69E-07 9,28E-12 0,7794 6,27E-41 /te/
8,53E-33 0,9307 0,9273 1,00E-12 4,70E-14 /ti/
9,E-21 3,64E-26 4,42E-29 0,0016 0,99951 /to/
7,E-13 1,30E-10 0,07269887 0,2190 2,27E-15 /tu/
Con la tabla anterior, se termina la evaluación de parámetros estadísticos para la
descomposición por paquetes Wavelet. Las siguientes tablas contienen los datos de
entrenar redes neuronales con los otros métodos de extracción de características
mencionados. En la Tabla 14 están los resultados de evaluar las 600 muestras,
utilizando la red que fue entrenada con los patrones obtenidos al implementa la
codificación predictiva lineal. Para este caso, el porcentaje de muestras mal
clasificadas fue de 10.833%, el cual resulta ser inferior a los resultados obtenidos con
los métodos previos.
Tabla 14. Porcentaje de patrones identificados erróneamente.
Observación Fonema vocálico /ta/ /te/ /ti/ /to/ /tu/
# Muestras Mal clasificadas 49 48 52 93 83
Porcentaje 8,167% 8,000% 8,667% 15,500% 13,833%
Aunque el desempeño general fue mejor, no significa que todas las nuevas muestras
serán reconocidas adecuadamente, como se demuestra con los datos consignados en
la Tabla 15. El hecho de obtener una mejor clasificación general, con respecto a los
métodos anteriores, no es garantía del correcto reconocimiento para las nuevas
93
muestras. Por ejemplo, dos de las nuevas muestras para los fonemas /ti/, /to/ y
/tu/, arrojaron identificaciones erróneas al evaluar el algoritmo de clasificación.
Tabla 15. Respuesta de la red neuronal entrenada con los datos LPC
# Muestra
Fonema vocálico Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
1
0,98674636 4,634E-05 1,0398E-14 1,36E-07 1,39E-12 /ta/
1,43E-10 0,9890 2,2915E-06 1,22E-11 3,27E-07 /te/
2,38E-16 6,337E-09 0,9977 0,6421 1,10E-06 /ti/
1,44E-09 6,761E-11 2,3699E-09 0,3575 2,02E-07 /to/
1,31E-07 1,506E-05 1,0317E-09 0,0004 0,9688 /tu/
2
0,99803728 0,0073 8,1087E-11 1,37E-06 2,35E-08 /ta/
3,77E-10 8,886E-07 0,0181 7,44E-13 2,65E-11 /te/
2,39E-07 0,9992 0,9819 4,88E-10 2,22E-06 /ti/
0,0020 0,0010 1,0909E-07 1,0000 3,37E-08 /to/
1,33E-07 1,527E-09 6,2471E-10 1,29E-06 0,9968 /tu/
3
0,08754429 3,047E-08 4,4036E-09 0,1013 0,9609 /ta/
0,25267195 0,9995 0,9948 3,76E-09 2,30E-08 /te/
1,14E-06 3,252E-06 0,0010 2,91E-07 1,36E-06 /ti/
0,65978262 1,150E-07 0,0043 0,7645 4,51E-06 /to/
3,89E-10 0,0005 6,0547E-07 0,1342 2,03E-05 /tu/
4
0,995948 0,0006 1,1161E-12 0,0013 6,12E-07 /ta/
7,88E-10 0,9994 0,0022 1,63E-07 1,09E-13 /te/
2,76E-15 8,895E-15 0,0511 0,0043 7,92E-05 /ti/
1,04E-08 2,092E-11 0,9487 0,9944 1,01E-07 /to/
1,51E-10 1,010E-12 0,0066 1,86E-08 0,9386 /tu/
5
0,995651 3,538E-10 2,3021E-10 1,11E-10 1,21E-11 /ta/
1,45E-11 0,9987 1,3055E-09 5,46E-10 2,31E-13 /te/
1,40E-15 2,031E-11 0,9933 0,9994 2,19E-07 /ti/
3,64E-09 1,773E-09 0,0007 0,0006 0,7891 /to/
1,39E-09 6,891E-07 0,0059 4,84E-07 0,2109 /tu/
La última metodología para extracción de características evaluada fueron los
coeficientes cepstrales de las frecuencias de Mel. Éste último método presento los
mejores resultados, tanto en la clasificación de las 600 muestras para la validación del
entrenamiento del algoritmo de clasificación, como para nuevas muestras capturadas
en condiciones diferentes. En la Tabla 16 se resumen los datos para la clasificación
de los datos de validación, alcanzado un error promedio igual a 9.96%.
Tabla 16. Porcentaje de patrones identificados erróneamente.
Observación Fonema vocálico /ta/ /te/ /ti/ /to/ /tu/
# Muestras mal clasificadas 41 46 55 82 75
Porcentaje 6,833% 7,667% 9,167% 13,667% 12,500%
94
En este caso, no solo disminuyó el error general, sino que el algoritmo mostro
mejores resultados ante nuevas muestras como se ve en la Tabla 17. A diferencia de
los métodos anteriores, las muestras de lo fonemas /ta/ y /ti/ fueron identificadas
correctamente en su totalidad, los demás fonemas solo presentaron errores en una
de las muestras, y con valores de error en la identificación bajos si se comparan con
los datos mostrados previamente
Tabla 17. Respuesta de la red neuronal entrenada con los datos MFCCs
# Muestra
Fonema vocálico Clase o Grupo /ta/ /te/ /ti/ /to/ /tu/
1
0,7721 4,28E-10 8,84E-15 5,37E-07 1,46E-11 /ta/
0,2356 0,93118 4,83E-07 7,46E-10 4,64E-12 /te/
7,8967E-15 3,98E-07 0,9909 9,06E-10 2,53E-07 /ti/
1,2258E-06 1,79E-07 2,54E-07 0,9428 3,39E-07 /to/
1,7455E-09 1,02E-12 1,88E-07 3,33E-08 0,9079 /tu/
2
0,8947 1,56E-10 2,46E-15 2,27E-06 1,28E-06 /ta/
0,1254 0,58160 1,03E-06 4,33E-06 6,05E-12 /te/
4,20E-14 4,29E-01 0,9758 4,44E-11 2,71E-07 /ti/
1,76E-06 9,55E-08 1,51E-08 0,9997 7,83E-11 /to/
9,84E-09 2,23E-09 9,55E-07 3,85E-10 0,9534 /tu/
3
0,9907 1,39E-10 0,3354 2,08E-06 1,63E-11 /ta/
5,12E-08 0,99762 8,97E-07 1,33E-07 2,07E-12 /te/
2,00E-14 2,82E-07 0,7755 5,48E-13 4,54E-07 /ti/
1,32E-06 3,78E-08 7,82E-09 0,9976 1,40E-06 /to/
2,20E-09 2,23E-09 1,80E-07 1,68E-07 0,9936 /tu/
4
0,9955 1,19E-12 6,27E-14 2,27E-06 5,68E-12 /ta/
1,86E-08 0,99902 1,85E-06 4,33E-06 1,22E-12 /te/
7,89E-15 2,61E-06 0,9974 0,5432 3,20E-07 /ti/
1,19E-06 8,92E-07 2,36E-06 0,4671 1,63E-07 /to/
1,69E-09 3,05E-11 1,45E-08 3,85E-10 0,9971 /tu/
5
0,5291 1,78E-06 2,34E-10 9,04E-07 6,61E-12 /ta/
0,4801 0,99954 1,02E-06 1,66E-07 1,60E-12 /te/
8,77E-15 1,70E-06 0,9905 1,50E-12 0,7236 /ti/
1,15E-06 1,96E-09 4,05E-11 0,9106 1,42E-07 /to/
2,59E-09 1,50E-13 7,94E-09 2,20E-07 0,2865 /tu/
El comportamiento del algoritmo de reconocimiento, con lo patrones obtenidos al
utilizar MFCC fue el factor determinante al momento de seleccionar la metodología
a implementar en el sistema embebido para su operación en tiempo real.
Los principales resultados reflejados en producción científica publicada, se
condensan en la Tabla 18
95
Tabla 18. Producción científica derivada del proyecto.
Nombre Revista/Evento/
Institución Clasificación
Scimago Clasificación
Publindex
Imagined speech of Spanish vowels through spectral analysis and support vector machine. El
anexo 3, muestra la primera hoja del artículo JIHMSP Q1 A1
Embedded MFCC feature extraction system for speech processing. El anexo 4, muestra la primera
hoja del artículo IRECOS Q2 A2
Analysis of the MFCC coefficients for voiced and silent speech. . El anexo 5, muestra la primera
hoja del artículo IRECAP Q2 A2
Embedded Wavelet Analysis of Non-Audible Signal. . El anexo 6, muestra la primera hoja del
artículo TECNURA ---------- A2
En la Figura 64 se presenta la proporción de artículos publicados en revistas
indexadas en la base científica SCIMAGO.
Figura 64. Trabajos con clasificación SCIMAGO.
En la Figura 65 se relacionan los trabajos indexados en la base de datos nacional
PUBLINDEX.
Figura 65. Trabajos indexados en Publindex.
1; 25%
2; 50%
1; 25%
SCIMAGO
Q1 Q2 NA
2; 50%2; 50%
PUBLINDEX
A1 A2
96
6. CONCLUSIONES
Esta investigación presenta una alternativa desde la ingeniería y la lingüística
a una problemática de la sociedad, como es la comunicación en ambientes
con contaminación auditiva. Además, los resultados obtenidos, son un
punto de partida y se convierten en una opción de solución de la
problemática de comunicación, en personas con dificultades en su aparato
fonador.
El habla subvocal es un proceso lingüístico, debido que sigue el as fonético,
la estructura silábica y en general el comportamiento prosódico y fonológico
de los fonemas identificados, de acuerdo con los resultados obtenidos por
los métodos utilizados en la extracción de características.
Los coeficientes cepstrales de las frecuencias de Mel, demuestran ser los
principales entes de información en el desarrollo de aplicaciones como las
planteadas en esta investigación. Los datos representativos extraídos por este
método, son relevantes para condensar los patrones variables de la señal del
habla subvocal. Esto se evidencio, al utilizar los 13 primeros coeficientes,
que resultaron suficientes para identificar los fonemas /ta/, /te/, /ti/, /to/,
y /tu/, a través de algoritmo de identificación de patrones.
Los cambios de la señal con respecto al tiempo, demuestran que los
coeficientes dinámicos, son características importantes a tener en cuenta,
dado que contienen información sobre la variación de la señal, cuando esta
es producida por el sistema característico variante en el tiempo, del tracto
vocal. La diferencia más importante en los coeficientes de Mel, se
fundamenta, en que para el habla silente, no hay vibración de las cuerdas
vocales, lo cual significa una ausencia importante de la energía en la acción
de habla, en comparación con las señales de voz.
De acuerdo a la arquitectura algorítmica utilizada, el grado de
reconocimiento obtenido en el desarrollo de esta investigación, alcanzo una
tasa de identificación de 85 %, lo que representa un avance respecto al
alcanzado por (P. Heracleous, 2003) en Japón y (L. E. Mendoza, Peña, &
Ramón Valencia, 2015) en Colombia.
Los sistemas para reconocimiento de patrones como las redes neuronales,
son algoritmos de inteligencia artificial muy eficaces en el cumplimiento de
su labor, pero computacionalmente costosos al momento de entrenarlos, sin
embargo, una vez se han calculado los parámetros adecuados para su
correcto funcionamiento, estos pueden ser almacenados para su posterior
uso sin la necesidad de ser entrenados de nuevo. Por lo anterior, el uso de
sistemas embebidos para su implementación permite elaborar aplicaciones
97
versátiles, como el prototipo de sistema de reconocimiento de habla sub-
vocal planteado a lo largo de esta investigación.
98
7. TRABAJOS FUTUROS
Realizar algoritmos para la identificación de patrones de palabras, lo cual
constituye una solución definitiva, a las problemáticas de comunicación de
personas con discapacidad en el aparato fonador, comunicación en
ambientes ruidosos, misiones especiales policiacas, comunicación
subacuática entre otros.
Utilización de nuevas técnicas de reconocimiento de patrones y algoritmos
de optimización, para mejorar el nivel de reconocimiento del algoritmo
inteligente.
Diseñar un sistema cómodo y eficiente para la captura, procesamiento y
reconocimiento de los patrones de la señal del habla subvocal, que sea lo
menos incómodo para el usuario. Esto permitirá que, al utilizarlo, lo pueda
hacer con discreción, sin el temor a juzgamientos sociales.
99
8. REFERENCIAS
Ahmadi, F., McLoughlin, I. V., & Sharifzadeh, H. R. (2010). Linear predictive analysis for ultrasonic speech. Electronics Letters, 46(6), 387–388. http://doi.org/10.1049/el.2010.3521
Anand, M., Hephzibah, S., & Anandan, S. (2014). IMPLEMENTATION OF ANALOG TO DIGITAL CONVERSION BY HOP FIELD NEURAL NETWORKS. Retrieved from http://ijrcar.com/Volume_2_Issue_9/v2i922.pdf
Angeli, S., Quesney, A., & Gross, L. (2012). Image Simplification Using Kohonen Maps: Application to Satellite Data for Cloud Detection and Land Cover Mapping. Retrieved from http://cdn.intechopen.com/pdfs-wm/38176.pdf
Ávila, R. (2007). La lengua y los hablantes (4a ed.). México.
Babani, D., Toda, T., Saruwatari, H., & Shikano, K. (2011). Acoustic model training for non-audible murmur recognition using transformed normal speech data. In 2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 5224–5227). IEEE. http://doi.org/10.1109/ICASSP.2011.5947535
Bansal, P., Dev, A., & Jain, S. (2010). Role of different order ranges of autocorrelation sequence on the performance of speech recognition. WSEAS Transactions on Systems, 9(1), 1–9. Retrieved from http://www.wseas.us/e-library/transactions/systems/2010/32-109.pdf
Chan, Y. T. (1995). Wavelet basics. Transform, 99(2), 1–26. http://doi.org/10.1121/1.414569
Darbyshire, J. L., & Young, J. D. (2013). An investigation of sound levels on intensive care units with reference to the WHO guidelines. Critical Care (London, England), 17(5), R187. http://doi.org/10.1186/cc12870
Denby, B., Schultz, T., Honda, K., Hueber, T., Gilbert, J. M., & Brumberg, J. S. (2010). Silent speech interfaces. Speech Communication, 52(4), 270–287. http://doi.org/10.1016/j.specom.2009.08.002
Deng, J. J., & Leung, C. H. C. (2015). Dynamic Time Warping for Music Retrieval Using Time Series Modeling of Musical Emotions. IEEE Transactions on Affective Computing, 6(2), 137–151. http://doi.org/10.1109/TAFFC.2015.2404352
Duda, R., Hart, P., & Stork, D. (2012). Pattern classification. John Wiley & Sons.
Ettaouil, M., Lazaar, M., & En-Naimani, Z. (2013). A hybrid ANN/HMM models for arabic speech recognition using optimal codebook. In 2013 8th International
100
Conference on Intelligent Systems: Theories and Applications, SITA 2013 (pp. 1–5). IEEE. http://doi.org/10.1109/SITA.2013.6560806
Gärdenfors, P., & Warglien, M. (2013). The development of semantic space for pointing and verbal communication. … Evidence from Human Communication, 29–42. http://doi.org/10.1093/acprof:oso/9780199641635.003.0003
Gil Fernández, J. (2007). Fonética para profesores de español: de la teoría a la práctica. Arco Libros.
Gleason, J. B., & Ratner, N. B. (2010). El desarrollo del lenguaje. Prentice Hall Pearson
Educacio ́n.
Hager, W. W., & Zhang, H. (2006). A New Conjugate Gradient Method with Guaranteed Descent and an Efficient Line Search. http://dx.doi.org/10.1137/030601880, 16(1), 170–192. http://doi.org/http://dx.doi.org/10.1137/030601880
Hasegawa, T., & Ohtani, K. (1992). Oral image to voice converter-image input microphone. [Proceedings] Singapore ICCS/ISITA `92, 617–620. http://doi.org/10.1109/ICCS.1992.255190
Hassan, Z., Mohamad, A. R., Kalil, M. R., & Murah, M. Z. (2011). Evaluation of Microsoft speech recognition in controlling robot soccer. In Proceedings of the 2011 International Conference on Pattern Analysis and Intelligent Robotics, ICPAIR 2011 (Vol. 1, pp. 114–118). IEEE. http://doi.org/10.1109/ICPAIR.2011.5976922
Heracleous, P., Nakajima, Y., Lee, a., Saruwatari, H., & Shikano, K. (2003). Accurate hidden Markov models for non-audible murmur (NAM) recognition based on iterative supervised adaptation. 2003 IEEE Workshop on Automatic Speech Recognition and Understanding (IEEE Cat. No.03EX721), 5–8. http://doi.org/10.1109/ASRU.2003.1318406
Heracleous, P., Nakajima, Y., Saruwatari, H., & Shikano, K. (2005). A tissue-conductive acoustic sensor applied in speech recognition for privacy. In Joint Conference on Smart Objects and Ambient Intelligence: Innovative Context-Aware Services: Usages And Technologies (pp. 93–97). http://doi.org/10.1145/1107548.1107577
Heracleous, P., Tran, V. A., Nagai, T., & Shikano, K. (2010). Analysis and recognition of NAM speech using HMM distances and visual information. IEEE Transactions on Audio, Speech and Language Processing, 18(6), 1528–1538. http://doi.org/10.1109/TASL.2009.2037398
Hidalgo, F. K., & Ramírez, J. C. R. (2009). Aplicación de las técnicas de muestreo en los negocios y la industria. Ingeniería Industrial, (27), 11–40.
Hidalgo Navarro, A., & Quilis Merín, M. (2012). La voz del lenguaje: fonética y fonología
101
del español. Tirant Humanidades.
Hirahara, T., Otani, M., Shimizu, S., Toda, T., Nakamura, K., Nakajima, Y., & Shikano, K. (2010). Silent-speech enhancement using body-conducted vocal-tract resonance signals. Speech Communication, 52(4), 301–313. http://doi.org/10.1016/j.specom.2009.12.001
Hossan, M. A., Memon, S., & Gregory, M. A. (2010). A novel approach for MFCC feature extraction. In 2010 4th International Conference on Signal Processing and Communication Systems (pp. 1–5). IEEE. http://doi.org/10.1109/ICSPCS.2010.5709752
Huang, X., Acero, A., Hon, H.-W., & Reddy, R. (2001). Spoken Language Processing: A Guide to Theory, Algorithm, and System Development. Prentice Hall PTR.
Hueber, T., Benaroya, E.-L., Chollet, G., Denby, B., Dreyfus, G., & Stone, M. (2010). Development of a silent speech interface driven by ultrasound and optical images of the tongue and lips. Speech Communication, 52(4), 288–300. http://doi.org/10.1016/j.specom.2009.11.004
Ishii, S., Toda, T., Saruwatari, H., Sakti, S., & Nakamura, S. (2011). Blind noise suppression for Non-Audible Murmur recognition with stereo signal processing. In 2011 IEEE Workshop on Automatic Speech Recognition and Understanding, ASRU 2011, Proceedings (pp. 494–499). IEEE. http://doi.org/10.1109/ASRU.2011.6163981
Iza Alcívar, W. F., & Fabricio, W. (2016). Desarrollo de un sistema informático que permita automatizar una metodología y de un modelo matemático para evaluar y calificar el riesgo del sector financiero público.
Jorgensen, C., & Dusan, S. (2010). Speech interfaces based upon surface electromyography. Speech Communication, 52(4), 354–366. http://doi.org/10.1016/j.specom.2009.11.003
Jurafsky, D., & Martin, J. H. (2009). Speech and language processing : An introduction to natural language processing, computational linguistics, and speech recognition (2nd ed.). Prentice Hall.
Kalgaonkar, K., Hu, R., & Raj, B. (2007). Ultrasonic Doppler Sensor for Voice Activity Detection. IEEE Signal Processing Letters, 14(10), 754–757. http://doi.org/10.1109/LSP.2007.896450
Knapp, M., Hall, J., & Horgan, T. (2013). Nonverbal Communication in Human Interaction (Eighth Edi). Wadsworth.
Kruse, R., Borgelt, C., & Klawonn, F. (2013). Multi-Layer Perceptrons. Computational …. Retrieved from http://link.springer.com/chapter/10.1007/978-1-4471-5013-8_5
Lasswell, H. D. (1948). The structure and function of communication in society.
102
The Communication of Ideas, (1948), 37–52.
Levelt, W. J. M. (1999). Models of word production. Trends in Cognitive Sciences, 3(6), 223–232. http://doi.org/10.1016/S1364-6613(99)01319-4
Llisterri, J. (2010). Las aplicaciones de la fonética.
Lopez-Larraz, E., Mozos, O. M., Antelis, J. M., & Minguez, J. (2010). Syllable-based speech recognition using EMG. In 2010 Annual International Conference of the IEEE Engineering in Medicine and Biology Society, EMBC’10 (pp. 4699–4702). IEEE. http://doi.org/10.1109/IEMBS.2010.5626426
Loweimi, E., Ahadi, S. M., Drugman, T., & Loveymi, S. (2013). On the Importance of Pre-emphasis and Window Shape in Phase-Based Speech Recognition. In Advances in Nonlinear Speech Processing (pp. 160–167). Springer Berlin Heidelberg. http://doi.org/10.1007/978-3-642-38847-7_21
Meiriño, R. C., Brea, J. A. F., Vila, N. A., & López, E. R. (2016). Segmentación del mercado de un destino turístico de interior. El caso de A Ribeira Sacra (Ourense). PASOS. Revista de Turismo Y Patrimonio Cultural, 14(2), 369–383.
Meltzner, G. S., Colby, G., Deng, Y., & Heaton, J. T. (2011). Signal acquisition and processing techniques for sEMG based silent speech recognition. In Proceedings of the Annual International Conference of the IEEE Engineering in Medicine and Biology Society, EMBS (pp. 4848–4851). IEEE. http://doi.org/10.1109/IEMBS.2011.6091201
Mendoza, L. E., Peña, J., & Ramón Valencia, J. L. (2015). Electro-myographic patterns of sub-vocal Speech: Records and classification. Revista de Tecnología, 12(2). http://doi.org/10.18270/rt.v12i2.758
Mendoza, L., Peña, J., Muñoz-Bedoya, L., & Velandia-Villamizar, H. (2013). Procesamiento de Señales Provenientes del Habla Subvocal usando Wavelet Packet y Redes Neuronales. Tecno Lógicas, 655–667. Retrieved from http://bibliotecadigital.itm.edu.co/jspui/handle/123456789/304
Miyamoto, D., Nakamura, K., Toda, T., Saruwatari, H., & Shikano, K. (2009). Acoustic compensation methods for body transmitted speech conversion. In ICASSP, IEEE International Conference on Acoustics, Speech and Signal Processing - Proceedings (pp. 3901–3904). IEEE. http://doi.org/10.1109/ICASSP.2009.4960480
Müller, M. (2007). Dynamic time warping. Information Retrieval for Music and Motion. Retrieved from http://link.springer.com/chapter/10.1007/978-3-540-74048-3_4
Nakajima, Y., Kashioka, H., Shikano, K., & Campbell, N. (2003). Non-audible murmur recognition input interface using stethoscopic microphone attached to the skin. In 2003 IEEE International Conference on Acoustics, Speech, and Signal
103
Processing, 2003. Proceedings. (ICASSP ’03). (Vol. 5, p. V-708-11). IEEE. http://doi.org/10.1109/ICASSP.2003.1200069
Namin, A. H., Leboeuf, K., Muscedere, R., Wu, H., & Ahmadi, M. (2009). Efficient hardware implementation of the hyperbolic tangent sigmoid function. In 2009 IEEE International Symposium on Circuits and Systems (pp. 2117–2120). IEEE. http://doi.org/10.1109/ISCAS.2009.5118213
Pacheco, J., Pacheco, J., Franco, J. F., & Behrentz, E. (2009). Caracterización de los niveles de contaminación auditiva en Bogotá: Estudio piloto. Revista de Ingeniería, 0(30), 72–80. http://doi.org/10.16924/riua.v0i30.230
Patil, S. A., & Hansen, J. H. L. (2010). The physiological microphone (PMIC): A competitive alternative for speaker assessment in stress detection and speaker verification. Speech Communication, 52(4), 327–340. http://doi.org/10.1016/j.specom.2009.11.006
Quatieri, T. F., Brady, K., Messing, D., Campbell, J. P., Campbell, W. M., Brandstein, M. S., … Gatewood, P. D. (2006). Exploiting Nonacoustic Sensors for Speech Encoding. IEEE Transactions on Audio, Speech and Language Processing, 14(2), 533–544. http://doi.org/10.1109/TSA.2005.855838
Rabiner, L. R., & Schafer, R. W. (2011). Theory and Applications of Digital Speech Processing (1st ed.). Pearson.
Rabiner, L., & Schafer, R. (2011). Digital Speech Processing. Journal of Telecommunications, 6, 237.
Ramos, O., Gamma, N., & Hurtado, D. (2015). Revisión de las tecnologías y aplicaciones del habla sub-vocal. Ingeniería, 20(2). Retrieved from http://revistas.udistrital.edu.co/ojs/index.php/reving/article/view/8513
Reddy, V. R., & Rao, K. S. (2013). Two-stage intonation modeling using feedforward neural networks for syllable based text-to-speech synthesis. Computer Speech & Language, 27(5), 1105–1126. http://doi.org/10.1016/j.csl.2013.02.003
Rissel, D. A. (1981). Diferencias entre el habla femenina y la masculina en español. Thesaurus: Boletín Del Instituto Caro Y Cuervo, 36(2), 305–322.
Saby Beltrán, J. E. (2002). FONÉTICA Y FONOLOGÍA AUTOSEGAMENTAL. Seminario, Universidad del Valle, Instituto de Educación y Pedagogía.
Saric, A., & Xiao, J. (2011). Efficient Levenberg-Marquardt minimization of the cross-entropy error function. In The 2011 International Joint Conference on Neural Networks (pp. 1–8). California: IEEE. http://doi.org/10.1109/IJCNN.2011.6033191
Schafer, R. W., & Rabiner, L. R. (1975). Digital representations of speech signals. Proceedings of the IEEE, 63(4), 662–677.
104
http://doi.org/10.1109/PROC.1975.9799
Srinivasan, S., Raj, B., & Ezzat, T. (2010). Ultrasonic sensing for robust speech recognition. In ICASSP, IEEE International Conference on Acoustics, Speech and Signal Processing - Proceedings (pp. 5102–5105). IEEE. http://doi.org/10.1109/ICASSP.2010.5495039
Strang, G. (1992). The optimal coefficients in Daubechies wavelets. Physica D: Nonlinear Phenomena, 60(1), 239–244. http://doi.org/10.1016/0167-2789(92)90240-N
Titze, I. R. (2001). Acoustic interpretation of resonant voice. Journal of Voice, 15(4), 519–528. http://doi.org/10.1016/S0892-1997(01)00052-2
Toda, T. (2012). Statistical approaches to enhancement of body-conducted speech detected with non-audible murmur microphone. In 2012 ICME International Conference on Complex Medical Engineering, CME 2012 Proceedings (pp. 623–628). IEEE. http://doi.org/10.1109/ICCME.2012.6275604
Toda, T., Nakagiri, M., & Shikano, K. (2012). Statistical voice conversion techniques for body-conducted unvoiced speech enhancement. IEEE Transactions on Audio, Speech and Language Processing, 20(9), 2505–2517. http://doi.org/10.1109/TASL.2012.2205241
Tran, V.-A., Bailly, G., Lœvenbruck, H., & Toda, T. (2010). Improvement to a NAM-captured whisper-to-speech system. Speech Communication, 52(4), 314–326. http://doi.org/10.1016/j.specom.2009.11.005
Tran, V. A., Bailly, G., Lœvenbruck, H., & Jutten, C. (2008). Improvement to a NAM captured whisper-to-speech system. Proceedings of the Annual Conference of the International Speech Communication Association, INTERSPEECH, 52, 1465–1468. http://doi.org/10.1016/j.specom.2009.11.005
Tsuruta, S., Tanaka, K., Toda, T., Neubig, G., Sakti, S., & Nakamura, S. (2014). An evaluation of target speech for a nonaudible murmur enhancement system in noisy environments. In Signal and Information Processing Association Annual Summit and Conference (APSIPA), 2014 Asia-Pacific (pp. 1–4). Cambodia: IEEE. http://doi.org/10.1109/APSIPA.2014.7041618
Tuske, Z., Tahir, M. A., Schluter, R., & Ney, H. (2015). Integrating Gaussian mixtures into deep neural networks: Softmax layer with hidden variables. In 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 4285–4289). IEEE. http://doi.org/10.1109/ICASSP.2015.7178779
Varsavsky, A., & McDermott, H. J. (2013). Application of real-time loudness models can improve speech recognition for cochlear implant users. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 21(1), 81–87. http://doi.org/10.1109/TNSRE.2012.2213841
105
Wand, M., Janke, M., & Schultz, T. (2014). Tackling Speaking Mode Varieties in EMG-Based Speech Recognition. Biomedical Engineering, IEEE …, 61(10), 2515–2526. http://doi.org/10.1109/TBME.2014.2319000
Wang, L., Liu, S., Wei, M., & Hu, X. F. (2013). Time-frequency analysis of nonlinear and non-stationary weak signals of corona discharge. Journal of Physics: Conference Series, 418, 12081. http://doi.org/10.1088/1742-6596/418/1/012081
Wang, L., Zeng, Y., & Chen, T. (2015). Back propagation neural network with adaptive differential evolution algorithm for time series forecasting. Expert Systems with Applications, 42(2), 855–863. http://doi.org/10.1016/j.eswa.2014.08.018
Watzlawick, P., Bavelas, J., Jackson, D., & O’Hanlon, B. (2011). Pragmatics of human communication: A study of interactional patterns, pathologies and paradoxes. (W. N. & Company., Ed.). London: WW Norton & Company.
Yang, C.-Y., Brown, G., Lu, L., Yamagishi, J., & King, S. (2012). Noise-robust whispered speech recognition using a non-audible-murmur microphone with VTS compensation. In 2012 8th International Symposium on Chinese Spoken Language Processing (pp. 220–223). IEEE. http://doi.org/10.1109/ISCSLP.2012.6423522
Zhou, X., Garcia-Romero, D., Duraiswami, R., Espy-Wilson, C., & Shamma, S. (2011). Linear versus mel frequency cepstral coefficients for speaker recognition. In 2011 IEEE Workshop on Automatic Speech Recognition & Understanding (pp. 559–564). IEEE. http://doi.org/10.1109/ASRU.2011.6163888
106
ANEXO 1. Generalidades de los sistemas de captura y
micrófono utilzado para la adquisición de la señal
subvocal NAM
Generalidades del sensor
Característica Descripción
Tipo de señal Murmuro No Audible
(NAM)
Ancho de banda 300Hz-2000Hz
Material Caja de Sonoridad Ácido Poli Láctico (PLA)
Micrófono MEMS
Especificaciones del Micrófono
Característica Valor
Relación señal ruido 64 dB
Ancho de banda 100 – 15000 Hz
Voltaje de alimentación 1,5 – 3,3 V
Impedancia de salida 200 Ω
107
Especificaciones de los sistemas de adquisición
Característica Computador Sistema embebido
Amplitud de
la señal 0-2 V 0-3,3 V
Frecuencia de
muestreo 8000 Hz 8000 Hz
Resolución 16 bits 12 bits
108
ANEXO 2. Código Embebido para método MFCC
/////----------------CODIGO PARA CALCULO DE MFCC #include <stdio.h> #include <string.h> #include "stm32f4xx_hal.h" // Keil::Device:STM32Cube HAL:Common #include "cmsis_os.h" // ARM::CMSIS:RTOS:Keil RTX #include "stm32f4xx_hal_conf.h" // Keil::Device:STM32Cube #include "RTE_Components.h" // Component selection #include "RTE_Device.h" // Keil::Device:STM32Cube #include "Board_LED.h" // ::Board Support:LED #include "Board_ADC.h" #include "Board_Buttons.h" // ::Board Support:Buttons #include "stm32f4xx.h" // Device header #include "stm32f4xx_hal_adc.h" // Keil::Device:STM32Cube HAL:Common //------------------------------------------ //DSP configuration #include "arm_math.h" #include "arm_const_structs.h"/ //------------- #define VECTOR_LENGTH 1024 #define NSamples 12000 //0.11 SEGUNDOS Duración de señal (D) float32_t buffer_input[VECTOR_LENGTH]; float32_t buffer_output[VECTOR_LENGTH]; float32_t buffer_output_mag[VECTOR_LENGTH]; uint8_t FFT_8[VECTOR_LENGTH]; float32_t maxvalue; uint32_t maxvalueindex; uint8_t mode; arm_rfft_instance_f32 S; arm_cfft_radix4_instance_f32 S_CFFT; /////ADC-UART-CLOCK-CONFIG ADC_HandleTypeDef AdcHandle; ADC_ChannelConfTypeDef sConfig; GPIO_InitTypeDef GPIO_InitStruct;
109
//Definición para GPIOA GPIO_InitTypeDef GPIO_ADC; GPIO_InitTypeDef GPIO_UART; //Definición para ADC-PC0-PC1-PC2 UART_HandleTypeDef UartHandle; //Declaración de variables de trabajo unsigned int i,j,h,l,q,p,Y,windows,counter=0; float32_t CONVERSION = 0; //Variable de conversión ADC uint16_t Conv8b = 0; uint8_t ADC_Trans; //Declaración de vectores para Windowing float32_t senal[9600]; float32_t Fsenal[2048]; float32_t Hamming[512]; float32_t MFCCout [13][8]; float32_t O[1280]={-0.2017822265625, -0.271514892578125, -0.369537353515625, -0.445892333984375}; uint8_t NeuralNet [13][5]; void uart_config(){ //Configuración de puerto rs232 USART3 (TX=PB10, RX=PB11)// UartHandle.Instance = USART3; __USART3_CLK_ENABLE(); //Habilitación USART3 CLOCK __GPIOB_CLK_ENABLE(); GPIO_UART.Pin = GPIO_PIN_10|GPIO_PIN_11; //Conf-Pines de ADC GPIO_UART.Mode = GPIO_MODE_AF_PP; //Conf- pines como analogos GPIO_UART.Pull = GPIO_PULLUP; GPIO_UART.Speed = GPIO_SPEED_FAST;
110
GPIO_UART.Alternate = GPIO_AF7_USART3; HAL_GPIO_Init(GPIOB, &GPIO_UART); UartHandle.Init.BaudRate = 115200; UartHandle.Init.WordLength = UART_WORDLENGTH_8B; UartHandle.Init.StopBits = UART_STOPBITS_1; UartHandle.Init.Parity = UART_PARITY_NONE; UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; UartHandle.Init.Mode = UART_MODE_TX_RX; UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&UartHandle); } void adc_config(){ //Configuración de ADC para trabajar a una //frecuencia de muestreo = 8000 Hz //Tiempo de muestreo = 1/8000 s //Prescaler/8 //#Cycles = 144 AdcHandle.Instance = ADC1; __ADC1_CLK_ENABLE(); //Habilitación de reloj para ADC1 __GPIOC_CLK_ENABLE(); //Habilitación de reloj para puerto C GPIO_ADC.Pin = GPIO_PIN_0| GPIO_PIN_1|GPIO_PIN_2; //Conf-Pines de ADC GPIO_ADC.Mode = GPIO_MODE_ANALOG; //Conf- pines como analogos HAL_GPIO_Init(GPIOC, &GPIO_ADC); //Inicialización de pines //CONFIGIGURACIÓN DE MODULO ADC// AdcHandle.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV8; AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; AdcHandle.Init.ScanConvMode = DISABLE; AdcHandle.Init.ContinuousConvMode = ENABLE; AdcHandle.Init.DiscontinuousConvMode = DISABLE; AdcHandle.Init.NbrOfDiscConversion = 0; AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1; AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT;
111
AdcHandle.Init.NbrOfConversion = 1; AdcHandle.Init.DMAContinuousRequests = DISABLE; AdcHandle.Init.EOCSelection = DISABLE; HAL_ADC_Init(&AdcHandle); //Inicialización de Modulo ADC sConfig.Channel = ADC_CHANNEL_12; //Pin de conversion sConfig.Rank = 1; sConfig.SamplingTime = ADC_SAMPLETIME_144CYCLES; sConfig.Offset = 0; HAL_ADC_ConfigChannel(&AdcHandle, &sConfig); //PIN } int adc_convert(){ for (h = 0; h < 14; h++); //Retardo para Fs=8000 HAL_ADC_Start(&AdcHandle); //Start the conversion HAL_ADC_PollForConversion(&AdcHandle,10); //Processing the
conversion CONVERSION=HAL_ADC_GetValue(&AdcHandle); Conv8b = CONVERSION*255/4095; ADC_Trans = Conv8b&0xff; return (ADC_Trans); } ///Filter bank static float32_t H[13][256]; float32_t Frame_Flt[13][256]; float32_t FIL[13]; float32_t MFCC[13]; static uint16_t WdwL=512, ShftS=128; static uint8_t Nfilas=0; static uint8_t M=26; static uint16_t fl=0; static uint16_t fh=6400; static float32_t Mel[28]; static float32_t filter[28]; float32_t FilterBank(){ Mel[0]=2595*log(1+(fl/700)); Mel[M+2]=2595*log(1+(fh/700)); for(i=1;i<=M+1;i++){
112
Mel[i]=Mel[i-1]+(Mel[M+2]-Mel[0])/(M+1); } for(i=0;i<=M+1;i++){ Mel[i]=700*exp(Mel[i]/2595)-700; } for(i=0;i<=M+1;i++){ filter[i]=floor((256*Mel[i])/fh); } for(i=1;i<=M/2;i++){ for(h=1;h<=255;h++){ if(h<filter[i-1]){ H[i-1][h]=0*255; }else if(h >= filter[i-1] && h <= filter[i]){ H[i-1][h]=((h-filter[i-1])/(filter[i]- filter[i-1])); }else if(h >= filter[i] && h <= filter[i+1]){ H[i-1][h]=((filter[i+1]-h)/(filter[i+1]- filter[i])); }else if(h>filter[i+1]){ H[i-1][h]=0*255; } } } } int k=0; int contador=-1; ///Variables red unsigned int a,b,c,i; #define PO_LENGTH_SAMPLES (5*2) //Tamaños de las matrices iniciales //Matriz de los pesos de la capa oculta #define m0 10 #define n0 104 //Matriz de entrada #define m1 104 #define n1 1 //Matriz S0 #define m2 10 #define n2 1 //Matriz Bias Oculta #define m3 10
113
#define n3 1 //Matriz S1 #define m4 10 #define n4 1 //Matriz S2 #define m5 10 #define n5 1 //Matriz pesos de salida #define m6 3 #define n6 10 //Matriz S3 #define m7 3 #define n7 1 //Matriz Bias salida #define m8 3 #define n8 1 //Matriz S4 #define m9 3 #define n9 1 //Matriz de resultados #define m10 3 #define n10 1 //Entrada para una E float32_t Entrada [m1][n1]; float32_t PesosOcultos[m0][n0] ={ {-0.035979663,-0.073589896,-0.015968615,0.031598316,-0.078149746}; {0.023407347,0.001113942,-0.188938014,-0.060281308,-0.200052673}; {-0.034406504,-0.270509315,-0.086179234,0.139866805,-0.091542076}; {-0.077516188,-0.173514632,-0.048156738,-0.004724049,0.13243002}; {-0.193686966,-0.176483362,0.074109997,0.123956414,0.118548376}; {-0.005119343,0.031994199,-0.009919398,0.10043974,0.018296128}; {0.01049271,-0.029180476,0.021977611,-0.030006445,-0.128230217}; {-0.012884671,0.070672109,0.030084125,0.016171817,-0.121152824}; {0.000404429,-0.070698755,0.036217074,-0.051968928,-0.081230242}; {-0.011278216,-0.011128468,-0.031136563,0.044607801,0.114686665}; }; float32_t BiasOculto[m3][n3] ={ {-8.64814115822036}, {-1.61279516547541}, {-3.54082518599055}, {0.349430553960645}, {0.120035127773977},
114
{2.75674313259088}, {-2.6320891074238}, {-4.85651008883633}, {-7.81951176392393}, {3.84918703452075} }; float32_t PesosSalida[m6][n6] ={ {-0.611252205,-4.601711487,-2.560730244,1.943044124,1.911848916,-0.556677965,0.102946094,0.454311,0.212346379,0.39357485}, {-0.494581374,1.911523252,-1.590518953,-1.738760415,-3.349223396,-0.268353155,-0.316488117,0.307766765,-0.116861865,1.132665503}, {-0.494581374,1.911523252,-1.590518953,-1.738760415,-3.349223396,-0.268353155,-0.316488117,0.307766765,-0.116861865,1.132665503} }; float32_t BiasSalida[m8][n8] ={ {0.896714721512725}, {-0.166419793904853}, {0.678207948881287} }; float32_t maxvalue=0; uint32_t maxvalueindex=0; float32_t S0[m2][n2]; float32_t S1[m4][n5]; float32_t S2[m5][n5]; float32_t S3[m7][n7]; float32_t S4[m9]; float32_t Salida[m10]; float32_t SumSoft=0; int32_t main(void) { HAL_Init(); LED_Initialize(); Buttons_Initialize(); adc_config(); uart_config(); arm_rfft_init_f32(&S, &S_CFFT, 512, 0, 1); FilterBank();
115
for (i=0;i<512;i++){ Hamming[i]=0.54-0.46*cos(2*PI*i/512); } while(1){ if (Buttons_GetState() & (1 << 0)){ for (i=0;i<NSamples;i++){ adc_convert(); senal[i]=(float32_t)(ADC_Trans-128); } Fsenal[0]=senal[0]; for (i=1;i<NSamples;i++){ Fsenal[i]=senal[i]-0.97*senal[i-1]; } Nfilas=((NSamples-WdwL)/ShftS)+1; h=0; for (l=0;l<Nfilas;l++){ h=128*l; for(j=h;j<h+512;j++){ buffer_input[q]=(float32_t)Fsenal[j]; q=q+1; } q=0; for(i=0;i<512;i++){ buffer_input[i]=buffer_input[i]*Hamming[i]; } arm_rfft_f32(&S, buffer_input, buffer_output); arm_cmplx_mag_f32(buffer_output, buffer_output_mag, 512); arm_max_f32(buffer_output_mag, 512, &maxvalue, &maxvalueindex); for(i=0; i<512; ++i){
116
buffer_output_mag[i] = buffer_output_mag[i]/maxvalue; } for(i=0; i<512;++i){ buffer_output_mag[i]=(((buffer_output_mag[i])*buffer_output_mag[i])/512); } for (i=0;i<=12;i++){ FIL[i]=0; MFCC[i]=0; } for(i=0;i<=12;i++){ for(j=0;j<256;j++){ Frame_Flt[i][j]=(H[i][j])*buffer_output_mag[j]; FIL[i]=FIL[i]+Frame_Flt[i][j]; } } for (i=0;i<=12;i++){ FIL[i]=log(FIL[i]); } for(i=0;i<13;i++){ for(j=0;j<13;j++){ MFCC[i]=MFCC[i]+(float32_t)((FIL[j]*cos((PI/13)*(j+(1/2))*i))*0.392232); } } contador++; if (contador < 8){ for(j=0;j<13;j++){ MFCCout[j][contador]= (float32_t)(MFCC[j]); } }else contador=-1; counter=0; for(windows=0;windows<8;windows++){ for(i=0;i<13;i++){
117
Entrada[counter][0]=MFCCout[i][windows]; counter=counter+1; } } } //*************RED NEURONAL**************** //Multiplicacion Pesos Capa Oculta (PCO) * Entradas (E) for(a=0;a<m0;a++){ for(b=0;b<n1;b++){ for(c=0;c<n0;c++){ S0[a][b]=S0[a][b]+PesosOcultos[a][c]*Entrada[c][b]; } } } //Suma (PCO*E)+Bias Capa Oculta for(a=0;a<m2;a++){ S1[a][0]=S0[a][0]+BiasOculto[a][0]; } //Tansig Manual Salida de la Capa Oculta for (a=0;a<m5;a++){ S2[a][0]=2/(1+exp(-2*S1[a][0]))-1; } //Multiplicacion for(a=0;a<m6;a++){ for(b=0;b<n5;b++){ for(c=0;c<n6;c++){ S3[a][b]=S3[a][b]+PesosSalida[a][c]*S2[c][b]; } } } //Suma Manual for(a=0;a<m8;a++){ S4[a]=S3[a][0]+BiasSalida[a][0]; } SumSoft=0; //Softmax Manual for (a=0;a<m9;a++){ SumSoft=SumSoft+exp(S4[a]); } for (a=0;a<m10;a++){
118
Salida[a]=exp(S4[a])/SumSoft; } arm_max_f32(Salida, m10, &maxvalue, &maxvalueindex); LED_On(maxvalueindex); // Turn specified LED on for (i = 0; i < 100000; i++); LED_Off(maxvalueindex); // Turn specified LED off for (i = 0; i < 100000; i++); } }; }
119
ANEXO 3. Recognition of Spanish Vowels through Imagined
Speech by Using Spectral Analysis and SVM