eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems

Overview

eSpeak NG Text-to-Speech


The eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems. It supports more than 100 languages and accents. It is based on the eSpeak engine created by Jonathan Duddington.

eSpeak NG uses a "formant synthesis" method. This allows many languages to be provided in a small size. The speech is clear, and can be used at high speeds, but is not as natural or smooth as larger synthesizers which are based on human speech recordings. It also supports Klatt formant synthesis, and the ability to use MBROLA as backend speech synthesizer.

eSpeak NG is available as:

  • A command line program (Linux and Windows) to speak text from a file or from stdin.
  • A shared library version for use by other programs. (On Windows this is a DLL).
  • A SAPI5 version for Windows, so it can be used with screen-readers and other programs that support the Windows SAPI5 interface.
  • eSpeak NG has been ported to other platforms, including Solaris and Mac OSX.

Features

  • Includes different Voices, whose characteristics can be altered.
  • Can produce speech output as a WAV file.
  • SSML (Speech Synthesis Markup Language) is supported (not complete), and also HTML.
  • Compact size. The program and its data, including many languages, totals about few Mbytes.
  • Can be used as a front-end to MBROLA diphone voices. eSpeak NG converts text to phonemes with pitch and length information.
  • Can translate text into phoneme codes, so it could be adapted as a front end for another speech synthesis engine.
  • Potential for other languages. Several are included in varying stages of progress. Help from native speakers for these or other languages is welcome.
  • Written in C.

See the CHANGELOG for a description of the changes in the various releases and with the eSpeak NG project.

The following platforms are supported:

Platform Minimum Version Status
Linux Travis continuous integration builds on Linux
BSD
Android 4.0
Windows Windows 8
Mac

Documentation

  1. User guide explains how to set up and use eSpeak NG from command line or as a library.
  2. Building guide provides info how to compile and build eSpeak NG from the source.
  3. Index provides full list of more detailed information for contributors and developers.
  4. Look at contribution guide to start your contribution.
  5. Look at eSpeak NG roadmap to participate in development of eSpeak NG.

eSpeak Compatibility

The espeak-ng binaries use the same command-line options as espeak, with several additions to provide new functionality from espeak-ng such as specifying the output audio device name to use. The build creates symlinks of espeak to espeak-ng, and speak to speak-ng.

The espeak speak_lib.h include file is located in espeak-ng/speak_lib.h with an optional symlink in espeak/speak_lib.h. This file contains the espeak 1.48.15 API, with a change to the ESPEAK_API macro to fix building on Windows and some minor changes to the documentation comments. This C API is API and ABI compatible with espeak.

The espeak-data data has been moved to espeak-ng-data to avoid conflicts with espeak. There have been various changes to the voice, dictionary and phoneme files that make them incompatible with espeak.

The espeak-ng project does not include the espeakedit program. It has moved the logic to build the dictionary, phoneme and intonation binary files into the libespeak-ng.so file that is accessible from the espeak-ng command line and C API.

History

The program was originally known as speak and originally written for Acorn/RISC_OS computers starting in 1995 by Jonathan Duddington. This was enhanced and re-written in 2007 as eSpeak, including a relaxation of the original memory and processing power constraints, and with support for additional languages.

In 2010, Reece H. Dunn started maintaining a version of eSpeak on GitHub that was designed to make it easier to build eSpeak on POSIX systems, porting the build system to autotools in 2012. In late 2015, this project was officially forked to a new eSpeak NG project. The new eSpeak NG project is a significant departure from the eSpeak project, with the intention of cleaning up the existing codebase, adding new features, and adding to and improving the supported languages.

The historical branch contains the available older releases of the original eSpeak that are not contained in the subversion repository.

1.24.02 is the first version of eSpeak to appear in the subversion repository, but releases from 1.05 to 1.24 are available at http://sourceforge.net/projects/espeak/files/espeak/.

These early releases have been checked into the historical branch, with the 1.24.02 release as the last entry. This makes it possible to use the replace functionality of git to see the earlier history:

git replace 8d59235f 63c1c019

NOTE: The source releases contain the big_endian, espeak-edit, praat-mod, riskos, windows_dll and windows_sapi folders. These do not appear in the source repository until later releases, so have been excluded from the historical commits to align them better with the 1.24.02 source commit.

License Information

eSpeak NG Text-to-Speech is released under the GPL version 3 or later license.

The ieee80.c implementation is taken directly from ToFromIEEE.c.txt which has been made available for use in Open Source applications per the license statement on http://www.realitypixels.com/turk/opensource/. The only modifications made to the code is to comment out the TEST_FP define to make it useable in the eSpeak NG library, and to fix compiler warnings.

The getopt.c compatibility implementation for getopt support on Windows is taken from the NetBSD getopt_long implementation, which is licensed under a 2-clause BSD license.

Android is a trademark of Google Inc.

Comments
  • Feature Request: Port eSpeak NG to iOS 16, and expose it to VoiceOver using AVSpeechSynthesisProviderAudioUnit.

    Feature Request: Port eSpeak NG to iOS 16, and expose it to VoiceOver using AVSpeechSynthesisProviderAudioUnit.

    Summary

    iOS 16 Beta introduces AVSpeechSynthesisProviderAudioUnit, which should enable the integration of 3rd-party speech synthesizers into the VoiceOver screenreader, as well as Speak Screen and other assistive features that rely on speech synthesis. With this in mind, it would be awesome if eSpeak NG, given its strong popularity within the screenreader community, could be ported to iOS and macOS.

    Steps required to make this work

    As far as I can tell, three main steps would be required to pull this off, with step 1 and 2 probably being the most work intensive:

    1. Port eSpeak NG to iOS - I've actually tried my hand at this, but don't know enough about C to fix all the compiler issues.
    2. Write a wrapper to make the ported version of eSpeak NG conform to AVSpeechSynthesisProviderAudioUnit.
    3. Build a simple SwiftUI app to manage active voices, and perhaps manage dictionaries that could be loaded directly into the synthesizer.
    feature portability 
    opened by robin24 56
  • Hebrew is not supported

    Hebrew is not supported

    hello, I'm trying to use the Hebrew language but it's not work for me. for example: espeak -v he "בוקר טוב"

    return: Error: The specified espeak-ng voice does not exist.

    please help me. Thank you! Nir

    resolved/answered 
    opened by NirAbel 45
  • Build fails on MacOS Catalina

    Build fails on MacOS Catalina

    Trying to build espeak-ng on Catalina today (on two different machines) resulted in a fail during the compilation of phoneme data. The tool seems to perform strange operations :

    ...
      CC       src/libespeak-ng/la-event.lo
      CC       src/libespeak-ng/la-fifo.lo
      CCLD     src/libespeak-ng.la
      CCLD     src/espeak-ng
    ESPEAK_DATA_PATH=/Users/ben/poub/espeak-ng src/espeak-ng --compile-intonations && \
    		ESPEAK_DATA_PATH=/Users/ben/poub/espeak-ng src/espeak-ng --compile-phonemes && \
    		touch phsource/phonemes.stamp
    Compiled 26 intonation tunes: 0 errors.
    Unknown phoneme table: 'en'
    Can't read dictionary file: '/Users/ben/poub/espeak-ng/espeak-ng-data/en_dict'
    Compiling phoneme data: /Users/ben/poub/espeak-ng/espeak-ng-data/../phsource/phonemes
    phonemes(129): Expected a number
    phonemes(129): Expected ')'
    phonemes(129): The phoneme feature is not recognised: '1='.
    phonemes(129): The phoneme feature is not recognised: '2'.
    phonemes(129): The phoneme feature is not recognised: '2700'.
    phonemes(129): The phoneme feature is not recognised: '400'.
    phonemes(129): The phoneme feature is not recognised: '600'.
    phonemes(129): The phoneme feature is not recognised: '300'.
    phonemes(129): The phoneme feature is not recognised: '80'.
    phonemes(131): The phoneme feature is not recognised: '1'.
    phonemes(132): The phoneme feature is not recognised: '_'.
    phonemes(132): The phoneme feature is not recognised: 'engthmod'.
    phonemes(133): The phoneme feature is not recognised: '3'.
    phonemes(137): Expected AND, OR, THEN
    phonemes(137): Expected a condition, not 'phonemetable'
    phonemes(137): Unexpected keyword 'phonemetable'
    phonemes(137): Expected AND, OR, THEN
    phonemes(138): Expected a condition, not 'base1'
    phonemes(138): Unexpected keyword 'base1'
    phonemes(138): Expected AND, OR, THEN
    phonemes(140): Expected a condition, not 'ph_icelandic'
    phonemes(140): Unexpected keyword 'ph_icelandic'
    phonemes(140): Expected AND, OR, THEN
    phonemes(140): Expected a condition, not 'ja'
    phonemes(140): Unexpected keyword 'ja'
    phonemes(141): Expected AND, OR, THEN
    ... etc ... etc ...
    

    Strangely, I get similar bad results on older commits (for which I'm sure it was working before under MacOS Mojave). Does anyone have a clue on how to investigate this? Could it be related to the fact that 64-bits applications and compilation have been ditched from MacOS (is espeak-ng 64-bits bullet proof) ?

    Ben

    resolved/fixed 
    opened by BenTalagan 41
  • problems with russian language

    problems with russian language

    hello.

    with recent changes with russian language pronunciation of several words were changed. for example word "общение" letter щ sch is incorrectly pronounced.

    letters when typing is also pronounced incorrectly, they are short for example с б в ж к letter л is very soft.

    i have a question why person who has no knowledge of this language such as @valdisvi is changing so serious things? if he had, these mistakes which makes synthesizer usable in russian language never be existed.

    please revert changes or fix them.

    thanks.

    opened by beqabeqa473 35
  • Tracking environment-dependent tests behavior

    Tracking environment-dependent tests behavior

    Following #1264, #1353.

    Some of tests (found faulty on macOS) are disabled in commit 0f5a30f.

    UPD: ssml/prosody test depends on libsonic

    Tracking (re-enabled) tests behavior with some compilers:

    • Debian 11 x86-64, clang-14.0.6-2: ✔️ passed
    • Debian 11 x86-64, gcc-12.2.0-1: ✔️ passed
    • Alpine x86-64 (docker), gcc-12.1.1_git20220630-r5: ❌ FAILED (language-phonemes/ltg, language-phonemes/lv)
    • macOS 12.5.1 x86-64, apple-clang-1316.0.21.2.5: ❌ FAILED (language-phonemes/ltg, language-phonemes/lv)
    • macOS 12.5.1, x86-64, gcc-12.2.0 (homebrew): ❌ FAILED (language-phonemes/ltg, language-phonemes/lv)

    // to be continued

    opened by djphoenix 34
  • New release of espeak

    New release of espeak

    As per: #792

    Over at nvaccess/nvda we have started our 2021.1 release process by updating the version of espeak-ng included. We selected the latest espeak-ng commit (at the time) and would love it if an espeak-ng release process could be started that we could use for the final release.

    We have updated to espeak-ng commit 82d5b7b04488412845101851f36da6953cac4378F The NVDA 2021.1 release will be made in the first quarter of 2021.

    opened by feerrenrut 30
  • add SpeechPlayer as Klatt6

    add SpeechPlayer as Klatt6

    I managed to add NV SpeechPlayer as Klatt 6. I also was able to remove the Windows specific code from speechPlayer, and the library still works. I am using it with NVDA as I write this. I updated the visual studio project with the new source files. To update the other projects, you should add the following files:

    • libespeak-ng/sPlayer.c
    • speechPlayer/frame.cpp
    • speechPlayer/speechPlayer.cpp
    • speechPlayer/speechWaveGenerator.cpp I also added a compiler define for including SpeechPlayer, INCLUDE_SPEECHPLAYER.
    opened by datajake1999 29
  • Cmn voice not correctly translated

    Cmn voice not correctly translated

    @jaacoppi

    This is a following issue of #1044.

    I apologize for my not careful test. I find issues after @cary-rowen tell me that there are still problems with Chinese Mandarin voice.

    Here is the current voice output:

    $ espeak-ng -x -vcmn '此电脑 means this computer'
    c'i3_| di11'a4n_| na11'o3_| (en)mi:11nz_| DI11s_| [email protected]:11t311(cmn)_|
    

    And following output from older version is much better than current situation:

    tsh'i[21_| t'iE51n_| n'Au21_| (en)mi:44nz_| DI11s_| [email protected]:11t311(cmn)_|
    

    Maybe this is why you had comment: https://github.com/espeak-ng/espeak-ng/issues/1044#issuecomment-993829386

    Here is the revert code: cmn_revert.patch.txt

    In fact, it's a temporary solution of #1163 .

    I will try to compare the rules of Cantonese and Mandarin to find whether there are clues to make both Mandarin and English read correctly.

    opened by hgneng 23
  • (Turkish) vocalization of words with double letters saying of one letters

    (Turkish) vocalization of words with double letters saying of one letters

    Hello,

    there has been some shortcomings in Espeak's Turkish voice synthesis for a long time.

    The same letter can be found twice in some words in Turkish. (For example, [tr}tutturmak, elli)

    Espeak say these words in a single letter. (tuturmak, eli)

    I don't have enough C knowledge to develop Espeak. So I can only give information.

    Small information

    This issue does not exist in version eSpeak-2016.1. I don't know Espeak's versioning system. I'm not sure of the values ​​I've given above, and if you have any questions, I'll try to help. Starting from the old version, we can find out where the problem is from the changing Turkish files.

    I apologize for inadequate English. The topic is language, I would appreciate it if you simply write your answers. I don't understand complex sentences.

    opened by ghost 23
  • questions about mandarin data packet

    questions about mandarin data packet

    I install espeak for several times, I use the --compile=cmn or zh in dictsource or dictsource/extra , it said Full dictionary is not installed for 'zh' Error processing file 'zh_rules': No such file or directory. but there is a file called cmn_rules and cmn_list in dictsource How can I install mandarin?

    And the other question, I try to input chinese and get mandarin phoneme like [input: 你好] output[ n i 3 h ao 3]. Is the espeak software can output mandarin phoneme or only IPA? Thanks.

    opened by mynah15 19
  • Can't find Japanese language code.

    Can't find Japanese language code.

    Hello, I saw on your documentation on supported languages here

    I am using the latest version that I downloaded here.

    Clearly stated here jpx | ja | Japanese | Japanese[3]

    But when I tried it on my computer, there's no such thing

    C:\Users\LENOVO>espeak-ng --version
    eSpeak NG text-to-speech: 1.50  Data at: C:\Program Files\eSpeak NG\/espeak-ng-data
    
    C:\Users\LENOVO>espeak-ng --voices
    Pty Language       Age/Gender VoiceName          File                 Other Languages
     5  af              --/M      Afrikaans          gmw\af
     5  am              --/M      Amharic            sem\am
     5  an              --/M      Aragonese          roa\an
     5  as              --/M      Assamese           inc\as
     5  az              --/M      Azerbaijani        trk\az
     5  bg              --/M      Bulgarian          zls\bg
     5  bn              --/M      Bengali            inc\bn
     5  bs              --/M      Bosnian            zls\bs
     5  ca              --/M      Catalan            roa\ca
     5  cmn             --/M      Chinese_(Mandarin) sit\cmn              (zh-cmn 5)(zh 5)
     5  cs              --/M      Czech              zlw\cs
     5  cy              --/M      Welsh              cel\cy
     5  da              --/M      Danish             gmq\da
     5  de              --/M      German             gmw\de
     5  el              --/M      Greek              grk\el
     5  en-029          --/M      English_(Caribbean) gmw\en-029           (en 10)
     2  en-gb           --/M      English_(Great_Britain) gmw\en               (en 2)
     5  en-gb-scotland  --/M      English_(Scotland) gmw\en-GB-scotland   (en 4)
     5  en-gb-x-gbclan  --/M      English_(Lancaster) gmw\en-GB-x-gbclan   (en-gb 3)(en 5)
     5  en-gb-x-gbcwmd  --/M      English_(West_Midlands) gmw\en-GB-x-gbcwmd   (en-gb 9)(en 9)
     5  en-gb-x-rp      --/M      English_(Received_Pronunciation) gmw\en-GB-x-rp       (en-gb 4)(en 5)
     2  en-us           --/M      English_(America)  gmw\en-US            (en 3)
     5  eo              --/M      Esperanto          art\eo
     5  es              --/M      Spanish_(Spain)    roa\es
     5  es-419          --/M      Spanish_(Latin_America) roa\es-419           (es-mx 6)(es 6)
     5  et              --/M      Estonian           urj\et
     5  eu              --/M      Basque             eu
     5  fa              --/M      Persian            ira\fa
     5  fa-latn         --/M      Persian_(Pinglish) ira\fa-Latn
     5  fi              --/M      Finnish            urj\fi
     5  fr-be           --/M      French_(Belgium)   roa\fr-BE            (fr 8)
     5  fr-fr           --/M      French_(France)    roa\fr               (fr 5)
     5  ga              --/M      Gaelic_(Irish)     cel\ga
     5  gd              --/M      Gaelic_(Scottish)  cel\gd
     5  gn              --/M      Guarani            sai\gn
     5  grc             --/M      Greek_(Ancient)    grk\grc
     5  gu              --/M      Gujarati           inc\gu
     5  hi              --/M      Hindi              inc\hi
     5  hr              --/M      Croatian           zls\hr               (hbs 5)
     5  hu              --/M      Hungarian          urj\hu
     5  hy              --/M      Armenian_(East_Armenia) ine\hy               (hy-arevela 5)
     5  hyw             --/M      Armenian_(West_Armenia) ine\hyw              (hy-arevmda 5)(hy 8)
     5  ia              --/M      Interlingua        art\ia
     5  id              --/M      Indonesian         poz\id
     5  is              --/M      Icelandic          gmq\is
     5  it              --/M      Italian            roa\it
     5  jbo             --/M      Lojban             art\jbo
     5  ka              --/M      Georgian           ccs\ka
     5  kl              --/M      Greenlandic        esx\kl
     5  kn              --/M      Kannada            dra\kn
     5  ko              --/M      Korean             ko
     5  ku              --/M      Kurdish            ira\ku
     5  ky              --/M      Kyrgyz             trk\ky
     5  la              --/M      Latin              itc\la
     5  lfn             --/M      Lingua_Franca_Nova art\lfn
     5  lt              --/M      Lithuanian         bat\lt
     5  lv              --/M      Latvian            bat\lv
     5  mk              --/M      Macedonian         zls\mk
     5  ml              --/M      Malayalam          dra\ml
     5  mr              --/M      Marathi            inc\mr
     5  ms              --/M      Malay              poz\ms
     5  mt              --/M      Maltese            sem\mt
     5  my              --/M      Myanmar_(Burmese)  sit\my
     5  nb              --/M      Norwegian_Bokmål  gmq\nb               (no 5)
     5  nci             --/M      Nahuatl_(Classical) azc\nci
     5  ne              --/M      Nepali             inc\ne
     5  nl              --/M      Dutch              gmw\nl
     5  om              --/M      Oromo              cus\om
     5  or              --/M      Oriya              inc\or
     5  pa              --/M      Punjabi            inc\pa
     5  pap             --/M      Papiamento         roa\pap
     5  pl              --/M      Polish             zlw\pl
     5  pt              --/M      Portuguese_(Portugal) roa\pt               (pt-pt 5)
     5  pt-br           --/M      Portuguese_(Brazil) roa\pt-BR            (pt 6)
     5  ro              --/M      Romanian           roa\ro
     5  ru              --/M      Russian            zle\ru
     5  si              --/M      Sinhala            inc\si
     5  sk              --/M      Slovak             zlw\sk
     5  sl              --/M      Slovenian          zls\sl
     5  sq              --/M      Albanian           ine\sq
     5  sr              --/M      Serbian            zls\sr
     5  sv              --/M      Swedish            gmq\sv
     5  sw              --/M      Swahili            bnt\sw
     5  ta              --/M      Tamil              dra\ta
     5  te              --/M      Telugu             dra\te
     5  tn              --/M      Setswana           bnt\tn
     5  tr              --/M      Turkish            trk\tr
     5  tt              --/M      Tatar              trk\tt
     5  ur              --/M      Urdu               inc\ur
     5  vi              --/M      Vietnamese_(Northern) aav\vi
     5  vi-vn-x-central --/M      Vietnamese_(Central) aav\vi-VN-x-central
     5  vi-vn-x-south   --/M      Vietnamese_(Southern) aav\vi-VN-x-south
     5  yue             --/M      Chinese_(Cantonese) sit\yue              (zh-yue 5)(zh 8)
    

    Also I downloaded the version 1.49.1 of espeak-ng clearly it was stated this

    new languages:
    
    ar (Arabic) -- Taha Zerrouki
    jp (Japanese) -- Reece Dunn (NOTE: Hiragana and Karakana only.)
    

    There is japanese but when I tried it, there's NOTHING may I ask... do you really have it?

    Have I installed an old version? or am I just not getting something? What is happening? Why is there Japanese on the .md file where there is NOTHING in mine? If so where is the lastest version link download? I need to have this, this is a cool software! Thank you!

    build 
    opened by gelodefaultbrain 19
  • System restart occurs,

    System restart occurs, "your data may be corrupt"

    I plugged the headphones in to listen to something and an application that had speaking running caused the speaking to begin. I then started VLC to listen to music assuming eSpeak would stop because apps normally cut each other off. However both ran together, and I thought it was funny being able to listen to two things together for the first time. After maybe 30s the system shuts down (shows Lenovo logo, it is a TB-X505F), Android 10 begins to start and am given the "Android recovery" screen. I tell it to "try again". It starts. I tell the speaking app to speak again and (maybe) 10s later the same occurs. I have not done it a third time.

    opened by Noitarud 0
  • Foneme error with the letter r in terms of words.

    Foneme error with the letter r in terms of words.

    Hello. I come to tell my problem, it turns out that reading a text, there are words that the letter r pronounce them as in French, at the end of a mouth, followed by a letter r like for example those that end in: or, er, ir, ar, or biar bier bir bor bur, among others. See if someone corrects those mistakes in american Spanish and Spanish, since I started using and eSpeak more than 10 years ago has always had that problem

    opened by gregodejesus 0
  • I find no differences with the Spanish s Latin american spanish and the castilian Spanish s spain

    I find no differences with the Spanish s Latin american spanish and the castilian Spanish s spain

    Hi, Analyzing these 2 languages, I find no differences with the pronunciation of the s in Spanish castilian , nor the s of Latin american Spanish, the 2 sound equal, but if I find differences with the letter c and with the z. It would be good to add an extra phoneme to fix this problem with e Speak ng, as well as it is being done with the Spanish r Latinamerican and Spanish castilian. Before I say goodbye, I need to get out of a couple of doubts that aren't in documentation of eSpeak ng , to no create another thread. How are e Speak ng dictionaries compiled? want i create an es_dict to fix errors, such as the ll. What program do I have to use for this purpose? clearing all the doubts, keeping an eye on answers, saying that from operating system use windows 11 h 2. Before, thanks, greetings from chile.

    opened by gregodejesus 0
  • how to fix end of words?

    how to fix end of words?

    In french, gender neutral wording is slowly but surely becoming a thing.

    However there's a problem that I've noticed. When using espeak-ng, if one moves character by character and reads æ, this will reads as 'ae' which is correct and sounds like 'é' in word endings.

    But when hearing the word itself spoken, instead of ending with 'ae', only the 'a' is spoken.

    For the french people here: 'désolæ' vs 'désolé' vs 'désolae'.

    I want to try and fix this but reading the documentation, I've not found how... Any ideas?

    opened by xogium 4
Releases(1.51)
  • 1.51(Apr 2, 2022)

    new features:

    • Add support for speechPlayer.
    • Add more tests to check the various parts of espeak-ng.
    • Various changes to clean up the codebase (Juho Hiltunen)
    • Remove support for l_length_mods language option
    • Restructure "option brackets" language option to "brackets" and "bracketsAnnounced"
    • Restructure "stressLength" and "stressAdd" language option
    • New Language option: "lowercaseSentence" for ending a sentence if a period is followed by a lower case letter
    • Add voice variants
    • Rename zh to cmn (Mandarin)
    • Rename zhy to yue (Cantonese)
    • cmn (Mandarin) now assumes all latin characters all English text Use cmn-latn-pinyin for interpreting latin characters as pinyin
    • Update list of voice varants for Android application
    • Add Chromium extension (guest271314)
    • Replace ieee80.c by a free software implementation (Ulrich Müller)

    bug fixes:

    • Fix reading malformed SSML (Christopher Brannon)
    • Fix memory allocation (Christopher Brannon)
    • Fix building and phoneme compilation (John Bowler)
    • Fix build scripts for Android (Peter Vágner, Minas Tirith Citizen)

    documentation:

    • Add documentation about voice and language options.
    • Add documentation about dictionary flags.

    updated languages:

    • ar (Arabic) -- king-dahmanus
    • ba (Bashkir) -- boracasli98, Valdis Vitolins, Juho Hiltunen
    • cmn (Mandarin) -- Silas S. Brown, Rongcui Dong, Icenowy Zheng, Juho Hiltunen
    • de (German) -- Karl Eick, Henry Krumb
    • el (Modern Greek) -- Reece Dunn (support for variant Greek letter forms)
    • en (English) -- Steven Presser, Ben Talagan
    • eo (Esperanto) -- AlsoScratch
    • eu (Basque) -- agonzalezd
    • fa (Farsi/Persian) -- Shadyar Khodayari
    • ga (Gaelic (Irish)) Chen, Chien-ting
    • grc (Ancient Greek) -- Reece Dunn (support for variant Greek letter forms)
    • hak (Hakka Chinese) -- Juho Hiltunen
    • haw (Hawaiian) -- Juho Hiltunen
    • ka (Georgian) -- Juho Hiltunen
    • kok (Konkani) -- Juho Hiltunen
    • nb (Norwegian Bokmål) -- Juho Hiltunen
    • nci (Classical Nahuatl) -- Juho Hiltunen
    • hy (Armenian) -- tigransimonyan
    • ia (Interlingua) -- nesrad
    • it (Italian) -- Christian Leo
    • ja (Japanese) -- fukuen, Juho Hiltunen
    • jbo (Lojban) -- Juho Hiltunen, xunsku
    • lv (Latvian) -- Valdis Vitolins
    • mi (Māori) -- boracasli98
    • py (Pyash) -- Andrii Logan Zvorygin
    • shn (Shan Tay Yai) -- ronaldaug
    • tr (Turkish) -- boracasli98, SeanTolstoyevski
    • ur (Urdu) -- Ejaz Shah
    • uz (Uzbek) -- boracasli98, Valdis Vitolins, Andiv06
    • yue (Cantonese) -- Andiv06

    new languages:

    • be (Belarusian) -- Sergei B
    • chr (Cherokee) -- Michael Conrad
    • cv (Chuvash) -- boracasli98, Valdis Vitolins
    • en-us-nyc (English, New York City) -- Richard Calvi
    • haw (Hawaiian) -- Valdis Vitolins
    • he (Hebrew) -- boracasli98, Valdis Vitolins
    • io (Ido) -- José Miguel López, Valdis Vitolins
    • lb (Luxembourgish) -- Marco Barnig, Valdis Vitolins
    • ltg (Latgalian) -- Valdis Vitolins
    • nog (Nogai) -- boracasli98, Valdis Vitolins
    • piqd (Klingon) -- Valdis Vitolins
    • qu (Quechua) -- Valdis Vitolins
    • qdb (Lang Belta) -- Da Def, Valdis Vitolins
    • qya (Quenya) -- Lucas Werkmeister
    • sjn (Sindarin) -- Lucas Werkmeister
    • smj (Lule Saami) -- Katri Hiovain, Sebastien Le Maguer
    • th (Thai) -- Valdis Vitolins
    • tk (Turkmen) -- boracasli98, Valdis Vitolins
    • ug (Uyghur) -- boracasli98, Valdis Vitolins
    • uk (Ukrainian) -- Valdis Vitolins
    Source code(tar.gz)
    Source code(zip)
    espeak-ng-1.51.tar.gz(1.03 MB)
    espeak-ng-X64.msi(5.72 MB)
    espeak-ng-X86.msi(5.70 MB)
    espeak-release-signed.apk(5.81 MB)
  • 1.50(Dec 2, 2019)

    1.50

    • 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).

    security:

    • 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).

    documentation:

    • 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.

    emoji:

    • 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:

    • ba (Bashkir) -- tc-dl, Valdis Vitolins
    • hak (Hakka Chinese) -- Chen Chien-ting
    • ht (Haitian Creole) -- Valdis Vitolins
    • kk (Kazakh) -- boracasli14, Valdis Vitolins
    • py (Pyash) -- Logan Streondj
    • quc (K'iche') -- Valdis Vitolins
    • ru-lv (Russian Latvia) -- Valdis Vitolins
    • shn (Shan Tay Yai) -- ronaldaug
    • uz (Uzbek) -- Valdis Vitolins

    updated languages:

    • af (Afrikaans) -- Christo de Klerk
    • ar (Arabic) -- Valdis Vitolins, Mark Readdie, Hesham Assabahi
    • cmn (Chinese Mandarin) -- materia-cccp
    • 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
    • ku (Kurdish) -- rojanu
    • it (Italian) -- chrislm
    • lv (Latvian) -- Valdis Vitolins
    • my (Myanmar/Burmese) -- Min Maung
    • ru (Russian) -- Valdis Vitolins, Reece Dunn
    • sd (Sindhi) -- Ejaz Shah
    • ur (Urdu) -- Ejaz Shah
    • vi (Vietnamese) -- Anh Hoang Nguyen
    Source code(tar.gz)
    Source code(zip)
    espeak-ng-1.50.tgz(20.35 MB)
    espeak-ng-20191129-b702b03-x64.msi(2.83 MB)
    espeak-ng-20191129-b702b03-x86.msi(2.81 MB)
  • 1.49.2(Sep 24, 2017)

    • 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
    • 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)
    Source code(tar.gz)
    Source code(zip)
    espeak-ng-1.49.2.tar.gz(32.47 MB)
    espeak-ng-x64.msi(2.67 MB)
    espeak-ng-x86.msi(2.65 MB)
  • 1.49.1(Jan 21, 2017)

    • Vim syntax support for rule files.
    • Replace ieee80.c with the implementation at http://www.realitypixels.com/turk/opensource/ToFromIEEE.c.txt 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 (Krygyz) -- JRMeyer
    • lv (Latvian) -- Valdis Vitolins
    • tr (Turkish) -- Valdis Vitolins

    new languages:

    • ar (Arabic) -- Taha Zerrouki
    • jp (Japanese) -- Reece Dunn (NOTE: Hiragana and Karakana only.)
    Source code(tar.gz)
    Source code(zip)
    espeak-ng-1.49.1.tar.gz(26.96 MB)
    espeak-ng-x64.msi(1.58 MB)
    espeak-ng-x86.msi(1.56 MB)
  • 1.49.0(Sep 10, 2016)

    • 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:

    • 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.

    restructuring:

    • 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.

    cleanup:

    • 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)
    Source code(tar.gz)
    Source code(zip)
    espeak-ng-x64.msi(1.58 MB)
    espeak-ng-x86.msi(1.56 MB)
Owner
null
Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems

Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. Audacity is open source software licensed under GPL, version 2 or later.

Audacity 8.7k Dec 31, 2022
Sneedacity (formerly Audacity) is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems.

Sneedacity (formerly Audacity) is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. Sneedacity is open source software licensed under GPL, version 2 or later.

Sneed's Feed & Seed 874 Dec 30, 2022
Let’s Create a Speech Synthesizer

Speech Synthesizer Series Material for my video series about creating a peculiar English-language speech synthesizer with Finnish accent. Playlist: ht

Joel Yliluoma 94 Jan 1, 2023
Synthesizer Modules and Audio Circuits

Dintree Synthesizer Modules and Audio Circuits 2020-07-14: You can now try Dintree modules within VCV Rack! I have created virtual versions of most mo

Andrew Kilpatrick 45 Jan 1, 2023
Facebook AI Research's Automatic Speech Recognition Toolkit

wav2letter++ Important Note: wav2letter has been moved and consolidated into Flashlight in the ASR application. Future wav2letter development will occ

Facebook Research 6.2k Jan 3, 2023
ChowKick is a kick drum synthesizer plugin based on creative modelling of old-school drum machine circuits

ChowKick is a kick drum synthesizer plugin based on creative modelling of old-school drum machine circuits. MIDI input to the plugin triggers a pulse with a parameterized size and shape. The pulse is then passed into a resonant filter which can be tuned to a specific frequency, or matched to the frequency of the incoming MIDI notes.

null 117 Dec 16, 2022
A visual additive synthesizer

Canvas (working title) is a visual additive synthesizer that is controlled by editing an image. Scribble on the canvas and use a variety of image filt

null 23 Sep 10, 2022
A small fast portable speech synthesis system

Flite is an open source small fast run-time text to speech engine. It is the latest addition to the suite of free software synthesis tools including University of Edinburgh's Festival Speech Synthesis System and Carnegie Mellon University's FestVox project, tools, scripts and documentation for building synthetic voices.

CMU Festvox Project 618 Jan 7, 2023
Twist A node-based audio synthesizer written in C++

Not maintained anymore! Twist A node-based audio synthesizer written in C++ Twist is the unexpected result of me trying to experiment with audio progr

Diego Lopes 123 Dec 7, 2022
Linear predictive coding (LPC) is an algorithm used to approximate audio signals like human speech

lpc.lv2 LPC analysis + synthesis plugin for LV2 About Linear predictive coding (LPC) is an algorithm used to approximate audio signals like human spee

null 11 Dec 17, 2022
Libsio - A runtime library for Speech Input (stt) & Output (tts)

libsio A runtime library for Speech Input (stt) & Output (tts) Speech To Text unified CTC and WFST decoding via beam search online(streaming) decoding

null 26 Nov 24, 2022
Mumble is an Open Source, low-latency, high quality voice chat software

Mumble is an Open Source, low-latency and high-quality voice-chat program written on top of Qt and Opus.

Mumble 5.2k Dec 26, 2022
HamMessenger is a portable device that uses a ham radio and the APRS protocol as a medium to send and receive text messages.

HamMessenger is a portable, battery powered device that runs on a microcontroller and interfaces with an inexpensive ham radio to send and receive text messages and provide position updates using the APRS protocol. Messages and position updates sent via HamMessenger can be viewed on sites such as aprs.fi. HamMessenger messages are NOT encrypted!

null 210 Dec 13, 2022
C library for audio noise reduction and other spectral effects

libspecbleach C library for audio noise reduction and other spectral effects Background This library is based on the algorithms that were used in nois

Luciano Dato 43 Dec 15, 2022
Tenacity is an easy-to-use, cross-platform multi-track audio editor/recorder for Windows, MacOS, GNU/Linux

Tenacity is an easy-to-use, cross-platform multi-track audio editor/recorder for Windows, MacOS, GNU/Linux and other operating systems and is developed by a group of volunteers as open source software.

null 59 Jan 1, 2023
🎵 A cross-platform media playback library for C/C++ with good number of features (only Windows & Linux).

libwinmedia A cross-platform media playback library for C/C++ & Flutter with good number of features. Example A very simple example can be as follows.

Harmonoid 38 Nov 2, 2022
PendulumSynth is an on-going and open-source project, running on Arduino platform with the goal of mixing real-world physics into music composition and musical performance.

PendulumSynth PendulumSynth is an on-going and open-source project, running on Arduino platform with the goal of mixing real-world physics into music

Mohammadreza Anvari 3 Oct 7, 2022
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.

JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications, including VST, VST3, AU, AU

JUCE 4.7k Jan 6, 2023
Free and open-source (GPL3+) VCVrack modules made by Allieway Audio

AlliewayAudio_Freebies Free and open source VCVrack modules made by Allieway Audio with love <3 Disclaimer: All direct clones or recreations were made

Allie 5 Jan 10, 2022