| - [Signing the APK](#signing-the-apk) | - [Signing the APK](#signing-the-apk) | ||||
| - [Installing](#installing-1) | - [Installing](#installing-1) | ||||
| - [Documentation](#documentation) | - [Documentation](#documentation) | ||||
| - [Packaging](#packaging) | |||||
| - [eSpeak Compatibility](#espeak-compatibility) | |||||
| - [Historical Versions](#historical-versions) | - [Historical Versions](#historical-versions) | ||||
| - [Bugs](#bugs) | - [Bugs](#bugs) | ||||
| - [License Information](#license-information) | - [License Information](#license-information) | ||||
| command-line documentation provide a reference of the different command-line | command-line documentation provide a reference of the different command-line | ||||
| options available to these commands with example usage. | options available to these commands with example usage. | ||||
| ## Packaging | |||||
| The **espeak-ng** project works as a drop-in replacement for **espeak**, with | |||||
| a few caveats. More specifically: | |||||
| 1. The installation creates compatibility symlinks mapping _espeak_, _speak_ | |||||
| and _libespeak.la_ to their _espeak-ng_ equivalents. These are optional if | |||||
| you are packaging _espeak_ using the upstream eSpeak code, and can be | |||||
| handled in distributions in other ways, such as the | |||||
| [Debian Alternatives](https://wiki.debian.org/DebianAlternatives) system. | |||||
| 2. The command-line interface to _espeak-ng_ and _speak-ng_ are compatible | |||||
| with the upstream versions and intend to remain so. Only new command | |||||
| options will be added. | |||||
| 3. The C API to _libespeak-ng.so_ will remain API and ABI compatible with | |||||
| _libespeak.so_. The only change `speak_lib.h` has is a change to the | |||||
| `ESPEAK_API` macro when building on Windows. All new APIs are being added | |||||
| to `espeak-ng/espeak_ng.h`. | |||||
| 4. The _espeak-ng-data_ files have been modified slightly. Currently _espeak-ng_ | |||||
| can read _espeak_ data, but _espeak_ cannot read _espeak-ng_ data, because | |||||
| _espeak-ng_ uses a different voice data so that both _espeak_ and | |||||
| _espeak-ng_ can be installed on the same machine without problems. | |||||
| 5. The _espeak-ng_ project does not include _espeakedit_. The voice data is | |||||
| built using the _espeak-ng_ command line itself. Currently, to create and | |||||
| edit the voice data, you need _espeakedit_ from the _espeak_ project. | |||||
| ## eSpeak Compatibility | |||||
| The *espeak-ng* binaries expose the same command-line options as *espeak*, with | |||||
| several additions to expose 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 provided in `espeak-ng/speak_lib.h` with | |||||
| an optional symlink in `espeak/speak_lib.h`. This file contains the espeak API as | |||||
| of 1.48.15, with a change to the `ESPEAK_API` macro to fix building on Windows, | |||||
| and some minor changes to the documentation comments. Thus, the 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. With espeak-ng 1.49.0, the number of supported phoneme tables was increased | |||||
| so espeak-ng can read the espeak data but espeak cannot read the espeak-ng data. | |||||
| That is, `N_PHONEM_TABS` in `phoneme.h` has been increased from `100` to `150`. | |||||
| This does not affect the binary phoneme format. | |||||
| As of espeak-ng 1.49.2, the format of the phoneme source files has changed, so | |||||
| they are no longer compatible with espeak. The binary files are still compatible | |||||
| 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. | |||||
| ## Historical Versions | ## Historical Versions | ||||