WebRtc_noise_suppression icon indicating copy to clipboard operation
WebRtc_noise_suppression copied to clipboard

Noise suppression in high sample rate.

Open masyagin1998 opened this issue 6 years ago • 1 comments

Hello, jagger2048! Thank You for Your great project!

In documentation for signal_processing_library.h I found this words: // WebRtcSpl_AnalysisQMF(...) // // Splits a 0-2*F Hz signal into two sub bands: 0-F Hz and F-2*F Hz. The // current version has F = 8000, therefore, a super-wideband audio signal is // split to lower-band 0-8 kHz and upper-band 8-16 kHz. // // Input: // - in_data : Wide band speech signal, 320 samples (10 ms) // // Input & Output: // - filter_state1 : Filter state for first All-pass filter // - filter_state2 : Filter state for second All-pass filter // // Output: // - low_band : Lower-band signal 0-8 kHz band, 160 samples (10 ms) // - high_band : Upper-band signal 8-16 kHz band (flipped in frequency // domain), 160 samples (10 ms)

So why do You use WebRtcSpl_AnalysisQMF(...) (and WebRtcSpl_SynthesisQMF(...)) for 32000 Hz sound?

masyagin1998 avatar Sep 13 '19 05:09 masyagin1998

Hi masyagin1998,

The WebRtcSpl_AnalysisQMF() and WebRtcSpl_SynthesisQMF() function is the Quadrature mirror filter which can split the input signal into two bands, the lower one and the upper one. Its centre frequency is pi/2.

Maybe the annotation in signal_processing_library.h has some fuzzy description. Although It says F = 8000, sample rate = 16000, its input frame length supports up to 320 points, 10ms. That is a sample rate at 32000 Hz.

I'm not sure the QMF actually works for fs = 16000 or 32000 as I am not familiar with the QMF and it has been optimized with fix-point. In my opinion fs = 32k is more reasonable as the noise suppression can originally work at fs = 16000 without other processing.

I have updated a simple test for the QMF based two-band splitting filter at another project, After synthesis, it can be reconstructed the signal splitted into two bands, you can check the results at the project.

jagger2048 avatar Sep 16 '19 07:09 jagger2048