Czy to poprawna interpretacja kroku DCT w obliczeniach MFCC?

9

To kontynuacja dyskusji tutaj . Chciałbym tam skomentować, ale nie mam 50 powtórzeń, więc zadaję nowe pytanie.

Oto, w jaki sposób rozumiem krok DCT w procesie obliczania MFCC: Uzasadnieniem tego jest oddzielenie korelacji w logarytmicznych wielkościach widmowych (od banku filtrów) z powodu nakładania się filtrów. Zasadniczo DCT wygładza reprezentację widma podaną przez te logarytmiczne wielkości widmowe.

Czy słusznie byłoby powiedzieć, że niebieska linia na poniższym obrazku reprezentuje widmo reprezentowane przez wektor wielkości logarytmiczno-widmowych, a czerwona linia to ten wektor, który kiedyś był DCT?

DC-ified logarytmiczne widma magnetyczne (tj. MFCC) vs. zaledwie logarytmiczne wielkości spektralne ???

acannon828
źródło
skąd mogę pobrać kod do testowania?
auraham
Zdjęcie poniżej? Brak obrazu w poście.
Eric Platon,

Odpowiedzi:

16

Zacznę od początku. Standardowy sposób obliczania cepstrum jest następujący:

C(x(t))=F1[log(F[x(t)])]

W przypadku współczynników MFCC sprawa jest nieco inna, ale wciąż podobna.

Po wstępnym uwydatnieniu i okienkowaniu obliczasz DFT sygnału i stosujesz zestaw filtrów nakładających się trójkątnych filtrów, oddzielonych w skali mel (chociaż w niektórych przypadkach skala liniowa jest lepsza niż mel):

wprowadź opis zdjęcia tutaj

W odniesieniu do definicji cepstrum reprezentowałeś teraz obwiednię widma (widmo zredukowane) w skali częstotliwości mel. Jeśli to reprezentujesz, zobaczysz, że to trochę przypomina twoje pierwotne spektrum sygnału.

Następnym krokiem jest obliczenie logarytmu współczynników uzyskanych powyżej. Wynika to z faktu, że cepstrum ma być homomorficzną transformacją, która oddziela sygnał od odpowiedzi impulsowej dróg głosowych itp. Jak?

Oryginalny sygnał mowy s(t) jest w większości splecione z odpowiedzią impulsową h(t) układu głosowego:

s^(t)=s(t)h(t)

Splot w dziedzinie częstotliwości jest zwielokrotnieniem widm:

S.^(fa)=S.(fa)H.(fa)

Można je podzielić na dwie części, w oparciu o następującą właściwość: log(zab)=log(za)+log(b).

Oczekujemy również, że odpowiedź impulsowa nie zmienia się w czasie, dlatego można ją łatwo usunąć, odejmując średnią. Teraz rozumiecie, dlaczego bierzemy logarytmy energii naszego zespołu.

Ostatnim krokiem w definicji cepstrum będzie odwrotna transformata Fouriera fa-1. Problem polega na tym, że mamy tylko nasze log-energie, brak informacji o fazie, więc po zastosowaniu ifftotrzymujemy współczynniki o złożonej wartości - niezbyt eleganckie, aby cały ten wysiłek był zwartą reprezentacją. Chociaż możemy wziąć dyskretną transformację kosinusową, która jest „uproszczoną” wersją FT i uzyskać wartościowe współczynniki! Tę procedurę można zwizualizować jako dopasowanie cosinusoidów do naszych współczynników energii logarytmicznej. Może pamiętasz, że cepstrum jest również nazywane „spektrum spektrum”? To jest właśnie ten krok - szukamy jakiejkolwiek częstotliwości w naszych współczynnikach obwiedni energii logarytmicznej.

wprowadź opis zdjęcia tutaj

Teraz widzisz, że teraz trudno zrozumieć, jak wyglądało oryginalne spektrum. Dodatkowo zwykle bierzemy tylko pierwsze 12 MFCC, ponieważ wyższe opisują szybkie zmiany energii logarytmicznej, co zwykle pogarsza wskaźnik rozpoznawania. Powody podjęcia DCT były następujące:

  • Pierwotnie musisz wykonać IFFT, ale łatwiej jest uzyskać rzeczywiste współczynniki z DCT. Ponadto nie mamy już pełnego spektrum (wszystkie przedziały częstotliwości), ale współczynniki energii w bankach filtrów mel, dlatego użycie IFFT jest nieco przesadne.

  • Na pierwszym rysunku widać, że banki filtrów nakładają się, więc energia z sąsiednich jest rozdzielana między dwa - DCT pozwala na ich korelację. Pamiętaj, że jest to dobra właściwość na przykład w przypadku modeli mieszanki Gaussa, w których można użyć diagonalnych macierzy kowariancji (brak korelacji między innymi współczynnikami), zamiast pełnych (wszystkie współczynniki są skorelowane) - to bardzo upraszcza.

  • Innym sposobem dekorelacji współczynników częstotliwości mel byłby PCA (Principal Component Analysis), technika stosowana wyłącznie w tym celu. Na nasze szczęście udowodniono, że DCT jest bardzo dobrym przybliżeniem PCA, jeśli chodzi o sygnały korelujące, stąd kolejna zaleta stosowania dyskretnej transformacji kosinusowej.


Trochę literatury:

Hyoung-Gook Kim, Nicolas Moreau, Thomas Sikora - MPEG-7 Audio and Beyond: Indeksowanie i wyszukiwanie treści audio

jojek
źródło
1
Dlaczego nie możemy pobrać wartości bezwzględnej liczb zespolonych z IFFT? Jeśli liczby zespolone są znacznie trudniejsze do opanowania, dlaczego kiedykolwiek bierzemy IFFT przy obliczaniu cepstrum, a nie tylko zawsze robimy DCT? Dziękuję za wyjaśnienie. Ta liczba była szczególnie pomocna.
acannon828
1
@ acannon828: Proszę zobaczyć 3 ostatnie punkty mojej edytowanej odpowiedzi. Mam nadzieję, że teraz wszystko wyjaśnia.
jojek
Świetna odpowiedź. Każda literatura, którą możesz do tego dołączyć.
Bob Burt,
1
@BobBurt: Proszę bardzo!
jojek
Dzięki za książkę. Większość rzeczy wydaje się wyjaśniona w tym. Czy książka obejmuje również teorię dotyczącą układu głosowego - wydaje mi się, że nie jestem w stanie znaleźć nic z tym związanego.
Bob Burt,
3

Więcej niż wygładzanie DCT zmniejsza liczbę wymiarów potrzebnych do przedstawienia widma. DCT jest dobre dla redukcji wymiarowości, ponieważ ma tendencję do zagęszczania większości energii widma w pierwszych kilku współczynnikach.

Aaron
źródło
Dzięki. Pomogło mi to zrozumieć, co @pichenettes oznacza redukcja wymiarowości.
acannon828
3

Uzasadnieniem tego jest oddzielenie korelacji w logarytmicznych wielkościach spektralnych (od banku filtrów) z powodu nakładania się filtrów. Zasadniczo DCT wygładza reprezentację widma podaną przez te logarytmiczne wielkości widmowe.

To jest niepoprawne. Istnieje korelacja między logarytmicznymi wielkościami widmowymi nie tylko dlatego, że się pokrywają, ale także dlatego, że żadna sekwencja liczb nie reprezentuje „znaczącej” (jak w przypadku naturalnej mowy i dźwięku) serii logarytmicznej wielkości widmowej. „znaczące” logarytmiczne wielkości widmowe wydają się być raczej gładkie, z ogólnym spadkiem energii na wyższych częstotliwościach itp. Można powiedzieć, że wymiar przestrzeni wszystkich „znaczących” logarytmicznych wektorów spektralnych jest mniejszy niż 40 lub dowolna liczba używanych pasm; a DCT można postrzegać jako redukcję wymiarów w celu mapowania 40-kanałowych danych na tej mniejszej przestrzeni.

Zasadniczo DCT wygładza reprezentację widma podaną przez te logarytmiczne wielkości widmowe.

DCT nie wygładza. Wygładzanie jest widoczne podczas rekonstrukcji z danych DCT - wygładzenie wynika z utraty informacji przez DCT i następującego po nim skrótu współczynnika.

Ale współczynniki MFCC nie przechowują wygładzonego widma - przechowuje sekwencję nieskorelowanych współczynników DCT.

fenenety
źródło