A UGen implementation of a single frame Weighted Prediction Error (WPE) de-reverberation algorithm in the frequency domain. It takes a DFT'ed input signal frame by frame and returns the estimated reverberated components. To actually obtain the de-reverberated signal, subtract the output from the input signal, then perform inverse FFT and overlap-add reconstruction.
The algorithm closely follows the Python package described in L. Drude, J. Heymann, Ch. Boeddeker, R. Haeb-Umbach, 'NARA-WPE: A Python package for weighted prediction error dereverberation in Numpy and Tensorflow for online and offline processing' and its Numpy implementation (MIT licensed).
'''Note:''' this does not yet work correctly with multi-channel input.
- Value parameters:
- alpha
the decay factor for the filter coefficients
- bins
the number of frequency bins (should be
fftSize / 2 + 1
)- delay
the delay in spectral frames to avoid suppression of early reflections
- in
the sequence of complex FFT'ed frames. Should have been obtained through
Real1FFT
withmode = 1
.- psd
the power spectrum density estimation, frame by frame corresponding with
in
. It should correspond with the shape ofin
, however being monophonic instead of multi-channel and using real instead of complex numbers (half the signal window length).- taps
the filter size in spectral frames to capture the late reverberation
- Companion:
- object