W przeszłości używałem strumienia spektralnego i wydaje się, że działa dobrze. Podstawową ideą jest stworzenie spektrogramu sygnału w pasmach, na których Ci zależy. Załóżmy, że twoja częstotliwość jest na osi y, a twój czas jest na osi x, podobnie .
Oznacza to, że twój spektrogram jest macierzą. Każda kolumna reprezentuje wartość bezwzględną FFT jednego ujęcia w czasie twojego sygnału, a każdy rząd przedstawia, jak zmienia się energia z jednego pasma w czasie.
Teraz po prostu weź różnicę kolumn. To znaczy, weź kolumnę i odejmij od siebie kolumnę przed nią i zrób to dla wszystkich kolumn. (Oczywiście pozostawienie samych kolumn początkowych). Następnie zsumuj wszystkie pasma. Oznacza to, że po prostu zsumuj wszystkie wiersze razem.
Będziesz skończyć z sygnałem 1-D, który koduje sygnał początkami . Dzięki temu dowiesz się, gdzie zaczyna się Twój głos.
EDYTOWAĆ:
Teraz, gdy wykryłeś początek, jeśli chcesz wykryć coś przeciwnego (to znaczy, gdy sygnał przechodzi z braku aktywności do działania), strumień spektralny faktycznie daje ci tę informację. Gdziekolwiek masz początek, będziesz miał dodatni szczyt, a gdziekolwiek masz „deset” (z powodu braku lepszego słowa), będziesz miał ujemny szczyt.
Po prostu wziąłbym pierwszy dodatni pik i ostatni ujemny pik, aby oznaczyć całkowity czas rozpoczęcia i zatrzymania mojego sygnału.