Saya sudah membaca banyak pertanyaan tentang SO, dan terus terang, masing-masing dari mereka tidak menjelaskan cara khusus untuk melakukannya. Ada yang bilang "do FFT" dan ada yang bilang "zero crossing" dll. Tapi saya hanya mengerti sejauh mana input audio digital terdiri dari array amplitudo untuk frekuensi tertentu dan well .. Tidak benar-benar tahu banyak di luar itu.
Sekarang saya tahu teorema Nyquist, frekuensi, amplitudo, seri Fourier dll, dan itu dari 2-3 tahun yang lalu ketika saya melakukan itu di program universitas saya dalam beberapa semester. Tapi saat itu kami benar-benar tidak banyak diajarkan penggunaan Fourier di dunia nyata, dan saya tidak repot-repot menggali lebih dalam tentang subjek di luar pembelajaran hanya cukup untuk melewati subjek. Tapi sekarang aku harus menggunakan semua itu.
Berikut cuplikan dari suara yang saya coba deteksi:
Jelas suara memiliki grafik unik. Saya hanya ingin memahami cara mengekstrak karakteristik unik khusus mereka untuk garis runcing unik mereka dalam grafik. Seperti apa amplitudo, frekuensi, dll. Dan untuk berapa banyak waktu - meskipun itu sepele saya kira.
Saya ingin langkah demi langkah yang sederhana, daftar instruksi yang tidak jelas - Saya dapat menggunakan istilah yang tidak akan saya mengerti.
Seperti mungkin ini? -
Dapatkan input data audio
Plot spektogram
Dapatkan grafik spektogram untuk suara yang ingin Anda deteksi di lingkungan yang tidak bersuara
Pelajari grafik itu - gambarkan karakteristik unik dari suara itu
Buat semacam fungsi yang dapat mendeteksi karakteristik khusus tersebut dalam umpan audio langsung, menggunakan karakteristik suara yang ditemukan di (4)
Jika kecocokan ditemukan, baik - pekerjaan selesai.
Polandia algoritma untuk menghilangkan negatif palsu.
Saya sedang berpikir untuk membuat pengguna merekam suara yang ingin mereka simpan sebagai gerakan di lingkungan yang tenang. Dan pengguna akan membuat suara hanya di antara padding waktu tenang ; 3 detik di awal dan di akhir rekaman.
Jadi katakanlah, selama 3 detik pertama, sistem saya akan menetapkan bahwa input saat ini adalah suara latar belakang normal yang tenang. Dan kemudian perubahan tiba-tiba pada grafik akan menjadi input suara yang dimulai. Dan ketika itu berhenti, rekaman akan berlangsung selama 3 detik, padding time trailing quiet . Ini akan dilakukan secara manual oleh pengguna. Maka secara otomatis akan menyimpan karakteristik hanya bagian yang selama perubahan tiba-tiba dalam grafik berlangsung - di suatu tempat di antara waktu padding.
Dan dengan demikian karakteristik dari bagian itu akan disimpan sebagai data isyarat suara itu, yang akan digunakan untuk mendeteksi suara itu dalam umpan audio langsung di kemudian hari.
Masalahnya, saya memikirkan semua ini dalam bahasa Inggris. Saya perlu berpikir dalam matematika dan fisika, untuk dapat mengimplementasikannya secara efisien dalam kode saya. Aku benar-benar tidak mengerti tentang apa yang harus ditulis dan di mana harus menuliskannya dalam kode saya - bahkan dengan begitu banyak perpustakaan dan pertanyaan tentang SO yang saya miliki.
Dan maaf jika ini lama.