Change Log

  1. espeak-ng
  2. espeak


The espeak-ng project is a fork of the espeak project.

1.49.3 - (In Development)

  • Add a --disable-rpath option to prevent libtool hardcoding rpaths in the executable.
  • Renamed the hy-arevmda language to hyw, following the 2018-03-30 change to the BCP 47 language subtag registry making the newly registered hyw language code the preferred value for hy-arevmda. This change keeps support for detecting the hy-arevela and hy-arevmda language tags.
  • Support any length replacement rule strings for the source part of the rule (replacing from the ‘source’ string to the ‘target’ string).
  • Add more tests to check the various parts of espeak-ng.
  • Various changes to clean up the codebase.
  • Fix various compiler warnings (-Winitialized, -Wmissing-prototypes, -Wreturn-type, and -Wunused).


  • Fix several crashes in the emoji support.
  • Fix several static analysis issues detected by Coverity Scan.
  • Fix several static analysis issues detected by Microsoft Visual C++ /analyze.
  • oss-fuzz support for the SSML logic.
  • Fix running make check with -fsanitize=address (LLVM AddressSanitizer).


  • document the Kirshenbaum phoneme transcription scheme (used as the basis of espeak phonemes).
  • document the X-SAMPA phoneme transcription scheme.
  • document the Conlang X-SAMPA phoneme transcription scheme.


  • Update the emoji to Unicode 11.0.
  • Update the emoji translations to CLDR 33.1.
  • gd (Scottish Gaelic)
  • sd (Sindhi)
  • yue (Chinese (Cantonese))

new languages:

  • hak (Hakka Chinese) -- Chen Chien-ting
  • ht (Haitian Creole) -- Valdis Vitolins
  • ru-lv (Russian Latvia) -- Valdis Vitolins
  • shn (Shan Tay Yai) -- ronaldaug

updated languages:

  • af (Afrikaans) -- Christo de Klerk
  • ar (Arabic) -- Valdis Vitolins, Mark Readdie, Hesham Assabahi
  • de (German) -- Reece Dunn, Karl Eick
  • en (English) -- Reece Dunn
  • fa (Farsi/Persian) -- Shadyar Khodayari
  • fi (Finnish) -- Juho Hiltunen
  • fr (French) -- Shallowmallow, Karl Eick, maiido, Reece Dunn
  • it (Italian) -- chrislm
  • lv (Latvian) -- Valdis Vitolins
  • my (Myanmar/Burmese) -- Min Maung
  • ru (Russian) -- Valdis Vitolins, Reece Dunn
  • ur (Urdu) -- Ejaz Shah

1.49.2 - 2017-09-24

  • Provide more validation when reading phoneme tables and voice/language files.
  • Removed support for phoneme equivalence tables. These were disabled in the French and German language files.
  • Allow pre- as well as post-jump rules in dictionary files.
  • Support building the Windows version with Visual Studio 2013.
  • Use language and accent names consistently across the language files.
  • Group the encoding handling into a single place with a clean interface and tests.
  • Support all ISO 8859 encodings.
  • Support for multi-word text replacements in language dictionaries.
  • Support compiling _emoji dictionary files if present.

bug fixes:

  • Fix running make clean ; make.
  • Fix reading stdin buffers larger than 1000.
  • Fixed various language and parent BCP 47 codes (jp is now ja).
  • Fixed several crashes and bugs in espeak_SetVoiceByName/Properties.

new languages:

  • bpy (Bishnupriya Manipuri) -- Vardhan
  • fr-CH (French (Switzerland)) -- Claude Beazley
  • kok (Konkani) -- Vardhan
  • mi (Māori) -- Graham Oliver
  • sd (Sindhi, Arabic script) -- Vardhan, Ejaz Shah

updated languages:

  • af (Afrikaans) -- Christo de Klerk
  • de (German) -- Valdis Vitolins
  • du (Dutch) -- Leonard de Ruijter
  • en (English) -- Reece Dunn. Thanks to Kendell Clark for identifying mispronunciations.
  • fa (Farsi/Persian) -- Shadyar Khodayari
  • fr (French) -- Valdis Vitolins; Reece Dunn
  • gu (Gujarati) -- Vardhan
  • hi (Hindi) -- Vardhan
  • it (Italian) -- chrislm
  • ky (Kyrgyz) -- JRMeyer
  • lv (Latvian) -- Valdis Vitolins
  • mk (Macedonian) -- Reece Dunn. Updated the romanization support:
    • Don't map đ and ć to Serbian ђ and ћ (use Macedonian ѓ and ќ instead).
    • Support additional romanizations: ISO 9, BGN/PCGN, Cadastre, and MJMS/SSO.
  • mr (Marathi) -- Vardhan
  • or (Oriya) -- Vardhan
  • ur (Urdu) -- Ejaz Shah

Unicode Emoji support (from the Unicode Emoji 5.0, and CLDR 31.0.1 data files):

  • af (Afrikaans)
  • am (Amharic)
  • ar (Arabic)
  • az (Azerbaijani)
  • bg (Bulgarian)
  • bn (Bengali)
  • bs (Bosnian)
  • ca (Catalan)
  • cs (Czech)
  • cy (Welsh)
  • da (Danish)
  • de (German)
  • el (Greek)
  • en (English) -- American
  • es (Spanish)
  • et (Estonian)
  • eu (Basque)
  • fa (Farsi/Persian)
  • fi (Finnish)
  • fr (French)
  • ga (Irish Gaelic)
  • gu (Gujarati)
  • hi (Hindi)
  • hr (Croatian)
  • hu (Hungarian)
  • hy (Armenian)
  • id (Indonesian)
  • is (Icelandic)
  • it (Italian)
  • ja (Japanese)
  • ka (Georgian)
  • kn (Kannada)
  • ko (Korean)
  • ky (Kyrgyz)
  • lt (Lithuanian)
  • lv (Latvian)
  • mk (Macedonian)
  • ml (Malayalam)
  • mr (Marathi)
  • ms (Malay)
  • my (Myanmar/Burmese)
  • ne (Nepali)
  • nl (Dutch)
  • or (Oriya)
  • pa (Punjabi)
  • pl (Polish)
  • pt (Portuguese) -- Brazil
  • ro (Romanian)
  • ru (Russian)
  • si (Sinhala)
  • sk (Slovak)
  • sl (Slovenian)
  • sq (Albanian)
  • sr (Serbian)
  • sv (Swedish)
  • sw (Swahili)
  • ta (Tamil)
  • te (Telugu)
  • tr (Turkish)
  • ur (Urdu)
  • vi (Vietnamese)
  • zh (Chinese)

1.49.1 - 2017-01-21

  • Vim syntax support for rule files.
  • Replace ieee80.c with the implementation at for Debian open source license compliance.
  • Documentation updates.
  • Emscripten support.
  • Merged the Android port into the main espeak-ng codebase.
  • Extend --compile-phoneme to support specifying the source directory for phoneme files.
  • Support using any directory as the data home, not just espeak-ng-data.
  • Don't install the default voice: use en as the default voice.

NOTE: The merger of the Android code is currently experimental. It is missing support for recognising Unicode characters.

bug fixes:

  • Fix .Lnn rule groups to allow groups above 62.
  • Fix reporting the eSpeak NG version in the --version string and Windows installer.
  • Fix a crash when calling LoadDictionary when using clang.
  • Threading fixes and Mac OSX portability for the fifo and event code.
  • Fixes for running the spect code on big-endian architectures.
  • Fix determining the voice directory when installing the 32-bit Windows binaries on a 64-bit Windows system.
  • Fix a regression with the saved parameter logic.
  • Reduce the default buffer length to 60mS to improve latency.
  • Don't override buffer length when using espeak-ng for audio.
  • Fix detecting doubled consonants when using Unicode characters.
  • Fix speaking 1,,2, etc. in languages that use , as a decimal separator.

updated languages:

  • af (Afrikaans) -- Christo de Klerk
  • en (English) -- Valdis Vitolins
  • fa (Farsi/Persian) -- Shadyar Khodayari
  • it (Italian) -- chrislm
  • ky (Kyrgyz) -- JRMeyer
  • lv (Latvian) -- Valdis Vitolins
  • tr (Turkish) -- Valdis Vitolins

new languages:

  • ar (Arabic) -- Taha Zerrouki
  • jp (Japanese) -- Reece Dunn (NOTE: Hiragana and Katakana only.)

1.49.0 - 2016-09-10

  • Support the --compile-mbrola command-line option.
  • Support the --compile-phonemes command-line option.
  • Support the --compile-intonations command-line option.
  • Support SSML <phoneme alphabet=“espeak” ph=“...”> tags.
  • Added man files for the speak-ng and espeak-ng command-line programs.
  • Created a companion espeak-ng API to provide more detailed error codes and provide access to the new espeak-ng functionality.
  • Fixed many logic and security issues reported by clang scan-build, Coverity and msvc /analyze.
  • Group languages by their language family and use BCP47 compliant names.
  • Support for Windows and BSD platforms.
  • Removed support for WinCE, MS-DOS and RiscOS.
  • Add support for maintainer and status field in voice files for tracking voice maintenance.
  • Vim syntax highlighting for espeak dictionary (list and rules) files.
  • Support reading input from named pipes.
  • Fix wav file truncation when reading multiline text from stdin or a named pipe.


  • Build the code with a C99 compiler, instead of a C++ compiler.
  • Provide a pkg-config file (patch by Luke Yelavich).
  • Use -fPIC to support sparc/sparc64 architectures.
  • Removed the local portaudio header files.
  • Use the system's sonic library and header files.
  • Output phoneme compilation errors to stderr.
  • Generate build failures if building phoneme, intonation or dictionary files contain errors.
  • Provide modern Visual Studio project files to build eSpeak NG on Windows, with a WiX-based project to create an MSI installer.
  • Use the NetBSD getopt_long implementation on Windows.


  • Moved the library code to src/libespeak-ng.
  • Renamed espeak to espeak-ng.
  • Renamed speak to speak-ng.
  • Use the libespeak-ng API in speak-ng using a shared implementation with espeak-ng.
  • Moved the code to build the mbrola voice data, phoneme tables and intonation data to libespeak-ng.
  • Removed the espeakedit program and the associated wxWidgets dependency.
  • Removed the platforms directory and approaching portability in a similar way to how libressl handles portability.
  • Converted the documentation to markdown.
  • Group the Windows and POSIX mbrowrap code to provide the mbrowrap.h implementation in a single place.
  • Replaced the audio APIs with PCAudioLib to improve portability of the audio and to share that across different projects.
  • Reworked the synchronous audio to share the code paths with asynchronous audio.


  • Removed unused/empty internal header files.
  • Removed unused and commented out code.
  • Reformatted the code to use a consistent style and indentation.
  • Fixed many GCC and clang warnings.
  • Improved the error handling within the codebase to report the underlying error where possible.
  • Inlined several wrapper methods that were adding little/no value.

updated languages:

  • en (English) -- Thanks to Kendell Clark for identifying mispronunciations.
  • el (Greek) : improved polytonic Greek support
  • es (Spanish) : ChrisLeo (improved intonations)
  • fa (Persian) -- Shadyar Khodayari
  • fr (French) -- Thomas Guillory
  • ga (Irish Gaelic) -- Jim Regan
  • it (Italian) -- ChrisLeo
  • lv (Latvian) -- Valdis Vitolins

new languages:

  • gn (Guarani) -- ChrisLeo
  • ky (Kyrgyz) -- JRMeyer
  • mb-br2 (Brazillian Portuguese)
  • mb-de* (German) : extend support coverage of the German MBROLA voices
  • mb-lt1 (Lithuanian) -- embar
  • mb-lt2 (Lithuanian) -- embar
  • mt (Maltese)
  • my (Myanmar/Burmese) -- Min Maung, Lwin Moe
  • tn (Setswana)
  • tt (Tatar)


The espeak project was developed by Jonathan Duddington.

This history log is for a fork of the espeak project maintained by Reece H. Dunn. This project was designed to:

  1. Make it easier to build espeak on POSIX systems.
  2. Keep track of the source code releases that differed from the releases in the subversion repository.

1.48.11 - 2014-08-31

  • Support building the MBROLA voice files.
  • mbrola/de6 support for syllabic m and syllabic n.

1.47.14 - 2013-12-03

  • Support building with the extended Chinese and Russian dictionary data.

1.47.13 - 2013-10-22

updated languages:

  • om (Oromo)

1.47.12 - 2013-10-12

  • Added the NVDA voice variants.
  • Do not crash if espeak_SetPunctuationList is called with a NULL punctuation list.
  • Fix a segfault in GetTranslatedPhonemeString.

new languages:

  • om (Oromo)


  • Support the --with-async configure option.
  • Support the --with-sonic configure option.
  • Support the --with-mbrola configure option.
  • Support the --with-klatt configure option.
  • Support the --with-sada configure option.
  • More build improvements.

1.46.23 - 2012-09-11

  • Converted the build to use autotools.

1.46.11 - 2011-12-31

  • Support building all the voice dictionaries.
  • More build improvements.

1.43.46 - 2010-06-28

  • Initial build changes to make it easier to build espeak on POSIX systems.