Uno de mis proyectos de fin de semana me ha llevado a las aguas profundas del procesamiento de señales. Al igual que con todos mis proyectos de código que requieren algunas matemáticas pesadas, estoy más que feliz de encontrar una solución a pesar de la falta de fundamento teórico, pero en este caso no tengo ninguno, y me encantaría recibir algunos consejos sobre mi problema , a saber: estoy tratando de averiguar exactamente cuándo la audiencia en vivo se ríe durante un programa de televisión.
Pasé bastante tiempo leyendo sobre enfoques de aprendizaje automático para detectar la risa, pero me di cuenta de que eso tiene más que ver con la detección de la risa individual. Doscientas personas que se ríen a la vez tendrán propiedades acústicas muy diferentes, y mi intuición es que deberían distinguirse a través de técnicas mucho más crudas que una red neuronal. Sin embargo, ¡puedo estar completamente equivocado! Agradecería pensamientos sobre el asunto.
Esto es lo que he probado hasta ahora: corté un extracto de cinco minutos de un episodio reciente de Saturday Night Live en dos segundos clips. Luego etiqueté estas "risas" o "no-risas". Usando el extractor de funciones MFCC de Librosa, ejecuté un clúster de K-Means en los datos y obtuve buenos resultados: los dos clústeres se asignaron muy bien a mis etiquetas. Pero cuando intenté recorrer el archivo más largo, las predicciones no aguantaron.
Lo que voy a intentar ahora: voy a ser más preciso sobre la creación de estos clips de risa. En lugar de dividir y ordenar a ciegas, voy a extraerlos manualmente, para que ningún diálogo contamine la señal. Luego los dividiré en clips de un cuarto de segundo, calcularé los MFCC de estos y los usaré para entrenar un SVM.
Mis preguntas en este punto:
¿Tiene algo de esto sentido?
¿Pueden ayudar las estadísticas aquí? He estado desplazándome por el modo de vista de espectrograma de Audacity y puedo ver muy claramente dónde se producen las risas. En un espectrograma de potencia de registro, el habla tiene una apariencia muy distintiva, "surcada". En contraste, la risa cubre un amplio espectro de frecuencia de manera bastante uniforme, casi como una distribución normal. Incluso es posible distinguir visualmente los aplausos de la risa por el conjunto más limitado de frecuencias representadas en los aplausos. Eso me hace pensar en desviaciones estándar. Veo que hay algo llamado prueba de Kolmogorov-Smirnov, ¿podría ser útil aquí? (Puedes ver la risa en la imagen de arriba como una pared de naranja golpeando al 45% del camino).
El espectrograma lineal parece mostrar que la risa es más enérgica en las frecuencias más bajas y se desvanece hacia las frecuencias más altas. ¿Significa esto que califica como ruido rosa? Si es así, ¿podría ser un punto de apoyo en el problema?
Pido disculpas si hice mal uso de alguna jerga, he estado en Wikipedia bastante para esta y no me sorprendería si me metiera un poco.