Porównywanie dźwięków

0

Witam

Zastanawiam się jak działają programy typu shazam, track id, czy Tunatic. Głównie chodzi mi o przetworzenie pliku dźwiękowego na konkretny "kod", który potem można łatwo porównać i stosunkowo niewiele zajmuje. Ciekawe jest, że te programy działają także pomimo różnego typu zakłóceń.

Istnieją może gotowe algorytmy do tego? Próbowałem googlować ale nic nie znalazłem, może dlatego, że nie potrafię tego dobrze nazwać.

0

Pewnie budują sobe tablicę z parametrami wyciąganymi z dźwięku. Podczas analizy porównuje się tylko parametry dwóch tablic uwzględniając np. drobne odchylenia od wartości szczytowych dla każdego parametru.

0

Tylko jak w ten sposób dopasować 15 sekundowy wycinek utworu do całości ?

0

Zapewne najpierw ekstrakcja cech (np. proste i skuteczne MFCC), te cechy to właśnie "kod", o którym wspomniałeś w poście. Dzieli się sygnał na kilkunasto-kilkudziesięciomilisekundowe ramki i redukuje liczbę parametrów z N sampli w ramce (np. 2048, zależy od częstotliwości próbkowania, długości ramki i ewentualnie nakładki) do kilku-kilkunastu parametrów MFCC dla każdej ramki. Wektor wektorów MFCC łatwo można porównać z innym, "wzorcowym" wykorzystując na przykład DTW - dynamic time warping.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.