Phone Exam
phone_examCompare real audio clips against low-fidelity MP3 copies to determine if the ear or the device determines if the sound is real.
Instructions
A blind exam on the phone: clips [{label, path, note?}] each with a play button (the live stream pauses while one plays, and rejoins live after), word chips to tick per clip, one choice (e.g. ['A is the record', 'B is the record', "can't tell"] on a single pair), a note, and Submit. The answers arrive as kind 'exam' {id, answers}, and are appended to answers_path when given (the exam's own answers file, so no "done" is needed). Label clips blind (A, B). It runs exam_check first and refuses on NOT READY: give key={label: class} and secrets=[source names] so the blind-leak checks run too. check=False only when the person asked to see it anyway. On several pairs whose real side moves, ask "real or fake?" per clip (chips): one overall "A or B is real" choice is refused (Nate, metal round 3), and with check=False the reply still warns. floor='auto' adds device floor pairs, the real clip against a 64 or 128 kb/s MP3 copy of itself or against itself: the full set on the first floor round, then one rotating pair; 'full' gives the full set again (a new listening device, or a floor answer that changed). Each costs a slot of the 5-6 pair budget. Clips must be labelled 1A, 1B, 2A ...; they are renumbered around the floor pairs, and the reply (and <answers_path>.floor.json) maps the new labels back to yours and says which side of each floor pair is the MP3. floor_from: the real clip (default: the first clip keyed real, record or ref). A floor pair told apart more often than chance means the phone and the ear separate even an MP3 copy; a floor never told apart means a "can't tell" on a real pair is about the voice, not the device. The pre-flight checks your pairs only (a floor pair is one clip against itself, in WAV beside clips of any format), and a refused exam uses up no floor round. measured: what you measured before spending the person's ear, {clip label, pair number or 'all': the lines your instruments gave, with their numbers}; or unmeasured='' (logged in ear_first.jsonl). One of the two is required (the person, 10-16: measure first, then spend my ear). Either is kept beside the answers (<answers_path>.measured.json) for the exam ledger.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| wait | No | ||
| check | No | ||
| chips | No | ||
| clips | Yes | ||
| floor | No | ||
| title | Yes | ||
| sender | No | ||
| choices | No | ||
| exam_id | No | ||
| secrets | No | ||
| measured | No | ||
| question | No | ||
| floor_from | No | ||
| unmeasured | No | ||
| answers_path | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |