Um dos meus projetos de fim de semana me levou às águas profundas do processamento de sinais. Como em todos os meus projetos de código que exigem alguma matemática pesada, estou mais do que feliz em tentar encontrar uma solução, apesar da falta de fundamentação teórica, mas, neste caso, não tenho nenhuma e gostaria de alguns conselhos sobre o meu problema. , a saber: estou tentando descobrir exatamente quando a audiência ao vivo ri durante um programa de TV.
Passei bastante tempo lendo abordagens de aprendizado de máquina para detectar risos, mas percebi que isso tem mais a ver com a detecção de risos individuais. Duzentas pessoas rindo ao mesmo tempo terão propriedades acústicas muito diferentes, e minha intuição é que elas sejam distinguíveis através de técnicas muito mais cruéis do que uma rede neural. Eu posso estar completamente errado! Apreciaria pensamentos sobre o assunto.
Aqui está o que eu tentei até agora: cortei um trecho de cinco minutos de um episódio recente do Saturday Night Live em dois segundos. Eu então rotulei essas "risadas" ou "sem risadas". Usando o extrator de recursos MFCC da Librosa, executei um cluster K-Means nos dados e obtive bons resultados - os dois clusters mapearam muito bem meus rótulos. Mas quando eu tentei percorrer o arquivo mais longo, as previsões não ficaram vazias.
O que vou tentar agora: vou ser mais preciso sobre a criação desses clipes de riso. Em vez de fazer uma divisão e classificação às cegas, vou extraí-las manualmente, para que nenhum diálogo polua o sinal. Depois, dividirei-os em clipes de quarto de segundo, calcularei o MFCC deles e os utilizarei para treinar um SVM.
Minhas perguntas neste momento:
Isso faz sentido?
As estatísticas podem ajudar aqui? Andei rolando pelo modo de visualização em espectrograma do Audacity e posso ver claramente onde as risadas ocorrem. Em um espectrograma de potência de log, a fala tem uma aparência muito distinta e "sulcada". Em contraste, o riso cobre um amplo espectro de frequência de maneira bastante uniforme, quase como uma distribuição normal. É até possível distinguir visualmente aplausos de risos pelo conjunto mais limitado de frequências representadas em aplausos. Isso me faz pensar em desvios padrão. Vejo que há algo chamado teste de Kolmogorov – Smirnov, isso pode ser útil aqui? (Você pode ver a risada na imagem acima como uma parede de laranja atingindo 45% do caminho.)
O espectrograma linear parece mostrar que o riso é mais enérgico nas frequências mais baixas e desaparece em direção às frequências mais altas - isso significa que se qualifica como ruído rosa? Em caso afirmativo, isso poderia ser uma base para o problema?
Peço desculpas se eu usei mal algum jargão, estive bastante na Wikipedia por este e não ficaria surpreso se eu me confundisse.