Kilka tygodni eksperymentowałem, aby znaleźć sposób na dopasowanie / znalezienie podobnych utworów w bibliotece zawierającej różne gatunki muzyczne.
Moja pierwsza próba polegała na wykryciu funkcji takich jak Tempo lub ilości basów w utworach, aby utworzyć grupy, ale nie posunąłem się za daleko z tym podejściem (wykrywanie uderzeń oparte na zmianach głośności), ponieważ na około 20% utworów Beat nie trzeba liczyć zawsze czasami 1/2 lub 1/3 z nich i nie mogłem tego wdrożyć.
Po kilku tygodniach nieudanych prób dostałem nowy pomysł, który jest opisany w dalszej części tego postu. Po prostu działa, pobierając Próbki plików spektrum, tworząc coś w rodzaju „przeciętnego spektrum” plików, aby je porównać. Pomysł był taki, że na przykład Hardstyle ma znacznie więcej basu niż przeciętna muzyka rockowa, zweryfikowałem to również, patrząc na niektóre widma w Audacity.
- Plik 1: Pobierz pełne spektrum plików FFT (atm atm 2048, Log Amplitudes. Skalowane)
- Zsumuj wszystkie tablice widm, weź średnie z każdego pojemnika
- Zrób to samo z innymi plikami, zapisz wszystkie wyniki
- Zrób listę różnic wartości FFT między plikiem 1 a innymi plikami
- Zrób średnią różnic między plikiem 1 a plikiem X
- Sortuj rosnąco według tych średnich
- Piosenki o najniższej „wartości różnicy” są uważane za podobne.
Czy niektórzy z was, którzy mają dobrą wiedzę, mogą powiedzieć mi, czy byłby to właściwy / dobry sposób na wdrożenie mojego pomysłu?