Proyecto alojado en:
Empezó como proyecto fin de carrera de Ingeniería Electrónica en la Universidad de Granada, programado con Matlab para entorno Microsoft Windows. Al poco tiempo de presentarlo, lo publiqué en http://www.pandreonline.com en una sección que me abrió http://www.pandreonline.com/p_busto , en ella puse a libre disposición el código fuente y una versión compilada del programa, el problema es que se necesita el Matlab para poder ejecutarlo, tanto en versión 'fuente' como ejecutable, ya que neceista unos 10MB de librerías compartidas (dll's) que no puedo publicar en internet. Es por ello que me decidí ha hacer las modificaciones pertinentes para que funcione correctamente en octave.
Diferencias entre las versiones de Matlab y Octave.
En Octave se ha eliminado la interfaz gráfica de Usuario
Se ha cambiado ligeramente el archivo de configuración para permitir que sea editable desde MS-Windows y cualquier otro Unix, así como un poco más de flexibilidad para configurar y agregar comentarios (Estilo XML).
Se ha eliminado el método de análisis basado en la autocorrelación con desplazamiento (pendiente de implementación)
Se incluyen 2 versiones de autocorrelación, una implementada por mí y otra incluida en Octave, pero sólo en las ultimas versiones, así que dejé mi implementación; dan los mismos resultados, quizá la que viene de serie en octave sea más rápida.
Se ha eliminado el método de análisis basado en el algoritmo SIFT, (aquí hay un texto en inglés (.pdf)) ya que bajo Matlab no dió los resultados esperados (con instrumentos, sí lo hizo con la voz) y no creo que merezca la pena la reimplementación de las funciones necesarias.
Aquí solamente incluyo el diagrama del algoritmo principal.
Acceso a toda la documentación.
Presentación corta y ejemplos.
Instrucciones de uso muy fáciles: Hay que entrar en octave y ejecutar el script wave2mid.m, o bien descomprimir y ejecutar el archivo wave2mid.m si ya has instalado octave en tu sistema, éste llama a todos los demás o incluso al octave. Conviene retocar el archivo config.pbg para cambiar los parámetros según nuestras necesidades. Estoy trabajando en mejorar la interfaz, pero sigue siendo en modo texto.
La principal, es la velocidad, es muuuy lento (tanto el octave como el matlab son muy lentos para ejecutar bucles for, no se me ocurre como eliminarlo).
Otra limitación es que solo convierte archivos wav, no lee otro tipo de archivos (au, mp3, ogg...). Quiero mejorarlo, pero de momento no es una de las prioridades.