├── .gitignore ├── tsconfig.json ├── script ├── fixup.sh └── extract-json.mjs ├── ava.config.js ├── tsconfig-test.json ├── src ├── utterance.ts ├── index.ts ├── provider.ts ├── WebSpeech │ ├── webSpeechEngineProvider.ts │ ├── TmpNavigator.ts │ └── webSpeechEngine.ts ├── engine.ts ├── utils │ ├── patches.ts │ └── features.ts ├── navigator.ts └── voices.ts ├── tsconfig-types.json ├── demo ├── index.html ├── navigator │ ├── index.html │ └── navigator-demo-script.js ├── styles.css ├── script.js └── lit-html_3-2-0_esm.js ├── .github └── workflows │ ├── node.yml │ ├── build.yml │ └── gh-pages.yml ├── vite.config.js ├── package.json ├── LICENSE ├── _layouts └── default.html ├── README.md ├── tsconfig-base.json └── test └── voices.test.ts /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | node_modules/ 3 | script/web-speech-recommended-voices/ 4 | .DS_Store 5 | build/ 6 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig-base.json", 3 | "include": ["src/**/*"], 4 | "exclude": ["node_modules", "dist", "test", "demo", "build"] 5 | } 6 | -------------------------------------------------------------------------------- /script/fixup.sh: -------------------------------------------------------------------------------- 1 | cat >build/cjs/package.json <build/mjs/package.json < 2 | 3 | 4 |
5 | 6 | 7 |
25 |
26 | {% else %}
27 |
28 |
29 |
30 | {% endif %}
31 |
32 | {{ content }}
33 |
34 | {% if site.github.private != true and site.github.license %}
35 |
38 | {% endif %}
39 | Language :
168 | 172 | 173 |Voices :
174 | 180 | 181 |Gender :
182 | 188 | 189 |Filter :
190 |Text :
199 | textToReadFormated = e.target.value ? e.target.value : textToReadFormated}> 200 | 201 |Loading speech engine...
279 |No voice selected
`; 314 | 315 | // Get all properties from the voice object 316 | const voiceProps = []; 317 | 318 | // Add all properties from the voice object 319 | for (const [key, value] of Object.entries(voice)) { 320 | if (key.startsWith("_")) continue; 321 | 322 | let displayValue = value; 323 | if (value === undefined) displayValue = "undefined"; 324 | else if (value === null) displayValue = "null"; 325 | else if (typeof value === "boolean") displayValue = value ? "Yes" : "No"; 326 | else if (typeof value === "object") displayValue = JSON.stringify(value); 327 | 328 | voiceProps.push({ key, value: displayValue }); 329 | } 330 | 331 | return html` 332 |State: ${navigator.getState()}
392 |