Один из моих проектов выходного дня привел меня в глубокие воды обработки сигналов. Как и во всех моих проектах кода, которые требуют некоторой тяжелой математики, я более чем рад найти свой путь к решению, несмотря на отсутствие теоретического обоснования, но в этом случае у меня его нет, и я хотел бы получить несколько советов по моей проблеме а именно: я пытаюсь понять, когда именно зрители смеются во время телешоу.
Я потратил довольно много времени на изучение подходов машинного обучения для обнаружения смеха, но понял, что это больше связано с обнаружением отдельного смеха. У двухсот человек, смеющихся одновременно, будут разные акустические свойства, и моя интуиция заключается в том, что их следует различать с помощью гораздо более грубых методов, чем нейронная сеть. Я могу быть совершенно не прав, хотя! Был бы признателен за мысли по этому вопросу.
Вот что я попробовал до сих пор: я разделил пятиминутный отрывок из недавнего эпизода Saturday Night Live на два вторых клипа. Затем я пометил эти «смех» или «не смеется». Используя экстрактор функций Librosa MFCC, я запустил кластеризацию данных K-Means и получил хорошие результаты - эти два кластера очень аккуратно сопоставились с моими метками. Но когда я попытался перебрать более длинный файл, прогнозы не оправдались.
Что я собираюсь попробовать сейчас: я собираюсь быть более точным в создании этих клипов для смеха. Вместо того, чтобы делать слепое разделение и сортировку, я собираюсь вручную извлечь их, чтобы никакой диалог не загрязнял сигнал. Затем я разделю их на клипы четверти секунды, вычислю их MFCC и использую их для обучения SVM.
Мои вопросы на данный момент:
Есть ли в этом смысл?
Может ли статистика помочь здесь? Я прокручивал в режиме просмотра спектрограммы Audacity и довольно четко вижу, где происходит смех. В спектрограмме логарифма речь имеет очень характерный, «нахмуренный» вид. Напротив, смех покрывает широкий спектр частот довольно равномерно, почти как нормальное распределение. Даже можно визуально отличить аплодисменты от смеха по более ограниченному набору частот, представленных в аплодисментах. Это заставляет меня думать о стандартных отклонениях. Я вижу, что-то называется тестом Колмогорова-Смирнова, может ли это быть полезным здесь? (Вы можете видеть смех на изображении выше как стену апельсина, поражающую на 45% пути.)
Линейная спектрограмма, кажется, показывает, что смех более энергичен на низких частотах и затухает к более высоким частотам - означает ли это, что он квалифицируется как розовый шум? Если это так, может ли это быть точкой опоры для проблемы?
Я прошу прощения, если я неправильно использовал любой жаргон, я был в Википедии довольно много для этого и не удивлюсь, если я получу некоторую путаницу.