Szukam algorytmu (ów) do rozwiązania następującego problemu: Biorąc pod uwagę głośne przechwytywanie dźwięku .wav (trochę wiatru + szum tarcia na mikrofonie), jak wykryć BPM miękkiego uderzenia bębna?
Próbowałem googlować ten temat, ale wyniki są dość słabe, ze względu na dużą liczbę programów związanych z mp3 zarówno do analizy, jak i generowania identyfikatora odcisków palców. Żadne z nich nie podaje informacji o tym, jak to zrobić.
Zdaję sobie sprawę z algorytmów do usuwania szumu, ale wciąż mam problem z wykrywaniem BPM. I w zależności od rozwiązania problemu BPM, możliwe, że nawet nie muszę go denudować (ponieważ bęben ma tendencję do obniżania częstotliwości, a szumu do wyższych, zwykłe dolnoprzepustowe może być wystarczającym wstępnym przetwarzaniem).
źródło
Odpowiedzi:
Jedną z metod, która działa, jeśli występuje względnie silne uderzenie bębna, jest ustalenie wielkości STFT kształtu fali, a następnie automatyczna korelacja tylko w wymiarze czasowym. Szczytem funkcji autokorelacji będzie rytm lub jego podwielokrotność.
Jest to równoważne z rozbiciem sygnału na wiele różnych pasm częstotliwości, znalezieniem obwiedni amplitudy każdego z nich, autokorelacją każdej obwiedni, a następnie zsumowaniem ich. Hałas i inne części muzyki są uśredniane przez operację korelacji krzyżowej.
Wynika to z faktu, że uderzenia perkusji wytwarzają krótkotrwały dźwięk na wielu częstotliwościach (linie pionowe), podczas gdy inne części muzyki są długowieczne tylko na kilku częstotliwościach (linie poziome), a hałas jest długotrwały, ale losowy na wszystkich częstotliwościach. Możesz zobaczyć powtarzanie taktów, jeśli spojrzysz na STFT:
Wymyśliłem to dla projektu szkolnego polegającego na znalezieniu pojedynczej wartości BPM dla całych plików muzycznych, ale można ją również dostosować do strumienia audio ze zmianą BPM. Musisz przetworzyć fragmenty, które są co najmniej dwa razy dłuższe niż okres poszukiwanego BPM.
źródło
Auto-korelacja jest z pewnością dobrą podstawową metodą do tego. Istnieje kilka rzeczy, które możesz zrobić, aby potencjalnie ulepszyć to:
źródło