@@ -23,18 +23,17 @@ gradual process of improvement. | |||
## Language Code | |||
Generally, the language's international | |||
[ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) code is used to identify | |||
the language. It is used in the filenames which contain the language's | |||
data. In the examples below the code **"fr"** is used as an example. | |||
Replace this with the code of your language. | |||
If the language does not have a 2-letter ISO\_639-1 code, then use the | |||
3-letter ISO\_639-3 code. Language codes may differ from country codes. | |||
It is possible to have different variants of a language for different | |||
dialects. For example the sound of some phonemes are changed, or some of | |||
the pronunciation rules differ. | |||
The language is identified using the | |||
[BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) language tag. | |||
When this is not enough to identify an accent, the | |||
[bcp47-data](https://github.com/rhdunn/bcp47-data) accents file describes | |||
the private use tags used by eSpeak NG. For example: | |||
* `en` -- English | |||
* `en-GB-scotland` -- English with a Scottish accent | |||
* `en-GB-x-rp` -- English with a Received Pronunciation accent | |||
* `es-419` -- Spanish with a Latin American accent | |||
* `fr-CA` -- French with a Canadian accent | |||
## Language Files | |||
@@ -84,9 +84,20 @@ listed below. | |||
It selects the default behaviour and characteristics for the language, | |||
and sets default values for "phonemes", "dictionary" and other | |||
attributes. The \<language code\> should be a two-letter ISO 639-1 | |||
language code. One or more language variant codes may be appended, | |||
separated by hyphens. (eg. en-uk-north). | |||
attributes. | |||
The \<language code\> is a | |||
[BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) language tag. | |||
When this is not enough to identify an accent, the | |||
[bcp47-data](https://github.com/rhdunn/bcp47-data) accents file describes | |||
the private use tags used by eSpeak NG. For example: | |||
* `en` -- English | |||
* `en-GB-scotland` -- English with a Scottish accent | |||
* `en-GB-x-rp` -- English with a Received Pronunciation accent | |||
* `es-419` -- Spanish with a Latin American accent | |||
* `fr-CA` -- French with a Canadian accent | |||
The optional \<priority\> value gives the preference of this voice | |||
compared with others for the specified language. A low value indicates a |
@@ -1,6 +1,6 @@ | |||
name persian-pinglish | |||
// Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat and SMS (texte messages).), called Pinglish | |||
language fa-pin | |||
language fa-Latn | |||
dictrules 1 | |||
phonemes fa | |||
@@ -1,5 +1,5 @@ | |||
name armenian-west | |||
language hy-west | |||
language hy-arevmda | |||
language hy 8 | |||
gender male | |||
@@ -1,5 +1,5 @@ | |||
name vietnam_hue | |||
language vi-hue | |||
language vi-vn-x-central | |||
phonemes vi-hue | |||
dictrules 1 | |||
gender male |
@@ -1,5 +1,5 @@ | |||
name vietnam_sgn | |||
language vi-sgn | |||
language vi-vn-x-south | |||
phonemes vi-sgn | |||
dictrules 2 | |||
gender male |
@@ -1,6 +1,5 @@ | |||
name english | |||
language en-gb 2 | |||
language en-uk 2 | |||
language en 2 | |||
gender male | |||
@@ -1,7 +1,6 @@ | |||
// moving towards US English | |||
name english-us | |||
language en-us 2 | |||
language en-r | |||
language en 3 | |||
gender male | |||
@@ -1,5 +1,5 @@ | |||
name spanish-latin-am | |||
language es-la | |||
language es-419 | |||
language es-mx 6 | |||
language es 6 | |||
gender male |
@@ -1,5 +1,5 @@ | |||
name english-mb-en1 | |||
language en-uk 3 | |||
language en-gb 3 | |||
language en 2 | |||
gender male | |||
@@ -1,6 +1,5 @@ | |||
name en-westindies | |||
language en-wi | |||
language en-uk 4 | |||
language en-029 | |||
language en 10 | |||
gender male | |||
@@ -1,5 +1,5 @@ | |||
name en-scottish | |||
language en-sc | |||
language en-gb-scotland | |||
language en 4 | |||
gender male | |||
@@ -1,6 +1,6 @@ | |||
name english-north | |||
language en-uk-north | |||
language en-uk 3 | |||
language en-gb-x-gbclan | |||
language en-gb 3 | |||
language en 5 | |||
gender male | |||
@@ -1,6 +1,6 @@ | |||
name english_wmids | |||
language en-uk-wmids | |||
language en-uk 9 | |||
language en-gb-x-gbcwmd | |||
language en-gb 9 | |||
language en 9 | |||
gender male | |||
@@ -1,6 +1,6 @@ | |||
name english_rp | |||
language en-uk-rp | |||
language en-uk 4 | |||
language en-gb-x-rp | |||
language en-gb 4 | |||
language en 5 | |||
gender male | |||
@@ -146,7 +146,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
} else | |||
voices = espeak_ListVoices(NULL); | |||
fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
for (ix = 0; (v = voices[ix]) != NULL; ix++) { | |||
count = 0; | |||
@@ -156,7 +156,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
lang_name = p+1; | |||
if (v->age == 0) | |||
strcpy(age_buf, " "); | |||
strcpy(age_buf, " --"); | |||
else | |||
sprintf(age_buf, "%3d", v->age); | |||
@@ -168,7 +168,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
if ((buf[j] = c) == 0) | |||
break; | |||
} | |||
fprintf(f_out, "%2d %-12s%s%c %-20s %-13s ", | |||
fprintf(f_out, "%2d %-15s%s/%c %-18s %-20s ", | |||
p[0], lang_name, age_buf, genders[v->gender], buf, v->identifier); | |||
} else | |||
fprintf(f_out, "(%s %d)", lang_name, p[0]); |
@@ -153,7 +153,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
} else | |||
voices = espeak_ListVoices(NULL); | |||
fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
for (ix = 0; (v = voices[ix]) != NULL; ix++) { | |||
count = 0; | |||
@@ -163,7 +163,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
lang_name = p+1; | |||
if (v->age == 0) | |||
strcpy(age_buf, " "); | |||
strcpy(age_buf, " --"); | |||
else | |||
sprintf(age_buf, "%3d", v->age); | |||
@@ -175,7 +175,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
if ((buf[j] = c) == 0) | |||
break; | |||
} | |||
fprintf(f_out, "%2d %-12s%s%c %-20s %-13s ", | |||
fprintf(f_out, "%2d %-15s%s/%c %-18s %-20s ", | |||
p[0], lang_name, age_buf, genders[v->gender], buf, v->identifier); | |||
} else | |||
fprintf(f_out, "(%s %d)", lang_name, p[0]); |