Noise suppression, is what everyone said noise reduction. This noise reduction is a distinction between vocals and non-human voices, which is a noise.
A piece of audio that contains vocals and noise is processed by the module, and in theory, only the vocal is left.
WEBRTC NS In the industry is still famous, through the actual comparison test, we found that webrtc noise reduction is indeed performance and stability
are higher than similar open source algorithms.
The NS principle of the WEBRTC is this: the first 50 frames of the data is taken to build the noise model, the first 200 frame of the signal strength to count
Calculates the spectral difference of the normalized value. According to these two models, we use the probability purpose function to calculate the SNR of each frame and distinguish the noise and sound.
Then, based on the calculated signal-to-noise ratio, the noise signal is eliminated by using Wiener filter in the frequency domain, and finally, the energy ratio before and after the noise reduction is
and signal noise likelihood ratio to the data after the noise reduction repair and adjust the output.
NS usage Analysis for WEBRTC: The WEBRTC noise reduction supports three sample rates, 8k,16k and 32k, and other sample rate noise reduction can be achieved by
Blind sampling to complete. Noise reduction mode has four kinds: respectively, 0,1,2,3 four modes of noise reduction in order to increase, the author personally measured, is generally 2 comparison
Good, the sound loss is small, noise reduction effect is good. A more important parameter is the noise estimate model macro definition, as shown below, which is recommended in
If the system has enough computing power, use the third one, and the result is the best.
#define PROCESS_FLOW_0//Use the traditional method.
#define PROCESS_FLOW_1//use traditional with DD estimate of prior SNR.
#define PROCESS_FLOW_2//Use the new method of Speech/noise classification.
Using methods and code calls:
Initialize: request memory, set sample rate and noise reduction mode.
Webrtcns_create (&pns_inst);
Webrtcns_init (pns_inst,nsample);
Webrtcns_set_policy (Pns_inst,nmode);
Handle the main function: for noise-cancelling frames, the default is 10ms frame length.
int webrtcns_process (nshandle* ns_inst, short* spframe, short* Spframe_h,
short* Outframe, short* outframe_h)
Code paths that can be run directly under Linux: HTTPS://GITHUB.COM/DYLANCAO/WEBRTC
Sketchy WEBRTC ns (Noise suppression) module