Per informazioni di base, vedi "Alcuni sfondi" più in basso.
Ho una lista che assomiglia a questa:
Start-Time-In-Seconds;End-Time-In-Seconds
1;2
4;6
12;15
...
Questo funziona insieme a un file wave agendo come una lista di elementi. Quindi le parti desiderate sono 1- > 2, 4- > 6, 12- > 15, ...
Se la distanza tra End-Time-In-Seconds dell'elemento precedente e Start-Time-In-Seconds dell'elemento corrente è inferiore a una soglia di secondi (lo chiamo Pausendauer ) I unire questi due, cioè se la soglia è di 3 secondi, la lista sarà
Start-Time-In-Seconds;End-Time-In-Seconds
1;6
12;15
...
Se la distanza tra Start-Time-In-Seconds e End-Time-In-Seconds è al di sotto di una soglia di secondi (io la chiamo Minimallänge ) scarto questo campione, cioè se la soglia è 4 secondi quindi la lista sarà
Start-Time-In-Seconds;End-Time-In-Seconds
1;6
...
Che aspetto potrebbe avere un algoritmo che itera (intelligentemente) attraverso tutte le combinazioni di Minimallänge e Pausendauer per mirare a un certo numero di voci? Esempio:
Il numero di voci dovrebbe essere 3. Dato il numero 3 l'algoritmo dovrebbe iterare (intelligentemente) attraverso tutte le combinazioni di Minimallänge e Pausendauer per produrre qualcosa come questo:
Start-Time-In-Seconds;End-Time-In-Seconds
1;12
18;20
50;100
E questo dovrebbe essere tutto. Si nota che non ho aggiunto "..." ad esso poiché l'elenco finale consiste solo di tre voci.
Alcuni sfondi : il file wave contiene diverse interviste che vengono registrate continuamente con pause intermedie. Un VAD mi ha dato delle aree in cui si presume che la voce sia. Poiché conosco il numero di conversazioni totali (per esempio, 3, in genere più, motivo per cui ciò ha senso), il mio obiettivo è determinarle automaticamente. La cutlist è l'output raw del mio VAD che voglio trasformare in una lista di cut utilizzabile per ffmpeg.
PS : se puoi, condividi un algoritmo in c #.