Szukaj Pokaż menu
Witaj nieznajomy(a) zaloguj się lub dołącz do nas
…NIECODZIENNIK SATYRYCZNO-PROWOKUJĄCY

Forum > Inteligentna jazda > Programy do rozpoznawania muzyki
bartek-klauzinski
Cześć

Kieruję się do Was z takim zapytaniem, na które nie dane mi było znaleźć odpowiedzi w czeluściach internetu, więc może jakiś Wielce Mądry Bojownik/Bojowniczka mi odpowiedzi udzieli?

Otóż zapytanie moje jest następujące:
Jak działają programy do rozpoznawania muzyki, np. komórkowy shazaam?
Ściągnąłem ten programik ostatnio z czystej ciekawości i zacząłem się nim bawić, i powiem krótko- byłem w szoku.
Po włączeniu programu potrzebuje on kilku sekund żeby "posłuchać" utworu, potem następuje "wysyłanie" i po chwili (częściej krótszej niż dłuższej) mam pełne info na temat utworu który puszczałem- łącznie z okładką albumu, rokiem wydania i linkiem do sklepu internetowego, co by sobie kupić album.
Jednakże zauważyłem pewną prawidłowość- tak jak muzykę "dla mas" rozpoznaje bez problemu, to np. nie udało mi się uzyskać info nt. żadnego utworu Chopina, Gregorian, Chóru Aleksandrowa itp.

W każdym razie cały ten mój wywód sprowadza się do tego, że niezmiernie mnie interesuje jakim cudem wśród milionów czy miliardów piosenek program w ciągu chwili odnajduje tę właściwą?

--
\m/

supervegeta
Nie wydaje mnie się, by tego typu programy specjalnie różniły się od tych rozpoznających nowę. Jakiś czas temu miałem przyjemność uczestniczyć w AMPPZ i tam, jako krótki wykład inauguracyjny, gość nawijał właśnie o rozpoznawaniu mowy, zaprezentował też działanie kleconego przez siebie programu.

Nie pamiętam szczegółowo, ogólnie jednak - dużo sieci neuronowych oraz statystyki. Jak to ujął - podejście eksperckie - "to jest a, to jest b", często daje błędy, bo niektóre litery mogą, w otoczeniu innych, brzmieć inaczej; podobnie w podejściu analitycznym, głoski zniekształcają się nawzajem. Dlatego obecnie dużą uwagę poświęca się algorytmom statystycznym, które analizując dźwięk, stopniowo stwierdzają, że z takim-a-takim prawdopodobieństwem to taka litera, a z tamtym-a-tamtym inna litera. W końcu, po serii obliczeń, uzyskujemy, co jest najprawdopodobniejszą odpowiedzią.

Jak mówiłem, strzelałbym w działanie na podobnej zasadzie, to jest rozpoznawanie nut i instrumentów, a następnie przepuszczanie tego przez bazę na zasadzie wybierania najbardziej prawdopodobnej odpowiedzi. Dopasowywanie do wzorca zajmowałoby zbyt dużo czasu, poza tym, nie oszukujmy się, prostota może i jest dobra, ale naiwność już nie.

Natomiast sam zasób, muzyka dla mas i klasyczna, to już tylko i wyłącznie kwestia zasobu danych. Ewentualnie mogą występować pewne problemy typu "dwa utwory są tak podobne, że algo ich nie rozróżnia", ale to raczej nie w tym przypadku, który opisałeś.

Hej, a może by tak wstawić swoje zdjęcie? To łatwe proste i szybkie. Poczujesz się bardziej jak u siebie.
chermi - Superbojownik · przed dinozaurami
strzelam

program próbkuje powiedzmy 10 sekund utworu czyli zazwyczaj wychodzi więcej niż 128 próbek na sek porównuje to z bazą danych albo kawałkami utworów do których ma dostęp. Jeżeli pliki są zgodne, powiedzmy w więcej niż 90% bitów, otrzymujesz wynik.

ale to tylko strzał

--

Hej, a może by tak wstawić swoje zdjęcie? To łatwe proste i szybkie. Poczujesz się bardziej jak u siebie.
Cóż...sam sie nad tym ostatnio zastanawiałem. Wydaje mi się, że całość opiera sie o odpowiednio zaindeksowane pasma wokalu, basu i innych części składowych pasujących akurat do danego utworu. Fakt, w przypadku coverów/zrzynki/editów może to być kłopotliwe, ale twórcy pewnie to przewidzieli dodatkowe informacje, tj. wykonawca, rok wydania i link do pobrania to juz zasługa Googlownicy

--
Im więcej samobójców tym mniej samobójców.

bartek-klauzinski
Myślałem ewentualnie nad rozbijaniem fragmentu utworu na ścieżki, analizowania po kolei każdej (gitara, wokal, bas itd) i dopasowywania, ale po tym, jak dałem "mu" do posłuchania Gorgoroth, Behemoth, Dimmu Borgir i tego typu zespoły dla koneserów metalu, a on je rozpoznał w kilka chwil, porzuciłem tę myśl. Poza tym chyba taki komórkowy program, który nie waży zbyt wiele a co za tym idzie- nie jest zbyt zaawansowany (wg mojego toku rozumowania) nie ma możliwości rozpoznawania poszczególnych ścieżek w utworze.

--
\m/

Hej, a może by tak wstawić swoje zdjęcie? To łatwe proste i szybkie. Poczujesz się bardziej jak u siebie.
bartek-klauzinski - Rozpoznanie ścieżki w utworze jest prawie niemożliwe, inaczej sieć by zalała fala programów oddzielających muzykę od wokalu. W komputerze jest po prostu zapisywana częstotliwość dźwięku, bez żadnego podziału na instrumenty, ew. mono/stereo. Zresztą zauważ, że rozdzielenie dużej bazy utworów na ścieżki(na serwerze) to masakra. Najprościej by było zbadać, co ten programik wysyła do sieci.

Btw. to, że programik mało waży, to nie znaczy, że jest nieskomplikowany. Sam kod to koszty w pamięci praktycznie pomijalne, przy np. teksturach menu.

Moim zdaniem najbardziej prawdopodobne jest to, co prawi :chermi

--
No co się gapisz? Fajnej sygnaturki nie widziałeś?
Piszę poprawnie po polsku.

prond
prond - Superbojownik · przed dinozaurami
To pytanie bardziej na hape :https://www.tulane.edu/~park/courses/ElectronicMusicHistory/papers/AudioFingerprinting4AutomaticMusicRecognition.pdf

na muzykę klasyczną to nie działa przede wszystkim ze względu na duże podobieństwo między utworami (czas próbkowania oraz "odcisk palca" z niego uzyskany musiałyby być znacznie dłuższe niż dla popu)

--
Podaruj obiad kliknięciem
Żarty medyczne
Trzeba zmienić sygnaturkę...

dSort
dSort - tańczący z butelkami · przed dinozaurami
Podejrzewam,że Chermi ma rację - albo po próbkach,albo po widmie.

co do klasyki - podobieństwo między utworami nie ma tu znaczenia - gdyby tak było, myliłby ze sobą 3/4 rockowych kawałków. Podejrzewam,że bardziej chodzi o różnice w wykonaniach, albo umykające w kompresji szczegóły - te utwory mają z reguły o wiele większa rozpiętość dynamiczną.

--
www.idzieniedzwiedz.pl
Mam umysł siedmiolatka i ten siedmiolatek musi być cholernie zadowolony,że się go pozbył

Borobej
Borobej - Superbojownik · przed dinozaurami
Jest coś takiego jak Tunatic. Niestety, wersja windowa jest tylko gościnnie i póki co program do poszerzania bazy utworów jest jedynie dla Maca. Nie sprawdzałem go też z gwizdaniem, bo nawet utwór puszczony na mikrofon z głośników potrafi rozpoznawać pół minuty albo dłużej... ale rozpoznał w ten sposób nawet niszowy japoński jazz. ;)

zember
zember - Superbojownik · przed dinozaurami
Używam shazaam, i też chwile się zastanawiałem jak to działa z kolegami doszliśmy do wniosku, że wszystko prawdopodobnie dzieje się na serwerze. Prawdopoodbnie programik służy tylko do nagrywania dźwięku w odpowiedniej jakości ponieważ jest mały jak zauważył ShadowDancer90 i wysyła dosc duzo danych na serwer. Co do samej analizy na pewno nie jest to rozkład na cześci np dlatego że covery nie są rozpoznawane, z tego co zdażyłem wywnioskować z rodzajów utworów jaki rozpoznaje i sposobu opisu kawałków które przychodzą (są to konkretne albumy). Shazam musi miec podpisaną umowe z jakąś wytwórnią i mieć dostęp do ich bazy wychodzi na to że utwory są skanowane i zapisywana jest informacja o widmie (prawdopodobnie mono). Potem jakiś sprytny mechanizm robi widmo z przesyłanej próbki i dopasowuje do swojej bazy. co do muzyki klasycznej to niezgodze sie ze trudno ją rozpoznać problem w tym ze jak masz widmo to musi to być konkretny utwór z konkretnej płyty, a jak ktos gra koncert to napewno widmo jest inne i dopiero jak koncert zostanie wydany na płycie i zeskanowany moze byc rozpoznany (chyba ze ktoś gra z playbacku wtedy prawdopodobnie shazam rozpozna bo widmo bedzie sie zgadzało).

P.S. sorry za troche chaotyczny post ale wczoraj byłem na wieczorze kawalerskim i jeszcze nie doszedłem do siebie.

empirel
Zapisuje ścieżkę dźwiękową w formie graficznej i przeszukuje baze z identycznym odcinkiem. szumy są automatycznie tłumione przez twój telefon więc taki program nie ma problemu z poborem czystej ścieżki.

Hej, a może by tak wstawić swoje zdjęcie? To łatwe proste i szybkie. Poczujesz się bardziej jak u siebie.
acorn - Superbojownik · przed dinozaurami
Wiekszosc tego typu programow - a mam na mysli nie tylko rozpoznawanie muzyki, ale tez rozpoznawanie obrazow, twarzy etc.. bazuje na tej samej zasadzie. Program porownuje probke do wzorca i zwraca jako odpowiedz najbardziej pasujacy utwor.

Bardzo waznym elementem jest sam algorytm, od ktorego zalezy trafnosc decyzji. W przypadku muzyki algorytm musi byc odporny na
a) zaklocenia (szumy)
b) probka jest tylko malym wycinkiem oryginalu o nieznanym czasie poczatkowym

W swiecie bez komputerow poslugujemy sie od dawna podobnymi algorytmami. Na przyklad potrafimy zidentyfikowac czlowieka na podstawie malej probki uzywajac algorytmu odpornego na zaklocenia typu: przefarbowane wlosy czy zapuszczona broda jak i zmiana stroju.

Uzywamy do tego odciskow palcow ktore jak sie okazalo sa cecha unikalna rozna dla kazdego czlowieka. Badz analizy DNA

W programach do rozpoznawania muzyki kluczowa sprawa jest znalezienie podobnej cechy unikalnej dla kazdego utworu odpornej na zaklocenia.

Mocno upraszczajac, mogloby to byc np. tempo. W przypadku szazam algorytm bazuje na porownaniu czestotliwosci dzwieku tylko w szczytowych wartosciach spektogramu probki.

Czy udalo im sie odnalezc taka ceche unikalna utworow? Nie wiem, to zalezy od oceny uzytkownikow takiego programu i jego skutecznosci.

Jezeli program nie rozpoznaje utworow klasyccznych to moze wynikac z dwoch powodow:
1) Algorytm sobie nie radzie z tego typu utowrami
2) Nie ma ich w bazie danych, ktorej uzywaja do porownywania.
Forum > Inteligentna jazda > Programy do rozpoznawania muzyki
Aby pisać na forum zaloguj się lub zarejestruj