This demo is 100% clientside JavaScript. It users eSpeak,
an open source speech synthesizer, which was compiled from C++ to JavaScript using Emscripten.
The project page source code for this demo can be found here.
Browser requirement:
Typed arrays. The eSpeak code is not portable to the extent that would be necessary to avoid using typed arrays.
Browser support information for typed arrays can be found here.