Connect to your caption server
Enter the key from data/api-key.txt on this machine.
Tune & listen Receiver 1
Seek uses the primary waterfall and keeps your mode and filter. Zoom out to search a wider range. Noise and digital signals can also trigger it.
Only the receiver marked Listening plays here. All receivers continue captioning on the server. Spectrum zoom changes the view; the green filter edges change the audio you hear.
Find U.S. receivers & search a callsign
Choose from the public Kiwi directory, or enter a callsign to find receivers near its licensed area. Your live slots keep their current frequency when you switch receivers.
Phonetic words and spoken numbers work here and in caption suggestions. Check suggested letters before searching.
Local callbook: FCC ULS; approximate area from GeoNames (CC BY 4.0). Unlisted calls use HamDB and are saved for later searches.
Enter a callsign to rank receivers near its licensed area.
A license address is not a live transmitter location. Portable stations may be elsewhere. HF propagation, antennas and noise matter more than distance alone. Speech suggestions need you to check the letters.
Directory: AetherSDR public Kiwi mirror · Callsigns: HamDB. Refresh uses a shared 30-minute server cache.
Estimated signal above nearby RF noise, compared only at the same frequency, mode and filter. Interference can score highly; confirm by listening. Sebago does not expose these RF measurements.
Combined speech transcript
Off · individual speech captions are shown.
Matching words vote once per distinct receiver. Ties retain the reference wording and are underlined. Hover a word to see its votes. Agreement can still be wrong, especially when receivers share the same recognition model. Unmatched speech stays unconfirmed; digital decodes are separate.
Audio times and word alignment help match delayed feeds. Use Estimate offsets under Shared timing for known receiver delays. Tuning, source changes and alignment changes clear this view. Original receiver captions remain available.
Speech engine
Starting worker…Live text updates while speech continues and may change. Final lines settle after a pause or the context limit. Set live update to 0 for final lines only. Smaller models trade accuracy for speed.
Shared timing & stream alignment
Audio and processing timestamps use the server clock. Receivers have different internal buffers, so equal arrival times do not prove equal broadcast times. After at least 16 seconds of the same conversation, estimate offsets from the audio rhythm. Only confident matches are applied. You can also enter a measured input lag in each receiver's timing panel.
Offsets reset after tuning. Alignment is approximate and needs a common signal.
Benchmark CPU vs GPU
Stop receivers, choose a speech recording (up to 120 seconds), then run a warm inference benchmark. Each run includes a warm-up and three measured passes.
Inference timing excludes receiver, network and audio buffering delay. The live caption footer includes local capture, queue and inference time. Neither measures the remote receiver’s internal delay.
Digital signals & FM coverage
Speech captions recognize voices. Digital signals need a decoder for their format: for example FT8/FT4/WSPR, RTTY, Morse/CW, or a digital voice codec. Open Digital decoder on a Kiwi receiver card. Choose FT8, FT4, or RTTY and Decode current, or use an FT8 preset. This is receive-only decoding; the app does not automatically identify unknown formats.
Narrow FM demodulation works within a receiver’s coverage. These HF Kiwi receivers do not cover FM broadcast radio at 88–108 MHz. That needs a VHF receiver such as an RTL-SDR and a wide FM audio path; changing mode cannot extend the hardware coverage.
API & receiver addresses
External programs use a Bearer API key over HTTPS/WSS, or HTTP/WS on a trusted private network.
Send {"type":"start","slotId":"1","sampleRate":16000} to /ws, then binary mono PCM16 little-endian frames at real-time speed. Captions arrive as JSON transcript events. Send {"type":"flush"} to finish the last segment.
GET /api/state · POST /api/transcribe · PUT /api/slots/1 · POST /api/slots/1/tune · DELETE /api/slots/1
Receiver addresses below are directory listings. A live connection can still be offline, full, or access-limited.