Radio Autoencoder

Our Radio Autoencoder (RADE) technology is a new approach to sending speech over HF radio. 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. The Peak to Average Power Ratio (PAPR) is less than 1dB, allowing efficient use of transmitter power amplifiers.

Our testing indicates RADE works well on low and high SNR HF radio channels, and has impressive speech quality compared to SSB and traditional digital voice over radio systems. RADE V1 requires more memory and CPU than a traditional digital voice system, but will run just fine with the resources of a typical PC.

RADE V1 has been implemented with a combination of Python and C code. To demonstrate RADE we have integrated it with the FreeDV-GUI application V2.0 and above which runs on a Windows PC or laptop, and connects to HF radios using a sound card interface.

Credits

The RADE concept evolved from a discussion between Jean-Marc Valin and David Rowe in late 2023. Jean-Marc quickly put together an initial proof-of-concept demo. Over the course of 2024 David built on this work to develop a practical over the air waveform for speech over HF radio channels.

Mooneer Salem is handling integration of RADE into the FreeDV GUI application.

The FreeDV Project Leadership Team and many others have helped with support and testing over the course of 2024. The contributions from David, Mooneer and the FreeDV PLT has been generously supported by a grant from Amateur Radio Digital Communications (ARDC).

Resources

  1. The RADE Introduction document is an introduction to Version 1 of RADE, and a description of the waveform. The target audience is the Radio Amateur and regulatory organizations that govern Amateur Radio.
  2. Japanese translation of RADE Introduction document, thanks Yuichi JH0VEQ.
  3. The development of RADE has been documented in a series of blog posts over the course of 2024.
  4. Radio Autoencoder GitHub repo.

FAQ

  1. RADE V1 is at Beta status – we have performed a series of test campaigns over the course of 2024 using stored file/off line testing, and now have end users using it in real time over the air conversations.
  2. The current implementation is a hybrid of Python and C. We plan to develop a stand alone C library suitable for inclusion in other SDRs. We do not recommend, and will not be supporting packaging or distribution of RADE V1 – it is an interim release and we are focused on the next stages of RADE development.
  3. RADE is open source, and released under the two clause BSD license. It employs the FARGAN ML vocoder (not Codec 2).
  4. RADE previously used the working acronym RADAE, you may see this used in several places in the source code and documentation.
  5. RADE V1 currently requires a modern Desktop or Laptop CPU. When fully ported to C, subsequent versions will require a machine with better than 1 GHz clock speed and several Gbytes of memory (e.g. cell phone or modern Raspberry Pi). It will not run on micro-controllers or very small machines such as the stm32.
  6. Our primary platform for the FreeDV-GUI 2.0.0 RADE V1 Beta is Windows. Linux end users are encouraged to manually build from the command line, but we can offer only limited support. We will not be supporting RADE V1 on every Linux distribution, and furthermore, we will not be supporting packaging RADE V1 for any Linux distribution.
  7. Unfortunately RADE will not run on the SM1000 or ezDV adapter devices – they just don’t have the CPU or memory. We are exploring alternatives for adapter devices, but our priority is core RADE algorithm development first.
  8. Due to the radical new design of RADE, we have not implemented “feature complete” compatibility with previous FreeDV modes (e.g SNR estimation, FreeDV reporter, text channels, automatic mode detection). These features are being considered, but are low priority compared to the significant improvement in speech quality and low SNR robustness that RADE offers.
  9. Measuring SNR from the off air RADE signal is problematic due to the time varying nature of the signal constellation (see RADE Introduction document). This is an ongoing R&D question, and we have no timeline for when SNR measurement will be available.
  10. Unlike previous FreeDV modes, there is no SNR based squelch in RADE V1. Instead, it measures the probability that the frame sync has been successfully detected, and starts decoding if this meets an internal threshold. In order to simplify operation, there is no adjustment available. The threshold has been set to match the lower limit of usable audio.
  11. If you encounter a use case where RADE breaks, please (a) join the RADE Test Team (b) use the stored file test system to submit a sample . Anecdotal reports (e.g. “It didn’t work for me last Friday”) are not useful as they provide no way for us to reproduce the problem.
  12. Our resources are limited and we are seeking to rapidly move RADE forward. In order to keep advancing the technology we can only offer only limited support for RADE V1 at this time. This is experimental radio communications software. For the Beta releases we are not seeking to make RADE V1 entirely bug free or to run on every end user (in particularly low end) machines. Use it at risk and have fun!