2011-08-08 29 views

Respuesta

24

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.

+0

gracias por el enlace miamk. ¿Pero lo probaste? no estoy seguro de cómo implementarlo. Gracias de nuevo – iscavengers

+14

Bueno, si está buscando encontrar el código objetivo-c de ready-made, copy-and-paste o la biblioteca para colocar en su proyecto de iOS, puede detenerlo ahora. no va a encontrar nada de eso (al menos hasta donde tengo conocimiento). Tendrás que codificarlo tú mismo. – MiguelB

13

Haga que un servidor realice un cálculo de la huella dactilar 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/

VC++: http://code.google.com/p/musicip-libofa/

C#: http://www.codeproject.com/KB/WPF/duplicates.aspx

3

Suena como Shazam podría ayudar.

Hay algunos artículos en la web hablando de esto, incluyendo this que leí hace un tiempo.

El uso de la técnica de Shazam para el análisis proporcionaría un excelente punto de partida para la comparación de lado a lado.

+2

¿Eh? ¿Qué pasa con el voto de bajada? – Hyperbole

2
  • Aplicar filtro de paso de banda para reducir el ruido
  • Normalizar para la amplitud
  • Calcular la correlación cruzada

Puede ser bastante Mhz intensiva.

detalles

El DSP se encuentran en el conocido texto:

  • procesamiento de señales digitales por Alan V. Oppenheim y Ronald W. Schafer
+0

Eso no tendrá en cuenta las diferencias en los acentos y la velocidad de conversación –

1

creo que así es posible que trate de seleccionar una unos pocos segundos de muestra de ambas pistas de audio, las anula en amplitud y reduce el ruido con un filtro de paso de banda y luego intenta utilizar un correlador.

por ejemplo, puede tomar una muestra de 5 segundos de uno de los dos e hizo que se deslice sobre el segundo calculando una corelación cruzada para cualquier momento 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.

Debería establecer experimentalmente el umbral para decidir cuándo suponer que el marcador es el mismo. esto cambiará según la calidad de la pista de audio que esté comparando.

Implementé un correator para recibir y distinguir el preámbulo en 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 ser pegado hene en el foro. si quieres solo dímelo y te lo enviaré lo antes posible.

aplausos

4

sé la pregunta se ha hecho hace mucho tiempo, pero una respuesta clara podrían ayudar a alguien más.

  1. Las bibliotecas de Echoprint (página web: echoprint.me/start) le ayudará a resolver los siguientes problemas:

    • De-duplicar una gran colección
    • Identificar (Track , 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

    PS: Para conocer más funciones orientadas a la música, se puede comprobar la lista de API here.

  2. Si desea aplicar huellas digitales por sí mismo, debe leer los documentos que figuran como referencias here, y probablemente tenga una mirada en MusicIP-libofa en Google Code

Esperamos que esto ayuda;)

Cuestiones relacionadas