Browse Source

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

master
Reece H. Dunn 9 years ago
parent
commit
77b5f6a1c0

+ 11
- 12
docs/add_language.md 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.

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


+ 14
- 3
docs/voices.md 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

espeak-data/voices/asia/fa-pin → espeak-data/voices/asia/fa-Latn View File

@@ -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


espeak-data/voices/asia/hy-west → espeak-data/voices/asia/hy-arevmda View File

@@ -1,5 +1,5 @@
name armenian-west
language hy-west
language hy-arevmda
language hy 8
gender male


espeak-data/voices/asia/vi-hue → espeak-data/voices/asia/vi-VN-x-central View File

@@ -1,5 +1,5 @@
name vietnam_hue
language vi-hue
language vi-vn-x-central
phonemes vi-hue
dictrules 1
gender male

espeak-data/voices/asia/vi-sgn → espeak-data/voices/asia/vi-VN-x-south View File

@@ -1,5 +1,5 @@
name vietnam_sgn
language vi-sgn
language vi-vn-x-south
phonemes vi-sgn
dictrules 2
gender male

+ 0
- 1
espeak-data/voices/en View File

@@ -1,6 +1,5 @@
name english
language en-gb 2
language en-uk 2
language en 2
gender male


+ 0
- 1
espeak-data/voices/en-us 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


espeak-data/voices/es-la → espeak-data/voices/es-419 View File

@@ -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
espeak-data/voices/mb/mb-en1 View File

@@ -1,5 +1,5 @@
name english-mb-en1
language en-uk 3
language en-gb 3
language en 2
gender male


espeak-data/voices/other/en-wi → espeak-data/voices/other/en-029 View File

@@ -1,6 +1,5 @@
name en-westindies
language en-wi
language en-uk 4
language en-029
language en 10
gender male


espeak-data/voices/other/en-sc → espeak-data/voices/other/en-GB-scotland View File

@@ -1,5 +1,5 @@
name en-scottish
language en-sc
language en-gb-scotland
language en 4
gender male


espeak-data/voices/other/en-n → espeak-data/voices/other/en-GB-x-gbclan View File

@@ -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


espeak-data/voices/other/en-wm → espeak-data/voices/other/en-GB-x-gbcwmd View File

@@ -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


espeak-data/voices/other/en-rp → espeak-data/voices/other/en-GB-x-rp View File

@@ -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
src/espeak-ng.c 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
src/speak-ng.c 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]);

Loading…
Cancel
Save