The page reads itself. It renders once, keeps the file, and plays the file every time after.
A reader that speaks a document aloud and lights each word as it goes — pointed at its own README. Everything below the line is ingested at load from a copy of that README kept on this domain, so the page and the repository cannot drift apart while still being one fetch and no cross-origin request.
The first press sends the text to be synthesised and gets back an ordinary Opus file. That file is kept — on the server, keyed by a hash of the exact text and voice, and its address is remembered here in your browser. Every play after the first is a plain audio fetch: no synthesiser, no wait, no CPU on anyone's machine. Change a word of the README and the hash changes with it, so the stale recording can never be served for text that no longer exists.
That is the whole trick, and it is the reason a page can afford to read itself aloud at all. Speech is expensive exactly once.
Press VOICE and the cast opens. Two entries sit at the top under SAVED — NEURAL, the reference and the default on every refresh, and JAIMLA, the realm's female voice. Neither is edited, and that is the point of them: everything else in the realm is measured against one or the other, so a voice you can tune is never a voice something else is defined by.
Jaimla is saved beside neural rather than derived from it, and that is a correction. She used to be neural with a ratio applied — a shade slower, a shade lower — which does not make a woman. Pitch is not gender. Lowering a male voice drags its resonances down and produces a larger man. What carries a voice's gender is which voice is chosen: neural measures 98 Hz with a spectral centroid of 2712, Jaimla 182 Hz at 2783 — the brightest voice in the cast. The old ratio version came out at about 87 Hz, lower than the voice it was supposed to differ from.
Every other entry states its engine, its accent and what it costs to render before you ask for it, because a voice that takes ninety seconds of someone's CPU should say so rather than be discovered by watching a spinner. A voice with a second face shows one row and a toggle rather than two rows with the same name on them.
What moves behind this document is not decoration. It is voice-scope, a DeltaVerse substrate reading the same audio you are hearing: the waveform across the middle, the frequency spectrum along the floor, and the inflection — the rate at which the pitch is changing, which is what you hear as delivery and what no level meter shows. Behind those it measures eight acoustic quantities to eighteen decimals and hashes them into a voiceprint, a uint256 over the same domain as the realm's own scientific values. Nothing is recorded and nothing is uploaded; a hash of a measurement is not a copy of a voice.
It has three states and it will not fake one. live — there is audio on its input and every
pixel is measured. resting — the file is attached and silent, so it draws a flat line with a
breath on it, because silence looks like silence. untapped — nothing to read at all, which is
what the browser's own synthesiser gives you: speechSynthesis exposes no audio graph, so
there is no waveform to draw and this does not draw one. The contrast is the label.
file — the stored recording. Instant, seekable, downloadable, and it works on a machine with no speech voices installed at all, which is every headless Linux and a surprising number of desktops.
live — your own browser's synthesiser, used only before the first render exists. Nothing is downloaded and nothing leaves the page, but the output cannot be captured: there is no browser API that hands you its samples, which is why the keepable file is a second rendering rather than a recording of the first.
?autoplay=0 loads silent · ?fresh=1 ignores the stored recording