Repository navigation
Releases: Spelling-Creator/spellophone
Releases · Spelling-Creator/spellophone
Release list
v0.2.1
Fixed
setVoice(and thevoiceoption ofsynthesizeandphonemes) now
accepts a language tag that has no voice file of the same name, such as
"en-gb"or"en-gb+f3". A string that matches no voice name is retried
as a language when a voice lists exactly that language tag (ignoring case),
and throws otherwise.- Loading data over HTTP no longer fails when the server sends the
.gz
files withContent-Encoding: gzip, as Vite's dev server does for files
imported with?url. The browser has already unzipped those, so
httpDataSourcenow passes on a file that does not start with the gzip
magic bytes as it is. - A data file that fails to decode now names the file in the error.
v0.2.0
espeak-ng 1.52.0, unchanged.
Added
@spelling-creator/spellophone/wasm2js: espeak-ng compiled to plain
JavaScript by Binaryen'swasm2js, for engines without WebAssembly
(createWasm2jsModule).- A
fallbackoption for the browsercreateEspeak. Pass
() => import("@spelling-creator/spellophone/wasm2js")and the wasm2js
module is used where WebAssembly is blocked, such as Safari in Lockdown Mode
or under a Content-Security-Policy withoutwasm-unsafe-eval.
canCompileWasm()exposes the check it makes. - A legacy build lowered to ES5 with swc, with the polyfills it needs and
no WebAssembly:@spelling-creator/spellophone/legacyas an ES module, and
dist/legacy/spellophone.iife.jsas a classic script that defines a
Spellophoneglobal. httpDataSourcetakes an optional third argument that replaces the gzip
decoding.
Changed
- The package is now published to npmjs.com instead of GitHub Packages, so
installing it no longer needs a GitHub token or an.npmrcentry. The
tarball is still attached to each GitHub release. Versions after this one
also carry a provenance attestation. cdn: "jsdelivr"andjsdelivrDataUrlnow use jsDelivr's npm endpoint
(cdn.jsdelivr.net/npm/@spelling-creator/spellophone@<version>/) instead
of its GitHub endpoint.EspeakModule(and whatDataLoaderandEspeak.createaccept) no longer
includesNODEFS, which the wasm2js module does not have.MainModulefrom
@spelling-creator/spellophone/wasm/espeak-ng.jsis still the full type.- The docs site uses the Spelling Creator favicon, and its header links to
the package on npmjs.com.
Development
- The compiled wasm and data are no longer committed, and were removed from
the repository's history.pnpm buildcompiles them from espeak-ng's
sources, and CI builds them on Linux and macOS and fails if the two builds
differ in any byte. - The release workflow publishes with npm's trusted publishing (OIDC), so the
repository holds no npm token. - The tsdown config uses
deps.neverBundlein place ofexternal, which
tsdown 0.23 deprecates. The output is the same.
v0.1.0
First release. espeak-ng 1.52.0.
Added
createEspeakfor Node.js (@spelling-creator/spellophone/node) and for
browsers and workers (@spelling-creator/spellophone/browser); the bare
import picks the right one.Espeak.synthesize: 16-bit PCM audio with word, sentence, end, mark, play
and phoneme events; per-callrate,pitch,range,volumeand
wordGap; SSML and[[ ]]phoneme input.Espeak.phonemes: IPA or espeak-ng ASCII transcription with optional
separator and ties.- Voice listing and selection by name, language or properties, including
espeak-ng's+variantsyntax. - Dictionaries load on demand: synchronously from disk in Node.js, over HTTP
in browsers withlanguages,loadLanguagesandloadVoice. - Data served from your own host (
dataUrl) or from jsDelivr's GitHub
endpoint (cdn: "jsdelivr"); all data files gzipped and decoded with
DecompressionStream. encodeWavandtoFloat32helpers.- Low-level
Espeak.create,DataLoader,DataSource,httpDataSource
andfileDataSourcefor custom module and data loading.