Una IA que lee música y la toca al piano. Machine Learning usando SUSE Linux

Un proyecto en el que una inteligencia artificial es capaz de leer una partitura y «tocarla» al piano todo eso usando SUSE Linux Enterprise Server y openSUSE

La empresa SUSE una vez al año, permite a sus ingenieros, que dejen de lado sus obligaciones durante una semana y se dediquen a desarrollar y llevar a cabo un proyecto que tengan en mente.

Es lo que se conoce como Hack Week y en donde en las ediciones que han celebrado, en ocasiones se han desarrollado proyectos que más adelante han tenido entidad propia.

En otros casos los proyectos son retos personales de los ingenieros de SUSE, que quieren explorar otras áreas o unir varias de sus aficiones. Como el caso que veremos a continuación.

Este proyecto del HackWeek de SUSE está desarrollado por Lin Ma un ingeniero que trabaja en Virtualización dentro de SUSE y que en su proyecto ha aunado el espíritu hacker, maker y la música.

Esta es una traducción/adaptación del artículo original escrito en inglés por Chabowski y publicado en el sitio web de SUSE.

Introducción

Lin Ma ha decidido aunar en su proyecto para HackWeek, a la música y»machine learning» basado en SUSE Linux Enterprise Server. Una especie de Internet de las cosas (IoT) basado en productos de SUSE y openSUSE.

El proceso de cómo leer notas en una partitura y cómo tocarlas en un instrumento, puede ser muy complicado y tedioso.

El objetivo de este proyecto, es que «la máquina» pueda «leer» una partitura a partir de una imagen y después automáticamente traducirla y poder tocarla en un instrumento musical físico, en este caso un órgano eléctrico.

Componentes del proyecto

Para llevar a cabo el proyecto se necesitarán los siguientes elementos:

Cada solenoide puede ser activado por un pin GPIO de la  Raspberry Pi 3. Sin embargo cada modelo de la solenoide necesita unos 500 miliamperios para poder funcionar. Esto está fuera de las posibilidades de la Raspberry Pi 3, por eso se utilizan los chips ULN 2803 para activar los solenoides.

Pasos a seguir

Estos son los pasos a seguir:

Paso 1: Utilizar la red neuronal para la extracción de características de símbolos musicales de las imágenes de partituras que sirven como entrada.

Paso 2: Utilizar Optical Music Recognition (OMR) para reconocer las notaciones musicales obtenidas de la red neuronal y guardar los resultados en un archivo XML.

Paso 3: Recibir el archivo XML, mediante una red TCP y analizarlo. Y después activar los solenoides adecuados para tocar la partitura al piano.

Limitaciones del proyecto

Es un proyecto de una semana, por lo que no pueden abarcarse y poder tocar todas las notas del piano. Debido a limitaciones de los elementos físicos, el piano solo podrá tocar 3 octavas, y no podrá tocar semitonos (las teclas negras de los pianos)

Tampoco se ha investigado en cómo reducir el ruido que producen los propios solenoides cuando son activados, a la hora de tocar las notas.

Se ha escogido un servidor TaiShan para correr la red neuronal, por ser más rápido en el proceso. Para una misma imagen de partitura, el analizarla en el servidor TaiShan duraba 30 segundos, mientras que hacerlo en una Raspberry Pi 3 duraba 8 minutos.

Resultados

Después de todo, el piano inteligente era capaz de tocar algunas melodías como estas, después de analizar sus respectivas partituras (vídeos con enlaces a YouTube)

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.