(old) client v0.21.9.5

Removing noise with AI

(old) client v0.21.9.5

The server has been upgraded to version 0.21.9.x. This requires a client software upgrade. Here is the upgrade link: https://ournetplace.com/rmnoise/rmnoise-setup-0-21-9-5-2.exe As usual, the setup will uninstall any previous version. This version has been replaced by a newer version: https://ournetplace.com/rm-noise/client-v0-21-9-7/

Changes

  • The often inaccurate live drift + avg rtt figures have been replaced with an accurate measurement called delay.
  • The client now ensures that delay is kept below an adjustable maximum
  • A new graph displays system information, including delay and internet latency
  • The audio input device can be changed without a software restart

Other

  • Upgraded libraries and Python 3.11
  • Started integrating compiled c, and rewrote the client to be event based
  • The extra console window has been removed

New max audio buffer and delay

Internet glitches often delay an audio stream. If unchecked, the audio playing can be become unacceptably delayed behind the live signal.

Under options, there is a new setting: max audio buffer. The default max audio buffer is 200 ms. This means the maximum delay allowed is 200 ms beyond the minimum internet and server latency.

  • A lower buffer guarantees a shorter delay, but it is possible that more late audio frames will be dropped.
  • A higher buffer means fewer audio frames will be dropped for being late, but a longer delay is possible.

More on delay

Delay measures [the majority of] the time between the audio leaving the radio and playing back through the headphones.

I am now including the 100 ms it takes to get the first 100 ms from the soundcard, so in theory, the old avg rtt + live drift + 100 ms = the new delay value.

There are two additional sources of latency not included in delay:

  • the soundcard itself has buffering, and may delay the stream 100 ms or more.
  • the neural net’s lookahead causes 30 ms of latency not included in network and server latency

Email notifications

For email notifications, consider subscribing to email list: RMNoise+subscribe@groups.io

Updates to version 0.21.9.x

  • I found a small issue affecting delay in v0.21.9. The issue has been fixed in v0.21.9.2.
  • I then found a possible memory leak and another issue with delay.
  • Version 0.21.9.5 consists of stability and bug fixes. This is the latest version. Older 0.21.9.x client versions still work., but I recommend upgrading to v0.21.9.5

Server update

The server has been upgraded to a more performant server version: v0.21.9.5

Server changes

  • The server was rewritten to be event based.
  • The AI lookups are now performed by a dedicated inference server
  • All modules and python 3.11 upgraded

Filter changes

The latest cw filter was updated to recognize audio tones between 700 and 1300 Hz. The old cw filter was trained with audio tones up to 1000 Hz. The filter simply ignores tones outside the training range.

Other Issues

  • There may be an issue running the client, and the symptom is that the program simply does not start without an error. Please let me know if you are experiencing this issue: rmnoise@ournetplace.com
  • There may be issues with the receipt of my emails. I have responded to all requests for login credentials, but if you did not receive my response, please make the request again.
  • The command line switches for help, -h or –h, no longer work. Below are the command line switches:

options:
--username USERNAME =login name
--password PASSWORD =login password
--input_device INPUT_DEVICE =soundcard input device number
--recording_name RECORDING_NAME =start a recording with this description at startup
--recording_minutes RECORDING_MINUTES =duration of recording (used with --recording_name)
--filter_num FILTER_NUM =number of neural net filter to use at startup
--nosend =do not send signal to the server at startup
--hostname HOSTNAME
--port PORT =server port number
--udpport UDPPORT =server udp port number
--udpsrcport UDPSRCPORT =client udp port number
--max_buffer MAX_BUFFER =maximum time in ms to buffer before dropping audio

5 Responses

  1. DR ANDREW S WOLLIN says:

    Very impressive. I think there is a lot of potential for AI noise reduction in radio. I have tried general models and they worked reasonably, but they were not trained for radio noise. I did a blog post on it.

    It would be worth writing on some of the SDR email lists. SDR Console in particular. I saw it on a repeater email list. It is a bit over their head.

    Regards Drew VK4ZXI

  2. Juan says:

    Congratulations!, sounds great

    Some questions:
    1.- Are you going to deliver a MacOs version?
    2.- The filtering process is in real time? (I am radioamateur and using such software with my SDR would be superb!)

    Thanks, good job

    • Randy says:

      Juan,

      1) I’m investigating the possibility of creating a web based version, but a mac specific version seems unlikely.

      2) Yes the filtering is done in real time. Under the current load, the server overhead is around 14ms + internet round trip latency. Edit: There is also a variable amount of buffering in order to absorb internet jitter..

      Randy

  3. Ted says:

    Could FFTs of submitted noises be put in a reference library as “fingerprints” of specific brands of noise generators (i.e Setec level 3 EV charger). This could be a substantial help in locating and cleaning up RF pollution.

  4. HTP says:

    What’s with McAfee quarantining this software upon download?

Comments are closed.