आप कैसे बता सकते हैं कि क्या कोई सिग्नल है (जब आपका सिग्नल शोर की तरह दिखता है)?


11

यह फिर से मेरे खर्राटे डिटेक्टर है।

मैंने एक संकेत का पता लगाने में बहुत अच्छा प्राप्त किया है जब वहाँ कुछ भी होता है - एक दीवार-छीलने वाले खर्राटे से श्वास को ट्रैक कर सकते हैं जिसे आप रिकॉर्डिंग में भी नहीं सुन सकते हैं। समस्या यह है कि मैं यह नहीं बता सकता कि सिग्नल का पता लगाने योग्य स्तर से नीचे चला गया है और ऐप केवल "सुनवाई की चीजें" है। और, दुर्भाग्यवश, खर्राटे / सांस लेना अक्सर अनियमित होता है कि एक साधारण ऑटोक्रॉलेशन या इसी तरह की अंतराल समय योजना बहुत मदद करने की संभावना नहीं है। (और यह वास्तव में संभावना है कि कुछ मामलों में शोर श्वास से अधिक नियमित है।)

तो, क्या कोई संकेत है जो मुझे पता लगाने के लिए गायब है जब कोई संकेत नहीं है? यह इस तरह का लगता है कि मैं यहाँ एक कठिन जगह के खिलाफ हूं, जिसे देखते हुए "सिग्नल" इतना शोर-शराबा है, जिसे शुरू करना है।

(और शायद यह मेरे पास होने वाली एक और समस्या से संबंधित है: अजीब तरह से, जब मैं बहुत जोर से सही ढंग से (या लगभग भी) सिग्नल स्तर को माप नहीं सकता हूं। चूंकि मुझे सिग्नल का पता लगाने के लिए रोलिंग औसत और अनुपात का उपयोग करने की आवश्यकता है। स्तर की जानकारी की तरह खो जाता है। मैं इसे फिर से संगठित करने के लिए कुछ तरकीबों की तलाश कर रहा हूं।)

मूल तकनीक

(योदा के लिए)

ऑडियो सिग्नल का नमूना (आमतौर पर 8000Hz पर, विभिन्न कारणों से) लिया जाता है, फिर 1024 ब्लॉक में FFTed किया जाता है। (मेरे प्रयोगों में हैमिंग फिल्टर और ओवरलैपिंग ब्लॉक का बहुत कम प्रभाव पड़ता है, हालांकि बाद में इन्हें फिर से देखा जा सकता है।)

एफएफटी को "बैंड" (वर्तमान में 5, आकार में थोड़ा तिरछा कम अंत पर अधिक विस्तार देने के लिए) और "वर्णक्रमीय अंतर" और प्रत्येक बैंड के स्तर को विभाजित किया गया है। शिखर-सीमित मूल्यों के दीर्घकालिक औसत का उपयोग "थ्रेसहोल्ड" के रूप में किया जाता है, और आगे के बायस समायोजन का उपयोग लगभग 20% "ओवर थ्रेशोल्ड" दर को बनाए रखने के लिए किया जाता है।

प्रत्येक "ओवर थ्रेशोल्ड" मूल्य को 1 का वजन दिया जाता है (थ्रेशोल्ड का वजन 0 दिया जाता है), लेकिन फिर उस वजन को बैंड में स्पष्ट "परिवर्तनशीलता" (लगभग 2 हर्ट्ज पर) द्वारा समायोजित किया जाता है, ताकि बैंड को अधिक वजन दिया जा सके कि अधिक स्पष्ट संकेत ले।

बैंड के वज़न को सारांशित किया जाता है और फिर बाद के ब्लॉकों के सममित वज़न को एक "रन" स्कोर बनाने के लिए लगभग एक सेकंड में अभिव्यक्त किया जाता है। खर्राटों की शुरुआत / ऑफसेट का पता लगाने के लिए यह फिर से एक औसत औसत सीमा (प्लस कई उत्तराधिकारियों) की तुलना में है।

अपडेट करें

यह अचानक मेरे साथ हुआ है कि अगर मेरा एल्गोरिथ्म प्रभावी रूप से एक निरंतर-स्तरीय सिग्नल (मेरी सिग्नल स्तर की समस्या के अनुसार) को बनाए रखता है, तो एसएनआर को प्रभावी ढंग से गेज करने का तरीका शोर को मापने का है जब कोई संकेत नहीं है।

आसानी से, खर्राटे रुक-रुक कर होते हैं, जिसमें बहुत सारी "मृत हवा" होती है। और मैं पहले से ही खर्राटों के लिफाफे का पता लगा रहा हूं। तो लिफाफे के बाहर कुछ भी (एक खर्राटे के अंत और अगले की शुरुआत के बीच) संभवतया शोर है! यह मैं (सटीकता / दोहराव के कुछ मामूली डिग्री के साथ) उपाय कर सकता हूं। (यह एक आधे सभ्य सभ्य एल्गोरिथ्म के साथ आने की कोशिश करता है, निश्चित रूप से - वास्तविकता कभी भी सिद्धांत से मेल नहीं खाती है।)

इसलिए मेरे पास अभी तक पूर्ण उत्तर नहीं है, लेकिन मैंने प्रगति की है।

(जबकि उपरोक्त तकनीक मुझे एसएनआर के लिए काफी अच्छा प्रॉक्सी देती है, मुझे अभी भी वास्तविक सिग्नल स्तर का अनुमान लगाने में परेशानी हो रही है। मेरे "सापेक्ष स्तर" के संकेत एक बमुश्किल श्रव्य सांस के लिए पैमाने पर हो सकते हैं और एक खिड़की के खड़खड़ के लिए इतने पर। मुझे पूर्ण स्तर के लिए किसी प्रकार की प्रॉक्सी की आवश्यकता है।)


"यह मेरा खर्राटे डिटेक्टर फिर से है" - क्या आप कृपया अपने पिछले प्रश्न (जहां आपने संभवतः इसे विस्तार से वर्णित किया है) से लिंक कर सकते हैं या इस प्रश्न में अपने डिटेक्टर पर कुछ विवरण जोड़ सकते हैं?
लोरेम इप्सम

जवाबों:


5

अब तक आप ऑडियो में एक मजबूत आवधिक पैटर्न की उपस्थिति के माध्यम से खर्राटों की पहचान करते थे। यदि आप मुझे बताते हैं कि एक ही संपत्ति के साथ अन्य स्रोत हो सकते हैं, तो यह आगे बढ़ने और संकेत की संपत्ति पर ध्यान केंद्रित करने का समय है जो खर्राटों के अधिक विशिष्ट हैं; और मैं खुद को रिकॉर्ड की गई ध्वनि के समय में अधिक सटीक रूप से देखने का सुझाव दूंगा। यह देखते हुए कि एक मानव श्रोता सांस लेने से खर्राटे ले सकता है, आप पारंपरिक ऑडियो सिग्नल वर्गीकरण दृष्टिकोण का सहारा ले सकते हैं। अपने ऑडियो डेटा पर एमएफसीसी और उतार-चढ़ाव पैटर्न जैसी सुविधाओं की गणना करें, और श्वास से भेदभाव करने के लिए एक बायसीयन क्लासिफायर (या अधिक परिष्कृत) को प्रशिक्षित करें।

इस विषय पर साहित्य की समीक्षा करने का समय भी हो सकता है ... उदाहरण के लिए मैंने यह पाया: http://web.itu.edu.tr/kamasak/pubs/pdf/pm7_8_007.pdf


एक समस्या यह है कि ध्वनि की प्रकृति व्यक्ति से व्यक्ति तक और यहां तक ​​कि एक व्यक्ति के लिए एक रात के भीतर बहुत भिन्न होती है। लेकिन सुराग के लिए धन्यवाद - मैं उन पर गौर करूंगा।
डैनियल आर हिक्स

यदि आपका प्रशिक्षण सेट काफी बड़ा है, तो यह अभी भी मशीन सीखने की तकनीक का उपयोग करके संभव है।
pichenettes

मेरे पास 50 से अधिक डेटा सेट हैं। दुर्भाग्य से, एक सेट पर पूरी तरह से काम करने वाला एल्गोरिथ्म अगले पर बुरी तरह से विफल हो जाता है। कुछ के पास बैकग्राउंड में टीवी है, कुछ में एयर हैंडलर रंबल वगैरह हैं, ब्रीदिंग / स्नोर्स बमुश्किल ऑडिबल या पेंट-पीलिंग हो सकते हैं। एक विषय स्थिति बदल सकता है और पूरी तरह से उसके खर्राटों की प्रकृति को बदल सकता है। स्व-ट्यूनिंग योजना के कुछ प्रकार स्पष्ट रूप से आवश्यक हैं।
डैनियल आर हिक्स

वर्गीकरण के लिए आप किन विशेषताओं का उपयोग कर रहे हैं?
1

मुख्य रूप से सिर्फ "वर्णक्रमीय अंतर" ("शुरुआत" और "ऑफसेट" का पता लगाने के लिए "वर्णक्रमीय प्रवाह" के रूप में भी जाना जाता है)। लेकिन मेरी वर्तमान योजना स्पेक्ट्रम को बैंड में बांटती है और प्रत्येक बैंड को उस बैंड में स्पष्ट संकेत शक्ति के आधार पर "वेट" करती है (जो कि लगभग 1/2 हर्ट्ज पर होने वाले वर्णक्रमीय अंतर में भिन्नता की मात्रा से आंकी जाती है)। यह महत्वपूर्ण आवाज़ के साथ भी, पूरे वॉल्यूम रेंज में श्वास / खर्राटों का पता लगाने के लिए अच्छी तरह से काम करता है, लेकिन यह वास्तविक मात्रा के सभी संकेत को प्रभावी ढंग से खो देता है। और बस एक साथ कुल ध्वनि स्तर को देखकर शोर की समस्या के कारण काम नहीं करता है।
डैनियल आर हिक्स

0

आपको एक गतिशील क्लासिफायर बनाने की आवश्यकता हो सकती है, जो एक निश्चित प्रशिक्षण सेट के लिए धुन के बजाय वर्तमान विषय, नींद के चरण और ऑडियो वातावरण के अनुकूल हो सकती है।


यही मैं सोच रहा हूं।
डैनियल आर हिक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.