2012-03-20 12 views
20

Sto sviluppando un'applicazione iOS con SDK per iOS 5.0 e XCode 4.2.Come funziona Shazam o Sound Hound?

Desidero sviluppare un'applicazione che riconosca i suoni. Vedo che c'è un'applicazione chiamata Sound Hound che riconosce la musica e racconta artista e titolo.

Come posso fare qualcosa di simile? Voglio confrontare un suono con un database audio esistente. Come posso farlo?

Forse posso usare Trasformata di Fourier. Non so come elaborare i suoni. O potrebbe essere simile al riconoscimento vocale, non è vero?

+6

È un algoritmo abbastanza semplice, tuttavia la vera chiave dell'applicazione è il fatto che l'algoritmo è brevettato, quindi se provi a implementarlo tu stesso, gli avvocati dai denti da vampiro appariranno dal nulla e succhiano la vita da te ...;) – Lindydancer

+0

Beh, non voglio quello. Voglio sapere come posso confrontare i suoni. Usando la trasformata di Fourier? – VansFannel

+1

Questo potrebbe aiutare: http://gizmodo.com/5647458/how-shazam-works-to-identify-nearly-every-song-you-throw-at-it – VansFannel

risposta

21

Mi sono imbattuto in un foglio che spiega come funzionano gli algoritmi di ricerca audio. Ecco lo link. È stato scritto da uno degli sviluppatori di Shazam, un'applicazione rivale di SoundHound.

1

Shazam applicazione è quello dei migliori esempi per l'applicazione in dati aperti collegati ci vuole la musica campione breve da parte dell'utente finale e identifica la canzone dai set di dati e il link per acquistare l'album.

L'utente etichetta una canzone per 10 secondi e l'applicazione crea un'impronta digitale audio basata su alcune delle ancore dello spettrogramma semplificato e dell'area di destinazione tra di esse.

Per ciascun punto dell'area di destinazione, creano un valore hash che è la combinazione della frequenza a cui si trova il punto di ancoraggio, la frequenza alla quale si trova il punto nella zona target e la differenza di tempo tra il punto nella zona target e quando il punto di ancoraggio si trova nella canzone.

Una volta creata l'impronta digitale dell'audio, Shazam avvia la ricerca delle corrispondenze nel database. Se c'è una corrispondenza, le informazioni vengono restituite all'utente; altrimenti restituisce un dialogo "canzone sconosciuta".