Skip to content

studio365app/Realtime_AudioDenoise_EchoCancellation

 
 

Repository files navigation

Realtime_AudioDenoise_EchoCancellation

This project is c++ port of DTLN denoise.
For denoise and AEC purpose, I've tried speex, webrtc, rnnoise and etc, but didn't find optimal solution (realtime & performance).
Lately, I found DTLN solution by breizhn.
DTLN not only performs denoising, but also has deecho effect.

It's VC++ project, but use pure c++, so you can adopt to any platforms.
I've included all the dependencies for wav, tflite, fft, resampling.
Also I've included pretrained tflite models from DTLN project.
So you can test project using raw pcm or wav files in various format.

USAGE

You can create multiple instances.
Please refer to project for detailed usage.
Input format of denoise function is 16KHz, fp32 pcm.

void tflite_create(trg_engine* engine)
void trg_denoise(trg_engine* engine, float* samples, float* out, int sampleCount)
void tflite_destroy(trg_engine* engine)

TIPS

I've tested project on armv7 1GHz environment and got realtime performance.
If performance not match your need, you can use quantized model in models folder and tried to input 8Khz directly instead of 16Khz pcm**.
** I've tested 8Khz pcm directly without resampling and got x2 speed up, reasonable quality on test samples. (Not recommended)

Personally thanks to breizhn for his great work

And looking forward to DTLN-aec repo completion.

STAR if project is helpful

And welcome pull requests and issue.

REFERENCES

DTLN (https://github.com/breizhn/DTLN) (Great thanks to breizhn)
PFFT (https://gitlab.mpcdf.mpg.de/mtr/pocketfft/-/tree/cpp)
Resample (https://github.com/cpuimage/resampler)

LICENSE

Anti 996 License from (https://github.com/kattgu7/Anti-996-License)

2021.04.11

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 93.2%
  • C 6.6%
  • Objective-C 0.2%