พื้นหลัง: ฉันกำลังทำงานกับโปรแกรม iPhone (พาดพิงถึงใน หลาย อื่น ๆ โพสต์ ) ที่ "ฟัง" นอนกรน / การหายใจในขณะที่หนึ่งคือนอนหลับและกำหนดว่ามีสัญญาณของการหยุดหายใจขณะหลับ (ในขณะที่ก่อนหน้าจอสำหรับ "นอนห้องปฏิบัติการ" การทดสอบ) แอปพลิเคชั่นส่วนใหญ่ใช้ "ความแตกต่างของสเปกตรัม" เพื่อตรวจจับกรน / ลมหายใจและทำงานได้ค่อนข้างดี (มีความสัมพันธ์ 0.85--0.90) เมื่อทดสอบกับการบันทึกแล็บในห้องปฏิบัติการ (ซึ่งจริง ๆ แล้วค่อนข้างมีเสียงดัง)
ปัญหา: เสียง "ห้องนอน" ส่วนใหญ่ (พัดลม ฯลฯ ) ฉันสามารถกรองด้วยเทคนิคต่าง ๆ และมักจะตรวจจับการหายใจในระดับ S / N ที่หูมนุษย์ไม่สามารถตรวจพบได้อย่างน่าเชื่อถือ ปัญหาคือเสียงรบกวน ไม่ใช่เรื่องผิดปกติที่จะมีโทรทัศน์หรือวิทยุทำงานในพื้นหลัง (หรือเพียงแค่ให้ใครบางคนกำลังพูดอยู่ในระยะไกล) และจังหวะของเสียงที่ใกล้เคียงกับการหายใจ / การนอนกรน ในความเป็นจริงฉันใช้งานการบันทึกของ Bill Holm ผู้เขียน / นักเล่าเรื่องตอนปลายผ่านแอพและมันก็แยกไม่ออกจากการนอนกรนในจังหวะความแปรปรวนระดับและมาตรการอื่น ๆ (แม้ว่าฉันสามารถพูดได้ว่าเห็นได้ชัดว่าเขาไม่ได้หยุดหายใจขณะหลับอย่างน้อยก็ไม่ได้ในขณะที่ตื่น)
นี่เป็นช็อตเล็กน้อย (และอาจเป็นกฎของฟอรัม) แต่ฉันกำลังมองหาแนวคิดบางอย่างเกี่ยวกับวิธีแยกแยะเสียง เราไม่จำเป็นต้องกรองเสียงกรนอย่างใด (คิดว่าน่าจะดี) แต่เราต้องการวิธีที่จะปฏิเสธว่าเสียง "ดังเกินไป" ที่ปนเปื้อนด้วยเสียงมากเกินไป
ความคิดใด ๆ
ไฟล์ที่เผยแพร่:ฉันได้วางไฟล์ไว้ที่ dropbox.com แล้ว:
เพลงแรกเป็นเพลงร็อคแบบสุ่ม (ฉันเดา) และเพลงที่สองคือการบันทึกการพูดของบิลโฮล์มปลาย ทั้งสอง (ซึ่งฉันใช้เป็นตัวอย่างของ "เสียง" ของฉันจะแตกต่างจากการนอนกรน) ได้รับการผสมกับเสียงเพื่อจัดเรียงของสัญญาณทำให้งงงวย (นี่ทำให้งานในการระบุพวกเขายากขึ้นอย่างมีนัยสำคัญ.) ไฟล์ที่สามคือสิบนาทีของการบันทึกของคุณอย่างแท้จริงที่สามครั้งแรกคือการหายใจส่วนใหญ่ที่สามคือการหายใจ / กรนผสมและที่สามสุดท้ายคือกรนค่อนข้างคงที่ (คุณได้รับไอสำหรับโบนัส)
ทั้งสามไฟล์ถูกเปลี่ยนชื่อจาก ".wav" เป็น "_wav.dat" เนื่องจากเบราว์เซอร์จำนวนมากทำให้มันยากที่จะดาวน์โหลดไฟล์ wav อย่างน่ารำคาญ เพียงเปลี่ยนชื่อพวกเขากลับเป็น ".wav" หลังจากดาวน์โหลด
อัปเดต:ฉันคิดว่าเอนโทรปีคือ "ทำกลอุบาย" สำหรับฉัน แต่มันกลับกลายเป็นว่าเป็นลักษณะเฉพาะของกรณีทดสอบที่ฉันใช้อยู่รวมถึงอัลกอริทึมที่ไม่ได้ออกแบบมาอย่างดี ในกรณีทั่วไปเอนโทรปีทำน้อยมากสำหรับฉัน
ต่อมาฉันลองเทคนิคที่ฉันคำนวณ FFT (โดยใช้ฟังก์ชั่นหน้าต่างที่แตกต่างกัน) ของขนาดสัญญาณโดยรวม (ฉันลองใช้พลังงาน, สเปกตรัมการไหลและการวัดอื่น ๆ ) สุ่มตัวอย่างประมาณ 8 ครั้งต่อวินาที (ถ่ายสถิติจากวงจร FFT หลัก ซึ่งคือทุกๆ 1024/8000 วินาที) ด้วย 1024 ตัวอย่างนี้ครอบคลุมช่วงเวลาประมาณสองนาที ฉันหวังว่าฉันจะสามารถเห็นรูปแบบในเรื่องนี้เนื่องจากจังหวะช้าของการกรน / หายใจ vs เสียง / เพลง (และอาจเป็นวิธีที่ดีกว่าในการแก้ไขปัญหา " ความแปรปรวน ") แต่ในขณะที่มีคำแนะนำ ของรูปแบบที่นี่และที่นั่นไม่มีอะไรที่ฉันสามารถสลักได้
( ข้อมูลเพิ่มเติม:สำหรับบางกรณีขนาดของสัญญาณ FFT จะสร้างรูปแบบที่แตกต่างกันอย่างมากโดยมีค่าสูงสุดที่ประมาณ 0.2 Hz และ Harmonics แบบขั้นบันได แต่รูปแบบนั้นไม่ได้มีความแตกต่างกันมากนักในเวลาส่วนใหญ่ รูปแบบที่คล้ายกันในรุ่นอาจมีวิธีการคำนวณค่าสหสัมพันธ์สำหรับตัวเลขของบุญ แต่ดูเหมือนว่าจะต้องใช้เส้นโค้งที่เหมาะสมกับพหุนามลำดับที่ 4 และการทำครั้งที่สองในโทรศัพท์ดูเหมือนจะทำไม่ได้)
ฉันยังพยายามที่จะทำแอมพลิจูดเฉลี่ย FFT เดียวกันสำหรับ "วงดนตรี 5 วง" แต่ละวงที่ฉันได้แบ่งสเปกตรัมออกเป็น วงดนตรีคือ 4000-2000, 2000-1000, 1,000-500 และ 500-0 รูปแบบสำหรับ 4 วงแรกนั้นโดยทั่วไปคล้ายกับรูปแบบโดยรวม (แม้ว่าจะไม่มีวงดนตรี "stand-out" ที่แท้จริงและสัญญาณขนาดเล็กที่หายไปมักจะหายไปในย่านความถี่สูงกว่า) แต่ 500-0 โดยทั่วไปจะสุ่ม
การให้รางวัล: ฉันจะให้รางวัลแก่นาธานแม้ว่าเขาจะไม่ได้เสนออะไรใหม่ ๆ ก็ตามเพราะเขาเป็นคำแนะนำที่มีประสิทธิผลที่สุดในปัจจุบัน ฉันยังคงมีบางจุดที่ฉันยินดีที่จะให้รางวัลกับคนอื่นแม้ว่าหากพวกเขาผ่านความคิดที่ดี