Sketchy WEBRTC ns (Noise suppression) module

Source: Internet
Author: User

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.