Está en la página 1de 4

UNIVERSIDAD NACIONAL DE COLOMBIA.

SEDE MANIZALES 1

Proyecto final
Identificador de audio.
Departamento de Ingenierı́a Eléctrica, Electrónica y Computación
Docente: Andrés Marino Álvarez Meza
Señales y Sistemas.
Marı́a Alejandra Giraldo, Cód 817021.
Mario Andrés Castellanos, Cód 217017.
Alejandro Villegas Ruiz, Cód 217066.
5 de Agosto 2019

Abstract—This report shows the entire process of building and


implementing an audio identificator program that has the ability
to compare and distinguish a selected audio from a database,
working with both the transform and the Fourier spectrum,
as well as wants to make known specific data of the project,
experience and knowledge acquired during this and finally,
obtain the expected results and consistent and clear conclusions
regarding the development of the project.
Index Terms—Transformada de Fourier, Espectro de Fourier.

I. I NTRODUCCI ÓN
Este proyecto se basa en una aplicación llamada ”Shazam”
que permite la identificación de música, en donde al analizar Fig. 1. Sistema de identificación de shazam
la canción se muestra en pantalla los datos del artista, álbum,
tı́tulo, género y demás datos de la misma. II. O BJETIVO GENERAL
Shazam identifica las canciones a partir de huellas digitales de Desarrollar un programa capaz de reconocer si una canción
audio basadas en el espectrograma, donde cataloga las huellas pertenece al artista que fue escogido mediante un resultado
digitales de audio en una base de datos. numérico, además de desarrollar habilidades con la progra-
mación y técnicas vistas en el curso de señales.
El usuario graba una canción que esté escuchando durante
un tiempo de diez segundos y la aplicación crea una huella III. M ARCO TE ÓRICO
digital de audio basada en algunos de los puntos de anclaje • Transformada de Fourier: Es una transformación
del espectrograma simplificado y la zona objetivo entre ellos, matemática empleada para transformar señales entre
entonces por cada punto de la zona de destino, se relizaran el dominio del tiempo (o espacial) y el dominio de
una serie de procesos matemáticos hasta que por medio de la frecuencia, que tiene muchas aplicaciones en la
la frecuencia y tiempo el programa logra distinguir de que fı́sica y la ingenierı́a. Es reversible, siendo capaz de
canción se trata. transformarse en cualquiera de los dominios al otro.
El propio término se refiere tanto a la operación de
transformación como a la función que produce.
Una vez hecha la huella digital de audio ésta es enviada al
servicio Shazam y este inicia la búsqueda de coincidencias • Transformada rápida de Fourier: La Transformada
en la base de datos durante diez segundos, si se encuentra rápida de Fourier, conocida por la abreviatura FFT (del
devuelve la información al usuario, en caso contrario devuelve inglés Fast Fourier Transform) es un algoritmo eficiente
un error. que permite calcular la transformada de Fourier discreta
(DFT) y su inversa. La FFT es de gran importancia
Basado en lo anterior se pretende realizar un proyecto el cuál en una amplia variedad de aplicaciones, desde el
funcione a modo de un Shazam con una banda o cantante en tratamiento digital de señales y filtrado digital en general
especı́fico que fuese seleccionado por nosotros y ası́ mismo a la resolución de ecuaciones en derivadas parciales o los
utilizando los métodos vistos en clase y la programación algoritmos de multiplicación rápida de grandes enteros.
básica; se pudiese comparar frecuencias para que el programa Cuando se habla del tratamiento digital de señales, el
determine si la canción pertenece al artista seleccionado. algoritmo FFT impone algunas limitaciones en la señal
UNIVERSIDAD NACIONAL DE COLOMBIA. SEDE MANIZALES 2

y en el espectro resultante ya que la señal muestreada y distancia euclidea entre el vector de datos del segmento
que se va a transformar debe consistir de un número de a comparar y cada una de las filas de la matriz.
muestras igual a una potencia de dos.
• Finalmente, con la función np.argmin se logra sacar la
• Jupyter Notebook: En adelante Jupyter, es un entorno posición en la cual está la distancia euclidea más corta, de
de trabajo interactivo que permite desarrollar códigos manera que si esta posición está entre 1 y 30, el segmento
en Python de manera dinámica, a la vez que se pueda a comparado pertenecerá al artista seleccionado, y si está
integrar en un mismo documento tanto bloques de entre 31 y 60, no lo será.
código como texto, gráficas o imágenes. Es utilizado
ampliamente en análisis numérico, estadı́stica y machine En la siguiente imagen se muestra una pequeña parte de la
learning, entre otros campos de la informática y las matriz creada con las frecuencias que se obtienen utilizando
matemáticas. la transformada de Fourier para obtener el espectro, estos
datos tomados para cada grabación de diez segundos se
IV. P ROCESO DE CONSTRUCCI ÓN DEL PROGRAMA guardan en las columnas, y en las filas se toma la frecuencia
respecto al numero de muestras de la canción; por ende la
Para realizar la construcción de un programa como el matriz posee unas sesenta columnas, una para cada canción
planteado en la introducción y que se pueda tener un resultado y aproximadamente doscientas veinte mil filas.
óptimo como el que se espera, es importante seguir una serie
de pasos:

• Primero se seleccionó a Michael Jackson como el artista


hacı́a el cual el proyecto iba a ser enfocado.

• Se descargaron en total veinte canciones, de las cuales


diez eran del artista seleccionado y las otras diez fueron
de diferentes artistas en cierta variedad de géneros.

• De cada canción se escogieron los tres segmentos más


caracterı́sticos según criterio propio. Cada segmento
tiene una duración de diez segundos, los cuales fueron
sacados y cortados desde un programa de computador
externo, pero se dificultaba la precisión ya que el
programa no los cortaba exactos, es decir, no eran diez
segundos, sino una aproximación al número, el cual
dificultarı́a la realización del programa. Fig. 2. Matriz de datos obtenida

En total se sacaron sesenta segmentos, de los cuales,


treinta eran del artista y los otros treinta de la otra
variedad.

• Con los segmentos ya seleccionados, se procedió a


realizar la base de datos con una programación de
ciclo for en el cual se cortarı́a cada segmento a cinco
segundos, tanto para que los segundos quedaran precisos
como para que salieran menos datos y fuera más fluido
el programa, de manera que generara una matriz la cual
posteriormente se guardara en una hoja de Excel.

Esta matriz tiene en cada una de sus filas los segmentos


transformados a frecuencia que se pudo lograr con
la transformada de Fourier que fue usada en el
código, estas filas tendrı́an la información de los dos Fig. 3. Espectro obtenido de una canción
canales en frecuencia concatenados por la función flatten.

• Se diseñó un código exclusivo para un segmento


adicional. Este segmento serı́a el que quisiéramos
comparar con la base de datos y utilizando la función
distance.cdist de la librerı́a scipy.spatial, se halları́a la
UNIVERSIDAD NACIONAL DE COLOMBIA. SEDE MANIZALES 3

Cuando se produce cualquier sonido, nosotros pode-


mos oı́rlo porque las partı́culas que se encuentran entre
nosotros y la fuente de ese sonido se mueven, vibran.
Cuando se dice que estas partı́culas se mueven, nos
referimos a que generan ondas, que van de un lado para
otro. La cantidad de veces que esas partı́culas se mueven
de un lado para otro se denomina frecuencia.

Pues la espectrografı́a, en este caso, se dedica a medir


la frecuencia de los sonidos en un determinado espacio
de tiempo. Cada sonido tiene una frecuencia diferente en
cada momento, y eso nos permite diferenciar, sobre un
Fig. 4. Varios espectros comparados de las primeras canciones espectrograma, qué sonidos están sonando.
¿Cómo se sabe qué canción está sonando? Comparando.
En realidad, es como tomar una radiografı́a para
luego compararla con otras radiografı́as de sonidos que
V. E STADO DEL ARTE
tenı́amos ya guardadas, pudiendo saber ası́ cuál de todas
coincide con esa. Pues ası́ es exactamente como funcio-
En esta sección se desea relizar una compilación de nan Shazam y otras aplicaciones.
resultados de otras investigaciones que se ha realizado sobre
el tema escogido. Se trata de establecer qué se ha hecho
recientemente y a su vez dar a conocer las alternativas que se
pueden usar para perfeccionar el programa realizado:

• La mayorı́a del programa está construido en base a los


conocimientos adquiridos durante el curso de señales y
sistemas; aplicando la tranformada de Fourier a varias
señales; como lo son las canciones con las cuales se
puede lograr obtener la matriz de datos y los espectros
de las mismas.
Fig. 5. Espectrograma obtenido por Shazam
Por otro lado el resto del programa se logró con
programación básica, ya vista en cursos anteriores,
utilizando ciclos ”for”. Otro aspecto que es muy importante a tener en cuanta a
la hora de crear un programa de este tipo es el algoritmo
• Realizando investigaciones sobre mejoras que pueden que utilizan para comparar canciones. Un algoritmo, en
hacerse al programa, existe una técnica llamada ”PCA” realidad, no es más que una manera de realizar un
donde sus siglas en español traducen ”análisis de procedimiento. El algoritmo de Shazam debe estar en
componentes principales”, esta es una buena idea a constante mejora. ya que deben trabajar para conseguir
implementar y que puede mejorar el programa ya que que el sistema siga un camino que le permita encontrar
consiste en reducir el número de dimensiones o número la canción aun más rápido.
de variables de un conjunto de datos intentando, a su
vez, conservar la mayor cantidad de información. Pese a que debe comparar el espectrograma con la base de
datos, donde hay millones y millones de canciones, por
Por lo que nos hubiese gustado implementar esta técnica eso debe hacerse óptimo. es por esto que el algoritmo
ya que es extremadamente útil como análisis exploratorio es uno de los aspectos principales y hay varias técnicas
de datos, cuando se tiene demasiada información, muchas informáticas para mejorarle.
dimensiones o demasiadas variables como en el caso
de la frecuencias de cada segmento de canción y no VI. C ONCLUSIONES
se puede analizar correctamente la información; para • Para que este programa pudiese ser más conciso y
al momento de emplearla poder reducir la frecuencia a semejante al ”Shazam”, en lugar de comparar las
los rangos más importantes, es decir, en las partes mas distancias euclidias entre datos, se pueden comparar las
caracterı́sticas de la canción y ası́ poder optimizar el frecuencias obtenidas y buscar la semejanza entre de la
programa. base de datos y la canción que se ingresa para identificar.

• Otra técnica usada es la espectrografı́a, o espectroscopia, • En este proyecto se logró apreciar, tanto el uso como
es decir, al conjunto de conocimientos relativos al análisis utilidad, de la transformada de Fourier en una aplicación
espectroscópico. real y de gran uso en la actualidad, dejándonos con las
UNIVERSIDAD NACIONAL DE COLOMBIA. SEDE MANIZALES 4

perspectivas altas sobre los temas teóricos aplicados a


la vida cotidiana, que se vieron durante el curso en la
materia de señales y sistemas.

• Considerando el avance tecnológico en la actualidad es


importante que el estudiante aprenda a realizar programas
de este tipo, donde vea la utilidad y comprenda el
transfondo de algunas aplicaciones virtuales interesantes
porque además le permiten ser creativo e innovador a la
hora de realizar el algoritmo y ver el desarrollo de su
programa para agregarle más funciones o buscar mejores
técnicas que le optimicen el desarrollo del programa
realizado.

R EFERENCES
[1] Transformada de Fourier.
https://es.wikipedia.org/wiki/Transformada de Fourier

[2] Transformada rápida de Fourier.


https://es.wikipedia.org/wiki/Transformada r%C3%A1pida de Fourier

[3] Jupyter Notebook.


https://www.adictosaltrabajo.com/2018/01/18/primeros-pasos-con-
jupyter-notebook/

[4] Shazam aplicación.


https://es.wikipedia.org/wiki/Shazam (aplicaci%C3%B3n)

[5] Análisis de componentes principales con Python.


https://www.pybonacci.org/2012/10/08/analisis-de-componentes-
principales-con-python/

[6] Estado del arte.


https://es.slideshare.net/yuli27g/estado-del-arte-seminario

[7] Cómo funcionan las apps que reconocen canciones, como Shazam.
https://androidayuda.com/2013/04/28/como-funcionan-las-apps-que-
reconocen-canciones-como-shazam/

También podría gustarte