mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-08-07 10:05:50 +08:00
Address classroom tester feedback (Detlef / FSC e.V.)
Fixes the most impactful issues from ~1.5h of testing: - TTS: spell SID prefixes phonetically (ANEKI → Alfa November Echo Kilo India) so unfamiliar waypoint names are intelligible without prior briefing context. - TTS: expand standalone uppercase waypoints after via/direct (with a skip list for common ATC English tokens like MAYDAY, CLEARED, …). - TTS: join taxi route tokens with ", " so pauses land between taxiways (C5, Z5, U10, …) instead of running together. - TTS: handle "ILS Z 25C" variant before the runway → "ILS Zulu runway two five center" (was previously read as "Zee twentyfive cee"). - Scenarios: derive arrivalRunway from the chosen approach so the controller no longer clears a flight for ILS 25C onto runway 18. - Radio check: accept any readability 1–5 (numeric or spoken), shorten placeholder so it fits the sm-width field. - Line-up readback: clearer hint about the runway-first ICAO order. - Classroom UI: disable browser autocomplete/autocorrect on readback inputs (Edge autofill was injecting unrelated values). - Classroom UI: "Speak answer" button replays the expected readback as TTS so students can hear the correct phrasing. Tests adjusted for the new SID and taxi-route phonetics. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -25,14 +25,15 @@ describe('radioSpeech', () => {
|
||||
assert.match(normalized, /Lufthansa tree fife niner/)
|
||||
assert.match(normalized, /wun too wun decimal eight zero zero/)
|
||||
assert.match(normalized, /runway too fife right/)
|
||||
assert.match(normalized, /November tree Uniform four/)
|
||||
assert.match(normalized, /November tree,\s+Uniform four/)
|
||||
})
|
||||
|
||||
it('normalizes SID suffix and METAR data', () => {
|
||||
const sid = normalizeRadioPhrase('MARUN 7F')
|
||||
const metar = normalizeMetarPhrase('EDDF 171450Z 28015G25KT 9999 -RA SCT025 BKN040 15/08 Q1013')
|
||||
|
||||
assert.equal(sid, 'MARUN seven Foxtrot')
|
||||
// SID prefix is spelled phonetically so TTS pronounces unfamiliar waypoint names correctly
|
||||
assert.equal(sid, 'Mike Alfa Romeo Uniform November seven Foxtrot')
|
||||
assert.match(metar, /wind too eight zero degrees/)
|
||||
assert.match(metar, /gusting too fife knots/)
|
||||
assert.match(metar, /QNH wun zero wun tree/)
|
||||
|
||||
@@ -34,6 +34,6 @@ describe('normalize smoke', () => {
|
||||
|
||||
assert.match(normalized, /Lufthansa tree fife niner/)
|
||||
assert.match(normalized, /runway too fife right/)
|
||||
assert.match(normalized, /November tree Uniform four/)
|
||||
assert.match(normalized, /November tree,\s+Uniform four/)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user