NeoSCAN v1.4.4 is released
Friday August 14, 2026
This release reworks how NeoSCAN captures and downsamples transmission audio, producing dramatically more accurate AI transcription.
NeoSCAN v1.4.4 is available on GitHub. The major change in this release is a reworked pipeline for converting captured audio into a text transcript. Several issues led to audio being dropped or compressed, which limited the amount of clean data the AI audio-to-text transcriber had to work with. Here's what changed across the v1.3.0 through v1.4.4 releases.
v1.3.1: The recorder pipeline kept a persistent input stream for each radio. The stream could be closed when the system went into sleep mode or a new USB device was plugged into the computer. I added a callback heartbeat that detects when a stream has stopped delivering audio and reopens it on the next transmission.
v1.4.1: Whisper AI requires audio sampled at 16 kHz. Sound cards deliver audio at 48 kHz. The app was previously allowing the sound card to do the downsampling to 16 kHz. Unless you have a very high-end sound card, the results are garbage. This update retrieves audio at the native 48 kHz and does the downsampling as part of the transcription pipeline. This resulted in dramatically clearer audio being fed to Whisper AI.
v1.4.2: When running the application for an extended period of time, the audio stream can decay. This fix measures the effective sample rate and reopens degraded streams.
v1.4.3: Under load, audio came through choppy or with no usable speech — the real-time thread was overloaded, and the OS sound system dropped samples. I moved as much processing as possible to a background thread, which improved the situation. I also added proactive stream recycling — an idle audio stream is dropped and reconnected every 10 minutes, so a corrupt stream is caught before a transmission rather than in the middle of one.
v1.4.4: When several radios talked at once, recordings in progress came out corrupted. Each radio transcribes on its own thread, and that work competes with live capture for Python's interpreter lock, so transcription would starve the capture callback. I added queuing so that only one radio transmission is sent to Whisper AI at a time, leaving CPU time for the audio capture threads.
Quality of Life Improvements
- Rotating file logs make it easier to diagnose problems in the packaged builds of the app. (v1.3.0)
- A per-radio input level meter shows the signal strength coming from each radio. Keeping peak transmissions in the yellow ensures a strong signal feeds the audio-to-text pipeline. (v1.4.0)
- The channel editor gained a CTCSS/DCS tone dropdown and P25 single-frequency support. (v1.4.2)
- Volume and squelch sliders now re-sync with the radio. (v1.4.2)
- A dropped USB connection no longer crashes the app. (v1.4.3)
If you're running an older build, this one is worth the upgrade — the difference in transcription quality is significant.