* hak (Hakka Chinese) -- Chen Chien-ting | * hak (Hakka Chinese) -- Chen Chien-ting | ||||
* ht (Haitian Creole) -- Valdis Vitolins | * ht (Haitian Creole) -- Valdis Vitolins | ||||
* shn (Shan Tay Yai) -- ronaldaug | |||||
updated languages: | updated languages: | ||||
phsource/ph_s_gaelic \ | phsource/ph_s_gaelic \ | ||||
phsource/ph_serbian \ | phsource/ph_serbian \ | ||||
phsource/ph_setswana \ | phsource/ph_setswana \ | ||||
phsource/ph_shan \ | |||||
phsource/ph_sinhala \ | phsource/ph_sinhala \ | ||||
phsource/ph_slovak \ | phsource/ph_slovak \ | ||||
phsource/ph_slovenian \ | phsource/ph_slovenian \ | ||||
espeak-ng-data/ro_dict \ | espeak-ng-data/ro_dict \ | ||||
espeak-ng-data/ru_dict \ | espeak-ng-data/ru_dict \ | ||||
espeak-ng-data/sd_dict \ | espeak-ng-data/sd_dict \ | ||||
espeak-ng-data/shn_dict \ | |||||
espeak-ng-data/si_dict \ | espeak-ng-data/si_dict \ | ||||
espeak-ng-data/sk_dict \ | espeak-ng-data/sk_dict \ | ||||
espeak-ng-data/sl_dict \ | espeak-ng-data/sl_dict \ | ||||
sd: espeak-ng-data/sd_dict | sd: espeak-ng-data/sd_dict | ||||
espeak-ng-data/sd_dict: dictsource/sd_list dictsource/sd_rules dictsource/sd_extra dictsource/sd_emoji | espeak-ng-data/sd_dict: dictsource/sd_list dictsource/sd_rules dictsource/sd_extra dictsource/sd_emoji | ||||
shn: espeak-ng-data/shn_dict | |||||
espeak-ng-data/shn_dict: dictsource/shn_list dictsource/shn_rules dictsource/shn_extra | |||||
si: espeak-ng-data/si_dict | si: espeak-ng-data/si_dict | ||||
espeak-ng-data/si_dict: dictsource/si_list dictsource/si_rules dictsource/si_extra dictsource/si_emoji | espeak-ng-data/si_dict: dictsource/si_list dictsource/si_rules dictsource/si_extra dictsource/si_emoji | ||||
mbrola: \ | mbrola: \ | ||||
espeak-ng-data/mbrola_ph/af1_phtrans \ | espeak-ng-data/mbrola_ph/af1_phtrans \ | ||||
espeak-ng-data/mbrola_ph/ar1_phtrans \ | espeak-ng-data/mbrola_ph/ar1_phtrans \ | ||||
espeak-ng-data/mbrola_ph/ar2_phtrans \ | |||||
espeak-ng-data/mbrola_ph/ca_phtrans \ | espeak-ng-data/mbrola_ph/ca_phtrans \ | ||||
espeak-ng-data/mbrola_ph/cr1_phtrans \ | espeak-ng-data/mbrola_ph/cr1_phtrans \ | ||||
espeak-ng-data/mbrola_ph/cs_phtrans \ | espeak-ng-data/mbrola_ph/cs_phtrans \ | ||||
mkdir -p espeak-ng-data/mbrola_ph | mkdir -p espeak-ng-data/mbrola_ph | ||||
ESPEAK_DATA_PATH=$(PWD) src/espeak-ng --compile-mbrola=phsource/mbrola/ar1 | ESPEAK_DATA_PATH=$(PWD) src/espeak-ng --compile-mbrola=phsource/mbrola/ar1 | ||||
espeak-ng-data/mbrola_ph/ar2_phtrans: phsource/mbrola/ar2 src/espeak-ng | |||||
mkdir -p espeak-ng-data/mbrola_ph | |||||
ESPEAK_DATA_PATH=$(PWD) src/espeak-ng --compile-mbrola=phsource/mbrola/ar2 | |||||
espeak-ng-data/mbrola_ph/ca_phtrans: phsource/mbrola/ca src/espeak-ng | espeak-ng-data/mbrola_ph/ca_phtrans: phsource/mbrola/ca src/espeak-ng | ||||
mkdir -p espeak-ng-data/mbrola_ph | mkdir -p espeak-ng-data/mbrola_ph | ||||
ESPEAK_DATA_PATH=$(PWD) src/espeak-ng --compile-mbrola=phsource/mbrola/ca | ESPEAK_DATA_PATH=$(PWD) src/espeak-ng --compile-mbrola=phsource/mbrola/ca |
// Arabic Moon characters | // Arabic Moon characters | ||||
.L11 ق ف غ ع ه خ ح ج ي ب م ك و إ أ ء | .L11 ق ف غ ع ه خ ح ج ي ب م ك و إ أ ء | ||||
// Arabic diacritics | |||||
.L20 ۡ ـ ً ٌ ٍ َ ُ ِ ّ ْ | |||||
.group آ | .group آ | ||||
آ ?aa | آ ?aa | ||||
.group ت | .group ت | ||||
ت t | ت t | ||||
ت (ّ t: | |||||
ت (L20ّ t: | |||||
_) ت (َP1 t | _) ت (َP1 t | ||||
_) ت (P1 ta //تسأل | _) ت (P1 ta //تسأل | ||||
_َ) ت (P2 t | _َ) ت (P2 t | ||||
ت (_S1 at //سألت | ت (_S1 at //سألت | ||||
تّ tt | |||||
تّ t: | |||||
.group ث | .group ث | ||||
ث T | ث T | ||||
.group د | .group د | ||||
د d | د d | ||||
دّ dd | |||||
د (ّ d: | |||||
د (L20ّ d: | |||||
.group ذ | .group ذ | ||||
ذ D | ذ D | ||||
.group س | .group س | ||||
س s | س s | ||||
سّ ss | |||||
س (ّ s: | |||||
س (L20ّ s: | |||||
.group ش | .group ش | ||||
ش S | ش S | ||||
شّ SS | |||||
ش (ّ S: | |||||
ش (L20ّ S: | |||||
.group ص | .group ص | ||||
ص s[ | ص s[ | ||||
.group ك | .group ك | ||||
ك k | ك k | ||||
ك (_S1 ka // الضمير المتصل | ك (_S1 ka // الضمير المتصل | ||||
ك (ّ k: | |||||
ك (L20ّ k: | |||||
_) كال (L10P3 ka //كالشمس | _) كال (L10P3 ka //كالشمس | ||||
_) كَال (L10P4 ka | _) كَال (L10P4 ka | ||||
_) كَالْ (L10P4 ka | _) كَالْ (L10P4 ka | ||||
_) كال (لP3 kal | _) كال (لP3 kal | ||||
_) كال (نP3 kan | _) كال (نP3 kan | ||||
كم (_S2 kum //الضمير المتصل | كم (_S2 kum //الضمير المتصل | ||||
كما (_S3 kumaa //الضمير المتصل | |||||
كن (_S2 kunna //الضمير المتصل | |||||
كما (_S3 kuma: //الضمير المتصل | |||||
كن (_S2 kun:a //الضمير المتصل | |||||
.group گ | .group گ | ||||
گ g | گ g | ||||
_بِا) ل (L10 ' // Sun letters | _بِا) ل (L10 ' // Sun letters | ||||
_فَا) ل (L10 ' // Sun letters | _فَا) ل (L10 ' // Sun letters | ||||
_كَا) ل (L10 ' // Sun letters | _كَا) ل (L10 ' // Sun letters | ||||
لّ ll | |||||
ل (ّ l: | |||||
ل (L20ّ l: | |||||
_لِ) ل (L10 ' // Sun letters | _لِ) ل (L10 ' // Sun letters | ||||
_وَا) ل (L10 ' // Sun letters | _وَا) ل (L10 ' // Sun letters | ||||
.group ه | .group ه | ||||
ه h | ه h | ||||
ه (_S1 h // الضمير المتصل | ه (_S1 h // الضمير المتصل | ||||
ها (_S2 haa //الضمير المتصل | |||||
ها (_S2 ha: //الضمير المتصل | |||||
هم (_S2 hum //الضمير المتصل | هم (_S2 hum //الضمير المتصل | ||||
هما (_S3 humaa //الضمير المتصل | |||||
هن (_S2 hunna //الضمير المتصل | |||||
هما (_S3 huma: //الضمير المتصل | |||||
هن (_S2 hun:a //الضمير المتصل | |||||
.group و | .group و | ||||
L03) و uu //واو بعد صامت دون تشكيل | |||||
L03) و u: //واو بعد صامت دون تشكيل | |||||
ا) و w //واو بعد الألف | ا) و w //واو بعد الألف | ||||
و (L01 w //واو بعدها حرف علة | و (L01 w //واو بعدها حرف علة | ||||
ْ) و w // واو بعد سكون | ْ) و w // واو بعد سكون | ||||
ِ) و w //واو بعد كسرة | ِ) و w //واو بعد كسرة | ||||
_) و w //واو في أول الكلمة | _) و w //واو في أول الكلمة | ||||
وا (_S2 u | وا (_S2 u | ||||
وا (_S2 uu // فعل مع ضمائر الجمع المذكرة درسوا | |||||
وا (_S2 u: // فعل مع ضمائر الجمع المذكرة درسوا | |||||
_) وال (L10P3 wa //والشمس | _) وال (L10P3 wa //والشمس | ||||
_) وَال (L10P4 wa | _) وَال (L10P4 wa | ||||
_) وَالْ (L10P4 wa | _) وَالْ (L10P4 wa | ||||
_) وال (ظP3 waZ | _) وال (ظP3 waZ | ||||
_) وال (لP3 wal | _) وال (لP3 wal | ||||
_) وال (نP3 wan | _) وال (نP3 wan | ||||
ون (_S2 uuna //جمع مذكر سالم فلاحون | |||||
ون (_S2 u:na //جمع مذكر سالم فلاحون | |||||
.group ي | .group ي | ||||
L03) ي ii // ياء بعد صامت دون تشكيل | |||||
L03) ي i: // ياء بعد صامت دون تشكيل | |||||
ا) ي j // ياء بعد ألف | ا) ي j // ياء بعد ألف | ||||
يِ jii | |||||
يِ ji: | |||||
ْ) ي j //ياء بعد سكون | ْ) ي j //ياء بعد سكون | ||||
ُ) ي j //ياء بعد ضمّة | ُ) ي j //ياء بعد ضمّة | ||||
َ) ي j // ياء بعد فتحة | َ) ي j // ياء بعد فتحة | ||||
_) ي j // ياء في أول الكلمة | _) ي j // ياء في أول الكلمة | ||||
ي (L01 j //يا بعدها حروف علة | ي (L01 j //يا بعدها حروف علة | ||||
ي (_S1 i | ي (_S1 i | ||||
ي (_S1 ii //ياء النسبة | |||||
يات (_S3 ijjaat //يّة النسبة في جمع المؤنث جزائريات | |||||
ية (_S2 ijjah //يّة النسبة | |||||
ين (_S2 iina //جمع مذكر سالم منصوب أو مجرور | |||||
يون (_S3 ijjuun //kجمع مذكر سالم منسوب جزائريون | |||||
يين (_S3 ijjiin //kجمع مذكر سالم منسوب جزائريين | |||||
يات (_S3 ij:aat //يّة النسبة في جمع المؤنث جزائريات | |||||
ية (_S2 ij:ah //يّة النسبة | |||||
ين (_S2 i:na //جمع مذكر سالم منصوب أو مجرور | |||||
يون (_S3 ij:u:n //kجمع مذكر سالم منسوب جزائريون | |||||
يين (_S3 ij:i:n //kجمع مذكر سالم منسوب جزائريين | |||||
.group ى //ألف مقصورة | .group ى //ألف مقصورة | ||||
ى a | ى a | ||||
L03) ى (_ aa | |||||
L03) ى (_ a: | |||||
.group ء | .group ء | ||||
ء ? | ء ? | ||||
ء (ً ?an | ء (ً ?an | ||||
.group ئ | .group ئ | ||||
ئ ? | |||||
ئ j? | |||||
_) ئ ?j | |||||
.group ؤ | .group ؤ | ||||
ؤ ? | |||||
ؤ w? | |||||
_) ؤ ?w | |||||
.group ة | .group ة | ||||
ة t | ة t | ||||
ٍ (_S1 in // kasratan at the end of word | ٍ (_S1 in // kasratan at the end of word | ||||
ٌ (_S1 un // dammatan at the end of word | ٌ (_S1 un // dammatan at the end of word | ||||
ُ u // damma | ُ u // damma | ||||
ُو uu | |||||
َا aa | |||||
َى aa | |||||
ٰ aa // superscript alef | |||||
ُو u: | |||||
َا a: | |||||
ًا (_S2 an | |||||
َى a: | |||||
ٰ a: // superscript alef | |||||
ِ i // kasra | ِ i // kasra | ||||
َ %a // fatha | َ %a // fatha | ||||
ـ // tatweel | ـ // tatweel | ||||
ۡ // small high dotless head of khan | ۡ // small high dotless head of khan | ||||
ْ // sukun | ْ // sukun | ||||
ّ // shadda | |||||
// non-ascii characters with specified pronunciations | // non-ascii characters with specified pronunciations | ||||
// List the accented characters in en_list with the $accent attribute | // List the accented characters in en_list with the $accent attribute |
labad $u | labad $u | ||||
lai $u+ | lai $u+ | ||||
līdz $u+ | līdz $u+ | ||||
lūk $u+ | |||||
ļoti $u+ | ļoti $u+ | ||||
nav $u+ | nav $u+ | ||||
nedz $u $brk | nedz $u $brk | ||||
pirms $u+ | pirms $u+ | ||||
pret $u+ | pret $u+ | ||||
priekš $u | priekš $u | ||||
projām $u+ | |||||
prom $u+ | |||||
protams $u+ | protams $u+ | ||||
sauc $u+ | sauc $u+ | ||||
starp $u | starp $u | ||||
tad $u+ | tad $u+ | ||||
tagad $u+ | tagad $u+ | ||||
tas $u+ | tas $u+ | ||||
tātad $u+ $pause | |||||
te $u+ | te $u+ | ||||
tiek $u+ | tiek $u+ | ||||
tikai $u+ | tikai $u+ | ||||
(it sevišķi) it||seviSci $u2+ | (it sevišķi) it||seviSci $u2+ | ||||
(kaut arī) kaut||aRi: $u2+ | (kaut arī) kaut||aRi: $u2+ | ||||
(kaut cik) kaut||tsik $u2+ | (kaut cik) kaut||tsik $u2+ | ||||
(kaut gan) kaut||gan $u2+ | |||||
(kaut kad) kaut||kad $u2+ | (kaut kad) kaut||kad $u2+ | ||||
(kaut kam) kaut||kam $u2+ | (kaut kam) kaut||kam $u2+ | ||||
(kaut kas) kaut||kas $u2+ | (kaut kas) kaut||kas $u2+ |
_b) e (z_ e | _b) e (z_ e | ||||
_b) e (z+ e | _b) e (z+ e | ||||
_C) e (_ e // re, te, ve | _C) e (_ e // re, te, ve | ||||
c) e (nL83+ e | |||||
c) e (tur e | c) e (tur e | ||||
č) e (tr e | č) e (tr e | ||||
d) ebe (L83 ebe | d) ebe (L83 ebe | ||||
e (strāL72 e | e (strāL72 e | ||||
etno etno | etno etno | ||||
_) e (vL04_+ e // Eva | _) e (vL04_+ e // Eva | ||||
e (vol e | |||||
g) e (t e | g) e (t e | ||||
gr) e (dz E | gr) e (dz E | ||||
gr) e (z E | gr) e (z E | ||||
int) ere (L83 eRe | int) ere (L83 eRe | ||||
_j) e (b_ e | _j) e (b_ e | ||||
_j) e (l_ e | _j) e (l_ e | ||||
kur) e (n e | |||||
_ķ) eme (rL01_ eme // Ķemeri | _ķ) eme (rL01_ eme // Ķemeri | ||||
_L20) e (sam_+ _!e // esam | _L20) e (sam_+ _!e // esam | ||||
_L20) e (sat_+ _!e // esat | _L20) e (sat_+ _!e // esat | ||||
ņ) e (m e | ņ) e (m e | ||||
orķ) e e | orķ) e e | ||||
p) e (rs e | p) e (rs e | ||||
pr) ece (den etse | |||||
pr) e (cL52z e | pr) e (cL52z e | ||||
pr) e (L71L05_ e // prece | pr) e (L71L05_ e // prece | ||||
pr) e (s e | |||||
_pr) e (t e | _pr) e (t e | ||||
pr) etē (@ ete: | pr) etē (@ ete: | ||||
proc) e (s e | proc) e (s e | ||||
r) ecep (L88L05_ etsep // recepte | r) ecep (L88L05_ etsep // recepte | ||||
r) e (dak e | |||||
r) e (dz e | r) e (dz e | ||||
r) e (pub e | r) e (pub e | ||||
r) e (put e | r) e (put e | ||||
_s) evastopo (lL05_ evastopo: // Sevastopole | _s) evastopo (lL05_ evastopo: // Sevastopole | ||||
_s) e (v_ e // sev | _s) e (v_ e // sev | ||||
_s) e (vi_ e | _s) e (vi_ e | ||||
sp) e (ķ e | |||||
st) e (nd e | st) e (nd e | ||||
str) e (s e | str) e (s e | ||||
t) e (c+ e | t) e (c+ e | ||||
t) e (km e | t) e (km e | ||||
t) ele ele | t) ele ele | ||||
_t) e (mp e | _t) e (mp e | ||||
t) ende (n ende | |||||
t) ermo eRmo | t) ermo eRmo | ||||
t) e (st e | t) e (st e | ||||
_t) e (v_ e // tev | _t) e (v_ e // tev | ||||
// specific words ------------------------------------------------------------------- // | // specific words ------------------------------------------------------------------- // | ||||
ap) ē (d+ e: | ap) ē (d+ e: | ||||
b) ē (g@ e: | b) ē (g@ e: | ||||
C) ē (ts_ e: | |||||
cilv) ē (L75 E: | cilv) ē (L75 E: | ||||
d) ē (ļ_+ e: | d) ē (ļ_+ e: | ||||
d) ē (vē e: | d) ē (vē e: | ||||
dv) ēse (L77 e:se | dv) ēse (L77 e:se | ||||
dz) ē (t e: | |||||
dz) ē (rL89 e: | |||||
dz) ē (t e: | |||||
ēcē e:tse: | ēcē e:tse: | ||||
ēdē e:de: | ēdē e:de: | ||||
ē (kL04_+ E: // ēka | ē (kL04_+ E: // ēka | ||||
m) ē (L77L05+ e: // mēle | m) ē (L77L05+ e: // mēle | ||||
m) ēne (L83 e:ne | m) ēne (L83 e:ne | ||||
m) ē (rķ e: | m) ē (rķ e: | ||||
m) ē (rL71 e: | |||||
_m) ē (s_ e: // mēs | _m) ē (s_ e: // mēs | ||||
_n) ē (_ e: | _n) ē (_ e: | ||||
ņ) ē (m++ e: | ņ) ē (m++ e: | ||||
_p) ē (c+ e: | _p) ē (c+ e: | ||||
p) ē (dL04_ E: | p) ē (dL04_ E: | ||||
_p) ē (rL01_ e: // pērs | _p) ē (rL01_ e: // pērs | ||||
p) ē (rn E: | |||||
p) ēte (r e:te // Pēter.. | p) ēte (r e:te // Pēter.. | ||||
piem) ē (r E: | piem) ē (r E: | ||||
sāp) ē (+ e: | sāp) ē (+ e: | ||||
.group k | .group k | ||||
k k | k k | ||||
_) kaut (_ k,aut // secondary stress as average between verb and particle | |||||
_) klāt (_ kl,a:t // ... and similarly | |||||
k (ļ k} // tiny pause between k and ļ | k (ļ k} // tiny pause between k and ļ | ||||
.group ķ | .group ķ | ||||
l) n (C n // but not after (lengthened) l | l) n (C n // but not after (lengthened) l | ||||
L59) n (@ :n | L59) n (@ :n | ||||
n (d N | n (d N | ||||
_) ne (kād n%e | |||||
_) ne (vienādo n'e | |||||
ne (vienl+ n'e // nevienlīdzība | ne (vienl+ n'e // nevienlīdzība | ||||
ne (vienmērīg n'e // nevienmērīgi | ne (vienmērīg n'e // nevienmērīgi | ||||
_) ne (vien n%e // stress on 2nd syllable | _) ne (vien n%e // stress on 2nd syllable | ||||
versm) o uo // versmo | versm) o uo // versmo | ||||
viegl) o (+ uo | viegl) o (+ uo | ||||
vizm) o uo | vizm) o uo | ||||
zil) o (L80 uo | |||||
zil) o (L80+ uo | |||||
žēl) o (L65+ uo | žēl) o (L65+ uo | ||||
žir) o o | žir) o o | ||||
g) ob (e ob | g) ob (e ob | ||||
k) ob ob | k) ob ob | ||||
l) ob (ē ob | l) ob (ē ob | ||||
_l) ob (ij ob | |||||
_l) ob (is ob | |||||
l) oboto (m oboto | l) oboto (m oboto | ||||
m) ob ob | m) ob ob | ||||
_) ob (amL01_ ob // Obama | _) ob (amL01_ ob // Obama | ||||
l) oj (L50 oj | l) oj (L50 oj | ||||
_ob) oj (L04_ oj // oboja | _ob) oj (L04_ oj // oboja | ||||
_) oj (ārL01_ oj // Ojārs | _) oj (ārL01_ oj // Ojārs | ||||
_pr) oj (ām_ uoj | |||||
pr) oj (L42 oj | pr) oj (L42 oj | ||||
_tr) oj (L04_ oj // Troja | _tr) oj (L04_ oj // Troja | ||||
z) oj (L01_+ oj // ..zojs | z) oj (L01_+ oj // ..zojs | ||||
b) om (zL02_ om // bomzis | b) om (zL02_ om // bomzis | ||||
br) om om | br) om om | ||||
c) om (_ om | c) om (_ om | ||||
_č) om (L01_ om | |||||
d) om (in om | d) om (in om | ||||
d) om (nL04_ om // domna | d) om (nL04_ om // domna | ||||
dr) om (L01_ o:m // ..droms | dr) om (L01_ o:m // ..droms | ||||
b) on (ē on | b) on (ē on | ||||
b) on (us on | b) on (us on | ||||
br) on on | br) on on | ||||
cens) on uon | |||||
daig) on uon | daig) on uon | ||||
dail) on uon | dail) on uon | ||||
dalt) on o:n | dalt) on o:n | ||||
on (ijL04_ o:n | on (ijL04_ o:n | ||||
on (ist o:n | on (ist o:n | ||||
on (ko oN | on (ko oN | ||||
_) on (kuL77L02_ oN // onkulis | |||||
on (kuL77 oN | |||||
on (L01_+ o:n // ..ons | on (L01_+ o:n // ..ons | ||||
on (l oN | on (l oN | ||||
onn onnn | onn onnn | ||||
z) oo oo: | z) oo oo: | ||||
.group op | .group op | ||||
L41Jsk) op (L01_ o:p // ...skops | |||||
ad) op op | ad) op op | ||||
att) op uop | |||||
cikl) op (L01_ o:p // ciklops | cikl) op (L01_ o:p // ciklops | ||||
d) op op | d) op op | ||||
eir) op (L04_ o:p | eir) op (L04_ o:p | ||||
k) op (ē_ op // ..kopē | k) op (ē_ op // ..kopē | ||||
k) op (ij op // ..kopij.. | k) op (ij op // ..kopij.. | ||||
k) op (j uop // ..kopj.. | k) op (j uop // ..kopj.. | ||||
k) op (L65+ uop // ..kuop.. | |||||
k) op (L04_+ uop // ..kopa | k) op (L04_+ uop // ..kopa | ||||
k) op (L65+ uop // ..kuop.. | |||||
k) opo uopuo | k) opo uopuo | ||||
k) op (pr uop // ..koppr.. | k) op (pr uop // ..koppr.. | ||||
k) op (ulā op | k) op (ulā op | ||||
k) op (ulē op | k) op (ulē op | ||||
kr) op (ļo uop | kr) op (ļo uop | ||||
L41Jsk) op (L01_ o:p // ...skops | |||||
l) op (L01_+ uop | l) op (L01_+ uop | ||||
m) op op | m) op op | ||||
net) op (_ uop | net) op (_ uop | ||||
_p) op (L05_ uop // Pope | _p) op (L05_ uop // Pope | ||||
p) op op | p) op op | ||||
pr) op op | pr) op op | ||||
sast) op uop | |||||
sk) op (ijL04_ o:p // ..skopija | sk) op (ijL04_ o:p // ..skopija | ||||
sk) op (is o:p | sk) op (is o:p | ||||
sk) op (L01_ o:p // ..skops | sk) op (L01_ o:p // ..skops | ||||
s) op (r op | s) op (r op | ||||
st) opo (s_ uopuo // ..stopos | st) opo (s_ uopuo // ..stopos | ||||
_str) op (L01_ uop // strops | _str) op (L01_ uop // strops | ||||
_t) op uo`p // top with short uo because of ambiguity | |||||
_t) op (āzL01_ op // topāzs | _t) op (āzL01_ op // topāzs | ||||
_t) op (b op // topbura | _t) op (b op // topbura | ||||
_t) op (inam op // topinambūrs | _t) op (inam op // topinambūrs | ||||
_t) opol opol | _t) opol opol | ||||
_t) opon opon | _t) opon opon | ||||
t) opot uopuot | t) opot uopuot | ||||
_t) op uo`p // top with short uo because of ambiguity | |||||
tr) op o:p | tr) op o:p | ||||
ut) op (i o:p | ut) op (i o:p | ||||
n) ov (āci ov | n) ov (āci ov | ||||
n) ov (elL05_ ov // novele | n) ov (elL05_ ov // novele | ||||
_n) ov (emb ov // novembris | _n) ov (emb ov // novembris | ||||
n) ov (ēr uov | |||||
n) ov (it ov | n) ov (it ov | ||||
n) ov (L04_ ov // nova | n) ov (L04_ ov // nova | ||||
n) ov (o ov | n) ov (o ov | ||||
_pl) ov (L01_ ov // plovs | _pl) ov (L01_ ov // plovs | ||||
pr) ov (an ov | pr) ov (an ov | ||||
pr) ov (in ov | pr) ov (in ov | ||||
pr) ov (L52z ov | |||||
pr) ov (L05_ uov // prove | pr) ov (L05_ uov // prove | ||||
pr) ov (L52z ov | |||||
pr) ovo ovo | pr) ovo ovo | ||||
r) ov ov | r) ov ov | ||||
sl) ov ov | sl) ov ov | ||||
y y // y is used instead of simple "i", to distinguish them in writing | y y // y is used instead of simple "i", to distinguish them in writing | ||||
y (A y_| | y (A y_| | ||||
y (_ y: // for international words | y (_ y: // for international words | ||||
y (outub y | |||||
.group z | .group z | ||||
z z | z z |
// numbers | |||||
_0 son // သူၼ် | |||||
_1 nEN3 // ၼိုင်ႈ | |||||
_2 sON // သွင် | |||||
_3 sa:m // သၢမ် | |||||
_4 si:2 // သီႇ | |||||
_5 ha:3 // ႁႃႈ | |||||
_6 hok4 // ႁူၵ်း | |||||
_7 tS;et4 // ၸဵတ်း | |||||
_8 pEt2 // ပႅတ်ႇ | |||||
_9 kaw3 // ၵဝ်ႈ | |||||
_1X sip4|| // သိပ်း | |||||
_11 sip4||?et4 // သိပ်းဢဵတ်း | |||||
_2X sa:w4|| // သၢဝ်း | |||||
_21 sa:w4||?et4 // သၢဝ်းဢဵတ်း | |||||
_3X sa:m||sip4|| // သၢမ်သိပ်း | |||||
_4X si:2||sip4|| // သီႇသိပ်း | |||||
_5X ha:3||sip4|| // ႁႃႈသိပ်း | |||||
_6X hok4||sip4|| // ႁူၵ်းသိပ်း | |||||
_7X tS;et4||sip4|| // ၸဵတ်းသိပ်း | |||||
_8X pEt2||sip4|| // ပႅတ်ႇသိပ်း | |||||
_9X kaw3||sip4|| // ၵဝ်ႈသိပ်း | |||||
// Shan (Tai Yay) pronunciation rules (Burmese script) | |||||
.group င // U+1004 | |||||
င N | |||||
.group တ // U+1010 | |||||
တ t | |||||
.group ထ // U+1011 | |||||
ထ t_h | |||||
.group ပ // U+1015 | |||||
ပ p | |||||
.group မ // U+1019 | |||||
မ m | |||||
.group ယ // U+101A | |||||
ယ j | |||||
.group ရ // U+101B | |||||
ရ R | |||||
.group လ // U+101C | |||||
လ l | |||||
.group ဝ // U+101D | |||||
ဝ w | |||||
.group သ // U+101E | |||||
သ s | |||||
.group ဢ // U+1022 | |||||
ဢ ? | |||||
.group ၵ // U+1075 | |||||
ၵ k | |||||
.group ၶ // U+1076 | |||||
ၶ k_h | |||||
.group ၷ // U+1077: rare, used for sounds in other languages | |||||
ၷ g | |||||
.group ၸ // U+1078 | |||||
ၸ tS; | |||||
.group ၹ // U+1079: rare, used for sounds in other languages | |||||
ၹ z | |||||
.group ၺ // U+107A | |||||
ၺ J | |||||
.group ၻ // U+107B: rare, used for sounds in other languages | |||||
ၻ d | |||||
.group ၼ // U+107C | |||||
ၼ n | |||||
.group ၽ // U+107D | |||||
ၽ p_h | |||||
.group ၾ // U+107E | |||||
_) ၾ p_h // Except for Eastern dialects, which use 'f'. | |||||
ၾ f | |||||
.group ႀ // U+107F: rare, used for sounds in other languages | |||||
ႀ T | |||||
.group ၿ // U+1080: rare, used for sounds in other languages | |||||
ၿ b | |||||
.group ႁ // U+1081 | |||||
ႁ h | |||||
// Vowels in groups | |||||
// All vowels below are suffixs | |||||
.group ႃ | |||||
ႃ a | |||||
ေ)ႃ O | |||||
.group ီ | |||||
ီ i | |||||
.group ိ | |||||
ိ i | |||||
.group ဵ | |||||
ဵ e | |||||
.group ႅ | |||||
_) ႅ (_ E | |||||
.group ူ | |||||
ူ u | |||||
.group ု | |||||
ု u | |||||
.group ေ | |||||
ေ ei // default rule without other characters | |||||
_) ေႃ O // in group with other characters if necessary | |||||
.group ႄ | |||||
ႄ E | |||||
.group ႆ | |||||
ႆ ai | |||||
.group ၢ | |||||
_) ၢ a: | |||||
.group ၢႆ // U+1062 | |||||
_) ၢႆ a:i | |||||
.group ွႆ | |||||
_) ွႆ oi | |||||
.group ႂၢႆ | |||||
_) ႂၢႆ Oi | |||||
.group ြ | |||||
ြ ra | |||||
.group ျ | |||||
_) ျ ja | |||||
.group ဝ် | |||||
_)ဝ် w | |||||
.group ႂ် | |||||
_) ႂ် @i | |||||
.group ၺ် | |||||
_)ၺ် Wi | |||||
.group မ် | |||||
_)မ် m | |||||
.group ၼ် | |||||
_)ၼ် n | |||||
.group င် | |||||
_)င် g // ipa = ɳ ( temporary word ) | |||||
// very short sounds | |||||
.group ပ် | |||||
_) ပ် p | |||||
.group တ် | |||||
_) တ် t | |||||
.group ၵ် | |||||
_) ၵ် k // temporary word |
| `=` | put the primary stress on the preceding syllable | | | `=` | put the primary stress on the preceding syllable | | ||||
| `_:` | short pause | | | `_:` | short pause | | ||||
| `_` | a shorter pause | | | `_` | a shorter pause | | ||||
| <code>|</code> | indicates a word boundary within a phoneme string | | |||||
| <code>||</code> | can be used to separate two adjacent characters, to prevent them from being considered as a multi-character phoneme mnemonic | | |||||
| <code>|</code> | use to separate two adjacent characters, to prevent them from being considered as a single multi-character phoneme | | |||||
| <code>||</code> | indicates a word boundary within a phonetic string | | |||||
It is not necessary to specify the stress of every syllable. Stress | It is not necessary to specify the stress of every syllable. Stress | ||||
markers are only needed in order to change the effect of the language's | markers are only needed in order to change the effect of the language's | ||||
## Character Substitution | ## Character Substitution | ||||
Character substitutions can be specified by using a `.replace` section | Character substitutions can be specified by using a `.replace` section | ||||
at the start of the `*_rules` file. Each line specified either one or | |||||
two alphabetic characters to be replaced by another one or two | |||||
alphabetic characters. This substitution is done to a word before word is searched | |||||
at the start of the `*_rules` file. In each line one character can be | |||||
replaced by one or two characters. (Source and target of replacement can consume | |||||
up to four bytes.) This substitution is done to a word _before_ word is searched | |||||
in `*_list` or `*_listx` file and translated using the spelling-to-phoneme rules. | in `*_list` or `*_listx` file and translated using the spelling-to-phoneme rules. | ||||
Only the lower-case version of the characters needs to be specified. e.g. | |||||
Only the lower-case version of the characters needs to be specified. e.g.: | |||||
.replace | .replace | ||||
ô ő // (Hungarian) allow the use of o-circumflex instead of o-double-accute | ô ő // (Hungarian) allow the use of o-circumflex instead of o-double-accute |
name Shan (Tai Yai) | |||||
language shn | |||||
maintainer ronaldaug <[email protected]> | |||||
status testing |
gender male | gender male | ||||
pitch 82 117 | pitch 82 117 | ||||
mbrola ar2 ar2_phtrans | |||||
mbrola ar2 ar1_phtrans |
volume 50 | volume 50 | ||||
0 B b 20 b b | |||||
0 b NULL 0 b | |||||
0 t NULL 0 t | |||||
0 T NULL 0 T | |||||
0 dZ NULL 0 Z | |||||
1 H a 40 X a | |||||
1 H u 40 X u | |||||
1 H i 40 X i | |||||
0 H NULL 0 X | |||||
0 X NULL 0 x | |||||
0 d d 20 d d | |||||
0 d NULL 0 d | |||||
0 D NULL 0 D | |||||
0 r/ NULL 0 r | |||||
0 r NULL 0 r | |||||
0 z NULL 0 z | |||||
0 s NULL 0 s | |||||
0 S NULL 0 S | |||||
1 s[ a 40 s. a. | |||||
1 s[ u 40 s. u. | |||||
1 s[ i 40 s. i. | |||||
0 s[ NULL 0 s. | |||||
1 dH dH 40 d. d. | |||||
1 dH a 40 d. a. | |||||
1 dH i 40 d. i. | |||||
1 dH u 40 d. u. | |||||
0 dH NULL 0 d. | |||||
0 t[ a 90 t. a. | |||||
0 t[ u 90 t. u. | |||||
0 t[ i 90 t. i. | |||||
0 t[ NULL 0 t. | |||||
1 Z a 20 z. a. | |||||
1 Z u 20 z. u. | |||||
1 Z i 20 z. i. | |||||
0 Z NULL 0 z. | |||||
0 A NULL 0 H | |||||
0 gH NULL 0 G | |||||
0 f NULL 0 f | |||||
0 q NULL 0 q | |||||
0 k NULL 0 k | |||||
0 l/ NULL 0 l | |||||
0 l NULL 0 l | |||||
0 m m 100 n m | |||||
0 m NULL 0 m | |||||
0 n NULL 0 n | |||||
0 h NULL 0 h | |||||
0 w NULL 0 w | |||||
0 j NULL 0 j | |||||
0 ? NULL 0 ? | |||||
0 p NULL 0 NULL | |||||
0 g NULL 0 NULL | |||||
0 a a 150 a a | |||||
0 u u 150 u u | |||||
0 i i 150 i i | |||||
0 a NULL 0 a | |||||
0 u NULL 0 u | |||||
0 i NULL 0 i | |||||
0 b b 20 b b | |||||
0 b NULL 0 b | |||||
0 t : 50 t t | |||||
0 t NULL 0 t | |||||
0 T NULL 0 T | |||||
0 dZ NULL 0 Z | |||||
1 H a 40 X a | |||||
1 H u 40 X u | |||||
1 H i 40 X i | |||||
0 H NULL 0 X | |||||
0 X NULL 0 x | |||||
0 d : 50 d d | |||||
0 d NULL 0 d | |||||
0 D NULL 0 D | |||||
0 r/ NULL 0 r | |||||
0 r NULL 0 r | |||||
0 z NULL 0 z | |||||
0 s : 50 s s | |||||
0 s NULL 0 s | |||||
0 S : 50 S S | |||||
0 S NULL 0 S | |||||
1 s[ a 40 s. a. | |||||
1 s[ u 40 s. u. | |||||
1 s[ i 40 s. i. | |||||
0 s[ NULL 0 s. | |||||
1 dH dH 40 d. d. | |||||
1 dH a 40 d. a. | |||||
1 dH i 40 d. i. | |||||
1 dH u 40 d. u. | |||||
0 dH NULL 0 d. | |||||
0 t[ a 90 t. a. | |||||
0 t[ u 90 t. u. | |||||
0 t[ i 90 t. i. | |||||
0 t[ NULL 0 t. | |||||
1 Z a 20 z. a. | |||||
1 Z u 20 z. u. | |||||
1 Z i 20 z. i. | |||||
0 Z NULL 0 z. | |||||
0 A NULL 0 H | |||||
0 gH NULL 0 G | |||||
0 f NULL 0 f | |||||
0 q NULL 0 q | |||||
0 k NULL 0 k | |||||
0 l/ NULL 0 l | |||||
0 l NULL 0 l | |||||
0 m m 100 n m | |||||
0 m NULL 0 m | |||||
0 n NULL 0 n | |||||
0 h NULL 0 h | |||||
0 w NULL 0 w | |||||
0 j : 50 j j | |||||
0 j NULL 0 j | |||||
0 ? NULL 0 ? | |||||
0 p NULL 0 NULL | |||||
0 g NULL 0 NULL | |||||
0 a : 50 a a | |||||
0 a NULL 0 a | |||||
0 u : 50 u u | |||||
0 u NULL 0 u | |||||
0 i : 50 i i | |||||
0 i NULL 0 i |
volume 50 | |||||
0 b b 20 b b | |||||
0 b NULL 0 b | |||||
0 t NULL 0 t | |||||
0 T NULL 0 T | |||||
0 dZ NULL 0 Z | |||||
1 H a 40 X a | |||||
1 H u 40 X u | |||||
1 H i 40 X i | |||||
0 H NULL 0 X | |||||
0 X NULL 0 x | |||||
0 d NULL 0 d | |||||
0 D NULL 0 D | |||||
0 r/ NULL 0 r | |||||
0 r NULL 0 r | |||||
0 z NULL 0 z | |||||
0 s NULL 0 s | |||||
0 S NULL 0 S | |||||
1 s[ a 40 s. a. | |||||
1 s[ u 40 s. u. | |||||
1 s[ i 40 s. i. | |||||
0 s[ NULL 0 s. | |||||
0 dH dH 30 d. d. | |||||
1 dH a 40 d. a. | |||||
1 dH i 40 d. i. | |||||
1 dH u 40 d. u. | |||||
0 dH NULL 0 d. | |||||
0 t[ a 90 t. a. | |||||
0 t[ u 90 t. u. | |||||
0 t[ i 90 t. i. | |||||
0 t[ NULL 0 t. | |||||
1 Z a 20 z. a. | |||||
1 Z u 20 z. u. | |||||
1 Z i 20 z. i. | |||||
0 Z NULL 0 z. | |||||
0 A NULL 0 H | |||||
0 gH NULL 0 G | |||||
0 f NULL 0 f | |||||
0 q NULL 0 q | |||||
0 k NULL 0 k | |||||
0 l/ NULL 0 l | |||||
0 l NULL 0 l | |||||
0 m m 100 n m | |||||
0 m NULL 0 m | |||||
0 n NULL 0 n | |||||
0 h NULL 0 h | |||||
0 w NULL 0 w | |||||
0 j NULL 0 j | |||||
0 ? NULL 0 ? | |||||
0 p NULL 0 NULL | |||||
0 g NULL 0 NULL | |||||
0 a a 150 a a | |||||
0 u u 150 u u | |||||
0 i i 150 i i | |||||
0 a NULL 0 a | |||||
0 u NULL 0 u | |||||
0 i NULL 0 i | |||||
//******************************************************************* | |||||
// TONES | |||||
//******************************************************************* | |||||
phoneme 1 // rising tone (contour: 24) | |||||
stress | |||||
Tone(20, 40, envelope/p_rise, NULL) | |||||
endphoneme | |||||
phoneme 2 // low tone (contour: 11) | |||||
stress | |||||
Tone(10, 10, envelope/i_risefall, NULL) | |||||
endphoneme | |||||
phoneme 3 // mid(-falling) tone (contour: 32) | |||||
stress | |||||
Tone(30, 20, envelope/p_fall, NULL) | |||||
endphoneme | |||||
phoneme 4 // high tone (contour: 55) | |||||
stress | |||||
Tone(50, 50, envelope/i_risefall, NULL) | |||||
endphoneme | |||||
phoneme 5 // falling (creaky) tone (contour: 42) | |||||
stress | |||||
Tone(40, 20, envelope/p_fall, NULL) | |||||
endphoneme | |||||
phoneme 6 // emphatic (contour: 343) | |||||
stress | |||||
Tone(30, 40, envelope/i_risefall, NULL) | |||||
endphoneme | |||||
//******************************************************************* | |||||
// CONSONANTS (PLOSIVES/STOPS) | |||||
//******************************************************************* | |||||
phoneme p // unaspirated | |||||
vls blb stp | |||||
lengthmod 2 | |||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 | |||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/p_) | |||||
ENDIF | |||||
WAV(ustop/p_unasp) | |||||
endphoneme | |||||
phoneme p_h // aspirated | |||||
vls blb stp | |||||
lengthmod 2 | |||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | |||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | |||||
WAV(ustop/p_asp) | |||||
endphoneme | |||||
phoneme t // unaspirated | |||||
vls alv stp | |||||
lengthmod 2 | |||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/t_) | |||||
ENDIF | |||||
WAV(ustop/t_unasp) | |||||
endphoneme | |||||
phoneme t_h // aspirated | |||||
vls alv stp | |||||
lengthmod 2 | |||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||||
WAV(ustop/t) // TODO: This should be aspirated. | |||||
endphoneme | |||||
phoneme k // unaspirated | |||||
vls vel stp | |||||
lengthmod 2 | |||||
Vowelin f1=0 f2=2300 200 300 f3=-200 80 | |||||
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 | |||||
IF KlattSynth THEN | |||||
Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20 | |||||
ENDIF | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/k_) | |||||
ENDIF | |||||
WAV(ustop/k_unasp) | |||||
endphoneme | |||||
phoneme k_h | |||||
vls vel stp | |||||
lengthmod 2 | |||||
Vowelin f1=0 f2=2300 200 300 f3=-150 80 | |||||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 | |||||
WAV(ustop/k_asp) | |||||
endphoneme | |||||
//******************************************************************* | |||||
// VOWELS | |||||
//******************************************************************* | |||||
phoneme i | |||||
vwl starttype #i endtype #i | |||||
length 200 | |||||
FMT(vowel/i) | |||||
endphoneme | |||||
phoneme i. | |||||
vwl starttype #i endtype #i | |||||
length 200 | |||||
ipa ɨ | |||||
FMT(vowel/i#_6) | |||||
endphoneme | |||||
phoneme W | |||||
vwl starttype #a endtype #u | |||||
length 200 | |||||
ipa ɯ | |||||
FMT(vowel/8_2) | |||||
endphoneme | |||||
phoneme u | |||||
vwl starttype #u endtype #u | |||||
length 200 | |||||
FMT(vowel/u_bck) | |||||
endphoneme | |||||
phoneme e | |||||
vwl starttype #e endtype #e | |||||
length 200 | |||||
FMT(vowel/e_2) | |||||
endphoneme | |||||
phoneme @ | |||||
vwl starttype #@ endtype #@ | |||||
length 200 | |||||
ipa ə | |||||
FMT(vowel/3_2) | |||||
endphoneme | |||||
phoneme o | |||||
vwl starttype #o endtype #o | |||||
length 220 | |||||
FMT(vowel/o) | |||||
endphoneme | |||||
phoneme E | |||||
vwl starttype #e endtype #e | |||||
length 200 | |||||
ipa ɛ | |||||
FMT(vowel/ee_2) | |||||
endphoneme | |||||
phoneme a | |||||
vwl starttype #a endtype #a | |||||
length 200 | |||||
FMT(vowel/a) | |||||
endphoneme | |||||
phoneme a: | |||||
vwl starttype #a endtype #a | |||||
length 250 | |||||
ipa aː | |||||
FMT(vowel/a) | |||||
endphoneme | |||||
phoneme O | |||||
vwl starttype #o endtype #o | |||||
length 260 | |||||
ipa ɔ | |||||
FMT(vwl_it/o_open) | |||||
endphoneme | |||||
//******************************************************************* | |||||
// DIPHTHONGS | |||||
//******************************************************************* | |||||
phoneme iu | |||||
vwl starttype #i endtype #u | |||||
length 200 | |||||
FMT(vdiph2/iu) | |||||
endphoneme | |||||
phoneme eu | |||||
vwl starttype #e endtype #u | |||||
length 200 | |||||
FMT(vdiph/eu) | |||||
endphoneme | |||||
phoneme Eu | |||||
vwl starttype #e endtype #u | |||||
length 200 | |||||
ipa ɛu | |||||
FMT(vdiph/eeu) | |||||
endphoneme | |||||
phoneme au | |||||
vwl starttype #a endtype #u | |||||
length 200 | |||||
FMT(vdiph/au_2) | |||||
endphoneme | |||||
phoneme a:u | |||||
vwl starttype #a endtype #u | |||||
length 250 | |||||
ipa aːu | |||||
FMT(vdiph/au_2) | |||||
endphoneme | |||||
phoneme Wi | |||||
vwl starttype #i endtype #i | |||||
length 200 | |||||
ipa ɯi | |||||
FMT(vdiph/ui_3) | |||||
endphoneme | |||||
phoneme ui | |||||
vwl starttype #u endtype #i | |||||
length 200 | |||||
FMT(vdiph/ui) | |||||
endphoneme | |||||
phoneme @i | |||||
vwl starttype #@ endtype #i | |||||
length 200 | |||||
ipa əi // ႂ် | |||||
FMT(vdiph/@i) | |||||
endphoneme | |||||
phoneme oi | |||||
vwl starttype #o endtype #i | |||||
length 200 | |||||
FMT(vdiph/ooi) | |||||
endphoneme | |||||
phoneme ai | |||||
vwl starttype #a endtype #i | |||||
length 200 | |||||
FMT(vdiph/ai) | |||||
endphoneme | |||||
phoneme a:i | |||||
vwl starttype #a endtype #i | |||||
length 250 | |||||
ipa aːi | |||||
FMT(vdiph/ai) | |||||
endphoneme | |||||
phoneme Oi | |||||
vwl starttype #o endtype #i | |||||
length 200 | |||||
ipa ɔi | |||||
FMT(vdiph/ooi_3) | |||||
endphoneme | |||||
phoneme aW | |||||
vwl starttype #a endtype #u | |||||
length 200 | |||||
ipa aɯ | |||||
FMT(vdiph/aau_4) | |||||
endphoneme | |||||
phonemetable mi base1 | phonemetable mi base1 | ||||
include ph_maori | include ph_maori | ||||
phonemetable shn base1 | |||||
include ph_shan |
tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_SINGLE_STRESS; | tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_SINGLE_STRESS; | ||||
break; | break; | ||||
case L3('s', 'h', 'n'): | |||||
tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() | |||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||||
tr->langopts.numbers = 1; | |||||
break; | |||||
case L3('c', 'm', 'n'): // no break, just go to 'zh' case | case L3('c', 'm', 'n'): // no break, just go to 'zh' case | ||||
case L3('z', 'h', 'y'): // just go to 'zh' case | case L3('z', 'h', 'y'): // just go to 'zh' case | ||||
case L('z','h'): | case L('z','h'): |
/* Read a unicode characater from a UTF8 string | /* Read a unicode characater from a UTF8 string | ||||
* Returns the number of UTF8 bytes used. | * Returns the number of UTF8 bytes used. | ||||
* buf: position of buffer is moved, if character is read | * buf: position of buffer is moved, if character is read | ||||
* c: holds integer representation of multibyte character by | |||||
* c: holds UTF-16 representation of multibyte character by | |||||
* skipping UTF-8 header bits of bytes in following way: | * skipping UTF-8 header bits of bytes in following way: | ||||
* 2-byte character "ā": | * 2-byte character "ā": | ||||
* hex binary | * hex binary | ||||
* 1010 011001 000101 | * 1010 011001 000101 | ||||
* | + +--.\ \ | | | * | + +--.\ \ | | | ||||
* V `--. \`. `.| | | * V `--. \`. `.| | | ||||
* A645 0001001101000101 | |||||
* A645 1010011001000101 | |||||
* 4-byte character "𠜎": | * 4-byte character "𠜎": | ||||
* f0a09c8e 11110000101000001001110010001110 | * f0a09c8e 11110000101000001001110010001110 | ||||
* V 000 100000 011100 001110 | * V 000 100000 011100 001110 | ||||
int utf8_out(unsigned int c, char *buf) | int utf8_out(unsigned int c, char *buf) | ||||
{ | { | ||||
// write a unicode character into a buffer as utf8 | |||||
// write a UTF-16 character into a buffer as UTF-8 | |||||
// returns the number of bytes written | // returns the number of bytes written | ||||
int n_bytes; | int n_bytes; | ||||
return 1; | return 1; | ||||
} | } | ||||
// handle .replace rule in xx_rules file | |||||
static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in, int *insert, int *wordflags) | static int SubstituteChar(Translator *tr, unsigned int c, unsigned int next_in, int *insert, int *wordflags) | ||||
{ | { | ||||
int ix; | int ix; | ||||
new_c = ucd_toupper(new_c); | new_c = ucd_toupper(new_c); | ||||
*wordflags |= FLAG_CHAR_REPLACED; | *wordflags |= FLAG_CHAR_REPLACED; | ||||
if (option_phonemes & espeakPHONEMES_TRACE) { | |||||
char msg[21] = {'R','e','p','l','a','c','e',':',' '}; | |||||
char *index = &msg; | |||||
index +=9; | |||||
index += utf8_out(c, index); | |||||
*index++ = ' '; | |||||
*index++ = '>'; | |||||
*index++ = ' '; | |||||
index += utf8_out(new_c, index); | |||||
index += utf8_out(c2, index); | |||||
*index = 0; | |||||
fprintf(f_trans, "%s\n", msg); | |||||
} | |||||
return new_c; | return new_c; | ||||
} | } | ||||
} | } | ||||
break; | break; | ||||
} | } | ||||
// handle .replace rule in xx_rules file | |||||
return SubstituteChar(tr, c, next_in, insert, wordflags); | return SubstituteChar(tr, c, next_in, insert, wordflags); | ||||
} | } | ||||
c = ' '; | c = ' '; | ||||
word_flags |= FLAG_COMMA_AFTER; | word_flags |= FLAG_COMMA_AFTER; | ||||
} | } | ||||
c = TranslateChar(tr, &source[source_index], prev_in, c, next_in, &char_inserted, &word_flags); // optional language specific function | |||||
// language specific character translations | |||||
c = TranslateChar(tr, &source[source_index], prev_in, c, next_in, &char_inserted, &word_flags); | |||||
if (c == 8) | if (c == 8) | ||||
continue; // ignore this character | continue; // ignore this character | ||||
test_lang lv ebd5378940b27e39ac35cda90e027ee0fa625fde "ma na n^a Na pa ba ta da ca Ja ka ga tsa dza Dz\`a tSa dZa DZ\`a fa va sa za Sa Za xa ha ja la l^a Ra ra _:_ mi my mu mE me mo ma mi: my: mu: mE: me: mo: ma: mai mau mei mie miu mui muo muo\` moi" | test_lang lv ebd5378940b27e39ac35cda90e027ee0fa625fde "ma na n^a Na pa ba ta da ca Ja ka ga tsa dza Dz\`a tSa dZa DZ\`a fa va sa za Sa Za xa ha ja la l^a Ra ra _:_ mi my mu mE me mo ma mi: my: mu: mE: me: mo: ma: mai mau mei mie miu mui muo muo\` moi" | ||||
test_lang mi b6e622de46c33181cdfea351b907f932da9a0a1a "ma na Na pa ta ka fa ha ra wa _:_ ma ma: me me: mi mi: mo mo: mu mu:" | test_lang mi b6e622de46c33181cdfea351b907f932da9a0a1a "ma na Na pa ta ka fa ha ra wa _:_ ma ma: me me: mi mi: mo mo: mu mu:" | ||||
test_lang mk 072d0a74acf54bea528e7dde427eb04808d38364 "ma na n^a Na pa ta xa k^a ka ba da Ja ga tsa tSa tS;a dza dZa dZ;a fa sa Sa xa va za Za l^a la ja Ra @-*a ra _:_ ma me mi mo mu mA mE ma: me: mi: mo: mu: moU" | test_lang mk 072d0a74acf54bea528e7dde427eb04808d38364 "ma na n^a Na pa ta xa k^a ka ba da Ja ga tsa tSa tS;a dza dZa dZ;a fa sa Sa xa va za Za l^a la ja Ra @-*a ra _:_ ma me mi mo mu mA mE ma: me: mi: mo: mu: moU" | ||||
test_lang shn e568aca66c2f58fdaf5dda8a67f4d21f05710234 "ma na Ja Na pa p_ha ba ta t_ha da ka k_ha ga ?a fa sa za Ta ha tS;a Ra ja wa la _:_ mi mI mW mu me m@ mo mE ma ma: mO miu meu mEu mau ma:u mWi mui m@i moi mai ma:i mOi maW _:_ ma1 ma2 ma3 ma4 ma5 ma6" |