python-speech-enhancement
python-speech-enhancement copied to clipboard
a python library for speech enhancement
Python Speech Enhancement
A python library for speech enhancement.
Usage
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
Features
-
[x] STFT Analysis and Synthesis
-
[x] Support sample rate 16000
-
[x] IMCRA Noise Estimation, according to Cohen’s implementation
-
[x] OMLSA Suppression Gain, according to Cohen’s implementation
-
[x] Wiener Suppression Gain
-
[ ] Support sample rate 8000, 32000, 44100, 48000
-
[ ] MCRA Noise Estimation
-
[ ] Histogram Noise Estimation
Reference
- 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.