Di bawah ini adalah sinyal yang mewakili rekaman seseorang berbicara. Saya ingin membuat serangkaian sinyal audio yang lebih kecil berdasarkan ini. Idenya adalah untuk mendeteksi kapan suara 'penting' dimulai dan diakhiri dan gunakan itu untuk spidol untuk membuat potongan audio baru. Dengan kata lain, saya ingin menggunakan keheningan sebagai indikator kapan audio 'chunk' mulai atau berhenti dan membuat buffer audio baru berdasarkan ini.
Jadi misalnya, jika seseorang mencatat dirinya berkata
Hi [some silence] My name is Bob [some silence] How are you?
maka saya ingin membuat tiga klip audio dari ini. Satu yang mengatakan Hi
, satu yang mengatakan My name is Bob
dan satu lagi yang mengatakan How are you?
.
Ide awal saya adalah menjalankan buffer audio terus-menerus memeriksa di mana ada area amplitudo rendah. Mungkin saya bisa melakukan ini dengan mengambil sepuluh sampel pertama, rata-rata nilainya dan jika hasilnya rendah maka label sebagai diam. Saya akan melanjutkan buffer dengan memeriksa sepuluh sampel berikutnya. Semakin bertambah dengan cara ini saya bisa mendeteksi di mana amplop mulai dan berhenti.
Jika ada yang punya saran tentang cara yang baik, tetapi sederhana untuk melakukan ini, itu akan bagus. Untuk tujuan saya solusinya bisa sangat sederhana.
Saya bukan pro di DSP, tetapi mengerti beberapa konsep dasar. Juga, saya akan melakukan ini secara terprogram sehingga akan lebih baik untuk berbicara tentang algoritma dan sampel digital.
Terima kasih atas semua bantuannya!
EDIT 1
Sejauh ini tanggapan luar biasa! Hanya ingin mengklarifikasi bahwa ini bukan pada audio langsung dan saya akan menulis sendiri algoritma di C atau Objective-C sehingga solusi apa pun yang menggunakan perpustakaan bukan pilihan.