Я использовал спектральный поток в прошлом, и это, кажется, работает хорошо. Основная идея заключается в том, чтобы создать спектрограмму вашего сигнала по всем интересующим вас диапазонам. Давайте предположим, что ваша частота находится на оси Y, а ваше время на оси X, вот так .
Это означает, что ваша спектрограмма является матрицей. Каждый столбец представляет абсолютное значение БПФ одного снимка во времени вашего сигнала, и каждый ряд представляет, как энергия одной полосы изменяется со временем.
Теперь просто возьмите разницу в столбцах. То есть возьмите столбец и вычтите из себя столбец перед ним, и сделайте для всех столбцов. (Оставляя только стартовые столбцы, очевидно). Затем сумма по всем группам. То есть просто сложите все строки вместе.
Вы будете в конечном итоге с 1-D сигнала , который кодирует сигнал вашего началами . Это скажет вам, где начинается ваш голос.
РЕДАКТИРОВАТЬ:
Теперь, когда вы обнаружили начала, если вы хотите обнаружить противоположное (то есть, когда сигнал переходит от активности к отсутствию), спектральный поток фактически дает вам эту информацию. Где бы у вас ни начался приступ, у вас будет положительный пик, а там, где у вас есть «отклонение» (из-за отсутствия лучшего слова), у вас будет отрицательный пик.
Я бы просто взял первый положительный пик и последний отрицательный пик, чтобы отметить общее время начала и окончания моего сигнала.