Poniżej znajduje się sygnał reprezentujący nagranie osoby mówiącej. Na tej podstawie chciałbym stworzyć serię mniejszych sygnałów audio. Chodzi o to, aby wykryć, kiedy „ważny” dźwięk zaczyna się i kończy, i użyć ich do markerów do stworzenia nowego fragmentu dźwięku. Innymi słowy, chciałbym użyć ciszy jako wskaźników, kiedy „fragment” audio zaczął się lub zatrzymał i na tej podstawie tworzyć nowe bufory audio.
Na przykład, jeśli ktoś nagrywa siebie mówiącego
Hi [some silence] My name is Bob [some silence] How are you?
chciałbym z tego zrobić trzy klipy audio. Ten, który mówi Hi, ten, który mówi My name is Bobi ten, który mówi How are you?.
Moim początkowym pomysłem jest ciągłe sprawdzanie bufora audio, gdzie są obszary o niskiej amplitudzie. Może mógłbym to zrobić, pobierając pierwsze dziesięć próbek, uśredniając wartości, a jeśli wynik jest niski, oznacz to jako ciche. Przejdę do bufora, sprawdzając kolejne dziesięć próbek. Zwiększając w ten sposób mogłem wykryć, gdzie koperty zaczynają się i kończą.
Jeśli ktoś ma jakieś porady na temat dobrego, ale prostego sposobu na zrobienie tego, byłoby świetnie. Dla moich celów rozwiązanie może być dość szczątkowe.
Nie jestem profesjonalistą w DSP, ale rozumiem kilka podstawowych pojęć. Robiłbym to również programowo, więc najlepiej byłoby mówić o algorytmach i próbkach cyfrowych.
Dzięki za wszelką pomoc!

EDYCJA 1
Jak dotąd świetne odpowiedzi! Chciałem tylko wyjaśnić, że nie dotyczy to audio na żywo i sam będę pisał algorytmy w C lub Objective-C, więc wszelkie rozwiązania korzystające z bibliotek nie są tak naprawdę opcją.
