lang=id: Initial draft git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@125 d46cf337-b52f-0410-862d-fd96e6ae7743master
OI oI o~ u uI W y Y@ | OI oI o~ u uI W y Y@ | ||||
Yy | 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 | Dictionary cs_dict | ||||
Dictionary la_dict | 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 | Dictionary grc_dict | ||||
j k l L l^ m n N | j k l L l^ m n N | ||||
n^ p r R s S t tS | n^ p r R s S t tS | ||||
ts tS; v x z Z | 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 |
vi wI // word, not numeric | vi wI // word, not numeric | ||||
i 'u:nUs $capital | 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 | _0 n'Ulla | ||||
_1 'u:nUs | _1 'u:nUs | ||||
_2 d'UO | _2 d'UO |
// since this character is incompatible with older unicode versions. | // since this character is incompatible with older unicode versions. | ||||
.replace | |||||
â ā | |||||
ê ē | |||||
î ī | |||||
ô ō | |||||
û ū | |||||
ŷ yy | |||||
.L01 ae au eu oe a e i o u yy y ā ē ī ō ū ë ü é æ | .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 | .L02 ng qu pr tr cr chr br dr gr pl cl bl gl ph th ch |
_8 'Ot:@2 | _8 'Ot:@2 | ||||
_9 n'i: | _9 n'i: | ||||
_10 t'i: | _10 t'i: | ||||
_11 'Elle:v@2 | |||||
_12 t'u:lv | |||||
_11 'Elv@2 | |||||
_12 t'Olv | |||||
_13 t@-*'Et:@n | _13 t@-*'Et:@n | ||||
_14 fj'Urt@n | _14 fj'Urt@n | ||||
_15 f'Emt@n | _15 f'Emt@n | ||||
_7X s'yt:i: | _7X s'yt:i: | ||||
_8X 'Ot:i: | _8X 'Ot:i: | ||||
_9X n'It: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 | _0M1 t'u-:s@n | ||||
_1M1 'Et||t'u-:s@n | _1M1 'Et||t'u-:s@n | ||||
_0M2 m'Illi:;,u:n@r | _0M2 m'Illi:;,u:n@r | ||||
der dE:r | der dE:r | ||||
her hE:r | her hE:r | ||||
kom kOm | kom kOm | ||||
noe nu:@2 // ?? | |||||
system syst'e:m | system syst'e:m |
44 phoneme tables | |||||
45 phoneme tables | |||||
new total | new total | ||||
base 97 97 | base 97 97 | ||||
base2 24 116 | base2 24 116 | ||||
zh 61 144 | zh 61 144 | ||||
sw 14 106 | sw 14 106 | ||||
th 50 140 | th 50 140 | ||||
id 14 118 | |||||
Data file Used by | Data file Used by | ||||
b/b [b] base | b/b [b] base | ||||
[k] zhy | [k] zhy | ||||
ustop/k_unasp_ [k] zh | ustop/k_unasp_ [k] zh | ||||
[k] th | [k] th | ||||
ustop/null [?] base | |||||
ustop/p [p] base | ustop/p [p] base | ||||
[p] fr | [p] fr | ||||
[ph] hi | [ph] hi | ||||
vdiph/aau_3 [aU] hi | vdiph/aau_3 [aU] hi | ||||
vdiph/aau_4 [aU] vi | vdiph/aau_4 [aU] vi | ||||
vdiph/ae [E:] fr_ca | vdiph/ae [E:] fr_ca | ||||
[aI] la | |||||
[ai] zh | [ai] zh | ||||
vdiph/ae_2 [aI] en_n | vdiph/ae_2 [aI] en_n | ||||
vdiph/ai [aI] base2 | vdiph/ai [aI] base2 | ||||
[a:I] vi | [a:I] vi | ||||
[aI] th | [aI] th | ||||
[a:I] th | [a:I] th | ||||
[aI] id | |||||
vdiph/ai_2 [aI] cy | vdiph/ai_2 [aI] cy | ||||
[aY] cy | [aY] cy | ||||
vdiph/ai_3 [aI] no | vdiph/ai_3 [aI] no | ||||
vdiph/ai_4 [aI] af | vdiph/ai_4 [aI] af | ||||
vdiph/ai_5 [aI] de | vdiph/ai_5 [aI] de | ||||
[aI] la | |||||
vdiph/ai_6 [aI] en_rp | vdiph/ai_6 [aI] en_rp | ||||
vdiph/ai_7 [aI] en_sc | vdiph/ai_7 [aI] en_sc | ||||
[aI2] en_sc | [aI2] en_sc | ||||
[aU] sk | [aU] sk | ||||
[aU] it | [aU] it | ||||
[aU] is | [aU] is | ||||
[aU] id | |||||
vdiph/ee-e [E:] hi | vdiph/ee-e [E:] hi | ||||
vdiph/eei [EI] base2 | vdiph/eei [EI] base2 | ||||
[eI] en | [eI] en | ||||
[EI] vi | [EI] vi | ||||
vdiph/eei_2 [eI] eo | vdiph/eei_2 [eI] eo | ||||
[ei] fi | [ei] fi | ||||
[eI] id | |||||
vdiph/eei_3 [eI] en_rp | vdiph/eei_3 [eI] en_rp | ||||
[eI] sk | [eI] sk | ||||
vdiph/eeu [EU] pt | vdiph/eeu [EU] pt | ||||
vdiph/@u_2 [oU] en_rp | vdiph/@u_2 [oU] en_rp | ||||
vdiph/@u_3 [@U] ro | vdiph/@u_3 [@U] ro | ||||
vdiph/@u_en [oU] en | vdiph/@u_en [oU] en | ||||
[@U] id | |||||
vdiph/ui [uI] base2 | vdiph/ui [uI] base2 | ||||
[uI] en | [uI] en | ||||
[uI] eo | [uI] eo | ||||
[A] hr | [A] hr | ||||
[a] hr | [a] hr | ||||
[a] it | [a] it | ||||
[a:] la | |||||
[a] zh | [a] zh | ||||
[a] th | [a] th | ||||
[a:] th | [a:] th | ||||
[a] id | |||||
vowel/a# [a/] base2 | vowel/a# [a/] base2 | ||||
[a2] en_sc | [a2] en_sc | ||||
[a2] en_wi | [a2] en_wi | ||||
[A@] en_wi | [A@] en_wi | ||||
[aa] en_wi | [aa] en_wi | ||||
[a] eo | [a] eo | ||||
[a] la | |||||
[A] pt | [A] pt | ||||
[a] pt_pt | [a] pt_pt | ||||
[a] ro | [a] ro | ||||
[aa] en_sc | [aa] en_sc | ||||
[a] fr | [a] fr | ||||
[a:] cs | [a:] cs | ||||
[a:] la | |||||
[a] is | [a] is | ||||
vowel/a#_3 [a2] en | vowel/a#_3 [a2] en | ||||
[a2] en_n | [a2] en_n | ||||
vowel/a_4 [a/] el | vowel/a_4 [a/] el | ||||
[a] vi | [a] vi | ||||
vowel/a_5 [a/] it | vowel/a_5 [a/] it | ||||
[a] la | |||||
[a] sv | [a] sv | ||||
[a] sw | [a] sw | ||||
vowel/aa [a] fi | vowel/aa [a] fi | ||||
[e] vi | [e] vi | ||||
[e] th | [e] th | ||||
[e:] th | [e:] th | ||||
[e] id | |||||
vowel/e# [I] en_sc | vowel/e# [I] en_sc | ||||
[I2] en_sc | [I2] en_sc | ||||
vowel/e_2 [eI] en_sc | vowel/e_2 [eI] en_sc | ||||
[E] pt_pt | [E] pt_pt | ||||
[E] no | [E] no | ||||
[E] is | [E] is | ||||
[E] id | |||||
[E2] id | |||||
vowel/e_mid2 [E] af | vowel/e_mid2 [E] af | ||||
[E] de | [E] de | ||||
[E2] de | [E2] de | ||||
vowel/i_6 [i:] en_us | vowel/i_6 [i:] en_us | ||||
[i] ta | [i] ta | ||||
[i] hr | [i] hr | ||||
[i] id | |||||
vowel/i_en [i:] en | vowel/i_en [i:] en | ||||
[i] vi | [i] vi | ||||
vowel/i_fnt [i:] en_wi | vowel/i_fnt [i:] en_wi | ||||
vowel/ii# [Y] cy | vowel/ii# [Y] cy | ||||
[y] pl | [y] pl | ||||
[Y] ru | [Y] ru | ||||
vowel/ii_2 [I] la | |||||
[i] zh | |||||
vowel/ii_2 [i] zh | |||||
vowel/ii_3 [I] cy | vowel/ii_3 [I] cy | ||||
[I] fi | [I] fi | ||||
[I] hi | [I] hi | ||||
[I2] en_n | [I2] en_n | ||||
vowel/ii_5 [I] en_wi | vowel/ii_5 [I] en_wi | ||||
[I2] en_wi | [I2] en_wi | ||||
[I] la | |||||
vowel/ii_6 [I] en_wm | vowel/ii_6 [I] en_wm | ||||
[I2] en_wm | [I2] en_wm | ||||
[I] sr | [I] sr | ||||
[@2] hi | [@2] hi | ||||
[@] ro | [@] ro | ||||
[@2] no | [@2] no | ||||
[@] id | |||||
vowel/o [o] base2 | vowel/o [o] base2 | ||||
[o:] en | [o:] en | ||||
[oU] en_wi | [oU] en_wi | ||||
[o:] ta | [o:] ta | ||||
[o] it | [o] it | ||||
[o/] it | [o/] it | ||||
[o:] la | |||||
[O] la | |||||
[o] pt_pt | [o] pt_pt | ||||
[o] grc | [o] grc | ||||
[o:] sv | [o:] sv | ||||
[u] zh | [u] zh | ||||
[o] th | [o] th | ||||
[o:] th | [o:] th | ||||
[o] id | |||||
vowel/o- [o-] zh | vowel/o- [o-] zh | ||||
vowel/o_2 [o:] cy | vowel/o_2 [o:] cy | ||||
[o:] hi | [o:] hi | ||||
[o:] hu | [o:] hu | ||||
[o:] la | |||||
[o:] no | [o:] no | ||||
vowel/o-_2 [V] en_n | vowel/o-_2 [V] en_n | ||||
[V] en_wm | [V] en_wm | ||||
[O@] en_wi | [O@] en_wi | ||||
[O] de | [O] de | ||||
[o] eo | [o] eo | ||||
[O] la | |||||
[o] es | [o] es | ||||
[o] el | [o] el | ||||
[O] sv | [O] sv | ||||
[o] zhy | [o] zhy | ||||
[O] th | [O] th | ||||
[O:] th | [O:] th | ||||
[O] id | |||||
vowel/oo_1 [O:] en_n | vowel/oo_1 [O:] en_n | ||||
[O:] en_rp | [O:] en_rp | ||||
[O@] en_rp | [O@] en_rp | ||||
[u] eo | [u] eo | ||||
[U] fr | [U] fr | ||||
[u:] cs | [u:] cs | ||||
[u:] la | |||||
[U] la | |||||
[u] zh | [u] zh | ||||
[u] th | [u] th | ||||
[u:] th | [u:] th | ||||
[u] id | |||||
vowel/u# [u-] en | vowel/u# [u-] en | ||||
[u:] en_sc | [u:] en_sc | ||||
vowel/u_2 [u1] fi | vowel/u_2 [u1] fi | ||||
[u:] no | [u:] no | ||||
[u] is | [u] is | ||||
[u] zhy | [u] zhy | ||||
vowel/u_bck2 [u:] la | |||||
vowel/u_fnt [u:] en_rp | vowel/u_fnt [u:] en_rp | ||||
vowel/uu [U] en | vowel/uu [U] en | ||||
[U] en_wm | [U] en_wm | ||||
vowel/uu_2 [U] base2 | vowel/uu_2 [U] base2 | ||||
[U] de | [U] de | ||||
[U] la | |||||
vowel/uu_3 [u] af | vowel/uu_3 [u] af | ||||
vowel/uu_4 [U] fi | vowel/uu_4 [U] fi | ||||
[U] sv | [U] sv | ||||
[y] fi | [y] fi | ||||
[y:] hu | [y:] hu | ||||
[y] nl | [y] nl | ||||
[y] la | |||||
[yu] zhy | [yu] zhy | ||||
[y] zh | [y] zh | ||||
vowel/y# [Y:] en | vowel/y# [Y:] en | ||||
vowel/y## [y#] is | vowel/y## [y#] is | ||||
vowel/y_2 [y] fr | vowel/y_2 [y] fr | ||||
[y"] fr | [y"] fr | ||||
[y:] la | |||||
vowel/y#_2 [Y] hu | vowel/y#_2 [Y] hu | ||||
[Y:] sv | [Y:] sv | ||||
vowel/y_3 [y] af | vowel/y_3 [y] af | ||||
vowel/yy_3 [y] sv | vowel/yy_3 [y] sv | ||||
vowel/yy_4 [y] de | vowel/yy_4 [y] de | ||||
[y] hu | [y] hu | ||||
[y] la | |||||
[y:] la | |||||
[y] grc | [y] grc | ||||
[y] is | [y] is | ||||
vwl_af/@ [@] af | vwl_af/@ [@] af |
phoneme a | phoneme a | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 180 | |||||
formants vowel/a_2 | |||||
length 170 | |||||
formants vowel/a_5 | |||||
endphoneme | endphoneme | ||||
phoneme I | phoneme I | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 150 | length 150 | ||||
formants vowel/ii_2 | |||||
formants vowel/ii_5 | |||||
linkout ; | linkout ; | ||||
endphoneme | endphoneme | ||||
phoneme O | phoneme O | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 170 | |||||
formants vowel/oo | |||||
length 160 | |||||
formants vowel/o | |||||
endphoneme | endphoneme | ||||
phoneme U | phoneme U | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 160 | length 160 | ||||
formants vowel/uu_2 | |||||
formants vowel/u | |||||
endphoneme | endphoneme | ||||
phoneme a: | phoneme a: | ||||
vowel starttype (a) endtype (a) | vowel starttype (a) endtype (a) | ||||
length 250 | |||||
formants vowel/a | |||||
length 270 | |||||
formants vowel/a_3 | |||||
endphoneme | endphoneme | ||||
phoneme e: | phoneme e: | ||||
vowel starttype (e) endtype (e) | vowel starttype (e) endtype (e) | ||||
length 240 | |||||
length 260 | |||||
formants vowel/e | formants vowel/e | ||||
endphoneme | endphoneme | ||||
phoneme i: | phoneme i: | ||||
vowel starttype (i) endtype (i) | vowel starttype (i) endtype (i) | ||||
length 220 | |||||
length 240 | |||||
formants vowel/i_2 | formants vowel/i_2 | ||||
after w w/wi2 | after w w/wi2 | ||||
endphoneme | endphoneme | ||||
phoneme o: | phoneme o: | ||||
vowel starttype (o) endtype (o) | vowel starttype (o) endtype (o) | ||||
length 240 | |||||
formants vowel/o | |||||
length 250 | |||||
formants vowel/o_2 | |||||
endphoneme | endphoneme | ||||
phoneme u: | phoneme u: | ||||
vowel starttype (u) endtype (u) | vowel starttype (u) endtype (u) | ||||
length 230 | |||||
formants vowel/u | |||||
length 250 | |||||
formants vowel/u_bck2 | |||||
endphoneme | endphoneme | ||||
phoneme y | phoneme y | ||||
vowel starttype (u) endtype (u) | |||||
vowel starttype (i) endtype (i) | |||||
length 150 | length 150 | ||||
formants vowel/yy_4 | |||||
formants vowel/y | |||||
endphoneme | endphoneme | ||||
phoneme y: | 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 | endphoneme | ||||
phoneme aI | phoneme aI | ||||
vowel starttype (a) endtype (i) | vowel starttype (a) endtype (i) | ||||
length 250 | |||||
formants vdiph/ai_5 | |||||
length 270 | |||||
formants vdiph/ae | |||||
endphoneme | endphoneme | ||||
phoneme eI | phoneme eI | ||||
vowel starttype (e) endtype (i) | vowel starttype (e) endtype (i) | ||||
length 250 | |||||
length 270 | |||||
formants vdiph/ei | formants vdiph/ei | ||||
endphoneme | endphoneme | ||||
phoneme EU | phoneme EU | ||||
vowel starttype (e) endtype (u) | vowel starttype (e) endtype (u) | ||||
length 260 | |||||
length 270 | |||||
formants vdiph/eeu_2 | formants vdiph/eeu_2 | ||||
endphoneme | endphoneme | ||||
phoneme OI | phoneme OI | ||||
vowel starttype (o) endtype (i) | vowel starttype (o) endtype (i) | ||||
length 230 | |||||
length 250 | |||||
formants vdiph/oi | formants vdiph/oi | ||||
endphoneme | endphoneme | ||||
endphoneme | endphoneme | ||||
phoneme ? // glottal stop | phoneme ? // glottal stop | ||||
pause | |||||
vls glt stop | |||||
vowelin glstop | vowelin glstop | ||||
vowelout glstop | vowelout glstop | ||||
formants NULL | |||||
starttype _ endtype _ | |||||
length 45 | |||||
lengthmod 5 // ?? | |||||
beforenotvowel _ // change to pause_short | |||||
wave ustop/null | |||||
lengthmod 2 // ?? | |||||
nolink | nolink | ||||
endphoneme | endphoneme | ||||
phonemetable th base | phonemetable th base | ||||
include ph_thai | include ph_thai | ||||
phonemetable id base2 | |||||
include ph_indonesian | |||||
int clear_skipping_text = 0; // next clause should clear the skipping_text flag | int clear_skipping_text = 0; // next clause should clear the skipping_text flag | ||||
int count_characters = 0; | int count_characters = 0; | ||||
int sayas_mode; | int sayas_mode; | ||||
int ssml_ignore_l_angle = 0; | |||||
static const char *punct_stop = ".:!?"; // pitch fall if followed by space | static const char *punct_stop = ".:!?"; // pitch fall if followed by space | ||||
static const char *punct_close = ")]}>;'\""; // always pitch fall unless followed by alnum | static const char *punct_close = ")]}>;'\""; // always pitch fall unless followed by alnum | ||||
// alter tone for announce punctuation or capitals | // 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"; | static const char *tone_punct_off = "\001R\001T"; | ||||
// punctuations symbols that can end a clause | // punctuations symbols that can end a clause | ||||
{ | { | ||||
// end the clause now and pick up the punctuation next time | // end the clause now and pick up the punctuation next time | ||||
UngetC(c2); | 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; | ungot_char2 = c1; | ||||
buf[bufix] = ' '; | buf[bufix] = ' '; | ||||
buf[bufix+1] = 0; | buf[bufix+1] = 0; | ||||
} | } | ||||
} | } | ||||
else | else | ||||
if(c1 == '<') | |||||
if((c1 == '<') && !ssml_ignore_l_angle) | |||||
{ | { | ||||
// SSML Tag | // SSML Tag | ||||
n_xml_buf = 0; | n_xml_buf = 0; | ||||
continue; | continue; | ||||
} | } | ||||
} | } | ||||
ssml_ignore_l_angle=0; | |||||
if(ignore_text) | if(ignore_text) | ||||
continue; | continue; |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x013010; | ||||
int option_device_number = -1; | int option_device_number = -1; |
} | } | ||||
break; | 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 | case L('i','s'): // Icelandic | ||||
{ | { | ||||
static const unsigned char stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 }; | static const unsigned char stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 }; | ||||
case L('n','o'): // Norwegian | case L('n','o'): // Norwegian | ||||
{ | { | ||||
static const unsigned char stress_amps_no[] = {16,16, 20,20, 20,24, 24,22 }; | 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(); | tr = new Translator(); | ||||
SetupTranslator(tr,stress_lengths_no,stress_amps_no); | SetupTranslator(tr,stress_lengths_no,stress_amps_no); | ||||