2012-03-20 7 views
20

Pracuję aplikacji iOS z SDK dla iOS 5.0 i XCode 4.2.Jak działa Shazam lub Sound Hound?

Chcę opracować aplikację, która rozpozna dźwięki. Rozumiem, że istnieje aplikacja o nazwie Sound Hound, która rozpoznaje muzykę i opowiada o wykonawcy i tytule.

Jak mogę zrobić coś podobnego? Chcę porównać dźwięk z istniejącą bazą danych dźwięku. Jak mogę to zrobić?

Może mogę użyć Fourier Transform. Nie wiem, jak przetwarzać dźwięki. Lub może być podobny do rozpoznawania mowy, prawda?

+6

To dość prosty algorytm, jednak prawdziwym kluczem do aplikacji jest fakt, że algorytm jest opatentowany, więc jeśli spróbujesz to zaimplementować, prawnicy z wampirami pojawią się z powietrza i wyssają z ciebie życie ...;) – Lindydancer

+0

Cóż, nie chcę tego. Chcę wiedzieć, jak mogę porównywać dźwięki. Korzystanie z transformacji Fouriera? – VansFannel

+1

To może pomóc: http://gizmodo.com/5647458/how-shazam-works-toidentident-near-every-song-you-throw-at-it – VansFannel

Odpowiedz

21

Natknąłem się na dokument wyjaśniający działanie algorytmów wyszukiwania audio. Oto link. Został napisany przez jednego z twórców Shazam, konkurencyjnej aplikacji SoundHound.

1

Shazam Aplikacja jest jednym z najlepszych przykładów do zastosowania w Linked otwartych danych trwa krótką muzykę próbki od użytkownika końcowego i identyfikuje utwór z zestawów danych oraz link do zakupu albumu.

Użytkownik oznacza utwór na 10 sekund, a aplikacja tworzy odcisk palca audio na podstawie niektórych kotwic uproszczonego spektrogramu i obszaru docelowego między nimi.

Dla każdego punktu obszaru docelowego tworzona jest wartość skrótu, która jest kombinacją częstotliwości, w której znajduje się punkt kontrolny, częstotliwością, w której znajduje się punkt w strefie docelowej, oraz różnicą czasu między punkt w strefie docelowej i moment, w którym punkt zaczepienia znajduje się w utworze.

Po utworzeniu odcisku palca audio Shazam rozpoczyna wyszukiwanie dopasowań w bazie danych. Jeśli istnieje dopasowanie, informacja jest zwracana do użytkownika; w przeciwnym razie wyświetli dialog "nieznana piosenka".

Powiązane problemy