lang=Turkish, fix pronunciation of suffixes, fix suffixes after names. Windows: command option --stdout caused spurious 0x0d bytes to be included in speech output (CR/LF problem). Fixed crash which could occur when a clause starts with a hyphen. espeakedit: New input format for Bulgarian lexicon. lang=de: Fix important pronunciation error (editing error) for "sage". git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@259 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -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: |
@@ -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-03-31 | |||
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 | |||
@@ -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-30 | |||
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-03-26 | |||
@ 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. 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 |
@@ -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 |
@@ -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 |
@@ -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 | |||
@@ -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 |
@@ -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 |
@@ -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 | |||
@@ -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; |
@@ -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 | |||
@@ -248,6 +251,7 @@ | |||
_) க (ுருக்கள g | |||
_) க (ுருக்குல g | |||
_) க (ுருசாமி g | |||
_) க (ுருஜி g | |||
_) க (ுருதேவ g | |||
_) க (ுருநா g | |||
_) க (ுருபூஜை g | |||
@@ -416,6 +420,7 @@ _சந்திரி) க (ா k | |||
_மாளவி) க (ா k | |||
_மோனி) க (ா k | |||
_மௌனி) க (ா k | |||
_ஸ்ரீலங்) க (ா k | |||
_ஹன்L04ி) க (ா k | |||
_ஹாங்) க (ாங் k | |||
_தென்) க (ாசி k | |||
@@ -534,6 +539,7 @@ _கவிதா) க்க (ினி gg | |||
கு) க்கி (ராம gg | |||
அ) க்கி (ராம gg | |||
இ) க்கி (ராம gg | |||
L03) க்க (ுகை gg | |||
_மு) க்க (ுண gg | |||
அணு) க்க (ுண்ட gg | |||
_துப்பாக்கி) க்க (ுண்ட gg | |||
@@ -558,6 +564,7 @@ _துப்பாக்கி) க்க (ுண்ட gg | |||
_செ) க்யூரிட (ி kjU:rit. | |||
_ச) க்ரப (ாணி krVp | |||
வி) க (்ரம k | |||
_ரெ) க்ரூட் krU:t. | |||
ஆ) க (்ரோஷ k | |||
_பை) க் (ல_ k | |||
என்சை) க்லோப (ீடியா klo:p | |||
@@ -628,7 +635,9 @@ _தணிகா) ச (ல tSV | |||
_) சாக்லேட் tSa:kle:t. | |||
_) ச (ாணக்கிய tS | |||
ச (ாந்தி s. | |||
_) ச (ாந்தின tS | |||
_தே) ச (ாந்திர s | |||
_) ச (ாந்தில tS | |||
_) ச (ான்ஸ tS | |||
_) சாப் (ளின tSa:p | |||
_) ச (ாமுண்ட tS | |||
@@ -704,6 +713,7 @@ _தணிகா) ச (ல tSV | |||
இராவணே) சு (வர s | |||
ராவணே) சு (வர s | |||
_) சுவர்க்க svVrggV# | |||
_) சுவர்க்க (ோழி suvVrgg | |||
_) சு (வாச s | |||
சு (வாதீன s | |||
சு (வாமி s | |||
@@ -726,10 +736,15 @@ _தணிகா) ச (ல tSV | |||
_) செயின்ட sejint.V# | |||
_) ச (ெய்ன tS | |||
_) செய்ன்ட sejnt.V# | |||
_) ச (ெர்னோபில tS | |||
_) ச (ெல்லக்குட்டி tS | |||
_) ச (ெல்லத்துக்கு tS | |||
_) ச (ெல்லத்தை tS | |||
_) ச (ெல்லப்ப tS | |||
_) ச (ெல்லப்பன tS | |||
_) ச (ெல்லப்பா tS | |||
_) ச (ெல்லப்பிள்ளை tS | |||
_) ச (ெல்லப்பெண் tS | |||
_) ச (ெல்லப்பையன tS | |||
_) ச (ெல்லமா tS | |||
_) ச (ெஸ் tS | |||
_) ச (ேஞ்ச tS | |||
@@ -777,6 +792,7 @@ _ரிப்போர்) ட t.V# | |||
அர்ஜண்) ட t.V# | |||
அர்ஜெண்) ட t.V# | |||
இண்டர்மீடியே) ட t.V# | |||
_) ட (ஃப் t.V | |||
_) ட (க்கர t.V | |||
ங்) ட (ன t.V // -ington | |||
_நியூ) ட (ன t.V | |||
@@ -816,6 +832,8 @@ _ரிப்போர்) ட t.V# | |||
_) டாட (ா t.a:t. | |||
_) ட (ான்சானிய t. | |||
_) ட (ான்ஜானிய t. | |||
_) டாபிக் t.a:pik | |||
_) ட (ாமி t. | |||
அண்) டார்டிக t.a:rt.ikV# | |||
_) ட (ாலமி t. | |||
_) ட (ால்ஸ்டாய t. | |||
@@ -847,6 +865,7 @@ _நாவல்) ட (ி t. | |||
_) டிர (ஸ d.re | |||
_) டிர (ஸ்ட t.rV | |||
_) டிராஃபிக் t.ra:fik | |||
_) டி (ராகுலா d. | |||
_) டிராக் t.ra:k | |||
_காண்) டி (ராக்டர t. | |||
_) டி (ராஜ t. | |||
@@ -865,8 +884,10 @@ _நாவல்) ட (ி t. | |||
_) டி (ராவல t. | |||
_) டி (ராவெல t. | |||
_) டிரிக (ர t.riggV | |||
_) டிரிக் t.rik | |||
_) டிரிக்க (ர t.riggV | |||
_) டி (ரிம் t. | |||
_) டிரீட் t.ri:t. | |||
_) டிரெயி(லர t.rej | |||
_) டி (ரெயின t. | |||
_) டி (ரெய்லர t. | |||
@@ -921,6 +942,7 @@ _லான்_) ட (ென்னிஸ t. | |||
_) ட (ோக்கியோ t. | |||
_) டோரண்ட (ோ t.o:rVn.t. | |||
_ப்ரி) ட (ோரிய t. | |||
@மெண்) ட் t. // -ment | |||
இண்டர்நெ) ட் t. | |||
_ல) ட்ட d.d.V# | |||
_ரெ) ட்ட (ியா d.d. | |||
@@ -953,8 +975,10 @@ _லான்_) ட (ென்னிஸ t. | |||
_) ட் (ராவல t. | |||
_) ட் (ராவெல t. | |||
_) ட்ரிக (ர t.riggV | |||
_) ட்ரிக் t.rik | |||
_) ட்ரிக்க (ர t.riggV | |||
_) ட் (ரிம் t. | |||
_) ட்ரீட் t.ri:t. | |||
_வி) ட் (ரு t. | |||
_கே) ட் (ரு t. | |||
_போ) ட் (ரு t. | |||
@@ -976,6 +1000,7 @@ _லான்_) ட (ென்னிஸ t. | |||
_கூ) ட் (ல t. | |||
_நா) ட் (ல t. | |||
_பா) ட் (ல t. | |||
_மே) ட் (ல t. | |||
_ரூ) ட் (ல t. | |||
_நோ) ட் (ல t. | |||
_ரோ) ட் (ல t. | |||
@@ -1084,6 +1109,7 @@ _நடுரோ) ட் (ல t. | |||
_) த (ருமத் dV | |||
_) த (ருமன dV | |||
_) தருமப (ுரி dVrUmVp | |||
_) த (ருமம dV | |||
_) த (ருமர dV | |||
_) த (ருமி dV | |||
_) த (ர்க dV | |||
@@ -1214,6 +1240,7 @@ _நடுரோ) ட் (ல t. | |||
_) த (ுச்சாதனன d | |||
_) த (ுட்ட d | |||
_) த (ுபாய d | |||
_) த (ுபாஷி d | |||
_) த (ுப்பட்டா d | |||
_) த (ுமளி d | |||
_) த (ுரதிருஷ்ட d | |||
@@ -1309,10 +1336,12 @@ _வசந்) த tV# | |||
_சீ) த (ா t | |||
_ல) த (ா t | |||
_சபி) த (ா t | |||
_சபீ) த (ா t | |||
அனி) த (ா t | |||
சுஜா) த (ா t | |||
லலி) த (ா t | |||
_சுனி) த (ா t | |||
_ஹரி) த (ா t | |||
_வனி) த (ா t | |||
_வினி) த (ா t | |||
_நிவேதி) த (ா t | |||
@@ -1330,6 +1359,7 @@ _புஷ்பல) த (ா t | |||
வாசந்) த (ி t | |||
_கோம) த (ி t | |||
ஜெயந்) த (ி t | |||
_துஷ்யந்) த (ி t | |||
_பார்வ) த (ி t | |||
_பிரசார்_பார) த (ி t | |||
பிரபாவ) த (ி t | |||
@@ -1529,6 +1559,7 @@ _சொந்த_) ப (ந்த bV | |||
_) ப (லப்பரீட்சை bV | |||
_) ப (லம bV | |||
_) ப (லமடங்க pV | |||
_) ப (லமாடி pV | |||
_) ப (லமுறை pV | |||
_) ப (லமொழி pV | |||
_) ப (லராம bV | |||
@@ -1589,6 +1620,7 @@ _சொந்த_) ப (ந்த bV | |||
_) ப (ாணமு b | |||
_) ப (ாணி b | |||
_) ப (ாதிக்க b | |||
_) ப (ாதிக்கண் p | |||
_) ப (ாதிக்கு_ p | |||
_) ப (ாதிக்கும்_குறை p | |||
_) ப (ாதிக்கும்_மேற் p | |||
@@ -1632,6 +1664,7 @@ _சொந்த_) ப (ந்த bV | |||
_) ப (ாலக்காட p | |||
_) ப (ாலச b | |||
_) ப (ாலதண் b | |||
_) ப (ாலன b | |||
_) பாலப (ாட ba:lVp | |||
_) ப (ாலமுர b | |||
_) ப (ாலய்யா b | |||
@@ -1896,6 +1929,7 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) புரப (L04ர profV | |||
_) புரபொ (சர profV | |||
_) பு (ரவுச b | |||
_) ப (ுருடா b | |||
_) புரொப (சர profV | |||
_) புரொபொ (சர profV | |||
_) ப (ுரோக்கர b | |||
@@ -1968,7 +2002,9 @@ _பெனசீர்_) ப (ுட்டோ b | |||
_) ப (ொம்மன b | |||
_) ப (ொம்மல b | |||
_) ப (ொம்மை b | |||
_) ப (ோக_L11 b | |||
_) ப (ோகங்க b | |||
_) ப (ோகத்த b | |||
_) ப (ோகத்திற்க b | |||
_) ப (ோகத்தில b | |||
_) ப (ோகத்துக்க b | |||
@@ -2111,6 +2147,7 @@ _சொந்த) ப (ந்த bV | |||
_ஒலி) ப (ரப் pV | |||
_ஒளி) ப (ரப் pV | |||
வீர) ப (ராக்கிரம pV | |||
_மறு) ப (ரிசீலனை pV | |||
ஆ) ப (ரேசன pV | |||
ஆ) ப (ரேஷன pV | |||
_கார்) ப (ரேஷன pV | |||
@@ -2339,6 +2376,7 @@ _ஞானப்) பிரக (ா prVk | |||
_லாக) ப் p | |||
ஆ) ப் (கானிய f | |||
ஆ) ப் (கானிஸ்தான f | |||
_பா) ப்க (ார்ன pk | |||
_லி) ப் (ட f | |||
_மைக்ரோசா) ப் (ட f | |||
கர்) ப்ப bbV# |
@@ -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 |
@@ -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 |
@@ -1,4 +1,4 @@ | |||
73 phoneme tables | |||
74 phoneme tables | |||
new total | |||
base 107 107 | |||
consonants 10 116 | |||
@@ -55,6 +55,7 @@ consonants 10 116 | |||
sq 33 126 | |||
hy 23 117 | |||
da 27 120 | |||
ka 19 112 | |||
rw 15 130 | |||
ml 18 151 | |||
ne 18 157 | |||
@@ -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@ [hF|] 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 [hF|] 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 [hF|] 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 [hF|] 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 [hF|] 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 [hF|] 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 |
@@ -113,6 +113,7 @@ endphoneme | |||
phoneme e: | |||
vowel starttype #e endtype #i | |||
length 190 | |||
ChangeIfUnstressed(@) | |||
FMT(vdiph/ei) | |||
endphoneme | |||
@@ -328,10 +328,11 @@ phoneme r | |||
IF prevPhW(isVowel) THEN | |||
ChangePhoneme(R) | |||
ELSE | |||
// IF thisPh(isWordStart) THEN | |||
// ELSE | |||
IF prevPhW(isUStop) THEN | |||
ChangePhoneme(R) | |||
ELSE | |||
InsertPhoneme(@-) | |||
// ENDIF | |||
ENDIF | |||
ENDIF | |||
ENDIF | |||
ENDIF | |||
@@ -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 : |
@@ -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 |
@@ -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) |
@@ -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}, | |||
@@ -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; |
@@ -1639,7 +1639,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; |
@@ -781,8 +781,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 +817,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) |
@@ -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) |
@@ -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"); | |||
@@ -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.11 31.Mar.11"; | |||
const int version_phdata = 0x014500; | |||
int option_device_number = -1; |
@@ -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; |
@@ -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 | |||
{ | |||
@@ -2772,7 +2794,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 +2832,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 +2953,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 +3079,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" |
@@ -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); |
@@ -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) |
@@ -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); |