mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-06-28 03:15:38 +08:00
ATIS text often arrives in raw METAR form (e.g. "METAR EDDF 281050Z AUTO 02008KT 320V070 CAVOK 24/02 Q1025 NOSIG"), which TTS reads as letter-by-letter spelling. The normalizer now expands the full WMO Code Form FM 15-XV vocabulary inline: DDHHMMZ date stamps, compressed wind (with gusts, VRB, calm), wind variability ranges, RVR (R25L/1500N), wind shear, slash-form temp/dewpoint, Q/A pressure, NSC/SKC/CLR/NCD/VV cloud codes, weather phenomena (with intensity and descriptors), recent-weather RE prefix, BECMG/TEMPO/FM/TL/AT trend codes, and strips RMK remarks. Plus ATIS/METAR/SPECI get lowercased so TTS pronounces them as words (pilots SPELL ILS/QNH/VOR so those stay uppercase). Airport ICAO codes are substituted with their OpenAIP name when the frequencies endpoint returns one. New `airportName` field added to the FrequencyResponse for that. Adds 7 test cases covering the user- reported EDDF sample plus calm/VRB/gust winds, RVR, weather codes, cloud specials, trend codes, and RMK stripping. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>