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
a (C_ A: | a (C_ A: | ||||
@) a (bl_ 'A: | @) a (bl_ 'A: | ||||
@) a (bel_ 'A: | @) a (bel_ 'A: | ||||
s) a (g A:Spionage | |||||
s) a (g A: | |||||
@l) a (g A: | @l) a (g A: | ||||
schl) ag (ge A:k | schl) ag (ge A:k | ||||
scl) a (g A: | scl) a (g A: |
z Z | z Z | ||||
Dictionary hu_dict 2011-03-10 | |||||
Dictionary hu_dict 2011-03-30 | |||||
a A a: E e: i i: o | a A a: E e: i i: o | ||||
o: u u: Y y y: Y: | o: u u: Y y y: Y: | ||||
s2 t t2 tS ts v z Z | 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 | 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 | * : ; b C d D dZ | ||||
f g g# h j k l m | f g g# h j k l m | ||||
ts v x z z; | ts v x z z; | ||||
Dictionary en_dict 2011-03-09 | |||||
Dictionary en_dict 2011-03-30 | |||||
0 3 3: @ @- @2 @5 @L | 0 3 3: @ @- @2 @5 @L | ||||
a a# A: A@ aa aI aI@ aU | a a# A: A@ aa aI aI@ aU | ||||
t. th th. v w x z | 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 | a a: aI aU e E e: i | ||||
I i: o o: u U u2 u: | I i: o o: u U u2 u: | ||||
t tS v w x | t tS v w x | ||||
Dictionary nl_dict 2011-03-13 | |||||
Dictionary nl_dict 2011-03-30 | |||||
8 @ @- a A a: A~ e | 8 @ @- a A a: A~ e | ||||
E E2 e: EI eU i I o | E E2 e: EI eU i I o | ||||
z; Z; | z; Z; | ||||
Dictionary ru_dict 2011-03-14 | |||||
Dictionary ru_dict 2011-03-25 | |||||
8 @- a A e E E# E% | 8 @- a A e E E# E% | ||||
E2 i I I# I3 I^ ja ju | E2 i I I# I3 I^ ja ju | ||||
v w x z Z | v w x z Z | ||||
Dictionary tr_dict 2011-01-28 | |||||
Dictionary tr_dict 2011-03-17 | |||||
@ a e E i I o O | @ a e E i I o O | ||||
u U W y Y | u U W y Y | ||||
z Z | z Z | ||||
Dictionary ml_dict 2011-03-09 | |||||
Dictionary ml_dict 2011-03-26 | |||||
@ a a: aI aU e E e: | @ a a: aI aU e E e: | ||||
i I i: o o: r- u u: | i I i: o o: r- u u: | ||||
V y | 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 | Dictionary ne_dict 2008-12-16 | ||||
z Z z. | z Z z. | ||||
Dictionary bg_dict 2011-03-12 | |||||
Dictionary bg_dict 2011-03-25 | |||||
@ a e i o u | @ a e i o u | ||||
v w x X z | 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 | a a: aI aU e E e: i | ||||
i: l- o o: r- u u: V | i: l- o o: r- u u: V | ||||
p p# Q q r s S t | p p# Q q r s S t | ||||
t# tS ts ts# v w x z | t# tS ts ts# v w x z | ||||
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 |
orange 0rI2ndZ | orange 0rI2ndZ | ||||
orion 0r'aI@n | orion 0r'aI@n | ||||
ordeal O@d'i@l | ordeal O@d'i@l | ||||
oregano 0rIg'A:noU | |||||
orphan O@f@n // orphaned | orphan O@f@n // orphaned | ||||
outage $1 | outage $1 | ||||
outback $1 | outback $1 | ||||
remit ri:mIt | remit ri:mIt | ||||
remit ri:m'It $verb | remit ri:m'It $verb | ||||
remnant rEmn@nt | remnant rEmn@nt | ||||
renal ri:n@L | |||||
rendevous r0ndI2vu: | rendevous r0ndI2vu: | ||||
rendezvous r0ndI2vu: | rendezvous r0ndI2vu: | ||||
renegade rEn@geId | renegade rEn@geId |
_) o (Bal oU | _) o (Bal oU | ||||
XC) o (Bal oU | XC) o (Bal oU | ||||
X) o (By oU | X) o (By oU | ||||
_) o (Cy+ 0 | |||||
o (Be# oU | o (Be# oU | ||||
o (BeCo_ 0 | o (BeCo_ 0 | ||||
o (BenC oU | o (BenC oU |
zajlott $unstressend | zajlott $unstressend | ||||
fordultak $unstressend | fordultak $unstressend | ||||
vették $unstressend | vették $unstressend | ||||
fordult $unstressend | |||||
épül $unstressend | épül $unstressend | ||||
bizonyítékok $unstressend | bizonyítékok $unstressend | ||||
nyilvánításra $unstressend | nyilvánításra $unstressend | ||||
állók $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 | // word pairs | ||||
ma) ch (iná h | ma) ch (iná h | ||||
oligar) ch h | oligar) ch h | ||||
legpe) ch (es h: | legpe) ch (es h: | ||||
mazo) ch (izm h | |||||
mazo) ch (is h | |||||
.group d | .group d | ||||
d d | d d | ||||
mó) d (javaslat d | mó) d (javaslat d | ||||
rekor) d (szint d | rekor) d (szint d | ||||
kambo) dzs dZ: | 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 | .group dz | ||||
fogó) dz (kod ts | fogó) dz (kod ts | ||||
rava) sz (ár s | rava) sz (ár s | ||||
_ka) sztsze st|sE | _ka) sztsze st|sE | ||||
szemete) szs (ák SZ | szemete) szs (ák SZ | ||||
dro) sztsze (rző st|sE //drosztszerződés word need spokening st and single sE phoneme | |||||
.group t | .group t | ||||
t t | t t | ||||
ha) t (cell t //for example hatcellás, hatcella word need spokening t before c letter. | ha) t (cell t //for example hatcellás, hatcella word need spokening t before c letter. | ||||
pár) t (székház t | pár) t (székház t | ||||
.group tj | .group tj | ||||
C) tj c | C) tj c | ||||
kür) tj c | kür) tj c | ||||
ada) ts t|S //for example adatsor, adatsebesség words | ada) ts t|S //for example adatsor, adatsebesség words | ||||
ada) tsz t|s //for example adatszolgáltatás word | ada) tsz t|s //for example adatszolgáltatás word | ||||
gondola) ts (or t|S | gondola) ts (or t|S | ||||
művele) ts (or t|S | |||||
művele) ts (o t|S | |||||
tábláza) ts (or t|S | tábláza) ts (or t|S | ||||
vizsgála) ts (or t|S | vizsgála) ts (or t|S | ||||
állapo) ts (or t|S | állapo) ts (or t|S | ||||
gyakorla) ts (oroz t|S | gyakorla) ts (oroz t|S | ||||
támogato) ts (ág tS: | támogato) ts (ág tS: | ||||
.group tt | .group tt | ||||
tt t: | tt t: | ||||
ttgy t:J | ttgy t:J |
weekend _^_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 | // words where -er is not a stressed verb ending | ||||
achter $alt | achter $alt | ||||
amandel $alt | amandel $alt | ||||
appel $alt | appel $alt | ||||
artikel $alt | artikel $alt | ||||
beginsel $alt | |||||
ginsel $alt // beginsel | |||||
discipel dIs'ip@l $alt | discipel dIs'ip@l $alt | ||||
engel $alt | engel $alt | ||||
fabel $alt | fabel $alt | ||||
gruwel $alt | gruwel $alt | ||||
heuvel $alt | heuvel $alt | ||||
hommel $alt | |||||
letsel $alt | letsel $alt | ||||
mazel $alt | mazel $alt | ||||
meubel $alt | meubel $alt | ||||
accessoires aksEsv#'ar@s | accessoires aksEsv#'ar@s | ||||
actiepunt Aksip8nt | actiepunt Aksip8nt | ||||
agenda $2 | agenda $2 | ||||
alles Al@s | |||||
amino $1 | amino $1 | ||||
amnestie $3 | amnestie $3 | ||||
april a:pr'Il | april a:pr'Il | ||||
armand _^_FR | armand _^_FR | ||||
artikel art,ik@l | |||||
augustus VUQ'8st8s | augustus VUQ'8st8s | ||||
be $abbrev // used as domain abbrev for Belgium and in a lot of other names | be $abbrev // used as domain abbrev for Belgium and in a lot of other names | ||||
beha be:_h'a: | beha be:_h'a: | ||||
reservoir re:zErvv#'a:r | reservoir re:zErvv#'a:r | ||||
revanche r@vA~nS | revanche r@vA~nS | ||||
regime $2 | regime $2 | ||||
roman $2 | |||||
sacristie $3 | sacristie $3 | ||||
saint _^_FR | saint _^_FR | ||||
salomo $1 | salomo $1 |
@) aard (_@S4 a:rt | @) aard (_@S4 a:rt | ||||
aa (rd_ 'a: | aa (rd_ 'a: | ||||
aa (C_ 'a: | aa (C_ 'a: | ||||
z) aa (m_ a: | |||||
@) abel (_ 'a:bE2l | @) abel (_ 'a:bE2l | ||||
@) abele (_ 'a:b@l@ | @) abele (_ 'a:b@l@ | ||||
m) ach (in %a:S | m) ach (in %a:S | ||||
dt t | dt t | ||||
ds (_N ts | ds (_N ts | ||||
// _) de (CC@P2 d@ // Used a lot in family names | // _) de (CC@P2 d@ // Used a lot in family names | ||||
_) de (zelf d@ | |||||
.group e | .group e | ||||
&) el (de_$p_alt =@l | &) el (de_$p_alt =@l | ||||
&) el (den_$p_alt =@l | &) el (den_$p_alt =@l | ||||
&) el (end_$p_alt =@l | &) el (end_$p_alt =@l | ||||
&) el (ing_$p_alt =@l | |||||
&) el (ingen_$p_alt =@l | |||||
&) er (_$p_alt =@r | &) er (_$p_alt =@r | ||||
&) er (e_$p_alt =@r | &) er (e_$p_alt =@r | ||||
&) er (en_$p_alt =@r | &) er (en_$p_alt =@r | ||||
&) elijks @l@ks | &) elijks @l@ks | ||||
&) em (_ @m | &) em (_ @m | ||||
&) e (ment @ | &) e (ment @ | ||||
&) e (nissen_ @ | |||||
&) en (_S2qd @n | &) en (_S2qd @n | ||||
&) ens (_S3q @ns | &) ens (_S3q @ns | ||||
&) end (_ @nd | &) end (_ @nd | ||||
&) ende (_ @nd@ | &) ende (_ @nd@ | ||||
&) enden (_ @nd@n | &) enden (_ @nd@n | ||||
eden e:d@n | eden e:d@n | ||||
&) ent (_$w_alt =@nt | |||||
@) ent (_ 'Ent | @) ent (_ 'Ent | ||||
@) ent (e_ 'Ent | @) ent (e_ 'Ent | ||||
@) ent (en_ 'Ent | @) ent (en_ 'Ent | ||||
@) ent (er_ 'Ent | @) ent (er_ 'Ent | ||||
@) ent (ere_ 'Ent | |||||
@) ent (st_ 'Ent | |||||
@) ent (ste_ 'Ent | |||||
ag) ent 'Ent | ag) ent 'Ent | ||||
&) er (_ @r | &) er (_ @r | ||||
&) ere (_ @r@ | &) ere (_ @r@ | ||||
&) er (en_$p_alt @r // where 'eren' is not a verb ending | &) er (en_$p_alt @r // where 'eren' is not a verb ending | ||||
eren (_ 'I:r@n | eren (_ 'I:r@n | ||||
@j) es (_ @s | |||||
@) es (_S2qd 'Es | @) es (_S2qd 'Es | ||||
@) 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'. | ||||
euille @'y | euille @'y | ||||
&) e (nB@ E2 | &) e (nB@ E2 | ||||
id) e (nt E | id) e (nt E | ||||
_) er (@P2 Er | _) er (@P2 Er | ||||
_) erger ErQ@r // ergeren | |||||
&) era (_ @ra: | &) era (_ @ra: | ||||
@) e (raar_ @ | @) e (raar_ @ | ||||
&) e (rC@ E2 | &) e (rC@ E2 | ||||
gg Q | gg Q | ||||
_) ge (@P2 Q@ | _) ge (@P2 Q@ | ||||
ge (bied Q@ | |||||
_) gee Qe: | _) gee Qe: | ||||
gener (aal Q,e:n@r | gener (aal Q,e:n@r | ||||
_) gelijk Q@lEIk | _) gelijk Q@lEIk | ||||
_) her (@P3 hEr | _) her (@P3 hEr | ||||
_) her (en hI:r | _) her (en hI:r | ||||
_) herinn h%ErIn // herinneren | |||||
_) hersen h'Ers@n | |||||
&) heid (_S4 hEIt | &) heid (_S4 hEIt | ||||
ie (rd_ 'i | ie (rd_ 'i | ||||
@) ig (_S2dq @x | @) ig (_S2dq @x | ||||
@) ige (_ @Q@ | @) ige (_ @Q@ | ||||
@) igen (_ @Q@n | |||||
@) igen (_ @Q@n | |||||
@) iger (_ @Q@r | |||||
@) igere (_ @Q@r@ | |||||
@) igst (_ @Qst | |||||
@) igste (_ @Qst@ | |||||
ij (_ 'EI | ij (_ 'EI | ||||
ij (e_ 'EI | ij (e_ 'EI | ||||
@) ij (n_ 'EI | @) ij (n_ 'EI | ||||
&) lijk (_S4 l@k | &) lijk (_S4 l@k | ||||
&) lijke (_S5 l@k@ | &) lijke (_S5 l@k@ | ||||
&) lijken (_S6 l@k@n | &) 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 | &) laan (_S4 la:n | ||||
_) lange (@P5 laN@ | _) lange (@P5 laN@ | ||||
@) loog (_ lo:x | @) loog (_ lo:x | ||||
_) na (C@@P2 n'a: | _) na (C@@P2 n'a: | ||||
_) na (tion na: | _) na (tion na: | ||||
_) na (der na: | _) na (der na: | ||||
_) natuur na:t'yr | |||||
_) noord (@P5 no:rd | _) noord (@P5 no:rd | ||||
_) nieuws (@P6 n'iws | _) nieuws (@P6 n'iws | ||||
@@) nis (_@S3 nIs | @@) nis (_@S3 nIs | ||||
@@) nisen (_@S5 nIs@n | |||||
.group o | .group o | ||||
_) uit (@P3 'Wyt | _) uit (@P3 'Wyt | ||||
u (re_ 'y | u (re_ 'y | ||||
@) ute (_ 'yt | @) ute (_ 'yt | ||||
uu (r_ 'y | |||||
.group v | .group v | ||||
_) ver (@P3 v@r | _) ver (@P3 v@r | ||||
_) ver (sie_ vEr | _) ver (sie_ vEr | ||||
_) verder vErd@r | _) verder vErd@r | ||||
_) verge (le v@rQ'e: | |||||
_) voort (@P5 v'O:rt | _) voort (@P5 v'O:rt | ||||
$ d'OlAr | $ d'OlAr | ||||
, (D k'Oma: | , (D k'Oma: | ||||
__) - (_D m'In | __) - (_D m'In | ||||
@) 's (_S2 s | |||||
_6X SE2z;d;d;Is;'jat | _6X SE2z;d;d;Is;'jat | ||||
_7X s;'emd;E2s;Vt | _7X s;'emd;E2s;Vt | ||||
_8X v'os;E2md;E2s;Vt | _8X v'os;E2md;E2s;Vt | ||||
_9X d;E2v;In'ostO | |||||
_9X d;evIn'ostO | |||||
_0C st'o | _0C st'o | ||||
_2C dv;'es;t;I | _2C dv;'es;t;I | ||||
_3C tr;'ista | _3C tr;'ista | ||||
_6C S,E#s;t;s'ot | _6C S,E#s;t;s'ot | ||||
_7C s;,Ims'ot | _7C s;,Ims'ot | ||||
_8C vOs;Ims'ot | _8C vOs;Ims'ot | ||||
_9C dev;Vn'ostO | |||||
_9C devits'ot | |||||
_1MA1 t'ys;ItS;V // no '1' before thousand | _1MA1 t'ys;ItS;V // no '1' before thousand | ||||
_0MA1 t'ys;ItS;i | _0MA1 t'ys;ItS;i | ||||
_0M1 t'ys;VtS; | _0M1 t'ys;VtS; |
ோ ோ | ோ ோ | ||||
ௌ ௌ | ௌ ௌ | ||||
// க is k when preceded by these | // க is k when preceded by these | ||||
.L01 ஷ் ஸ் ட் | .L01 ஷ் ஸ் ட் | ||||
.L06 க ஹ | .L06 க ஹ | ||||
// words before "bottle" | // words before "bottle" | ||||
.L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி | |||||
.L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி பிளாஸ்டிக் ப்ளாஸ்டிக் | |||||
// words after "booga" | |||||
.L11 வாழ்க்கை பூமி விருந்த மனிதன | |||||
// consonants | // consonants | ||||
_) க (தியில் gV | _) க (தியில் gV | ||||
_) க (தியை gV | _) க (தியை gV | ||||
_) க (ந்தர்வ gV | _) க (ந்தர்வ gV | ||||
_) க (னக்க gV | |||||
_) க (னத் gV | _) க (னத் gV | ||||
_) க (னம gV | _) க (னம gV | ||||
_) கப் (L04ா gVp | _) கப் (L04ா gVp | ||||
_) க (ுருக்கள g | _) க (ுருக்கள g | ||||
_) க (ுருக்குல g | _) க (ுருக்குல g | ||||
_) க (ுருசாமி g | _) க (ுருசாமி g | ||||
_) க (ுருஜி g | |||||
_) க (ுருதேவ g | _) க (ுருதேவ g | ||||
_) க (ுருநா g | _) க (ுருநா g | ||||
_) க (ுருபூஜை g | _) க (ுருபூஜை g | ||||
_மாளவி) க (ா k | _மாளவி) க (ா k | ||||
_மோனி) க (ா k | _மோனி) க (ா k | ||||
_மௌனி) க (ா k | _மௌனி) க (ா k | ||||
_ஸ்ரீலங்) க (ா k | |||||
_ஹன்L04ி) க (ா k | _ஹன்L04ி) க (ா k | ||||
_ஹாங்) க (ாங் k | _ஹாங்) க (ாங் k | ||||
_தென்) க (ாசி k | _தென்) க (ாசி k | ||||
கு) க்கி (ராம gg | கு) க்கி (ராம gg | ||||
அ) க்கி (ராம gg | அ) க்கி (ராம gg | ||||
இ) க்கி (ராம gg | இ) க்கி (ராம gg | ||||
L03) க்க (ுகை gg | |||||
_மு) க்க (ுண gg | _மு) க்க (ுண gg | ||||
அணு) க்க (ுண்ட gg | அணு) க்க (ுண்ட gg | ||||
_துப்பாக்கி) க்க (ுண்ட gg | _துப்பாக்கி) க்க (ுண்ட gg | ||||
_செ) க்யூரிட (ி kjU:rit. | _செ) க்யூரிட (ி kjU:rit. | ||||
_ச) க்ரப (ாணி krVp | _ச) க்ரப (ாணி krVp | ||||
வி) க (்ரம k | வி) க (்ரம k | ||||
_ரெ) க்ரூட் krU:t. | |||||
ஆ) க (்ரோஷ k | ஆ) க (்ரோஷ k | ||||
_பை) க் (ல_ k | _பை) க் (ல_ k | ||||
என்சை) க்லோப (ீடியா klo:p | என்சை) க்லோப (ீடியா klo:p | ||||
_) சாக்லேட் tSa:kle:t. | _) சாக்லேட் tSa:kle:t. | ||||
_) ச (ாணக்கிய tS | _) ச (ாணக்கிய tS | ||||
ச (ாந்தி s. | ச (ாந்தி s. | ||||
_) ச (ாந்தின tS | |||||
_தே) ச (ாந்திர s | _தே) ச (ாந்திர s | ||||
_) ச (ாந்தில tS | |||||
_) ச (ான்ஸ tS | _) ச (ான்ஸ tS | ||||
_) சாப் (ளின tSa:p | _) சாப் (ளின tSa:p | ||||
_) ச (ாமுண்ட tS | _) ச (ாமுண்ட tS | ||||
இராவணே) சு (வர s | இராவணே) சு (வர s | ||||
ராவணே) சு (வர s | ராவணே) சு (வர s | ||||
_) சுவர்க்க svVrggV# | _) சுவர்க்க svVrggV# | ||||
_) சுவர்க்க (ோழி suvVrgg | |||||
_) சு (வாச s | _) சு (வாச s | ||||
சு (வாதீன s | சு (வாதீன s | ||||
சு (வாமி s | சு (வாமி s | ||||
_) செயின்ட sejint.V# | _) செயின்ட sejint.V# | ||||
_) ச (ெய்ன tS | _) ச (ெய்ன tS | ||||
_) செய்ன்ட sejnt.V# | _) செய்ன்ட sejnt.V# | ||||
_) ச (ெர்னோபில tS | |||||
_) ச (ெல்லக்குட்டி tS | _) ச (ெல்லக்குட்டி tS | ||||
_) ச (ெல்லத்துக்கு tS | _) ச (ெல்லத்துக்கு tS | ||||
_) ச (ெல்லத்தை tS | _) ச (ெல்லத்தை tS | ||||
_) ச (ெல்லப்ப tS | |||||
_) ச (ெல்லப்பன tS | |||||
_) ச (ெல்லப்பா tS | |||||
_) ச (ெல்லப்பிள்ளை tS | |||||
_) ச (ெல்லப்பெண் tS | |||||
_) ச (ெல்லப்பையன tS | |||||
_) ச (ெல்லமா tS | _) ச (ெல்லமா tS | ||||
_) ச (ெஸ் tS | _) ச (ெஸ் tS | ||||
_) ச (ேஞ்ச tS | _) ச (ேஞ்ச tS | ||||
அர்ஜண்) ட t.V# | அர்ஜண்) ட t.V# | ||||
அர்ஜெண்) ட t.V# | அர்ஜெண்) ட t.V# | ||||
இண்டர்மீடியே) ட t.V# | இண்டர்மீடியே) ட t.V# | ||||
_) ட (ஃப் t.V | |||||
_) ட (க்கர t.V | _) ட (க்கர t.V | ||||
ங்) ட (ன t.V // -ington | ங்) ட (ன t.V // -ington | ||||
_நியூ) ட (ன t.V | _நியூ) ட (ன t.V | ||||
_) டாட (ா t.a:t. | _) டாட (ா t.a:t. | ||||
_) ட (ான்சானிய t. | _) ட (ான்சானிய t. | ||||
_) ட (ான்ஜானிய t. | _) ட (ான்ஜானிய t. | ||||
_) டாபிக் t.a:pik | |||||
_) ட (ாமி t. | |||||
அண்) டார்டிக t.a:rt.ikV# | அண்) டார்டிக t.a:rt.ikV# | ||||
_) ட (ாலமி t. | _) ட (ாலமி t. | ||||
_) ட (ால்ஸ்டாய t. | _) ட (ால்ஸ்டாய t. | ||||
_) டிர (ஸ d.re | _) டிர (ஸ d.re | ||||
_) டிர (ஸ்ட t.rV | _) டிர (ஸ்ட t.rV | ||||
_) டிராஃபிக் t.ra:fik | _) டிராஃபிக் t.ra:fik | ||||
_) டி (ராகுலா d. | |||||
_) டிராக் t.ra:k | _) டிராக் t.ra:k | ||||
_காண்) டி (ராக்டர t. | _காண்) டி (ராக்டர t. | ||||
_) டி (ராஜ t. | _) டி (ராஜ t. | ||||
_) டி (ராவல t. | _) டி (ராவல t. | ||||
_) டி (ராவெல t. | _) டி (ராவெல t. | ||||
_) டிரிக (ர t.riggV | _) டிரிக (ர t.riggV | ||||
_) டிரிக் t.rik | |||||
_) டிரிக்க (ர t.riggV | _) டிரிக்க (ர t.riggV | ||||
_) டி (ரிம் t. | _) டி (ரிம் t. | ||||
_) டிரீட் t.ri:t. | |||||
_) டிரெயி(லர t.rej | _) டிரெயி(லர t.rej | ||||
_) டி (ரெயின t. | _) டி (ரெயின t. | ||||
_) டி (ரெய்லர t. | _) டி (ரெய்லர t. | ||||
_) ட (ோக்கியோ t. | _) ட (ோக்கியோ t. | ||||
_) டோரண்ட (ோ t.o:rVn.t. | _) டோரண்ட (ோ t.o:rVn.t. | ||||
_ப்ரி) ட (ோரிய t. | _ப்ரி) ட (ோரிய t. | ||||
@மெண்) ட் t. // -ment | |||||
இண்டர்நெ) ட் t. | இண்டர்நெ) ட் t. | ||||
_ல) ட்ட d.d.V# | _ல) ட்ட d.d.V# | ||||
_ரெ) ட்ட (ியா d.d. | _ரெ) ட்ட (ியா d.d. | ||||
_) ட் (ராவல t. | _) ட் (ராவல t. | ||||
_) ட் (ராவெல t. | _) ட் (ராவெல t. | ||||
_) ட்ரிக (ர t.riggV | _) ட்ரிக (ர t.riggV | ||||
_) ட்ரிக் t.rik | |||||
_) ட்ரிக்க (ர t.riggV | _) ட்ரிக்க (ர t.riggV | ||||
_) ட் (ரிம் t. | _) ட் (ரிம் t. | ||||
_) ட்ரீட் t.ri:t. | |||||
_வி) ட் (ரு t. | _வி) ட் (ரு t. | ||||
_கே) ட் (ரு t. | _கே) ட் (ரு t. | ||||
_போ) ட் (ரு t. | _போ) ட் (ரு t. | ||||
_கூ) ட் (ல t. | _கூ) ட் (ல t. | ||||
_நா) ட் (ல t. | _நா) ட் (ல t. | ||||
_பா) ட் (ல t. | _பா) ட் (ல t. | ||||
_மே) ட் (ல t. | |||||
_ரூ) ட் (ல t. | _ரூ) ட் (ல t. | ||||
_நோ) ட் (ல t. | _நோ) ட் (ல t. | ||||
_ரோ) ட் (ல t. | _ரோ) ட் (ல t. | ||||
_) த (ருமத் dV | _) த (ருமத் dV | ||||
_) த (ருமன dV | _) த (ருமன dV | ||||
_) தருமப (ுரி dVrUmVp | _) தருமப (ுரி dVrUmVp | ||||
_) த (ருமம dV | |||||
_) த (ருமர dV | _) த (ருமர dV | ||||
_) த (ருமி dV | _) த (ருமி dV | ||||
_) த (ர்க dV | _) த (ர்க dV | ||||
_) த (ுச்சாதனன d | _) த (ுச்சாதனன d | ||||
_) த (ுட்ட d | _) த (ுட்ட d | ||||
_) த (ுபாய d | _) த (ுபாய d | ||||
_) த (ுபாஷி d | |||||
_) த (ுப்பட்டா d | _) த (ுப்பட்டா d | ||||
_) த (ுமளி d | _) த (ுமளி d | ||||
_) த (ுரதிருஷ்ட d | _) த (ுரதிருஷ்ட d | ||||
_சீ) த (ா t | _சீ) த (ா t | ||||
_ல) த (ா t | _ல) த (ா t | ||||
_சபி) த (ா t | _சபி) த (ா t | ||||
_சபீ) த (ா t | |||||
அனி) த (ா t | அனி) த (ா t | ||||
சுஜா) த (ா t | சுஜா) த (ா t | ||||
லலி) த (ா t | லலி) த (ா t | ||||
_சுனி) த (ா t | _சுனி) த (ா t | ||||
_ஹரி) த (ா t | |||||
_வனி) த (ா t | _வனி) த (ா t | ||||
_வினி) த (ா t | _வினி) த (ா t | ||||
_நிவேதி) த (ா t | _நிவேதி) த (ா t | ||||
வாசந்) த (ி t | வாசந்) த (ி t | ||||
_கோம) த (ி t | _கோம) த (ி t | ||||
ஜெயந்) த (ி t | ஜெயந்) த (ி t | ||||
_துஷ்யந்) த (ி t | |||||
_பார்வ) த (ி t | _பார்வ) த (ி t | ||||
_பிரசார்_பார) த (ி t | _பிரசார்_பார) த (ி t | ||||
பிரபாவ) த (ி t | பிரபாவ) த (ி t | ||||
_) ப (லப்பரீட்சை bV | _) ப (லப்பரீட்சை bV | ||||
_) ப (லம bV | _) ப (லம bV | ||||
_) ப (லமடங்க pV | _) ப (லமடங்க pV | ||||
_) ப (லமாடி pV | |||||
_) ப (லமுறை pV | _) ப (லமுறை pV | ||||
_) ப (லமொழி pV | _) ப (லமொழி pV | ||||
_) ப (லராம bV | _) ப (லராம bV | ||||
_) ப (ாணமு b | _) ப (ாணமு b | ||||
_) ப (ாணி b | _) ப (ாணி b | ||||
_) ப (ாதிக்க b | _) ப (ாதிக்க b | ||||
_) ப (ாதிக்கண் p | |||||
_) ப (ாதிக்கு_ p | _) ப (ாதிக்கு_ p | ||||
_) ப (ாதிக்கும்_குறை p | _) ப (ாதிக்கும்_குறை p | ||||
_) ப (ாதிக்கும்_மேற் p | _) ப (ாதிக்கும்_மேற் p | ||||
_) ப (ாலக்காட p | _) ப (ாலக்காட p | ||||
_) ப (ாலச b | _) ப (ாலச b | ||||
_) ப (ாலதண் b | _) ப (ாலதண் b | ||||
_) ப (ாலன b | |||||
_) பாலப (ாட ba:lVp | _) பாலப (ாட ba:lVp | ||||
_) ப (ாலமுர b | _) ப (ாலமுர b | ||||
_) ப (ாலய்யா b | _) ப (ாலய்யா b | ||||
_) புரப (L04ர profV | _) புரப (L04ர profV | ||||
_) புரபொ (சர profV | _) புரபொ (சர profV | ||||
_) பு (ரவுச b | _) பு (ரவுச b | ||||
_) ப (ுருடா b | |||||
_) புரொப (சர profV | _) புரொப (சர profV | ||||
_) புரொபொ (சர profV | _) புரொபொ (சர profV | ||||
_) ப (ுரோக்கர b | _) ப (ுரோக்கர b | ||||
_) ப (ொம்மன b | _) ப (ொம்மன b | ||||
_) ப (ொம்மல b | _) ப (ொம்மல b | ||||
_) ப (ொம்மை b | _) ப (ொம்மை b | ||||
_) ப (ோக_L11 b | |||||
_) ப (ோகங்க b | _) ப (ோகங்க b | ||||
_) ப (ோகத்த b | |||||
_) ப (ோகத்திற்க b | _) ப (ோகத்திற்க b | ||||
_) ப (ோகத்தில b | _) ப (ோகத்தில b | ||||
_) ப (ோகத்துக்க b | _) ப (ோகத்துக்க b | ||||
_ஒலி) ப (ரப் pV | _ஒலி) ப (ரப் pV | ||||
_ஒளி) ப (ரப் pV | _ஒளி) ப (ரப் pV | ||||
வீர) ப (ராக்கிரம pV | வீர) ப (ராக்கிரம pV | ||||
_மறு) ப (ரிசீலனை pV | |||||
ஆ) ப (ரேசன pV | ஆ) ப (ரேசன pV | ||||
ஆ) ப (ரேஷன pV | ஆ) ப (ரேஷன pV | ||||
_கார்) ப (ரேஷன pV | _கார்) ப (ரேஷன pV | ||||
_லாக) ப் p | _லாக) ப் p | ||||
ஆ) ப் (கானிய f | ஆ) ப் (கானிய f | ||||
ஆ) ப் (கானிஸ்தான f | ஆ) ப் (கானிஸ்தான f | ||||
_பா) ப்க (ார்ன pk | |||||
_லி) ப் (ட f | _லி) ப் (ட f | ||||
_மைக்ரோசா) ப் (ட f | _மைக்ரோசா) ப் (ட f | ||||
கர்) ப்ப bbV# | கர்) ப்ப bbV# |
_dpt _viRg,Yl_| | _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 | // function words | ||||
// conjunctions | // conjunctions | ||||
ama $brk $1 // but | ama $brk $1 // but | ||||
ki $u $brk // that | 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 | // 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 | // 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 |
@) a (_S1 a | @) a (_S1 a | ||||
@) acak (_S3 adZak | |||||
@) acak (_S4 adZak | |||||
@) acakmış (_S7 adZakm%@S | @) acakmış (_S7 adZakm%@S | ||||
@) ayım (_S4 aj@m | @) ayım (_S4 aj@m | ||||
@) alım (_S4 al@m | @) alım (_S4 al@m | ||||
@) ı (_S1 @ | @) ı (_S1 @ | ||||
@) ım (_S2 %@m | @) ım (_S2 %@m | ||||
@) ınız (_S2 %@n@z | |||||
@) ınız (_S4 %@n@z | |||||
@) ız (_S2 %@z | @) ız (_S2 %@z | ||||
@) ıyor (_S4 @j%oR | @) ıyor (_S4 @j%oR | ||||
@) ın (_S2 @n | @) ın (_S2 @n | ||||
.group n | .group n | ||||
n n | n n | ||||
_) nda (_ nda // 'nda | |||||
_) nde (_ nde // 'nde | |||||
_) ndan (_ ndan // 'ndan | |||||
_) nden (_ nden // 'nden | |||||
nin (_S3 nin | nin (_S3 nin | ||||
nın (_S3 n@n | nın (_S3 n@n | ||||
nun (_S3 nun | nun (_S3 nun |
73 phoneme tables | |||||
74 phoneme tables | |||||
new total | new total | ||||
base 107 107 | base 107 107 | ||||
consonants 10 116 | consonants 10 116 | ||||
sq 33 126 | sq 33 126 | ||||
hy 23 117 | hy 23 117 | ||||
da 27 120 | da 27 120 | ||||
ka 19 112 | |||||
rw 15 130 | rw 15 130 | ||||
ml 18 151 | ml 18 151 | ||||
ne 18 157 | ne 18 157 | ||||
wo 18 118 | wo 18 118 | ||||
dv 14 150 | dv 14 150 | ||||
te 16 150 | te 16 150 | ||||
si 24 156 | |||||
tn 27 119 | tn 27 119 | ||||
ka 19 112 | |||||
Data file Used by | Data file Used by | ||||
b/b [b] base | b/b [b] base | ||||
[l/] fr | [l/] fr | ||||
l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
[l/] fr | [l/] fr | ||||
l/l@ [h–x] base | |||||
l/l@ [hF|] 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 [h–x] base | |||||
l/la [hF|] 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 [h–x] base | |||||
l/le [hF|] 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 [h–x] base | |||||
l/li [hF|] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
ll/_ll [L] bg | ll/_ll [L] bg | ||||
l/l_long [l] base | l/l_long [l] base | ||||
[l] fr | [l] fr | ||||
l/lo [h–x] base | |||||
l/lo [hF|] base | |||||
[l#] base | [l#] base | ||||
[l/2] fr | [l/2] fr | ||||
[K] nso | [K] nso | ||||
l^/l_rfx [l.] base | l^/l_rfx [l.] base | ||||
[l] ru | [l] ru | ||||
[l^] ru | [l^] ru | ||||
l/lu [h–x] base | |||||
l/lu [hF|] base | |||||
[l#] base | [l#] base | ||||
[l] fr | [l] fr | ||||
[l/2] fr | [l/2] fr | ||||
[aI:] is | [aI:] is | ||||
vdiph/ai_8 [aI] ta | vdiph/ai_8 [aI] ta | ||||
[aI] dv | [aI] dv | ||||
[aI] si | |||||
vdiph/aoo [aU] en-us | vdiph/aoo [aU] en-us | ||||
[aU] it | [aU] it | ||||
vdiph/au [aU] en | vdiph/au [aU] en | ||||
[aU] ta | [aU] ta | ||||
[a:U] vi | [a:U] vi | ||||
[aU] prs | [aU] prs | ||||
[aU] si | |||||
vdiph/au# [aU] en-sc | vdiph/au# [aU] en-sc | ||||
vdiph/au_2 [au] zhy | vdiph/au_2 [au] zhy | ||||
vdiph/au_3 [aU] en-rp | vdiph/au_3 [aU] en-rp | ||||
[@4] hi | [@4] hi | ||||
[@] kn | [@] kn | ||||
[@] hy | [@] hy | ||||
[@] ka | |||||
[@] sl | [@] sl | ||||
[@] wo | [@] wo | ||||
[@:] wo | [@:] wo | ||||
[@] te | [@] te | ||||
[@] ka | |||||
vowel/@- [@-] base | vowel/@- [@-] base | ||||
[r*] hr | [r*] hr | ||||
vowel/& [a] en-rp | vowel/& [a] en-rp | ||||
[a] sv | [a] sv | ||||
[a] is | [a] is | ||||
[a/] sw | [a/] sw | ||||
[a] ka | |||||
[a] ml | [a] ml | ||||
[a] nso | [a] nso | ||||
[a] te | [a] te | ||||
[a] ka | |||||
[a] si | |||||
vowel/a_3 [a] en-sc | vowel/a_3 [a] en-sc | ||||
[a/] en-sc | [a/] en-sc | ||||
[A:] en-sc | [A:] en-sc | ||||
[A] zh | [A] zh | ||||
[a] sq | [a] sq | ||||
[A] da | [A] da | ||||
[a:] si | |||||
vowel/a#_3 [a#] en | vowel/a#_3 [a#] en | ||||
[a#] en-n | [a#] en-n | ||||
[a#] en-us | [a#] en-us | ||||
vowel/ee_6 [&] sk | vowel/ee_6 [&] sk | ||||
[E3] sv | [E3] sv | ||||
[E] ku | [E] ku | ||||
[&] si | |||||
[&:] si | |||||
vowel/e_mid [E] en-rp | vowel/e_mid [E] en-rp | ||||
[E] fr | [E] fr | ||||
[E~] fr | [E~] fr | ||||
[E] id | [E] id | ||||
[E2] id | [E2] id | ||||
[e] hy | [e] hy | ||||
[e] ka | |||||
[E] prs | [E] prs | ||||
[e] bg | [e] bg | ||||
[E] ht | [E] ht | ||||
[e] ka | |||||
[e] si | |||||
vowel/e_mid2 [E] af | vowel/e_mid2 [E] af | ||||
[E] de | [E] de | ||||
[E2] de | [E2] de | ||||
[e] az | [e] az | ||||
[e] am | [e] am | ||||
[e] te | [e] te | ||||
[e:] si | |||||
vowel/@_fnt [@] en-wi | vowel/@_fnt [@] en-wi | ||||
[@2] en-wi | [@2] en-wi | ||||
[@2] hr | [@2] hr | ||||
[i] zh | [i] zh | ||||
[i] sw | [i] sw | ||||
[i] hy | [i] hy | ||||
[i] ka | |||||
[i] rw | [i] rw | ||||
[i#] rw | [i#] rw | ||||
[i:] ml | [i:] ml | ||||
[i:] wo | [i:] wo | ||||
[i:] dv | [i:] dv | ||||
[i:] te | [i:] te | ||||
[i] ka | |||||
[i:] si | |||||
vowel/i# [y:] cy | vowel/i# [y:] cy | ||||
vowel/i_2 [i2] de | vowel/i_2 [i2] de | ||||
[i:] de | [i:] de | ||||
[i] bg | [i] bg | ||||
[i] dv | [i] dv | ||||
[i] te | [i] te | ||||
[i] si | |||||
vowel/i#_6 [i.] zh | vowel/i#_6 [i.] zh | ||||
vowel/i_7 [i] pl | vowel/i_7 [i] pl | ||||
[i] sq | [i] sq | ||||
[@] pa | [@] pa | ||||
[V] pa | [V] pa | ||||
[@] am | [@] am | ||||
[@] si | |||||
vowel/@_low2 [@/] en-us | vowel/@_low2 [@/] en-us | ||||
[@2] en-us | [@2] en-us | ||||
vowel/o [o] base2 | vowel/o [o] base2 | ||||
[o] hr | [o] hr | ||||
[o/] it | [o/] it | ||||
[O] sq | [O] sq | ||||
[O] tn | |||||
[o] ka | [o] ka | ||||
[o] si | |||||
[o:] si | |||||
[O] tn | |||||
vowel/oo_2 [0] en-sc | vowel/oo_2 [0] en-sc | ||||
[O] cy | [O] cy | ||||
[o] cs | [o] cs | ||||
[u:] dv | [u:] dv | ||||
[u] te | [u] te | ||||
[u:] te | [u:] te | ||||
[u] si | |||||
[u:] si | |||||
vowel/u_7 [u] vi | vowel/u_7 [u] vi | ||||
vowel/u#_7 [@] tr | vowel/u#_7 [@] tr | ||||
[@] az | [@] az | ||||
[u] sq | [u] sq | ||||
[u] hy | [u] hy | ||||
[u] da | [u] da | ||||
[u] ka | |||||
[u] rw | [u] rw | ||||
[u#] rw | [u#] rw | ||||
[u] ne | [u] ne | ||||
[u] pa | [u] pa | ||||
[u] bg | [u] bg | ||||
[u] ka | |||||
vowel/u_bck2 [u] fr | vowel/u_bck2 [u] fr | ||||
[u:] fr | [u:] fr | ||||
[u:] la | [u:] la |
phoneme e: | phoneme e: | ||||
vowel starttype #e endtype #i | vowel starttype #e endtype #i | ||||
length 190 | length 190 | ||||
ChangeIfUnstressed(@) | |||||
FMT(vdiph/ei) | FMT(vdiph/ei) | ||||
endphoneme | endphoneme | ||||
IF prevPhW(isVowel) THEN | IF prevPhW(isVowel) THEN | ||||
ChangePhoneme(R) | ChangePhoneme(R) | ||||
ELSE | ELSE | ||||
// IF thisPh(isWordStart) THEN | |||||
// ELSE | |||||
IF prevPhW(isUStop) THEN | |||||
ChangePhoneme(R) | |||||
ELSE | |||||
InsertPhoneme(@-) | InsertPhoneme(@-) | ||||
// ENDIF | |||||
ENDIF | |||||
ENDIF | ENDIF | ||||
ENDIF | ENDIF | ||||
ENDIF | ENDIF | ||||
FMT(vnasal/aa_n4) | FMT(vnasal/aa_n4) | ||||
endphoneme | endphoneme | ||||
// translate from English to German phonemes | // translate from English to German phonemes | ||||
equivalents en | |||||
equivalents NULL // disable this table | |||||
0 O | 0 O | ||||
3 3 | 3 3 | ||||
3: W : | 3: W : |
phonemetable da base | phonemetable da base | ||||
include ph_danish | include ph_danish | ||||
phonemetable ka base | |||||
include ph_georgian | |||||
phonemetable te hi | phonemetable te hi | ||||
include ph_telugu | include ph_telugu | ||||
phonemetable si hi | |||||
include ph_sinhala | |||||
phonemetable tn base | phonemetable tn base | ||||
include ph_setswana | include ph_setswana | ||||
phonemetable ka base | |||||
include ph_georgian |
all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME) | all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME) | ||||
mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) | |||||
.cpp.o: | .cpp.o: | ||||
$(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $< | $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $< | ||||
$(LIB_NAME): $(OBJS2) | $(LIB_NAME): $(OBJS2) | ||||
$(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \ | $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \ | ||||
$(OBJS2) $(LIBS2) | $(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) | $(STATIC_LIB_NAME): $(OBJS2) | ||||
$(AR) cqs $(STATIC_LIB_NAME) $(OBJS2) | $(AR) cqs $(STATIC_LIB_NAME) $(OBJS2) |
{"isVowel", 0, phVOWEL}, | {"isVowel", 0, phVOWEL}, | ||||
{"isNasal", 0, phNASAL}, | {"isNasal", 0, phNASAL}, | ||||
{"isLiquid", 0, phLIQUID}, | {"isLiquid", 0, phLIQUID}, | ||||
{"isUStop", 0, phSTOP}, | |||||
{"isVFricative", 0, phVFRICATIVE}, | {"isVFricative", 0, phVFRICATIVE}, | ||||
{"isPalatal", 0, i_isPalatal}, | {"isPalatal", 0, i_isPalatal}, | ||||
if((foreign_table = SelectPhonemeTableName(foreign_table_name)) < 0) | 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_error = 1; | ||||
foreign_phoneme = 0; | foreign_phoneme = 0; | ||||
} | } | ||||
if(strcmp(names[0],"endphoneme") == 0) | if(strcmp(names[0],"endphoneme") == 0) | ||||
break; | break; | ||||
if(foreign_error) | |||||
continue; | |||||
if(strcmp(names[0],"remove_stress") == 0) | if(strcmp(names[0],"remove_stress") == 0) | ||||
{ | { | ||||
remove_stress = 1; | remove_stress = 1; |
unsigned int char_code; | unsigned int char_code; | ||||
int compile_mode=0; | int compile_mode=0; | ||||
char *buf; | char *buf; | ||||
char buf1[200]; | |||||
char buf1[500]; | |||||
char *rules[N_RULES]; | char *rules[N_RULES]; | ||||
int n_rgroups = 0; | int n_rgroups = 0; |
} | } | ||||
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 | /* Determines whether a word in 'unpronouncable', i.e. whether it should | ||||
be spoken as individual letters. | be spoken as individual letters. | ||||
if((c==0) || (c==' ')) | if((c==0) || (c==' ')) | ||||
break; | break; | ||||
if((c=='\'') && (count > 1)) | |||||
if((c=='\'') && ((count > 1) || (posn > 0))) | |||||
break; // "tv'" but not "l'" | break; // "tv'" but not "l'" | ||||
if(count==0) | if(count==0) |
char *pw; | char *pw; | ||||
char *pw1; | char *pw1; | ||||
int cc; | int cc; | ||||
int ix; | |||||
int vcount; | int vcount; | ||||
int lex_stress; | int lex_stress; | ||||
int input_length; | int input_length; | ||||
if(cc == 0xfeff) | if(cc == 0xfeff) | ||||
continue; // ignore UTF-8 indication | 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) | if(lookupwchar(bg_vowels, cc) != 0) | ||||
vcount++; | 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++; | n_stress++; | ||||
if(vcount == 1) | if(vcount == 1) | ||||
stress_first = 1; | stress_first = 1; | ||||
if(cc == 0x300) | |||||
continue; // discard combining accent | |||||
if((cc == '\'') || (cc == 0x300)) | |||||
continue; // discard backprime or combining accent | |||||
if(cc == 0x450) | if(cc == 0x450) | ||||
cc = 0x435; // remove accent from vowel | cc = 0x435; // remove accent from vowel | ||||
if(cc == 0x45d) | if(cc == 0x45d) | ||||
} | } | ||||
} | } | ||||
if(n_stress > 1) n_stress = 1; | |||||
done = 0; | done = 0; | ||||
if(vcount < 2) | |||||
{ | |||||
// don't list words with only one vowel | |||||
} | |||||
else | |||||
if((lex_stress != max_stress_posn) || (n_stress != 1)) | if((lex_stress != max_stress_posn) || (n_stress != 1)) | ||||
{ | { | ||||
if((vcount > 0) && (lex_stress > 0) && (lex_stress <= 7)) | if((vcount > 0) && (lex_stress > 0) && (lex_stress <= 7)) | ||||
if(done == 0) | if(done == 0) | ||||
{ | { | ||||
n_wrong++; | 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) | if(done) |
#ifndef PLATFORM_DOS | #ifndef PLATFORM_DOS | ||||
#ifdef PLATFORM_WINDOWS | #ifdef PLATFORM_WINDOWS | ||||
#include <fcntl.h> | |||||
#include <io.h> | |||||
#include <windows.h> | #include <windows.h> | ||||
#include <winreg.h> | #include <winreg.h> | ||||
#else | #else | ||||
return(2); | return(2); | ||||
if(strcmp(path,"stdout")==0) | if(strcmp(path,"stdout")==0) | ||||
{ | |||||
#ifdef PLATFORM_WINDOWS | |||||
// prevent Windows adding 0x0d before 0x0a bytes | |||||
_setmode(_fileno(stdout), _O_BINARY); | |||||
#endif | |||||
f_wave = stdout; | f_wave = stdout; | ||||
} | |||||
else | else | ||||
f_wave = fopen(path,"wb"); | f_wave = fopen(path,"wb"); | ||||
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x014500; | ||||
int option_device_number = -1; | int option_device_number = -1; |
memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | ||||
SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters | SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters | ||||
SetLetterBitsRange(tr,LETTERGP_A,0x3e,0x4d); // + vowel signs, and virama | 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,0x3e,0x4d); // vowel signs, and virama | ||||
SetLetterBitsRange(tr,LETTERGP_B,0x55,0x57); // + vowel signs | |||||
SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | ||||
SetLetterBits(tr,LETTERGP_C,dev_consonants2); // + additional consonants | SetLetterBits(tr,LETTERGP_C,dev_consonants2); // + additional consonants | ||||
SetLetterBitsRange(tr,LETTERGP_Y,0x04,0x14); // vowel letters | SetLetterBitsRange(tr,LETTERGP_Y,0x04,0x14); // vowel letters | ||||
SetLetterBitsRange(tr,LETTERGP_Y,0x3e,0x4c); // + vowel signs | 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.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4d; //virama | tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4d; //virama | ||||
} | } | ||||
break; | 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 | case L('s','l'): // Slovenian | ||||
tr->charset_a0 = charsets[2]; // ISO-8859-2 | tr->charset_a0 = charsets[2]; // ISO-8859-2 | ||||
tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary | tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary | ||||
tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable | 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.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; | tr->langopts.max_initial_consonants = 2; | ||||
} | } | ||||
break; | break; |
return(1); | return(1); | ||||
if(lookupwchar(extra_indic_alphas, c) != 0) | if(lookupwchar(extra_indic_alphas, c) != 0) | ||||
return(1); | return(1); | ||||
if((c >= 0xd7a) && (c <= 0xd7f)) | |||||
return(1); // malaytalam chillu characters | |||||
return(0); | return(0); | ||||
} | } | ||||
} | } | ||||
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) | static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, int spell_word) | ||||
{//============================================================================================ | {//============================================================================================ | ||||
int posn = 0; | int posn = 0; | ||||
length = 999; | length = 999; | ||||
wordx = word1; | 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 | // This word looks "unpronouncable", so speak letters individually until we | ||||
// find a remainder that we can pronounce. | // find a remainder that we can pronounce. | ||||
if(prefix_type & SUFX_B) | 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 *wordpf; | ||||
char prefix_phonemes2[12]; | char prefix_phonemes2[12]; | ||||
strncpy0(prefix_phonemes2,end_phonemes,sizeof(prefix_phonemes2)); | strncpy0(prefix_phonemes2,end_phonemes,sizeof(prefix_phonemes2)); | ||||
wordpf = &prefix_chars[1]; | 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 | else | ||||
{ | { | ||||
{ | { | ||||
// '-' between two letters is a hyphen, treat as a space | // '-' between two letters is a hyphen, treat as a space | ||||
word_flags |= FLAG_HYPHEN; | 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 = ' '; | c = ' '; | ||||
} | } | ||||
} | } | ||||
space_inserted = 1; | space_inserted = 1; | ||||
} | } | ||||
else | 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 | // dot after a word, with space following, probably an abbreviation | ||||
words[word_count-1].flags |= FLAG_HAS_DOT; | words[word_count-1].flags |= FLAG_HAS_DOT; | ||||
// end of 'word' | // end of 'word' | ||||
sbuf[ix++] = ' '; | 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) | if(embedded_count > 0) | ||||
{ | { | ||||
*pn++ = *pw++; | *pn++ = *pw++; | ||||
} | } | ||||
else | 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; | pw += 2; | ||||
ix++; // skip "word" | ix++; // skip "word" |
void CalcPitches(Translator *tr, int clause_tone); | void CalcPitches(Translator *tr, int clause_tone); | ||||
int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | 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); | 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 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); | int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); |
static pa_stream *stream = NULL; | static pa_stream *stream = NULL; | ||||
static pa_threaded_mainloop *mainloop = NULL; | static pa_threaded_mainloop *mainloop = NULL; | ||||
static pa_cvolume volume; | |||||
static int volume_valid = 0; | |||||
static int do_trigger = 0; | static int do_trigger = 0; | ||||
static uint64_t written = 0; | static uint64_t written = 0; | ||||
static int time_offset_msec = 0; | static int time_offset_msec = 0; | ||||
// SHOW("ti> read_index=0x%lx\n",the_time->read_index); | // 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) { | static void subscribe_cb(struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata) { | ||||
pa_operation *o; | |||||
ENTER(__FUNCTION__); | ENTER(__FUNCTION__); | ||||
assert(c); | assert(c); | ||||
(t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE) && | (t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE) && | ||||
t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_NEW))) | t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_NEW))) | ||||
return; | 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) { | static void context_state_cb(pa_context *c, void *userdata) { | ||||
SHOW("pulse_write > length=%d\n", length); | SHOW("pulse_write > length=%d\n", length); | ||||
CHECK_CONNECTED(); | |||||
CHECK_CONNECTED_NO_RETVAL(); | |||||
pa_threaded_mainloop_lock(mainloop); | pa_threaded_mainloop_lock(mainloop); | ||||
CHECK_DEAD_GOTO(fail, 1); | CHECK_DEAD_GOTO(fail, 1); | ||||
if (!pa_sample_spec_valid(&ss)) | if (!pa_sample_spec_valid(&ss)) | ||||
return false; | 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)"); | SHOW_TIME("pa_threaded_mainloop_new (call)"); | ||||
if (!(mainloop = pa_threaded_mainloop_new())) { | if (!(mainloop = pa_threaded_mainloop_new())) { | ||||
SHOW("Failed to allocate main loop\n",""); | SHOW("Failed to allocate main loop\n",""); | ||||
pa_stream_set_write_callback(stream, stream_request_cb, NULL); | pa_stream_set_write_callback(stream, stream_request_cb, NULL); | ||||
pa_stream_set_latency_update_callback(stream, stream_latency_update_cb, NULL); | pa_stream_set_latency_update_callback(stream, stream_latency_update_cb, NULL); | ||||
pa_buffer_attr a_attr; | pa_buffer_attr a_attr; | ||||
a_attr.maxlength = MAXLENGTH; | a_attr.maxlength = MAXLENGTH; | ||||
a_attr.fragsize = 0; | a_attr.fragsize = 0; | ||||
SHOW_TIME("pa_connect_playback"); | 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))); | SHOW("Failed to connect stream: %s", pa_strerror(pa_context_errno(context))); | ||||
goto unlock_and_fail; | goto unlock_and_fail; | ||||
} | } | ||||
pa_threaded_mainloop_wait(mainloop); | pa_threaded_mainloop_wait(mainloop); | ||||
} | } | ||||
pa_operation_unref(o); | |||||
if (!success) { | if (!success) { | ||||
SHOW("pa_context_subscribe() failed: %s", pa_strerror(pa_context_errno(context))); | SHOW("pa_context_subscribe() failed: %s", pa_strerror(pa_context_errno(context))); | ||||
goto unlock_and_fail; | 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; | do_trigger = 0; | ||||
written = 0; | written = 0; | ||||
time_offset_msec = 0; | time_offset_msec = 0; | ||||
just_flushed = 0; | just_flushed = 0; | ||||
connected = 1; | connected = 1; | ||||
// volume_time_event = NULL; | |||||
pa_threaded_mainloop_unlock(mainloop); | pa_threaded_mainloop_unlock(mainloop); | ||||
SHOW_TIME("pulse_open (ret true)"); | SHOW_TIME("pulse_open (ret true)"); | ||||
// return true; | |||||
return PULSE_OK; | return PULSE_OK; | ||||
unlock_and_fail: | unlock_and_fail: | ||||
if (o) | if (o) |
next = (fr2->fheight[ix] * v->height[ix]) << 6; | next = (fr2->fheight[ix] * v->height[ix]) << 6; | ||||
peaks[ix].height_inc = ((next - peaks[ix].height1) * STEPSIZE) / length2; | 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].left1 = (fr1->fwidth[ix] * v->width[ix]) << 10; | ||||
peaks[ix].left = int(peaks[ix].left1); | peaks[ix].left = int(peaks[ix].left1); |