Jeden z moich weekendowych projektów wprowadził mnie w głębokie wody przetwarzania sygnałów. Podobnie jak w przypadku wszystkich moich projektów kodu, które wymagają trochę matematyki, cieszę się, że majsterkuję, aby znaleźć rozwiązanie pomimo braku teoretycznego uziemienia, ale w tym przypadku nie mam żadnego i chętnie poradzę na mój problem , a mianowicie: Staram się dowiedzieć, kiedy publiczność śmieje się podczas programu telewizyjnego.
Spędziłem sporo czasu czytając metody uczenia maszynowego do wykrywania śmiechu, ale zdałem sobie sprawę, że to więcej wspólnego z wykrywaniem indywidualnego śmiechu. Dwieście osób śmiejących się jednocześnie będzie miało znacznie różne właściwości akustyczne, a moją intuicją jest to, że można je odróżnić dzięki znacznie bardziej brutalnym technikom niż sieć neuronowa. Jednak mogę się całkowicie mylić! Byłbym wdzięczny za przemyślenia na ten temat.
Oto, co do tej pory próbowałem: podzieliłem pięciominutowy fragment z ostatniego odcinka Saturday Night Live na dwa sekundy. Następnie oznaczyłem te „śmiechem” lub „śmiechem”. Korzystając z ekstraktora funkcji MFCC firmy Librosa, uruchomiłem klaster K-Means na danych i uzyskałem dobre wyniki - dwa klastry bardzo dobrze odwzorowane na moich etykietach. Ale kiedy próbowałem iterować przez dłuższy plik, prognozy nie miały wpływu na wodę.
Co spróbuję teraz: Będę bardziej precyzyjny w tworzeniu tych klipów śmiechu. Zamiast ślepego podziału i sortowania, zamierzam ręcznie je wyodrębnić, aby żaden dialog nie zakłócał sygnału. Następnie podzielę je na ćwierć sekundy klipów, obliczę ich MFCC i wykorzystam do wyszkolenia SVM.
Moje pytania w tym miejscu:
Czy coś z tego ma sens?
Czy statystyki mogą tutaj pomóc? Przewijałem się w trybie widoku spektrogramu Audacity i widzę dość wyraźnie, gdzie dochodzi do śmiechu. W logogramie mocy mowa ma bardzo charakterystyczny „zmarszczony” wygląd. Natomiast śmiech obejmuje szerokie spektrum częstotliwości dość równomiernie, prawie jak normalny rozkład. Możliwe jest nawet wizualne odróżnienie oklasków od śmiechu dzięki bardziej ograniczonemu zestawowi częstotliwości reprezentowanych w oklaskach. To sprawia, że myślę o standardowych odchyleniach. Widzę, że istnieje coś, co nazywa się testem Kołmogorowa – Smirnowa, czy to może być pomocne tutaj? (Na powyższym zdjęciu widać śmiech jako ścianę pomarańczy uderzającą w 45% do środka.)
Wydaje się, że spektrogram liniowy pokazuje, że śmiech jest bardziej energiczny na niższych częstotliwościach i zanika w kierunku wyższych częstotliwości - czy to oznacza, że można go zakwalifikować jako różowy szum? Jeśli tak, to czy mogłoby to być przeczucie problemu?
Przepraszam, jeśli niewłaściwie użyłem żargonu, jestem na Wikipedii dość często i nie zdziwiłbym się, gdyby mi pomieszano.