Abstract:
El objetivo del presente trabajo es implementar un sistema de reconocimiento
de comandos por voz interactivo, que sea capaz de responder a comandos básicos
y mantener conversaciones breves con el usuario, así como de accionar movimientos
del animatrónico donde se utilice. Sumado a esto, se busca llevar a cabo un estudio
de los cambios en la voz debido a los diferentes estados anímicos, para comprobar
si es posible o no determinar emociones con base en la voz mediante software. Este
trabajo comprende disciplinas de programación de alto nivel, aprendizaje de máquina
y procesamiento de señales.
Para la creación del sistema de conversación, se implementaron las tecnologías de
Speech to Text STT y Text to Speech TTS así como un poco de aprendizaje de
máquina para la generación de respuestas en una conversación. También se utilizó
comunicación serial para indicar al módulo de control de motores algunos movimientos
acordes al diálogo actual. Se obtuvo un sistema capaz de recibir entradas por voz y
responder también por voz. Este cuenta con varias bases de datos para conversaciones,
una para movimientos y una para comandos específicos del lugar donde se implemente
(por ejemplo, un parque de diversiones). Es también capaz de iniciar la interacción
con el usuario por su cuenta, así como de aprender de las conversaciones que realice e
indicar si no fue capaz de comprender una entrada de voz. Un aspecto en el que este
programa podría mejorarse es en la velocidad de respuesta, lo que podría ser posible
implementando un reconocimiento de audio en tiempo real.
Para la evaluación de detección de emociones en la voz, se implementaron seis
algoritmos diferentes de aprendizaje de máquina supervisado y se analizó audio básicamente en intensidad, frecuencia y duración. Los algoritmos que presentaron mejores resultados fueron el Análisis Discriminante Lineal (LDA) y el Árbol de Decisiones
(CART). Se determinó que de los 24 parámetros encontrados como relevantes en la
detección de emociones utilizados, los más relevantes son dos: frecuencia con la mayor
amplitud y la oblicuidad del espectro frecuencial. Otros dos parámetros casi tan
relevantes como los anteriores fueron: la oblicuidad y la curtosis de la intensidad. Trabajando con las seis emociones y realizando pruebas con muestras conocidas por el algoritmo, se obtuvo un porcentaje de acierto máximo del 69 %. Se determinó tras
varias pruebas que las emociones más fáciles de detectar son enojo, alegría y tristeza.
Al disminuir el estudio a estas tres emociones, el porcentaje de acierto alcanzó hasta
un 95 %. Para la validación del algoritmo con muestras desconocidas por la base de
datos, para las tres emociones identificadas como las más fáciles de detectar se consiguió un porcentaje de acierto máximo del 55% . Puede decirse que es posible detectar emociones en la voz si se mejoran ciertos aspectos que darían como resultado un mejor porcentaje de acierto. Entre estos: entrenar al algoritmo con una mayor cantidad de muestras, definir más parámetros relevantes en la detección de emociones y omitir las
muestras de sujetos que presentaban emociones muy débiles y difíciles de identificar
incluso por un ser humano.