Browse Source

[1.46.46]

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-fd96e6ae7743
master
jonsd 12 years ago
parent
commit
8238f8b09b

+ 4
- 0
dictsource/bg_list View File

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

+ 5
- 5
dictsource/dict_phonemes View File

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

+ 8
- 7
dictsource/ga_list View File

// 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:

+ 419
- 357
dictsource/ga_rules View File

// 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:



+ 1
- 0
dictsource/hu_list View File

≠ nEmEJEnlY: ≠ nEmEJEnlY:
_ˇ lEfEle:n^i:l _ˇ lEfEle:n^i:l
_¡ AlSo:indEks _¡ AlSo:indEks
_braille bR2Ail:E




// Alphabets // Alphabets

+ 1
- 0
dictsource/hu_rules View File

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

+ 6
- 2
dictsource/nl_list View File

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

+ 14
- 2
dictsource/nl_rules View File

@) 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

+ 18
- 10
dictsource/pt_list View File



// 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

+ 46
- 25
dictsource/pt_rules View File

_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

+ 15
- 12
phsource/compile_report View File

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

BIN
phsource/n/_n View File


BIN
phsource/n/_nr View File


BIN
phsource/n/n@ View File


BIN
phsource/n/na View File


BIN
phsource/n/ne View File


BIN
phsource/n/ni View File


BIN
phsource/n/no View File


BIN
phsource/n/nr@ View File


BIN
phsource/n/nra View File


BIN
phsource/n/nre View File


BIN
phsource/n/nri View File


BIN
phsource/n/nro View File


BIN
phsource/n/nru View File


BIN
phsource/n/nu View File


+ 17
- 0
phsource/ph_consonants View File

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

+ 2
- 2
phsource/ph_georgian View File

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



+ 1
- 1
phsource/ph_hindi View File

endphoneme endphoneme


phoneme k# phoneme k#
import_phoneme consonants/kh
import_phoneme consonants/k#
voicingswitch g# voicingswitch g#
endphoneme endphoneme



+ 0
- 2
phsource/ph_portugal View File

ipa ʃ ipa ʃ
endphoneme endphoneme





+ 16
- 0
phsource/ph_pt_brazil View File

endphoneme endphoneme





// testing
phoneme x2
import_phoneme af/x2
endphoneme

phoneme x3
import_phoneme base/x
endphoneme

phoneme R1
import_phoneme base/R
endphoneme




+ 6
- 7
phsource/phonemes View File



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




+ 51
- 41
src/numbers.cpp View File

} // 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);
} }

+ 25
- 13
src/phonemelist.cpp View File

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;

+ 6
- 2
src/prosodydisplay.cpp View File

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));
} }



+ 7
- 1
src/synthdata.cpp View File

#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



+ 0
- 1
src/synthesize.cpp View File

n_phoneme_list = 0; n_phoneme_list = 0;
WcmdqStop(); WcmdqStop();


embedded_value[EMBED_T] = 0;
return(0); return(0);
} }



+ 2
- 1
src/synthesize.h View File

#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;



+ 1
- 0
src/tr_languages.cpp View File

{"_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}

+ 1
- 1
src/translate.cpp View File

} }




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)
{//===================================================== {//=====================================================

+ 1
- 0
src/translate.h View File

#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

+ 11
- 3
src/voices.cpp View File

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));

+ 13
- 20
src/wavegen.cpp View File

/*************************************************************************** /***************************************************************************
* 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);
} }



Loading…
Cancel
Save