Skip to main content

CW decoder: reads Morse from the sound card

info

It reads CW from the sound card and prints the text. Choose the input where the transceiver can be heard and press «listen». The audio and the recognition stay on your own computer — nothing goes to a server.

The model is 14 MB and is downloaded only after you press the button; after that it comes from the browser cache.

The decoder only works in a browser.

How to use it

Give it clean audio. A cable from the transceiver into the sound input is best, but a microphone next to the speaker works too: the recognition depends on how far the tone rises above the noise, not on the absolute level.

Pick one station. Click on a signal in the spectrum or drag across it. The model has a single output and cannot follow two senders at once — given both, it produces text that belongs to neither. The 100, 250 and 500 Hz buttons are the same widths as the filters on the front panel of a transceiver.

Do not expect miracles on hand sending. Machine sending at 20–30 WPM in clear conditions reads well; a hand in a pile-up reads badly. That is not a shortcoming of this particular model but a property of the problem: CW has no frame, no fixed speed and no checksum.

A line not to cross

Always check a callsign from the decoder by ear.

In FT8 logging automatically is justified: there is a checksum, and a false decode is practically impossible. CW has no checksum at all — the program cannot tell UR3PKI from UR3PKJ if the last dot drowned in a fade.

So the decoder writes nothing anywhere by itself. A log is a record of what actually happened on the air, and one invented callsign in it costs more than all the convenience of auto-filling.

What is inside

Audio → a 400–1200 Hz band → a neural network → text. Why the browser spoils the audio by default, why the pre-processing is not selectable, and why the windows had to be joined by agreement rather than by equality is taken apart in «A CW decoder that runs in a tab».

The DeepCW model is distributed under AGPL-3.0. That licence also applies to software offered over a network, so the source is available: PetroOstapuk/cw-decoder.