2013-06-05 11 views
5

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

+0

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

+0

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

+0

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

उत्तर

0

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

1

'मैं कुछ पीओसी पर काम कर रहा हूं और एक बाइकडफिल्टर के साथ लैपटॉप "जीवन नाक" कम कर रहा हूं। मैंने कंप्रेसर का भी उपयोग किया है लेकिन आपको यह नहीं करना है))

(function(){ 
    var filter, compressor, mediaStreamSource; 

    // Start off by initializing a new context. 
    var context = new (window.AudioContext || window.webkitAudioContext)(); 


    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia; 
    navigator.getUserMedia({audio:true}, initAudio , function(err){ 
     console.log('usermedia error', err) 
    }); 



    function initAudio(stream) { 
     compressor = context.createDynamicsCompressor(); 
     compressor.threshold.value = -50; 
     compressor.knee.value = 40; 
     compressor.ratio.value = 12; 
     compressor.reduction.value = -20; 
     compressor.attack.value = 0; 
     compressor.release.value = 0.25; 

     filter = context.createBiquadFilter(); 
     filter.Q.value = 8.30; 
     filter.frequency.value = 355; 
     filter.gain.value = 3.0; 
     filter.type = 'bandpass'; 
     filter.connect(compressor); 


     compressor.connect(context.destination) 
     filter.connect(context.destination) 

     mediaStreamSource = context.createMediaStreamSource(stream); 
     mediaStreamSource.connect(filter); 
    } 
})(); 
संबंधित मुद्दे