jueves, 30 de enero de 2014

[INVESTIGACIÓN] Hipótesis y objetivos

Para esta semana se encargó realizar una versión inicial de la hipótesis y objetivos de la tesis.

Hipótesis

Para poder formular mi hipótesis fue necesario observar el panorama en el cual centré mi tema, en este caso formulé preguntas que me ayudaron a ver el problema:
  • ¿Qué me llevó a elegir el tema?
  • ¿Qué propones para el tema?
  • ¿Para qué serviría la propuesta?
Recordando un poco el tema de mi tesis es "Sistema de Mezclado de Audio basado en Reconocimiento de Patrones Sonoros" por lo que pretendo trabajar con la manipulación de archivos de sonido así que la respuesta de la primer pregunta es sencilla; he tenido experiencias con reproductores multimedia y he llegado a la conclusión de que se puede hacer algo más con ellos.

Para la segunda pregunta la propuesta es una herramienta que mezcle las pistas de audio de tal forma que se produzca una reproducción sin pausas entre pistas.


Sabiendo que mi meta principal es crear una herramienta o al menos la base de ésta, puedo saber que tal herramienta será para que cualquiera pueda usarla para disfrutar de una mejor experiencia de reproducción de audio, lo que contesta la tercera pregunta.


Ahora, en mi introducción (aún temporal a este momento) menciono que existe un momento cuando escuchamos música en que nos gustaría que la pista de audio actual no acabara. Lo menciono como un estado de armonía, que sería algo como un momento de paz y concentración.


Para formular la hipótesis me hice la siguiente pregunta:

¿Como evitar la interrupción de la sensación que produce escuchar una pista de sonido?

Mi hipótesis formulada sería:

Hay que evitar la interrupción de la pista para dar una sensación de continuidad, pues las personas prefieren escuchar una sola melodía que siga un ritmo sin interrupción a escuchar varias melodías con variaciones en su ritmo. 

Objetivos

Una vez que tengo la hipótesis puedo pasar a formular los objetivos. Los objetivos hay de dos tipos, los generales y los específicos. 

El objetivo general es aquel que describe la finalidad del proyecto y la propuesta que se hace. Los objetivos específicos dan a conocer lo que se tendrá que realizar antes de poder llegar al objetivo principal.


En este caso el objetivo general es la creación de una herramienta de análisis de patrones de sonido para una reproducción de medios sin pausas.


Los objetivos específicos son:

  • Obtener datos sobre el ritmo de una pista para su comparación. Con estos datos se puede buscar una pista candidata a ser reproducida si presentan ritmos similares.
  • Lograr una mezcla de fragmentos de sonido cuyos ritmos tienen un gran nivel de similitud. De esta manera lograr acoplar el inicio de una pista y el final de otra de tal manera que se produzca una sola pista.
Avances de proyecto
Durante esta semana trabajé en crear un analizador sonido.

Utilicé la librería pyaudio para poder reproducir el archivo wav desde el programa y pylab para graficar los fragmentos de sonido.


Durante la reproducción de sonido la ventana muestra una gráfica que muestra los fragmentos reproducidos conforme avanza la pista.


Con los fragmentos obtengo las ondas que grafico las cuales me servirán posteriormente para analizarlas y obtener datos importantes como la velocidad rítmica que me será muy útil a la hora de comparar fragmentos entre pistas.

Liga al repositorio del proyecto: https://github.com/victoralex911/proyecto-tesis


Referencias:

sábado, 18 de enero de 2014

[INVESTIGACIÓN] Planteamiento del tema y preparación de la plantilla

En este último semestre seleccioné el módulo de investigación, en el cual se llevará acabo un proyecto de investigación científica y/o desarrollo tecnológico con el cual se pretende realizar una tesis de licenciatura para la acreditación de la materia.

Todo esto bajo la supervisión de la Dra. Elisa Schaeffer.

Durante 16 semanas se llevará acabo una reunión inicial y una reunión final, cada una con un valor del 10% de la calificación correspondiente a la semana, dando el 20% de la calificación total. Durante cada semana se realizará la parte que corresponde al avance algorítmico (40%) y también al avance escrito (40%). Dando un total de 160 puntos, de los cuales se deben acreditar 112 puntos correspondientes al 70% de la calificación.

Para acreditar el módulo es necesario tener 3 cosas:
  • Blog: En el cuál se reportan los avances semanales.
  • Dropbox: En el que se tiene una carpeta compartida con los archivos LaTex correspondientes a la tesis en desarrollo.
  • Repositorio: En donde se encuentra el código del proyecto.

Evidencia de la primera semana
La primera reunión se llevó acabo el día viernes 17 de enero del 2014 en el cual se establecieron los requicitos necesarios para la primera semana.

Los requicitos són:
  • Asistencia a la primera reunión, creación del blog, repositorio y la carpeta copartida en Dropbox.
  • Subir al repositorio el primer avance como prueba con código.
  • Generar un esqueleto con los archivos LaTex de lo que será la tesis.
  • Asistencia a la reunión final.

Acerca de mi proyecto de tesis
Tuve varias opciones para un tema de tesis, despues de revisar que me convenía más decidí por el siguiente tema tentativo:

"Sistema de Mezclado de Audio basado en Reconocimiento de Patrones Sonoros"

Motivación
La mayoría de las personas escuchan música para entretenerse o relajarse mientras realizan sus actividades diarias. En cualquier lugar, siempre hay alguien escuchando música ya sea en su dispositivo móvil, computadora, en su auto, etc.

Muchas personas suelen escuchar música producida por DJ’s que generalmente se trata de mezclas de sonidos electrónicos producidos con sintetizadores. Otra característica es que su música generalmente es sin pausa, esto significa que mezclan varias pistas de audio utilizando ya sea técnicas como el Crossfading que consiste en fundir sonidos para dar continuidad a la pista, o bien utilizan una mezcla de sonidos que sigan el ritmo de la pista para que la música continue sin pausa.

Muchas aplicaciones suelen incluir un crossfade manual en el que se le configura un tiempo en el cual sucede una fundición entre la pista actual y la nueva pista de audio, disminuyendo gradualmente el volumen de la primera y aumentando el de la segunda, durante ese tiempo se corre un algoritmo de reconocimiento de patrones que trata de encontrar los primeros segundos de sonido de la segunda pista en los últimos segundos de la primera para dar continuidad. Un efecto agradable en pistas de audio grabadas en conciertos, pero una no siempre buena transición en música producida en estudios.

Meta
La meta de mi proyecto para tesis consiste en la creación de una herramienta que reconozca patrones similares en pistas de audio proporcionadas. Con tal herramienta y dependiendo de las librerías existentes se puede lograr crear aplicaciones que logren crear una transición entre pistas sin pausa para una mejor experiencia de sonido, o aplicaciones que creen mezclas de forma inteligente basándose en muestras de audio proporcionadas por el usuario.

Como lenguaje de programación decidí utilizar python por su facilidad de uso que me permitirá un desarrollo rápido y claro. Siempre con la filosofía de que quien sabe programar sabe hacerlo en cualquier lenguaje o plataforma, pues la intención es llevar esto a varias plataformas ya sea plataformas móviles o de escritorio.

Se utilizarán tentativamente las herramientas incluidas en python tales como:
  • audioop: Permite manipular información de audio.
  • wave: Una interface para el formato WAV.
  • ossaudiodev: Permite acceder a los dispositivos de sonido en sistemas Linux

Entre otras herramientas. Tambien se planea utilizar herramientas que la comunidad ha creado, pues algunas de estas librerías facilitarían mi tarea. Ya se mencionarán en siguientes entradas conforme se vayan implementando.

Trabajos relacionados
Virtual DJ: Un programa muy conocido que sirve para hacer mezclas, tiene una función llamada “Automix” que consiste en mezclar automáticamente 2 pistas ajustando el ritmo de la segunda pista para que concuerde con la primera y reajustando su ritmo de nuevo para regresarlo a su estado original, logrando un efecto de transición suavizado entre pistas.

Muxica: Una aplicación para iOS que utiliza un sistema inteligente para generar mezclas al estilo de la radio en forma de una transición suave. No puede realizar estas funciones con archivos protegidos con DRM.

Spotify: Todas las versiones de Spotify incluyen un ajuste de crossfade manual en el cual se analiza el audio para obtener una muestra que coincida entre la finalización de la primera pista con el inicio de la segunda. Perfecto para canciones grabadas en conciertos pero no muy bueno para canciones de estudio. Un valor de tiempo bajo o alto podría causar que no se consiga el efecto deseado.

Liga al repositorio: https://github.com/victoralex911/proyecto-tesis