Friday, November 29, 2024

Machine learning comes to amateur radio: FreeDV RADE

FreeDV, which bundles up the very low bit rate voice codec, Codec2 and an Orthogonal Frequency Division Multiplexed (OFDM) modem that can send the data over an imperfect HF channel using an SSB radio. 

The project gives us the ability to have a pretty good sounding digital voice contact which can be free of the background noise we are used to with analog HF radio. Amazing.

The new mode, which applies machine learning to both the voice codec and the modem, is Radio Autoencoder (RADE). "It combines Machine Learning (ML) with classical DSP to send high quality speech over HF radio at SNRs as low as -2dB. The speech signal has an audio bandwidth of 8kHz, but the RADE V1 signal requires just 1500Hz of RF bandwidth."

I'm a bit sad to see codec2 being superseded by the FARGAN speech synthesiser which is based on work by Jean-Marc Valin. Codec2 by David Rowe VK5DR, is a world leading low bit-rate codec with the added utility of being open source. I'm sure it will continue to live on for constrained computing applications.

I like to use Linux in the ham shack and don't mind building open source software. To get RADE you need the version 2 fork of the FreeDV GUI application. It's early days and I ran into some build problems. I posted to the digital voice Google group and was quickly assisted by the author of the GUI application Mooneer Salem K6AQ and Barry Jackson G4MKT who has published a very nice build script that worked flawlessly for me on Linux Mint 22. 

The machine learning parts are made with python, not uncommon for machine learning code, but it does make the build rather complex due to not only c/c++ dependencies but also python modules being required. The plan by the developers is to port the ML parts over to C++ in the future which will simplify the build and reduce the size.

The flow charts on the left show the "traditional" architecture of FreeDV on the left compared to the simpler ML based architecture on the right. The AI architecture is "simpler" in one sense but on the other hand is much bigger and more resource hungry.

There are ready to run builds for both macOS and Windows available here. (Note that this link will age so you should check for later builds). On macOS I ran into the issue mentioned at the top of the page where I opened FreeDV and got a message saying that the application was damaged. The solution is on the page, in terminal run:

xattr -c /Applications/FreeDV.app

The screenshot above shows it running on an M2 MacBook Air, receiving FreeDV's most enthusiastic user Jose Donnari from Argentina.

I'm having a bit of trouble finding people to talk to with this mode at present so to test it I transmitted on 40m and captured the signal on the excellent Ironstone Range SDR in South Australia. A path of about 700km. The recorded audio is played back in FreeDV which shows how it would be decoded by a station at the other end.


You can see there is deep selective fading on the signal but compared to past FreeDV modes there are no "beeps and burps". Another noticeable improvement is the muting when there's no actual signal seems vastly superior.

Given that this signal fits in about 2kHz of HF bandwidth, I think it's much easier to listen to than SSB once you get used to it.

It's early days but this new application of machine learning to radio seems very promising. The pace of development of machine learning is breathtaking and my congratulations to David Rowe and the team for being at the cutting edge. The other big application of machine learning I can see is noise removal in HF receivers. I wonder how long it will take for commercial equipment to include this.

No comments: