Uno dei miei progetti del fine settimana mi ha portato nelle acque profonde dell'elaborazione del segnale. Come per tutti i miei progetti di codice che richiedono un po 'di matematica pesante, sono più che felice di cercare una soluzione nonostante la mancanza di basi teoriche, ma in questo caso non ne ho, e mi piacerebbe qualche consiglio sul mio problema , vale a dire: sto cercando di capire esattamente quando il pubblico dal vivo ride durante uno spettacolo televisivo.
Ho trascorso un bel po 'di tempo a leggere gli approcci di apprendimento automatico per rilevare le risate, ma ho capito che ha più a che fare con il rilevamento delle risate individuali. Duecento persone che ridono contemporaneamente avranno proprietà acustiche molto diverse e la mia intuizione è che dovrebbero essere distinguibili attraverso tecniche molto più grossolane rispetto a una rete neurale. Potrei sbagliarmi completamente, però! Gradirei pensieri sulla questione.
Ecco cosa ho provato finora: ho estratto un estratto di cinque minuti da un recente episodio di Saturday Night Live in due secondi clip. Ho quindi etichettato queste "risate" o "non-risate". Usando l'estrattore di funzionalità MFCC di Librosa, ho quindi eseguito un cluster K-Means sui dati e ho ottenuto buoni risultati: i due cluster sono stati mappati in modo molto preciso sulle mie etichette. Ma quando ho provato a scorrere il file più lungo, le previsioni non contenevano acqua.
Cosa proverò ora: sarò più preciso sulla creazione di queste clip di risate. Piuttosto che fare una divisione e un ordinamento cieco, ho intenzione di estrarli manualmente, in modo che nessun dialogo inquini il segnale. Quindi li suddividerò in clip di un quarto di secondo, calcolerò questi MFCC e li userò per addestrare un SVM.
Le mie domande a questo punto:
Qualcuno di questo ha senso?
Le statistiche possono aiutare qui? Sto scorrendo nella modalità di visualizzazione dello spettrogramma di Audacity e posso vedere chiaramente dove si verificano le risate. In uno spettrogramma di potenza del tronco, il linguaggio ha un aspetto molto particolare, "solcato". Al contrario, le risate coprono un ampio spettro di frequenze in modo abbastanza uniforme, quasi come una normale distribuzione. È persino possibile distinguere visivamente gli applausi dalle risate dal più limitato insieme di frequenze rappresentate negli applausi. Questo mi fa pensare a deviazioni standard. Vedo che c'è qualcosa chiamato il test di Kolmogorov – Smirnov, potrebbe essere utile qui? (Puoi vedere la risata nell'immagine sopra come un muro di arance che colpisce il 45% del cammino).
Lo spettrogramma lineare sembra mostrare che la risata è più energica alle frequenze più basse e si attenua verso le frequenze più alte - significa che si qualifica come rumore rosa? In tal caso, potrebbe essere un punto d'appoggio sul problema?
Mi scuso se ho fatto un uso improprio di un gergo, sono stato un po 'su Wikipedia per questo e non sarei sorpreso se mi facessi un po' di confusione.