Desarrollo de un sistema de aprendizaje automático para la síntesis de textos con voces emocionales Autor: Borja Escanilla Rodríguez Tutor: Roberto Barra Chicote 1
Objetivos Partiendo de la información de la empresa MeaningCloud, desarrollar un sistema en Python que mejore su predicción para cada usuario. Desarrollar un regresor lineal para efectuar este aprendizaje. Desarrollar un filtro sigmoidal que permita dar cohesión emocional a las frases. Realizar una evaluación ciega para comprobar resultados 2
La emoción en el sistema Sólo distinguiremos tres emociones: positiva, neutra y negativa. MeaningCloud etiqueta la emoción con un decimal entre y Generaremos el audio correspondiente mediante la interpolación de dos modelos. 3
La consulta a MeaningCloud Se realiza con peticiones HTTP GET a una API REST. Se le envían como parámetros: Formato solicitado (JSON o XML) Idioma Texto Modelo Verbosidad Clave de licencia 4
La respuesta de MeaningCloud Devuelve un objeto JSON con los siguientes datos: Score general del texto Agreement emocional Subjetividad Confianza Ironía Separación por frases Score emocional Texto Otros datos 5
Desarrollo de los programas Debian 64 bits sobre VirtualBox Python 2.7 PyGTK+ Interfaz gráfica declarativa con XML Librería tweepy PyAudio 6
Regresor lineal Recibe la realimentación del usuario. Ajusta una recta por el método de mínimos cuadrados. Suele recortar el rango del score emocional. 7
Filtro sigmoidal(I) Otorga cohesión emocional al texto. B=5; M=0.5;v=3 8
Filtro sigmoidal(II) 9
Filtro sigmoidal(III) 10
Programa de propósito general(I) El usuario puede usar cualquier texto Ajusta scores para cada frase Implementa el filtro sigmoidal Implementa el regresor lineal Dispone de tres voces masculinas y tres voces femeninas 11
Programa de propósito general(II) 12
Programa para Twitter(I) Textos reducidos Descarga los últimos tweets del Timeline Muestra el score de MeaningCloud El usuario decide con que score sintetizar Elimina caracteres conflictivos Actualiza el regresor cada 10 textos No incorpora filtro sigmoidal 13
Programa para twitter(II) 14
Programa para Twitter(III): Problemas Usuario influenciado por el score mostrado Realización de una evaluación ciega Alto tiempo de procesado Tweets descargados con anterioridad Textos sintetizados con anterioridad para todos los scores 15
Programa para Twitter(IV): Textos seleccionados 50 Textos Emocionalmente homogéneos. MeaningCloud asegura confianza del 75% Repartidos de forma homogénea Sin faltas de ortografía ni gramaticales Pronunciables 16
Programa para Twitter(V) 17
Programa para Twitter(VI) Exporta un fichero CSV con: Score MeaningCloud Score Regresor Lineal Score Usuario Preferencia usuario 18
Resultados(I) Comparamos el error cometido con el error de MeaningCloud Observaremos la tendencia lineal de los errores 19
Resultados(II): Usuario de ejemplo 20
Resultados(III) Para comparar correctamente los errores los restaremos E < 0El regresor lineal mejora la predicción Pendiente negativa El regresor mejora cada vez 21
Resultados(IV) 22
Resultados(V): distribución de los errrores 23
Comentarios de los usuarios Alabaron la mejora de la voz emocional sobre la voz neutra Manifestaron no usar este tipo de sistemas en la vida diaria Dificultad para catalogar el estilo directo Voz metálica 24
Conclusiones El regresor lineal mejora el sistema El regresor se adapta cada vez más Este tipo de sistemas tendrá una buena acogida Mejorará la vida de personas con discapacidad funcional 25
Líneas futuras Entrenar el filtro sigmoidal Sustituir el regresor lineal por un filtro que no recorte el rango Evitar usar voz emocional cuando no deba ser usada 26