Browse Source

Merge branch 'master' into build

master
Reece Dunn 14 years ago
parent
commit
5e7602e6b1

+ 0
- 1
dictsource/de_list View File

@@ -212,7 +212,6 @@ da $u+
durch $u+ $pause
für fy:r $u+ $pause $only
gegen ge:g@n $u+ $pause
gegend ge:g@nt
hin hIn
in In $u+ $brk
//(in die) %Ind%i:

+ 18
- 8
dictsource/de_rules View File

@@ -19,7 +19,7 @@
// ***************************************************************************/

.L01 l r
.L02 c f h k p q s t z // unvoiced, except s+vowel
.L02 c f h k p q s t z // unvoiced, except s+vowel

// This file is UTF-8 encoded

@@ -55,7 +55,7 @@
_) abb (a %ab
_) abb (rev ab
_) abd (+ apd
_) abend A:b@nt
_) aben (d A:b@n
_) aberr ab_|Er
_) ab (er@P2 'ap
_) ab (i ap
@@ -88,7 +88,7 @@
a (C_ A:
@) a (bl_ 'A:
@) a (bel_ 'A:
s) a (g A:Spionage
s) a (g A:
@l) a (g A:
schl) ag (ge A:k
scl) a (g A:
@@ -156,6 +156,7 @@
b) b
b (_N p
b (L02 p
blich plIC
b (sA b
bt (_N pt

@@ -230,6 +231,7 @@
ck k

_) c (el S
fa) c (et ts
_) cey tsaI
chef (_ SEf
_) c (ent ts
@@ -241,6 +243,9 @@
chip (_ tSIp // English

bre) ch (en x
ch (ord k
ch (or_ k
ch (ör k
chro kro:
nä) chs (t Cs
wa) chstu (m kstu:
@@ -263,6 +268,7 @@
d) d
d (_N t
d (L02 t
dlich tlIC
d (sA d
ds (_ ts
dt t
@@ -485,6 +491,7 @@
g (g
g (_N k
g (L02 k
glich klIC
g (sA g
gd (_N kt
_) gh (A g
@@ -674,11 +681,11 @@ financ) ie (r I'e:
r) ien (@ IEn
&) ien (_ =I@n
&b) ien (_ =i:@n
g) ien (_ 'i:@n
m) ien (_ 'i:@n
@g) ien (_ 'i:@n
@m) ien (_ 'i:@n
ph) ien (_ 'i:@n
&n) ien (_ I@n
p) ien (_ 'i:@n
@p) ien (_ 'i:@n
&r) ien (_ =i:@n
ser) ien (_ 'i:@n
tter) ien (_ 'i:@n
@@ -686,8 +693,8 @@ financ) ie (r I'e:
gor) ien (_ 'i:@n
etr) ien (_ 'i:@n
dustr) ien (_ 'i:@n
s) ien (_ 'i:@n
t) ien (_ 'i:@n
@s) ien (_ 'i:@n
@t) ien (_ 'i:@n
&) iens (_ =I;@ns
ient (_ I'Ent
&) ienz (_ I'Ents
@@ -774,6 +781,7 @@ formal) ie =I@
m m
m) m

manager manEdZ3r
_) manch manC // for 'manchen'
marine mA:r'i:n@
_) meß (@P3 m'Es
@@ -864,6 +872,7 @@ formal) ie =I@
r) oo (m u:
z) oo (m u:
&t) or (_ =o:r
orches OrkEs
&) oren (_ 'o:r@n
_) orts (@P4 'Orts
oso (_ 'o:zo:
@@ -898,6 +907,7 @@ formal) ie =I@
philie f'i:li:
_) photo f,o:to:
_) pro (@ %pro:
_) probe pro:b@

po (em p%o:
po (et p%o:

+ 31
- 20
dictsource/dict_phonemes View File

@@ -66,7 +66,7 @@ s S t T tS v w x
z Z


Dictionary hu_dict 2011-03-10
Dictionary hu_dict 2011-03-30

a A a: E e: i i: o
o: u u: Y y y: Y:
@@ -77,12 +77,12 @@ n n^ p r R R2 s S
s2 t t2 tS ts v z Z


Dictionary de_dict 2011-03-14
Dictionary de_dict 2011-04-01

3 3: @ @- a A A: aI
aU A~ e E E2 E: e: EI
i I i2 i: n- o O o:
OY U u: W y y: Y:
aU A~ E E2 E: e: EI i
I i2 i: n- o O o: OY
U u: W y y: Y:

* : ; b C d D dZ
f g g# h j k l m
@@ -100,7 +100,7 @@ p Q r R s s; t T
ts v x z z;


Dictionary en_dict 2011-03-09
Dictionary en_dict 2011-03-30

0 3 3: @ @- @2 @5 @L
a a# A: A@ aa aI aI@ aU
@@ -116,7 +116,7 @@ S t T t2 tS v w x
z Z


Dictionary eo_dict 2010-08-27
Dictionary eo_dict 2011-04-01

@- a aI aU e eI eU i
o oI u uI
@@ -200,7 +200,7 @@ q r r. s S s. t T
t. th th. v w x z


Dictionary ta_dict 2011-03-13
Dictionary ta_dict 2011-03-31

a a: aI aU e E e: i
I i: o o: u U u2 u:
@@ -325,7 +325,7 @@ k l m n p R s S
t tS v w x


Dictionary nl_dict 2011-03-13
Dictionary nl_dict 2011-03-30

8 @ @- a A a: A~ e
E E2 e: EI eU i I o
@@ -402,7 +402,7 @@ ts; v v; w w2 x z Z
z; Z;


Dictionary ru_dict 2011-03-14
Dictionary ru_dict 2011-03-25

8 @- a A e E E# E%
E2 i I I# I3 I^ ja ju
@@ -474,7 +474,7 @@ p R R^ s S t tS ts
v w x z Z


Dictionary tr_dict 2011-01-28
Dictionary tr_dict 2011-03-17

@ a e E i I o O
u U W y Y
@@ -533,18 +533,18 @@ s S t tS ts v w x
z Z


Dictionary ml_dict 2011-03-09
Dictionary ml_dict 2011-04-01

@ a a: aI aU e E e:
i I i: o o: r- u u:
V y

: b bh c ch d d. dh
dh. dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph r R r. R2
s s. S; t t. th th. tS
v w z
#X1 #X2 : ; b bh c ch
d d# d. dh dh. dZ f g
gh h j J Jh k kh l
l. m n N n. n^ p ph
r R r. R2 s s. S; t
t. th th. tS v w z


Dictionary ne_dict 2008-12-16
@@ -609,7 +609,7 @@ s. t T t. th th. v x
z Z z.


Dictionary bg_dict 2011-03-12
Dictionary bg_dict 2011-03-25

@ a e i o u

@@ -713,7 +713,7 @@ R R3 s S t T tS ts
v w x X z


Dictionary te_dict 2011-03-14
Dictionary te_dict 2011-03-22

a a: aI aU e E e: i
i: l- o o: r- u u: V
@@ -735,3 +735,14 @@ g h j k k# l m n
p p# Q q r s S t
t# tS ts ts# v w x z
Z


Dictionary si_dict 2011-03-16

& &: @ a a: aI aU e
E e: i i: o o: u u:

b d d. dZ f g h j
k l l. m m# n N n#
N# n. n.# n^ n^# p r s
S t t. th tS v w z

+ 2
- 0
dictsource/en_list View File

@@ -1623,6 +1623,7 @@ opposer @poUz3
orange 0rI2ndZ
orion 0r'aI@n
ordeal O@d'i@l
oregano 0rIg'A:noU
orphan O@f@n // orphaned
outage $1
outback $1
@@ -1888,6 +1889,7 @@ remedy rEm@dI
remit ri:mIt
remit ri:m'It $verb
remnant rEmn@nt
renal ri:n@L
rendevous r0ndI2vu:
rendezvous r0ndI2vu:
renegade rEn@geId

+ 1
- 0
dictsource/en_rules View File

@@ -3558,6 +3558,7 @@
_) o (Bal oU
XC) o (Bal oU
X) o (By oU
_) o (Cy+ 0
o (Be# oU
o (BeCo_ 0
o (BenC oU

+ 61
- 1
dictsource/hu_list View File

@@ -1668,11 +1668,71 @@ nyilatkozatok $unstressend
zajlott $unstressend
fordultak $unstressend
vették $unstressend
fordult $unstressend
épül $unstressend
bizonyítékok $unstressend
nyilvánításra $unstressend
állók $unstressend
közöltek $unstressend
fájlba $unstressend
neve $unstressend
csinál $unstressend
különbséggel $unstressend
újítás $unstressend
példa $unstressend
veszik $unstressend
használni $unstressend
használó $unstressend
ötletek $unstressend
visz $unstressend
ugorni $unstressend
nekünk $unstressend
fejlődött $unstressend
részemről $unstressend
értettem $unstressend
hívott $unstressend
fellépések $unstressend
tavaly $unstressend
bizonyítani $unstressend
ricsaj $unstressend
tartani $unstressend
pontján $unstressend
létre $unstressend
szervezetként $unstressend
végez $unstressend
munkáját $unstressend
titkot $unstressend
remélik $unstressend
állítja $unstressend
maradni $unstressend
sorba $unstressend
köthető $unstressend
tekintik $unstressend
vezetője $unstressend
talált $unstressend
kerülni $unstressend
csomagokhoz $unstressend
lépésként $unstressend
vigyázni $unstressend
válhat $unstressend
fordulni $unstressend
hozniuk $unstressend
indítványt $unstressend
alkotmánynak $unstressend
csomagról $unstressend
okozott $unstressend
szerepelt $unstressend
testület $unstressend
kérhet $unstressend
vezethet $unstressend
tartaná $unstressend
hangzik $unstressend
kalkulál $unstressend
szolgál $unstressend
szánják $unstressend
gondoltam $unstressend
érzem $unstressend
érzed $unstressend
jellemző $unstressend

// word pairs


+ 8
- 1
dictsource/hu_rules View File

@@ -138,6 +138,8 @@ hierar) ch (i h
ma) ch (iná h
oligar) ch h
legpe) ch (es h:
mazo) ch (izm h
mazo) ch (is h

.group d
d d
@@ -279,6 +281,8 @@ standar) d (jegy d
mó) d (javaslat d
rekor) d (szint d
kambo) dzs dZ:
föl) d (szerke d //földszerkezet word for example need spokening single d before sz letter
harma) d (szint d

.group dz
fogó) dz (kod ts
@@ -1046,6 +1050,7 @@ rongyo) szs (ák SZ
rava) sz (ár s
_ka) sztsze st|sE
szemete) szs (ák SZ
dro) sztsze (rző st|sE //drosztszerződés word need spokening st and single sE phoneme

.group t
t t
@@ -1100,6 +1105,7 @@ használ) t (cikk t
ha) t (cell t //for example hatcellás, hatcella word need spokening t before c letter.
pár) t (székház t


.group tj
C) tj c
kür) tj c
@@ -1288,7 +1294,7 @@ felada) ts (or t|S
ada) ts t|S //for example adatsor, adatsebesség words
ada) tsz t|s //for example adatszolgáltatás word
gondola) ts (or t|S
művele) ts (or t|S
művele) ts (o t|S
tábláza) ts (or t|S
vizsgála) ts (or t|S
állapo) ts (or t|S
@@ -1363,6 +1369,7 @@ terüle) ts (áv t|S
gyakorla) ts (oroz t|S
támogato) ts (ág tS:


.group tt
tt t:
ttgy t:J

+ 21
- 2
dictsource/nl_list View File

@@ -343,6 +343,23 @@ websites _^_EN
weekend _^_EN


// verbs where -ent is not a stressed ending
bakent $alt
effent $alt
jegent $alt
kerstent $alt
ketent $alt
loochent $alt
oefent $alt
opent $alt
regent $alt
rekent $alt
stevent $alt
tekent $alt
wapent $alt
zegent $alt


// words where -er is not a stressed verb ending

achter $alt
@@ -863,12 +880,13 @@ vermetel $alt
amandel $alt
appel $alt
artikel $alt
beginsel $alt
ginsel $alt // beginsel
discipel dIs'ip@l $alt
engel $alt
fabel $alt
gruwel $alt
heuvel $alt
hommel $alt
letsel $alt
mazel $alt
meubel $alt
@@ -1257,11 +1275,11 @@ accessoire aksEsv#'ar@
accessoires aksEsv#'ar@s
actiepunt Aksip8nt
agenda $2
alles Al@s
amino $1
amnestie $3
april a:pr'Il
armand _^_FR
artikel art,ik@l
augustus VUQ'8st8s
be $abbrev // used as domain abbrev for Belgium and in a lot of other names
beha be:_h'a:
@@ -1336,6 +1354,7 @@ renaissance rEne:s'A~s@
reservoir re:zErvv#'a:r
revanche r@vA~nS
regime $2
roman $2
sacristie $3
saint _^_FR
salomo $1

+ 29
- 2
dictsource/nl_rules View File

@@ -17,6 +17,7 @@
@) aard (_@S4 a:rt
aa (rd_ 'a:
aa (C_ 'a:
z) aa (m_ a:
@) abel (_ 'a:bE2l
@) abele (_ 'a:b@l@
m) ach (in %a:S
@@ -125,6 +126,7 @@
dt t
ds (_N ts
// _) de (CC@P2 d@ // Used a lot in family names
_) de (zelf d@


.group e
@@ -166,6 +168,8 @@
&) el (de_$p_alt =@l
&) el (den_$p_alt =@l
&) el (end_$p_alt =@l
&) el (ing_$p_alt =@l
&) el (ingen_$p_alt =@l
&) er (_$p_alt =@r
&) er (e_$p_alt =@r
&) er (en_$p_alt =@r
@@ -181,25 +185,31 @@
&) elijks @l@ks
&) em (_ @m
&) e (ment @
&) e (nissen_ @
&) en (_S2qd @n
&) ens (_S3q @ns
&) end (_ @nd
&) ende (_ @nd@
&) enden (_ @nd@n
eden e:d@n
&) ent (_$w_alt =@nt
@) ent (_ 'Ent
@) ent (e_ 'Ent
@) ent (en_ 'Ent
@) ent (er_ 'Ent
@) ent (ere_ 'Ent
@) ent (st_ 'Ent
@) ent (ste_ 'Ent
ag) ent 'Ent
&) er (_ @r
&) ere (_ @r@
&) er (en_$p_alt @r // where 'eren' is not a verb ending
eren (_ 'I:r@n
@j) es (_ @s
@) es (_S2qd 'Es
@) essen (_S5qd'Es@n
@) eres (_S4qd @r'Es
@) eressen (_S7sq @r'Es@n
@) eressen (_S7sq @r'Es@n
@) etten (_S3 @n
@) es (_$p_alt @s // for wors which end on [@] with multiple on 's'.
euille @'y
@@ -210,6 +220,7 @@
&) e (nB@ E2
id) e (nt E
_) er (@P2 Er
_) erger ErQ@r // ergeren
&) era (_ @ra:
@) e (raar_ @
&) e (rC@ E2
@@ -235,6 +246,7 @@
gg Q

_) ge (@P2 Q@
ge (bied Q@
_) gee Qe:
gener (aal Q,e:n@r
_) gelijk Q@lEIk
@@ -258,6 +270,8 @@

_) her (@P3 hEr
_) her (en hI:r
_) herinn h%ErIn // herinneren
_) hersen h'Ers@n
&) heid (_S4 hEIt


@@ -290,7 +304,11 @@
ie (rd_ 'i
@) ig (_S2dq @x
@) ige (_ @Q@
@) igen (_ @Q@n
@) igen (_ @Q@n
@) iger (_ @Q@r
@) igere (_ @Q@r@
@) igst (_ @Qst
@) igste (_ @Qst@
ij (_ 'EI
ij (e_ 'EI
@) ij (n_ 'EI
@@ -325,6 +343,10 @@
&) lijk (_S4 l@k
&) lijke (_S5 l@k@
&) lijken (_S6 l@k@n
&) lijker (_S6 l@k@r
&) lijkere (_S7 l@k@r@
&) lijkst (_S6 l@kst
&) lijkste (_S7 l@kst@
&) laan (_S4 la:n
_) lange (@P5 laN@
@) loog (_ lo:x
@@ -354,9 +376,11 @@
_) na (C@@P2 n'a:
_) na (tion na:
_) na (der na:
_) natuur na:t'yr
_) noord (@P5 no:rd
_) nieuws (@P6 n'iws
@@) nis (_@S3 nIs
@@) nisen (_@S5 nIs@n


.group o
@@ -548,6 +572,7 @@
_) uit (@P3 'Wyt
u (re_ 'y
@) ute (_ 'yt
uu (r_ 'y


.group v
@@ -559,6 +584,7 @@
_) ver (@P3 v@r
_) ver (sie_ vEr
_) verder vErd@r
_) verge (le v@rQ'e:
_) voort (@P5 v'O:rt


@@ -597,5 +623,6 @@
$ d'OlAr
, (D k'Oma:
__) - (_D m'In
@) 's (_S2 s



+ 2
- 2
dictsource/ru_list View File

@@ -41,7 +41,7 @@ _5X p;Vd;d;Is;'jat
_6X SE2z;d;d;Is;'jat
_7X s;'emd;E2s;Vt
_8X v'os;E2md;E2s;Vt
_9X d;E2v;In'ostO
_9X d;evIn'ostO
_0C st'o
_2C dv;'es;t;I
_3C tr;'ista
@@ -50,7 +50,7 @@ _5C p;,It;s'ot
_6C S,E#s;t;s'ot
_7C s;,Ims'ot
_8C vOs;Ims'ot
_9C dev;Vn'ostO
_9C devits'ot
_1MA1 t'ys;ItS;V // no '1' before thousand
_0MA1 t'ys;ItS;i
_0M1 t'ys;VtS;

+ 1
- 1
dictsource/ta_list View File

@@ -126,7 +126,7 @@ _9 onbVd.U
_10 pattU
_1X padin
_11 patinonRU
_12 pVnniren.d.U
_12 pVnnirVn.d.U
_19 pattonbVdU

_20 irUbVdU

+ 55
- 3
dictsource/ta_rules View File

@@ -42,7 +42,6 @@
ோ ோ
ௌ ௌ


// க is k when preceded by these
.L01 ஷ் ஸ் ட்

@@ -62,7 +61,10 @@
.L06 க ஹ

// words before "bottle"
.L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி
.L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி பிளாஸ்டிக் ப்ளாஸ்டிக்

// words after "booga"
.L11 வாழ்க்கை பூமி விருந்த மனிதன


// consonants
@@ -117,6 +119,7 @@
_) க (தியில் gV
_) க (தியை gV
_) க (ந்தர்வ gV
_) க (னக்க gV
_) க (னத் gV
_) க (னம gV
_) கப் (L04ா gVp
@@ -170,6 +173,7 @@
_) க (ிரிதர g
_) கிரிஸ்டோப (ர krist.o:fV
_) கி (ரீட k
_) கி (ரீன g
_) கி (ரீன்லாந்த g
_) கி (ரீம k
_) க (ிரீஷ g
@@ -248,11 +252,13 @@
_) க (ுருக்கள g
_) க (ுருக்குல g
_) க (ுருசாமி g
_) க (ுருஜி g
_) க (ுருதேவ g
_) க (ுருநா g
_) க (ுருபூஜை g
_) க (ுருப்பெயர g
_) க (ுருமார g
_) க (ுருமூர்த்தி g
_) க (ுருரா g
_) க (ுருவா g
_) க (ுருவாய g
@@ -341,6 +347,7 @@
_) க் (ரவுண்ட g
_) க் (ரிகோரிய g
_) க்ரிஸ்டோப (ர krist.o:fV
_) க் (ரீன g
_) க் (ரூப g
_) க் (ரௌண்ட g
_) க்வ (A kw
@@ -416,6 +423,7 @@ _சந்திரி) க (ா k
_மாளவி) க (ா k
_மோனி) க (ா k
_மௌனி) க (ா k
_ஸ்ரீலங்) க (ா k
_ஹன்L04ி) க (ா k
_ஹாங்) க (ாங் k
_தென்) க (ாசி k
@@ -521,6 +529,7 @@ _துணை) க்க (ண்ட ggV
அ) க்க (ினி gg
கோபா) க்க (ினி gg
_கவிதா) க்க (ினி gg
_வேதா) க்க (ினி gg
_யோ) க்க (ிய gg
அயோ) க்க (ிய gg
ஆரோ) க்க (ிய gg
@@ -534,6 +543,7 @@ _கவிதா) க்க (ினி gg
கு) க்கி (ராம gg
அ) க்கி (ராம gg
இ) க்கி (ராம gg
L03) க்க (ுகை gg
_மு) க்க (ுண gg
அணு) க்க (ுண்ட gg
_துப்பாக்கி) க்க (ுண்ட gg
@@ -558,6 +568,7 @@ _துப்பாக்கி) க்க (ுண்ட gg
_செ) க்யூரிட (ி kjU:rit.
_ச) க்ரப (ாணி krVp
வி) க (்ரம k
_ரெ) க்ரூட் krU:t.
ஆ) க (்ரோஷ k
_பை) க் (ல_ k
என்சை) க்லோப (ீடியா klo:p
@@ -628,7 +639,9 @@ _தணிகா) ச (ல tSV
_) சாக்லேட் tSa:kle:t.
_) ச (ாணக்கிய tS
ச (ாந்தி s.
_) சாந்த (ின tSa:nd
_தே) ச (ாந்திர s
_) சாந்த (ில tSa:nd
_) ச (ான்ஸ tS
_) சாப் (ளின tSa:p
_) ச (ாமுண்ட tS
@@ -704,6 +717,7 @@ _தணிகா) ச (ல tSV
இராவணே) சு (வர s
ராவணே) சு (வர s
_) சுவர்க்க svVrggV#
_) சுவர்க்க (ோழி suvVrkk
_) சு (வாச s
சு (வாதீன s
சு (வாமி s
@@ -726,10 +740,15 @@ _தணிகா) ச (ல tSV
_) செயின்ட sejint.V#
_) ச (ெய்ன tS
_) செய்ன்ட sejnt.V#
_) ச (ெர்னோபில tS
_) ச (ெல்லக்குட்டி tS
_) ச (ெல்லத்துக்கு tS
_) ச (ெல்லத்தை tS
_) ச (ெல்லப்ப tS
_) ச (ெல்லப்பன tS
_) ச (ெல்லப்பா tS
_) ச (ெல்லப்பிள்ளை tS
_) ச (ெல்லப்பெண் tS
_) ச (ெல்லப்பையன tS
_) ச (ெல்லமா tS
_) ச (ெஸ் tS
_) ச (ேஞ்ச tS
@@ -777,6 +796,7 @@ _ரிப்போர்) ட t.V#
அர்ஜண்) ட t.V#
அர்ஜெண்) ட t.V#
இண்டர்மீடியே) ட t.V#
_) ட (ஃப் t.V
_) ட (க்கர t.V
ங்) ட (ன t.V // -ington
_நியூ) ட (ன t.V
@@ -814,14 +834,18 @@ _ரிப்போர்) ட t.V#
_) டாங்க (ர t.a:NkV
_) டாங்க (ி t.a:Nk
_) டாட (ா t.a:t.
_) டானிக் t.a:nik
_) ட (ான்சானிய t.
_) ட (ான்ஜானிய t.
_) டாபிக் t.a:pik
_) ட (ாமி t.
அண்) டார்டிக t.a:rt.ikV#
_) ட (ாலமி t.
_) ட (ால்ஸ்டாய t.
_) ட (ாஸ்மாக் t.
_டியூ) ட (ி t.
_ட்யூ) ட (ி t.
_சேஃப்) ட (ி t.
_ராயல்) ட (ி t.
_க்வாலி) ட (ி t.
_நாவல்) ட (ி t.
@@ -847,6 +871,7 @@ _நாவல்) ட (ி t.
_) டிர (ஸ d.re
_) டிர (ஸ்ட t.rV
_) டிராஃபிக் t.ra:fik
_) டி (ராகுலா d.
_) டிராக் t.ra:k
_காண்) டி (ராக்டர t.
_) டி (ராஜ t.
@@ -865,8 +890,10 @@ _நாவல்) ட (ி t.
_) டி (ராவல t.
_) டி (ராவெல t.
_) டிரிக (ர t.riggV
_) டிரிக் t.rik
_) டிரிக்க (ர t.riggV
_) டி (ரிம் t.
_) டிரீட் t.ri:t.
_) டிரெயி(லர t.rej
_) டி (ரெயின t.
_) டி (ரெய்லர t.
@@ -921,6 +948,7 @@ _லான்_) ட (ென்னிஸ t.
_) ட (ோக்கியோ t.
_) டோரண்ட (ோ t.o:rVn.t.
_ப்ரி) ட (ோரிய t.
@மெண்) ட் t. // -ment
இண்டர்நெ) ட் t.
_ல) ட்ட d.d.V#
_ரெ) ட்ட (ியா d.d.
@@ -953,8 +981,10 @@ _லான்_) ட (ென்னிஸ t.
_) ட் (ராவல t.
_) ட் (ராவெல t.
_) ட்ரிக (ர t.riggV
_) ட்ரிக் t.rik
_) ட்ரிக்க (ர t.riggV
_) ட் (ரிம் t.
_) ட்ரீட் t.ri:t.
_வி) ட் (ரு t.
_கே) ட் (ரு t.
_போ) ட் (ரு t.
@@ -976,6 +1006,7 @@ _லான்_) ட (ென்னிஸ t.
_கூ) ட் (ல t.
_நா) ட் (ல t.
_பா) ட் (ல t.
_மே) ட் (ல t.
_ரூ) ட் (ல t.
_நோ) ட் (ல t.
_ரோ) ட் (ல t.
@@ -1084,6 +1115,7 @@ _நடுரோ) ட் (ல t.
_) த (ருமத் dV
_) த (ருமன dV
_) தருமப (ுரி dVrUmVp
_) த (ருமம dV
_) த (ருமர dV
_) த (ருமி dV
_) த (ர்க dV
@@ -1109,6 +1141,7 @@ _நடுரோ) ட் (ல t.
_) த (ாதா d
_) த (ானங் d
_) த (ானத் d
_) த (ானப் d
_) த (ானமா d
_) த (ானிய d
_) த (ானியங்கி t
@@ -1214,6 +1247,7 @@ _நடுரோ) ட் (ல t.
_) த (ுச்சாதனன d
_) த (ுட்ட d
_) த (ுபாய d
_) த (ுபாஷி d
_) த (ுப்பட்டா d
_) த (ுமளி d
_) த (ுரதிருஷ்ட d
@@ -1309,10 +1343,12 @@ _வசந்) த tV#
_சீ) த (ா t
_ல) த (ா t
_சபி) த (ா t
_சபீ) த (ா t
அனி) த (ா t
சுஜா) த (ா t
லலி) த (ா t
_சுனி) த (ா t
_ஹரி) த (ா t
_வனி) த (ா t
_வினி) த (ா t
_நிவேதி) த (ா t
@@ -1330,6 +1366,7 @@ _புஷ்பல) த (ா t
வாசந்) த (ி t
_கோம) த (ி t
ஜெயந்) த (ி t
_துஷ்யந்) த (ி t
_பார்வ) த (ி t
_பிரசார்_பார) த (ி t
பிரபாவ) த (ி t
@@ -1529,6 +1566,7 @@ _சொந்த_) ப (ந்த bV
_) ப (லப்பரீட்சை bV
_) ப (லம bV
_) ப (லமடங்க pV
_) ப (லமாடி pV
_) ப (லமுறை pV
_) ப (லமொழி pV
_) ப (லராம bV
@@ -1589,6 +1627,7 @@ _சொந்த_) ப (ந்த bV
_) ப (ாணமு b
_) ப (ாணி b
_) ப (ாதிக்க b
_) ப (ாதிக்கண் p
_) ப (ாதிக்கு_ p
_) ப (ாதிக்கும்_குறை p
_) ப (ாதிக்கும்_மேற் p
@@ -1626,12 +1665,14 @@ _சொந்த_) ப (ந்த bV
_) ப (ாரிஸ்டர b
_) ப (ார்L04லோனா b
_) ப (ார்கவி b
_) ப (ார்டர b
_) ப (ார்ம f
_) ப (ாலக b
_) ப (ாலக் p
_) ப (ாலக்காட p
_) ப (ாலச b
_) ப (ாலதண் b
_) ப (ாலன b
_) பாலப (ாட ba:lVp
_) ப (ாலமுர b
_) ப (ாலய்யா b
@@ -1896,6 +1937,7 @@ _பெனசீர்_) ப (ுட்டோ b
_) புரப (L04ர profV
_) புரபொ (சர profV
_) பு (ரவுச b
_) ப (ுருடா b
_) புரொப (சர profV
_) புரொபொ (சர profV
_) ப (ுரோக்கர b
@@ -1968,7 +2010,9 @@ _பெனசீர்_) ப (ுட்டோ b
_) ப (ொம்மன b
_) ப (ொம்மல b
_) ப (ொம்மை b
_) ப (ோக_L11 b
_) ப (ோகங்க b
_) ப (ோகத்த b
_) ப (ோகத்திற்க b
_) ப (ோகத்தில b
_) ப (ோகத்துக்க b
@@ -2111,6 +2155,7 @@ _சொந்த) ப (ந்த bV
_ஒலி) ப (ரப் pV
_ஒளி) ப (ரப் pV
வீர) ப (ராக்கிரம pV
_மறு) ப (ரிசீலனை pV
ஆ) ப (ரேசன pV
ஆ) ப (ரேஷன pV
_கார்) ப (ரேஷன pV
@@ -2216,12 +2261,17 @@ _ஞானப்) பிரக (ா prVk
பிரக (ாஷ prVk
மதப்) பிரச (ார prVtS
பி (ரத p
_தர்மப்) பி (ரப p
_தானப்) பி (ரப p
_மL06ாப்) பி (ரப p
வீண்) பி (ரமை b
துஷ்) பி (ரயோக p
L03ந்தப்) பி (ரளய p
ஆ) பி (ரஹாம b
பயப்) பி (ராந்தி b
மனப்) பி (ராந்தி b
பி (ராய p
L03ந்தப்) பி (ராய p
ஆ) ப (ிரிக்க f
போஜனப்) பி (ரியர p
_மறு) ப (ிற p
@@ -2339,6 +2389,7 @@ _ஞானப்) பிரக (ா prVk
_லாக) ப் p
ஆ) ப் (கானிய f
ஆ) ப் (கானிஸ்தான f
_பா) ப்க (ார்ன pk
_லி) ப் (ட f
_மைக்ரோசா) ப் (ட f
கர்) ப்ப bbV#
@@ -2579,6 +2630,7 @@ _சந்தேக) ப்ப (ுத்தி bb
ஈ i:

உ u
உருத்த (ிரா rUdd

ஊ u:


+ 149
- 21
dictsource/tr_list View File

@@ -118,6 +118,53 @@ _0M3 miljar
_dpt _viRg,Yl_|


// Abbreviations
ab $abbrev $only
abd $abbrev $only
abgs $abbrev
afp $abbrev
aihm $abbrev
akm $abbrev
akp $abbrev
aöf $abbrev
ap $abbrev $only
atm $abbrev
atv $abbrev
avm $abbrev
ekg $abbrev
epdk $abbrev
ftaa $abbrev
gsyih $abbrev
ihd $abbrev
ımkb $abbrev
imkb $abbrev
imf $abbrev
imkb $abbrev
oecd $abbrev
ogs $abbrev
osb $abbrev
ödp $abbrev
öfk $abbrev
öıb $abbrev
öib $abbrev
öiv $abbrev
öss $abbrev
ösym $abbrev
ötv $abbrev
öyk $abbrev
şti $abbrev
tihv $abbrev
tmmob $abbrev
tmo $abbrev
tpao $abbrev
tsi $abbrev
tsyd $abbrev
tse $abbrev
ubp $abbrev
usd $abbrev
ykm $abbrev


// function words

// conjunctions
@@ -127,39 +174,120 @@ veya $u $brk // or
ama $brk $1 // but
ki $u $brk // that

mı $u // question
mi $u
mu $u
mü $u
mı $u $only // question
mi $u $only
mu $u $only
mü $u $only


// pronouns
bu $u+ // this
şu $u+ // that
bu $u+ $only // this
şu $u+ $only // that

ben $u+ // I
sen $u+ // you
o $u+ // it
siz $u+ // we
biz $u+ // you
ben $u+ $only // I
sen $u+ $only // you
o $u+ $only // it
siz $u+ $only // we
biz $u+ $only // you



bir $u+ // a (or one)
bir $u+ $only // a (or one)

da $u // also
de $u
ta $u
te $u
da $u $only // also
de $u $only
ta $u $only
te $u $only

ile $u
ile $u $only


// EXCEPTIONS
merhaba $1

// Person Names
// If the word has a prefix for strengthening the meaning of the word, stress
// is at the prefix:
banka $1
bembeyaz $1
dosdoğru $1
dümdüz $1
kıpkırmızı $1
kıskıvrak $1
masmavi $1
mosmor $1
pespembe $1
posta $1
radyo $1
sapsarı $1
sımsıcak $1
simsiyah $1

// Place Names
ankara $1
istanbul $2
// Names
Hitler $1

// Place Names
// For place names with two syllables stress is at first syllable:
// For Place names that has three or more syllables, generally stress is at
// the syllable which has more letters or at the syllable which ends with a consonant:
Afyon $1
Ağrı $1
Almanya $2
Amasya $2
Ankara $1
Antalya $2
Artvin $1
Avrupa $1
Aydın $1
Bartın $1
Batman $1
Bayburt $1
Bingöl $1
Bitlis $1
Bodrum $1
Bolu $1
Burdur $1
Bursa $1
Çanakkale $2
Çankırı $1
Çorum $1
Denizli $2
Düzce $1
Edirne $2
Hakkari $1
Hatay $1
Iğdır $1
İngiltere $3
İskenderun $2
Isparta $2
İstanbul $2
İsveç $1
İzmir $1
Kastamonu $1
Kayseri $1
Kilis $1
Kırklareli $1
Konya $1
Kurtuluş $1
Kütahya $2
Malatya $2
Mardin $1
Mersin $1
Mudanya $2
Muğla $1
Niğde $1
Ordu $1
Pütürge $2
Rize $1
Sakarya $2
Samsun $1
Siirt $1
Sinop $1
Şırnak $1
Sivas $1
Tekirdağ $2
Tokat $1
Tunceli $1
Ukrayna $2
Urfa $1
Uşak $1
Yozgat $1

+ 7
- 2
dictsource/tr_rules View File

@@ -20,7 +20,7 @@

@) a (_S1 a

@) acak (_S3 adZak
@) acak (_S4 adZak
@) acakmış (_S7 adZakm%@S
@) ayım (_S4 aj@m
@) alım (_S4 al@m
@@ -130,7 +130,7 @@
@) ı (_S1 @

@) ım (_S2 %@m
@) ınız (_S2 %@n@z
@) ınız (_S4 %@n@z
@) ız (_S2 %@z
@) ıyor (_S4 @j%oR
@) ın (_S2 @n
@@ -179,6 +179,11 @@
.group n
n n

_) nda (_ nda // 'nda
_) nde (_ nde // 'nde
_) ndan (_ ndan // 'ndan
_) nden (_ nden // 'nden

nin (_S3 nin
nın (_S3 n@n
nun (_S3 nun

+ 31
- 15
phsource/compile_report View File

@@ -1,4 +1,4 @@
73 phoneme tables
74 phoneme tables
new total
base 107 107
consonants 10 116
@@ -55,8 +55,9 @@ consonants 10 116
sq 33 126
hy 23 117
da 27 120
ka 19 112
rw 15 130
ml 18 151
ml 19 152
ne 18 157
pa 14 151
prs 8 111
@@ -71,8 +72,8 @@ consonants 10 116
wo 18 118
dv 14 150
te 16 150
si 24 156
tn 27 119
ka 19 112

Data file Used by
b/b [b] base
@@ -360,7 +361,7 @@ l/l_ [l] base
[l/] fr
l/l_@ [l/3] base
[l/] fr
l/l@ [h–x] base
l/l@ [h–u] base
[l#] base
[l] fr
[l/2] fr
@@ -394,7 +395,7 @@ l/L2_oL [l/2] base
l/L2_uL [l/2] base
l/l_3 [l/] de
l/l_4 [ll] sq
l/la [h–x] base
l/la [h–u] base
[l#] base
[l] fr
[l/2] fr
@@ -402,7 +403,7 @@ l/la [h
[K] tn
l/l_a [l/3] base
[l/] fr
l/le [h–x] base
l/le [h–u] base
[l#] base
[l] fr
[l/2] fr
@@ -414,7 +415,7 @@ l/L_eL_af [&] af
[&:] af
l/l_front [L] sq
l/l_front_ [l/4] sq
l/li [h–x] base
l/li [h–u] base
[l#] base
[l] fr
[l/2] fr
@@ -428,7 +429,7 @@ ll/ll [L] bg
ll/_ll [L] bg
l/l_long [l] base
[l] fr
l/lo [h–x] base
l/lo [h–u] base
[l#] base
[l/2] fr
[K] nso
@@ -438,7 +439,7 @@ l/l_o [l/3] base
l^/l_rfx [l.] base
[l] ru
[l^] ru
l/lu [h–x] base
l/lu [h–u] base
[l#] base
[l] fr
[l/2] fr
@@ -1041,6 +1042,7 @@ vdiph/ai_7 [aI] en-sc
[aI:] is
vdiph/ai_8 [aI] ta
[aI] dv
[aI] si
vdiph/aoo [aU] en-us
[aU] it
vdiph/au [aU] en
@@ -1048,6 +1050,7 @@ vdiph/au [aU] en
[aU] ta
[a:U] vi
[aU] prs
[aU] si
vdiph/au# [aU] en-sc
vdiph/au_2 [au] zhy
vdiph/au_3 [aU] en-rp
@@ -1295,11 +1298,11 @@ vowel/@ [@] base
[@4] hi
[@] kn
[@] hy
[@] ka
[@] sl
[@] wo
[@:] wo
[@] te
[@] ka
vowel/@- [@-] base
[r*] hr
vowel/& [a] en-rp
@@ -1410,10 +1413,11 @@ vowel/a#_2 [a] kn
[a] sv
[a] is
[a/] sw
[a] ka
[a] ml
[a] nso
[a] te
[a] ka
[a] si
vowel/a_3 [a] en-sc
[a/] en-sc
[A:] en-sc
@@ -1426,6 +1430,7 @@ vowel/a_3 [a] en-sc
[A] zh
[a] sq
[A] da
[a:] si
vowel/a#_3 [a#] en
[a#] en-n
[a#] en-us
@@ -1596,6 +1601,8 @@ vowel/ee_5 [E] en
vowel/ee_6 [&] sk
[E3] sv
[E] ku
[&] si
[&:] si
vowel/e_mid [E] en-rp
[E] fr
[E~] fr
@@ -1619,10 +1626,11 @@ vowel/e_mid [E] en-rp
[E] id
[E2] id
[e] hy
[e] ka
[E] prs
[e] bg
[E] ht
[e] ka
[e] si
vowel/e_mid2 [E] af
[E] de
[E2] de
@@ -1645,6 +1653,7 @@ vowel/e_mid2 [E] af
[e] az
[e] am
[e] te
[e:] si
vowel/@_fnt [@] en-wi
[@2] en-wi
[@2] hr
@@ -1671,6 +1680,7 @@ vowel/i [i] base
[i] zh
[i] sw
[i] hy
[i] ka
[i] rw
[i#] rw
[i:] ml
@@ -1682,7 +1692,7 @@ vowel/i [i] base
[i:] wo
[i:] dv
[i:] te
[i] ka
[i:] si
vowel/i# [y:] cy
vowel/i_2 [i2] de
[i:] de
@@ -1715,6 +1725,7 @@ vowel/i_6 [i] hi
[i] bg
[i] dv
[i] te
[i] si
vowel/i#_6 [i.] zh
vowel/i_7 [i] pl
[i] sq
@@ -1798,6 +1809,7 @@ vowel/@_low [@] en-rp
[@] pa
[V] pa
[@] am
[@] si
vowel/@_low2 [@/] en-us
[@2] en-us
vowel/o [o] base2
@@ -1902,8 +1914,10 @@ vowel/oo_1 [O:] en-n
[o] hr
[o/] it
[O] sq
[O] tn
[o] ka
[o] si
[o:] si
[O] tn
vowel/oo_2 [0] en-sc
[O] cy
[o] cs
@@ -1987,6 +2001,8 @@ vowel/u_6 [u:] en-rp
[u:] dv
[u] te
[u:] te
[u] si
[u:] si
vowel/u_7 [u] vi
vowel/u#_7 [@] tr
[@] az
@@ -2012,12 +2028,12 @@ vowel/u_bck [u] base2
[u] sq
[u] hy
[u] da
[u] ka
[u] rw
[u#] rw
[u] ne
[u] pa
[u] bg
[u] ka
vowel/u_bck2 [u] fr
[u:] fr
[u:] la

+ 1
- 0
phsource/ph_dutch View File

@@ -113,6 +113,7 @@ endphoneme
phoneme e:
vowel starttype #e endtype #i
length 190
ChangeIfUnstressed(@)
FMT(vdiph/ei)
endphoneme


+ 5
- 6
phsource/ph_german View File

@@ -328,10 +328,10 @@ phoneme r
IF prevPhW(isVowel) THEN
ChangePhoneme(R)
ELSE
// IF thisPh(isWordStart) THEN
// ELSE
IF prevPhW(t) THEN
ELSE
InsertPhoneme(@-)
// ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
@@ -344,6 +344,7 @@ phoneme r
endphoneme



// This version of [r] was used in eSpeak 1.44, but received complaints
phoneme r2 // uvular trill or fricative
vcd uvl frc
@@ -403,10 +404,8 @@ phoneme A~
FMT(vnasal/aa_n4)
endphoneme



// translate from English to German phonemes
equivalents en
equivalents NULL // disable this table
0 O
3 3
3: W :

+ 5
- 3
phsource/phonemes View File

@@ -1800,6 +1800,8 @@ include ph_armenian
phonemetable da base
include ph_danish

phonemetable ka base
include ph_georgian



@@ -1867,8 +1869,8 @@ include ph_divehi
phonemetable te hi
include ph_telugu

phonemetable si hi
include ph_sinhala

phonemetable tn base
include ph_setswana

phonemetable ka base
include ph_georgian

BIN
phsource/vowel/a#_4 View File


+ 3
- 1
src/Makefile View File

@@ -75,7 +75,6 @@ CXXFLAGS=-O2


all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG)

.cpp.o:
$(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $<
@@ -95,6 +94,9 @@ x_%.o: %.cpp
$(LIB_NAME): $(OBJS2)
$(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \
$(OBJS2) $(LIBS2)
mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG)
$(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION)
$(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME)

$(STATIC_LIB_NAME): $(OBJS2)
$(AR) cqs $(STATIC_LIB_NAME) $(OBJS2)

+ 9
- 2
src/compiledata.cpp View File

@@ -114,6 +114,7 @@ static keywtab_t k_properties[] = {
{"isVowel", 0, phVOWEL},
{"isNasal", 0, phNASAL},
{"isLiquid", 0, phLIQUID},
{"isUStop", 0, phSTOP},
{"isVFricative", 0, phVFRICATIVE},

{"isPalatal", 0, i_isPalatal},
@@ -1113,7 +1114,7 @@ static unsigned int StringToWord(const char *string)


static MNEM_TAB reserved_phonemes[] = {
{"<", phonCONTROL}, // NOT USED
{"_\001", phonCONTROL}, // NOT USED
{"%", phonSTRESS_U},
{"%%", phonSTRESS_D},
{",", phonSTRESS_2},
@@ -3205,7 +3206,10 @@ static void CompileEquivalents()

if((foreign_table = SelectPhonemeTableName(foreign_table_name)) < 0)
{
error("Unknown phoneme table '%s'", foreign_table_name);
if(strcmp(foreign_table_name, "NULL") != 0)
{
error("Unknown phoneme table '%s'", foreign_table_name);
}
foreign_error = 1;
foreign_phoneme = 0;
}
@@ -3234,6 +3238,9 @@ static void CompileEquivalents()
if(strcmp(names[0],"endphoneme") == 0)
break;

if(foreign_error)
continue;

if(strcmp(names[0],"remove_stress") == 0)
{
remove_stress = 1;

+ 8
- 19
src/compiledict.cpp View File

@@ -643,17 +643,11 @@ step=1; // TEST
}

// check for errors in the phonemes codes
for(ix=0; ix<sizeof(encoded_ph); ix++)
if(bad_phoneme[0] != 0)
{
c = encoded_ph[ix];
if(c == 0) break;
if(c == 255)
{
/* unrecognised phoneme, report error */
fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic);
error_count++;
}
// unrecognised phoneme, report error
fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic);
error_count++;
}
}

@@ -1249,15 +1243,10 @@ static char *compile_rule(char *input)
}

EncodePhonemes(rule_phonemes,buf,bad_phoneme);
for(ix=0;; ix++)
if(bad_phoneme[0] != 0)
{
if((c = buf[ix])==0) break;
if(c==255)
{
fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input);
error_count++;
break;
}
fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input);
error_count++;
}
strcpy(output,buf);
len = strlen(buf)+1;
@@ -1639,7 +1628,7 @@ static int compile_dictrules(FILE *f_in, FILE *f_out, char *fname_temp)
unsigned int char_code;
int compile_mode=0;
char *buf;
char buf1[200];
char buf1[500];
char *rules[N_RULES];

int n_rgroups = 0;

+ 7
- 5
src/dictionary.cpp View File

@@ -352,7 +352,7 @@ char *EncodePhonemes(char *p, char *outptr, unsigned char *bad_phoneme)
/* Translate a phoneme string from ascii mnemonics to internal phoneme numbers,
from 'p' up to next blank .
Returns advanced 'p'
outptr contains encoded phonemes, unrecognised phonemes are encoded as 255
outptr contains encoded phonemes, unrecognized phoneme stops the encoding
bad_phoneme must point to char array of length 2 of more
*/
{
@@ -423,9 +423,11 @@ char *EncodePhonemes(char *p, char *outptr, unsigned char *bad_phoneme)

if(max_ph == 0)
{
max_ph = 255; /* not recognised */
// not recognised, report and ignore
bad_phoneme[0] = *p;
bad_phoneme[1] = 0;
*outptr++ = 0;
return(p+1);
}

if(max <= 0)
@@ -781,8 +783,8 @@ static int Unpronouncable2(Translator *tr, char *word)
}


int Unpronouncable(Translator *tr, char *word)
{//===========================================
int Unpronouncable(Translator *tr, char *word, int posn)
{//=====================================================
/* Determines whether a word in 'unpronouncable', i.e. whether it should
be spoken as individual letters.

@@ -817,7 +819,7 @@ int Unpronouncable(Translator *tr, char *word)
if((c==0) || (c==' '))
break;

if((c=='\'') && (count > 1))
if((c=='\'') && ((count > 1) || (posn > 0)))
break; // "tv'" but not "l'"

if(count==0)

+ 20
- 7
src/extras.cpp View File

@@ -913,6 +913,7 @@ void Lexicon_Bg()
char *pw;
char *pw1;
int cc;
int ix;
int vcount;
int lex_stress;
int input_length;
@@ -1006,22 +1007,27 @@ void Lexicon_Bg()
if(cc == 0xfeff)
continue; // ignore UTF-8 indication

pw1 += utf8_out(cc, pw1); // copy UTF-8 to 'word_in'
if(cc == '`')
cc = '\'';
pw1 += utf8_out(towlower(cc), pw1); // copy UTF-8 to 'word_in'

if(lookupwchar(bg_vowels, cc) != 0)
vcount++;

if((cc == 0x300) || (cc == 0x450) || (cc == 0x45d))
if((cc == '\'') || (cc == 0x300) || (cc == 0x450) || (cc == 0x45d))
{
// combining grave accent, of accented vowel character
lex_stress = vcount;
// backprime (before the vowel), combining grave accent, or accented vowel character
if(cc == '\'')
lex_stress = vcount+1;
else
lex_stress = vcount;
n_stress++;

if(vcount == 1)
stress_first = 1;

if(cc == 0x300)
continue; // discard combining accent
if((cc == '\'') || (cc == 0x300))
continue; // discard backprime or combining accent
if(cc == 0x450)
cc = 0x435; // remove accent from vowel
if(cc == 0x45d)
@@ -1062,7 +1068,14 @@ void Lexicon_Bg()
}
}

if(n_stress > 1) n_stress = 1;
done = 0;

if(vcount < 2)
{
// don't list words with only one vowel
}
else
if((lex_stress != max_stress_posn) || (n_stress != 1))
{
if((vcount > 0) && (lex_stress > 0) && (lex_stress <= 7))
@@ -1082,7 +1095,7 @@ void Lexicon_Bg()
if(done == 0)
{
n_wrong++;
fprintf(f_out,"%s\t$text %s\n", &word[2], word_in);
fprintf(f_out,"// %s\t$text %s\n", &word[2], word_in);
}

if(done)

+ 8
- 0
src/speak.cpp View File

@@ -27,6 +27,8 @@

#ifndef PLATFORM_DOS
#ifdef PLATFORM_WINDOWS
#include <fcntl.h>
#include <io.h>
#include <windows.h>
#include <winreg.h>
#else
@@ -234,7 +236,13 @@ static int OpenWaveFile(const char *path, int rate)
return(2);

if(strcmp(path,"stdout")==0)
{
#ifdef PLATFORM_WINDOWS
// prevent Windows adding 0x0d before 0x0a bytes
_setmode(_fileno(stdout), _O_BINARY);
#endif
f_wave = stdout;
}
else
f_wave = fopen(path,"wb");


+ 1
- 1
src/synthdata.cpp View File

@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"

const char *version_string = "1.45.02 15.Mar.11";
const char *version_string = "1.45.12 01.Apr.11";
const int version_phdata = 0x014500;

int option_device_number = -1;

+ 28
- 1
src/tr_languages.cpp View File

@@ -308,14 +308,17 @@ void SetIndicLetters(Translator *tr)
memset(tr->letter_bits,0,sizeof(tr->letter_bits));
SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters
SetLetterBitsRange(tr,LETTERGP_A,0x3e,0x4d); // + vowel signs, and virama
SetLetterBitsRange(tr,LETTERGP_A,0x55,0x57); // + vowel signs

SetLetterBitsRange(tr,LETTERGP_B,0x3e,0x4d); // vowel signs, and virama
SetLetterBitsRange(tr,LETTERGP_B,0x55,0x57); // + vowel signs

SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range
SetLetterBits(tr,LETTERGP_C,dev_consonants2); // + additional consonants

SetLetterBitsRange(tr,LETTERGP_Y,0x04,0x14); // vowel letters
SetLetterBitsRange(tr,LETTERGP_Y,0x3e,0x4c); // + vowel signs
SetLetterBitsRange(tr,LETTERGP_Y,0x55,0x57); // + vowel signs

tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4d; //virama
@@ -1090,6 +1093,30 @@ SetLengthMods(tr,3); // all equal
}
break;

case L('s','i'): // Sinhala
{
SetupTranslator(tr,stress_lengths_ta,stress_amps_ta);
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable

tr->langopts.stress_rule = STRESSPOSN_1L;
tr->langopts.stress_flags = S_FINAL_DIM | S_NO_AUTO_DIM | S_FINAL_NO_2;
tr->langopts.spelling_stress = 1;

tr->letter_bits_offset = OFFSET_SINHALA;
memset(tr->letter_bits,0,sizeof(tr->letter_bits));
SetLetterBitsRange(tr,LETTERGP_A,0x05,0x16); // vowel letters
SetLetterBitsRange(tr,LETTERGP_A,0x4a,0x73); // + vowel signs, and virama
SetLetterBitsRange(tr,LETTERGP_B,0x4a,0x73); // vowel signs, and virama
SetLetterBitsRange(tr,LETTERGP_C,0x1a,0x46); // the main consonant range
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4a; //virama
tr->langopts.numbers = NUM_OMIT_1_THOUSAND ;
}
break;

case L('s','l'): // Slovenian
tr->charset_a0 = charsets[2]; // ISO-8859-2
tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary
@@ -1223,7 +1250,7 @@ SetLengthMods(tr,3); // all equal
tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable
tr->langopts.stress_flags = 0x20; //no automatic secondary stress

tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2;
tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2;
tr->langopts.max_initial_consonants = 2;
}
break;

+ 43
- 12
src/translate.cpp View File

@@ -386,6 +386,9 @@ int IsAlpha(unsigned int c)
return(1);
if(lookupwchar(extra_indic_alphas, c) != 0)
return(1);
if((c >= 0xd7a) && (c <= 0xd7f))
return(1); // malaytalam chillu characters

return(0);
}

@@ -577,6 +580,19 @@ char *strchr_w(const char *s, int c)
}


int IsAllUpper(const char *word)
{//=============================
int c;
while((*word != 0) && !isspace2(*word))
{
word += utf8_in(&c, word);
if(!iswupper(c))
return(0);
}
return(1);
}


static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, int spell_word)
{//============================================================================================
int posn = 0;
@@ -1022,7 +1038,7 @@ if((wmark > 0) && (wmark < 8))
length = 999;
wordx = word1;

while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(tr,wordx)))
while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(tr, wordx, posn)))
{
// This word looks "unpronouncable", so speak letters individually until we
// find a remainder that we can pronounce.
@@ -1176,20 +1192,26 @@ if((wmark > 0) && (wmark < 8))

if(prefix_type & SUFX_B)
{
// SUFX_B is used for Turkish, tr_rules contains "(Pb£
// retranslate the prefix part
// SUFX_B is used for Turkish, tr_rules contains " ' (Pb"
// examine the prefix part
char *wordpf;
char prefix_phonemes2[12];

strncpy0(prefix_phonemes2,end_phonemes,sizeof(prefix_phonemes2));
wordpf = &prefix_chars[1];
found = LookupDictList(tr, &wordpf, phonemes, dictionary_flags, SUFX_P, wtab); // without prefix
if(found == 0)
strcpy(prefix_phonemes, phonemes);

// look for stress marker or $abbrev
found = LookupDictList(tr, &wordpf, phonemes, dictionary_flags, 0, wtab);
if(found)
{
end_type = TranslateRules(tr, wordpf, phonemes, N_WORD_PHONEMES, end_phonemes, 0, dictionary_flags);
sprintf(prefix_phonemes,"%s%s%s",phonemes,end_phonemes,prefix_phonemes2);
strcpy(prefix_phonemes, phonemes);
}
if(dictionary_flags[0] & FLAG_ABBREV)
{
prefix_phonemes[0] = 0;
SpeakIndividualLetters(tr, wordpf, prefix_phonemes, 1);
}
prefix_flags = 1;
}
else
{
@@ -1236,6 +1258,13 @@ strcpy(phonemes2,phonemes);
wordx[-1] = c_temp;
found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab); // include prefix, but not suffix
wordx[-1] = ' ';
if(phonemes[0] == phonSWITCH)
{
// change to another language in order to translate this word
memcpy(wordx,word_copy,strlen(word_copy));
strcpy(word_phonemes,phonemes);
return(0);
}
if(dictionary_flags[0]==0)
{
dictionary_flags[0] = dictionary_flags2[0];
@@ -2772,7 +2801,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
{
// '-' between two letters is a hyphen, treat as a space
word_flags |= FLAG_HYPHEN;
words[word_count-1].flags |= FLAG_HYPHEN_AFTER;
if(word_count > 0)
words[word_count-1].flags |= FLAG_HYPHEN_AFTER;
c = ' ';
}
}
@@ -2809,7 +2839,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
space_inserted = 1;
}
else
if(!(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in))
if((word_count > 0) && !(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in))
{
// dot after a word, with space following, probably an abbreviation
words[word_count-1].flags |= FLAG_HAS_DOT;
@@ -2930,7 +2960,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
// end of 'word'
sbuf[ix++] = ' ';

if((ix > words[word_count].start) && (word_count < N_CLAUSE_WORDS-1))
if((word_count < N_CLAUSE_WORDS-1) && (ix > words[word_count].start))
{
if(embedded_count > 0)
{
@@ -3056,7 +3086,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
*pn++ = *pw++;
}
else
if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ') && iswdigit(pw[2]))
if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ')
&& iswdigit(pw[2]) && (pw[3] != ' ') && (pw[4] != ' ')) // don't allow only 1 or 2 digits in the final part
{
pw += 2;
ix++; // skip "word"

+ 1
- 1
src/translate.h View File

@@ -658,7 +658,7 @@ void CalcLengths(Translator *tr);
void CalcPitches(Translator *tr, int clause_tone);

int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy);
int Unpronouncable(Translator *tr, char *word);
int Unpronouncable(Translator *tr, char *word, int posn);
void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int tonic, int prev_stress);
int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags);
int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab);

+ 4
- 55
src/wave_pulse.cpp View File

@@ -80,9 +80,6 @@ static pa_context *context = NULL;
static pa_stream *stream = NULL;
static pa_threaded_mainloop *mainloop = NULL;

static pa_cvolume volume;
static int volume_valid = 0;

static int do_trigger = 0;
static uint64_t written = 0;
static int time_offset_msec = 0;
@@ -131,20 +128,7 @@ do { \
// SHOW("ti> read_index=0x%lx\n",the_time->read_index);
// }


static void info_cb(struct pa_context *c, const struct pa_sink_input_info *i, int is_last, void *userdata) {
ENTER(__FUNCTION__);
assert(c);

if (!i)
return;

volume = i->volume;
volume_valid = 1;
}

static void subscribe_cb(struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata) {
pa_operation *o;
ENTER(__FUNCTION__);
assert(c);
@@ -154,13 +138,6 @@ static void subscribe_cb(struct pa_context *c, enum pa_subscription_event_type t
(t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE) &&
t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_NEW)))
return;

if (!(o = pa_context_get_sink_input_info(c, index, info_cb, NULL))) {
SHOW("pa_context_get_sink_input_info() failed: %s\n", pa_strerror(pa_context_errno(c)));
return;
}
pa_operation_unref(o);
}

static void context_state_cb(pa_context *c, void *userdata) {
@@ -367,7 +344,7 @@ static void pulse_write(void* ptr, int length) {

SHOW("pulse_write > length=%d\n", length);

CHECK_CONNECTED();
CHECK_CONNECTED_NO_RETVAL();

pa_threaded_mainloop_lock(mainloop);
CHECK_DEAD_GOTO(fail, 1);
@@ -481,12 +458,6 @@ static int pulse_open()
if (!pa_sample_spec_valid(&ss))
return false;

/* if (!volume_valid) { */
pa_cvolume_reset(&volume, ss.channels);
volume_valid = 1;
/* } else if (volume.channels != ss.channels) */
/* pa_cvolume_set(&volume, ss.channels, pa_cvolume_avg(&volume)); */

SHOW_TIME("pa_threaded_mainloop_new (call)");
if (!(mainloop = pa_threaded_mainloop_new())) {
SHOW("Failed to allocate main loop\n","");
@@ -539,8 +510,6 @@ static int pulse_open()
pa_stream_set_write_callback(stream, stream_request_cb, NULL);
pa_stream_set_latency_update_callback(stream, stream_latency_update_cb, NULL);



pa_buffer_attr a_attr;

a_attr.maxlength = MAXLENGTH;
@@ -550,7 +519,7 @@ static int pulse_open()
a_attr.fragsize = 0;

SHOW_TIME("pa_connect_playback");
if (pa_stream_connect_playback(stream, NULL, &a_attr, (pa_stream_flags_t)(PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_AUTO_TIMING_UPDATE), &volume, NULL) < 0) {
if (pa_stream_connect_playback(stream, NULL, &a_attr, (pa_stream_flags_t)(PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_AUTO_TIMING_UPDATE), NULL, NULL) < 0) {
SHOW("Failed to connect stream: %s", pa_strerror(pa_context_errno(context)));
goto unlock_and_fail;
}
@@ -578,44 +547,24 @@ static int pulse_open()
pa_threaded_mainloop_wait(mainloop);
}

pa_operation_unref(o);

if (!success) {
SHOW("pa_context_subscribe() failed: %s", pa_strerror(pa_context_errno(context)));
goto unlock_and_fail;
}

pa_operation_unref(o);

/* Now request the initial stream info */
if (!(o = pa_context_get_sink_input_info(context, pa_stream_get_index(stream), info_cb, NULL))) {
SHOW("pa_context_get_sink_input_info() failed: %s", pa_strerror(pa_context_errno(context)));
goto unlock_and_fail;
}
SHOW_TIME("pa_threaded_mainloop_wait 2");
while (pa_operation_get_state(o) != PA_OPERATION_DONE) {
CHECK_DEAD_GOTO(fail, 1);
pa_threaded_mainloop_wait(mainloop);
}

/* if (!volume_valid) { */
/* SHOW("pa_context_get_sink_input_info() failed: %s", pa_strerror(pa_context_errno(context))); */
/* goto unlock_and_fail; */
/* } */

do_trigger = 0;
written = 0;
time_offset_msec = 0;
just_flushed = 0;
connected = 1;
// volume_time_event = NULL;
pa_threaded_mainloop_unlock(mainloop);
SHOW_TIME("pulse_open (ret true)");
// return true;
return PULSE_OK;


unlock_and_fail:

if (o)

+ 1
- 1
src/wavegen.cpp View File

@@ -1796,7 +1796,7 @@ if(option_log_frames)
next = (fr2->fheight[ix] * v->height[ix]) << 6;
peaks[ix].height_inc = ((next - peaks[ix].height1) * STEPSIZE) / length2;

if(ix <= wvoice->n_harmonic_peaks)
if((ix <= 5) && (ix <= wvoice->n_harmonic_peaks))
{
peaks[ix].left1 = (fr1->fwidth[ix] * v->width[ix]) << 10;
peaks[ix].left = int(peaks[ix].left1);

Loading…
Cancel
Save