facebookresearch / denoiser

Real Time Speech Enhancement in the Waveform Domain (Interspeech 2020)We provide a PyTorch implementation of the paper Real Time Speech Enhancement in the Waveform Domain. In which, we present a causal speech enhancement model working on the raw waveform that runs in real-time on a laptop CPU. The proposed model is based on an encoder-decoder architecture with skip-connections. It is optimized on both time and frequency domains, using multiple loss functions. Empirical evidence shows that it is capable of removing various kinds of background noise including stationary and non-stationary noises, as well as room reverb. Additionally, we suggest a set of data augmentation techniques applied directly on the raw waveform which further improve model performance and its generalization abilities.
Other
1.62k stars 299 forks source link

Seeking Clarification on DemucsStreamer Logic #159

Open sreezilosky opened 9 months ago

sreezilosky commented 9 months ago

Team, I want to express my immense gratitude for open sourcing your project. Your contribution has been a career-saving resource for me, and words cannot convey how thankful I am.

I've been delving into the DemucsStreamer logic, and while I've made progress, certain aspects, especially related to the decoder streaming, still elude me. Specifically, I'm seeking clarification on a few lines of code:

  1. Subtracting Bias (Line 403): I'm curious about the motivation behind subtracting the bias in this line. Could you kindly explain the rationale behind this operation?

  2. Operations: x = x[..., :-demucs.stride] and x[..., :demucs.stride] += prev: I'm struggling to grasp the purpose of these operations. Why do we modify x using these slices, and what role do they play in the overall functionality of the code?

I've been trying to understand these nuances for months, and any insights or explanations would be immensely valuable to me. If at all there is an explanation for this somewhere in the web, kindly help me with the link.

sreezilosky commented 9 months ago

@adiyoss @adefossez I've tried to figure this for few months now - but i failed. Would be really helpful if some direction to this is given. Thanks in advance.