W ramach niniejszej pracy została stworzona aplikacja MuzoAnalizator
do analizy częstotliwościowej dźwięków muzycznych w postaci cyfrowej. Przy
użyciu tej aplikacji można wyznaczyć wartości cech opisanych w podrozdziale 3
dla dźwięków w formacie .snd (.au). W ramach tej pracy magisterskiej
przeanalizowano dźwięki oktawy czwartej (w notacji MIDI) następujących
instrumentów: skrzypce, fagot, trąbka, klarnet. W badaniach wykorzystano
dostępne w internecie nagrania pojedynczych dźwięków instrumentów muzycznych
zarejestrowane na Uniwersytecie Iowa [32].
Wnioski płynące z wzrokowej analizy uzyskanych wykresów cech w czasie zaprezentowano
w podrozdziale.
Konstrukcja i funkcjonalność aplikacji
W ramach niniejszej pracy została stworzona aplikacja MuzoAnalizator
do analizy częstotliwościowej dźwięków muzycznych w postaci cyfrowej. Przy
użyciu tej aplikacji można wyznaczyć wartości cech opisanych w podrozdziale dla dźwięków w formacie .snd (.au). W ramach tej pracy magisterskiej
przeanalizowano dźwięki oktawy czwartej (w notacji MIDI) następujących
instrumentów: skrzypce, fagot, trąbka, klarnet. W badaniach wykorzystano
dostępne w internecie nagrania pojedynczych dźwięków instrumentów muzycznych
zarejestrowane na Uniwersytecie Iowa.
Wnioski płynące z wzrokowej analizy uzyskanych wykresów cech w czasie zaprezentowano
w podrozdziale.
MuzoAnalizator jest aplikacją napisaną w języku C++ i jest
aplikacją okienkową, a do tworzenia okien wykorzystuje ona interfejs WinAPI. Aplikacja
składa się z okna głównego i menu. Po wybraniu opcji „Otwórz” z menu możliwe
jest wskazanie pliku dźwiękowego w formacie .au (.snd), po czym w oknie głównym
wyświetlany jest oscylogram wczytanego dźwięku. W przypadku, gdy plik zawiera
dane z dwu kanałów (stereo) wyświetlony jest oscylogram obydwu kanałów, jeden
pod drugim. Analizy są przeprowadzane w tym przypadku na sygnale powstałym
przez uśrednienie wartości z obydwu kanałów za pomocą średniej arytmetycznej.
Kolejna opcja menu umożliwia wyznaczenie FFT zaznaczonego
fragmentu dźwięku. Jeśli nie zostanie zaznaczony żaden fragment dźwięku
aplikacja wyznaczy FFT dla środkowej ramki dźwięku, gdzie długość ramki wynosi
100 ms. Wybrano tu większą długość ramki, aby zapewnić większą
rozdzielczość częstotliwościową wyświetlanego widma. W przypadku FFT liczonego
na potrzeby wyznaczania wartości cech długość ramki wynosi 30 ms.
Po wybraniu opcji „Spektrogram” aplikacja oblicza obwiednie widma
dźwięku dla kolejnych ramek dźwięku tak jak to zostało opisane w podrozdziale 3.3.1,
a następnie wyświetla spektrogram w skali szarości. Kolor biały odpowiada
maksymalnym wartościom, natomiast czarny – wartościom bliskim najmniejszej
wartości występującej wśród wartości wszystkich obwiedni analizowanego dźwięku.
Na osi pionowej spektrogramu są 34 zakresy częstotliwości (zastosowano
rozdzielczość częstotliwościową równą ¼ oktawy), a na osi poziomej – kolejne
ramki.
Sekcja menu
zatytułowana „Cechy” zawiera szereg elementów umożliwiających wybór cechy do
wyliczenia. Osobną podsekcję stanowią tu cechy wyznaczane na podstawie
struktury harmonicznej. Wykres wartości wybranej cechy w czasie pojawia się w
oknie – dziecku. Na osi poziomej wykresu cechy są numery ramek, natomiast oś
pionowa jest dopasowana do wartości danej cechy dźwięku – rozciąga się od
wartości minimalnej cechy dla danego dźwięku do jego wartości maksymalnej. Ponadto
po prawej stronie osi pionowej wskazana jest wartość cechy najczęściej
występująca (moda, dominanta). Dominanta wyznaczana jest w ten sposób, że
przedział pomiędzy największą i najmniejszą wartością cechy dzielony jest na
tyle sekcji ile wynosi ilość ramek, w których szukana jest moda, a następnie
zliczane są liczby wartości należących do poszczególnych sekcji. Jako moda
przyjmowana jest średnia wartość spośród należących do sekcji o największej
liczebności. W przypadku, gdy rozkład wartości cechy jest wielomodalny
(występuje kilka dominant) wybierana jest moda najmniejsza co do wartości.
Przy zamykaniu okienka użytkownik pytany jest o chęć zapisu
wartości cechy do pliku tekstowego o nazwie związanej z daną cechą. Plik
zapisywany jest w katalogu, z którego odczytany był plik dźwiękowy. W sekcji
„Cechy” występuje jeszcze opcja umożliwiająca zapis wszystkich analiz z sekcji
„Cechy” do pliku „all.txt”.
Cechy wyliczane w aplikacji to: AudioSpectrumCentroid i
AudioSpectrumSpread z MPEG7, SpectrumCentroid i SpectrumSpread w wersji
liniowej, SpectralCentroid z MPEG7 (wyznaczany z widma Welcha), AudioSpectrumFlatness z MPEG7, wektor MFCC o
12 składowych, energia, RollOff, Flux, ZCR, częstotliwość podstawowa oraz zależności
harmoniczne: Tristimulus1, Tristimulus2, Tristimulus3, jasność, zawartość
nieparzystych i parzystych składowych harmonicznych oraz AudioHarmonicity z MPEG7 (HarmonicRatio i
UpperLimitOfHarmonicity).
Do wyznaczania cech spektralnych wykorzystywana jest analiza
fourierowska. Zastosowano tu okienkowanie oknem Hamminga, a długość ramki i przesunięcie
wynoszą odpowiednio 30 ms i 10 ms. Opis cech znajduje się w podrozdziale 3.3.
Aby lepiej zobrazować zależności pomiędzy poszczególnymi
składowymi harmonicznymi w aplikacji dodano funkcjonalność pozwalającą na
wyznaczenie wykresu nazwanego histogramem harmonicznym. Przedstawia on w formie
wykresu kolumnowego energię przenoszoną przez poszczególne składowe harmoniczne
wyrażoną względem energii przenoszonej przez wszystkie składowe harmoniczne
razem. Aby ustrzec się przed analizowaniem składu harmonicznego w obszarze
ataku, lub wybrzmiewania dźwięku (gdzie skład harmoniczny jest nieustalony) do
wyznaczenia tej charakterystyki używane są ramki rozciągające się od 1/3 do 2/3
całego dźwięku. Dodatkowo przy wyznaczaniu histogramu brane są pod uwagę tylko
te ramki, w których rozpoznana częstotliwość podstawowa (F0) jest bliska modzie,
czyli nie odbiega o więcej niż 50 centów (pół półtonu) w górę lub w dół od
dominanty częstotliwości podstawowych z tego zakresu. Przy wyznaczaniu mody
stosowana jest poprawka na błędy oktawowe – jeśli sekcja zawierająca
częstotliwości o połowę niższe zawiera co najmniej 80% ilości elementów
występujących w sekcji najbardziej licznej to jako moda przyjmowana jest sekcja
zawierająca częstotliwości o połowę niższe. Aby upewnić się, że histogram jest
wyznaczony dla prawidłowej wartości F0 na wykresie histogramu harmonicznego w
prawym górnym rogu wyświetlana jest wartość mody, na podstawie której ten
wykres został sporządzony. Opcja wyznaczania histogramu harmonicznego występuje
jako ostatnia pozycja w menu głównym aplikacji.
Brak komentarzy:
Prześlij komentarz