2013-06-05 6 views
5

Ich habe mit der Web Audio API gespielt und das Mikrofon meines Laptops als Eingabequelle verwendet. Ich höre zwar viel weißes Rauschen, wenn ich den Input höre; Wie kann ich einen Filter erstellen, um das Rauschen zu reduzieren, so dass der Klang klarer ist? Gibt es Bibliotheken, die einen vordefinierten Geräuschfilter für diese Situation bereitstellen?Wie kann ich das Rauschen eines Mikrofoneingangs mit der Web Audio API reduzieren?

+0

Es gibt keine so magischen Rauschfilter. Es gibt viele Möglichkeiten, wie Rauschen eingeführt wird, und viele Möglichkeiten, es zu entfernen, abhängig von der Art von Rauschen, mit dem Sie es zu tun haben. Möchten Sie dieses Geräusch auch auf der Client-Seite oder auf einem Server filtern? Wenn Sie Rauschen ausfiltern, filtern Sie auch das Signal und verringern so die Audioqualität. vielleicht ist ein einfaches Noise Gate alles was du brauchst? Was ist deine Bewerbung? – Brad

+0

Mir ist klar, dass es keinen "magischen Filter" gibt, aber ich nehme an, dass es Standardmethoden gibt, mit denen die Leute einen Rauschfilter erstellen. Ich benutze die Web Audio API, dies wäre also clientseitig. Vielleicht ist ein Noise Gate genau das wonach ich suche, wie geht man vor? –

+0

Ich bin nicht so vertraut mit der Web Audio API, aber im Allgemeinen ist ein Gate nur, dass kein Audio durchgelassen wird, bis der Pegel einen bestimmten Schwellenwert erreicht. Die Idee ist, dass, wenn Sie nicht sprechen, kein Ton durchkommt. Sie hören das Geräusch (oder irgendetwas) nicht, wenn der Pegel unter dem Schwellenwert liegt. Wenn es oben ist, werden Sie das Geräusch hören, aber es wird von Ihrer Stimme maskiert werden. Eine andere Methode besteht darin, eine Spektralprobe des Rauschens aufzunehmen und dieses Spektrum dann von dem Strom abzuziehen. Dies ist besser für eine bestimmte Art von Rauschen, wie 60hz eindringen. Es reduziert auch die Qualität von Audio. – Brad

Antwort

0

Sie könnten versuchen, eine Art von Hochpassfilter, wenn das, was Sie hören, mehr ein Rauschen als Vollspektrum-Rauschen ist. Ich glaube, dass die Web Audio API diese Art von Filter hat, die Sie implementieren könnten.

1

Ich arbeite an einigen POC und reduziert Laptop "Life Noses" mit einem BiquadFilter. Ich habe auch einen Kompressor, aber Sie müssen nicht))

(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); 
    } 
})(); 
Verwandte Themen