Раніше я використовував спектральний потік і, здається, він працює добре. Основна ідея полягає в тому, щоб створити спектрограму свого сигналу в межах смуг, які вам цікаві. Припустимо, що ваша частота знаходиться на осі y, а ваш час - на осі x, як .
Це означає, що ваша спектрограма є матрицею. Кожен стовпець представляє абсолютне значення FFT одного оснащеного часу в часі вашого сигналу, і кожен рядок відображає, як з часом змінюється енергія однієї смуги.
Тепер просто візьміть різницю стовпців. Тобто візьміть стовпчик і відніміть із себе стовпець перед ним, і зробіть для всіх стовпців. (Очевидно, залишаючи стартові стовпці в спокої). Потім підсумовуйте всі смуги. Тобто, просто підсумовуйте всі рядки разом.
Ви будете в кінцевому підсумку з 1-D сигналу , який кодує сигнал вашого началами . Це підкаже, звідки починається ваш голос.
Редагувати:
Тепер, коли ви виявили набори, якщо ви хочете виявити протилежне (тобто, коли сигнал переходить від активності до жодної), спектральний потік фактично дає вам цю інформацію. Де б у вас не було наступу, у вас буде позитивний пік, і де б у вас не було десятки (за відсутністю кращого слова), ви матимете негативний пік.
Я б просто взяв перший позитивний пік і останній негативний пік, щоб позначити загальний час початку та зупинки мого сигналу.