| - [Adding New Voices](#adding-new-voices) | - [Adding New Voices](#adding-new-voices) | ||||
| - [Changes from Upstream](#changes-from-upstream) | - [Changes from Upstream](#changes-from-upstream) | ||||
| - [Development Branch](#development-branch) | - [Development Branch](#development-branch) | ||||
| - [Build System](#build-system) | |||||
| - [espeakedit](#espeakedit) | |||||
| - [Bug Fixes](#bug-fixes) | |||||
| - [Praat Modifications](#praat-modifications) | - [Praat Modifications](#praat-modifications) | ||||
| - [Historical Releases](#historical-releases) | - [Historical Releases](#historical-releases) | ||||
| - [Bugs](#bugs) | - [Bugs](#bugs) | ||||
| ---------- | ---------- | ||||
| This is a mirror of the eSpeak sources with changes to make it build on POSIX | |||||
| systems using autotools. It contains the following branches: | |||||
| This is a mirror of the eSpeak sources with the following improvements: | |||||
| 1. An autotools-based build system that supports building the phoneme data and | |||||
| language dictionaries from source. | |||||
| 2. Detection of the supported audio APIs via the `configure` script — no need to | |||||
| modify the build files. | |||||
| 3. The NVDA voice variants are included in the `espeak-data/voices/!v` directory. | |||||
| 4. Add support for the Oromo language (`om`, contributed by [gude432](https://github.com/gude432)). | |||||
| 5. Support for wxWidgets 3.0. | |||||
| It contains the following branches: | |||||
| * *upstream* — a mirror of the eSpeak subversion repository using `git svn`; | * *upstream* — a mirror of the eSpeak subversion repository using `git svn`; | ||||
| * *development* — the eSpeak sources from | * *development* — the eSpeak sources from | ||||
| `.gitignore` file; as such, they will cause merge conflicts when merging | `.gitignore` file; as such, they will cause merge conflicts when merging | ||||
| from *upstream* to *development*. | from *upstream* to *development*. | ||||
| ### Build System | |||||
| The build system for eSpeak has been changed on the *master* branch to use | |||||
| autotools and to support building the phoneme data and language dictionaries | |||||
| on POSIX systems. | |||||
| 1. Use autotools (`autoconf`, `automake` and `libtool`) to build espeak. | |||||
| 2. Use the portaudio header on the build machine, not the one in espeak. This | |||||
| avoids the need to link to the correct portaudio header file. | |||||
| 3. Detect wxWidgets using `wx-config`. | |||||
| 4. Add `configure` options and detection for the `pulse`, `portaudio`, | |||||
| `runtime` and `sada` audio API modes. | |||||
| 5. Allow `CXXFLAGS` to be overwritten from the environment. This is based | |||||
| on the patch for Debian bug #707925 by Jason White. | |||||
| 6. *Klatt*, *MBROLA*, *libsonic* and asynchronous command support was made | |||||
| optional. This covers: | |||||
| * adding an option to the `configure` script; | |||||
| * only building the source files that are enabled; | |||||
| * removing the guards around the relevant source files; | |||||
| * removing the relevant conditional compilation defines from `speech.h`; | |||||
| * fixing the sources if needed to build without support for the feature. | |||||
| 7. Fixes for building with wxWidgets 3.0, while still supporting wxWidgets 2.8. | |||||
| ### espeakedit | |||||
| The following changes have been made to `espeakedit` to make it usable from | |||||
| the command line, especially for use in the build process: | |||||
| 1. Build the intonation data as well as the phoneme data when the `--compile` | |||||
| option is passed. | |||||
| 2. Don't compile the dictionaries when using the `--compile` command. | |||||
| 3. Only call `DrawEnvelopes` if `MAKE_ENVELOPES` is defined. This prevents the | |||||
| `phsource/envelopes.png` file being updated every build. | |||||
| 4. Don't load the phoneme data before compiling it, as the phoneme data may | |||||
| not exist. | |||||
| 5. Use the path set by `ESPEAK_DATA_PATH` if that environment variable exists, | |||||
| otherwise use the `HOME` environment variable. | |||||
| 6. Don't use the paths from the configuration file when running the `--compile` | |||||
| command. | |||||
| ### Bug Fixes | |||||
| The following bugs have been fixed on the *master* branch: | |||||
| * [`c1196192e5`](https://github.com/rhdunn/espeak/commit/c1196192e5950a80d37073135780441cc782c127) | |||||
| — don't crash when `espeak_SetPunctuationList` is called with a null pointer. | |||||
| * [`304d265f46`](https://github.com/rhdunn/espeak/commit/304d265f462fa4854c7d1f953131c69937a2fe74) | |||||
| — fix a segfault when running `espeak -x "[[]]"` | |||||
| * [`c098e8b891`](https://github.com/rhdunn/espeak/commit/c098e8b8910c1bffdd878198095fee803d8bd73a) | |||||
| — change the IPA transcription of the `/i/` phoneme to `i`. | |||||
| These have been sent upstream for inclusion in the upstream version of eSpeak. | |||||
| ### Praat Modifications | ### Praat Modifications | ||||
| The eSpeak sources from | The eSpeak sources from |