| @@ -20,7 +20,7 @@ | |||
| - [Signing the APK](#signing-the-apk) | |||
| - [Installing](#installing-1) | |||
| - [Documentation](#documentation) | |||
| - [Packaging](#packaging) | |||
| - [eSpeak Compatibility](#espeak-compatibility) | |||
| - [Historical Versions](#historical-versions) | |||
| - [Bugs](#bugs) | |||
| - [License Information](#license-information) | |||
| @@ -303,34 +303,33 @@ The [espeak-ng](src/espeak-ng.1.ronn) and [speak-ng](src/speak-ng.1.ronn) | |||
| command-line documentation provide a reference of the different command-line | |||
| 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 | |||