eSpeak NG browser speech — version 1.49.1 Worker/data: https://github.com/pettarin/espeakng.js-cdn/tree/c023eaca5609b4523613f674d0ee67bd761502f1/js License: GPL-3.0-or-later. See COPYING.txt in this directory. Copyright: the upstream eSpeak NG and Emscripten contributors, including Jonathan Duddington, Reece H. Dunn and Eitan Isaacson. Source: espeak-ng-1.49.1-source.tar.gz in this directory. Upstream source: https://github.com/espeak-ng/espeak-ng/tree/1.49.1 Build instructions and bridge source: emscripten/README.md in that archive. Distribution build instructions: https://github.com/pettarin/espeakng.js-cdn Checksums and byte lengths: manifest.json. Repository reproduction: node scripts/vendor-espeak.mjs The word worker and its data are unmodified. The additional espeakng.phonemes.worker.js enables eSpeak's phoneme-input flag for isolated sounds; regenerate it with node scripts/build-phoneme-worker.mjs. That script verifies the pinned word worker before applying the documented bridge change. The upstream bridge repeats each 22050 Hz sample twice, so playback uses 44100 Hz. Voice options are American and British English. Voices are synthetic teaching aids, not native recordings or validated accent references. The word worker and data load only after the learner selects the basic fallback; the phoneme worker loads on an explicit articulation play action. This source archive does not load during speech. The separate PronounceKit TypeScript adapter is GPL-3.0-or-later; its source and the phoneme-worker generation script are included in adapter-source.txt in this directory.