miércoles, 26 de febrero de 2014

[INVESTIGACIÓN] Diseño de la solución propuesta

Durante la semana se trabajó en diseñar la estructura del capítulo de solución propuesta. En un inicio se tenía un capítulo tentativamente exclusivo para la solución propuesta, pero dado a la cantidad de información que se describe, he decidido dividir en dos capítulos, uno donde se muestra la metodología y otro donde se muestra la implementación final.

Para el capítulo de metodología decidí abarcar conceptos básicos como:
  • La mención de las herramientas utilizadas para el proyecto, en este caso introducir el lenguaje de programación utilizado y describir módulos y librerías que utilizaré para lograr el objetivo.
  • Hablar de las fases que habrá en el proyecto: 
    • Fase de procesamiento, la cual es donde se lleva a cabo la extracción de información de las pistas de audio.
    • Fase de clasificación de datos, donde la información procesada es clasificada en relación a las pistas de audio.
Para el capítulo de implementación, llamado "Solución propuesta", es en donde en realidad se describen aspectos de diseño e implementación de software:
  • Ya definidas las fases en el capitulo de metodología, se procede a mencionar su implementación describiendo los algoritmos utilizados.
  • Adicionalmente se agrega una sección donde se describen los datos que se procesan y el porqué se optó en guardarlos en ese formato, además de mencionar la forma en que se realiza la comparación y clasificación de los mismos.
Avance de proyecto

En esta semana se trabajo en la modificación de la interfaz y acoplarla para la lectura de múltiples archivos. Además de una versión inicial de lo que en un futuro será un mezclador inteligente y un generador de listas de reproducción.

Por ahora todo funciona en forma aleatoria, pues la parte de clasificación aún no está del todo desarrollada, sin embargo ya es posible obtener los datos de la pista a ser clasificados.

Para la prueba de esta semana se utilizaron seis archivos de sonido en formato WAV, a continuación se muestran junto con sus datos de procesamiento.







Estos datos de procesamiento son casi constantes a su sonido, con pequeñas diferencias entre reproducciones.

La idea es modelar algún algorítmo que tome los datos actuales de una pista y calcule cual de las pistas restantes es la mejor opción de acuerdo con el ritmo.

Una aproximación de lo que podría suceder con este algoritmo sería algo como lo siguiente:

video

El objetivo para la siguiente semana es lograr desarrollar algúna rutina que analice los datos de los archivos y logre regresar la mejor opción de pista a reproducir. Con lo que se podría tener un prototipo del generador de listas de reproducción.

jueves, 20 de febrero de 2014

[INVESTIGACIÓN] Resumen de trabajos relacionados relevantes

Para esta semana se realizó un cuadro comparativo de los trabajos relacionados seleccionados la semana pasada y se resumió en pocas palabras como se relacionan con el proyecto de tesis.

Para ello se seleccionó de los trabajos aquellos que pudieran representar una alternativa, no a la aplicación de lo que se investiga sino al área de investigación que se estudia.

Para el cuadro comparativo se tomaron en cuenta 7 criterios:
  • Procesamiento de señales: Indica si realiza alguna clase de manipulación a una señal de audio.
  • Detección rítmica: Indica si detecta alguna forma de rítmo para su funcionamiento.
  • Clasificador de patrones: Indica si es posible clasificar los datos analizados.
  • Procesamiento en tiempo real: Indica si es posible realizar esto mientras se reproduce el contenido.
  • Datos preprocesados: Indica si es necesario leer algún archivo o base de datos para su funcionamiento.
  • Mezcla inteligente de audio: Indica si el proyecto está pensado para generar mezclas de sonido. En este caso esta también es una de las intenciones del proyecto de tesis.
  • Listas de reproducción autogeneradas: Indica si el proyecto está pensado para autogenerar listas en base a algúna circunstancia. Ésta es una de las intenciones del proyecto.

Avance de proyecto

Durante esta semana se siguió trabajando en la detección de tempo pero ahora de forma analítica.

Decidí analizar la información tal y como la obtenía anteriormente con unas pequeñas modificaciones de tiempo para mejorar la presición.

Los datos observados no son el tempo tal cual se defíne, pero igualmente pueden ser funcionales para mis objetivos.

Esta gráficas muestran la cantidad de BPM contra el tiempo de duración de la pista en segundos.


Como se puede observar, estas gráficas muestran valores algo constantes, se puede ver a simple vista que los valores rondan los 450, 600 o cerca de los 1000 BPM, siendo los de 600 predominantes.

Las pistas utilizadas fueron "Queen of Apology" y "Mine for Life" del grupo The Sounds, canciones que son del género New Wave y comparten ciertas cualidades en los datos que se analizaron.

La siguiente gráfica es de los datos obtenidos al analizar una versión Dubstep de la canción "Rock You"

Se puede observar que presenta valores aproximados a los 400 y 900 BPM, algo distintos a los valores de las gráficas anteriores.

Por ahora todo apunta a que es hora de proceder a la segunda etapa que consiste en tratar de comparar pistas de sonido y tratar de acomodarlas en un orden basado en estos datos. Igualmente continuaré mejorando la presición con que se toman.

jueves, 13 de febrero de 2014

[INVESTIGACIÓN] Búsqueda y clasificación de trabajos relacionados


En esta semana se realizó una búsqueda de artículos y trabajos relacionados al tema de la tesis.

Los trabajos encontrados son descritos en la siguente tabla junto a la base de datos a la que pertenecen y las palabras clave utilizadas para encontrarlos.

TituloBase de datosPalabras clave
Estimating tempo, swing and beat locations in audio recordingsIEEE Xplore Digital Librarymusic bpm detection
Large-scale cover song recognition using hashed chroma landmarksIEEE Xplore Digital Librarymusic player pattern
Towards a Class-Based Representation of Perceptual Tempo for Music RetrievalIEEE Xplore Digital Librarytempo
Music tempo estimation and beat tracking by applying source separation and metrical relationsIEEE Xplore Digital Librarytempo
Real-time perceptual tempo estimation for music signal based on envelope autocorrelationIEEE Xplore Digital Librarytempo
A system for the automatic segmentation and classification of chord sequencesACM Digital Librarypattern recognition sounds
Automatic and instant ring tone generation based on music structure analysisACM Digital Librarypattern recognition sounds
Tempo induction algorithm in MP3 compressed domainACM Digital Librarybpm detection music
A tempo-sensitive music search engine with multimodal inputsACM Digital Librarybpm detection music
SVR-based music mood classification and context-based music recommendationACM Digital Librarybpm detection music
Using quadratic programming to estimate feature relevance in structural analyses of musicACM Digital Librarybpm detection music
Rhythm pattern representations for tempo detection in musicACM Digital Librarybpm detection music
Toward segmentation of popular musicACM Digital Libraryrhythm detection audio
Automatic Recognition and Matching of Tempo and Phase of Pieces of Music, and an Interactive Music PlayerGoogle Patentsmusic bpm recognition
System and method of bpm determinationGoogle Patentsmusic bpm

Avance de proyecto

Durante etstas semanas he estado analizando las frecuencias provenientes de un archivo wav. Esta vez decidí utilizar la parte real de la transformada rápida de Fourier pues es la que denota una mayor intensidad visualmente en la gráfica a la hora de detectar el ritmo.

He decidido dividir la gráfica generada en segmentos de 16 bloques que facilitan un poco la tarea visual de ver una relación entre el ritmo que percibo y la gráfica.

video

Se agregó el tiempo restante de la pista solo para motivos informativos.

Para ayudar un poco más se agregó una escala temporal para cada bloque que consiste en los valores de cada uno imprimidos en la terminal con un color que determina su intensidad siendo azul de baja intensidad y rojo de alta intensidad, pasando por verde y amarillo.

También se trató de analizar (sin mucho éxito) el ritmo medido en BPMs (beats per minute) o pulsos por minuto mediante el procesamiento de las frecuencias. El ritmo obtenido se puede ver en la esquina inferior derecha del video. En un principio se obtenían los pulsos en un segundo y se multiplicaban por 60 para dar un aproximado. Despues lo que se trató de hacer fue calcular el tiempo entre pulsos y calcular directamente una aproximación. De ambas formas el cálculo aveces es bueno pero la mayor parte de las veces falla.

Las metas son obtener un ritmo aproximado de mayor presición, en base a eso obtener una predicción de pulsos para facilitar el análisis y finalmente comparar ritmos entre canciones y analizar similitudes.

jueves, 6 de febrero de 2014

[INVESTIGACIÓN] Identificación y estructuración de antecedentes

Durante esta semana se encargó buscar antecedentes con respecto a nuestro tema de tesis.

Para ello me puse a investigar sobre cómo son y cual es la forma en que se redactan los antecedentes.

En pocas palabras, los antecedentes se forman con la literatura existente y trabajos relacionados que hablan de conceptos clave en mi tema. Los cuales se remarcan para dar énfasis a lo que se quiere poner atención.

En mi caso, mi tema habla sobre manipulación de sonido y reconocimiento de patrones en señales por lo que he decidido dividir mis antecedentes en dos subtemas principales:
  • Procesamiento de señales: Explico lo básico sobre la forma en que se codifica una señal y agrego subtemas donde explico el significado de algunos conceptos clave relevantes.
  • Reconocimiento de patrones: Explico en forma resumida que es y en que consiste el reconocimiento de patrones y algunos métodos.

A demás de un subtema llamado Conceptos generales, donde explico detalles muy básicos sobre los archivos de sonido y su funcionamiento.

Al principio del tema agregué una breve descripción a modo de introducción hablando sobre la forma en que el humano percibe las ondas de sonido.

Con esos conceptos se pretende abarcar lo más importante que se verá a lo largo del tema.

Avance de proyecto

En esta semana realicé cambios al programa, esta vez ademas de analizar las ondas de sonido tambien analizo frecuencia contra poder.

El programa tiene cuatro gráficas, la primera es la misma de la vez pasada, en las otras tres se analiza la frecuencia contra el poder mediante el uso de la transformada rápida de Fourier, un algoritmo muy utilizado en el tratamiento digital de señales, proporcionado por la librería numpy.

En la segunda gráfica se analiza la parte real de la transformada, en la tercera se analiza la parte imaginaria y en la cuarta es la suma de ambas.

A continuación se muestra un video del programa corriendo:

video