RF/channel
Response SNR, leakage headroom, spur mask, dropout rate, frequency deviation linearity, orientation/body loss, drift.
The DSP must preserve an audit trail from RF samples to transcript. Enhancement may improve intelligibility; it must never quietly invent speech or turn uncertain attribution into fact.
An auditable Python reference implementation is provided in dsp/thething_dsp.py. It is intentionally simple and is not a production receiver.
| Evidence | Interpretation | Failure |
|---|---|---|
| Strong contact energy + coherent room speech | Wearer likely speaking | Motion shock may mimic energy; require speech-band/coherence checks |
| Room speech + weak/no contact | Another speaker or wearer-channel dropout | Bad placement can create false “other” labels |
| Contact energy + weak room speech | Quiet wearer speech or mechanical artifact | Do not fabricate room content |
| Neither | Silence/noise | Reader leakage can create structured false energy |
The product should expose “wearer,” “other,” and “uncertain.” Two labels are not enough.
Response SNR, leakage headroom, spur mask, dropout rate, frequency deviation linearity, orientation/body loss, drift.
STOI/PESQ only as supporting measures; word error rate, insertion/deletion rate, level consistency, motion transient burden, blinded intelligibility.
Wearer precision/recall, false-wearer rate during nearby speech, uncertainty calibration, dropout detection, correction rate.
Time to useful transcript, manual relabeling time, missed-session rate, deletion success, support burden, comfort and retention.
TagMic uses a learned enhancement model and reports improved objective/perceptual quality in its evaluation; it also reports that about 20% of evaluated recovered voices were judged low quality, 45% medium, and 35% high before summarizing its broader outcomes. The correct lesson is that enhancement is valuable but raw-channel robustness still matters. Wang et al., 2025.
At minimum, export WAV/FLAC streams, timestamped JSON transcript, human-readable Markdown, and a manifest containing hashes and model/calibration versions. A user should be able to leave the service with intelligible, standard files.
manifest/
session.json
room.flac
wearer-demod.flac
wearer-restored.flac
transcript.json
transcript.md
sha256.txt
The included tests synthesize a known FM signal, demodulate it, verify correlation and delay estimation, and exercise edge cases. Run them with python3 -m unittest discover -s dsp -p 'test_*.py' from the repository root.