2013-06-05 61 views
5

Tôi đã chơi xung quanh với API âm thanh trên web và sử dụng micrô của máy tính xách tay của tôi làm nguồn đầu vào. Tôi có thể nghe thấy rất nhiều tiếng ồn trắng khi tôi nghe đầu vào mặc dù; làm cách nào để tạo bộ lọc để giảm nhiễu để âm thanh rõ ràng hơn? Có thư viện nào cung cấp bộ lọc tiếng ồn được viết sẵn cho tình huống này không?Làm cách nào để giảm tiếng ồn của đầu vào micrô bằng API âm thanh trên web?

+0

Không có bộ lọc nhiễu ma thuật như vậy. Có rất nhiều cách để giới thiệu tiếng ồn và rất nhiều cách để loại bỏ nhiễu tùy thuộc vào loại nhiễu bạn đang xử lý. Ngoài ra, bạn đang tìm kiếm để lọc phía khách hàng tiếng ồn này, hoặc trên một máy chủ? Khi bạn lọc ra nhiễu, bạn cũng lọc tín hiệu, giảm chất lượng âm thanh. có lẽ một cổng tiếng ồn đơn giản là tất cả những gì bạn cần? Ứng dụng của bạn là gì? – Brad

+0

Tôi nhận ra rằng không có "bộ lọc ma thuật", nhưng tôi cho rằng có những phương pháp tiêu chuẩn mà mọi người sử dụng để xây dựng bộ lọc tiếng ồn. Tôi đang sử dụng API âm thanh trên web, vì vậy đây sẽ là phía máy khách. Có lẽ một cổng tiếng ồn là những gì tôi đang tìm kiếm, làm thế nào để đi về việc tạo ra một? –

+0

Tôi không quá quen thuộc với API âm thanh trên web, nhưng nói chung, cổng chỉ là không có âm thanh nào được thông qua cho đến khi đạt đến một ngưỡng nhất định. Ý tưởng là khi bạn không nói, không có âm thanh nào đi qua. Bạn không nghe thấy tiếng ồn (hoặc bất cứ điều gì) khi mức dưới ngưỡng. Khi nó ở trên, bạn sẽ nghe thấy tiếng ồn nhưng nó sẽ được che bằng giọng nói của bạn. Một phương pháp khác là lấy một mẫu quang phổ của nhiễu và sau đó trừ đi phổ đó từ dòng. Điều này là tốt hơn cho một loại cụ thể của tiếng ồn, như 60hz rò rỉ in Nó cũng làm giảm chất lượng âm thanh. – Brad

Trả lời

0

Bạn có thể thử loại bộ lọc thông cao nếu những gì bạn đang nghe có nhiều tiếng ồn hơn tiếng ồn toàn phổ. Tôi tin rằng Web Audio API có loại bộ lọc mà bạn có thể triển khai.

1

'`m làm việc trên một số POC và giảm máy tính xách tay" vòng đời "với BiquadFilter. Tôi cũng sử dụng máy nén nhưng bạn không phải))

(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); 
    } 
})(); 
Các vấn đề liên quan