Software o programa de algoritmo para musica

Iniciado por FreeCellnet, 9 Junio 2021, 18:19 PM

0 Miembros y 1 Visitante están viendo este tema.

FreeCellnet

Conozco una aplicacion como shazam, que reconoce musica cuando la oye.

Pero mi caso es el siguiente, tengo 2.000.000 canciones, y mi problema es que no tengo tiempo en esta vida para organizar alfabeticamente y por género toda esa cancion, por no decir que los titulos a veces no son los mas apropiados para su clasificacion, ya que ha veces suelen poner primero la banda y luego el tema o vicebersa

Lo mas normal es que un tipo de algoritmo que vea en su interior del archivo de musica y saque el título y lo clasifique automaticamente, y si la libreria que tiene da para más, la ponga en el género que considere, esto evidentemente sería fenomenal.

Una base de datos que crea el programa en forma de lista que enlace por hipervinculo el archivo, normalmente me he dado cuenta que ordenando por genero y por orden alfabético, me salen de media 50.000 canciones por carpeta, lo cual lo hace pesado para el disco duro al abrir la carpeta. (Me cambie a discos SSD), pero al necesitar mas 10TB el costo no es accesible.

En caso de no exitir el algoritmo, y no haber mas remedio, tener que entrenarlo yo y luego con esa librería , venderlo como software?.

Yo imagino que shazam habrá usado inteligencia artifical para poder entrenar de algun modo la aplicación analizando arbitrariamente canciones, no creo que la hayan construido a mano, (quiero decir) no creo que la huella digital del espectograma de la cancion haya sido asociada manualmente con el titulo de la cancion, porque el volumen de canciones al mes que se incorporan a su libreria es astronómico, y pienso que debe ser inteligencia artificial.

Yo creo que lo mas practico seria montar un programa que funciona con shazam, y que automaticamente analize los archivos de musica, y automaticamente te genere una tabla con los datos disponibles de su libreria, porque la verdad, la aplicación incrementa en su libreria 250.000 cada mes, debe de ser una buena lista, y lo unico aqui seria la parte de hacer funcionar a la aplicacion analizando ficheros que incorpore una base de datos o lista con hipervinculo o asociada al archivo o canción.

Evidentemente la libreria de la huella digital del espectograma de musica asociada al titulo de la cancion la tienen ellos en sus servidores, y tu aplicacion lo unico que hace es grabar un fragmento y enviarlo a sus servidores para que te diga el titulo del espectrograma analizado, y supongo tambien que habra límite de canciones, y usar ese programa por mi cuenta para programar una aplicacion específica, costará pasta.

¿Conoceis de un programa que trabaje con bases de datos de musica?, Analice un contenido, y que luego pueda sacar en lista de base de datos, o una plantilla excel, o algo similar de base, con lo que empezar a programar, alguna base tiene haber.

Serapis

#1
Puedes usar Freerip por ejemplo. Incluso el propio 'reproductor de win2 media', también.
-https://www.freerip.com/

Hay varios programas que acuden a bases de datos de internet para aportar los metadatos de cada canción. Opcionalmente muchos permiten renombrar, aunque no sé si automatizado con la lectura de metadatos, porque la mayor parte de dichos programas, suelen actuar en cordinación con la lectura de CD, para pasarlos a digital.

Pero imagino que revisando opciones (uno nunca usa todas las opciones que tiene un programa si no las necesita), podrá existir...

No es como tal IA, sino más bien hasheado después de cuantizar los datos del sonido y con ayuda también de la duración de las canciones... el modo exacto no sé pero crean finalmente un 'discId' (el hash que resume las canciones de ese disco y que se aplica a todas). De hecho Spotify, por ejemplo, sabe incluso que versión de disco es, precisamente consultando seguramente ese discId... incluso aunque no sea exacto puede hacerse a la inversa, calcular número y tiempos de las canciones, y ver qué disco se aproxima más a dichos valores. Para esto en general ya tiran también del intérprete si resulta ser conocido (en los datos).

La cuestión que será clave, es como lo tienes clasificado... si es todo una mezcolanza, y muchas canciones en cada carpeta, tardará mucho me temo... lo ideal que es hubiera separación en carpetas, de alguna manera... sea por género, por autor, año, etc...

Ahora si tu quieres crear tu propio programa, consulta la web freedb.org (nada, justo el año pasado pone que el que lo llevaba ha chapado, pero otros continúan su senda https://gnudb.org ) ellos proveen los metadatos e imagino que tendrán algún método de solicitud de datos.
Sé que en general operan con el 'DiscId' pero  será cuestión de saber más a fondo qué exigen y ver como proporcionarlo.
Para empezar podrías crear la parte que lee y escribe los tags Id3
https://es.wikipedia.org/wiki/ID3
https://en.wikipedia.org/wiki/ID3
Y cuanto tengas más claro como solicitar datos vía web, ya proporcionarás el puente de la recepción de datos y la entrega a la parte del ID3.
La parte más complicada podría llegar a ser la detección, pero sabiendo que exige la web que proporcione los metadatos, tendrías por donde tirar.
Nunca he usado el programa Shazam, pero si es capaz de soltarte que el titulo de la canción y el autor, solo habría que ver en cuantos discos aparece esa canción y con cuales más. Quizás sea más complejo si no tienes los dicsoc completos, o las canciones de un disco estén desperdigadas y no contiguas (para poder reconocer un disco como tal). Piensa que una misma canción a menudo aparece en la discografía de un autor varias veces, pués a las dierentes ediciones hay que sumarle las versiones por países y los recopilatorios...

Yo en general descarto su uso, los metadatos los meto yo mismo. Si tienes 1000 discos da pereza, si los metes cuando copias el disco, pués hoy uno y mañana otro... y al tiempo tu musiteca, está lista.

...ahora 2 millones de canciones, suponen unos 150.000 discos, implica que habrás bajado por internet discografías completas de todo tipo (incluso probablemente de cosas que ni te gusten si sepas quién son o como suenan, quizás tu error ahí haya sido mezclarlo todo junto en vez de descomprimir en sus respectivas carpetas, cuando se han descargado).



p.d.: http://www.opencdindex.com/dev-cdid.php

CitarHow to compute CD ID

To compute CDID you need the following info from the CD:

   Total number of tracks on the CD
   Length in CD frames of all the tracks but the last one
   Total length of the CD in seconds

Express tracks length in 5 digits hex numbers and concatenate them, then compute a standard MD5 hash from the string. Add to the 32 hex digits of the MD5 hash the number of tracks as 2 digit hex and the length in seconds as 6 digit hex. The final 40 digit hex string is our CD ID.
Un poco 'primitivo' para mi gusto, pero puede ser muy válido y sobretodo rápido de calcular, ya que no es tan fácil que haya CDs con el mismo número de canciones longitud total y longitud de cada canción igual... aunque habrá colisiones... e ignoro si es el mismo sistema que usen otros.

FreeCellnet

#2
Acabo de mirar Freerip, esta bien, desconocia el algoritmo de compresion FLAC.

No creo que haga 150.000 de CD's.

He estado mirando el media monkey 5, pero todavia me cuesta entenderlo, voy a probar varios mas haber con cual me quedo.

Salvo la musica disco, soul o tipo funk, el resto me gusta toda, unas mas que otras.

funk-rap puede, con los primero raperos, musica ska años 60 50, reagge, y todos los generos de rock, blues, jazz, foxtrot no, pero charleston algo, musical clasica, canticos georgianos y gregorianos ...

Muchas gracias por la información Serapis.



Serapis

Bueno, 2 millones a un promedio de 13 canciones por disco arroja unos 150.000 discos en números redondos.
Si son recopilatorios, a menudo suelen tener más (15-18), hasta incluso el doble (20-25 canciones por disco).

Aunque quizás fueren 200.000 canciones y no 2 millones, y todavía contaría 15.000 discos que siguen siendo muchísimos. ...que asignando un promedio de 15 discos por autor, se podría decir que tienes (el equivalente) a la discografía completa de 1000 autores (0 de 10.000 si al final son esos 2 millones).

En mi opinión, tu mayor problema puede llegar a ser como lo tengas organizado. Si está cada disco en su carpeta, con su DiscId, será relativamente accesible. En cambio, si cada canción está 'donde sea', será preciso una petición por cada canción y posiblemente sea más problemático obtener los metadatos para una sola canción que para todo un disco. Aunque es mas que probable que también haya alguna operación similar solo para canciones sueltas.
...operando sobre discos, el volumen de trabajo se divide entre el número de promedio por disco (pongamos esas 13 canciones por disco).

Cuando te pongas a ello, no pretendas conseguirlo en 2 días, seguramente acabes bloqueado por el número de peticiones, tómalo con paciencia y prográmalo como una tarea para hacer x peticiones máximo por día, así te lleve un año.

FreeCellnet

#4
Lo que quiero es que primero me lo organize el programa en carpetas, por genero y por años y orden alfabético, por ejemplo

CARPETA AÑOS 50, y dentro estén todos los géneros, y dentro de los géneros las carpetas 0-9, A, B ;C..... , así ya lo tendria organizado.

CARPETA AÑOS 60.... lo mismo

Pero primero me hace falta la lista me la genere el programa, y a partir de ahí seria ideal que se pudieran clasificar y mover a partir de la base de datos, o sino, que no se mueva el archivo fisicamente, pero si este organizado en una lista txt con hipervinculo de acceso al mp4

Yo grabo en Blue rays de 25GB, me caben muchas mas, no solo 15 , y si, son 2.000.000 desgraciadamente, yo no puedo hacer nada para remediarlo, por ejemplo si me dan este video de 300MB de 9 minutos en full HD, no lo puedo bajar de resolucion, ha sido remasterizado: https://www.youtube.com/watch?v=xEGRyCiJJc8

Tachikomaia

Yo antes las clasificaba en carpetas 1, -1, 2, -2, etc, escuchaba 4 y dependiendo de cuales me gustaban más las enviaba a las carpetas. Pero se me empezó a hacer imposible decidir cuales me gustaban más así que decidí ordenarlas por abecedario según el grupo o cantante. Es fácil porque si personalizas una carpeta para que sea de música se pueden ordenar por abecedario según grupo o cantante, así que es sólo seleccionar, cortar y pegar en la carpeta correspondiente. No necesitas abrirla.

Sobre ordenar por año no sé, no recuerdo que en los datos de los mp3 esté guardado el año.

Danielㅤ

#6
Hola, acá el tema, problema o complicación es que no en todas las canciones aparecen los metadatos, hay canciones que no tienen metadatos o están incompletos o incluso en algunos casos la información es incorrecta, también he visto canciones en MP3 que le meten spam en los metadatos como por ejemplo URL de páginas web.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

Serapis

#7
Cita de: FreeCellnet en 11 Junio 2021, 23:51 PM
Lo que quiero es que primero me lo organize el programa en carpetas, por genero y por años y orden alfabético, por ejemplo

CARPETA AÑOS 50, y dentro estén todos los géneros, y dentro de los géneros las carpetas 0-9, A, B ;C..... , así ya lo tendria organizado.
...
Desconozco si algún programa te creará carpetas y/o moverá ficheros de un lado a otro.
Normalmente cuando digitalizas un CD sí, es habitual que te pidan una carpeta de destino y ahí luego algunos programas crean una carpeta para el autor y dentro otra para el disco en cuestión.
Así, sí es posible mantener organizado tu discoteca. A medida digitalizas más y más CDs, crece el contenido manteniendo cierto orden.
Yo por ejemplo en las carpetas de un autor precedo al nombre del disco con el año, así se mantiene ordenados por fecha de publicción en vez de seguir un orden alfabético.
Invariablemente creo una lista de reproducción M3u. con el nombre del autor, año y nombre de disco para dicho fichero.
Dejo copia de ese fichero en su carpeta y otra en una carpeta donde solo hay listas...


Cita de: FreeCellnet en 11 Junio 2021, 23:51 PM
Pero primero me hace falta la lista me la genere el programa, y a partir de ahí seria ideal que se pudieran clasificar y mover a partir de la base de datos, o sino, que no se mueva el archivo fisicamente,
Para eso vas a necesitar más de un programa. Quuizás haya alguno que lo haga pero exige mirar a fondo las opciones de los diversos programas existentes. En general cuando la gente aprende a usar las opciones que son las que usa con frecuencia deja de explorar otras opciones, lo que no quiere decir que no existan solo que no las conocen...

Es posible que al final debas crear tu mismo el programa que se encargue de leer los metadatos que quieras utilizar para clasificar y mover las canciones a tu gusto. Esto en realidad sería posiblemente la parte más sencilla de todo.

Cita de: FreeCellnet en 11 Junio 2021, 23:51 PM
Yo grabo en Blue rays de 25GB, me caben muchas mas, no solo 15 , y si, son 2.000.000 desgraciadamente, yo no puedo hacer nada para remediarlo, por ejemplo si me dan este video de 300MB de 9 minutos en full HD, no lo puedo bajar de resolucion, ha sido remasterizado: ...
Con 15, me refiero a las canciones que trae el disco de origen, por supuesto en una carpeta del PC, o en otro dispositivo (donde uno quiera almacenarlo de forma definitiva) uno puede guardar hasta donde dé de sí.
Habitualmente tras pasar las canciones a MP3, el tamaño respecto del formato RAW de origen es significativamente más pequeño, incluso aunque se guarde a un bitrate de 320.

Si mantienes también vídeos, la cosa cambia... desconozco si haya una base de datos de internet para vídeos igual que lo hay para canciones... a fin de cuentas un concierto completo, puede ser fragmentado por distintos usuarios con distintos valores y guardarlo de diferentes maneras, de modo que un mismo contenido vendrá a tener incontables modos de salida que entre sí no concuerden.

Te recomendaría que los vídeos los clasificaras aparte de las canciones...

Cita de: [D]aniel en 12 Junio 2021, 01:27 AM
Hola, acá el tema, problema o complicación es que no en todas las canciones aparecen los metadatos, hay canciones que no tienen metadatos o están incompletos o incluso en algunos casos la información es incorrecta, también he visto canciones en MP3 que le meten spam en los metadatos como por ejemplo URL de páginas web.
Sí, para eso preguntaba por alguna web o programa, para que escriba los metadatos correctos (de forma automática... manualmente es algo que puede hacerse a través de las propiedades del fichero, aun que solo para los tags que el S.O. considera).

FreeCellnet

#8
Tachikomaia: No las tengo en carpetas, la tengo que crear.

[Daniel] Precisamente hay programas que te buscan los metadatos de las canciones por internet como el Media monkey pero no es muy bueno que digamos.

Serapis, gracias por la contestación,

Trabajare disco por disco, y cuando ya lo tenga organizado en cada uno, haré volcado de datos a uno mas grande, o simpremente haré una lista de txt de todo el directorio de archivos para ver que no se repitan en otros discos duros usando programa tipo beyond compare, para mirar entre los dos posibles repetidas (qunque se repitan en nombre) miraré el cheksum crc32.

No me gustan los discos duros, son medios magneticos que tienen fallos, lo pasare antes que pueda a litografia CD/BlueR...

A todo esto... , debería de haber una empresa encantada de que le pasara mis archivos y me hiciera la lista gratis a cambio la empresa venderia mis datos, o lo que yo elaborara finalmente para cuadrar la casificación