Repository navigation
Releases: eugenehp/espeak-ng-rs
Release list
v0.2.0
espeak-ng 0.2.0 is the largest release so far: the Klatt and MBROLA ports are
finished, synthesis gains streaming and parallel APIs, and a long round of
translation fixes brings -x output to parity with upstream for every language
tested. All 105 changes were verified against a locally built upstream
espeak-ng binary rather than against expectations.
The version jumps to 0.2.0 rather than 0.1.4 because the whole workspace — the
library and all 125 data crates — now shares a single version and is released
together. The bundled data changed in this release, and letting the crate
versions drift apart made it easy to miss that a data crate needed a bump at
all.
Added
- The dictionary compiler reproduces upstream's. Measured by compiling each
language's realdictsourcewith both compilers and speaking the same words
through each result: 1144 of 1154 words across 80 languages now come out
identical. Rule-context commands, rule conditions, rule and group ordering,
RULE_PRE_ATSTART, list-entry order and list-key folding. klatt.cfully ported, and MBROLA completed — the phoneme-translation
compiler, the.phowriter,--compile-mbrola,--pho, andmb-*voices.- Incremental, parallel and async synthesis:
synth_streaming, the
parallelfeature (rayon) withsynth_many, and atokio-runtimefeature. - Chinese and Cantonese speak, foreign-script text is spoken rather than
dropped, and skin-tone and subdivision-flag emoji are read. - Language configuration read from the voice file,
dicts/layout support,
NFKC input folding,-Xrule tracing and-Ddeterministic mode.
Changed
- Bundled data refreshed from eSpeak NG 1.52.0 (Dec 2024) to upstream
master. - Faroese and Pashto now ship as their own dictionary crates, joining
Russian outsideespeak-ng-data-dicts, which would otherwise have grown to
8.9 MB against the 10 MB crates.io limit.bundled-datadepends on all four,
so this is invisible to callers.
Fixed
- Every language's
-xoutput matches upstream — a 32-language sweep went
from 20/32 to 32/32, and--ipais now rendered from the clause's
phoneme list the way upstream does. - Per-language stress placement is transcribed from
tr_languages.c
instead of guessed, along with inter-word pauses,$pause/$brk, hyphen
joining, and stress-conditioned phoneme changes. - Standard voices no longer render through the Klatt engine, a voice's
pitchline is no longer ignored, and vowel pitch is no longer flat across
the syllable. - The bundled data crates ship the dictionaries they claim to. Three of
them were pre-refresh snapshots carrying old version numbers, so they would
have been skipped as already-published and shipped stale dictionaries under a
fresh release. Six missinglang/voice files meant Abkhaz, Ligurian,
Mongolian and the Pashto variants could not be selected at all.
See CHANGELOG.md
for the complete list of 105 changes.
v0.1.3
espeak-ng 0.1.3 adds new public API surface and synthesis improvements, plus an
extensive round of number- and text-normalization fixes verified against the
upstream espeak-ng C binary.
Added
- New public modules:
soundicon,voices,async_synth,mbrola, and — behind
thewav-analysisfeature —analysis. - Engine
Builder,VoiceSpec/VoiceSpecBuilder, synthesis events
(SynthEvent/EventKind, including word-boundary andMark), MBROLA-backed
voices, and a working dictionary-source compiler. - Broad expansion of language, script, and synthesis coverage.
Fixed — numbers & text normalization
- Full Slavic scale-word declension across all five espeak variants — Russian
("одна тысяча", "две тысячи", "пять тысяч"), Czech/Polish, Lithuanian, Slovak,
and Croatian — with correct gender and case agreement (including compounds). - Many per-language cardinal grammars: conjunctions (Romanian "și", Swahili "na",
Icelandic "og", …), Afrikaans units-first, omit-one prefixes, and standalone-vs-
combining hundred/thousand forms (Tamil/Kannada/Malayalam/Telugu/Sinhala), plus
Italian elision and French liaison. - Punctuation & symbols: times ("10:30" → "ten thirty" / "zehn uhr dreißig"),
dashes ("5-10" → "five dash ten"), dotted acronyms ("U.S.A."), version strings
("1.2.3"), non-time colons ("3:2" → "three colon two"), and per-language symbol
names.
See CHANGELOG.md
for the complete list.
Full Changelog: v0.1.2...v0.1.3
v0.1.2
v0.1.1
What's Changed
- Merge PR #1: Start supporting numbers/cardinals/ordinals in all langs
- Merge PR #2: Add rainbow sentence test and English IPA rule regressions
- CJK character tokenization support
- Chinese (cmn) IPA fix for empty output
Full Changelog: v0.1.0...v0.1.1