尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Offline local formant speech synthesis.
One HTML file. No dependencies, no server, no browser TTS. Webster makes speech from scratch with the Web Audio API, the way the speaking machines of the 1970s and 80s did, and it works offline.
→ Try it: consciousnode.github.io/Webster, or download index.html and open it.
| Engine | What it is |
|---|---|
| Formant (default, v4) | Klatt-style synthesis, the design behind MITalk and DECtalk. A glottal pulse runs through a cascade of five resonators (the vocal tract). Noise runs through parallel bands for hiss and stop bursts, with aspiration after p/t/k and nasal zeros for m/n/ŋ. Transitions between sounds are smoothed both ways in time, which is where coarticulation comes from. It renders samples directly, so what you hear is exactly what Export WAV saves. |
| Retro | The original v3 engine: a sawtooth through three band filters. Buzzier and very 1980s. Kept on purpose. |
| Physical 2D (v5, experimental) | A 2-D digital waveguide mesh of the vocal tract: a 17.6 cm grid of cells, its width at each point following the tract's shape, through which pressure waves actually travel. It is driven by the same plan, melody and glottal pulse as Formant, so only the tract differs. Vowel shapes are fitted against the mesh itself to the same formant targets (most within 0–6%); consonants close or narrow the tract at their place, with noise at the constriction and a nasal branch that opens for m/n/ŋ. It renders about twice as fast as real time. Known limit: front vowels come out low in F2 (/i/ 22%, /e/ 18%, /ɪ/ 16%), so they sound a bit lax. |
| Physical 3D (v6, very experimental) | The same idea in three dimensions: a 32 × 9 × 9 voxel tract (17.8 cm, oval cross-sections) through which pressure waves travel in all three directions, at 110,250 Hz. Same plan, melody and glottal pulse as the other engines, plus a nose that both listens to and drains the tract. Its vowels track Physical 2D (it starts from the same shapes, so it has the same lax front vowels; /u/ is worse). Rendering is about 1.7× slower than real time, and s-sounds are too quiet for now. Written by ChatGPT ("Jeep"); see docs/PHYSICAL-3D.md, and the roadmap. |
English (dictionary + letter-to-sound rules), German, Spanish, French, Italian, Greek, Russian, Bulgarian, Ukrainian, Japanese (kana), Korean (Hangul). Numbers are spoken in the selected language.
// same page
window.webster.speak("Hello world", { preset: "hal", rate: 0.8 });
// from a parent page, with Webster in an iframe
iframe.contentWindow.postMessage({ target: "webster", action: "speak", text: "Hello", options: { lang: "ja" } }, "*");
Options: lang, pitch, rate, preset, natural. Actions: speak, stop, pause, resume, getPresets.
The Pip Suite (Pip's Room, Multi-Pip Chat) speaks with Webster's Formant engine, extracted by tools/webster/extract.py in HTMLNLM.
node tests/webster-vowels.js renders steady vowels and measures their formants by LPC (needs python3 + numpy) against the Peterson & Barney targets the engine aims at. All six vowels land within 20%, most within 10%.
node tests/webster-mesh.js (no dependencies) checks the Physical engine: a uniform tube rings at its quarter-wave modes (480/1440/2395 Hz, theory 480/1439/2399), the fitted vowels ring near their targets, and a whole sentence renders with no sound louder than twice the median vowel.
node tests/webster-mesh3d.js (no dependencies) checks Physical 3D:
WEBSTER MESH 3D CORE markers, added the engine button, routing, stop and WAV export (following Jeep's own integration guide), and made the visualiser show the tract plus a real pressure cross-section from the solver.tests/webster-mesh.js.webster-v3.html.MIT. A ConsciousNode SoftWorks project.