| | dictsource/fr_list |create | | | dictsource/fr_list |create | | ||||
| | dictsource/fr_rules |create | | | dictsource/fr_rules |create | | ||||
| | dictsource/fr_extrc |create (optional) | | | dictsource/fr_extrc |create (optional) | | ||||
| | espeak-data/voices/roa/fr |create | | |||||
| | espeak-ng-data/voices/roa/fr |create | | |||||
| where: | where: | ||||
| ### Voice File | ### Voice File | ||||
| E.g. `espeak-data/voices/roa/fr` is the voice file for French. | |||||
| E.g. `espeak-ng-data/voices/roa/fr` is the voice file for French. | |||||
| This gives the language name and may set some options. | This gives the language name and may set some options. | ||||
| Each language needs a voice file in `espeak-data/voices` grouped by the | |||||
| Each language needs a voice file in `espeak-ng-data/voices` grouped by the | |||||
| [language family](#language-family). The filename of the default voice for a | [language family](#language-family). The filename of the default voice for a | ||||
| language should be the same as the language code (e.g. `fr` for French). | language should be the same as the language code (e.g. `fr` for French). | ||||
| language fr | language fr | ||||
| This language code specifies which phoneme table and dictionary to use | This language code specifies which phoneme table and dictionary to use | ||||
| (i.e. `phonemetable fr` and `espeak-data/fr_dict`) to be used. If | |||||
| (i.e. `phonemetable fr` and `espeak-ng-data/fr_dict`) to be used. If | |||||
| needed, these can be overridden by `phonemes` and `dictionary` | needed, these can be overridden by `phonemes` and `dictionary` | ||||
| attributes in the voice file. For example you may want to start the | attributes in the voice file. For example you may want to start the | ||||
| implementation of a new language by using the phoneme table of an | implementation of a new language by using the phoneme table of an | ||||
| [Dictionary](dictionary.md). | [Dictionary](dictionary.md). | ||||
| The `fr_rules` and `fr_list` files are compiled to produce the | The `fr_rules` and `fr_list` files are compiled to produce the | ||||
| `espeak-data/fr_dict` file, which eSpeak uses when it is speaking. | |||||
| `espeak-ng-data/fr_dict` file, which eSpeak uses when it is speaking. | |||||
| Once the language's phonemes have been defined, then pronunciation | Once the language's phonemes have been defined, then pronunciation | ||||
| dictionary data can be produced in order to translate the language's | dictionary data can be produced in order to translate the language's | ||||
| source text into phonemes. This consists of two source files: | source text into phonemes. This consists of two source files: | ||||
| `fr_rules` (the spelling to phoneme rules) and `fr_list` (an | `fr_rules` (the spelling to phoneme rules) and `fr_list` (an | ||||
| exceptions list, and attributes of certain words). The corresponding | exceptions list, and attributes of certain words). The corresponding | ||||
| compiled data file is `espeak-data/fr_dict` which is produced from | |||||
| compiled data file is `espeak-ng-data/fr_dict` which is produced from | |||||
| the `fr_rules` and `fr_list` sources by the command: | the `fr_rules` and `fr_list` sources by the command: | ||||
| espeak-ng --compile=fr | espeak-ng --compile=fr | ||||
| options. For a new language, you would add its language code and the | options. For a new language, you would add its language code and the | ||||
| required options in `SetTranslator()`. However, this may not be necessary | required options in `SetTranslator()`. However, this may not be necessary | ||||
| during testing because most of the options can also be set in the voice | during testing because most of the options can also be set in the voice | ||||
| file in espeak-data/voices (see [Voice Files](voices.md)). | |||||
| file in espeak-ng-data/voices (see [Voice Files](voices.md)). | |||||
| ## Compiling Rules File for Debugging | ## Compiling Rules File for Debugging | ||||
| various other properties. The source files are: `<language>_list` (e.g. | various other properties. The source files are: `<language>_list` (e.g. | ||||
| `en_list`) and optionally `<language>_extra` (e.g. `en_extra`). | `en_list`) and optionally `<language>_extra` (e.g. `en_extra`). | ||||
| These files are compiled into the file `<language>_dict` in the espeak-data | |||||
| directory (e.g. `espeak-data/en_dict`). | |||||
| These files are compiled into the file `<language>_dict` in the espeak-ng-data | |||||
| directory (e.g. `espeak-ng-data/en_dict`). | |||||
| ## Phoneme names | ## Phoneme names | ||||
| ## Clauses | ## Clauses | ||||
| The tunes which are used for a language can be specified by using a | The tunes which are used for a language can be specified by using a | ||||
| `tunes` statement in a voice file in `espeak-data/voices`. e.g.: | |||||
| `tunes` statement in a voice file in `espeak-ng-data/voices`. e.g.: | |||||
| tunes s1 c1 q1 e1 | tunes s1 c1 q1 e1 | ||||
| where `xxx` is the name of a Mbrola voice (e.g. `mb-en1` for the Mbrola | where `xxx` is the name of a Mbrola voice (e.g. `mb-en1` for the Mbrola | ||||
| `en1` English voice). These voice files are in eSpeak NG's directory | `en1` English voice). These voice files are in eSpeak NG's directory | ||||
| `espeak-data/voices/mbrola`. | |||||
| `espeak-ng-data/voices/mbrola`. | |||||
| The installation instructions below use the Mbrola voice "en1" as an | The installation instructions below use the Mbrola voice "en1" as an | ||||
| example. You can use other mbrola voices for which there is an | example. You can use other mbrola voices for which there is an | ||||
| equivalent eSpeak NG voice in `espeak-data/voices/mbrola`. | |||||
| equivalent eSpeak NG voice in `espeak-ng-data/voices/mbrola`. | |||||
| There are some additional eSpeak NG Mbrola voices which speak English text | There are some additional eSpeak NG Mbrola voices which speak English text | ||||
| using a Mbrola voice for a different language. These contain the name of | using a Mbrola voice for a different language. These contain the name of | ||||
| [http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html](http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html). | [http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html](http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html). | ||||
| 4. Unpack the archive, and copy the `en1` data file (not the whole "en1" directory) into | 4. Unpack the archive, and copy the `en1` data file (not the whole "en1" directory) into | ||||
| `C:/Program Files/eSpeak/espeak-data/mbrola`. | |||||
| `C:/Program Files/eSpeak/espeak-ng-data/mbrola`. | |||||
| 4. Use the voice `espeak-MB-EN1` from the list of SAPI5 voices. | 4. Use the voice `espeak-MB-EN1` from the list of SAPI5 voices. | ||||
| 4. Unpack the archive, and copy the `en1` data file (not the whole "en1" directory) to `/usr/share/mbrola/en1`. | 4. Unpack the archive, and copy the `en1` data file (not the whole "en1" directory) to `/usr/share/mbrola/en1`. | ||||
| __NOTE:__ eSpeak will look for mbrola voices firstly in `espeak-data/mbrola` and then in `/usr/share/mbrola`. | |||||
| __NOTE:__ eSpeak will look for mbrola voices firstly in `espeak-ng-data/mbrola` and then in `/usr/share/mbrola`. | |||||
| ## Usage | ## Usage | ||||
| ## Mbrola Voice Files | ## Mbrola Voice Files | ||||
| eSpeak NG's voice files for Mbrola voices are in directory `espeak-data/voices/mbrola`. | |||||
| eSpeak NG's voice files for Mbrola voices are in directory `espeak-ng-data/voices/mbrola`. | |||||
| They contain a line: `mbrola <voice> <translation>` | They contain a line: `mbrola <voice> <translation>` | ||||
| e.g. | e.g. | ||||
| * \<translation\> is a translation file to convert between eSpeak phonemes and | * \<translation\> is a translation file to convert between eSpeak phonemes and | ||||
| the equivalent Mbrola phonemes. | the equivalent Mbrola phonemes. | ||||
| These are kept in: `espeak-data/mbrola_ph` | |||||
| These are kept in: `espeak-ng-data/mbrola_ph` | |||||
| ## Mbrola Phoneme Translation Data | ## Mbrola Phoneme Translation Data | ||||
| dialect) together with various attributes that affect the | dialect) together with various attributes that affect the | ||||
| characteristics of the voice quality and how the language is spoken. | characteristics of the voice quality and how the language is spoken. | ||||
| Voice files are located in the `espeak-data/voices` directory, and are | |||||
| Voice files are located in the `espeak-ng-data/voices` directory, and are | |||||
| grouped by the [ISO 639-5](https://en.wikipedia.org/wiki/ISO_639-5) | grouped by the [ISO 639-5](https://en.wikipedia.org/wiki/ISO_639-5) | ||||
| language family of the language being specified in the voice files. | language family of the language being specified in the voice files. | ||||
| See also Wikipedia's | See also Wikipedia's | ||||
| consonants (such as `[n]` and `[l]`). Unvoiced sounds such as `[s]` are | consonants (such as `[n]` and `[l]`). Unvoiced sounds such as `[s]` are | ||||
| unaffected. | unaffected. | ||||
| This `tone` statement can also appear in `espeak-data/config`, in which case | |||||
| This `tone` statement can also appear in `espeak-ng-data/config`, in which case | |||||
| it applies to all voices which don't have their own `tone` statement. | it applies to all voices which don't have their own `tone` statement. | ||||
| ### flutter | ### flutter | ||||
| Eight integer parameters. These are added to the voice's corresponding | Eight integer parameters. These are added to the voice's corresponding | ||||
| `stressLength` values. They are used in the voice variant files in | `stressLength` values. They are used in the voice variant files in | ||||
| `espeak-data/voices/!v` to give some variety. Negative values may be used. | |||||
| `espeak-ng-data/voices/!v` to give some variety. Negative values may be used. | |||||
| ### stressAmp | ### stressAmp | ||||
| Used for some languages to detect if additional language data is | Used for some languages to detect if additional language data is | ||||
| installed. If the size of the compiled dictionary data for the language | installed. If the size of the compiled dictionary data for the language | ||||
| (the file `espeak-data/*_dict`) is less than this size then a | |||||
| (the file `espeak-ng-data/*_dict`) is less than this size then a | |||||
| warning is given. | warning is given. | ||||
| ### alphabet2 | ### alphabet2 |