Fix: SAPI5 version, pitch not reset correctly after indicating capital letter. Language changes: ga, nl, pt. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@312 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -48,6 +48,10 @@ _у u | |||
v _^_EN // not Roman number | |||
x _^_EN // not Roman number | |||
_?? znak | |||
_?A b'ukva | |||
// symbols | |||
% prots'ent $max3 | |||
+ plus $max3 |
@@ -68,7 +68,7 @@ r R R3 s S t T tS | |||
v w x z Z | |||
Dictionary hu_dict 2013-03-10 | |||
Dictionary hu_dict 2013-03-11 | |||
a A a: e E e: i i: | |||
o o: u u: Y y y: Y: | |||
@@ -331,7 +331,7 @@ k l m n p R s S | |||
t tS v w x | |||
Dictionary nl_dict 2013-03-05 | |||
Dictionary nl_dict 2013-03-11 | |||
8 @ @- a A a: A~ e | |||
E e# E2 e: EI eU i I | |||
@@ -379,7 +379,7 @@ S s; S; t t; tS ts tS; | |||
ts; v w x z Z Z; | |||
Dictionary pt_dict 2013-03-10 | |||
Dictionary pt_dict 2013-03-11 | |||
& &/ &U~ &~ @ @- a A | |||
aI aU e E eI EI eU EU | |||
@@ -616,7 +616,7 @@ s S s. t T t# t. t.# | |||
v w x z Z z. | |||
Dictionary bg_dict 2012-07-15 | |||
Dictionary bg_dict 2013-03-11 | |||
@ a e i o u | |||
@@ -885,7 +885,7 @@ n. n^ p p# r r. s S | |||
s. t t# t. t.# v w z | |||
Dictionary ga_dict 2013-03-08 | |||
Dictionary ga_dict 2013-03-11 | |||
0 0# @ a a# A: aI aI# | |||
aU aU# e E E# e: i I |
@@ -9,25 +9,26 @@ | |||
// precede by _ to distinguish from pronunciation as a language word | |||
_a eI | |||
b bi: | |||
b bi: $atend | |||
?1 bh v // eclipsis | |||
c si: | |||
d di: | |||
d di: $atend | |||
e i: | |||
f Ef | |||
g dZi: | |||
h eItS | |||
g dZi: $atend | |||
h eItS $atend | |||
_i aI | |||
j dZeI | |||
k keI | |||
l El | |||
m Em | |||
n En | |||
m Em $atend | |||
n En $atend | |||
_o oU | |||
p pi: | |||
q kju: | |||
r ar | |||
s Es | |||
t ti: | |||
t ti: $atend | |||
u ju: | |||
v vi: | |||
w d'O#b@lju: |
@@ -1,430 +1,492 @@ | |||
// translation rules for Irish Gaeilge | |||
// translation rules for Irish Gaeilge | |||
// This file is UTF-8 encoded | |||
// written by Ronan McGuirk January 2013 | |||
// Version 2.5B | |||
// Conditional rules | |||
// ?1 allow eclipsis as 2 separate words | |||
.L01 e i é í // slender vowels | |||
.L02 c ch d g gh n s // following ea gets ; sounds | |||
.L03 b bh mb c ch f m mh dh // used for words likemuir or cuid | |||
.L03 b bh mb c ch f m mh dh // used for words likemuir or cuid | |||
.L04 b bh mb // for words like beag | |||
.L05 nn nna nnas dh r s ntas nach nas nais dar mar rtha nta mh chas chais cht chta nnach ntach llach d l ll // word endings where @ is to repleace ea or a | |||
.L06 aidh idh aí á eá eadh adh ad imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h | |||
.L07 b c g ch bh gh mb | |||
.L07 b c g ch bh gh mb | |||
.L08 lc ll nt bhse // for words like cailc | |||
.L09 cl cr chr f | |||
.L10 c ch p ph gl ghl | |||
.L11 c dh gh the s nn nne nt tiúil tiúla tíochta theoir theora ste steach ll llí llín g gí mse // word endings preceded by ai | |||
.L10 c ch p ph gl ghl | |||
.L11 c dh gh the s nn nne nt tiúil tiúla tíochta theoir theora ste steach ll llí llín g gí mse // word endings preceded by ai | |||
.L12 á é ó eo ua // when followed by i | |||
.L13 oc omb | |||
.L13 oc omb | |||
.L14 río dún gnío // followed with mh | |||
.L15 c ch f m d dh g gc gh mh // aoi following | |||
.L16 b c bh ch gr ghr // for inn word ending | |||
.L17 l le li niste nn | |||
.L18 n nt nte neann neadh ntear nim nfear nfinn | |||
.L19 na nea ra rea la llea arga // word endings with silent dh | |||
.L17 l le li niste nn | |||
.L18 n nt nte neann neadh ntear nim nfear nfinn | |||
.L19 na nea ra rea la llea arga // word endings with silent dh | |||
.L20 eo eoir eá eabh io iu iú // slender m | |||
.L21 ll nn ndán nntán | |||
.L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine | |||
.L23 ea eo i | |||
.L23 ea eo i | |||
.L24 b mb bh g gh p ph bp m mh | |||
.group a | |||
a 0# | |||
a (_ @ | |||
adh (a aI // words like radharc | |||
adh (C aI | |||
abht aU#t[ | |||
amhr aUr // words like amhras | |||
K) amhl aUl | |||
abhra aUr@ // words like slabhra | |||
aghaidh aIg | |||
t) abhair u:@r | |||
th) abhair u:@r | |||
t) abhar u:@r | |||
th) abhar u:@r | |||
_) an (sL01 @n | |||
_) an (- 0n // an prefix | |||
é) a @ // words like féach | |||
X) a (nn_ aU# | |||
X) a (ll_ aU# | |||
abha aU@ | |||
am (pla aUm | |||
ama(_ aU#m@ | |||
athair 'ah@r | |||
_) amh aU | |||
agha aI@ | |||
agh (d aI | |||
agh (s aI | |||
_) ath 0h | |||
ai (m_ @ | |||
aí i: | |||
aoi @i: | |||
_) aoi i: | |||
ath) aoi (r 'i:@ | |||
r) aoi (nín 'e:@ | |||
aoicht (_ 'i:@xt[ | |||
C) ao (C @e:@ | |||
_L24) ao (C w'e:@ | |||
C) ao (th_ @e: | |||
b) ao (++ we:@ | |||
b) ao (th_++ we: | |||
ao @e | |||
_) ao e: | |||
ae e: | |||
amhna (_ aUn@ | |||
a 0# | |||
a (_ @ | |||
adh (a aI // words like radharc | |||
adh (C aI | |||
abht aU#t[ | |||
amhr aUr // words like amhras | |||
K) amhl aUl | |||
abhra aUr@ // words like slabhra | |||
aghaidh aIg | |||
t) abhair u:@r | |||
th) abhair u:@r | |||
t) abhar u:@r | |||
th) abhar u:@r | |||
_) an (sL01 @n | |||
_) an (- 0n // an prefix | |||
é) a @ // words like féach | |||
X) a (nn_ aU# | |||
X) a (ll_ aU# | |||
abha aU@ | |||
am (pla aUm | |||
ama (_ aU#m@ | |||
athair 'ah@r | |||
_) amh aU | |||
agha aI@ | |||
agh (d aI | |||
agh (s aI | |||
_) ath 0h | |||
ai (m_ @ | |||
aí i: | |||
aoi @i: | |||
_) aoi i: | |||
ath) aoi (r 'i:@ | |||
r) aoi (nín 'e:@ | |||
aoicht (_ 'i:@xt[ | |||
C) ao (C @e:@ | |||
_L24) ao (C w'e:@ | |||
C) ao (th_ @e: | |||
b) ao (++ we:@ | |||
b) ao (th_++ we: | |||
ao @e | |||
_) ao e: | |||
ae e: | |||
amhna (_ aUn@ | |||
.group á | |||
á A: | |||
@) á ,A: | |||
ádh A: | |||
áthair (_ A:h@r | |||
áthar A:h@r | |||
ái (p A: | |||
áinig A:nIg | |||
ái 'A:i | |||
á A: | |||
@) á ,A: | |||
ádh A: | |||
áthair (_ A:h@r | |||
áthar A:h@r | |||
ái (p A: | |||
áinig A:nIg | |||
ái 'A:i | |||
.group ai | |||
ai a# | |||
L04) ai (L17 0# | |||
aile (_ '0l;E // words like baile | |||
Xc) ai (l '0# | |||
ch) ai (l '0# | |||
m) ai (n 0# | |||
c) ai (th 0# | |||
ch) ai (th 0# | |||
ai (d 0# | |||
p) ai (l 0# | |||
@) ai (L11_ I | |||
ai (L08+ aI# | |||
c) ai (l_ I | |||
ai (msi 'aI // words like aimsir | |||
_L04) ai (L18_++ u1'I//words like bain | |||
c) ai (t_ u1'I | |||
s) ai (bh E | |||
aighre aIr@ | |||
X) aigh 'aI | |||
aigh aI# L04) aill (_ wi:l | |||
aing (_ Ing | |||
ai a# | |||
L04) ai (L17 0# | |||
aile (_ '0l;E // words like baile | |||
Xc) ai (l '0# | |||
ch) ai (l '0# | |||
m) ai (n 0# | |||
c) ai (th 0# | |||
ch) ai (th 0# | |||
ai (d 0# | |||
p) ai (l 0# | |||
@) ai (L11_ I | |||
ai (L08+ aI# | |||
c) ai (l_ I | |||
ai (msi 'aI // words like aimsir | |||
_L04) ai (L18_++ u1'I//words like bain | |||
c) ai (t_ u1'I | |||
s) ai (bh E | |||
aighre aIr@ | |||
X) aigh 'aI | |||
aigh aI# L04) aill (_ wi:l | |||
aing (_ Ing | |||
.group b | |||
b b // broad | |||
L01) b b; // slender | |||
b (L22 bj //slender | |||
bh v // broad | |||
bh (_ vv | |||
bh (L22 vj // slender | |||
L01) bh v | |||
_) bhf v /urú broad | |||
_) bhf (L22 v; // urú slender | |||
_) bp b //urú broad | |||
_) bp (L01 b; // urú slender | |||
a) bh (a U// for example cabhair | |||
ear) bha u: // words like Cearbhall | |||
bhfaigh v'aI | |||
b b // broad | |||
L01) b b; // slender | |||
b (L22 bj //slender | |||
bh v // broad | |||
bh (_ vv | |||
bh (L22 vj // slender | |||
L01) bh v | |||
?1 _m_) b (@ | |||
_) bhf v // urú broad | |||
_) bhf (L22 v; // urú slender | |||
_) bp b // urú broad | |||
_) bp (L01 b; // urú slender | |||
?1 _) bh (_f v // urú broad | |||
?1 _) bh (_fL22 v; // urú slender | |||
?1 _) b (_p b // urú broad | |||
?1 _) b (_pL01 b; // urú slender | |||
a) bh (a U // for example cabhair | |||
ear) bha u: // words like Cearbhall | |||
bhfaigh v'aI | |||
.group c | |||
c k | |||
c (L01 k; // slender | |||
ch x | |||
ch (L01 C; | |||
ch (é+ C; | |||
ch (ei+ x; | |||
_) cabhr k'aUr | |||
_) chabhr x'aUr | |||
c k | |||
c (L01 k; // slender | |||
ch x | |||
ch (L01 C; | |||
ch (é+ C; | |||
ch (ei+ x; | |||
?1 _g_) c (@ | |||
?1 _g_) c (L01 | |||
_) cabhr k'aUr | |||
_) chabhr x'aUr | |||
.group d | |||
d d[ // broad | |||
L01) d dZ // slender | |||
d (L22 dZ //slender | |||
d (L01 d; //slender | |||
i) d (i dZ | |||
dh Q // broad | |||
dh (ui Q //broad | |||
dh (ao Q //broad | |||
dh (L01 j // slender | |||
_) dt d[ //broad urú | |||
_) dt (L01 dZ // slender urú | |||
_) d' (@P2 d | |||
i) dh (_ g | |||
a) dh (_ X | |||
o) dh (_ X | |||
L19) dh (_ // silent dh at wrd end | |||
Va) dh (_+ | |||
deartháir dr@h'A:r | |||
dheartháir gr@h'A:r | |||
deirfiúr d;r@f'u:r | |||
dheirfiúr g;r@f'u:r | |||
d d[ // broad | |||
L01) d dZ // slender | |||
d (L22 dZ // slender | |||
d (L01 d; // slender | |||
i) d (i dZ | |||
?1 _n_) d (@ | |||
dh Q // broad | |||
dh (ui Q // broad | |||
dh (ao Q // broad | |||
dh (L01 j // slender | |||
_) dt d[ // broad urú | |||
_) dt (L01 dZ // slender urú | |||
?1 _) d (_t d[ | |||
?1 _) d (_tL01 dZ | |||
_) d' (@P2 d | |||
i) dh (_ g | |||
a) dh (_ X | |||
o) dh (_ X | |||
L19) dh (_ // silent dh at wrd end | |||
Va) dh (_+ | |||
deartháir dr@h'A:r | |||
dheartháir gr@h'A:r | |||
deirfiúr d;r@f'u:r | |||
dheirfiúr g;r@f'u:r | |||
.group e | |||
e E# | |||
eá A: | |||
ei E | |||
eidh (C aI | |||
r) ei (m aI | |||
eighea aI | |||
eighea aI | |||
eigh aI | |||
eo o: | |||
eogh o: | |||
d) eo (ch O# | |||
_) eo (ch O# | |||
s) eo (_ @ | |||
e E# | |||
eá A: | |||
ei E | |||
eidh (C aI | |||
r) ei (m aI | |||
eighea aI | |||
eighea aI | |||
eigh aI | |||
eo o: | |||
eogh o: | |||
d) eo (ch O# | |||
_) eo (ch O# | |||
s) eo (_ @ | |||
.group é | |||
é 'e: | |||
éi 'e: | |||
_) éi (rig aI // words like éirigh | |||
_) éi (rí aI // words like éirí | |||
_) éireoidh aIro:Ig | |||
éacs e:@ks | |||
é 'e: | |||
éi 'e: | |||
_) éi (rig aI // words like éirigh | |||
_) éi (rí aI // words like éirí | |||
_) éireoidh aIro:Ig | |||
éacs e:@ks | |||
.group ea | |||
ea a# | |||
X) ea (L21_ aU | |||
ea (ltaine aU | |||
g) ea (ll aU | |||
X) ea (ch 0 | |||
_L04) ea (g @ | |||
_L04) ea (dh_ @ | |||
_L04) eagn @gn | |||
L04) eaga (_ @g@ | |||
eaghl aIl | |||
eabhra aUr@ // words like Feabhra | |||
eanbhean 'an@v,an | |||
eadhb aIb | |||
ea a# | |||
X) ea (L21_ aU | |||
ea (ltaine aU | |||
g) ea (ll aU | |||
X) ea (ch 0 | |||
_L04) ea (g @ | |||
_L04) ea (dh_ @ | |||
_L04) eagn @gn | |||
L04) eaga (_ @g@ | |||
eaghl aIl | |||
eabhra aUr@ // words like Feabhra | |||
eanbhean 'an@v,an | |||
eadhb aIb | |||
.group f | |||
f f // broad | |||
f (L22 f; // slender | |||
fh //silent | |||
fh (éin_ h | |||
fh (L22 ; //slender | |||
@) f (L06_ h | |||
f f // broad | |||
f (L22 f; // slender | |||
fh // silent | |||
fh (éin_ h | |||
fh (L22 ; // slender | |||
@) f (L06_ h | |||
?1 _bh_) f (@ | |||
?1 _bh_) f (L22 ; | |||
.group g | |||
g g // broad | |||
g (L01 g; // slender | |||
_) gh Q" | |||
_) gh (L01 Q"j | |||
_) gc g // urú broad | |||
_) gc (L01 g; // urú slender | |||
i) gh (_ g | |||
@C) gh (@ X | |||
_) gn g@n | |||
gh(n X@ | |||
gheobh j'o: | |||
gabh gaU | |||
g g // broad | |||
g (L01 g; // slender | |||
?1 _n_) g (@ | |||
_) gh Q" | |||
_) gh (L01 Q"j | |||
_) gc g // urú broad | |||
_) gc (L01 g; // urú slender | |||
?1 _) g (_c g // urú broad | |||
?1 _) g (_cL01 g; // urú slender | |||
i) gh (_ g | |||
@C) gh (@ X | |||
_) gn g@n | |||
gh (n X@ | |||
gheobh j'o: | |||
gabh gaU | |||
.group h | |||
h h // silent | |||
h h // silent | |||
.group i | |||
i I | |||
_) i I | |||
ia i@ | |||
ia (tha i: | |||
io O# | |||
_) io (nadh u:// words like ionadh | |||
_pr) io (n u: | |||
L16) inn (_ i:n | |||
iai i:i | |||
impeall i:mp@l | |||
io (s I //words like fios and liosta | |||
L12) i i // non syllabic short i after long vowel | |||
iú u: | |||
m) i (d_ i: // verb ending | |||
.group k | |||
k k | |||
i I | |||
_) i I | |||
ia i@ | |||
ia (tha i: | |||
io O# | |||
_) io (nadh u:// words like ionadh | |||
_pr) io (n u: | |||
L16) inn (_ i:n | |||
iai i:i | |||
impeall i:mp@l | |||
io (s I //words like fios and liosta | |||
L12) i i // non syllabic short i after long vowel | |||
iú u: | |||
m) i (d_ i: // verb ending | |||
.group í | |||
í 'i: | |||
.group l | |||
l l // broad | |||
L01) l ( l; // slender | |||
l (L23 l; //slender | |||
ll l | |||
ll (L23 l; | |||
l (g l@ | |||
l (b l@ | |||
l l // broad | |||
L01) l l; // slender | |||
l (L23 l; //slender | |||
ll l | |||
ll (L23 l; | |||
l (g l@ | |||
l (b l@ | |||
.group m | |||
m m // broad | |||
m (L20 m; //slender | |||
mh v | |||
mh (L20 v; // slender | |||
_) mb m //urú | |||
_) mb (L22 m; // urú slender | |||
_) m (n m@// words like mná | |||
L14) mh v | |||
_) mh (n v@ | |||
léir) mheas vas | |||
r) m @m // words like gorm | |||
m m // broad | |||
m (L20 m; //slender | |||
mh v | |||
mh (L20 v; // slender | |||
_) mb m // urú | |||
_) mb (L22 m; // urú slender | |||
?1 _) m (_b m // urú | |||
?1 _) m (_bL22 m; // urú slender | |||
_) m (n m@// words like mná | |||
L14) mh v | |||
_) mh (n v@ | |||
léir) mheas vas | |||
r) m @m // words like gorm | |||
.group n | |||
n n // broad | |||
n (L01 n; // slender | |||
_) nd n // urú | |||
_) nd (L01 n; // urú slender | |||
nn n | |||
nn (L01 n; // slender | |||
n (b n@ | |||
n (m n@ | |||
n (bh n@ n(ch n@ | |||
c) n @n | |||
ch) n @n | |||
n n // broad | |||
n (L01 n; // slender | |||
?1 _) n (_L01 n; | |||
_) nd n // urú | |||
_) nd (L01 n; // urú slender | |||
_) ng n | |||
_) ng (L01 n; | |||
?1 _) n (_d n // urú | |||
?1 _) n (_dL01 n; // urú slender | |||
?1 _) n (_g n | |||
?1 _) n (_gL01 n; | |||
nn n | |||
nn (L01 n; // slender | |||
n (b n@ | |||
n (m n@ | |||
n (bh n@ | |||
n (ch n@ | |||
c) n @n | |||
ch) n @n | |||
.group o | |||
o O# | |||
_) o 'O | |||
C) o (cht_ 'O | |||
orn (_ 'Or@n | |||
_C) omh o: | |||
_CC) omh o: | |||
omha o:@ | |||
omhai o:@ | |||
o (ll_ aU | |||
C) o (nn_ aU | |||
r) o (nn_ O# | |||
C) ogh aU | |||
omhan(_ aU@n | |||
omhain (_ aUIn | |||
odha aU | |||
opaic @pIk | |||
C) odh (_ o: | |||
odl (a O#l | |||
oí i: | |||
o O# | |||
_) o 'O | |||
C) o (cht_ 'O | |||
orn (_ 'Or@n | |||
_C) omh o: | |||
_CC) omh o: | |||
omha o:@ | |||
omhai o:@ | |||
o (ll_ aU | |||
C) o (nn_ aU | |||
r) o (nn_ O# | |||
C) ogh aU | |||
omhan (_ aU@n | |||
omhain (_ aUIn | |||
odha aU | |||
opaic @pIk | |||
C) odh (_ o: | |||
odl (a O#l | |||
oí i: | |||
.group ó | |||
ó 'o: | |||
ómhai o:@ | |||
ó 'o: | |||
ómhai o:@ | |||
.group oi | |||
oi O | |||
_L15) oi (+ @'I | |||
_) oi (b I | |||
oi (de I | |||
h) oi (b I | |||
_) oi (r I | |||
r) oi I | |||
l) oi (n I | |||
f) oi (lC aI | |||
l) oi (g I | |||
fh) oi (lC aI | |||
s) oi (ls aI# | |||
c) oi (c aI# | |||
oi (nnío @ | |||
oi (mis @ | |||
ois (++ O#S | |||
oill w'i:l | |||
_) oi (leá 'I | |||
oidh aI | |||
oir (_ 'ERR | |||
oigh (ea aI | |||
oi O | |||
_L15) oi (+ @'I | |||
_) oi (b I | |||
oi (de I | |||
h) oi (b I | |||
_) oi (r I | |||
r) oi I | |||
l) oi (n I | |||
f) oi (lC aI | |||
l) oi (g I | |||
fh) oi (lC aI | |||
s) oi (ls aI# | |||
c) oi (c aI# | |||
oi (nnío @ | |||
oi (mis @ | |||
ois (++ O#S | |||
oill w'i:l | |||
_) oi (leá 'I | |||
oidh aI | |||
oir (_ 'ERR | |||
oigh (ea aI | |||
.group p | |||
p p // broad | |||
ph f //broad | |||
p (L22 p; //slender | |||
ph (L20 f; // slender | |||
p p // broad | |||
ph f // broad | |||
p (L22 p; // slender | |||
ph (L20 f; // slender | |||
?1 _b_) p (@ | |||
.group q | |||
q k | |||
qu k | |||
.group r | |||
r r // broad | |||
L01) r R // slender | |||
_) r (L01 R | |||
L12i) r (e_ Z | |||
L12i) r (t_ Z | |||
rr R | |||
rg r@g | |||
L01) rg R@g // slender | |||
r (bh r@ | |||
ríomh ri:@v | |||
s) r (A R | |||
_) ramh raU | |||
r r // broad | |||
L01) r R // slender | |||
_) r (L01 R | |||
L12i) r (e_ Z | |||
L12i) r (t_ Z | |||
rr R | |||
rg r@g | |||
L01) rg R@g // slender | |||
r (bh r@ | |||
ríomh ri:@v | |||
s) r (A R | |||
_) ramh raU | |||
.group s | |||
s s // broad | |||
L01) s S // slender | |||
s (L01 S // slender | |||
s (cL01 S | |||
s (CCL01 S // slender | |||
s (pCé s // broad | |||
sh h | |||
sh (CL01 h | |||
sh (L01 h; | |||
s (lL01 S | |||
s s // broad | |||
L01) s S // slender | |||
s (L01 S // slender | |||
s (cL01 S | |||
s (CCL01 S // slender | |||
s (pCé s // broad | |||
?1 _t_) s (@ | |||
sh h | |||
sh (CL01 h | |||
sh (L01 h; | |||
s (lL01 S | |||
.group t | |||
t t[ // broad | |||
L01) t c // slender | |||
t (í++n tS //slender | |||
t (eo++ tS | |||
t (L01 c // slender | |||
L01C) t tS //slender after consonant | |||
t (CL01 tS // slender with following consonant before vowels | |||
th h | |||
th (L01 h; | |||
L01C) th h | |||
_) ts t[ //eclipsis broad | |||
_) ts (L01 t; // eclipsis slender | |||
L01) th h | |||
taine (_ t[In%E | |||
ao) th (_ | |||
thne (_ h@nE | |||
A) th (_ // silent th at word end | |||
t t[ // broad | |||
L01) t c // slender | |||
t (í++n tS // slender | |||
t (eo++ tS | |||
t (L01 c // slender | |||
?1 _) t (_L01 c | |||
L01C) t tS // slender after consonant | |||
t (CL01 tS // slender with following consonant before vowels | |||
?1 _d_) t (@ | |||
th h | |||
th (L01 h; | |||
L01C) th h | |||
_) ts t[ // eclipsis broad | |||
_) ts (L01 t; // eclipsis slender | |||
?1 _) t (_s t[ // eclipsis broad | |||
?1 _) t (_sL01 t; // eclipsis slender | |||
L01) th h | |||
taine (_ t[In%E | |||
ao) th (_ | |||
thne (_ h@nE | |||
A) th (_ // silent th at word end | |||
.group u | |||
u U# | |||
ua u@ | |||
uai u@ | |||
uai (g ui | |||
uai (d ui | |||
uá u:'A: | |||
ui I | |||
uinn (_ 'i:n | |||
uinti U#'i:ntI | |||
_b) uí wi: | |||
_bh) uí wi: | |||
g) uí wi: | |||
umh u: | |||
L03) ui @I | |||
_d) u (l_ O# | |||
g) ui (gh_ @i: | |||
gh) ui (gh_ @i: | |||
uí i: | |||
uachai 'ux@ | |||
u U# | |||
ua u@ | |||
uai u@ | |||
uai (g ui | |||
uai (d ui | |||
uá u:'A: | |||
ui I | |||
uinn (_ 'i:n | |||
uinti U#'i:ntI | |||
_b) uí wi: | |||
_bh) uí wi: | |||
g) uí wi: | |||
umh u: | |||
L03) ui @I | |||
_d) u (l_ O# | |||
g) ui (gh_ @i: | |||
gh) ui (gh_ @i: | |||
uí i: | |||
uachai 'ux@ | |||
.group ú | |||
ú u: | |||
únmh u:nv | |||
ú u: | |||
únmh u:nv | |||
úi (r u: | |||
úi (r u: | |||
// words which contain j k q v w x y z, speak as English | |||
.group j | |||
j dZ | |||
j _^_EN | |||
.group k | |||
k _^_EN | |||
.group q | |||
q k | |||
qu (A kw | |||
q _^_EN | |||
.group v | |||
v v | |||
v _^_EN | |||
.group w | |||
w w | |||
w _^_EN | |||
.group x | |||
x ks | |||
_) x z | |||
x _^_EN | |||
.group y | |||
y (A j | |||
_A) y j | |||
y i | |||
y _^_EN | |||
.group z | |||
z z | |||
z _^_EN | |||
.group | |||
í 'i: | |||
@@ -5419,6 +5419,7 @@ _″ duplA|ApostR2o:f | |||
≠ nEmEJEnlY: | |||
_ˇ lEfEle:n^i:l | |||
_¡ AlSo:indEks | |||
_braille bR2Ail:E | |||
// Alphabets |
@@ -1166,6 +1166,7 @@ _tetszé) s S | |||
körö) s (szeg S | |||
kolbászo) s S | |||
feldolgozá) s S | |||
_ki) s (szín S | |||
.group ss | |||
ssz ss2 |
@@ -1399,6 +1399,7 @@ vondel $alt | |||
accessoire aksEsw'ar@ | |||
accessoires aksEsw'ar@s | |||
actiepunt Aksip8nt | |||
adhesie Ath'e:zi | |||
agenda $2 | |||
aldus Ald'8s | |||
alles Al@s | |||
@@ -1409,7 +1410,6 @@ armand _^_FR | |||
augustus VUQ'8st8s | |||
bacterie bAkt'I:ri | |||
banengids $alt3 | |||
bascule $2 | |||
beha be:_h'a: | |||
beige bEZ@ | |||
benard b@nArt | |||
@@ -1438,15 +1438,16 @@ chassis SAs'i | |||
chat tSEt | |||
check tSEk | |||
chiffon Sif'On | |||
cohesie $2 | |||
contour ko:nt'ur | |||
controle $2 | |||
coureur ku:r'Y:r | |||
crèches krES@s | |||
damascering damA;s'e:rIN | |||
december $2 | |||
desillusie dEsIlyzi | |||
dieet $2 | |||
diesel diz@l | |||
discipline $3 | |||
//discussie $2 | |||
divers div'Ers | |||
diftongering dIft,ON'e:rIN | |||
@@ -1456,7 +1457,9 @@ eensgelijks e:nsQ@l'EIks | |||
elfstedentocht ,Elf'ste:d@ntoQt | |||
embouchuur A~buS'yr // embouchure | |||
enorm $2 | |||
erosie e:r'o:zi | |||
eucharistie $4 | |||
explosie $2 | |||
februari fe:bry'a:ri | |||
fiche fiS@ | |||
franchise frA'Si:z@ | |||
@@ -1474,6 +1477,7 @@ ingevolge $3 | |||
ingrediënt $4 | |||
ingenieur Inzj@nj'Y:r | |||
informatie $3 | |||
invasie $2 | |||
januari $3 | |||
kadaster $2 | |||
mangat $alt3 |
@@ -254,12 +254,14 @@ | |||
@) es (_S2qd 'Es // double the previous vowel | |||
@) es (_$w_alt2S1 s // just remove 's' | |||
KAC) es (_S2e @s | |||
es (ie_ e:z | |||
@) essen (_S5qd 'Es@n | |||
@) eres (_S4qd @r'Es | |||
@) eressen (_S7sq @r'Es@n | |||
@) etten (_S3 @n | |||
@) es (_$p_alt @s // for wors which end on [@] with multiple on 's'. | |||
@) esisch 'e:zis | |||
euille @'y | |||
eum (_$w_alt 'e:8m | |||
@mus) eum (_ ,e:8m // compounds | |||
@@ -370,6 +372,7 @@ | |||
m) ie (_ 'i | |||
p) ie (_ 'i | |||
ss) ie (_ =i | |||
s) ië (_ =i@ | |||
ieus (_ ij'Y:s | |||
ieuze (_ ij'Y:z@ | |||
ieuzer (_ ij'Y:z@r | |||
@@ -393,6 +396,9 @@ | |||
ie (CtjeX_ 'i | |||
ie (ren_ 'i | |||
ie (rd_ 'i | |||
iën (_ 'i@n | |||
CAns) ie (_ =i | |||
CAss) ie (_ =i | |||
@) ig (_S2dq =@x | |||
@) ige (_S3dq =@Q@ | |||
@) igen (_ =@Q@n | |||
@@ -409,6 +415,9 @@ | |||
&) iko (_ =iko: | |||
_) in (C@P2 'In | |||
// _) in (gP2 'In | |||
_) in (do In | |||
ine (_ 'in@ | |||
ines (_ 'in@s | |||
io (nage iO | |||
io (de_ i'o: | |||
iodes (_ i'o:d@s | |||
@@ -532,7 +541,6 @@ _) inn (@P2 'I // ?? inneren | |||
pl) oi (t v#A | |||
c) oi (ffu v#A | |||
pr) o (gram o: | |||
_) on (@P2 %On | |||
oo (X 'o: | |||
oon 'o:n // in compounds, eg. telefoongesprek | |||
oo (C_ 'o: | |||
@@ -555,6 +563,7 @@ _) inn (@P2 'I // ?? inneren | |||
.group on | |||
_) on (@P2 %On | |||
_) onaan (@P5 On'a:n | |||
_) onder (@P5 'Ond@r | |||
_) onge (@P4 ,OnQ@ | |||
@@ -579,6 +588,7 @@ _) inn (@P2 'I // ?? inneren | |||
.group p | |||
p p | |||
p) p | |||
@@ -653,6 +663,7 @@ _) inn (@P2 'I // ?? inneren | |||
@) si (o S | |||
A) si (o Z | |||
@) ssi (o S | |||
CAr) sie (_ =zi | |||
_) standaard (@P9 st'Anda:rt | |||
@) straat (_S6 stra:t | |||
@@ -727,6 +738,7 @@ _) inn (@P2 'I // ?? inneren | |||
uw (_ yU | |||
_) uit (@P3 'Wyt | |||
uul (_ 'yl // from -ule | |||
us (_ 8s | |||
u (sie_ 'y | |||
@) ute (_ 'yt |
@@ -319,18 +319,19 @@ umas $u $nounf | |||
// pronouns | |||
eu $u+ $verbf | |||
tu $u+ | |||
você vose $u2+ | |||
ele 'ely $u+ | |||
ela $u+ | |||
nós $u+ | |||
vós $u+ | |||
vocês $u2+ | |||
eles $u+ | |||
elas $u+ | |||
tu $u+ $verbf | |||
você vose $u2+ $verbf | |||
ele 'ely $u+ $verbf | |||
ela $u+ $verbf | |||
nós $u+ $verbf | |||
vós $u+ $verbf | |||
vocês $u2+ $verbf | |||
eles $u+ $verbf | |||
elas $u+ $verbf | |||
me $u // reflexive | |||
te $u | |||
me $u $verbf | |||
te $u $verbf | |||
nos $u $nounf | |||
la $u | |||
lo $u | |||
@@ -743,9 +744,12 @@ corvos $alt | |||
coto $alt2 | |||
cratera $alt | |||
crede $alt2 | |||
decore $alt | |||
desapego $alt2 $noun | |||
descabelo $alt | |||
descordo $alt | |||
desemprego $alt2 | |||
desemprego $alt $verb | |||
desespero $alt2 $noun | |||
desfecho $alt2 | |||
desprezo $alt2 $noun | |||
@@ -854,6 +858,7 @@ jogo $alt2 $noun | |||
joguete $alt2 | |||
lambreta $alt2 | |||
lebre $alt | |||
leste $alt2 $verb | |||
lopes $alt | |||
maior $alt | |||
maleta $alt2 | |||
@@ -918,6 +923,7 @@ paralelo $alt | |||
parede $alt2 | |||
pastora $alt2 | |||
pedra $alt | |||
pela $alt $verb | |||
pelego $alt2 | |||
pelo $alt $verb | |||
peso $alt $verb | |||
@@ -986,7 +992,9 @@ sufocos $alt2 | |||
suporto $alt | |||
suor swOr | |||
tapete $alt2 | |||
temores $alt2 | |||
tempero $alt2 $noun | |||
terrores $alt2 | |||
teta $alt2 | |||
tetra $alt | |||
tocha $alt |
@@ -359,30 +359,36 @@ | |||
_perd) e (L05_ e | |||
_quis) e (L05_ E | |||
_soub) e (L05_ E | |||
tend) e (L06_ e / a- con- en- es- | |||
_mord) e (L06_ e | |||
_rend) e (L06_ e | |||
_vend) e (L06_ e | |||
tend) e (L06_ e / a- con- en- es- | |||
_compreend) e (L06_ e | |||
prend) e (L06_ e / a- rea- des- desa- | |||
_arrepend) e (L06_ e | |||
_defend) e (L06_ e | |||
_depend) e (L06_ e | |||
_escond) e (L06_ e | |||
preend) e (L06_ e / com- a- re- sur- | |||
respond) e (L06_ e // cor- | |||
_enraivec) e (L07_ e | |||
_espairec) e (L07_ e | |||
bat) e (L07_ e // re- com- | |||
ced) e (L07_ e // pro- con- su- | |||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | |||
mov) e (L07_ e / re- co- | |||
viv) e (L07_ e // re- | |||
_beb) e (L07_ e | |||
_com) e (L07_ e | |||
_tem) e (L07_ e | |||
colh) e (L07_ e // & es- | |||
corr) e (L07_ e // per- con- in- so- dis- | |||
ench) e (L07_ e / pre- | |||
nasc) e (L07_ e / re- | |||
tend) e (L07_ e / en- con- a- es- | |||
torc) e (L07_ e // con- | |||
venc) e (L07_ e // con- | |||
vert) e (L07_ e // in- re- con- | |||
volv) e (L07_ e de- en- re- | |||
_eleg) e (L07_ e | |||
_ergu) e (L07_ e | |||
_escond) e (L06_ e | |||
_mord) e (L06_ e | |||
_mord) e (L07_ e | |||
_morr) e (L07_ e | |||
_perd) e (L07_ e | |||
@@ -390,48 +396,54 @@ _escond) e (L06_ e | |||
merec) e (L07_ e // des- | |||
padec) e (L07_ e // com- | |||
parec) e (L07_ e // a- rea- com- desa- | |||
prend) e (L07_ e // a- rea- des- | |||
screv) e (L07_ e / e- in- ree- pre- de- | |||
_abastec) e (L07_ e | |||
_aborrec) e (L07_ e | |||
_absolv) e (L07_ e | |||
_adoec) e (L07_ e | |||
_adormec) e (L07_ e | |||
_agradec) e (L07_ e | |||
_amanhec) e (L07_ e | |||
_amolec) e (L07_ e | |||
_anoitec) e (L07_ e | |||
_arrepend) e (L06_ e | |||
_arrepend) e (L07_ e | |||
_cresc) e (L07_ e | |||
_defend) e (L06_ e | |||
_defend) e (L07_ e | |||
_depend) e (L06_ e | |||
_depend) e (L07_ e | |||
_desguarnec) e (L07_ e | |||
_emagrec) e (L07_ e | |||
_endurec) e (L07_ e | |||
_enlouquec) e (L07_ e | |||
_enraivec) e (L07_ e | |||
_entristec) e (L07_ e | |||
_envaidec) e (L07_ e | |||
_envelhec) e (L07_ e | |||
_esclarec) e (L07_ e | |||
_escond) e (L07_ e | |||
_escurec) e (L07_ e | |||
_espairec) e (L07_ e | |||
_esquec) e (L07_ e | |||
_interromp) e (L07_ e | |||
obedec) e (L07_ e / des- | |||
_suspend) e (L07_ e | |||
_perec) e (L07_ e | |||
_rejuvenec) e (L07_ e | |||
aprend) e (L07_ e // re- | |||
_resolv) e (L07_ e | |||
_suspend) e (L07_ e | |||
conhec) e (L07_ e // & re- des- | |||
tend) e (L07_ e / en- con- a- es- | |||
estabelec) e (L07_ e / re- | |||
favorec) e (L07_ e / des- | |||
obedec) e (L07_ e / des- | |||
preend) e (L07_ e // sur- com- | |||
proteg) e (L07_ e / des- | |||
respond) e (L07_ e // cor- | |||
qu) e (brL04_ E | |||
acel) e (rL04_ E / des- | |||
_hosp) e (dL03_ E | |||
_amort) e (çL03_ e | |||
_in) e (ptL03_ E | |||
_gr) e (gL03_ e | |||
_n) e (grL03_ e | |||
_estr) ei (L03_ EI | |||
_inv) e (jL04_ E | |||
_dec) e (pL04_ E | |||
_in) e (ptL03_ E | |||
_p) e (quL02_ E | |||
_s) e (quL02_ E | |||
l) e (que_ E | |||
@@ -446,6 +458,7 @@ _amort) e (çL03_ e | |||
_sup) e (rL04_ E | |||
_tol) e (rL04_ E | |||
_ven) e (rL04_ E | |||
acel) e (rL04_ E / des- | |||
_coop) e (rL04_ E | |||
_temp) e (rL04_ E | |||
_v) e (rbL03_ E | |||
@@ -459,12 +472,12 @@ _amort) e (çL03_ e | |||
_bez) e (rrL03_ e | |||
_inv) e (rtL03_ e | |||
_f) e (rvL03_ e | |||
_enraiv) e (çL03_ e | |||
_p) e (sL01_ E | |||
_d) e (scL02_ E | |||
_cr) e (scL02_ E | |||
_p) e (scL03_ E | |||
_m) e (sclL04 E | |||
_d) e (spL02_ E | |||
_p) e (squL02_ E | |||
_l) e (ssL02_ e | |||
_esp) e (ssL03_ e | |||
@@ -486,35 +499,39 @@ _embel) e (zL04_ E | |||
_acont) e (çL01_ e | |||
_arref) e (çL01_ e | |||
_emagr) e (çL03 | |||
pr) e (çL03_ e / a- | |||
mer) e (çL03_ e / des- | |||
pad) e (çL03_ e // com- | |||
par) e (çL03_ e // a- re- com- rea- desa- | |||
_ado) e (çL03_ e | |||
_aqu) e (çL03_ e | |||
_car) e (çL03_ e | |||
_mer) e (çL03_ e | |||
pad) e (çL03_ e // com- | |||
_per) e (çL03_ e | |||
_per) e (çL03_ e_ | |||
conh) e (çL03_ e // re- | |||
obed) e (çL03_ e / des- | |||
_esqu) e (çL03_ e | |||
_forn) e (çL03_ e | |||
obed) e (çL03_ e / des- | |||
_ofer) e (çL03_ e | |||
pr) e (çL03_ e / a- | |||
_espair) e (çL03_ e | |||
abast) e (çL03_ e // re- | |||
_aborr) e (çL03_ e | |||
_agrad) e (çL03_ e | |||
_amanh) e (çL03_ e | |||
_amort) e (çL03_ e | |||
_anoit) e (çL03_ e | |||
_desguarnec) e (çL03_ e | |||
_enfraqu) e (çL03_ e | |||
_enlouqu) e (çL03_ e | |||
_enraiv) e (çL03_ e | |||
_enriqu) e (çL03_ e | |||
_entrist) e (çL03_ e | |||
_envaid) e (çL03_ e | |||
_envelh) e (çL03_ e | |||
_esclar) e (çL03_ e | |||
_espair) e (çL03_ e | |||
_estrem) e (çL03_ e | |||
_fortal) e (çL03_ e | |||
_rejuven) e (çL03_ e | |||
estabel) e (çL03_ e / re- | |||
//endsort | |||
@@ -811,8 +828,9 @@ _rejuven) e (çL03_ e | |||
_deb) o (chL04_ O | |||
_desabr) o (chL04_ O | |||
_s) o (frL02_ O | |||
r) o (gL04_ O / inter- | |||
_j) o (gL04_ O | |||
_r) o (gL04_ O | |||
_af) o (gL04_ O | |||
_adv) o (gL04_ O | |||
_ref) o (gL04_ O | |||
_ap) oi (L01_ OI | |||
@@ -822,6 +840,7 @@ _desabr) o (chL04_ O | |||
_m) o (lhL04_ O | |||
env) o (lvL02_ O / des- | |||
_abs) o (lvL02_ O | |||
_dev) o (lvL02_ O | |||
_res) o (lvL02_ O | |||
_rev) o (lvL02_ O | |||
_ent) o (pL02_ O | |||
@@ -835,6 +854,8 @@ _desabr) o (chL04_ O | |||
_r) o (snL04_ O | |||
_c) o (spL02_ O | |||
p) ostos (_ Ost=Us# // dispostos etc. | |||
_ad) o (çL03_ O | |||
_end) o (çL03_ O | |||
//endsort | |||
.group ô | |||
@@ -909,7 +930,7 @@ _desabr) o (chL04_ O | |||
r (C *@- | |||
A) r (A * | |||
A) r (_A * | |||
rr x | |||
rr rx | |||
XC) r (A R | |||
C) r (A * | |||
//?1 C) r (A r |
@@ -2,7 +2,7 @@ | |||
88 phoneme tables | |||
new total | |||
base 109 109 | |||
consonants 10 118 | |||
consonants 11 119 | |||
base2 26 125 | |||
en 54 156 | |||
en-n 33 156 | |||
@@ -48,8 +48,8 @@ consonants 10 118 | |||
es-la 1 125 | |||
ca 11 127 | |||
an 4 125 | |||
pt 29 140 | |||
pt-pt 20 140 | |||
pt 32 143 | |||
pt-pt 20 143 | |||
ro 36 148 | |||
el 10 125 | |||
grc 12 129 | |||
@@ -450,7 +450,7 @@ l/l_ [l] base | |||
[l/] fr | |||
l/l_@ [l/3] base | |||
[l/] fr | |||
l/l@ [¨\0] base | |||
l/l@ [¨ì,] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -484,7 +484,7 @@ l/L2_oL [l/2] base | |||
l/L2_uL [l/2] base | |||
l/l_3 [l/] de | |||
l/l_4 [ll] sq | |||
l/la [¨\0] base | |||
l/la [¨ì,] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -492,7 +492,7 @@ l/la [ | |||
[K] tn | |||
l/l_a [l/3] base | |||
[l/] fr | |||
l/le [¨\0] base | |||
l/le [¨ì,] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -504,7 +504,7 @@ l/L_eL_af [&] af | |||
[&:] af | |||
l/l_front [L] sq | |||
l/l_front_ [l/4] sq | |||
l/li [¨\0] base | |||
l/li [¨ì,] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -518,7 +518,7 @@ ll/ll [L] base | |||
ll/_ll [L] base | |||
l/l_long [l] base | |||
[l] fr | |||
l/lo [¨\0] base | |||
l/lo [¨ì,] base | |||
[l#] base | |||
[l/2] fr | |||
[K] nso | |||
@@ -529,7 +529,7 @@ l^/l_rfx [l.] base | |||
[l;] lt | |||
[l] ru | |||
[l^] ru | |||
l/lu [¨\0] base | |||
l/lu [¨ì,] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -869,13 +869,16 @@ ustop/k_ [k] base | |||
[k] lv | |||
[k] el | |||
[k] sq | |||
ustop/k_asp [kh] consonants | |||
ustop/k_asp [k#] consonants | |||
[kh] consonants | |||
[g#] hi | |||
[kh] zh | |||
[k#] ka | |||
[kh] tn | |||
ustop/k_asp_a [k#] ka | |||
ustop/k_asp_e [k#] ka | |||
ustop/k_asp_a [k#] consonants | |||
[k#] ka | |||
ustop/k_asp_e [k#] consonants | |||
[k#] ka | |||
ustop/k_asp_u [k#] ka | |||
ustop/k_ejc [k`] am | |||
ustop/ki [k] base |
@@ -120,6 +120,23 @@ phoneme kh | |||
WAV(ustop/k_asp, 90) | |||
endphoneme | |||
phoneme k# | |||
vls vel stop | |||
lengthmod 2 | |||
voicingswitch g | |||
Vowelin f1=1 f2=1400 -100 100 f3=-150 80 | |||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/k_asp, 40) | |||
ENDIF | |||
IF nextPhW(#e) OR nextPhW(#i) THEN | |||
WAV(ustop/k_asp_e, 40) | |||
ELIF nextPhW(#o) OR nextPhW(#u) THEN | |||
WAV(ustop/k_asp_a, 25) | |||
ELSE | |||
WAV(ustop/k_asp_a, 30) | |||
ENDIF | |||
endphoneme | |||
phoneme s2 // second part of a long [s:] | |||
vls alv frc sibilant |
@@ -77,9 +77,9 @@ phoneme k# | |||
IF nextPhW(#e) OR nextPhW(#i) THEN | |||
WAV(ustop/k_asp_e, 40) | |||
ELIF nextPhW(#o) OR nextPhW(#u) THEN | |||
WAV(ustop/k_asp_u, 50) | |||
WAV(ustop/k_asp_u, 30) | |||
ELSE | |||
WAV(ustop/k_asp_a, 45) | |||
WAV(ustop/k_asp_a, 35) | |||
ENDIF | |||
endphoneme | |||
@@ -478,7 +478,7 @@ phoneme k | |||
endphoneme | |||
phoneme k# | |||
import_phoneme consonants/kh | |||
import_phoneme consonants/k# | |||
voicingswitch g# | |||
endphoneme | |||
@@ -157,5 +157,3 @@ phoneme s# // This is [s] for Brazil, [S] for Portugal | |||
ipa ʃ | |||
endphoneme | |||
@@ -218,3 +218,19 @@ phoneme * | |||
endphoneme | |||
// testing | |||
phoneme x2 | |||
import_phoneme af/x2 | |||
endphoneme | |||
phoneme x3 | |||
import_phoneme base/x | |||
endphoneme | |||
phoneme R1 | |||
import_phoneme base/R | |||
endphoneme | |||
@@ -731,7 +731,7 @@ endphoneme | |||
phoneme n | |||
vcd alv nasal | |||
Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk | |||
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk | |||
lengthmod 4 | |||
IF KlattSynth THEN | |||
@@ -762,8 +762,8 @@ phoneme n. | |||
vcd rfx nasal | |||
ipa ɳ | |||
starttype n endtype n | |||
Vowelin f1=2 f2=1200 -300 250 f3=-500 80 rms=20 colr=2 | |||
Vowelout f1=2 f2=1200 -300 250 f3=-500 80 rms=20 brk colr=2 | |||
Vowelin f1=2 f2=1700 -300 300 f3=-500 80 rms=20 colr=2 | |||
Vowelout f1=2 f2=1700 -300 300 f3=-500 80 rms=20 brk colr=2 | |||
lengthmod 4 | |||
IF KlattSynth THEN | |||
@@ -1610,9 +1610,9 @@ phoneme x | |||
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | |||
IF nextPh(isPause) THEN | |||
WAV(ufric/x, 120) | |||
WAV(ufric/x, 110) | |||
ENDIF | |||
WAV(ufric/x_hr, 25) | |||
WAV(ufric/x_hr, 20) | |||
endphoneme | |||
@@ -1624,7 +1624,7 @@ phoneme X | |||
IF nextPh(isPause) THEN | |||
WAV(ufric/xx, 70) | |||
ENDIF | |||
WAV(ufric/xx) | |||
WAV(ufric/xx,80) | |||
endphoneme | |||
@@ -1940,4 +1940,3 @@ include ph_korean | |||
phonemetable kl base | |||
include ph_greenlandic | |||
@@ -578,6 +578,7 @@ void LookupLetter(Translator *tr, unsigned int letter, int next_byte, char *ph_b | |||
} // end of LookupLetter | |||
static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'Ef"}; // using phonemes available to all languages | |||
int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
{//========================================================================= | |||
@@ -593,6 +594,8 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
char *p2; | |||
char *pbuf; | |||
ALPHABET *alphabet; | |||
int al_offset; | |||
int al_flags; | |||
int language; | |||
int phontab_1; | |||
int speak_letter_number; | |||
@@ -633,14 +636,21 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
return(0); | |||
} | |||
alphabet = AlphabetFromChar(letter); | |||
al_offset = 0; | |||
al_flags = 0; | |||
if((alphabet = AlphabetFromChar(letter)) != NULL) | |||
{ | |||
al_offset = alphabet->offset; | |||
al_flags = alphabet->flags; | |||
} | |||
if(alphabet != current_alphabet) | |||
{ | |||
// speak the name of the alphabet | |||
current_alphabet = alphabet; | |||
if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME) && (alphabet->offset != translator->letter_bits_offset)) | |||
if((alphabet != NULL) && !(al_flags & AL_DONT_NAME) && (al_offset != translator->letter_bits_offset)) | |||
{ | |||
if((alphabet->flags & AL_DONT_NAME) || (alphabet->offset == translator->langopts.alt_alphabet)) | |||
if((al_flags & AL_DONT_NAME) || (al_offset == translator->langopts.alt_alphabet)) | |||
{ | |||
// don't say the alphabet name | |||
} | |||
@@ -680,7 +690,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
if(ph_buf[0] == 0) | |||
{ | |||
if((alphabet != NULL) && (alphabet->language != 0) && !(alphabet->flags & AL_NOT_LETTERS)) | |||
if((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS)) | |||
language = alphabet->language; | |||
else | |||
language = L('e','n'); | |||
@@ -715,49 +725,27 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
if(ph_buf[0] == 0) | |||
{ | |||
// character name not found | |||
if((letter >= 0x2800) && (letter <= 0x28ff)) | |||
{ | |||
// braille dots symbol | |||
Lookup(translator, "_braille", ph_buf); | |||
if(ph_buf[0] == 0) | |||
{ | |||
EncodePhonemes("br'e:l", ph_buf, NULL); | |||
} | |||
if(ph_buf[0] != 0) | |||
{ | |||
pbuf = ph_buf + strlen(ph_buf); | |||
for(ix=0; ix<8; ix++) | |||
{ | |||
if(letter & (1 << ix)) | |||
{ | |||
*pbuf++ = phonPAUSE_VSHORT; | |||
LookupLetter(translator, '1'+ix, 0, pbuf, 1); | |||
pbuf += strlen(pbuf); | |||
} | |||
} | |||
} | |||
} | |||
if(ph_buf[0]== 0) | |||
{ | |||
if(iswalpha(letter)) | |||
Lookup(translator, "_?A", ph_buf); | |||
if((ph_buf[0]==0) && !iswspace(letter)) | |||
Lookup(translator, "_??", ph_buf); | |||
speak_letter_number = 1; | |||
if(ph_buf[0] == 0) | |||
if(!(al_flags & AL_NO_SYMBOL)) | |||
{ | |||
EncodePhonemes("l'et@", ph_buf, NULL); | |||
if(translator->letter_bits_offset != 0) | |||
speak_letter_number = 0; // non-latin alphabet, no _?? entry, may not be able to speak hexadecimal | |||
if(iswalpha(letter)) | |||
Lookup(translator, "_?A", ph_buf); | |||
if((ph_buf[0]==0) && !iswspace(letter)) | |||
Lookup(translator, "_??", ph_buf); | |||
if(ph_buf[0] == 0) | |||
{ | |||
EncodePhonemes("l'et@", ph_buf, NULL); | |||
} | |||
} | |||
if(!(control & 2) && (alphabet != NULL) && (alphabet->flags & AL_NOT_CODE)) | |||
if(!(control & 2) && (al_flags & AL_NOT_CODE)) | |||
{ | |||
// don't speak the character code number | |||
// don't speak the character code number, unless we want full details of this character | |||
speak_letter_number = 0; | |||
} | |||
@@ -766,14 +754,36 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
if(speak_letter_number) | |||
{ | |||
// speak the hexadecimal number of the character code | |||
sprintf(hexbuf,"%x",letter); | |||
if(al_offset == 0x2800) | |||
{ | |||
// braille dots symbol, list the numbered dots | |||
p2 = hexbuf; | |||
for(ix=0; ix<8; ix++) | |||
{ | |||
if(letter & (1 << ix)) | |||
{ | |||
*p2++ = '1'+ix; | |||
} | |||
} | |||
*p2 = 0; | |||
} | |||
else | |||
{ | |||
// speak the hexadecimal number of the character code | |||
sprintf(hexbuf,"%x",letter); | |||
} | |||
pbuf = ph_buf; | |||
for(p2 = hexbuf; *p2 != 0; p2++) | |||
{ | |||
pbuf += strlen(pbuf); | |||
*pbuf++ = phonPAUSE_VSHORT; | |||
LookupLetter(translator, *p2, 0, pbuf, 1); | |||
if(((pbuf[0] == 0) || (pbuf[0]==phonSWITCH)) && (*p2 >= 'a')) | |||
{ | |||
// This language has no translation for 'a' to 'f', speak English names using base phonemes | |||
EncodePhonemes(hex_letters[*p2 - 'a'], pbuf, NULL); | |||
} | |||
} | |||
strcat(pbuf, pause_string); | |||
} |
@@ -47,7 +47,6 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out) | |||
int replace_flags; | |||
int n_plist_out = 0; | |||
int word_end; | |||
int switched_language = 0; | |||
PHONEME_LIST2 *plist2; | |||
PHONEME_TAB *next=NULL; | |||
@@ -55,11 +54,8 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out) | |||
{ | |||
plist2 = &ph_list2[ix]; | |||
if(plist2->phcode == phonSWITCH) | |||
switched_language ^= 1; | |||
// don't do any substitution if the language has been temporarily changed | |||
if(switched_language == 0) | |||
if(!(plist2->synthflags & SFLAG_SWITCHED_LANG)) | |||
{ | |||
if(ix < (n_ph_list2 -1)) | |||
next = phoneme_tab[ph_list2[ix+1].phcode]; | |||
@@ -81,6 +77,9 @@ static int SubstitutePhonemes(Translator *tr, PHONEME_LIST *plist_out) | |||
if((replace_flags & 2) && ((plist2->stresslevel & 0x7) > 3)) | |||
continue; // this replacement doesn't occur in stressed syllables | |||
if((replace_flags & 4) && (plist2->sourceix == 0)) | |||
continue; // this replacement only occurs at the start of a word | |||
// substitute the replacement phoneme | |||
plist2->phcode = replace_phonemes[k].new_ph; | |||
if((plist2->stresslevel > 1) && (phoneme_tab[plist2->phcode]->phflags & phUNSTRESSED)) | |||
@@ -117,7 +116,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
PHONEME_TAB *next, *next2; | |||
int unstress_count = 0; | |||
int word_stress = 0; | |||
int switched_language = 0; | |||
int current_phoneme_tab; | |||
int max_stress; | |||
int voicing; | |||
int regression; | |||
@@ -166,6 +165,20 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
} | |||
} | |||
// look for switch of phoneme tables | |||
current_phoneme_tab = tr->phoneme_tab_ix; | |||
for(j = 0; j < n_ph_list2; j++) | |||
{ | |||
if(plist2[j].phcode == phonSWITCH) | |||
{ | |||
current_phoneme_tab = plist2[j].tone_ph; | |||
} | |||
if(current_phoneme_tab != tr->phoneme_tab_ix) | |||
{ | |||
plist2[j].synthflags |= SFLAG_SWITCHED_LANG; | |||
} | |||
} | |||
if((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0) | |||
{ | |||
// set consonant clusters to all voiced or all unvoiced | |||
@@ -180,10 +193,12 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
if(ph == NULL) | |||
continue; | |||
if(ph->code == phonSWITCH) | |||
switched_language ^= 1; | |||
if(switched_language) | |||
if(plist2[j].synthflags & SFLAG_SWITCHED_LANG) | |||
{ | |||
stop_propagation = 0; | |||
voicing = 0; | |||
continue; | |||
} | |||
type = ph->type; | |||
@@ -295,8 +310,6 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
ph = phoneme_tab[phonPAUSE]; | |||
ph_list3[0].ph = ph; | |||
switched_language = 0; | |||
for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) | |||
{ | |||
plist3 = &ph_list3[j]; | |||
@@ -333,7 +346,6 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
// change phoneme table | |||
SelectPhonemeTable(plist3->tone_ph); | |||
switched_language ^= SFLAG_SWITCHED_LANG; | |||
} | |||
next = phoneme_tab[plist3[1].phcode]; // the phoneme after this one | |||
plist3[1].ph = next; | |||
@@ -534,7 +546,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) | |||
phlist[ix].ph = ph; | |||
phlist[ix].type = ph->type; | |||
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module | |||
phlist[ix].synthflags = plist3->synthflags | switched_language; | |||
phlist[ix].synthflags = plist3->synthflags; | |||
phlist[ix].stresslevel = plist3->stresslevel & 0xf; | |||
phlist[ix].wordstress = plist3->wordstress; | |||
phlist[ix].tone_ph = plist3->tone_ph; |
@@ -224,6 +224,7 @@ void ProsodyDisplay::SelectPh(int index) | |||
const char *name = "?"; | |||
char buf[120]; | |||
char len_string[20]; | |||
char param_string[20]; | |||
if(index < 0) return; | |||
@@ -245,11 +246,14 @@ void ProsodyDisplay::SelectPh(int index) | |||
y1 = p->pitch1; | |||
y2 = p->pitch2; | |||
len_string[0] = 0; | |||
param_string[0] = 0; | |||
if(p->std_length > 0) | |||
sprintf(len_string," Length %d", p->std_length*2); | |||
if(p->sound_param != 0) | |||
sprintf(param_string,", %d", p->sound_param); | |||
sprintf(buf,"Stress %s%d Amp %2d LengthMod %2d Pitch %3d %3d %s PhFlags %.2x [%s%s]", | |||
emphasized,p->stresslevel&0x7,p->amp, p->length,y1,y2,name,p->ph->phflags, LookupManifest(p->phontab_addr), len_string); | |||
sprintf(buf,"Stress %s%d Amp %2d LengthMod %2d Pitch %3d %3d %s PhFlags %.2x (%s%s)%s", | |||
emphasized,p->stresslevel&0x7,p->amp, p->length,y1,y2,name,p->ph->phflags, LookupManifest(p->phontab_addr), param_string, len_string); | |||
wxLogStatus(wxString(buf,wxConvLocal)); | |||
} | |||
@@ -35,7 +35,7 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.46.45 10.Mar.13"; | |||
const char *version_string = "1.46.46 11.Mar.13"; | |||
const int version_phdata = 0x014640; | |||
int option_device_number = -1; | |||
@@ -1225,9 +1225,15 @@ void InterpretPhoneme(Translator *tr, int control, PHONEME_LIST *plist, PHONEME_ | |||
#ifdef _ESPEAKEDIT | |||
plist->std_length = phdata->pd_param[i_SET_LENGTH]; | |||
if(phdata->sound_addr[0] != 0) | |||
{ | |||
plist->phontab_addr = phdata->sound_addr[0]; // FMT address | |||
plist->sound_param = phdata->sound_param[0]; | |||
} | |||
else | |||
{ | |||
plist->phontab_addr = phdata->sound_addr[1]; // WAV address | |||
plist->sound_param = phdata->sound_param[1]; | |||
} | |||
#endif | |||
} // end of InterpretPhoneme | |||
@@ -1869,7 +1869,6 @@ int SpeakNextClause(FILE *f_in, const void *text_in, int control) | |||
n_phoneme_list = 0; | |||
WcmdqStop(); | |||
embedded_value[EMBED_T] = 0; | |||
return(0); | |||
} | |||
@@ -56,7 +56,7 @@ | |||
#define EMBED_A 3 // amplitude/volume | |||
#define EMBED_R 4 // pitch range/expression | |||
#define EMBED_H 5 // echo/reverberation | |||
#define EMBED_T 6 // different tone for announcing punctuation | |||
#define EMBED_T 6 // different tone for announcing punctuation (not used) | |||
#define EMBED_I 7 // sound icon | |||
#define EMBED_S2 8 // speed (used in synthesize) | |||
#define EMBED_Y 9 // say-as commands | |||
@@ -223,6 +223,7 @@ typedef struct { | |||
#ifdef _ESPEAKEDIT | |||
unsigned char std_length; | |||
unsigned int phontab_addr; | |||
int sound_param; | |||
#endif | |||
} PHONEME_LIST; | |||
@@ -94,6 +94,7 @@ ALPHABET alphabets [] = { | |||
{"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS}, | |||
{"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0}, | |||
{"_eth", OFFSET_ETHIOPIC, 0x1200,0x139f, 0, 0}, | |||
{"_braille", 0x2800, 0x2800,0x28ff, 0, AL_NO_SYMBOL}, | |||
{"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE}, | |||
{"_zh", 0x3100, 0x3100,0x9fff, 0, AL_NOT_CODE}, | |||
{NULL, 0, 0, 0, 0, 0} |
@@ -2489,7 +2489,7 @@ static int TranslateChar(Translator *tr, char *ptr, int prev_in, unsigned int c, | |||
} | |||
static const char *UCase_ga[] = {"bp","bhf","dt","gc","hA","mb","ng","ts","tA","nA",NULL}; | |||
static const char *UCase_ga[] = {"bp","bhf","dt","gc","hA","mb","nd","ng","ts","tA","nA",NULL}; | |||
int UpperCaseInWord(Translator *tr, char *word, int c) | |||
{//===================================================== |
@@ -277,6 +277,7 @@ extern ALPHABET *current_alphabet; | |||
#define AL_NOT_LETTERS 0x02 // don't use the language for speaking letters | |||
#define AL_WORDS 0x04 // use the language to speak words | |||
#define AL_NOT_CODE 0x08 // don't speak the character code | |||
#define AL_NO_SYMBOL 0x10 // don't repeat "symbol" or "character" | |||
#define N_LOPTS 21 |
@@ -192,6 +192,12 @@ static char *fgets_strip(char *buf, int size, FILE *f_in) | |||
if(fgets(buf,size,f_in) == NULL) | |||
return(NULL); | |||
if(buf[0] == '#') | |||
{ | |||
buf[0] = 0; | |||
return(buf); | |||
} | |||
len = strlen(buf); | |||
while((--len > 0) && isspace(buf[len])) | |||
buf[len] = 0; | |||
@@ -389,8 +395,10 @@ void VoiceReset(int tone_only) | |||
// Set voice to the default values | |||
int pk; | |||
static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; | |||
static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; | |||
// static unsigned char default_heights[N_PEAKS] = {140,128,120,110,90,90,128,128,128}; // changed for v.1.47 | |||
// static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; | |||
static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; // previous version | |||
static unsigned char default_widths[N_PEAKS] = {140,128,128,160,171,171,128,128,128}; | |||
static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; | |||
@@ -411,7 +419,7 @@ void VoiceReset(int tone_only) | |||
voice->n_harmonic_peaks = 5; | |||
voice->peak_shape = 0; | |||
voice->voicing = 64; | |||
voice->consonant_amp = 100; | |||
voice->consonant_amp = 85; // change to 85 for v.1.47 was 100 | |||
voice->consonant_ampv = 100; | |||
voice->samplerate = samplerate_native; | |||
memset(voice->klattv,0,sizeof(voice->klattv)); |
@@ -1,5 +1,5 @@ | |||
/*************************************************************************** | |||
* Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||
* Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||
* email: [email protected] * | |||
* * | |||
* This program is free software; you can redistribute it and/or modify * | |||
@@ -244,7 +244,7 @@ static unsigned char wavemult[N_WAVEMULT] = { | |||
105, 98, 90, 83, 76, 69, 62, 55, 49, 43, 37, 32, 27, 22, 18, 14, | |||
11, 8, 5, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; | |||
// set from y = pow(2,x) * 128, x=-1 to 1 | |||
unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = { | |||
@@ -592,7 +592,7 @@ static PaError Pa_OpenDefaultStream2( PaStream** stream, | |||
hostApiOutputParameters.device = Pa_GetDefaultOutputDevice(); | |||
if( hostApiOutputParameters.device == paNoDevice ) | |||
return paDeviceUnavailable; | |||
return paDeviceUnavailable; | |||
hostApiOutputParameters.channelCount = outputChannelCount; | |||
hostApiOutputParameters.sampleFormat = sampleFormat; | |||
@@ -834,15 +834,6 @@ static void WavegenSetEcho(void) | |||
amp = embedded_value[EMBED_H]; | |||
delay = 130; | |||
} | |||
#ifdef deleted | |||
if(embedded_value[EMBED_T] > 0) | |||
{ | |||
// announcing punctuation, add a small echo | |||
// This seems unpopular | |||
amp = embedded_value[EMBED_T] * 8; | |||
delay = 60; | |||
} | |||
#endif | |||
if(delay == 0) | |||
amp = 0; | |||
@@ -854,7 +845,7 @@ static void WavegenSetEcho(void) | |||
if(amp > 20) | |||
echo_length = echo_head * 2; // perhaps allow 2 echo periods if the echo is loud. | |||
// echo_amp units are 1/256ths of the amplitude of the original sound. | |||
// echo_amp units are 1/256ths of the amplitude of the original sound. | |||
echo_amp = amp; | |||
// compensate (partially) for increase in amplitude due to echo | |||
general_amplitude = GetAmplitude(); | |||
@@ -1559,7 +1550,7 @@ static int SetWithRange0(int value, int max) | |||
static void SetPitchFormants() | |||
{//=========================== | |||
int ix; | |||
int factor; | |||
int factor = 256; | |||
int pitch_value; | |||
// adjust formants to give better results for a different voice pitch | |||
@@ -1570,11 +1561,13 @@ static void SetPitchFormants() | |||
{ | |||
// only adjust if the pitch is higher than normal | |||
factor = 256 + (25 * (pitch_value - 50))/50; | |||
for(ix=0; ix<=5; ix++) | |||
{ | |||
wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256; | |||
} | |||
} | |||
for(ix=0; ix<=5; ix++) | |||
{ | |||
wvoice->freq[ix] = (wvoice->freq2[ix] * factor)/256; | |||
} | |||
factor = embedded_value[EMBED_T]*3; | |||
wvoice->height[0] = (wvoice->height2[0] * (256 - factor*2))/256; | |||
wvoice->height[1] = (wvoice->height2[1] * (256 - factor))/256; | |||
@@ -1755,7 +1748,7 @@ if(option_log_frames) | |||
fprintf(f_log,"%3dmS %3d %3d %4d %4d (%3d %3d %3d %3d) to %3d %3d %4d %4d (%3d %3d %3d %3d)\n",length*1000/samplerate, | |||
fr1->ffreq[0],fr1->ffreq[1],fr1->ffreq[2],fr1->ffreq[3], fr1->fheight[0],fr1->fheight[1],fr1->fheight[2],fr1->fheight[3], | |||
fr2->ffreq[0],fr2->ffreq[1],fr2->ffreq[2],fr2->ffreq[3], fr2->fheight[0],fr2->fheight[1],fr2->fheight[2],fr2->fheight[3] ); | |||
fclose(f_log); | |||
f_log=NULL; | |||
} | |||
@@ -2036,7 +2029,7 @@ static int SpeedUp(short *outbuf, int length_in, int length_out, int end_of_text | |||
{ | |||
sonicSetSpeed(sonicSpeedupStream, sonicSpeed); | |||
} | |||
sonicWriteShortToStream(sonicSpeedupStream, outbuf, length_in); | |||
} | |||