Skip to content

ADR-v2-103 — Pitch-Contour Vocal Gestures

Status: Accepted (2026-07-02) · Wave L Context links: [[adr-v2-095-vocal-joystick]] (analog vs symbolic), gesture (keyboard chords), commands (word-based), [[adr-011]]

Context

Wave L research (#9) — assign short pitch contours (rising = confirm, falling = cancel, rise-fall = undo, flat-hum = repeat) as a word-free, language-independent command vocabulary: hum a shape to fire a command in a noisy room or without articulating words. Distinct from the Vocal Joystick (analog position control) and from every word-based command: this is a discrete symbolic channel built purely from F0 shape, robust in noise, usable by people who can phonate melody but not clear speech. Anchor: the non-speech vocal-interaction line (Bilmes/UW Vocal Joystick) + whistled-language phonetics (Meyer, Whistled Languages, Springer 2015) — pitch contour alone carries a full symbolic channel.

Decision

Add an opt-in Pitch-Contour Vocal Gestures: [contour] enabled=false. Pure cores in contour/gesture.py: normalize_contour(f0_series) → a z-normalized voiced contour, classify_contour(f0_norm)rise | fall | rise_fall | flat, and gesture_to_command(gesture, profile) → a command name (a default map, user-overridable). The F0 tracker is the lazy extra; the sequence classifier is pure. OFF by default.

Consequences

  • A discrete, language-independent, noise-robust command channel for dysarthria/anarthria users who retain pitch control.
  • Pure classifier over an F0 array → fully testable and deterministic.
  • Distinct from Vocal Joystick (symbolic vs analog) and word commands.
  • Privacy (ADR-011): local F0 only.
  • Caveat: a small fixed gesture set (four contours); off by default.