TRABAJOS FIN DE GRADO curso: 2019-20
Diseño e implementación de métodos automáticos de ‘audio scraping’ para posterior extracción de características |
Tecnologías Específicas
Computación
Descripcion y Objetivos
Hoy en día tenemos todo un mundo de contenidos digitales a nuestro alcance, simplemente desde nuestro smartphone, tablet o PC. Las redes sociales son las que más atención reciben pero en los últimos ha surgido un alto interés en combinar las herramientas de MIR (Music Information Retrieval) junto con las técnicas de aprendizaje automático. Este proyecto está pensado precisamente para aunar estos dos puntos, si bien se quiere hacer un especial hincapié en la primera parte, ya que se quiere explorar la usabilidad y capacidades reales de las APIs que ofrecen algunas de las plataformas más populares (YouTube, Spotify, last.fm, SoundCloud, etc..). También podría ser interesante incorporar Acousticbrainz.org, que es menos comercial y más orientada a investigación. A grandes rasgos, podemos considerar Youtube, Soundcloud y Last.fm como fuentes de datos más sociales, que probablemente puedan proporcionar información sobre el comportamiento de usuarios (comentarios, likes), mientras que AcousticBrainz y Spotify podrían aportar información más relacionada con la música en sí (tempo, estilo, bailabilidad, etc...).
Uno de los objetivos principales de este proyecto, sería el de estudiar cómo funcionan estas APIs, e implementar ‘audio scraping’ con alguna/s de ellas, de forma que se puedan extraer automáticamente clips de audio, enriquecido con cierta información contextual, como podría ser género músical o estado anímico asociado.
Una segunda fase, que podrá variar en complejidad según la profundidad con la que se haya abordado la primera, consistiría en: (i) la extracción de características de las canciones o clips obtenidos, quizás pasando por una posible unificación de los mismos (pues es bastante probable que cada plataforma proporción diferente información) y (ii) la posterior aplicación de técnicas de clasificación que permita evaluar el comportamiento de modelos clásicos como Naive Bayes, árboles de decisión, o redes neuronales sencillas.
Metodología y Competencias
Para desarrollar este trabajo existen varias etapas diferenciadas:
- Estudio preliminar del problema y de las herramientas existentes. Comparativa preliminar.
- Para cada una de las plataformas, estudiar su funcionamiento, e intentar diseñar un programa que accediendo a la API sea capaz de descargar un conjunto de canciones dado un criterio determinado.
- Escoger al menos un par de plataformas, si es posible más, para hacer un audio scraping de cierta entidad, que nos permita tener uno o varios datasets donde cada caso/instancia contenga el fichero audio y su información contextual.
- Una fase de extracción de características que transforme el/los dataset(s) en un formato donde puedan ser la entrada de un proceso de aprendizaje en ML.
- Escoger una etiqueta o clase sobre la que sea interesante trabajar para realizar clasificación de audio.
- Aplicar dos o tres paradigmas de clasificadores para aprender diferentes modelos.
- Evaluación de los resultados.
- Análisis y comparativa entre los distintos modelos, y con los diferentes datasets o etiquetas (si hay varias posibilidades).
Mediante la realización de este TFG se trabajarán, en distinto grado de profundidad, las competencias CM4, CM5, CM6 y CM7, específicas de la intensificación de Computación:
- Capacidad para conocer los fundamentos, paradigmas y técnicas propias de los sistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas que utilicen dichas técnicas en cualquier ámbito de aplicación.
- Capacidad para desarrollar y evaluar sistemas interactivos y de presentación de información compleja y su aplicación a la resolución de problemas de diseño de interacción persona computadora.
- Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano en una forma computable para la resolución de problemas mediante un sistema informático en cualquier ámbito de aplicación, particularmente los relacionados con aspectos de computación, percepción y actuación en ambientes entornos inteligentes.
- Capacidad para conocer y desarrollar técnicas de aprendizaje computacional y diseñar e implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadas a extracción automática de información y conocimiento a partir de grandes volúmenes de datos.
Medios a utilizar
Se prevé que gran parte de la implementación se desarrolle en Python, pues es el lenguaje donde se encuentran las APIs y los clasificadores de Machine Learning. Por tanto, se espera que el alumno tenga un dominio de dicho lenguaje de programación, y buenas habalidades como programador. Se necesitará un ordenador de rendimiento CPU medio-alto, buena memoria RAM y buena capacidad de almacenamiento en disco, dado que se pueden llegar a almacenar miles de audios, que individualmente pueden ocupar varios megas.
Bibliografía
- APIS a estudiar y con las que se desarrollarán implementaciones:
- Libros y manuales de inteligencia artificial y aprendizaje automático. Libros y manuales de lenguajes de programación y librerías específicas de aprendizaje automático. (Todo disponible en la ESIIAB y/o en internet)
Tutor FLORES GALLEGO, MARIA JULIA | Alumno ARINERO ADAM, JOSÉ CARLOS |
|