¿Cómo funciona el reconocimiento de música?

Del usuario de Reddit janismac:
“Lo explican en su sitio web

. Tienen una gran base de datos de muestras de audio que está etiquetada (título, autor, etc.). Pero no puede comparar directamente su zumbido y el canto con esa base de datos, no encontrará nada, porque para que eso ocurra, su zumbido ya debería estar en la base de datos EXACLEMENTE mientras lo tarareaba. (E incluso entonces es poco probable debido al ruido y la compresión de audio).
En su lugar, aplica el aprendizaje automático (ML breve). ML es esencialmente una combinación de cálculo matemático inteligente y fuerza bruta, que le permite extraer información “útil” de sus datos (audio). Es útil entre comillas porque esa información lo ayuda a resolver el problema de la coincidencia de datos, por lo general no ayuda a darle una comprensión intuitiva de lo que está sucediendo.
Te explicaré los conceptos básicos de cómo configurarías este tipo de problema de aprendizaje automático. Si quieres aprender más, tendrás que cavar más profundo y estar preparado para manejar un poco de matemática desafiante. (PM por si acaso)
Primero, configura dos bases de datos, una que contiene la música etiquetada (título, autor, etc.), la otra que contiene grabaciones de personas tarareando y cantando que también están etiquetadas con las canciones que se supone que son. Para ser efectivas, estas bases de datos deben ser lo más grandes posible. Esta suele ser la parte más tediosa y molesta de ML.
En segundo lugar, define un modelo. Un modelo es básicamente una regla de computación (posiblemente compleja), también conocida como algoritmo. El modelo toma el audio, que es solo una larga lista de números y un conjunto de parámetros (también una lista de números) y calcula características (otra lista de números). Encontrar un modelo útil es uno de los desafíos clave en ML.
Un modelo es determinista, para una combinación dada de datos y parámetros siempre obtienes las mismas características. Esas características revelarán información característica sobre los datos (audio). Por ejemplo, BMP, ritmo, tono, pero también aspectos más complicados, que a menudo desafían una comprensión intuitiva.
Tercero, usted define un puntaje o gol. Haces pares de zumbidos y canciones y calculas sus características (del modelo). Si se supone que el zumbido y la canción son los mismos (según las etiquetas de la base de datos) y sus características son muy similares, la puntuación aumenta. Si se supone que son canciones diferentes, y sus características son similares, la puntuación baja.
Por último, le dice a una (super) computadora que juegue con los parámetros de su modelo para maximizar el puntaje.
Ahora, si tiene un nuevo zumbido de un usuario, calcule sus características y compare con las características de la base de datos, para encontrar posibles coincidencias (aquellas con características similares).
Descargo de responsabilidad: Sé que esto está algo simplificado y hay diferentes enfoques para este problema. Pero no quería escribir una publicación de más de 10k palabras.
TL; DR Tienen grandes bases de datos de música y gente tarareando y usan algunas matemáticas sofisticadas y una potencia informática enorme “.

Del usuario de Reddit milax:
“Shazam se explica en este documento (ver también aquí)
A partir de la muestra que les envía, Shazam crea una lista de números usando un algoritmo que desarrollaron y lo compara con los resultados del mismo algoritmo aplicado a una gran base de datos de canciones. Esta representación es mucho más compacta que las propias canciones, y es robusta para muchas perturbaciones (es decir, agregar ruido, usar un ecualizador, etc., no cambiará mucho la representación que usaron. Existe un pequeño riesgo de que dos diferentes las canciones tendrán la misma representación, pero esto es poco probable).
Esta representación se obtiene al encontrar los picos del espectrograma del extracto. El espectrograma es la representación de la señal en función del tiempo y la frecuencia (un poco como una partitura musical). No es invertible, esto significa que desde esta representación, no puede recuperar la señal original.
Shazam no identifica realmente una canción, sino un sonido. No identifica desde el sonido en sí el artista, el nombre de la canción, etc., sino solo mediante la comparación con una base de datos. Esto significa que no podrá identificar una versión de una canción, si la versión no está en su base de datos “.

    Ray es (desafortunadamente) correcto. Estos algoritmos dependen de la agrupación sónica y están muy lejos de comprender realmente lo que hay en la música (notas, acordes e instrumentos). Por ejemplo, si les dio un clip de audio tocando una canción en el piano, no podrían identificar qué canción.

    Celemony hizo un producto (Melodyne DNA) que está a años luz de la competencia y que en realidad puede descifrar todas las notas en una canción complicada o en un trabajo orquestal. No funciona a la perfección, pero funciona, lo cual es un gran hito sin precedentes, un logro increíble digno de noticias internacionales (lástima que a nadie le importe, aparte de los músicos). En manos del público, un algoritmo de este tipo podría usarse para una variedad de propósitos enormemente útiles, incluyendo averiguar qué canciones suenan más a qué canciones, qué clichés melódicos o progresiones de acordes son las más populares en qué culturas (estoy seguro 1 5 3 se marcará como la melodía más cliché en la historia de la música pop estadounidense), y / o una herramienta de control antiplagio para que los compositores vean si su nueva melodía es “de algo” o no. Sin mencionar quizás incluso la capacidad de entrenar a un “compositor de inteligencia artificial” utilizando todos estos datos valiosos. Desafortunadamente, su tecnología es patentada, por lo que todavía estaremos atrapados en la edad oscura de procesamiento de música en los próximos años, teniendo solo herramientas superficiales como SoundHound a nuestra disposición.