आटोक्लेररेशन की "गुणवत्ता" का मूल्यांकन करने का सबसे अच्छा तरीका है?


9

यह मेरे खर्राटों ऐप से एक साइड-ट्रिप है ।

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

प्रश्न # 1: क्या ऑटोक्रॉलेशन (लंघन तत्व शून्य) का आरएमएस उतना ही अच्छा "गुणवत्ता" मीट्रिक है, या कुछ बेहतर है?

विस्तृत करने के लिए: मैं बस एक संख्यात्मक तरीका (बनाम "एक चार्ट में" देख रहा हूं) को एक कम अच्छी तरह से autocorrelated एक से एक अत्यधिक autocorrelated संकेत भेद करना चाहता हूं।

(मुझे वास्तव में यह जानने के लिए पर्याप्त नहीं है कि अन्य प्रश्न क्या पूछना है।)

कुछ शुरुआती नतीजे: कुछ मामलों में ऑटोकॉरेलेशन (या तो आरएमएस या शिखर) एक खर्राटे पर एक नाटकीय छलांग दिखाता है - ठीक वही प्रतिक्रिया जो मैं देखना चाहता हूं। अन्य मामलों में इन उपायों में कोई स्पष्ट आंदोलन नहीं है (और यह दो प्रतिक्रियाओं के साथ दो लगातार घोंघे हो सकते हैं), और उच्च शोर वाली स्थितियों में माप वास्तव में एक खर्राटे के दौरान (थोड़ा) डुबकी लगाते हैं।

अपडेट - 22 मई: आखिरकार मुझे इस पर कुछ और काम करने का समय मिला। (मुझे एक अन्य ऐप पर खींच लिया गया था, जो सचमुच एक दर्द है।) मैंने एक एफएफटी में ऑटोकारोलेशन के आउटपुट को खिलाया और आउटपुट कुछ दिलचस्प है - यह एक खर्राटे शुरू होने पर मूल के पास काफी नाटकीय चोटी दिखाता है।

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

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

सपाट कोशिश की -

मेरे परीक्षण मामलों को मोटे तौर पर "अच्छी तरह से व्यवहार" श्रेणी और "समस्या बच्चों" श्रेणी में विभाजित किया जा सकता है।

"अच्छी तरह से व्यवहार किया" परीक्षण के मामलों के लिए autocorrelation की FFT की सपाटता नाटकीय रूप से कम हो जाती है और चोटी के औसत ऑटोकैरेलेशन के अनुपात एक खर्राटे के दौरान चढ़ता है। उन दो संख्याओं का अनुपात (समतलता द्वारा विभाजित शिखर अनुपात) विशेष रूप से संवेदनशील है, एक सांस / खर्राटे के दौरान 5-10x चढ़ाई का प्रदर्शन।

"समस्या बच्चों" के लिए, हालांकि, विपरीत दिशा में संख्याएं। शिखर / औसत अनुपात थोड़ा कम होता है, जबकि सपाटता वास्तव में 50-100% बढ़ जाती है

इन दो श्रेणियों के बीच का अंतर (ज्यादातर) तीन गुना है:

  1. शोर का स्तर (आमतौर पर) "समस्या वाले बच्चों" में अधिक होता है
  2. "समस्या बच्चों" में ऑडियो स्तर बहुत (हमेशा बहुत कम) होते हैं
  3. "समस्या बच्चों" में अधिक श्वास और कम वास्तविक खर्राटों से युक्त होते हैं (और मुझे दोनों का पता लगाने की आवश्यकता है)

कोई विचार?

अद्यतन - ५/२५/२०११: यह एक जीत नृत्य करने के लिए थोड़ा समय से पहले है, लेकिन जब मैंने एक बिंदु के बारे में स्वायत्तता को प्रतिबिंबित किया, तो उस का एफएफटी लिया, और फिर वर्णक्रमीय सपाटता की, मेरी संयुक्त अनुपात योजना ने एक अच्छी छलांग दिखाई। कई अलग-अलग वातावरण। ऑटोकार्टोलेशन को दर्शाते हुए एफएफटी की गुणवत्ता में सुधार होता है।

हालांकि, एक मामूली बात यह है कि, परिलक्षित "सिग्नल" के "डीसी घटक" शून्य होने के बाद, शून्य एफएफटी परिणाम हमेशा शून्य होता है, और यह थोड़े ज्यामितीय मतलब को तोड़ता है जिसमें शून्य भी शामिल है। लेकिन शून्य तत्व को छोड़ना काम करने लगता है।

मुझे जो परिणाम मिल रहा है, वह अपने आप में खर्राटों / सांसों की पहचान करने के लिए पर्याप्त है, लेकिन यह काफी संवेदनशील "पुष्टि" है - अगर मुझे "कूद" नहीं मिलता है, तो शायद यह कोई खर्राटे / सांस नहीं है।

मैंने इसका बारीकी से विश्लेषण नहीं किया है, लेकिन मुझे संदेह है कि यह क्या हो रहा है कि सांस / खर्राटे के दौरान एक सीटी की आवाज कहीं होती है, और उस सीटी का पता लगाया जा रहा है।


जहाँ तक सहसंबंध के 'शक्ति' उपाय की बात है, तो आपको सहसंबंध बनाने से पहले अपने दो संकेतों को सहसंबद्ध होने के लिए सामान्य बनाना होगा। (सामान्य होने के बाद, प्रत्येक संकेतों का योग 1 होना चाहिए)। फिर सहसंबंध शिखर हमेशा -1 और 1 के बीच मौजूद रहेगा। यह आपकी ताकत है। मुझे आपके शेष प्रश्न के बारे में निश्चित नहीं है, शायद आप थोड़ा संपादित कर सकते हैं।
स्पेसी

मैं निरंकुशता के साथ काम कर रहा हूं, इसलिए दो संकेत एक और एक ही हैं, और एक दूसरे के सापेक्ष "सामान्यीकृत" हैं। "ताकत" से मेरा मतलब है कि वहाँ कितना आत्मसंघर्ष है।
डैनियल आर हिक्स

मुझे समझ नहीं आ रहा है कि आप क्या चाहते हैं, लेकिन मुझे लगता है कि आप स्वतः पूर्णता शिखर के अधिकतम मूल्य को मापना चाहेंगे, न कि पूरी बात का आरएमएस मूल्य।
एंडोलिथ

@endolith मुझे लगता है कि वह आपके ऑटोक्रेलेशन फ़ंक्शन के 'शिखर' के माप के बारे में पूछ रहा होगा, यह एक संकेत को एक डेल्टा, (शोर के ऑटोक्रॉलेशन) को कई चोटियों के संकेत से अलग करने का आदेश देता है? (हार्मोनिक्स के साथ संकेत का स्वतःसंक्रमण)। शायद स्पेक्ट्रल-सपाटता माप का उपयोग भी यहां किया जा सकता है ...
स्पेसी

यह वर्णक्रमीय सपाटता जैसा लगता है कि वह क्या चाहता है। डैनियल: क्या आप यह निर्धारित करना चाहते हैं कि सफेद शोर से सिग्नल कितना अलग है?
एमरे

जवाबों:


3

प्रारंभिक

यह प्रदर्शन MATLAB पैकेज ऑडियोरेड के साथ आसान है , जो एमपी 3 फ़ाइलों को पढ़ने / लिखने में सक्षम बनाता है। वैकल्पिक रूप से, आप एमपी 3 फ़ाइल को मैन्युअल रूप से WAV में कनवर्ट कर सकते हैं।

आसान मामला

इससे पहले कि हम आपकी समस्याग्रस्त फ़ाइल की जाँच करें, साउंडक्लाउड पर जाएँ और एक सभ्य खर्राटे को पकड़ें, ताकि हम जान सकें कि एसएनआर अधिक होने पर क्या उम्मीद की जाए। यह एक 52s स्टीरियो 44.1KHz MP3 है। इसे MATLAB के मार्ग में एक फ़ोल्डर में डाउनलोड करें

अब हम स्पेक्ट्रोग्राम की गणना करते हैं (मैंने एक 8192-सैंपल हनी विंडो को चुना) और वर्णक्रमीय सपाटता:

[snd1,fs1]=mp3read('snoring - brobar.mp3'); % use wavread if you converted manually
[s1,f,t,p1]=spectrogram(mean(snd1,2),hann(8192));
sf1=10*log10(geomean(p1)./mean(p1)); % spectral flatness
plot(linspace(0,length(snd1)/fs1,length(sf1)),sf1); axis tight

ब्रोबर के खर्राटे की वर्णक्रमीय सपाटता

वर्णक्रमीय समतलता (यानी सफेद शोर से विचलन) में विशाल डुबकी "मैं खर्राटे ले रहा हूं" चिल्लाता है। बेसलाइन (माध्यिका) से विचलन को देखकर हम इसे आसानी से वर्गीकृत कर सकते हैं:

stem(linspace(0,length(snd1)/fs1,length(sf1)),median(sf1)-sf1>2*std(sf1)); axis tight

ब्रॉबर के खर्राटे की वर्गीकृत वर्णक्रमीय सपाटता

हमारे पास हेडरूम के दो से अधिक मानक विचलन थे। संदर्भ के लिए स्वयं मानक भिन्नता, 6.8487 है

कठिन मामला

अब आप अपनी फाइल पर एक नजर डालते हैं । यह 10 मिनट, 8KHz WAV फाइल है। चूंकि स्तर इतना कम है, यह करने में मदद करता compand संकेत।

[snd,fs]=wavread('recordedFile20120408010300_first_ten_minutes');
cmp=compand(snd,255,1);
wavwrite(cmp,'companded'); % used for listening purposes
[s,f,t,p]=spectrogram(snd,hann(8192));
sf=10*log10(geomean(p)./mean(p));
plot(linspace(0,600,length(sf)),sf);

शोर फ़ाइल की वर्णक्रमीय सपाटता

प्रत्येक खर्राटे के साथ उन अच्छे डिप्स देखें? न तो मैं। कैसे अच्छा चोटियों के बारे में? वे खर्राटे नहीं ले रहे हैं, लेकिन विषय की आवाज बढ़ रही है। मानक विचलन एक पैलेट्री 0.9388 है

निष्कर्ष

यदि आप वर्णक्रमीय सपाटता पर भरोसा करना चाहते हैं तो आपको एक क्लीनर संकेत प्राप्त करने की आवश्यकता है! मैंने इसे सिर्फ कुछ भी सुनने के लिए मजबूर किया था। यदि एक कम एसएनआर का पता लगाया जाता है, तो उपयोगकर्ता को फोन को पास रखने या फोन के साथ माइक्रोफोन का उपयोग करने के लिए उकसाएं जो हेडसेट के साथ आता है।

अच्छी खबर यह है कि यह है है भी समस्याग्रस्त मामले में खर्राटे ले पता लगाने के लिए संभव। हालाँकि, चूंकि यह सवाल सिर्फ खर्राटे का पता लगाने के बारे में नहीं था, इसलिए मैं यहां रुकूंगा, और समझाऊंगा कि आपके अन्य प्रश्न में ऐसा कैसे किया जाए


अब आपको समझ आ गया है कि मैं किस चीज के खिलाफ हूं। उस नमूने में "मध्यम" गुणवत्ता थी जिसके नमूने के साथ मुझे काम करना है - बहुत खराब हैं। और मैं अपने मौजूदा एल्गोरिदम के साथ उस नमूने को अच्छी तरह से पढ़ सकता हूं।
डेनियल आर हिक्स

वे कौन से एल्गोरिदम हैं?
एमरे

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

@ मैं आपके लिंक का अनुसरण कर रहा हूं, एक साउंडक्लाउड खाता बनाया है, लेकिन यह नहीं देख सकता है कि आपने वास्तव में उस खर्राटे को कैसे डाउनलोड किया है। इसके आगे या कहीं भी कोई डाउनलोड बटन नहीं है।
स्पेसी

@ मोहम्मद: मैंने एक डाउनलोड लिंक प्रदान किया।
Emre

1

ऑटोकैरेलेशन सीधे आपके सिग्नल के पावर वर्णक्रमीय घनत्व के डीएफटी को उलटने से संबंधित है। उस अर्थ में, आपके DFT के परिमाण में जो भी जानकारी समाहित है, वह स्वतःसंबंध फ़ंक्शन में भी समाहित है।

हालांकि कहा गया है कि एक चीज जो ऑटोक्रेलेशन आपको बता सकती है वह है हार्मोनिक्स की उपस्थिति। (केंद्र शिखर से अगली सबसे ऊँची दूरी)। शायद खर्राटे लेती वीएस सांस लेने के अलग-अलग मौलिक हार्मोनिक्स हैं, और यदि ऐसा है, तो 'ऑटोकॉरेलेशन विधि' निश्चित रूप से एक अच्छा प्रारंभिक बिंदु होगा ताकि सुविधाओं, (इस मामले में हार्मोनिक्स) को निकाला जा सके।

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

संपादित करें:

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


मैं इस धारणा के तहत था कि आटोक्लेरेशन बेहतर (लयबद्ध) सिग्नल को (यादृच्छिक) शोर से अलग कर देगा - शोर शून्य के पास स्वतः स्फूर्त होगा। एक डीएफटी, ओटीओएच, शोर का प्रतिनिधित्व शोर के रूप में करेगा - एक फैल स्पेक्ट्रम। कम से कम यह "सिद्धांत" है जैसा कि मैं इसे समझता हूं।
डेनियल आर हिक्स

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