मैं लाइव ऑडियो इनपुट में सीटी, पॉप और अन्य ध्वनियों का पता लगाने के बारे में कैसे जा सकता हूं?


9

मैंने SO पर कई प्रश्न पढ़े हैं, और स्पष्ट रूप से, उनमें से प्रत्येक इसके बारे में जाने के लिए किसी विशेष तरीके का वर्णन नहीं कर रहा है। कुछ लोग कहते हैं "FFT करो" और कुछ "जीरो क्रॉसिंग" आदि कहते हैं, लेकिन मैं केवल यह समझ रहा हूं कि डिजिटल ऑडियो इनपुट में एक विशेष आवृत्ति और अच्छी तरह से एम्पलीट्यूड के एक सरणी होते हैं .. वास्तव में बहुत ज्यादा नहीं जानते हैं इससे आगे।

अब मैं Nyquist प्रमेय, आवृत्ति, आयाम, फूरियर श्रृंखला आदि को जानता हूं, और यह 2-3 साल पहले से है जब मैंने कुछ सेमेस्टर में अपने विश्वविद्यालय के कार्यक्रम में ऐसा किया था। लेकिन फिर हमें वास्तव में फूरियर की वास्तविक दुनिया का उपयोग नहीं सिखाया गया था, और मैंने इस विषय पर अधिक खुदाई करने की जहमत नहीं उठाई। लेकिन अब मैं उस सभी सामान का उपयोग करने वाला हूं।

यहां उन ध्वनियों का स्नैपशॉट दिया गया है, जिनका मैं पता लगाने की कोशिश कर रहा हूं:

फिंगर स्नैप्स और लाइट स्विच ऑन / ऑफ का अनूठा ग्राफ

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

मैं एक सरल कदम से कदम चाहता हूँ, संयुक्त राष्ट्र अस्पष्ट निर्देश सूची - मैं शब्दावली को समझ सकता हूं जिसे मैं समझ नहीं पा रहा हूं।

शायद यह पसंद है? -

  1. इनपुट ऑडियो डेटा प्राप्त करें

  2. प्लॉट का चश्मा

  3. एक शोर रहित वातावरण में आप जिस ध्वनि का पता लगाना चाहते हैं, उसके लिए वर्णक्रम ग्राफ प्राप्त करें

  4. उस ग्राफ का अध्ययन करें - उस ध्वनि की अनूठी विशेषताओं को आकर्षित करें

  5. कुछ प्रकार के फ़ंक्शन करें जो लाइव ऑडियो फ़ीड में उन विशिष्ट विशेषताओं का पता लगा सकते हैं, जिनमें पाए गए ध्वनि की विशेषताओं का उपयोग करके (4)

  6. यदि एक मैच पाया जाता है, अच्छी तरह से - काम किया है।

  7. एल्गोरिथ्म को झूठे नकारात्मक तरीके से बहाने के लिए पोलिश करें।

मैं कहां उलझन में हूं - मैं 3,4,5 कैसे जाता हूं। विशेष रूप से 3 और 4. क्योंकि मैं एक ऐसा सॉफ्टवेयर बना रहा हूं, जहां उपयोगकर्ता बाद में उपयोग किए जाने वाले जेस्चर इनपुट के रूप में किसी भी ध्वनि को रिकॉर्ड करने में सक्षम होगा, मैं चाहता हूं कि मेरा सिस्टम किसी भी ध्वनि को रिकॉर्ड करने और लाइव ऑडियो के खिलाफ मैच करने में सक्षम हो। उस ध्वनि इशारे का पता लगाने के लिए फ़ीड। जैसे कहना, खाँसना, या अंगुली फड़कना, या सीटी बजना, या ताली बजाना। या व्यंजन कह रहे हैं - या या या । बस किसी भी ध्वनि के बारे में।बीएक्सजेड

मैं उपयोगकर्ता को उस आवाज़ को रिकॉर्ड करने के बारे में सोच रहा था जो वे काफी माहौल में एक इशारे के रूप में संग्रहीत करना चाहते हैं। और उपयोगकर्ता केवल शांत समय पैडिंग के बीच में आवाज करेगा ; रिकॉर्डिंग की शुरुआत में और अंत में 3 सेकंड।

तो कहते हैं, पहले 3 सेकंड के दौरान, मेरा सिस्टम स्थापित करेगा कि वर्तमान इनपुट सामान्य शांत पृष्ठभूमि ध्वनि है। और फिर ग्राफ में अचानक बदलाव से ध्वनि इनपुट शुरू हो जाएगा। और जब वह रुक जाता है, तो रिकॉर्डिंग एक और 3 सेकंड के लिए चली जाएगी, पीछे शांत समय पैडिंग । यह उपयोगकर्ता द्वारा मैन्युअल रूप से किया जाएगा। यह स्वचालित रूप से केवल उस हिस्से की विशेषताओं को संग्रहीत करेगा जिसके दौरान ग्राफ में अचानक परिवर्तन हुआ - कहीं पैडिंग समय के बीच।

और इस प्रकार उस हिस्से की विशेषताओं को उस ध्वनि के हावभाव डेटा के रूप में सहेजा जाएगा, जिसका उपयोग उस लाइव ऑडियो फीड में उस विशेष ध्वनि का पता लगाने के लिए किया जाएगा।

समस्या यह है, कि मैं यह सब सादे अंग्रेजी में सोच रहा हूँ। मुझे अपने कोड में कुशलतापूर्वक लागू करने में सक्षम होने के लिए, गणित और भौतिकी में सोचने की जरूरत है। मैं सिर्फ इतना लानत-मलामत कर रहा हूं कि मुझे क्या लिखना है और कहां से इसे अपने कोड में लिखना है - यहां तक ​​कि मेरे निपटान में एसओ पर इतने सारे पुस्तकालयों और सवालों के साथ।

और क्षमा करें यदि यह लंबा था।


1
जिज्ञासा से बाहर, क्या वह स्पेक्ट्रोग्राम फोन या टैबलेट पर बना है? यदि हां, तो क्या आप ऐप का नाम बता सकते हैं। यह वास्तव में अच्छा लग रहा है। आपके प्रश्न के संबंध में तब मुझे लगता है कि आपका आवेदन अलग-अलग शब्द पहचान करने के विषय / कार्य के समान है। आप शायद विचारों और प्रेरणा से बहुत कुछ प्राप्त कर सकते हैं। कठिन भाग इशारों को सीमित सापेक्ष के छोटे सेट में इशारों को पहचानने के लिए नहीं है, कठिन हिस्सा इशारों को भरने वाले सामान को फ़िल्टर करने के लिए है।
नीरेन

यह ऐप है: play.google.com/store/apps/… और आपके दृष्टिकोण के लिए धन्यवाद। लेकिन मैं चाहता हूं कि आप मुझे बताएं कि मैं शब्दों का पता नहीं कैसे लगा सकता हूं, लेकिन लगता है (अभी के लिए कम से कम), जैसे कि सीटी, पॉप, ताली बजाना, आदि मैं पायथन में काम कर रहा हूं।
bad_keypoint

1
दुर्भाग्य से इस तरह की बात अभी भी एक शोध क्षेत्र है। मैं किसी को भी इस विशिष्ट समस्या को हल करने के बारे में पता नहीं हूँ।
ब्योर्न रोश

जवाबों:


2

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

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

इसलिए, कुछ पैरामीटर जिन्हें आप शामिल कर सकते हैं:

  • शून्य-पार करने की दर
  • आवृत्ति केन्द्रक
  • लिफाफा (यह वास्तव में मापदंडों का एक सेट है, जैसे, हमले का समय)
  • वर्णक्रमीय लिफाफा
  • सम / विषम हार्मोनिक संतुलन
  • voiciness
  • मौलिक पिच

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


आपका उत्तर अच्छा है, लेकिन मैं मूल रूप से उपयोगकर्ता की खुद की ध्वनियों के मिलान के लिए कह रहा हूं कि वह मेरे सॉफ़्टवेयर का उपयोग करने के लिए बाद में बनाता है। जैसे, समानता का सामान। मान लें कि कोई उपयोगकर्ता विभिन्न प्रकार की ध्वनियाँ A, B और C. बनाता है और इन ध्वनियों की विशेषताएँ क्रमशः C_A, C_B और CC के रूप में संग्रहीत की जाती हैं।
bad_keypoint

तकनीक अभी भी समान है: 1. पता लगाएँ कि आप किन मापदंडों को मापने जा रहे हैं, 2. उन्हें मापें, 3. प्रत्येक ध्वनि को अलग बनाने के लिए आंकड़ों का उपयोग करें, 4. उस डेटा को वर्गीकृत करने के लिए उपयोग करें।
ब्योर्न रोशे

तो यह मूल रूप से मैं क्या सोचा था। लेकिन मुझे लगता है कि मुझे यह देखना होगा कि आपके द्वारा प्रदान की गई अच्छी लंबी सूची में से कौन से पैरामीटर हैं, जिनके साथ मुझे ध्वन्यात्मक ध्वनियों को चिह्नित करना होगा।
bad_keypoint

1
सच कहूं, तो मैं बहुत अधिक नमूना डेटा के बिना विभिन्न प्रकार के वातावरण में उंगली की तस्वीर और प्रकाश स्विच की तरह चीजों को भेद करने में सक्षम होने के बारे में बहुत निराशावादी हूं और शायद जितना मैंने दिया, उससे अधिक पैरामीटर, लेकिन मुझे आशा है कि मैं गलत हूं। कृपया अपने परिणामों पर वापस रिपोर्ट करें, भले ही इसमें कुछ समय लगे।
ब्योर्न रोचे

इसके अलावा, संगीत-डीएसपी मेलिंग सूची ( music.columbia.edu/cmc/music-dsp ) पर कुछ लोगों के अन्य सुझाव हो सकते हैं।
ब्योर्न रोशे

0

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


0

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

प्रशिक्षण

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

वर्गीकरण

  • वास्तविक समय में एक शुरुआत का पता लगाएं और आने वाले ऑडियो पर सुविधाओं की गणना करें
  • अपने डेटाबेस से "निकटतम" ध्वनि निर्धारित करने के लिए निकटतम पड़ोसी या के-निकटतम पड़ोसी वर्गीकरण करने के लिए एक दूरी मीट्रिक (यूक्लिडियन दूरी या एक और एलपी दूरी) का उपयोग करें।

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

यदि आप विशेष रूप से स्नैप्स बनाम लाइट स्विच के बारे में चिंतित हैं, तो कुछ समय बिताएं जिससे पता चल सके कि कौन सी विशेषताएं दो ध्वनियों के बीच सटीक भेदभाव कर सकती हैं।


मैं आने वाले ऑडियो डेटा में अचानक परिवर्तन का पता लगाकर शुरुआत का पता लगाऊंगा। वह काम करना चाहिए। मैं स्टोर किए जाने वाले इशारों की शुरुआत और समाप्ति का पता लगा रहा हूं।
bad_keypoint

हाँ, जो ज्यादातर काम करना चाहिए। एकमात्र कारण मैंने स्पेक्ट्रल फ्लक्स का सुझाव दिया है, ऐसा इसलिए है क्योंकि आप एसटीएफटी वैसे भी ले जा रहे हैं। यदि आप एक बहुत ही शांत वातावरण की उम्मीद कर रहे हैं, तो एक बुनियादी आयाम थ्रेसहोल्डिंग काफी अच्छी तरह से काम करना चाहिए।
ग्रेटकॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.