Use BCP 47 conformant language codes for the languages and accents.

This commit is contained in:
Reece H. Dunn
2016-01-23 18:41:00 +00:00
parent e8015df0f8
commit 77b5f6a1c0
17 changed files with 44 additions and 37 deletions
+10 -11
View File
@@ -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.
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:
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.
* `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
+14 -3
View File
@@ -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
View File
@@ -1,6 +1,5 @@
name english
language en-gb 2
language en-uk 2
language en 2
gender male
-1
View File
@@ -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 -1
View File
@@ -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
+3 -3
View File
@@ -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]);
+3 -3
View File
@@ -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]);