📱 Heads up — Mumblew works best on a laptop or desktop browser right now. Mobile support is still being finished, so tracking may be unreliable here. For the best experience, switch to a computer.
Mumblew — silent read-along

Mouth along with the text below — Mumblew reads it aloud at your pace, no buttons or timers needed.

Your camera video is processed entirely on your device and is never uploaded, recorded, or sent anywhere. You can verify this yourself in your browser's DevTools → Network tab.

Camera preview appears only during calibration — hidden the rest of the time.

Reading text
No text loaded yet — type/paste above or upload a .txt/.pdf file, then click Load Text.
Developer tools
Debug panel
MAR: -
Mouth state: -
Speech state: -
Face detection: face detected
Brightness (0-255, higher = brighter): -ok
Light calibration baseline: using default fallback (calibrate to personalize)
Manual switch: on
Warning box reason: none
Movement range: -
Cadence (elapsed/expected): -
Calibration: using default thresholds
Speed calibration: using default pacing (calibrate to personalize)
Tone: off
Voice: browser default
Trouble score: 0.00
Word boundary events (this utterance): 0
Last onboundary: -ms ago
Fallback highlight advances (this utterance, no real onboundary): 0
Fallback rate factor (measured, self-calibrating): 1.000
Speed fit (raw): -
Detection gap (last close): -
Cancel-to-actual-stop gap (last close): -
Last word / gap since prev boundary: - / - (prev word expected -)
Duplicate boundary events (this utterance): 0
Early-close detections (this utterance): 0
Last close: in risky window: - (nearest risky delta: -)
speak() calls this browser session (not per-utterance): 0
TTS iframe recycles this session (Phase 9a-iframe experiment): 0