Di seguito è riportato un segnale che rappresenta una registrazione di qualcuno che parla. Vorrei creare una serie di segnali audio più piccoli basati su questo. L'idea è di rilevare quando il suono "importante" inizia e finisce e usare quelli per i marcatori per creare un nuovo frammento di audio. In altre parole, vorrei usare il silenzio come indicatore di quando un "blocco" audio è stato avviato o interrotto e creare nuovi buffer audio basati su questo.
Quindi, ad esempio, se una persona si registra dicendo
Hi [some silence] My name is Bob [some silence] How are you?
quindi vorrei fare tre clip audio da questo. Uno che dice Hi
, uno che dice My name is Bob
e uno che dice How are you?
.
La mia idea iniziale è quella di passare attraverso il buffer audio controllando costantemente dove ci sono aree di bassa ampiezza. Forse potrei farlo prendendo i primi dieci campioni, calcolando la media dei valori e se il risultato è basso, etichettarlo come silenzioso. Procederei nel buffer controllando i successivi dieci campioni. Incrementando in questo modo ho potuto rilevare dove iniziano e si fermano le buste.
Se qualcuno ha qualche consiglio su un modo buono, ma semplice per farlo, sarebbe fantastico. Per i miei scopi la soluzione può essere abbastanza rudimentale.
Non sono un professionista in DSP, ma capisco alcuni concetti di base. Inoltre, lo farei a livello di codice, quindi sarebbe meglio parlare di algoritmi e campioni digitali.
Grazie per tutto l'aiuto!
MODIFICA 1
Grandi risposte finora! Volevo solo chiarire che questo non è sull'audio dal vivo e scriverò io stesso gli algoritmi in C o Objective-C, quindi tutte le soluzioni che usano le librerie non sono davvero un'opzione.