@@ -28,7 +28,7 @@ | |||
---------- | |||
The eSpeak NG (Next Generation) Text-to-Speech program is an open source speech | |||
synthesizer that supports [100 languages and accents](docs/languages.md). | |||
synthesizer that supports [99 languages and accents](docs/languages.md). | |||
It is based on the eSpeak engine created by Jonathan Duddington. It uses | |||
spectral formant synthesis by default which sounds robotic, but can be | |||
configured to use Klatt formant synthesis or MBROLA to give it a more natural |
@@ -42,9 +42,8 @@ The supported languages are: | |||
| `gmw` | `en-GB-x-gbcwmd` | West Germanic | English | West Midlands | | |||
| `art` | `eo` | Constructed | Esperanto | | | |||
| `urj` | `et` | Uralic | Estonian | | | |||
| `ira` | `fa` | Iranian | Persian<sup>[1]</sup> | | | |||
| `ira` | `fa-en-us` | Iranian | Persian<sup>[2]</sup> | | | |||
| `ira` | `fa-Latn` | Iranian | Persian<sup>[3]</sup> | | | |||
| `ira` | `fa` | Iranian | Persian | | | |||
| `ira` | `fa-Latn` | Iranian | Persian<sup>[1]</sup> | | | |||
| `urj` | `fi` | Uralic | Finnish | | | |||
| `roa` | `fr-BE` | Romance | French | Belgium | | |||
| `roa` | `fr` | Romance | French | France | | |||
@@ -63,7 +62,7 @@ The supported languages are: | |||
| `poz` | `id` | Malayo-Polynesian | Indonesian | | | |||
| `art` | `ia` | Constructed | Interlingua | | | |||
| `roa` | `it` | Romance | Italian | | | |||
| `jpx` | `jp` | Japanese | Japanese<sup>[4]</sup> | | | |||
| `jpx` | `jp` | Japanese | Japanese<sup>[2]</sup> | | | |||
| `dra` | `kn` | Dravidian | Kannada | | | |||
| `inc` | `kok` | Indic | Konkani | | | |||
| | `ko` | | Korean | | | |||
@@ -86,7 +85,7 @@ The supported languages are: | |||
| `inc` | `or` | Indic | Oriya | | | |||
| `cus` | `om` | Cushitic | Oromo | | | |||
| `roa` | `pap` | Romance | Papiamento | | | |||
| `und` | `und-fonipa` | | Phonemes<sup>[5]</sup> | IPA | | |||
| `und` | `und-fonipa` | | Phonemes<sup>[3]</sup> | IPA | | |||
| `zls` | `pl` | South Slavic | Polish | | | |||
| `roa` | `pt-BR` | Romance | Portuguese | Brazillian | | |||
| `roa` | `pt-PT` | Romance | Portuguese | Portugal | | |||
@@ -113,12 +112,8 @@ The supported languages are: | |||
| `aav` | `vi-VN-x-south` | Austroasiatic | Vietnamese | Southern Vietnam | | |||
| `cel` | `cy` | Celtic | Welsh | | | |||
[1] Includes support for reading British English text. | |||
[1] Farsi/Persian written using English (Latin) characters. | |||
[2] Includes support for reading American English text. | |||
[2] Currently, only Hiragana and Katakana are supported. | |||
[3] Farsi/Persian written using English (Latin) characters. | |||
[4] Currently, only Hiragana and Katakana are supported. | |||
[5] Currently only supported using the `[[...]]` phoneme blocks. | |||
[3] Currently only supported using the `[[...]]` phoneme blocks. |
@@ -32,7 +32,6 @@ | |||
- [charset](#charset) | |||
- [dictmin](#dictmin) | |||
- [alphabet2](#alphabet2) | |||
- [dictdialect](#dictdialect) | |||
---------- | |||
@@ -446,26 +445,6 @@ in a non-native alphabet. e.g.: | |||
Alphabets names include: latin, cyr (cyrillic), ar (arabic). The default | |||
language for latin alphabet is English. | |||
### dictdialect | |||
dictdialect <dialect> | |||
Words can be marked in the `*_list` or `*_rules` file to be spoken using | |||
a foreign voice. This `dictdialect` attribute can be used to specify | |||
which dialect of the foreign language should be used, instead of the | |||
default dialect. The currently available dialects are: | |||
* `en-us` (US English) | |||
* `es-la` (Latin American Spanish) | |||
e.g. | |||
dictdialect en-us | |||
This means that any words or rules which are made with `_^_EN` will be | |||
spoken with the US English voice instead of the default UK English | |||
voice. | |||
Additional attributes are available to set various internal options | |||
which control how language is processed. These would normally be set in | |||
the program code rather than in a voice file. |
@@ -1,6 +0,0 @@ | |||
name Persian+English-US | |||
language fa | |||
dictdialect en-us | |||
maintainer Shadyar Khodayari <[email protected]> | |||
status mature | |||
// This language reads Persian and English with U.S pronunciation, as Persian uses a collection of special characters which differs entirely from English characters. |
@@ -106,7 +106,6 @@ enum { | |||
V_SPEED, | |||
V_DICTMIN, | |||
V_ALPHABET2, | |||
V_DICTDIALECT, | |||
// these need a phoneme table to have been specified | |||
V_REPLACE, | |||
@@ -160,7 +159,6 @@ static MNEM_TAB keyword_tab[] = { | |||
{ "speed", V_SPEED }, | |||
{ "dict_min", V_DICTMIN }, | |||
{ "alphabet2", V_ALPHABET2 }, | |||
{ "dictdialect", V_DICTDIALECT }, | |||
// these just set a value in langopts.param[] | |||
{ "l_dieresis", 0x100+LOPT_DIERESES }, | |||
@@ -174,13 +172,6 @@ static MNEM_TAB keyword_tab[] = { | |||
{ NULL, 0 } | |||
}; | |||
static MNEM_TAB dict_dialects[] = { | |||
{ "en-us", DICTDIALECT_EN_US }, | |||
{ "es-la", DICTDIALECT_ES_LA }, | |||
{ NULL, 0 } | |||
}; | |||
#define N_VOICE_VARIANTS 12 | |||
const char variants_either[N_VOICE_VARIANTS] = { 1, 2, 12, 3, 13, 4, 14, 5, 11, 0 }; | |||
const char variants_male[N_VOICE_VARIANTS] = { 1, 2, 3, 4, 5, 6, 0 }; | |||
@@ -866,15 +857,6 @@ voice_t *LoadVoice(const char *vname, int control) | |||
fprintf(stderr, "alphabet name '%s' not found\n", name1); | |||
} | |||
break; | |||
case V_DICTDIALECT: | |||
// specify a dialect to use for foreign words, eg, en-us for _^_EN | |||
if (sscanf(p, "%s", name1) == 1) { | |||
if ((ix = LookupMnem(dict_dialects, name1)) > 0) | |||
langopts->dict_dialect |= (1 << ix); | |||
else | |||
fprintf(stderr, "dictdialect name '%s' not recognized\n", name1); | |||
} | |||
break; | |||
case V_MAINTAINER: | |||
case V_STATUS: | |||
break; |