Latar belakang: Saya sedang mengerjakan aplikasi iPhone (disinggung dalam beberapa posting lain ) yang "mendengarkan" dengkuran / pernapasan saat seseorang tertidur dan menentukan apakah ada tanda-tanda sleep apnea (sebagai pra-layar untuk "lab tidur" pengujian). Aplikasi ini pada dasarnya menggunakan "perbedaan spektral" untuk mendeteksi dengkuran / napas, dan berfungsi dengan baik (korelasi 0,85--0,90) ketika diuji terhadap rekaman lab tidur (yang sebenarnya cukup berisik).
Masalah: Sebagian besar kebisingan "kamar tidur" (kipas angin, dll.) Saya dapat menyaring melalui beberapa teknik, dan seringkali dapat mendeteksi pernapasan pada tingkat S / N di mana telinga manusia tidak dapat mendeteksinya. Masalahnya adalah suara. Bukanlah hal yang aneh jika televisi atau radio diputar di latar belakang (atau sekadar meminta seseorang berbicara di kejauhan), dan irama suara sangat cocok dengan pernapasan / dengkuran. Bahkan, saya menjalankan rekaman almarhum penulis / pendongeng Bill Holm melalui aplikasi dan itu pada dasarnya tidak bisa dibedakan dari mendengkur dalam ritme, tingkat variabilitas, dan beberapa langkah lainnya. (Meskipun aku bisa mengatakan bahwa dia tampaknya tidak menderita sleep apnea, setidaknya tidak ketika bangun.)
Jadi ini agak sulit (dan mungkin serangkaian aturan forum), tapi saya mencari beberapa ide tentang cara membedakan suara. Kita tidak perlu menyaring dengkuran entah bagaimana (pikir itu akan menyenangkan), tetapi kita hanya perlu cara untuk menolak sebagai suara "terlalu berisik" yang terlalu tercemar oleh suara.
Ada ide?
File yang diterbitkan: Saya telah menempatkan beberapa file di dropbox.com:
Yang pertama adalah musik rock yang agak acak (kurasa), dan yang kedua adalah rekaman almarhum Bill Holm. Keduanya (yang saya gunakan sebagai sampel "noise" saya dibedakan dari mendengkur) telah dicampur dengan noise untuk mengaburkan sinyal. (Ini membuat tugas mengidentifikasi mereka secara signifikan lebih sulit.) File ketiga adalah sepuluh menit dari rekaman Anda benar-benar di mana sepertiga pertama sebagian besar bernafas, sepertiga tengah campuran pernapasan / mendengkur, dan sepertiga terakhir adalah mendengkur yang cukup mantap. (Anda mendapatkan batuk untuk bonus.)
Ketiga file telah diubah namanya dari ".wav" menjadi "_wav.dat", karena banyak browser membuatnya sangat sulit untuk mengunduh file wav. Ubah nama mereka kembali menjadi ".wav" setelah mengunduh.
Pembaruan: Saya pikir entropi adalah "melakukan trik" untuk saya, tetapi ternyata sebagian besar merupakan kekhasan dari kasus uji yang saya gunakan, ditambah algoritma yang tidak dirancang dengan terlalu baik. Secara umum, entropi tidak banyak membantu saya.
Saya kemudian mencoba teknik di mana saya menghitung FFT (menggunakan beberapa fungsi jendela berbeda) dari keseluruhan sinyal (saya mencoba kekuatan, fluks spektral, dan beberapa ukuran lain) sampel sekitar 8 kali per detik (mengambil statistik dari siklus FFT utama yaitu setiap 1024/8000 detik). Dengan 1024 sampel, ini mencakup rentang waktu sekitar dua menit. Saya berharap bahwa saya akan dapat melihat pola dalam hal ini karena irama lambat dari mendengkur / bernafas vs suara / musik (dan itu mungkin juga cara yang lebih baik untuk mengatasi masalah " variabilitas "), tetapi sementara ada petunjuk dari sebuah pola di sana-sini, tidak ada yang benar-benar dapat saya kaitkan.
( Info lebih lanjut: Untuk beberapa kasus, FFT besarnya sinyal menghasilkan pola yang sangat berbeda dengan puncak yang kuat di sekitar 0,2 Hz dan harmonik tangga. Tetapi polanya hampir tidak terlalu berbeda pada sebagian besar waktu, dan suara dan musik dapat menghasilkan kurang berbeda versi dari pola yang sama. Mungkin ada beberapa cara untuk menghitung nilai korelasi untuk angka pantas, tetapi tampaknya akan membutuhkan kurva yang cocok dengan sekitar polinomial orde 4, dan melakukan hal itu satu detik di telepon tampaknya tidak praktis.)
Saya juga berusaha melakukan FFT yang sama dengan amplitudo rata-rata untuk 5 "band" individual yang telah saya bagi spektrumnya. Band-band tersebut adalah 4000-2000, 2000-1000, 1000-500, dan 500-0. Pola untuk 4 pita pertama umumnya mirip dengan pola keseluruhan (meskipun tidak ada pita "nyata" nyata, dan sering kali semakin kecil sinyal di pita frekuensi yang lebih tinggi), tetapi pita 500-0 umumnya hanya acak.
Bounty: Saya akan memberi Nathan hadiah, meskipun dia tidak menawarkan sesuatu yang baru, mengingat bahwa itu adalah saran yang paling produktif hingga saat ini. Saya masih memiliki beberapa poin, saya akan bersedia memberikan kepada orang lain, jika mereka datang dengan beberapa ide bagus.