A python library for speech enhancement.
The example test_pns.py shows how to do noise suppression on wav files. The python-pesq package should be installed in order to evaluate the output.
pip install pesq
python test_pns.py
Major steps of using the noise suppression library are shown below. The NoiseSuppressor processes audio data block by block.
# Initialize
fs = 16000
noise_suppressor = NoiseSuppressor(fs)
frame_size = noise_suppressor.get_frame_size()
# Process
x = noisy_wav
xfinal = np.zeros(len(x))
# Start Processing
k = 0
while k + frame_size < len(x):
frame = x[k : k + frame_size]
xfinal[k : k + frame_size] = noise_suppressor.process_frame(frame)
k += frame_size
-
STFT Analysis and Synthesis
-
Support sample rate 16000
-
IMCRA Noise Estimation, according to Cohen’s implementation
-
OMLSA Suppression Gain, according to Cohen’s implementation
-
Wiener Suppression Gain
-
Support sample rate 8000, 32000, 44100, 48000
-
MCRA Noise Estimation
-
Histogram Noise Estimation
- I. Cohen and B. Berdugo, Speech Enhancement for Non-Stationary Noise Environments, Signal Processing, Vol. 81, No. 11, Nov. 2001, pp. 2403-2418.
- I. Cohen, Noise Spectrum Estimation in Adverse Environments: Improved Minima Controlled Recursive Averaging, IEEE Trans. Speech and Audio Processing, Vol. 11, No. 5, Sep. 2003, pp. 466-475.
- Loizou, Philipos. (2007). Speech Enhancement: Theory and Practice. 10.1201/b14529.