DTLN: Realtime Machine Learning based Noise Suppression / AEC on Raspberry Pi

The fix works! :+1: Thanks!

On with the AEC testing now :slight_smile:

Guys, can you explain how you configure Rhasspy in this case with NS & AEC? Do I understand this in the right way that each satellite needs to do NS and AEC or is it also possible to do this just on the base system?

I asked in another topic ways to improve Rhasspy in case of wake word detection and reduce the failure rate, @romkabouter gave the advice to search for NS & AEC. Based on the search results it looks like this is the most advanced and updated approach.

I’m trying to get this to work. I’ve gotten to python3 ns.py -o 'Loopback ,0' --measure and it seg faults. I’m running a Pi4 with 64bit PiOS, respeaker 2mic and I copied over the aec config and added snd-aloop to /etc/modules. I originally was trying to get ec to work, but was having issues after switching to the 64bit version of PiOS, so maybe 64bit is my problem? Has anyone tested on 64bit?

I haven’t tried base/satellite setup myself. But this machine learning based processors require more powerful CPU (better to be rPi 3+ or 4)

I’ve tested on 64bit OS, didn’t encounter this problem.

How does the flow look like right now? You implement NS AEC before Rhasspy (and its modules) starts working, right?

Because I think it has to be done on the system which has a connected microphone because in case you use the base station this station doesn’t know the audio stream of the satellite systems.

How does your audio recording settings in Rhasspy look like? I guess you need to change the device to avoid grabbing the raw microphone line?

The NS/AEC scripts are standalone. You can setup a virtual sound card with ALSA and then configure Rhasspy to use it. Maybe it’s easier to setup on satellites. I don’t use Rhasspy, hopefully somebody else has tried to configure it and can give you some help.