lang=id: Initial draft git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@125 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -9,10 +9,10 @@ eI e~ I i iu O O: o@ | |||
OI oI o~ u uI W y Y@ | |||
Yy | |||
- : ; b c d dZ f | |||
g h j k l m n N | |||
p r r- s S t tS v | |||
w x2 z Z | |||
- : ; ? b c d dZ | |||
f g h j k l m n | |||
N p r r- s S t tS | |||
v w x2 z Z | |||
Dictionary cs_dict | |||
@@ -311,13 +311,12 @@ t T tl# v x z | |||
Dictionary la_dict | |||
@- a a: aI aU E e: EU | |||
I i: O o: OI U u: y | |||
y: | |||
@- a a: E e: I i: O | |||
o: U u: | |||
* : ; <h> b d f g | |||
h j k l m n N p | |||
r R s t w z | |||
* : ; b d f g h | |||
k l m n N p r R | |||
s t w z | |||
Dictionary grc_dict | |||
@@ -377,3 +376,14 @@ y | |||
j k l L l^ m n N | |||
n^ p r R s S t tS | |||
ts tS; v x z Z | |||
Dictionary id_dict | |||
@ a aI aU e E i o | |||
O u | |||
* ? b d dZ f g h | |||
j k l m n N n^ p | |||
q r R s S t tS v | |||
w x z |
@@ -265,9 +265,10 @@ ii II // word, not numeric | |||
vi wI // word, not numeric | |||
i 'u:nUs $capital | |||
ii d'UO $capital | |||
vi s,Eks $capital | |||
ii d'UO $allcaps | |||
vi s,Eks $allcaps | |||
// eSpeak translates Roman numbers to Arabic numerals | |||
_0 n'Ulla | |||
_1 'u:nUs | |||
_2 d'UO |
@@ -14,6 +14,14 @@ | |||
// since this character is incompatible with older unicode versions. | |||
.replace | |||
â ā | |||
ê ē | |||
î ī | |||
ô ō | |||
û ū | |||
ŷ yy | |||
.L01 ae au eu oe a e i o u yy y ā ē ī ō ū ë ü é æ | |||
.L02 ng qu pr tr cr chr br dr gr pl cl bl gl ph th ch |
@@ -45,8 +45,8 @@ _7 S'u-: | |||
_8 'Ot:@2 | |||
_9 n'i: | |||
_10 t'i: | |||
_11 'Elle:v@2 | |||
_12 t'u:lv | |||
_11 'Elv@2 | |||
_12 t'Olv | |||
_13 t@-*'Et:@n | |||
_14 fj'Urt@n | |||
_15 f'Emt@n | |||
@@ -62,8 +62,8 @@ _6X s'Eksti: | |||
_7X s'yt:i: | |||
_8X 'Ot:i: | |||
_9X n'It:i: | |||
_0C h'u-:nd@-*e:d@2 | |||
_1C 'Et||h'u-:nd@-*e:d@2 | |||
_0C h'u-nd@-*@2 | |||
_1C 'Et||h'u-nd@-*@2 | |||
_0M1 t'u-:s@n | |||
_1M1 'Et||t'u-:s@n | |||
_0M2 m'Illi:;,u:n@r | |||
@@ -257,4 +257,5 @@ i i: $atend | |||
der dE:r | |||
her hE:r | |||
kom kOm | |||
noe nu:@2 // ?? | |||
system syst'e:m |
@@ -1,4 +1,4 @@ | |||
44 phoneme tables | |||
45 phoneme tables | |||
new total | |||
base 97 97 | |||
base2 24 116 | |||
@@ -44,6 +44,7 @@ | |||
zh 61 144 | |||
sw 14 106 | |||
th 50 140 | |||
id 14 118 | |||
Data file Used by | |||
b/b [b] base | |||
@@ -648,6 +649,7 @@ ustop/k_unasp [k] base | |||
[k] zhy | |||
ustop/k_unasp_ [k] zh | |||
[k] th | |||
ustop/null [?] base | |||
ustop/p [p] base | |||
[p] fr | |||
[ph] hi | |||
@@ -840,6 +842,7 @@ vdiph/aau_2 [aU] en_wi | |||
vdiph/aau_3 [aU] hi | |||
vdiph/aau_4 [aU] vi | |||
vdiph/ae [E:] fr_ca | |||
[aI] la | |||
[ai] zh | |||
vdiph/ae_2 [aI] en_n | |||
vdiph/ai [aI] base2 | |||
@@ -852,12 +855,12 @@ vdiph/ai [aI] base2 | |||
[a:I] vi | |||
[aI] th | |||
[a:I] th | |||
[aI] id | |||
vdiph/ai_2 [aI] cy | |||
[aY] cy | |||
vdiph/ai_3 [aI] no | |||
vdiph/ai_4 [aI] af | |||
vdiph/ai_5 [aI] de | |||
[aI] la | |||
vdiph/ai_6 [aI] en_rp | |||
vdiph/ai_7 [aI] en_sc | |||
[aI2] en_sc | |||
@@ -878,6 +881,7 @@ vdiph/au_4 [aU] base2 | |||
[aU] sk | |||
[aU] it | |||
[aU] is | |||
[aU] id | |||
vdiph/ee-e [E:] hi | |||
vdiph/eei [EI] base2 | |||
[eI] en | |||
@@ -886,6 +890,7 @@ vdiph/eei [EI] base2 | |||
[EI] vi | |||
vdiph/eei_2 [eI] eo | |||
[ei] fi | |||
[eI] id | |||
vdiph/eei_3 [eI] en_rp | |||
[eI] sk | |||
vdiph/eeu [EU] pt | |||
@@ -963,6 +968,7 @@ vdiph/@u [u:] en_wm | |||
vdiph/@u_2 [oU] en_rp | |||
vdiph/@u_3 [@U] ro | |||
vdiph/@u_en [oU] en | |||
[@U] id | |||
vdiph/ui [uI] base2 | |||
[uI] en | |||
[uI] eo | |||
@@ -1155,10 +1161,10 @@ vowel/a [a] en_n | |||
[A] hr | |||
[a] hr | |||
[a] it | |||
[a:] la | |||
[a] zh | |||
[a] th | |||
[a:] th | |||
[a] id | |||
vowel/a# [a/] base2 | |||
[a2] en_sc | |||
[a2] en_wi | |||
@@ -1171,7 +1177,6 @@ vowel/a_2 [a] base2 | |||
[A@] en_wi | |||
[aa] en_wi | |||
[a] eo | |||
[a] la | |||
[A] pt | |||
[a] pt_pt | |||
[a] ro | |||
@@ -1187,6 +1192,7 @@ vowel/a_3 [a] en_sc | |||
[aa] en_sc | |||
[a] fr | |||
[a:] cs | |||
[a:] la | |||
[a] is | |||
vowel/a#_3 [a2] en | |||
[a2] en_n | |||
@@ -1203,6 +1209,7 @@ vowel/a#_3 [a2] en | |||
vowel/a_4 [a/] el | |||
[a] vi | |||
vowel/a_5 [a/] it | |||
[a] la | |||
[a] sv | |||
[a] sw | |||
vowel/aa [a] fi | |||
@@ -1256,6 +1263,7 @@ vowel/e [e] base2 | |||
[e] vi | |||
[e] th | |||
[e:] th | |||
[e] id | |||
vowel/e# [I] en_sc | |||
[I2] en_sc | |||
vowel/e_2 [eI] en_sc | |||
@@ -1308,6 +1316,8 @@ vowel/e_mid [E] en_rp | |||
[E] pt_pt | |||
[E] no | |||
[E] is | |||
[E] id | |||
[E2] id | |||
vowel/e_mid2 [E] af | |||
[E] de | |||
[E2] de | |||
@@ -1373,6 +1383,7 @@ vowel/i#_5 [y] pt_pt | |||
vowel/i_6 [i:] en_us | |||
[i] ta | |||
[i] hr | |||
[i] id | |||
vowel/i_en [i:] en | |||
[i] vi | |||
vowel/i_fnt [i:] en_wi | |||
@@ -1391,8 +1402,7 @@ vowel/ii [I] en_rp | |||
vowel/ii# [Y] cy | |||
[y] pl | |||
[Y] ru | |||
vowel/ii_2 [I] la | |||
[i] zh | |||
vowel/ii_2 [i] zh | |||
vowel/ii_3 [I] cy | |||
[I] fi | |||
[I] hi | |||
@@ -1407,6 +1417,7 @@ vowel/ii_4 [I] en | |||
[I2] en_n | |||
vowel/ii_5 [I] en_wi | |||
[I2] en_wi | |||
[I] la | |||
vowel/ii_6 [I] en_wm | |||
[I2] en_wm | |||
[I] sr | |||
@@ -1421,6 +1432,7 @@ vowel/@_low [3] en_rp | |||
[@2] hi | |||
[@] ro | |||
[@2] no | |||
[@] id | |||
vowel/o [o] base2 | |||
[o:] en | |||
[oU] en_wi | |||
@@ -1430,7 +1442,7 @@ vowel/o [o] base2 | |||
[o:] ta | |||
[o] it | |||
[o/] it | |||
[o:] la | |||
[O] la | |||
[o] pt_pt | |||
[o] grc | |||
[o:] sv | |||
@@ -1438,10 +1450,12 @@ vowel/o [o] base2 | |||
[u] zh | |||
[o] th | |||
[o:] th | |||
[o] id | |||
vowel/o- [o-] zh | |||
vowel/o_2 [o:] cy | |||
[o:] hi | |||
[o:] hu | |||
[o:] la | |||
[o:] no | |||
vowel/o-_2 [V] en_n | |||
[V] en_wm | |||
@@ -1465,7 +1479,6 @@ vowel/oo [O:] en_sc | |||
[O@] en_wi | |||
[O] de | |||
[o] eo | |||
[O] la | |||
[o] es | |||
[o] el | |||
[O] sv | |||
@@ -1473,6 +1486,7 @@ vowel/oo [O:] en_sc | |||
[o] zhy | |||
[O] th | |||
[O:] th | |||
[O] id | |||
vowel/oo_1 [O:] en_n | |||
[O:] en_rp | |||
[O@] en_rp | |||
@@ -1521,10 +1535,11 @@ vowel/u [u:] en_wi | |||
[u] eo | |||
[U] fr | |||
[u:] cs | |||
[u:] la | |||
[U] la | |||
[u] zh | |||
[u] th | |||
[u:] th | |||
[u] id | |||
vowel/u# [u-] en | |||
[u:] en_sc | |||
vowel/u_2 [u1] fi | |||
@@ -1561,12 +1576,12 @@ vowel/u_bck [u] base2 | |||
[u:] no | |||
[u] is | |||
[u] zhy | |||
vowel/u_bck2 [u:] la | |||
vowel/u_fnt [u:] en_rp | |||
vowel/uu [U] en | |||
[U] en_wm | |||
vowel/uu_2 [U] base2 | |||
[U] de | |||
[U] la | |||
vowel/uu_3 [u] af | |||
vowel/uu_4 [U] fi | |||
[U] sv | |||
@@ -1594,6 +1609,7 @@ vowel/y [y:] en | |||
[y] fi | |||
[y:] hu | |||
[y] nl | |||
[y] la | |||
[yu] zhy | |||
[y] zh | |||
vowel/y# [Y:] en | |||
@@ -1609,6 +1625,7 @@ vowel/y# [Y:] en | |||
vowel/y## [y#] is | |||
vowel/y_2 [y] fr | |||
[y"] fr | |||
[y:] la | |||
vowel/y#_2 [Y] hu | |||
[Y:] sv | |||
vowel/y_3 [y] af | |||
@@ -1620,8 +1637,6 @@ vowel/yy [y"] fr_ca | |||
vowel/yy_3 [y] sv | |||
vowel/yy_4 [y] de | |||
[y] hu | |||
[y] la | |||
[y:] la | |||
[y] grc | |||
[y] is | |||
vwl_af/@ [@] af |
@@ -7,8 +7,8 @@ | |||
phoneme a | |||
vowel starttype (a) endtype (a) | |||
length 180 | |||
formants vowel/a_2 | |||
length 170 | |||
formants vowel/a_5 | |||
endphoneme | |||
@@ -22,42 +22,42 @@ endphoneme | |||
phoneme I | |||
vowel starttype (i) endtype (i) | |||
length 150 | |||
formants vowel/ii_2 | |||
formants vowel/ii_5 | |||
linkout ; | |||
endphoneme | |||
phoneme O | |||
vowel starttype (o) endtype (o) | |||
length 170 | |||
formants vowel/oo | |||
length 160 | |||
formants vowel/o | |||
endphoneme | |||
phoneme U | |||
vowel starttype (u) endtype (u) | |||
length 160 | |||
formants vowel/uu_2 | |||
formants vowel/u | |||
endphoneme | |||
phoneme a: | |||
vowel starttype (a) endtype (a) | |||
length 250 | |||
formants vowel/a | |||
length 270 | |||
formants vowel/a_3 | |||
endphoneme | |||
phoneme e: | |||
vowel starttype (e) endtype (e) | |||
length 240 | |||
length 260 | |||
formants vowel/e | |||
endphoneme | |||
phoneme i: | |||
vowel starttype (i) endtype (i) | |||
length 220 | |||
length 240 | |||
formants vowel/i_2 | |||
after w w/wi2 | |||
endphoneme | |||
@@ -65,28 +65,28 @@ endphoneme | |||
phoneme o: | |||
vowel starttype (o) endtype (o) | |||
length 240 | |||
formants vowel/o | |||
length 250 | |||
formants vowel/o_2 | |||
endphoneme | |||
phoneme u: | |||
vowel starttype (u) endtype (u) | |||
length 230 | |||
formants vowel/u | |||
length 250 | |||
formants vowel/u_bck2 | |||
endphoneme | |||
phoneme y | |||
vowel starttype (u) endtype (u) | |||
vowel starttype (i) endtype (i) | |||
length 150 | |||
formants vowel/yy_4 | |||
formants vowel/y | |||
endphoneme | |||
phoneme y: | |||
vowel starttype (u) endtype (u) | |||
length 240 | |||
formants vowel/yy_4 | |||
vowel starttype (i) endtype (i) | |||
length 250 | |||
formants vowel/y_2 | |||
endphoneme | |||
@@ -100,28 +100,28 @@ endphoneme | |||
phoneme aI | |||
vowel starttype (a) endtype (i) | |||
length 250 | |||
formants vdiph/ai_5 | |||
length 270 | |||
formants vdiph/ae | |||
endphoneme | |||
phoneme eI | |||
vowel starttype (e) endtype (i) | |||
length 250 | |||
length 270 | |||
formants vdiph/ei | |||
endphoneme | |||
phoneme EU | |||
vowel starttype (e) endtype (u) | |||
length 260 | |||
length 270 | |||
formants vdiph/eeu_2 | |||
endphoneme | |||
phoneme OI | |||
vowel starttype (o) endtype (i) | |||
length 230 | |||
length 250 | |||
formants vdiph/oi | |||
endphoneme | |||
@@ -142,14 +142,11 @@ phoneme _X1 // a language specific action | |||
endphoneme | |||
phoneme ? // glottal stop | |||
pause | |||
vls glt stop | |||
vowelin glstop | |||
vowelout glstop | |||
formants NULL | |||
starttype _ endtype _ | |||
length 45 | |||
lengthmod 5 // ?? | |||
beforenotvowel _ // change to pause_short | |||
wave ustop/null | |||
lengthmod 2 // ?? | |||
nolink | |||
endphoneme | |||
@@ -1268,3 +1265,6 @@ include ph_swahili | |||
phonemetable th base | |||
include ph_thai | |||
phonemetable id base2 | |||
include ph_indonesian | |||
@@ -56,12 +56,13 @@ int ignore_text=0; // set during <sub> ... </sub> to ignore text which has be | |||
int clear_skipping_text = 0; // next clause should clear the skipping_text flag | |||
int count_characters = 0; | |||
int sayas_mode; | |||
int ssml_ignore_l_angle = 0; | |||
static const char *punct_stop = ".:!?"; // pitch fall if followed by space | |||
static const char *punct_close = ")]}>;'\""; // always pitch fall unless followed by alnum | |||
// alter tone for announce punctuation or capitals | |||
static const char *tone_punct_on = "\001+50R\001+15T"; // add reverberation, reduce low frequencies | |||
static const char *tone_punct_on = "\001+50R\001+10T"; // add reverberation, reduce low frequencies | |||
static const char *tone_punct_off = "\001R\001T"; | |||
// punctuations symbols that can end a clause | |||
@@ -719,6 +720,11 @@ int Translator::AnnouncePunctuation(int c1, int c2, char *buf, int bufix) | |||
{ | |||
// end the clause now and pick up the punctuation next time | |||
UngetC(c2); | |||
if(option_ssml) | |||
{ | |||
if(c1 == '<') | |||
ssml_ignore_l_angle = c1; // this was < which was converted to <, don't pick it up again as < | |||
} | |||
ungot_char2 = c1; | |||
buf[bufix] = ' '; | |||
buf[bufix+1] = 0; | |||
@@ -1811,7 +1817,7 @@ f_input = f_in; // for GetC etc | |||
} | |||
} | |||
else | |||
if(c1 == '<') | |||
if((c1 == '<') && !ssml_ignore_l_angle) | |||
{ | |||
// SSML Tag | |||
n_xml_buf = 0; | |||
@@ -1856,6 +1862,7 @@ f_input = f_in; // for GetC etc | |||
continue; | |||
} | |||
} | |||
ssml_ignore_l_angle=0; | |||
if(ignore_text) | |||
continue; |
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.30.12 14.Jan.08"; | |||
const char *version_string = "1.30.14 15.Jan.08"; | |||
const int version_phdata = 0x013010; | |||
int option_device_number = -1; |
@@ -365,6 +365,18 @@ SetLengthMods(tr,3); // all equal | |||
} | |||
break; | |||
case L('i','d'): // Indonesian | |||
{ | |||
static const short stress_lengths_id[8] = {160, 200, 180, 180, 0, 0, 220, 240}; | |||
static const unsigned char stress_amps_id[8] = {16,18, 18,18, 20,22, 22,21 }; | |||
tr = new Translator(); | |||
SetupTranslator(tr,stress_lengths_id,stress_amps_id); | |||
tr->langopts.stress_rule = 2; | |||
tr->langopts.numbers = 0x1809 + NUM_ROMAN; | |||
tr->langopts.stress_flags = 0x6 | 0x10; | |||
} | |||
break; | |||
case L('i','s'): // Icelandic | |||
{ | |||
static const unsigned char stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 }; | |||
@@ -475,7 +487,7 @@ SetLengthMods(tr,3); // all equal | |||
case L('n','o'): // Norwegian | |||
{ | |||
static const unsigned char stress_amps_no[] = {16,16, 20,20, 20,24, 24,22 }; | |||
static const short stress_lengths_no[8] = {160,140, 200,190, 0,0, 220,240}; | |||
static const short stress_lengths_no[8] = {160,140, 200,190, 0,0, 220,210}; | |||
tr = new Translator(); | |||
SetupTranslator(tr,stress_lengths_no,stress_amps_no); | |||