[codex] v3.31 add optional proximity sonification#18
Conversation
|
Field-log follow-up from the 2026-05-21/2026-05-22 school runs, ignoring the classroom entry/exit edges: updated PR #18 in f7db8ce so proximity tones can still play for close/side hazards while speech is busy, and tone mode now defers non-person obstacle speech beyond the closest range to avoid stacking long obstacle clips. Person voice alerts remain protected. Tests: python3 -m pytest tests/test_blindnav.py tests/test_blindnav_v326.py -q (215 passed). |
|
Voice command fix: logs from 2026-05-29 showed STT sometimes returned the old prompt text itself: "BlindNav voice commands: describe, nearest, people, status, repeat, cancel." The parser saw cancel and spoke "Voice command canceled." Updated in c107cbd to detect prompt echoes as no command heard, make cancel stricter, and remove the cancel word/list-style prompt from the STT prompt. Tests: python3 -m pytest tests/test_blindnav.py tests/test_blindnav_v326.py -q (219 passed). |
|
Detection-to-alert fix from the 2026-05-29 hallway run: the middle segment showed many confirmed detections were being logged but suppressed as static_stationary_suppression because IMU/user_moving stayed still for most of the hallway. Updated in 27a202d so nearby confirmed detections still speak awareness even when IMU says still: people within 2.2m and obstacles within 1.4m. Also stopped proximity tones from replacing urgent obstacle voice. No COCO classes were removed or ignored. Tests: python3 -m pytest tests/test_blindnav.py tests/test_blindnav_v326.py -q (221 passed). |
Summary
Follow-on PR stacked on #17. This adds an optional non-speech proximity tone layer inspired by the IJHCS sonification guidance study.
This should be tested only after #17 behaves acceptably in the hallway.
What changed
ProximityTonePlayerfor local stereo pulses.BLINDNAV_AUDIO_MODE=quiet|balanced|trainingBLINDNAV_PROXIMITY_TONES=1BLINDNAV_TONE_VOLUME=0.0..1.0tools/run_tts_clips_tones.shfor later field testing.Why
The study suggests a useful split: use short verbal instructions for requested actions, and non-speech sonification for quantities like distance/remaining correction. For BlindNav, that maps well to:
Stop,person left,obstacle aheadValidation
python3 -m pytest tests/test_blindnav_v326.py::TestProximityTonePlayer -q5 passedpython3 -m pytest tests/test_blindnav.py tests/test_blindnav_v326.py -q211 passed in 12.74sField test order
Listen for whether the pulses improve nearby side/ahead awareness without masking hallway sounds or making speech harder to catch.