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
v _^_EN // not Roman number | v _^_EN // not Roman number | ||||
x _^_EN // not Roman number | x _^_EN // not Roman number | ||||
_?? znak | |||||
_?A b'ukva | |||||
// symbols | // symbols | ||||
% prots'ent $max3 | % prots'ent $max3 | ||||
+ plus $max3 | + plus $max3 |
v w x z Z | 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: | a A a: e E e: i i: | ||||
o o: u u: Y y y: Y: | o o: u u: Y y y: Y: | ||||
t tS v w x | t tS v w x | ||||
Dictionary nl_dict 2013-03-05 | |||||
Dictionary nl_dict 2013-03-11 | |||||
8 @ @- a A a: A~ e | 8 @ @- a A a: A~ e | ||||
E e# E2 e: EI eU i I | E e# E2 e: EI eU i I | ||||
ts; v w x z Z Z; | ts; v w x z Z Z; | ||||
Dictionary pt_dict 2013-03-10 | |||||
Dictionary pt_dict 2013-03-11 | |||||
& &/ &U~ &~ @ @- a A | & &/ &U~ &~ @ @- a A | ||||
aI aU e E eI EI eU EU | aI aU e E eI EI eU EU | ||||
v w x z Z z. | v w x z Z z. | ||||
Dictionary bg_dict 2012-07-15 | |||||
Dictionary bg_dict 2013-03-11 | |||||
@ a e i o u | @ a e i o u | ||||
s. t t# t. t.# v w z | 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# | 0 0# @ a a# A: aI aI# | ||||
aU aU# e E E# e: i I | aU aU# e E E# e: i I |
// precede by _ to distinguish from pronunciation as a language word | // precede by _ to distinguish from pronunciation as a language word | ||||
_a eI | _a eI | ||||
b bi: | |||||
b bi: $atend | |||||
?1 bh v // eclipsis | |||||
c si: | c si: | ||||
d di: | |||||
d di: $atend | |||||
e i: | e i: | ||||
f Ef | f Ef | ||||
g dZi: | |||||
h eItS | |||||
g dZi: $atend | |||||
h eItS $atend | |||||
_i aI | _i aI | ||||
j dZeI | j dZeI | ||||
k keI | k keI | ||||
l El | l El | ||||
m Em | |||||
n En | |||||
m Em $atend | |||||
n En $atend | |||||
_o oU | _o oU | ||||
p pi: | p pi: | ||||
q kju: | q kju: | ||||
r ar | r ar | ||||
s Es | s Es | ||||
t ti: | |||||
t ti: $atend | |||||
u ju: | u ju: | ||||
v vi: | v vi: | ||||
w d'O#b@lju: | w d'O#b@lju: |
// translation rules for Irish Gaeilge | |||||
// translation rules for Irish Gaeilge | |||||
// This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
// written by Ronan McGuirk January 2013 | // written by Ronan McGuirk January 2013 | ||||
// Version 2.5B | // Version 2.5B | ||||
// Conditional rules | |||||
// ?1 allow eclipsis as 2 separate words | |||||
.L01 e i é í // slender vowels | .L01 e i é í // slender vowels | ||||
.L02 c ch d g gh n s // following ea gets ; sounds | .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 | .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 | .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 | .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 | .L08 lc ll nt bhse // for words like cailc | ||||
.L09 cl cr chr f | .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 | .L12 á é ó eo ua // when followed by i | ||||
.L13 oc omb | |||||
.L13 oc omb | |||||
.L14 río dún gnío // followed with mh | .L14 río dún gnío // followed with mh | ||||
.L15 c ch f m d dh g gc gh mh // aoi following | .L15 c ch f m d dh g gc gh mh // aoi following | ||||
.L16 b c bh ch gr ghr // for inn word ending | .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 | .L20 eo eoir eá eabh io iu iú // slender m | ||||
.L21 ll nn ndán nntán | .L21 ll nn ndán nntán | ||||
.L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine | .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 | .L24 b mb bh g gh p ph bp m mh | ||||
.group a | .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 á | .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 | .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 | .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 | .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 | .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 | .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 é | .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 | .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 | .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 | .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 | .group h | ||||
h h // silent | |||||
h h // silent | |||||
.group i | .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 | .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 | .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 | .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 | .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 ó | .group ó | ||||
ó 'o: | |||||
ómhai o:@ | |||||
ó 'o: | |||||
ómhai o:@ | |||||
.group oi | .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 | .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 | .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 | .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 | .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 | .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 ú | .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 | .group j | ||||
j dZ | |||||
j _^_EN | |||||
.group k | |||||
k _^_EN | |||||
.group q | .group q | ||||
q k | |||||
qu (A kw | |||||
q _^_EN | |||||
.group v | .group v | ||||
v v | |||||
v _^_EN | |||||
.group w | .group w | ||||
w w | |||||
w _^_EN | |||||
.group x | .group x | ||||
x ks | |||||
_) x z | |||||
x _^_EN | |||||
.group y | .group y | ||||
y (A j | |||||
_A) y j | |||||
y i | |||||
y _^_EN | |||||
.group z | .group z | ||||
z z | |||||
z _^_EN | |||||
.group | |||||
í 'i: | |||||
≠ nEmEJEnlY: | ≠ nEmEJEnlY: | ||||
_ˇ lEfEle:n^i:l | _ˇ lEfEle:n^i:l | ||||
_¡ AlSo:indEks | _¡ AlSo:indEks | ||||
_braille bR2Ail:E | |||||
// Alphabets | // Alphabets |
körö) s (szeg S | körö) s (szeg S | ||||
kolbászo) s S | kolbászo) s S | ||||
feldolgozá) s S | feldolgozá) s S | ||||
_ki) s (szín S | |||||
.group ss | .group ss | ||||
ssz ss2 | ssz ss2 |
accessoire aksEsw'ar@ | accessoire aksEsw'ar@ | ||||
accessoires aksEsw'ar@s | accessoires aksEsw'ar@s | ||||
actiepunt Aksip8nt | actiepunt Aksip8nt | ||||
adhesie Ath'e:zi | |||||
agenda $2 | agenda $2 | ||||
aldus Ald'8s | aldus Ald'8s | ||||
alles Al@s | alles Al@s | ||||
augustus VUQ'8st8s | augustus VUQ'8st8s | ||||
bacterie bAkt'I:ri | bacterie bAkt'I:ri | ||||
banengids $alt3 | banengids $alt3 | ||||
bascule $2 | |||||
beha be:_h'a: | beha be:_h'a: | ||||
beige bEZ@ | beige bEZ@ | ||||
benard b@nArt | benard b@nArt | ||||
chat tSEt | chat tSEt | ||||
check tSEk | check tSEk | ||||
chiffon Sif'On | chiffon Sif'On | ||||
cohesie $2 | |||||
contour ko:nt'ur | contour ko:nt'ur | ||||
controle $2 | controle $2 | ||||
coureur ku:r'Y:r | coureur ku:r'Y:r | ||||
crèches krES@s | crèches krES@s | ||||
damascering damA;s'e:rIN | damascering damA;s'e:rIN | ||||
december $2 | december $2 | ||||
desillusie dEsIlyzi | |||||
dieet $2 | dieet $2 | ||||
diesel diz@l | diesel diz@l | ||||
discipline $3 | |||||
//discussie $2 | //discussie $2 | ||||
divers div'Ers | divers div'Ers | ||||
diftongering dIft,ON'e:rIN | diftongering dIft,ON'e:rIN | ||||
elfstedentocht ,Elf'ste:d@ntoQt | elfstedentocht ,Elf'ste:d@ntoQt | ||||
embouchuur A~buS'yr // embouchure | embouchuur A~buS'yr // embouchure | ||||
enorm $2 | enorm $2 | ||||
erosie e:r'o:zi | |||||
eucharistie $4 | eucharistie $4 | ||||
explosie $2 | |||||
februari fe:bry'a:ri | februari fe:bry'a:ri | ||||
fiche fiS@ | fiche fiS@ | ||||
franchise frA'Si:z@ | franchise frA'Si:z@ | ||||
ingrediënt $4 | ingrediënt $4 | ||||
ingenieur Inzj@nj'Y:r | ingenieur Inzj@nj'Y:r | ||||
informatie $3 | informatie $3 | ||||
invasie $2 | |||||
januari $3 | januari $3 | ||||
kadaster $2 | kadaster $2 | ||||
mangat $alt3 | mangat $alt3 |
@) es (_S2qd 'Es // double the previous vowel | @) es (_S2qd 'Es // double the previous vowel | ||||
@) es (_$w_alt2S1 s // just remove 's' | @) es (_$w_alt2S1 s // just remove 's' | ||||
KAC) es (_S2e @s | KAC) es (_S2e @s | ||||
es (ie_ e:z | |||||
@) essen (_S5qd 'Es@n | @) essen (_S5qd 'Es@n | ||||
@) eres (_S4qd @r'Es | @) eres (_S4qd @r'Es | ||||
@) eressen (_S7sq @r'Es@n | @) eressen (_S7sq @r'Es@n | ||||
@) etten (_S3 @n | @) etten (_S3 @n | ||||
@) es (_$p_alt @s // for wors which end on [@] with multiple on 's'. | @) es (_$p_alt @s // for wors which end on [@] with multiple on 's'. | ||||
@) esisch 'e:zis | |||||
euille @'y | euille @'y | ||||
eum (_$w_alt 'e:8m | eum (_$w_alt 'e:8m | ||||
@mus) eum (_ ,e:8m // compounds | @mus) eum (_ ,e:8m // compounds | ||||
m) ie (_ 'i | m) ie (_ 'i | ||||
p) ie (_ 'i | p) ie (_ 'i | ||||
ss) ie (_ =i | ss) ie (_ =i | ||||
s) ië (_ =i@ | |||||
ieus (_ ij'Y:s | ieus (_ ij'Y:s | ||||
ieuze (_ ij'Y:z@ | ieuze (_ ij'Y:z@ | ||||
ieuzer (_ ij'Y:z@r | ieuzer (_ ij'Y:z@r | ||||
ie (CtjeX_ 'i | ie (CtjeX_ 'i | ||||
ie (ren_ 'i | ie (ren_ 'i | ||||
ie (rd_ 'i | ie (rd_ 'i | ||||
iën (_ 'i@n | |||||
CAns) ie (_ =i | |||||
CAss) ie (_ =i | |||||
@) ig (_S2dq =@x | @) ig (_S2dq =@x | ||||
@) ige (_S3dq =@Q@ | @) ige (_S3dq =@Q@ | ||||
@) igen (_ =@Q@n | @) igen (_ =@Q@n | ||||
&) iko (_ =iko: | &) iko (_ =iko: | ||||
_) in (C@P2 'In | _) in (C@P2 'In | ||||
// _) in (gP2 'In | // _) in (gP2 'In | ||||
_) in (do In | |||||
ine (_ 'in@ | |||||
ines (_ 'in@s | |||||
io (nage iO | io (nage iO | ||||
io (de_ i'o: | io (de_ i'o: | ||||
iodes (_ i'o:d@s | iodes (_ i'o:d@s | ||||
pl) oi (t v#A | pl) oi (t v#A | ||||
c) oi (ffu v#A | c) oi (ffu v#A | ||||
pr) o (gram o: | pr) o (gram o: | ||||
_) on (@P2 %On | |||||
oo (X 'o: | oo (X 'o: | ||||
oon 'o:n // in compounds, eg. telefoongesprek | oon 'o:n // in compounds, eg. telefoongesprek | ||||
oo (C_ 'o: | oo (C_ 'o: | ||||
.group on | .group on | ||||
_) on (@P2 %On | |||||
_) onaan (@P5 On'a:n | _) onaan (@P5 On'a:n | ||||
_) onder (@P5 'Ond@r | _) onder (@P5 'Ond@r | ||||
_) onge (@P4 ,OnQ@ | _) onge (@P4 ,OnQ@ | ||||
.group p | .group p | ||||
p p | p p | ||||
p) p | p) p | ||||
@) si (o S | @) si (o S | ||||
A) si (o Z | A) si (o Z | ||||
@) ssi (o S | @) ssi (o S | ||||
CAr) sie (_ =zi | |||||
_) standaard (@P9 st'Anda:rt | _) standaard (@P9 st'Anda:rt | ||||
@) straat (_S6 stra:t | @) straat (_S6 stra:t | ||||
uw (_ yU | uw (_ yU | ||||
_) uit (@P3 'Wyt | _) uit (@P3 'Wyt | ||||
uul (_ 'yl // from -ule | |||||
us (_ 8s | us (_ 8s | ||||
u (sie_ 'y | u (sie_ 'y | ||||
@) ute (_ 'yt | @) ute (_ 'yt |
// pronouns | // pronouns | ||||
eu $u+ $verbf | 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 | me $u // reflexive | ||||
te $u | |||||
me $u $verbf | |||||
te $u $verbf | |||||
nos $u $nounf | nos $u $nounf | ||||
la $u | la $u | ||||
lo $u | lo $u | ||||
coto $alt2 | coto $alt2 | ||||
cratera $alt | cratera $alt | ||||
crede $alt2 | crede $alt2 | ||||
decore $alt | |||||
desapego $alt2 $noun | desapego $alt2 $noun | ||||
descabelo $alt | descabelo $alt | ||||
descordo $alt | descordo $alt | ||||
desemprego $alt2 | |||||
desemprego $alt $verb | |||||
desespero $alt2 $noun | desespero $alt2 $noun | ||||
desfecho $alt2 | desfecho $alt2 | ||||
desprezo $alt2 $noun | desprezo $alt2 $noun | ||||
joguete $alt2 | joguete $alt2 | ||||
lambreta $alt2 | lambreta $alt2 | ||||
lebre $alt | lebre $alt | ||||
leste $alt2 $verb | |||||
lopes $alt | lopes $alt | ||||
maior $alt | maior $alt | ||||
maleta $alt2 | maleta $alt2 | ||||
parede $alt2 | parede $alt2 | ||||
pastora $alt2 | pastora $alt2 | ||||
pedra $alt | pedra $alt | ||||
pela $alt $verb | |||||
pelego $alt2 | pelego $alt2 | ||||
pelo $alt $verb | pelo $alt $verb | ||||
peso $alt $verb | peso $alt $verb | ||||
suporto $alt | suporto $alt | ||||
suor swOr | suor swOr | ||||
tapete $alt2 | tapete $alt2 | ||||
temores $alt2 | |||||
tempero $alt2 $noun | tempero $alt2 $noun | ||||
terrores $alt2 | |||||
teta $alt2 | teta $alt2 | ||||
tetra $alt | tetra $alt | ||||
tocha $alt | tocha $alt |
_perd) e (L05_ e | _perd) e (L05_ e | ||||
_quis) e (L05_ E | _quis) e (L05_ E | ||||
_soub) e (L05_ E | _soub) e (L05_ E | ||||
tend) e (L06_ e / a- con- en- es- | |||||
_mord) e (L06_ e | |||||
_rend) e (L06_ e | _rend) e (L06_ e | ||||
_vend) 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- | respond) e (L06_ e // cor- | ||||
_enraivec) e (L07_ e | |||||
_espairec) e (L07_ e | |||||
bat) e (L07_ e // re- com- | bat) e (L07_ e // re- com- | ||||
ced) e (L07_ e // pro- con- su- | ced) e (L07_ e // pro- con- su- | ||||
met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | met) e (L07_ e // co- pro- arre- re- intro- compro- sub- | ||||
mov) e (L07_ e / re- co- | |||||
viv) e (L07_ e // re- | viv) e (L07_ e // re- | ||||
_beb) e (L07_ e | _beb) e (L07_ e | ||||
_com) e (L07_ e | _com) e (L07_ e | ||||
_tem) e (L07_ e | _tem) e (L07_ e | ||||
colh) e (L07_ e // & es- | colh) e (L07_ e // & es- | ||||
corr) e (L07_ e // per- con- in- so- dis- | corr) e (L07_ e // per- con- in- so- dis- | ||||
ench) e (L07_ e / pre- | |||||
nasc) e (L07_ e / re- | nasc) e (L07_ e / re- | ||||
tend) e (L07_ e / en- con- a- es- | |||||
torc) e (L07_ e // con- | torc) e (L07_ e // con- | ||||
venc) e (L07_ e // con- | venc) e (L07_ e // con- | ||||
vert) e (L07_ e // in- re- con- | vert) e (L07_ e // in- re- con- | ||||
volv) e (L07_ e de- en- re- | |||||
_eleg) e (L07_ e | _eleg) e (L07_ e | ||||
_ergu) e (L07_ e | _ergu) e (L07_ e | ||||
_escond) e (L06_ e | |||||
_mord) e (L06_ e | |||||
_mord) e (L07_ e | _mord) e (L07_ e | ||||
_morr) e (L07_ e | _morr) e (L07_ e | ||||
_perd) e (L07_ e | _perd) e (L07_ e | ||||
merec) e (L07_ e // des- | merec) e (L07_ e // des- | ||||
padec) e (L07_ e // com- | padec) e (L07_ e // com- | ||||
parec) e (L07_ e // a- rea- com- desa- | 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 | _aborrec) e (L07_ e | ||||
_absolv) e (L07_ e | |||||
_adoec) e (L07_ e | _adoec) e (L07_ e | ||||
_adormec) e (L07_ e | _adormec) e (L07_ e | ||||
_agradec) e (L07_ e | _agradec) e (L07_ e | ||||
_amanhec) e (L07_ e | _amanhec) e (L07_ e | ||||
_amolec) e (L07_ e | |||||
_anoitec) e (L07_ e | _anoitec) e (L07_ e | ||||
_arrepend) e (L06_ e | |||||
_arrepend) e (L07_ e | _arrepend) e (L07_ e | ||||
_cresc) e (L07_ e | _cresc) e (L07_ e | ||||
_defend) e (L06_ e | |||||
_defend) e (L07_ e | _defend) e (L07_ e | ||||
_depend) e (L06_ e | |||||
_depend) e (L07_ e | _depend) e (L07_ e | ||||
_desguarnec) e (L07_ e | |||||
_emagrec) e (L07_ e | _emagrec) e (L07_ e | ||||
_endurec) e (L07_ e | |||||
_enlouquec) e (L07_ e | _enlouquec) e (L07_ e | ||||
_enraivec) e (L07_ e | |||||
_entristec) e (L07_ e | _entristec) e (L07_ e | ||||
_envaidec) e (L07_ e | _envaidec) e (L07_ e | ||||
_envelhec) e (L07_ e | _envelhec) e (L07_ e | ||||
_esclarec) e (L07_ e | _esclarec) e (L07_ e | ||||
_escond) e (L07_ e | _escond) e (L07_ e | ||||
_escurec) e (L07_ e | _escurec) e (L07_ e | ||||
_espairec) e (L07_ e | |||||
_esquec) e (L07_ e | _esquec) e (L07_ e | ||||
_interromp) e (L07_ e | _interromp) e (L07_ e | ||||
obedec) e (L07_ e / des- | |||||
_suspend) e (L07_ e | |||||
_perec) e (L07_ e | _perec) e (L07_ e | ||||
_rejuvenec) 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- | 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- | preend) e (L07_ e // sur- com- | ||||
proteg) e (L07_ e / des- | |||||
respond) e (L07_ e // cor- | respond) e (L07_ e // cor- | ||||
qu) e (brL04_ E | qu) e (brL04_ E | ||||
acel) e (rL04_ E / des- | |||||
_hosp) e (dL03_ E | _hosp) e (dL03_ E | ||||
_amort) e (çL03_ e | |||||
_in) e (ptL03_ E | |||||
_gr) e (gL03_ e | _gr) e (gL03_ e | ||||
_n) e (grL03_ e | _n) e (grL03_ e | ||||
_estr) ei (L03_ EI | _estr) ei (L03_ EI | ||||
_inv) e (jL04_ E | _inv) e (jL04_ E | ||||
_dec) e (pL04_ E | _dec) e (pL04_ E | ||||
_in) e (ptL03_ E | |||||
_p) e (quL02_ E | _p) e (quL02_ E | ||||
_s) e (quL02_ E | _s) e (quL02_ E | ||||
l) e (que_ E | l) e (que_ E | ||||
_sup) e (rL04_ E | _sup) e (rL04_ E | ||||
_tol) e (rL04_ E | _tol) e (rL04_ E | ||||
_ven) e (rL04_ E | _ven) e (rL04_ E | ||||
acel) e (rL04_ E / des- | |||||
_coop) e (rL04_ E | _coop) e (rL04_ E | ||||
_temp) e (rL04_ E | _temp) e (rL04_ E | ||||
_v) e (rbL03_ E | _v) e (rbL03_ E | ||||
_bez) e (rrL03_ e | _bez) e (rrL03_ e | ||||
_inv) e (rtL03_ e | _inv) e (rtL03_ e | ||||
_f) e (rvL03_ e | _f) e (rvL03_ e | ||||
_enraiv) e (çL03_ e | |||||
_p) e (sL01_ E | _p) e (sL01_ E | ||||
_d) e (scL02_ E | _d) e (scL02_ E | ||||
_cr) e (scL02_ E | _cr) e (scL02_ E | ||||
_p) e (scL03_ E | _p) e (scL03_ E | ||||
_m) e (sclL04 E | _m) e (sclL04 E | ||||
_d) e (spL02_ E | |||||
_p) e (squL02_ E | _p) e (squL02_ E | ||||
_l) e (ssL02_ e | _l) e (ssL02_ e | ||||
_esp) e (ssL03_ e | _esp) e (ssL03_ e | ||||
_acont) e (çL01_ e | _acont) e (çL01_ e | ||||
_arref) e (çL01_ e | _arref) e (çL01_ e | ||||
_emagr) e (çL03 | _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- | par) e (çL03_ e // a- re- com- rea- desa- | ||||
_ado) e (çL03_ e | _ado) e (çL03_ e | ||||
_aqu) e (çL03_ e | _aqu) e (çL03_ e | ||||
_car) 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- | conh) e (çL03_ e // re- | ||||
obed) e (çL03_ e / des- | |||||
_esqu) e (çL03_ e | _esqu) e (çL03_ e | ||||
_forn) e (çL03_ e | _forn) e (çL03_ e | ||||
obed) e (çL03_ e / des- | |||||
_ofer) e (çL03_ e | _ofer) e (çL03_ e | ||||
pr) e (çL03_ e / a- | |||||
_espair) e (çL03_ e | |||||
abast) e (çL03_ e // re- | abast) e (çL03_ e // re- | ||||
_aborr) e (çL03_ e | _aborr) e (çL03_ e | ||||
_agrad) e (çL03_ e | _agrad) e (çL03_ e | ||||
_amanh) e (çL03_ e | _amanh) e (çL03_ e | ||||
_amort) e (çL03_ e | |||||
_anoit) e (çL03_ e | _anoit) e (çL03_ e | ||||
_desguarnec) e (çL03_ e | |||||
_enfraqu) e (çL03_ e | _enfraqu) e (çL03_ e | ||||
_enlouqu) e (çL03_ e | _enlouqu) e (çL03_ e | ||||
_enraiv) e (çL03_ e | |||||
_enriqu) e (çL03_ e | _enriqu) e (çL03_ e | ||||
_entrist) e (çL03_ e | _entrist) e (çL03_ e | ||||
_envaid) e (çL03_ e | _envaid) e (çL03_ e | ||||
_envelh) e (çL03_ e | _envelh) e (çL03_ e | ||||
_esclar) e (çL03_ e | _esclar) e (çL03_ e | ||||
_espair) e (çL03_ e | |||||
_estrem) e (çL03_ e | _estrem) e (çL03_ e | ||||
_fortal) e (çL03_ e | _fortal) e (çL03_ e | ||||
_rejuven) e (çL03_ e | _rejuven) e (çL03_ e | ||||
estabel) e (çL03_ e / re- | |||||
//endsort | //endsort | ||||
_deb) o (chL04_ O | _deb) o (chL04_ O | ||||
_desabr) o (chL04_ O | _desabr) o (chL04_ O | ||||
_s) o (frL02_ O | _s) o (frL02_ O | ||||
r) o (gL04_ O / inter- | |||||
_j) o (gL04_ O | _j) o (gL04_ O | ||||
_r) o (gL04_ O | |||||
_af) o (gL04_ O | |||||
_adv) o (gL04_ O | _adv) o (gL04_ O | ||||
_ref) o (gL04_ O | _ref) o (gL04_ O | ||||
_ap) oi (L01_ OI | _ap) oi (L01_ OI | ||||
_m) o (lhL04_ O | _m) o (lhL04_ O | ||||
env) o (lvL02_ O / des- | env) o (lvL02_ O / des- | ||||
_abs) o (lvL02_ O | _abs) o (lvL02_ O | ||||
_dev) o (lvL02_ O | |||||
_res) o (lvL02_ O | _res) o (lvL02_ O | ||||
_rev) o (lvL02_ O | _rev) o (lvL02_ O | ||||
_ent) o (pL02_ O | _ent) o (pL02_ O | ||||
_r) o (snL04_ O | _r) o (snL04_ O | ||||
_c) o (spL02_ O | _c) o (spL02_ O | ||||
p) ostos (_ Ost=Us# // dispostos etc. | p) ostos (_ Ost=Us# // dispostos etc. | ||||
_ad) o (çL03_ O | |||||
_end) o (çL03_ O | |||||
//endsort | //endsort | ||||
.group ô | .group ô | ||||
r (C *@- | r (C *@- | ||||
A) r (A * | A) r (A * | ||||
A) r (_A * | A) r (_A * | ||||
rr x | |||||
rr rx | |||||
XC) r (A R | XC) r (A R | ||||
C) r (A * | C) r (A * | ||||
//?1 C) r (A r | //?1 C) r (A r |
88 phoneme tables | 88 phoneme tables | ||||
new total | new total | ||||
base 109 109 | base 109 109 | ||||
consonants 10 118 | |||||
consonants 11 119 | |||||
base2 26 125 | base2 26 125 | ||||
en 54 156 | en 54 156 | ||||
en-n 33 156 | en-n 33 156 | ||||
es-la 1 125 | es-la 1 125 | ||||
ca 11 127 | ca 11 127 | ||||
an 4 125 | an 4 125 | ||||
pt 29 140 | |||||
pt-pt 20 140 | |||||
pt 32 143 | |||||
pt-pt 20 143 | |||||
ro 36 148 | ro 36 148 | ||||
el 10 125 | el 10 125 | ||||
grc 12 129 | grc 12 129 | ||||
[l/] fr | [l/] fr | ||||
l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/l@ [¨\0] base | |||||
l/l@ [¨ì,] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
l/L2_uL [l/2] base | l/L2_uL [l/2] base | ||||
l/l_3 [l/] de | l/l_3 [l/] de | ||||
l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
l/la [¨\0] base | |||||
l/la [¨ì,] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[K] tn | [K] tn | ||||
l/l_a [l/3] base | l/l_a [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/le [¨\0] base | |||||
l/le [¨ì,] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[&:] af | [&:] af | ||||
l/l_front [L] sq | l/l_front [L] sq | ||||
l/l_front_ [l/4] sq | l/l_front_ [l/4] sq | ||||
l/li [¨\0] base | |||||
l/li [¨ì,] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
ll/_ll [L] base | ll/_ll [L] base | ||||
l/l_long [l] base | l/l_long [l] base | ||||
[l] fr | [l] fr | ||||
l/lo [¨\0] base | |||||
l/lo [¨ì,] base | |||||
[l#] base | [l#] base | ||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso | ||||
[l;] lt | [l;] lt | ||||
[l] ru | [l] ru | ||||
[l^] ru | [l^] ru | ||||
l/lu [¨\0] base | |||||
l/lu [¨ì,] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[k] lv | [k] lv | ||||
[k] el | [k] el | ||||
[k] sq | [k] sq | ||||
ustop/k_asp [kh] consonants | |||||
ustop/k_asp [k#] consonants | |||||
[kh] consonants | |||||
[g#] hi | [g#] hi | ||||
[kh] zh | [kh] zh | ||||
[k#] ka | [k#] ka | ||||
[kh] tn | [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_asp_u [k#] ka | ||||
ustop/k_ejc [k`] am | ustop/k_ejc [k`] am | ||||
ustop/ki [k] base | ustop/ki [k] base |
WAV(ustop/k_asp, 90) | WAV(ustop/k_asp, 90) | ||||
endphoneme | 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:] | phoneme s2 // second part of a long [s:] | ||||
vls alv frc sibilant | vls alv frc sibilant |
IF nextPhW(#e) OR nextPhW(#i) THEN | IF nextPhW(#e) OR nextPhW(#i) THEN | ||||
WAV(ustop/k_asp_e, 40) | WAV(ustop/k_asp_e, 40) | ||||
ELIF nextPhW(#o) OR nextPhW(#u) THEN | ELIF nextPhW(#o) OR nextPhW(#u) THEN | ||||
WAV(ustop/k_asp_u, 50) | |||||
WAV(ustop/k_asp_u, 30) | |||||
ELSE | ELSE | ||||
WAV(ustop/k_asp_a, 45) | |||||
WAV(ustop/k_asp_a, 35) | |||||
ENDIF | ENDIF | ||||
endphoneme | endphoneme | ||||
endphoneme | endphoneme | ||||
phoneme k# | phoneme k# | ||||
import_phoneme consonants/kh | |||||
import_phoneme consonants/k# | |||||
voicingswitch g# | voicingswitch g# | ||||
endphoneme | endphoneme | ||||
ipa ʃ | ipa ʃ | ||||
endphoneme | endphoneme | ||||
endphoneme | endphoneme | ||||
// testing | |||||
phoneme x2 | |||||
import_phoneme af/x2 | |||||
endphoneme | |||||
phoneme x3 | |||||
import_phoneme base/x | |||||
endphoneme | |||||
phoneme R1 | |||||
import_phoneme base/R | |||||
endphoneme | |||||
phoneme n | phoneme n | ||||
vcd alv nasal | 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 | lengthmod 4 | ||||
IF KlattSynth THEN | IF KlattSynth THEN | ||||
vcd rfx nasal | vcd rfx nasal | ||||
ipa ɳ | ipa ɳ | ||||
starttype n endtype n | 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 | lengthmod 4 | ||||
IF KlattSynth THEN | IF KlattSynth THEN | ||||
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | ||||
IF nextPh(isPause) THEN | IF nextPh(isPause) THEN | ||||
WAV(ufric/x, 120) | |||||
WAV(ufric/x, 110) | |||||
ENDIF | ENDIF | ||||
WAV(ufric/x_hr, 25) | |||||
WAV(ufric/x_hr, 20) | |||||
endphoneme | endphoneme | ||||
IF nextPh(isPause) THEN | IF nextPh(isPause) THEN | ||||
WAV(ufric/xx, 70) | WAV(ufric/xx, 70) | ||||
ENDIF | ENDIF | ||||
WAV(ufric/xx) | |||||
WAV(ufric/xx,80) | |||||
endphoneme | endphoneme | ||||
phonemetable kl base | phonemetable kl base | ||||
include ph_greenlandic | include ph_greenlandic | ||||
} // end of LookupLetter | } // 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) | int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | ||||
{//========================================================================= | {//========================================================================= | ||||
char *p2; | char *p2; | ||||
char *pbuf; | char *pbuf; | ||||
ALPHABET *alphabet; | ALPHABET *alphabet; | ||||
int al_offset; | |||||
int al_flags; | |||||
int language; | int language; | ||||
int phontab_1; | int phontab_1; | ||||
int speak_letter_number; | int speak_letter_number; | ||||
return(0); | 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) | if(alphabet != current_alphabet) | ||||
{ | { | ||||
// speak the name of the alphabet | // speak the name of the alphabet | ||||
current_alphabet = 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 | // don't say the alphabet name | ||||
} | } | ||||
if(ph_buf[0] == 0) | 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; | language = alphabet->language; | ||||
else | else | ||||
language = L('e','n'); | language = L('e','n'); | ||||
if(ph_buf[0] == 0) | if(ph_buf[0] == 0) | ||||
{ | { | ||||
// character name not found | // 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(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; | 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; | speak_letter_number = 0; | ||||
} | } | ||||
if(speak_letter_number) | 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; | pbuf = ph_buf; | ||||
for(p2 = hexbuf; *p2 != 0; p2++) | for(p2 = hexbuf; *p2 != 0; p2++) | ||||
{ | { | ||||
pbuf += strlen(pbuf); | pbuf += strlen(pbuf); | ||||
*pbuf++ = phonPAUSE_VSHORT; | *pbuf++ = phonPAUSE_VSHORT; | ||||
LookupLetter(translator, *p2, 0, pbuf, 1); | 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); | strcat(pbuf, pause_string); | ||||
} | } |
int replace_flags; | int replace_flags; | ||||
int n_plist_out = 0; | int n_plist_out = 0; | ||||
int word_end; | int word_end; | ||||
int switched_language = 0; | |||||
PHONEME_LIST2 *plist2; | PHONEME_LIST2 *plist2; | ||||
PHONEME_TAB *next=NULL; | PHONEME_TAB *next=NULL; | ||||
{ | { | ||||
plist2 = &ph_list2[ix]; | plist2 = &ph_list2[ix]; | ||||
if(plist2->phcode == phonSWITCH) | |||||
switched_language ^= 1; | |||||
// don't do any substitution if the language has been temporarily changed | // 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)) | if(ix < (n_ph_list2 -1)) | ||||
next = phoneme_tab[ph_list2[ix+1].phcode]; | next = phoneme_tab[ph_list2[ix+1].phcode]; | ||||
if((replace_flags & 2) && ((plist2->stresslevel & 0x7) > 3)) | if((replace_flags & 2) && ((plist2->stresslevel & 0x7) > 3)) | ||||
continue; // this replacement doesn't occur in stressed syllables | 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 | // substitute the replacement phoneme | ||||
plist2->phcode = replace_phonemes[k].new_ph; | plist2->phcode = replace_phonemes[k].new_ph; | ||||
if((plist2->stresslevel > 1) && (phoneme_tab[plist2->phcode]->phflags & phUNSTRESSED)) | if((plist2->stresslevel > 1) && (phoneme_tab[plist2->phcode]->phflags & phUNSTRESSED)) | ||||
PHONEME_TAB *next, *next2; | PHONEME_TAB *next, *next2; | ||||
int unstress_count = 0; | int unstress_count = 0; | ||||
int word_stress = 0; | int word_stress = 0; | ||||
int switched_language = 0; | |||||
int current_phoneme_tab; | |||||
int max_stress; | int max_stress; | ||||
int voicing; | int voicing; | ||||
int regression; | int regression; | ||||
} | } | ||||
} | } | ||||
// 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) | if((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0) | ||||
{ | { | ||||
// set consonant clusters to all voiced or all unvoiced | // set consonant clusters to all voiced or all unvoiced | ||||
if(ph == NULL) | if(ph == NULL) | ||||
continue; | continue; | ||||
if(ph->code == phonSWITCH) | |||||
switched_language ^= 1; | |||||
if(switched_language) | |||||
if(plist2[j].synthflags & SFLAG_SWITCHED_LANG) | |||||
{ | |||||
stop_propagation = 0; | |||||
voicing = 0; | |||||
continue; | continue; | ||||
} | |||||
type = ph->type; | type = ph->type; | ||||
ph = phoneme_tab[phonPAUSE]; | ph = phoneme_tab[phonPAUSE]; | ||||
ph_list3[0].ph = ph; | ph_list3[0].ph = ph; | ||||
switched_language = 0; | |||||
for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) | for(j=0; insert_ph || ((j < n_ph_list3) && (ix < N_PHONEME_LIST-3)); j++) | ||||
{ | { | ||||
plist3 = &ph_list3[j]; | plist3 = &ph_list3[j]; | ||||
// change phoneme table | // change phoneme table | ||||
SelectPhonemeTable(plist3->tone_ph); | SelectPhonemeTable(plist3->tone_ph); | ||||
switched_language ^= SFLAG_SWITCHED_LANG; | |||||
} | } | ||||
next = phoneme_tab[plist3[1].phcode]; // the phoneme after this one | next = phoneme_tab[plist3[1].phcode]; // the phoneme after this one | ||||
plist3[1].ph = next; | plist3[1].ph = next; | ||||
phlist[ix].ph = ph; | phlist[ix].ph = ph; | ||||
phlist[ix].type = ph->type; | phlist[ix].type = ph->type; | ||||
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module | 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].stresslevel = plist3->stresslevel & 0xf; | ||||
phlist[ix].wordstress = plist3->wordstress; | phlist[ix].wordstress = plist3->wordstress; | ||||
phlist[ix].tone_ph = plist3->tone_ph; | phlist[ix].tone_ph = plist3->tone_ph; |
const char *name = "?"; | const char *name = "?"; | ||||
char buf[120]; | char buf[120]; | ||||
char len_string[20]; | char len_string[20]; | ||||
char param_string[20]; | |||||
if(index < 0) return; | if(index < 0) return; | ||||
y1 = p->pitch1; | y1 = p->pitch1; | ||||
y2 = p->pitch2; | y2 = p->pitch2; | ||||
len_string[0] = 0; | len_string[0] = 0; | ||||
param_string[0] = 0; | |||||
if(p->std_length > 0) | if(p->std_length > 0) | ||||
sprintf(len_string," Length %d", p->std_length*2); | 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)); | wxLogStatus(wxString(buf,wxConvLocal)); | ||||
} | } | ||||
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x014640; | ||||
int option_device_number = -1; | int option_device_number = -1; | ||||
#ifdef _ESPEAKEDIT | #ifdef _ESPEAKEDIT | ||||
plist->std_length = phdata->pd_param[i_SET_LENGTH]; | plist->std_length = phdata->pd_param[i_SET_LENGTH]; | ||||
if(phdata->sound_addr[0] != 0) | if(phdata->sound_addr[0] != 0) | ||||
{ | |||||
plist->phontab_addr = phdata->sound_addr[0]; // FMT address | plist->phontab_addr = phdata->sound_addr[0]; // FMT address | ||||
plist->sound_param = phdata->sound_param[0]; | |||||
} | |||||
else | else | ||||
{ | |||||
plist->phontab_addr = phdata->sound_addr[1]; // WAV address | plist->phontab_addr = phdata->sound_addr[1]; // WAV address | ||||
plist->sound_param = phdata->sound_param[1]; | |||||
} | |||||
#endif | #endif | ||||
} // end of InterpretPhoneme | } // end of InterpretPhoneme | ||||
n_phoneme_list = 0; | n_phoneme_list = 0; | ||||
WcmdqStop(); | WcmdqStop(); | ||||
embedded_value[EMBED_T] = 0; | |||||
return(0); | return(0); | ||||
} | } | ||||
#define EMBED_A 3 // amplitude/volume | #define EMBED_A 3 // amplitude/volume | ||||
#define EMBED_R 4 // pitch range/expression | #define EMBED_R 4 // pitch range/expression | ||||
#define EMBED_H 5 // echo/reverberation | #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_I 7 // sound icon | ||||
#define EMBED_S2 8 // speed (used in synthesize) | #define EMBED_S2 8 // speed (used in synthesize) | ||||
#define EMBED_Y 9 // say-as commands | #define EMBED_Y 9 // say-as commands | ||||
#ifdef _ESPEAKEDIT | #ifdef _ESPEAKEDIT | ||||
unsigned char std_length; | unsigned char std_length; | ||||
unsigned int phontab_addr; | unsigned int phontab_addr; | ||||
int sound_param; | |||||
#endif | #endif | ||||
} PHONEME_LIST; | } PHONEME_LIST; | ||||
{"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS}, | {"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS}, | ||||
{"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0}, | {"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0}, | ||||
{"_eth", OFFSET_ETHIOPIC, 0x1200,0x139f, 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}, | {"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE}, | ||||
{"_zh", 0x3100, 0x3100,0x9fff, 0, AL_NOT_CODE}, | {"_zh", 0x3100, 0x3100,0x9fff, 0, AL_NOT_CODE}, | ||||
{NULL, 0, 0, 0, 0, 0} | {NULL, 0, 0, 0, 0, 0} |
} | } | ||||
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) | int UpperCaseInWord(Translator *tr, char *word, int c) | ||||
{//===================================================== | {//===================================================== |
#define AL_NOT_LETTERS 0x02 // don't use the language for speaking letters | #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_WORDS 0x04 // use the language to speak words | ||||
#define AL_NOT_CODE 0x08 // don't speak the character code | #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 | #define N_LOPTS 21 |
if(fgets(buf,size,f_in) == NULL) | if(fgets(buf,size,f_in) == NULL) | ||||
return(NULL); | return(NULL); | ||||
if(buf[0] == '#') | |||||
{ | |||||
buf[0] = 0; | |||||
return(buf); | |||||
} | |||||
len = strlen(buf); | len = strlen(buf); | ||||
while((--len > 0) && isspace(buf[len])) | while((--len > 0) && isspace(buf[len])) | ||||
buf[len] = 0; | buf[len] = 0; | ||||
// Set voice to the default values | // Set voice to the default values | ||||
int pk; | 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}; | static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; | ||||
voice->n_harmonic_peaks = 5; | voice->n_harmonic_peaks = 5; | ||||
voice->peak_shape = 0; | voice->peak_shape = 0; | ||||
voice->voicing = 64; | 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->consonant_ampv = 100; | ||||
voice->samplerate = samplerate_native; | voice->samplerate = samplerate_native; | ||||
memset(voice->klattv,0,sizeof(voice->klattv)); | memset(voice->klattv,0,sizeof(voice->klattv)); |
/*************************************************************************** | /*************************************************************************** | ||||
* Copyright (C) 2005 to 2007 by Jonathan Duddington * | |||||
* Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||||
* email: [email protected] * | * email: [email protected] * | ||||
* * | * * | ||||
* This program is free software; you can redistribute it and/or modify * | * This program is free software; you can redistribute it and/or modify * | ||||
105, 98, 90, 83, 76, 69, 62, 55, 49, 43, 37, 32, 27, 22, 18, 14, | 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, | 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 }; | 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 | // set from y = pow(2,x) * 128, x=-1 to 1 | ||||
unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = { | unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1] = { | ||||
hostApiOutputParameters.device = Pa_GetDefaultOutputDevice(); | hostApiOutputParameters.device = Pa_GetDefaultOutputDevice(); | ||||
if( hostApiOutputParameters.device == paNoDevice ) | if( hostApiOutputParameters.device == paNoDevice ) | ||||
return paDeviceUnavailable; | |||||
return paDeviceUnavailable; | |||||
hostApiOutputParameters.channelCount = outputChannelCount; | hostApiOutputParameters.channelCount = outputChannelCount; | ||||
hostApiOutputParameters.sampleFormat = sampleFormat; | hostApiOutputParameters.sampleFormat = sampleFormat; | ||||
amp = embedded_value[EMBED_H]; | amp = embedded_value[EMBED_H]; | ||||
delay = 130; | 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) | if(delay == 0) | ||||
amp = 0; | amp = 0; | ||||
if(amp > 20) | if(amp > 20) | ||||
echo_length = echo_head * 2; // perhaps allow 2 echo periods if the echo is loud. | 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; | echo_amp = amp; | ||||
// compensate (partially) for increase in amplitude due to echo | // compensate (partially) for increase in amplitude due to echo | ||||
general_amplitude = GetAmplitude(); | general_amplitude = GetAmplitude(); | ||||
static void SetPitchFormants() | static void SetPitchFormants() | ||||
{//=========================== | {//=========================== | ||||
int ix; | int ix; | ||||
int factor; | |||||
int factor = 256; | |||||
int pitch_value; | int pitch_value; | ||||
// adjust formants to give better results for a different voice pitch | // adjust formants to give better results for a different voice pitch | ||||
{ | { | ||||
// only adjust if the pitch is higher than normal | // only adjust if the pitch is higher than normal | ||||
factor = 256 + (25 * (pitch_value - 50))/50; | 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; | factor = embedded_value[EMBED_T]*3; | ||||
wvoice->height[0] = (wvoice->height2[0] * (256 - factor*2))/256; | wvoice->height[0] = (wvoice->height2[0] * (256 - factor*2))/256; | ||||
wvoice->height[1] = (wvoice->height2[1] * (256 - factor))/256; | wvoice->height[1] = (wvoice->height2[1] * (256 - factor))/256; | ||||
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, | 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], | 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] ); | 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); | fclose(f_log); | ||||
f_log=NULL; | f_log=NULL; | ||||
} | } | ||||
{ | { | ||||
sonicSetSpeed(sonicSpeedupStream, sonicSpeed); | sonicSetSpeed(sonicSpeedupStream, sonicSpeed); | ||||
} | } | ||||
sonicWriteShortToStream(sonicSpeedupStream, outbuf, length_in); | sonicWriteShortToStream(sonicSpeedupStream, outbuf, length_in); | ||||
} | } | ||||