Same script, two engines, one tab. Everything runs on this device.
0 characters
Sent to the model
Respellings applied before synthesis, whole words only, case-insensitive. Works on both engines. Kokoro's phoneme layer isn't reachable from JavaScript, so respelling is the practical route.
| Written | Spoken as |
|---|
Kokoro concatenates the chunks into one file. Web Speech queues them as separate utterances.
Rendered offline, so the download is the processed audio. Web Speech can't be processed; the browser never hands over the samples.