Cómo saber el nombre de una canción ( y/o su autor) tan solo tarareándola


Actualmente, hay varias aplicaciones y servicios en línea que nos permiten identificar canciones tarareándolas o cantándolas. Ciertamente aunque en este campo se ha avanzado de forma espectacular, los resultados pueden diferir mucho según nuestro grado de conocimiento complicidad con el tema musical en cuestión.

Photo by Tima Miroshnichenko on Pexels.com

Veamos dos de las opciones mas habituales: Shazam y Google.

Shazam

Uno de los más populares es Shazam, que tiene una función llamada «Shazam en modo manos libres». Aquí vemos cómo puede usarlo:

  1. Descargue la aplicación: Si aún no tiene la aplicación Shazam, puedes descargarla desde la tienda de aplicaciones de su dispositivo (iOS, Android).
  2. Abre Shazam: Inicie la aplicación en tu dispositivo.
  3. Haga clic en el ícono del micrófono: En la aplicación, verá un ícono de un micrófono en la parte central de la pantalla. Haga clic en él para activar la función de reconocimiento de canciones.
  4. Tararee o canta la canción: Una vez que el micrófono esté activado, tararee o cante la canción que quiere identificar. Trate de hacerlo lo más claro posible para mejorar las posibilidades de obtener una coincidencia precisa.
  5. Espere la identificación: Shazam procesará el sonido y buscará en su base de datos para encontrar la canción que coincida con su tarareo o canto.
  6. Obtenga los resultados: Después de unos segundos, Shazam mostrará los resultados, incluyendo el nombre de la canción, el artista y, a menudo, un enlace para escuchar o comprar la canción en línea.

Google

Otra opción popular es el Asistente de Google. Puedes abrir la aplicación de Google en tu dispositivo y decir «Ok Google, ¿Qué canción es esta?» y luego tararear o cantar la canción. Google intentará identificarla y te mostrará los resultados. En efecto este esta útil función de reconocimiento de canciones, está integrada en el buscador de Google y puede activarse de dos maneras sencillas:

  • La primera opción implica ir a la página principal de Google y hacer clic en el icono del micrófono que se encuentra en la barra de búsqueda. Al hacerlo, aparecerá una ventana denominada «Buscar Canción». Solo necesitas pulsarla y comenzar a tararear o silbar la melodía que buscas.
  • La segunda opción te permite activar la función hablando directamente con el Asistente de Google. Solo tienes que decir «Ok Google, ¿Cuál es esta canción?» y luego tararear, cantar o reproducir la canción que te interesa. Esta capacidad es posible gracias a que cada melodía tiene un ritmo o tono único. Gracias al entrenamiento avanzado que la compañía aplicó a su inteligencia artificial, ahora es capaz de identificar la canción en tan solo 15 segundos.

De esta manera, con un sencillo «nanana, nanana, nanana, nanana…», el asistente puede reconocer el ritmo y tono, encontrando exactamente la canción que tiene en mente. Es cierto que este buscador no garantiza un cien por ciento de precisión al buscar la canción que desea. Sin embargo, esto no es culpa suya, ya que hay millones de canciones en Internet y la calidad del tarareo también es un factor a considerar. Ciertamente esta función utiliza un algoritmo de reconocimiento de patrones para identificar la canción, por lo que es más efectiva si tarareas o silbas la melodía principal de la canción de manera clara y distintiva. Además, esta función puede no ser perfecta y puede que no funcione para canciones menos conocidas o interpretaciones muy particulares del usuario.

Por tanto, para buscar una canción en Google tarareándola o silbándola, puede utilizar la función de búsqueda por voz en la aplicación móvil de Google o el navegador Chrome en tu dispositivo.

En el caso de estar usando un smartphone (Android/Ios) siga estos pasos:

En la Aplicación de Google

  1. Abra la aplicación de Google en su dispositivo.
  2. Haga clic en el icono del micrófono o di «Ok Google» para activar la búsqueda por voz.
  3. Tararee o silbe la canción durante unos segundos.
  4. Espere a que Google procese la información.
  5. Google intentará identificar la canción basándose en tu tarareo o silbido.

En el Navegador Chrome

  1. Abra el navegador Chrome en su dispositivo móvil.
  2. Haga clic en el icono del micrófono en la barra de búsqueda o di «Ok Google» para activar la búsqueda por voz.
  3. Tararee o silbe la canción durante unos segundos.
  4. Espera a que Google procese la información.
  5. Google intentará identificar la canción basándose en tu tarareo o silbido.

En el caso de estar usando un ordenador (necesitara un micrófono)

  1. Abra la pagina de google en su navegador.
  2. Haga clic en el icono del micrófono en la barra de búsqueda
  3. Permita acceder al micrófono desde el navegador
  4. Tararee o silbe la canción durante unos segundos.
  5. Espere a que Google procese la información.
  6. Google intentará identificar la canción basándose en su tarareo o silbido.

Analizador de espectro con ESP32


El analizador de espectro basado en IoT / web de Mark utiliza un único microcontrolador ESP32 para crear hasta 64 canales para visualizar diferentes bandas de audio. Sólo utiliza 6 componentes externos para funcionar, y no tiene Leds o pantallas LCD o TFT. En su lugar, utiliza una página web HTML para mostrar todas las barras de frecuencia. Otros aspecto interesante es dado que el ESP32 cuenta con dos cores, en esta implementación funcionan ambos núcleos del procesador; el núcleo 1 se utiliza para ejecutar el bucle principal del programa, mientras que el núcleo 0 se utiliza para actualizar constantemente los datos de la web. Aunque el programa en sí mismo hace posible que se ejecute en un solo núcleo, el uso de ambos núcleos dará lugar a un mejor rendimiento.

¡Esto es tan fácil de construir y programar, que tienes que probarlo! Ni siquiera necesitará instalar el software de Arduino; sólo tiene que usar el programador web para cargar el archivo binario precompilado.

En efecto Mark nos presenta este gran proyecto que quiere compartir: un analizador de espectro de audio que no es complejo con un Hardware complicado, porque en la implementación solo vamos a usar un controlador esp32 con un puñado de componentes !y el resultado será absolutamente increíble!
Así que si tiene curiosidad por saber cómo puede construir su propio analizador de espectro sin gastar más de unos pocos dólares, entonces este proyecto merece la pena sobre todo cuando comprueba en el esquema de más abajo como no ha usado más sólo 10 componentes o menos.


Sobre el esquema veremos cómo programarlo y en cuanto a la programación veremos un truco especial bajo la manga, porque ni siquiera tendremos que instalar el entorno Arduino (a menos que quiera hacerlo
primero).

Antes de continuar veamos un poco sobre el audio y la transformación rápida de Fourier

EXPLICACION DEL FUNCIONAMIENTO


Para entender la forma en que escuchamos el audio simplificaremos las cosas mirando a un solo
sonido, por ejemplo, una onda sinusoidal pura de 440Hz que la oiríamos como un tono simple aunque la mayoría de los sonidos se componen de una mezcla de frecuencias.
SI agreguemos otra de 523 Hz usted puede escuchar claramente dos diferentes. Sin embargo, lo que realmente no son dos sonidos individuales, sino con dos sonidos procedentes del altavoz oirá la suma de ambos sonidos . Esto significa que a veces ambos sonidos se suman dando como resultado una mayor amplitud, mientras que otras veces los sonidos tienden a que el resultado sea una señal de aspecto casi aleatorio, aleatoria que no tiene ningún sentido y que incluso empeora en cuanto añadimos más frecuencias.

Por ejemplo, agreguemos 587 Hertz, ahora puede escuchar tres sonidos individuales. Estos sonidos individuales de nuevo los está escuchando en una señal lejos de la onda sinusoidal pura. Si tomamos un vistazo recuerde que la música o la voz o la mayoría de los sonidos son en realidad una combinación de frecuencias que interactúan resultando el sonido que escucha.

Ahora probablemente se esté preguntando cómo va a ayudarnos eso a construir un analizador de espectro. Pues bien, a la señal de audio, estamos viendo una mezcla de varias frecuencias individuales, estas frecuencias precisamente nos van a servir para construir un analizador de espectro ,pues no estamos interesados en esta mezcla, sino que queremos conocer todas las frecuencias que componen la señal, es decir queremos hacer ingeniería inversa de la mezcla para encontrar nuestras señales originales.

Esto se puede hacer utilizando un complicado algoritmo llamado Transformación rápida de Fourier. La
explicación de este algoritmo es compleja , así que para simplificar las cosas, una vez más sólo recuerde
la transformación rápida de Fourier hace todos los cálculos.
Para averiguar exactamente qué frecuencias están ocultas en su señal, ahora digamos digamos que el ancho de banda de nuestra señal de audio es de 20 Hz a 20 khz. Vamos a dividir el ancho de banda total en varias bandas individuales digamos siete y las llamaremos contenedores. Cada contenedor tiene un ancho de banda limitado y una diferente frecuencia central. Recordemos que nuestra señal de audio se compone de varios frecuencias individuales por lo que ahora el mencionado algoritmo clasificará qué frecuencia va donde y la pone en el contenedor correcto. Todo lo que queda por hacer es ver cuán lleno está cada contenedor y traducirlo a una lectura, que en nuestro caso es un gráfico de barras.

El Hardware

Para el hardware vamos a utilizar una placa de desarrollo esp32, cuatro resistencias un condensador y un interruptor y tal vez un conector de audio y eso es todo, así que con tan pocos componentes es muy fácil construir este proyecto usando una protoboard o un PCB estándar.

El esquema es sencillo, , en el centro vemos la placa de placa de desarrollo ESP32 versión 1.0 .En el lado izquierdo tenemos nuestra entrada de audio el canal izquierdo y derecho y por supuesto la tierra. Ambos canales están unidos usando resistencias La señal de audio conjunta está conectada a un lado de un condensador mientras que el otro lado del condensador está conectado a nuestra entrada ADC y también a resistencias R3 y R4.

Si echa un vistazo a la hoja de datos del esp32 verá que que la entrada del ADC sólo puede manejar un
positivo mientras que nuestra señal de audio puede ser negativa y positiva: por eso estamos creando un offset de aproximadamente 1.6 voltios usando R3 y R4.

Finalmente tenemos un botón S1 que podemos pulsar para cambiar el número de bandas o contenedores durante el tiempo de ejecución. Se puede cambiar a 8 16 24 32 o incluso 64 canales

Para facilitar las cosas, vemos dos ejemplos de cómo podemos reconstruir este dispositivo. En el lado izquierdo puede ver una placa de pruebas con todos los componentes , simplemente siga el ejemplo y debería funcionar.
También vemos el prototipo de placa de circuito impreso superior (el ejemplo está en el lado derecho)
Mire bien el ejemplo y tome nota de los lugares donde se interrumpen los carriles de cobre o donde estan unidos
Ahora que el hardware está hecho ¿está de acuerdo con lo que he dicho antes?..es realmente fácil de construir, ¿no?


El software

Ahora que el hardware está hecho vamos a pasar a la programación, para lo cual es necesario descargar el boceto de la comunidad de element 14. Puede descargar todos los archivos en la Comunidad element14! https://bit.ly/3fv0oqy

Antes de que pueda usar un esp32 con el entorno Arduino, necesita instalar las bibliotecas adecuadas
y para ello vamos al archivo hacemos clic en preferencias y luego buscamos la línea que dice
administradores adicionales de la placa . Haga clic en el icono y asegúrese de añadir esta línea . Pulse OK y de nuevo pulse OK (esto significa que la librería el enlace a la librería está instalada)

Ahora vamos a instalar la biblioteca, para ello vamos a herramientas, y hacemos clic en el gestor de placas y el gestor de placas manager. Primero tenemos que esperar hasta que se cargue y una vez cargado, (esto puede tomar algún tiempo dependiendo de la cantidad de biblioteca que tenga instalada), en la barra de búsqueda hacemos clic en esp32 y esp32 by expressive systems aparecerá). Asegúrese de instalarlo correctamente.

Bien si ya lo he hecho, el botón se pondrá en gris. Una vez que se instala asegúrese de seleccionar la placa apropiada, (una conocida es la esp32 dev kit que se encuentra en esp32 Arduino boards, pero encontrará más abajo do it esp32 def kit version , que es una de las más usadas por su bajo precio,y es la que se usa en este analizador)

El sketch se compone de dos archivos : uno de dos archivos es nuestro elemento de especificación web
que es el archivo principal y nuestra configuración , y el otro es la gestión de la entrada de audio y su correspondiente gestión con la transformada rapida de Fourier

Echemos un vistazo al elemento web primero básicamente porque no hay nada en este archivo que necesite ser cambiado a menos que quiera añadir funcionalidad o quiera hacer algunos cambios que tengan bastante impacto, pero básicamente no necesita cambiarlo. Por supuesto puede si quiere en la configuración, hay algunos parámetros que puede cambiar, puede cambiar el número de bandas, que ahora está fijado en 64 y básicamente este es el número de bandas en el arranque se puede cambiar a 8 16 24 32 o 64. Podemos definir el modo si tiene un hardware diferente o si usa un pin diferente puede cambiarlo. Asimismo hay amortiguación de ganancia y umbral de ruido, y esos dos parámetros que puede tener en cuenta, si usted ve una gran cantidad de estática, lo que significa que los gráficos de barras ya te están dando una lectura tremendamente cuando no hay señal que puede cambiar aquí, entonces tenemos la velocidad del filtro mientras que básicamente es un retraso tiempo para que las barras caigan y lo hace más suave si el número es demasiado alto entonces se convertirá en bastante
nervioso, tenemos la frecuencia de muestreo y un bloque de muestreo que ( se recomienda que se deje igual, no los cambie). Asimismo tenemos por supuesto nuestras tablas de corte de banda para cada número de canales de modo que para cada grupo hay un parámetro diferente. Tomemos el de
para ocho canales, primero se ve el en el color de la tabla y ahora es 100 Hertz, 250, 500, Etc .Usted
puede cambiarlo, pero asegúrese de que el secuencial debe ser siempre más alto que el anterior y
esta regal se mantiene sucesivamente. Asimismo tenemos las etiquetas, que por supuesto básicamente eso es lo que se mostrará en la pantalla, y lo mismo ocurre con la banda de 16, la de 24, la de 32 y 64.

Básicamente eso es todo lo que hay, si quiere profundizar en el código, Mark ha puesto
comentarios allí que nos pueden ayudar a entender un poco más los entresijos y puede leerlo.



Bueno, puede ser un poco de molestia compilar : tenemos que instalar el Arduino IIDE, las librerías, tenemos que instalar el gestor de placas adecuado, abrir el boceto compilarlo y subirlo, así que muchas cosas pueden salir mal, ¿y si hubiese otra manera más fácil? Pues la hay, con una versión de Mark que ya lo he compilado para nosotros de modo que podemos usar nuestro navegador de internet para simplemente subirlo directamente a la esp32 ( sin embargo esto solo funciona si va usando el sketch sin modificar de modo que si piensa hacer modificaciones esto no funcionara) .

En efecto para hacer modificaciones en el sketch tal vez quiera añadir una funcionalidad extra o
cambiar el ruido o los parámetros de retardo… entonces, por supuesto, usted tendra que
recompilarlo y subirlo usando el Arduino IDE pero para todos los demás, veamos la programación en el navegador web

La forma más manera más fácil de programar esp32 que jamás hayas visto, es sencilla : sólo tiene que ir a la siguiente sitio web , pulse instalar, seleccione el puerto com apropiado y asegúrese de que su
esp32 está conectado con el conector USB y presiona connect para que comience a programar.
Programar es tan fácil como eso.. !sólo esperar hasta que llegue a 100% y ya está!, eso es todo lo que hay que hacer si utilizas el navegador web para programar su esp32 es seguro decir que la
la programación fue incluso más fácil que el hardware y el hardware en sí no era difícil fue así es el momento para una demostración


¿No crees que vamos a ver lo que hemos construido ? tomemos nuestro esp32 que hemos programado y pongámoslo en la placa que acabamos de crear. Ahora todo lo que necesita hacer es encenderlo de modo que cuando lo arranque por primera vez el dispositivo, como no tiene memoria de sus redes, lo que se iniciará como un punto de acceso y tiene que conectarse al punto de acceso utilizando su teléfono móvil o cualquier otro dispositivo.En el momento en que se conecte se iniciará el gestor de Wi-Fi. Es justo ahi donde puede introducir sus credenciales como su red o contraseña y pulsar guardar. Después de un reinicio, ahora será parte de su red y podrá acceder a ella yendo a la dirección IP correspondiente

Para terminar veamos el video que ha hecho Mark donde explica en ingles todo lo que hemos visto anteriormente:

Sin duda es un proyecto muy interesante que además nos puede ayudar a comprender mucho mejor la programación con el ESP32 y por supuesto entender un poco mejor la ciencia que hay detrás del mundo del sonido.

Fuente aqui