cpuimage/WebRTC_NS

Bug for supporting sample rate more than 16000hz.

jagger2048 opened this issue · 5 comments

In fact this project's implement only support 8khz, 16khz sample

In the official implement, in order to support 32khz and 48khz, the input signal should be processed by a splitting filter and generate two bands or three bands signal, then applying noise suppression and synthesis back to one bank signal. I have review the codes and cannot find the related functions.

It‘’s a bug that this project don't contain these processing. In #1 , modfiy WebRtcNs_InitCore function is useless .

In fact this project's implement only support 8khz, 16khz sample

In the official implement, in order to support 32khz and 48khz, the input signal should be processed by a splitting filter and generate two bands or three bands signal, then applying noise suppression and synthesis back to one bank signal. I have review the codes and cannot find the related functions.

It‘’s a bug that this project don't contain these processing. In #1 , modfiy WebRtcNs_InitCore function is useless .

非常好,这个问题当时确实没细看,有心了。
近期一直很忙,没什么时间维护了。
回头再重新梳理一下。

感谢您的分享。
大致读了一下您的代码,想请教您一下,原始的WebRTC中的语音估计器中,利用的就是prior SNR- based Wiener Filter 吗?还是您改进后的结果?

@Windstudent 原始就是如此,没有修改.

ruiyq commented

In fact this project's implement only support 8khz, 16khz sample

In the official implement, in order to support 32khz and 48khz, the input signal should be processed by a splitting filter and generate two bands or three bands signal, then applying noise suppression and synthesis back to one bank signal. I have review the codes and cannot find the related functions.

It‘’s a bug that this project don't contain these processing. In #1 , modfiy WebRtcNs_InitCore function is useless .

You can modify the Line 765 like below in the noise_suppression.c
if (fs == 8000 || fs == 16000 || fs == 32000 || fs == 48000)

Then it can support 32kHz and 48kHz and can do noise suprression.
Please see https://github.com/HackWebRTC/webrtc/blob/hack_webrtc/modules/audio_processing/legacy_ns/ns_core.c (WebRtcNs_InitCore())

NS采样率不阉割版本 ,可移步至仓库:
WebRTC_NS_CPP