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

Using RTP packet stream as input and output!! #131

Open qalabeabbas49 opened 1 year ago

qalabeabbas49 commented 1 year ago

Hi, Great project and works extremely well.

I have a scenario, that maybe someone can help with. I want to run this denoiser on a remote server so that it will accept RTP packets from a remote client, denoise, and then send the output as RTP to the remote client.

I thought of a few ways but as I'm not very advanced in this domain, I am not sure if they are a viable option.

1) create a virtual source and sink with PulseAudio to receive and send the RTP packets. Here code will most likely stay the same and I will use the virtual source and sink as input and output with denoiser.live (don't yet know if that's possible.)

2) Use python sockets and pyaudio to change the live.py input and output. (I have been reading up on sockets and transmitting audio data using rtp/udp) Here sounddevice input stream will be replaced by pyaudio stream.

If anyone can comment on my approach or suggest something better, would be great.

Also please suggest any helpful material regarding this task.

Thank you