Skip to content

Releases: joshknnd1982/OpenEvv-sapi5

OpenEVV SAPI5 1.4.0: every language read by eSpeak NG speaks with the IPA sounds

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 12 Oct 16:33

OpenEVV SAPI5 1.4.0: every language read by eSpeak NG now speaks with the sounds of the IPA master table. This release also brings everything of 1.3.0, which was built but never published: every symbol of the IPA chart in the engine, every language as a data pack, Belgian Dutch, and two engine defects fixed.

Please read this first. Nobody who made this can judge most of these 146 languages by ear, and Claude, the AI that did the work, cannot hear at all. Every sound was measured, and every language was put through a speech recogniser, but many sounds are hypotheses waiting for a native speaker. Some languages may sound odd. No language is called authentic. If you speak one, please tell us: Language review issue form.

Installing

Download OpenEVV-SAPI5-Setup-1.4.0.exe and run it. You can run it with your screen reader running: nothing is closed and Windows does not need to restart. It installs over earlier versions and keeps your settings and languages. A program that was already running when you installed, such as your screen reader, keeps speaking as before until you close it and start it again. Windows may show "Windows protected your PC" for a new unsigned download: choose More info, then Run anyway.

SHA-256 of the installer: 821329171a28de7ff657131217c54068462344e8e804d67374abe7c8df0c663c

What's new in 1.4.0

Every language read by eSpeak NG now speaks with the sounds of the IPA master table. Nobody who worked on this can judge most of these languages by ear, and Claude, which did the work, cannot hear at all: every statement below rests on a measurement, many of the new sounds are hypotheses waiting for a native speaker's review, and no language is called authentic.

  • All 146 languages, dialects and accents read by eSpeak NG sound different. In 1.3.0 every symbol of the IPA chart got a measured sound, but the languages still spoke with the sounds an older generator had written for them. Now each language's pack names its sounds as IPA and they are made from the master table when the pack is built (realization = "master"): a sound the module speaking the language already has is said as the module's own; one it lacks comes from the table; a language's own published measurements (stop timing, vowel formants) are used where a study gives them, each naming its source. A sound fixed once in the table is fixed for every language that has it. Of the sounds in the 146 packs, 6 stay on their 1.3.0 sound because the table cannot read eSpeak NG's IPA for them (French #cFR) and 12 so that two different phonemes do not come out alike (in Mandarin, Cantonese, Burmese, Marathi, Gujarati and Vietnamese); docs/tts-extension/IPA_SWITCH_REPORT.md lists each with its reason.
  • What it does to how well they are understood, measured with a speech recogniser (Whisper large-v3, eight test sentences a language) against 1.3.0: over the 96 languages it can score, the median character error changed by -0.007; 52 are understood better, 44 worse. Harder to understand by more than 0.10: Cantonese, Welsh, Malay, Sindhi, Greek, Burmese and Faroese (Cantonese, Burmese and Sindhi were already near or above 1.0 in 1.3.0; in Malay, Greek and Welsh, Phase 12 found sentences that begin with a vowel heard as the recogniser's filler phrases). Eight languages vary from run to run: Cantonese, Sindhi, Welsh, Mandarin, Sinhala, Malayalam, Punjabi and Tamil gave a different figure in two runs of the same build (Cantonese 1.52 and 2.10), so Sindhi is on this list in one run and not in the other. Understood better by more than 0.02: 30, among them Ukrainian, Finnish, Russian, Swedish, Bulgarian and Belgian Dutch. Every language's figures are in IPA_SWITCH_REPORT.md.
  • Levels (docs/tts-extension/LANGUAGE_STATUS.md): of the 156 languages, 1 at level 1 (Quechua, whose ejectives fail the engine check as in 1.3.0), 152 at level 2, 3 at level 4 (US English, New York English, Portuguese), none at 3 or 5. Brazilian Portuguese dropped from level 4 to level 2: one vowel measures 33 Hz outside its published range, though it is understood better than in 1.3.0. Mandarin, in both its spellings, rose from 1 to 2.
  • A fault found and fixed before release. The installer build's check of every language pack found that in 65 languages a diphthong said with the module's own two-part phone (as in English eye, German ei) made the engine lose its place and put later words' sounds on the wrong vowels. Those diphthongs are now a vowel gliding to the next; the check passes for all 146, and the figures above were measured after the fix.
  • One language back to its 1.3.0 sounds: set realization = "legacy" under [engine] in packs/<tag>/pack.toml and rebuild its folder with python engine\packs\build_packs.py build languages <tag>; the pack keeps its old sound lines for this.
  • Native speakers: a new issue form, "Language review", asks how a language sounds to you; a correction can also be a pull request to the language's pack.toml or a review packet's filled feedback.toml. Review packets are ready for Welsh, Icelandic, southern Vietnamese, Cantonese, Finnish, Ukrainian, Malay, Tatar, Greek and Burmese, besides Scottish English and Belgian Dutch. A named native speaker's signed review raises a language to level 5 and changes nothing else by itself.
  • Not changed: the ten languages the engine speaks itself, the engine's modules, the eSpeak NG front-end and its data, the SAPI interface, the settings, OpenEVV Configuration and the installer's choice of languages.
  • Includes 1.3.0, below, which was not released on its own: the whole IPA chart in the engine, every language as a pack, Belgian Dutch, and two fixed engine defects.

Also in this release: 1.3.0 (never published on its own)

The TTS extension: every symbol of the official IPA chart has a defined, measured sound in the engine; every language is a data pack; one new dialect; two defects of the engine fixed. Nobody who worked on this can judge most of these languages by ear, and Claude, which did the work, cannot hear at all: every statement below rests on a measurement, and no language is called authentic until a native speaker has signed its review.

  • New dialect: Dutch (Southern Standard, Flanders), tag nl-be, eight voices, beside Dutch. Eleven of its vowels are moved to the values published for Flemish men (Adank, van Hout and Smits 2004); its consonants, melody and vocabulary are Dutch's. It is at level 2 (the engine says what it is told). Said plainly: on the same eight test sentences the speech recogniser understands it less well than Dutch (character error 0.293 against 0.199), so it waits for a Flemish speaker's review. 156 languages in all.
  • What sounds different in the languages already here. The seven modules that speak the languages read by eSpeak NG (146 now) are rebuilt with two fixes. (1) A voiceless sound after a stop, at the end of a word or in a cluster, no longer takes the voice the stop switched on for a following vowel (Russian "кот.", Hindi "आप.", New York English "cat." end in silence, not a hum). (2) Mandarin's neutral tone is 3 dB softer, as its table always said. And a voiceless l or w (as in Welsh ll) no longer lends its voice to the s after it. Of the 29,237 measured cases of the regression, 1,136 in 143 languages changed: 1,133 of them a consonant at a word's end or before another consonant, and 3 Shavian English vowels where the English module itself turns t before them into t and sh; the other 28,101 are identical. The ten languages the engine speaks itself are unchanged.
  • The whole IPA chart. All 175 symbols of the 2026 chart (consonants, clicks, implosives, ejectives, vowels, diacritics, suprasegmentals, tone letters and tone marks) have a sound: 67 the engine already had, 53 composed from a base sound and a mark, 55 created; none missing, none silently replaced, each rendered by the engine and measured. 186 of the 203 extIPA and VoQS symbols too (17 are notation only). For this the engine's accent layer gained keys (trills at their own rate, a click's second release, ejective bursts, places of articulation, partial voicing, fricated releases, strikes, diplophonia, jitter, monotone, silent articulation) and the eSpeak NG front-end reads IPA marks, tone letters and extIPA braces and composes them on their sounds. These are tools for whoever writes a language: no language shipped in 1.3.0 uses the new keys yet, text is read as before, and speaking IPA through SAPI is a later addition. docs/SOUNDS.md lists every key; docs/tts-extension/CREATED_SOUNDS.md every created sound and what its values rest on (many are estimates awaiting a phonetician's or native speaker's check).
  • Every language is a pack, packs/<tag>/pack.toml, from which the files in languages\ are built; a dialect or accent extends its parent and holds only its differences, each with a source. ADDING_A_LANGUAGE.md is the guide, and engine\doctor.py checks everything in one command.
  • Each language has a level, earned by measurement: of the 156, 3 at level 1 (draft), 149 at level 2 (engine-verified), 4 at level 4 (a speech recogniser understands its test sentences: US English, New York English, Portuguese, Brazilian Portuguese), none at level 3 or 5. docs/tts-extension/LANGUAGE_STATUS.md has every language.
  • The About text of OpenEVV Configuration and the log name the engine openevv 7148737+tts-ext: the seven rebuilt modules are openevv 7148737 with this project's accent layer.
  • Not changed: the SAPI interface, the settings, OpenEVV Configuration's pages, the installer's choice of languages (Belgian Dutch is one more box in it).

Downloads

  • OpenEVV-SAPI5-Setup-1.4.0.exe (34,222,020 bytes): the installer, with all 156 languages to choose from (1,248 voices).
  • OpenEVV-eSpeak-NG-languages-1.4.0.zip (27,240,...
Read more

OpenEVV SAPI5 1.2.4: choose which languages to install

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 30 Sep 18:51

OpenEVV SAPI5 1.2.4: the installer asks which languages to install. All 155 languages, 1,240 voices, used to be installed without a choice (issue 2). Now you choose.

Installing

Download OpenEVV-SAPI5-Setup-1.2.4.exe and run it. You can run it with your screen reader running: nothing is closed and Windows does not need to restart. It installs over earlier versions and keeps your settings and languages. A program that was already running when you installed, such as your screen reader, keeps speaking as before until you close it and start it again. Windows may show "Windows protected your PC" for a new unsigned download: choose More info, then Run anyway.

SHA-256 of the installer: d3c281d7d8eb72bfa115a20d133968b922738e41c58d4944a1601527cf8dd8a4

What's new

  • A Select languages page. A check box for each of the 155 languages, and a list of ready-made choices above them: The ten OpenEVV languages (80 voices), English only (16 voices), All 155 languages (1,240 voices) and Custom. Select all languages and Select no languages buttons under the list check or clear every one. Setup will not go on, from Next or from Install, with no language selected: it says to select at least one.
  • A computer with no OpenEVV on it is offered the ten OpenEVV languages, not all 155. Everything else is one click away.
  • Only what you choose is installed. The engine modules that the 145 languages read by eSpeak NG are spoken with (9 to 17 MB each) are installed when a language that needs one is chosen, and removed with the last one that needed it.
  • Change your languages any time by running the installer again. It offers the languages that are installed now, installs the ones you add and removes the ones you clear, and never needs a restart. Installing over 1.2.3 or earlier offers every language that is installed, so nothing is removed unless you clear it. A language you removed yourself in OpenEVV Configuration is not put back.
  • Unattended installs: /TYPE=full, /TYPE=english or /TYPE=openevv, or /COMPONENTS="openevv\enus,espeak\nb". With nothing given, an install over an existing one keeps exactly what is installed. The README has the details.
  • For screen readers: the list of types and the list of languages are named (setup's own page named neither), and the last page says how many languages and voices were installed.
  • No change to the voices, the engine or the language packs themselves.

Tested before release: all 145 eSpeak NG packs, sapi_test in 64-bit, 64-bit under CET and 32-bit (72 checks each), 1,240 of 1,240 voices, the accessibility walk of OpenEVV Configuration and of the installer, and 22 new checks of the choice of languages: every type installs exactly the languages and module packs it should, single languages bring only the module pack they need, adding, removing and upgrading work (with nothing given, from an installation with no record of a choice, after a language was deleted by hand), a pack somebody added by hand keeps the module it needs, and the wizard itself is clicked through, including "select none" and going on.

Full details are in CHANGELOG.md.

The language packs and samples zips of 1.2.0 are unchanged and still current: v1.2.0.

OpenEVV SAPI5 1.2.3: the community pronunciation dictionary for English

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 30 Sep 14:11

OpenEVV SAPI5 1.2.3 adds the community pronunciation dictionary for English: the IBMTTS community's fixes to how the Eloquence voice pronounces words, which you can switch on and off in OpenEVV Configuration and bring up to date from GitHub with one button.

Installing

Download OpenEVV-SAPI5-Setup-1.2.3.exe and run it. You can run it with your screen reader running: nothing is closed and Windows does not need to restart. It installs over earlier versions and keeps your settings and languages. A program that was already running when you installed, such as your screen reader, keeps speaking as before until you close it and start it again. Windows may show "Windows protected your PC" for a new unsigned download: choose More info, then Run anyway.

SHA-256 of the installer: f3bb2f986f7a80d6232988e6cedf09748bf7fb8f9f5e0008df7cacb33f64c435

What's new

  • The community pronunciation dictionary, for English only. It is eigencrow/IBMTTSDictionaries (public domain): a main, a root and an abbreviation dictionary of US English pronunciations, installed with OpenEVV. Only the US English voices use it. No other language is touched: the repository's German files are neither installed nor read, and the 145 languages read by eSpeak NG are unchanged. Your own dictionaries (Languages page) are read after it, so an entry of yours wins over the community's for the same word.
  • A new page in OpenEVV Configuration: Community dictionary.
    • Use the community pronunciation dictionary switches it on and off. It is on by default, and the change is heard on the next thing any program says.
    • The page says which version is in use, and where it came from.
    • Check for a newer version and install it asks GitHub for the newest commit of the project and, if you do not have it, downloads it, checks every file, and installs it for every voice, with nothing to restart. If anything goes wrong, it says why and leaves what you have alone. OpenEvvConfig.exe --update-community-dictionary does the same without a window.
  • A fix the dictionary needed, in the 64-bit US English engine. The engine's memory allocator slowed down with every entry it kept: reading the dictionary's 69,040 root entries took 63 seconds in a 64-bit program (86 ms in a 32-bit one), long enough for OpenEVV to give up on the voice. It now takes about a tenth of a second. The change picks the same memory as before for every request (24 random streams of 60,000 requests and six of 400,000 give identical addresses) and the audio of the rebuilt module is identical, sample for sample, to 1.2.2's on 34 sentences of US English. Only the 64-bit US English module was rebuilt.

Tested before release: sapi_test in 64-bit, 64-bit under CET and 32-bit (72 checks each, 24 of them new for the dictionary: on and off, under your own entries, English abbreviations, German and other languages unchanged, and updates installed while a voice is speaking, with a damaged zip, a file that is not a zip and a file that is not a dictionary each refused), 740 of 740 voices, all 145 eSpeak NG packs, the accessibility walk of OpenEVV Configuration (five pages now) and of the installer, and a real download from GitHub checked byte for byte.

Full details are in CHANGELOG.md.

The language packs and samples zips of 1.2.0 are unchanged and still current: v1.2.0.

OpenEVV SAPI5 1.2.2: shorter pauses at punctuation

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 30 Sep 12:08

OpenEVV SAPI5 1.2.2 adds a Punctuation pauses setting: the engine's long pauses at commas, full stops, question marks and exclamation marks, and the silence after the last word of everything it says, can now be shortened, the way the IBMTTS driver for NVDA does it.

Installing

Download OpenEVV-SAPI5-Setup-1.2.2.exe and run it. You can run it with your screen reader running: nothing is closed and Windows does not need to restart. It installs over earlier versions and keeps your settings and languages. A program that was already running when you installed, such as your screen reader, keeps speaking as before until you close it and start it again. Windows may show "Windows protected your PC" for a new unsigned download: choose More info, then Run anyway.

What's new

  • Punctuation pauses, on the Speech page of OpenEVV Configuration, with the IBMTTS driver's three choices:
    • Do not shorten: the engine's own pauses. This is the default, so nothing sounds different until you choose otherwise.
    • Shorten at end of text only: the silence of about 400 ms after the last word of every text goes. That is what a screen reader waits through after every announcement and every character it speaks.
    • Shorten all pauses: every pause at a comma, full stop, colon, semicolon, question mark, exclamation mark and dash becomes about 40 ms, from about 155 for a comma and 400 for the others. The mark still gives the phrase its melody: a question still rises.
  • It works in all 155 languages, the ten the engine speaks itself and the 145 read by eSpeak NG. A change is heard on the next thing any program says.
  • The method is the driver's: the engine's one-unit pause annotation goes in front of each mark. Two differences, on purpose: a full stop that ends an abbreviation ("Mr.", "Dr.", "St.", an initial, the "3." of a German date) is left alone, because the annotation would stop the engine's dictionary from reading it as a word; and "end of text only" also covers a text that ends with a mark, as the driver's documentation says.
  • While pauses are shortened, a backquote in the text is read as a space, as the driver does. The "Honour backquote annotations" setting keeps them. Nothing is added while spelling.
  • Includes 1.2.1's quicker install: setup no longer speaks every voice to test it after copying the files. The self-test is still on the Diagnostics page of OpenEVV Configuration.

Full details are in CHANGELOG.md.

The language packs and samples zips of 1.2.0 are unchanged and still current: v1.2.0.

OpenEVV SAPI5 1.2.0: each language's own sounds, melody and tones

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 29 Sep 15:42

OpenEVV SAPI5 1.2.0 makes the 145 languages read by eSpeak NG sound like themselves: their own sounds, melody and tones instead of the nearest sounds of German, Spanish, Italian, French or English, and their letters, numbers and punctuation named in their own words.

Installing

Download OpenEVV-SAPI5-Setup-1.2.0.exe and run it. You can run it with your screen reader running: nothing is closed and Windows does not need to restart. It installs over 1.0.0, 1.1.0 and 1.1.1 and keeps your settings and languages. A program that was already running when you installed, such as your screen reader, keeps speaking as 1.1 did until you close it and start it again. Windows may show "Windows protected your PC" for a new unsigned download: choose More info, then Run anyway.

What's new

  • Their own sounds. Every sound a language has that the module speaking it lacks is now made from the nearest phone the module has, measured, not tuned by ear. Among them: Hindi's retroflex and breathy voiced stops, the palatalised consonants of Russian, the nasal vowels of Hindi and Portuguese, taps and trills, uvular and pharyngeal consonants, and the h and the glottal stop the modules never had. Vowels sit where each language's published measurements put them.
  • Tones. Mandarin, Cantonese, Hakka, Vietnamese, Burmese and Shan are spoken with their tones, and so are Punjabi's low tone and Cherokee's tones where the text marks them. Mandarin's third tone and neutral tone change beside other tones as they do in speech.
  • Melody. Each language has the intonation its literature describes, and a question asked with a question word (who, what, where) ends as the language ends it, not as a yes-or-no question.
  • Seven new modules speak them. openevv's German, Italian, Spanish, English and French modules, each with the habits of its own language taken out: German no longer devoices a final b, d or g in Hindi, British English no longer drops every r after a vowel in Welsh.
  • Letter names. Moving through a line a character at a time, or spelling a word, says every letter by its name in the language, not its sound, and an accented letter with its accent: "a con acento" in Spanish, "a fada" in Irish.
  • Numbers are read as each language counts. Thai, Burmese, Uzbek, Maori, Quechua, K'iche' and Nahuatl read every number digit by digit and now count; many languages' number words were corrected from their own references.
  • Punctuation and symbols are named in the language when a screen reader spells: "." is "period" in American English, "punto" in Spanish, "ponc" in Irish. A mark a language has no name for is named in English.
  • Fixed in eSpeak NG, for every language: spelling through OpenEVV said nothing at all for . , ; : ! and ?; symbol names were cut to their first word and said twice; a number grouped with a no-break space (10 000) was read digit by digit; Bengali-script text lost the vowel after ড় ঢ় য়.
  • openevv's own ten languages sound exactly as they did.

The full list is in CHANGELOG.md. The eSpeak NG this is built with is the openevv-languages branch of joshknnd1982/espeak-ng, tag openevv-1.2.0.

Native speakers: please help

Not every language is right yet. Most of the 145 were built from published descriptions, dictionaries, grammars and measurements, and have not yet been heard by a native speaker. If yours is read or spoken wrongly, please send a pull request, or open an issue saying which words are wrong and how they should sound:

  • How the text is read (a word, a letter's name, a number, a punctuation mark): eSpeak NG's dictionary for the language, dictsource/<code>_list and dictsource/<code>_rules in the openevv-languages branch of joshknnd1982/espeak-ng.
  • How the language sounds (a vowel or consonant, the melody, the tones): languages/<tag>/sounds.map and engine/profiles/<tag>.json in this repository. docs/SOUNDS.md explains the map.

The README says more.

Downloads

  • OpenEVV-SAPI5-Setup-1.2.0.exe: the installer, with all 155 languages.
  • OpenEVV-eSpeak-NG-languages-1.2.0.zip: the 145 language packs read by eSpeak NG and the seven modules that speak them, for adding to an installed copy of 1.2.0.
  • OpenEVV-eSpeak-NG-samples-1.2.0.zip: one recording per language, with its sentence and numbers in two voices, a word spelled and punctuation marks spelled. LISTEN.txt inside says what to listen for, and the two proof tables give the Hindi and Mandarin measurements.

Tested

  • All 1,240 voices speak through SAPI in 64-bit and 32-bit programs, and the installer's self-test passes 740 of 740.
  • Every one of the 145 packs was checked through the module that speaks it, with every phone placed.
  • openevv's own ten languages: 979 recorded cases, every one as it was.
  • eSpeak NG: its own tests pass, and so do the 1,740 number cases written for this release.
  • Spelling through OpenEVV in all 145 languages: no letter or mark is silent or read as a character code, and no name is said twice by mistake.
  • The installer's pages and OpenEVV Configuration, walked as a screen reader sees them.
  • Not yet done for 1.2.0: the audit of an installed copy through SAPI (src/tools/audit_voices.ps1).

OpenEVV SAPI5 1.1.1: no restart, ever

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 29 Sep 00:25

OpenEVV SAPI5 1.1.1 makes installing and uninstalling work without ever restarting Windows. It is the fix for the "not all languages and voices are speaking" problem some people saw after installing 1.1.0.

Installing

Download OpenEVV-SAPI5-Setup-1.1.1.exe and run it. You can run it with your screen reader running: nothing is closed and Windows does not need to restart. It installs over 1.0.0, 1.1.0 or 1.1.1 and keeps your settings and languages. Windows may show "Windows protected your PC" for a new unsigned download: choose More info, then Run anyway.

What was wrong in 1.1.0

Setup had to replace the SAPI files a running program held open (usually the screen reader), and it queued them to be replaced at the next Windows restart. Until then, every 64-bit program kept the old voice list: 80 voices of 1,240. The installer's voice test reported that as a problem. A restart fixed it, and if you have restarted since installing 1.1.0, all 1,240 voices already work.

What's new

  • No restart, ever.
    • Files a running program holds are renamed out of the way (*.N.old), and the new ones are installed under the real names. Every program started afterwards uses the new version at once.
    • Programs that were already running keep the version they loaded until you close them and start them again. The last page names them, for example nvda.exe.
    • The renamed copies are cleaned up by the next install or uninstall, or at the next restart, whichever comes first.
    • Uninstalling works the same way.
  • Logs. Lines naming a non-ASCII character (Māori, for one) and the first line of every SAPI log (which program loaded OpenEVV) used to be written as "(log format error)". They are now written in full.
  • OpenEvvConfig.exe --in-use FILE lists the programs, 32-bit and 64-bit, that have OpenEVV loaded.
  • src/tools/audit_voices.ps1 audits an installed copy through SAPI itself: every voice speaks its language's sample, in 32-bit or 64-bit programs.

Tested

  • All 1,240 voices speak through SAPI in both 64-bit and 32-bit programs, on 1.1.0 (after a restart) and on 1.1.1.
  • eSpeak NG's reading of every one of the 145 languages reaches the engine as phonemes, with no text left over.
  • Upgrading over running 64-bit and 32-bit programs that held both SAPI DLLs, both engine hosts and a language module: no restart was asked for, and the programs started afterwards listed all 1,240 voices.
  • All build tests pass, including the screen-reader walk of the installer's pages.

The 145 language packs and their samples are unchanged since 1.1.0; their zips are on the 1.1.0 release.

🤖 Generated with Claude Code

OpenEVV SAPI5 1.1.0: 145 more languages, read by eSpeak NG

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 28 Sep 23:37

OpenEVV SAPI5 1.1.0 adds 145 languages read by eSpeak NG and spoken in the Eloquence voice. With openevv's own ten, that is 155 languages and 1,240 SAPI 5 voices.

Installing

Download OpenEVV-SAPI5-Setup-1.1.0.exe and run it. It installs over 1.0.0 and keeps your settings. The last page reports the self-test, which speaks every language in both 32-bit and 64-bit programs. Windows may show "Windows protected your PC" for a new unsigned download: choose More info, then Run anyway.

What's new

  • 145 more languages and dialects. This is every one eSpeak NG has that openevv does not: from Afrikaans, Amharic and Arabic to Yue Chinese.
    • It includes the dialects of openevv's own languages: New York City English, Scottish English, Caribbean English, Received Pronunciation, Lancaster, West Midlands, English in the Shavian alphabet, Belgian French and Swiss French.
    • It leaves out only the nine eSpeak NG voices openevv's ten already cover.
  • eSpeak NG reads, Eloquence speaks.
    • eSpeak NG does the reading: its spelling rules and dictionary for the language, its numbers (read in the language itself), letter names and word stress.
    • One of openevv's own modules, the pack's template, speaks what eSpeak NG read.
    • The template is chosen for the accent. Where openevv has a relative or neighbour of the language, that decides: Irish, Scottish Gaelic and Welsh use British English; the Germanic languages use German; Brazilian Portuguese uses Latin American Spanish; each dialect uses its own language. Otherwise the choice goes to the module whose sounds come closest to the language's.
  • An editable phoneme map in every pack. phonemes.map translates eSpeak NG's phoneme table into the template's phones. It is a text file you can edit.
  • Screen-reader behaviour.
    • Word events, sentence events and bookmarks land on the right words.
    • <spell> spells in the language's own letter names, and a lone symbol is named in the language.
    • User dictionaries apply as word replacements.
    • About 1.5 ms from Speak() to the first audio on a warm voice.
  • eSpeak NG improvements (branch openevv-languages, tag openevv-1.1.0):
    • Nepali, Ancient Greek, Chuvash, Cherokee and Sindarin now read numbers in their own language.
    • Before this, Nepali and Ancient Greek read them in English, and the other three said nothing.
    • Pennsylvania Dutch is included.

What does not carry over

  • Tone. eSpeak NG reads tonal languages with their tones, but the Eloquence engine pauses at every change of pitch inside an utterance. So Mandarin, Cantonese, Vietnamese, Thai and the other tonal languages are spoken with the template's own intonation.
  • Missing sounds. A sound none of openevv's modules has is said with the nearest one.

Downloads

  • OpenEVV-SAPI5-Setup-1.1.0.exe: the installer, with all 155 languages.
  • OpenEVV-eSpeak-NG-languages-1.1.0.zip: the 145 eSpeak NG packs, to put back one you removed with Add a language pack. These packs need OpenEVV SAPI5 1.1.0 or later installed.
  • OpenEVV-eSpeak-NG-samples-1.1.0.zip: one WAV per new language. Each has Adult Male 1 and Adult Female 1 reading the language's sample sentence and some numbers.

Licences

  • The wrapper is GPL v2.
  • The eSpeak NG front-end, the eSpeak NG data and the phoneme maps are GPL v3 or later; their source is in this repository and at the eSpeak NG tag above.
  • The openevv engine is MIT.
  • The Eloquence language data is IBM's; see NOTICE.md.

OpenEVV SAPI5 1.0.0

Choose a tag to compare

@joshknnd1982 joshknnd1982 released this 28 Sep 20:53

The OpenEVV engine as SAPI 5 voices for Windows: IBM's Embedded ViaVoice, the voice people know as Eloquence, rebuilt as C by openevv. It works in both 32-bit and 64-bit programs, needs no SAPI 4, and reads nothing from the registry.

Download OpenEVV-SAPI5-Setup-1.0.0.exe and run it. That is all most people need.

What is in it

  • Ten languages with eight voices each, 80 SAPI voices: US English, British English, German, Castilian Spanish, Latin American Spanish, French, Canadian French, Italian, Japanese, and Polish. Polish is experimental: upstream is still turning Italian rules into Polish ones.

  • About 1.5 ms from a program's Speak() to the first audio on a warm voice. A cancel returns at once, and the next utterance never waits for the one it replaced.

  • OpenEVV Configuration, on the desktop and in the Start menu. It adjusts:

    • every parameter of every voice: gender, head size, pitch, inflection, roughness, breathiness, speed and volume
    • the sample rate (8 to 48 kHz) and the resampler
    • the speed range for SAPI's rate, rate boost and the pitch step
    • abbreviations, how numbers are read, and the spelling modes
    • annotations, English heteronym fixes and user dictionaries

    Every change is heard at once, in every program. The utility also manages language packs and logging, and has a self-test.

  • Word, sentence and bookmark events on the exact sample, <spell> for character navigation, pauses, and rate, pitch and volume changes inside an utterance.

  • An installer that works with screen readers, tests every voice in both bitnesses and says the result on its last page, and logs everything to %ProgramData%\OpenEVV\Logs.

Adding languages

New languages will be published as OpenEVV-language-<tag>-<version>.zip files like the ten attached here. To add one: open OpenEVV Configuration, go to the Languages page, press Add a language pack, and choose the zip. Its voices appear in every SAPI 5 program straight away. The ten zips attached here are the languages the installer already includes. They are here to restore a removed language, and as the model for new ones.

Before you run it

Windows may say "Windows protected your PC". That is SmartScreen reporting a new, unsigned file, not a detection: choose More info, then Run anyway.

Verified

  • The whole SAPI suite (37 checks) passes in 64-bit, in 32-bit, and inside a process that enforces CET shadow stacks.
  • All 80 voices speak through SAPI.
  • Both the configuration utility and the installer were walked page by page through MSAA, with no unlabelled control and no duplicated access key.
  • A real installation listed all 80 voices to 32-bit and 64-bit programs. Uninstalling it left the machine's SAPI state exactly as it was before.

SHA-256 of the installer: d2fa96cc3db8aca6e896c732c60fb30553356ff653268072a277d9abb8aafe45

Licences: the wrapper is GPL v2, the openevv engine MIT. The language data in the modules is IBM's and not licensed here; see NOTICE.md.