पल्सएडियो के साथ रियलटाइम शोर को हटाने?


66

क्या पल्सएडियो के साथ रियलटाइम नॉइज़-रिमूवल करना संभव है, इसलिए जो साउंड आउटपुट निकल रहा है वह स्मूथ है?


यह शायद संभव है, हालांकि यह गहन होगा, और इसके लिए किसी को एक फिल्टर लिखने की आवश्यकता होगी।
RolandiXor

2
@Vadi - मैंने एक उत्तर जोड़ा है जो आपकी मदद कर सकता है यदि आप अभी भी उबंटू या किसी अन्य पल्सएडियो आधारित डिस्ट्रो का उपयोग कर रहे हैं। आशा है कि यह आपके लिए काम करता है दोस्त
लुइस अल्वाराडो

यह पोस्ट कुछ इसी तरह की लगती है
akhmed

जवाबों:


75

Pulseaudio मॉड्यूल module-echo-cancel

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

  1. sudo nano /etc/pulse/default.pa

  2. फ़ाइल पर कहीं भी निम्न पंक्ति जोड़ें, लेकिन मैं लगभग अंत में सलाह देता हूं कि आपको इको कैंसेलेशन सामग्री (~ लाइन 140) के बारे में एक टिप्पणी मिलेगी:

    load-module module-echo-cancel
    
  3. PulseAudio पुनः लोड करें ( pulseaudio -k) या बस कंप्यूटर को पुनरारंभ करें। आपको इनपुट डिवाइस सेक्शन से नया शोर रद्द करने का विकल्प चुनने में सक्षम होना चाहिए:

    स्क्रीनशॉट

आप इसके बारे में अधिक जानकारी इको रद्द मॉड्यूल पृष्ठ पर प्राप्त कर सकते हैं

इनपुट को डिफ़ॉल्ट के रूप में सेट करें

यदि आप ईको कैंसिल डिवाइस को डिफ़ॉल्ट के रूप में सेट करना चाहते हैं, तो बस उपरोक्त लाइन को इसमें बदल दें:

load-module module-echo-cancel source_name=logitechsource

और फिर फ़ाइल जोड़ने के निचले भाग में

set-default-source logitechsource

इस मामले में मैंने स्रोत का नाम दिया है logitechsource, लेकिन आप इसे जो चाहें नाम दे सकते हैं और बस या तो पल्सेडियो को पुनः आरंभ कर सकते हैं।

डिवाइस का नाम बदलें

अंत में, यदि आप साउंड सेटिंग्स (जब आप किसी इनपुट / आउटपुट डिवाइस का चयन करना चाहते हैं) पर सुपर लंबे नाम नहीं चाहते हैं। मेरा सुझाव इस तरह इनपुट डिवाइस का नाम बदल रहा है:

load-module module-echo-cancel source_name=logitechsource source_properties=device.description=LogitechHD

और फिर से, pulseaudio को पुनरारंभ करना। अंतिम परिणाम इस तरह दिखता है:

स्क्रीनशॉट


6
करने के लिए आसान है और चीजों को तोड़ने के लिए प्रतीत नहीं होता है - धन्यवाद!
वादिम पेरिटोकिन

2
उत्कृष्ट समाधान, मेरे लिए बॉक्स से बाहर काम किया, धन्यवाद
भागा

1
इसने मेरे लैपटॉप और मेरी रिकॉर्डिंग की आवाज़ से फैन के शोर को बहुत बेहतर कर दिया!
पीजे ब्रुनेट

1
पवित्र मोली - मुझे ईबे से मिले एक भद्दे $ 5 लैपल माइक्रोफोन से भी आश्चर्यजनक परिणाम मिले। यह स्टूडियो गुणवत्ता नहीं है, लेकिन वीओआइपी कॉल के लिए यह पूरी तरह से ठीक है।
रेमंड मॉर्गन

2
यदि आप इको मॉड्यूल को वॉल्यूम स्लाइडर को स्वचालित रूप से समायोजित करने से बचना चाहते हैं, तो आप gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/224load-module module-echo-cancel aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1"
joelostblom

16

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

सबसे पहले आपको SoX के लिए एक शोर प्रोफ़ाइल बनाने की आवश्यकता है। बस कुछ सेकंड के शोर को रिकॉर्ड करने के लिए किसी भी ऑडियो रिकॉर्डिंग प्रोग्राम का उपयोग करें, फिर cdउस डायरेक्टरी में जिसे आपने इसे सेव किया और किया sox noise.wav -n noiseprof noise.prof

फिर आपको ALSA लूपबैक डिवाइस बनाने की आवश्यकता है:

sudo modprobe snd_aloop

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

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

pacat -r -d alsa_input.pci-0000_00_14.2.analog-stereo --latency=1msec|sox -b 16 -e signed -c 2 -r 44100 -t raw - -b 16 -e signed -c 2 -r 44100 -t raw - noisered noise.prof 0.2|pacat -p -d alsa_output.2.analog-stereo --latency=1msec

(जहाँ आपको -d पैरामीटर के लिए सही डिवाइस नामों को स्थानापन्न करने की आवश्यकता है - पहला पेकेट मंगलाचरण के लिए इनपुट डिवाइस और दूसरे के लिए लूपबैक डिवाइस आउटपुट।)

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


1
यह स्क्रिप्ट प्रक्रिया को सरल बनाती है। gist.github.com/tiagoengel/334573f7c3b3c98c27356297d6b1996336
थॉमस

2

जांच से पता चलता है कि किसी भी लिनक्स सब सिस्टम के साथ वास्तविक समय शोर में कमी करने का कोई ज्ञात तरीका नहीं है। कुछ वेबसाइट हार्डवेयर की ओर इशारा करती हैं जिन्हें आप खरीद सकते हैं जो कि सॉफ्टवेयर फ़िल्टर करने की तुलना में चाल को बहुत बेहतर करना चाहिए।

वैकल्पिक रूप से यदि यह एक रिकॉर्डिंग के लिए है, तो आप ध्वनि को ऑडेसिटी के माध्यम से पारित कर सकते हैं और वहां शोर फ़िल्टर का उपयोग कर सकते हैं।


दया, मुझे आश्चर्य है कि क्यों नहीं। जांच के लिए धन्यवाद।
वादिम पेरिटोकिन

ज़रूर! शोर रद्द करने के बारे में मॉड्यूल प्रलेखन पृष्ठ पर कोई जानकारी नहीं है। अंदर केवल AEC (ध्वनिक इको रद्द) एल्गोरिथ्म है module-echo-cancel, जिसमें कई कार्यान्वयन हैं, जैसे webrtc | Speex।
vskubrievence

1

यहां लैश टोन तरीके से, वीब्र्टेक-इन को लागू करें

http://wiki.gentoo.org/wiki/PulseAudio

webrtc-aec यस उपयोग करता है webrtc.org ऑडियोप्रोसेसिंग लाइब्रेरी में वीओआईपी कॉल को बढ़ाने के लिए अनुप्रयोगों में जो ध्वनिक प्रतिध्वनि रद्दीकरण, एनालॉग लाभ नियंत्रण, शोर दमन और अन्य प्रसंस्करण का समर्थन करके इसका समर्थन करते हैं।

यहाँ इस विषय पर 2013 का एक पेपर दिया गया है (विशेष रूप से पल्सेडियो के साथ शोर हटाना, विशेष रूप से नहीं) http://lac.linuxaudio.org/2013/papers/37.pdf

"हमने पल्सएडियो के शीर्ष पर निर्मित एक मल्टी-चैनल शोर / इको रिडक्शन सॉल्यूशन के rst परिणाम प्रस्तुत किए हैं और डिज़ाइन निर्णयों को प्रेरित करते हैं। इस कार्य के परिणामस्वरूप पल्सएडियो इको रद्द और सिग्नल-प्रोसेसिंग फ्रेमवर्क में कई सुधार हुए हैं, जो कि हुए हैं। संस्करण 3.0 / 4.0 के विकास चक्र के दौरान योगदान दिया जाना चाहिए और भविष्य में एम्बेडेड लिनक्स ऑडियो समाधानों की सुविधा प्रदान करनी चाहिए। आगे के काम में ऑडियो स्ट्रीम मिश्रण के लिए अनुकूलन कोड, अधिक ईज़ान फिर से शुरू करने के तरीके और बहु-चैनल प्रसंस्करण पाइपलाइन में एक कुशल एईसी का कार्यान्वयन शामिल है। "


एक त्वरित प्रोफ़ाइल के लिए मेरे मन में जो था वह एक शोर प्रोफ़ाइल को समाप्‍त करना और sox का उपयोग करके वास्तविक समय शोर को दूर करना था और फिर ऑडियो आउटपुट को वापस खेलना, जिसे मैं तब पल्स में इनपुट स्ट्रीम के रूप में उपयोग कर सकता हूं। मेरा मानना ​​है कि पल्स इस तरीके से इनपुट और आउटपुट स्ट्रीम बनाने और रीडायरेक्ट करने में सक्षम है। यही कारण है कि प्लेबैक स्ट्रीम को किसी अन्य एप्लिकेशन के इनपुट स्ट्रीम के रूप में पुनर्निर्देशित किया जा सकता है और प्लेबैक स्ट्रीम प्रति एप्लिकेशन प्रति डिवाइस नहीं है, इसलिए इसे डिवाइस हार्डवेयर पर रूट करने की आवश्यकता नहीं है।
user2330377

मैं इस pacmd का उपयोग कर pulseaudio उपकरणों की सूची, रिकॉर्ड करने और उनसे प्लेबैक करने के लिए pacmd और स्ट्रीम पर वास्तविक समय प्रभाव करने के लिए sox का उपयोग कर रहा हूं।
user2330377

क्या आप इसके लिए स्क्रिप्ट पोस्ट करने में रुचि लेंगे?
वादिम पेरिटोकिन

0

शोर रद्द करने के बारे में मॉड्यूल प्रलेखन पृष्ठ पर कोई जानकारी नहीं है। मॉड्यूल-इको-रद्द के अंदर केवल एईसी (ध्वनिक इको कैंसिलेशन) एल्गोरिथ्म है, जिसमें कई कार्यान्वयन हैं, जैसे कि वेब्रेटक | Speex।

इसलिए आपको जितना संभव हो सके एकीकृत शोर रद्दीकरण सुविधा वाले माइक्रोफोन खरीदना चाहिए।

जैसा कि मैंने उबंटू में वॉयस रिकॉर्डिंग का परीक्षण किया, मुझे कुछ विशेष गुण मिले:

  • Skype, टेलीग्राम डिफ़ॉल्ट डिवाइस से कच्चे इनपुट का उपयोग करता है (मेरे मामले में फ्रंट-इन-माइक | बैकवर्ड-माइक जैक)। यदि आपको इस ऐप्लिकेशन में शोर को रद्द करने की आवश्यकता है, तो आपको हेडसेट्स खरीदने चाहिए। केवल एकीकृत शोर रद्द करने की सुविधा वाले माइक्रोफोन

  • यदि आपको ब्राउज़र में वॉयस कॉल का उपयोग करने की आवश्यकता है, तो आपको यह ध्यान रखना चाहिए कि ब्राउज़र के पास वॉयस प्रोसेसिंग एल्गोरिदम कार्यान्वयन है, जैसे WebRTC।

  • इसके अलावा वेब एप्लिकेशन (टॉकी, हैंगआउट, दिखावे, आदि जैसी साइटें) की अपनी आवाज प्रसंस्करण एल्गोरिदम कार्यान्वयन हो सकती हैं, इस तथ्य के बावजूद कि वे वेबब्रैक हैंगआउट-विश्लेषण पर आधारित हो सकते हैं

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