musica - importar audio garageband iphone
¿Cómo puedo comparar 2 archivos de audio mediante programación? (7)
Eso se llama huella digital de audio. Existen algunos proyectos de código abierto de los que puede obtener algunas ideas. Eche un vistazo aquí: Audio Fingerprint - MusicBrainz .
Quiero comparar 2 archivos de audio programáticamente. Por ejemplo: tengo un archivo de sonido en mi aplicación de iPhone y luego grabo otro. Quiero verificar si el sonido existente coincide con el sonido grabado o no (similar al reconocimiento de voz).
¿Cómo puedo lograr esto?
Haga que un servidor realice un cálculo de huellas dactilares de audio que no sea adecuado para dispositivos móviles de todos modos. Y luego su aplicación móvil carga sus archivos al servidor y obtiene el resultado del análisis para su visualización. Así que no creo que el lenguaje de programación que lo implemente tenga mucha importancia. Las siguientes son algunas implementaciones de AF.
Java: http://www.redcode.nl/blog/2010/06/creating-shazam-in-java/
Me interesé y encontré otra solución en Java sobre forge forge. puedes recuperar el código de SVN.
http://sourceforge.net/projects/comparisong/
échale un vistazo y avísame si te funcionó.
aclamaciones
Sé que la pregunta se hizo hace mucho tiempo, pero una respuesta clara podría ayudar a otra persona.
Las bibliotecas de Echoprint (sitio web: echoprint.me/start) lo ayudarán a resolver los siguientes problemas:
- De-duplicar una gran colección
- Identificar (Pista, Artista ...) una canción en un disco duro o en un servidor
- Ejecute un servidor Echoprint con sus datos
- Identificar una canción en un dispositivo iOS
PD: para obtener más características orientadas a la música, puede consultar la lista de API here .
Si desea implementar Fingerprinting usted mismo, debe leer los documentos que figuran como referencias here , y probablemente echar un vistazo a musicip-libofa en Google Code
Espero que esto ayude;)
También creo que puedes intentar seleccionar algunas segundas muestras de ambas pistas de audio, normalizarlas en amplitud y reducir el ruido con un filtro de paso de banda y luego intentar usar un correlacionador.
por ejemplo, puede tomar una muestra de 5 segundos de uno de los dos y hacer que se deslice sobre el segundo, computando una corelación cruzada para cualquier momento en que cambie. (tenga en cuenta que si toma un pachet demasiado pequeño, es posible que tenga una alta correlación cuando no lo experimente y que suavizará el efecto secundario debido al recorte de la señal y la correlación cruzada). Después de que yo pueda recoger una matriz con todos los resultados de la correlación cruzada y obtener el índice de la máxima.
Luego debes establecer experimentalmente el umbral para decidir cuándo asumir el titular del mismo. esto cambiará según la calidad de la pista de audio que esté comparando.
Implementé un corrector para recibir y distinguir el preámbulo de la comunicación inalámbrica. Mi script en realidad está hecho en matlab. si está interesado, puedo tratar de encontrar la parte común y enviársela.
Sería un código demasiado largo para pegarlo en el foro. si quieres solo dímelo y te lo enviaré lo antes posible.
aclamaciones
- Aplicar filtro de paso de banda para reducir el ruido
- Normalizar para amplitud
- Calcule la correlación cruzada
Puede ser bastante intensivo en Mhz.
Los detalles de DSP se encuentran en el texto conocido:
- Procesamiento de señal digital por Alan V. Oppenheim y Ronald W. Schafer