J'ai utilisé le flux spectral dans le passé et cela semble bien fonctionner. L'idée de base est de créer un spectrogramme de votre signal, à travers les bandes qui vous intéressent. Supposons que votre fréquence se trouve sur l'axe des y et votre temps sur l'axe des x, comme ça .
Cela signifie que votre spectrogramme est une matrice. Chaque colonne représente la valeur absolue de la FFT d'un instantané dans le temps de votre signal, et chaque ligne représente comment l'énergie d'une bande change au fil du temps.
Maintenant, prenez simplement la différence des colonnes. C'est-à-dire, prenez une colonne et soustrayez d'elle la colonne qui la précède, et faites pour toutes les colonnes. (Laissant les colonnes de départ seules évidemment). Additionnez ensuite toutes les bandes. Autrement dit, additionnez simplement toutes les lignes ensemble.
Vous vous retrouverez avec un signal 1-D qui codifie vos débuts de signal . Cela vous indiquera où commence votre voix.
ÉDITER:
Maintenant que vous avez détecté des débuts, si vous voulez détecter le contraire (c'est-à-dire lorsqu'un signal passe d'une activité à aucune), le flux spectral vous donne en fait cette information. Partout où vous avez un début, vous aurez un pic positif, et partout où vous aurez un «déset» (faute d'un meilleur mot), vous aurez un pic négatif.
Je prendrais simplement le premier pic positif et le dernier pic négatif pour marquer les heures totales de démarrage et d'arrêt de mon signal.