Browse Source

[1.42.03 release]

Allow .txt release for *_rules and *_list files.
Rules lookup, consider multi-byte characters when calculating matchign points.
Fix bug in Roman Number translation.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@232 d46cf337-b52f-0410-862d-fd96e6ae7743
master
jonsd 15 years ago
parent
commit
de52d78665

+ 40
- 2
dictsource/af_list View File

antwerpen antv&rp@n antwerpen antv&rp@n
babilon babilOn babilon babilOn
bangladesj baNglad'ES bangladesj baNglad'ES
barcelona bars@l'o@na
barkly _^_EN barkly _^_EN
bellevue b&lvju: bellevue b&lvju:
bermuda $2 bermuda $2
bethlehem bEt_liEm bethlehem bEt_liEm
boedapest budapEst boedapest budapEst
boekarest bukarEst boekarest bukarEst
bogotá bOgOt'A:
bolivië bul'Ivi:@ bolivië bul'Ivi:@
bonnievale _^_EN bonnievale _^_EN
bordeaux bOrd'@U bordeaux bOrd'@U
boston _^_EN
brittanje $2 brittanje $2
brooklyn _^_EN brooklyn _^_EN
(buenos aires) bwEnOs_'aIrEs
burundi bur'undi burundi bur'undi
caledon kalidOn caledon kalidOn
carolina karul'ina carolina karul'ina
constantia $2 constantia $2
christiana kr@stij'A:na christiana kr@stij'A:na
damaskus d@maskWs damaskus d@maskWs
denemarke de@n@mark@
djakarta dZak'arta djakarta dZak'arta
doebaai $2 doebaai $2
duitswes dYytsv'Es duitswes dYytsv'Es
franschhoek frA~nsh'uk franschhoek frA~nsh'uk
gadara x2@dA:ra gadara x2@dA:ra
galilea x2al@l'i:a galilea x2al@l'i:a
genève Z@nE:v
germiston _^_EN germiston _^_EN
getsémané x2Ets'e@mani getsémané x2Ets'e@mani
gonubie g@nu:bi gonubie g@nu:bi
israel IsraI:l israel IsraI:l
italië it'A:li;@ italië it'A:li;@
jeffreysbaai dZEfrisb'AI jeffreysbaai dZEfrisb'AI
junín x2un'in
kalafong kalaf'ON kalafong kalaf'ON
kanada kanad%a kanada kanad%a
kanaän kA:nA:an kanaän kA:nA:an
europa Y@r'o@pa europa Y@r'o@pa
nigel _^_EN nigel _^_EN
nineve nIn@fi nineve nIn@fi
oklahoma @Ukl@h'@Uma
outeniekwa @Ut@n'ikwa outeniekwa @Ut@n'ikwa
oxford _^_EN oxford _^_EN
palermo pal'&rmu
pelindaba p&l@nd'A:ba pelindaba p&l@nd'A:ba
perú p@ru
piketberg p@kEtb&rx2
portugal pOrtyx2al portugal pOrtyx2al
potchefstroom pOtSIfstr'o@m potchefstroom pOtSIfstr'o@m
rhône _^_FR
richardsbaai ritS@dsb'AI richardsbaai ritS@dsb'AI
robertson _^_EN robertson _^_EN
sahara sah'A:ra sahara sah'A:ra
salvador salvadO:r
santiago santi;'A:gu
secunda s@kunda secunda s@kunda
senekal se@n@kal senekal se@n@kal
seychelle seIS'&l@ seychelle seIS'&l@
wellington wEliNt@n wellington wEliNt@n
wolseley wulsli wolseley wulsli
uganda ug'anda uganda ug'anda
uruguay urugwaI
zimbabwe zI:mb'ab_wE zimbabwe zI:mb'ab_wE
zulu zulu // Kwazulu-Natal zulu zulu // Kwazulu-Natal


André 'andreI André 'andreI
annette an'Et annette an'Et
antoinette antun'Et antoinette antun'Et
archimedes arx2im'e@dEs
aristoteles arist'o@t@lEs aristoteles arist'o@t@lEs
arthur _^_EN
badenhorst bA:d@nhOrst badenhorst bA:d@nhOrst
barbara bA:b@ra barbara bA:b@ra
basson $2 basson $2
bruwer bruw'&:r bruwer bruw'&:r
caesar siz@r caesar siz@r
carl kA:r@L carl kA:r@L
carlyle _^_EN
carol _^_EN carol _^_EN
casanova kasan'o@va casanova kasan'o@va
cecil sEs@l cecil sEs@l
deventer d'e@v@nt@r deventer d'e@v@nt@r
diana dij'A:na diana dij'A:na
donaldson _^_EN donaldson _^_EN
dostojewski dOstOj'Evski
du $u du $u
duncan daNk@-n
(du pisanie) du||pis'A:ni (du pisanie) du||pis'A:ni
(du plessis) du||pl@s'i (du plessis) du||pl@s'i
(du plooy) d@||ploI (du plooy) d@||ploI
ferreira f@r&:r@ ferreira f@r&:r@
filemon f'il@mOn filemon f'il@mOn
fischer fiS@r fischer fiS@r
flaubert _^_FR
floris $1 floris $1
fouché fuS'e@ fouché fuS'e@
fourie fur'i fourie fur'i
gertruida $2 gertruida $2
gilbert _^_EN gilbert _^_EN
gloria glO:ria gloria glO:ria
gordon _^_EN
grange x2rA:nsi grange x2rA:nsi
grové x2ruv'e@ grové x2ruv'e@
gulliver _^_EN
gustav gustaf gustav gustaf
guy _^_EN guy _^_EN
hamlet _^_EN hamlet _^_EN
herklaas $1 herklaas $1
herkules $1 herkules $1
hilde hild@ hilde hild@
ibsen ibs@n
ilse 'ilz@ ilse 'ilz@
ingrid iNgr@d ingrid iNgr@d
isabel is@b&l isabel is@b&l
joris $1 joris $1
josef jo@s@f josef jo@s@f
josephina jo@s@f'ina josephina jo@s@f'ina
josé _^_ES
juan x2wan
juanita juan'ita juanita juan'ita
julia _^_EN julia _^_EN
khayyam kaj'am khayyam kaj'am
liesbet lisbEt liesbet lisbEt
louis luI louis luI
louise luw'i:z louise luw'i:z
lukas lukas
mackintosh _^_EN mackintosh _^_EN
madelene mad@l'e@n madelene mad@l'e@n
mbeki mbE:ki mbeki mbE:ki
mathilda mat'Ilda mathilda mat'Ilda
matteus mat'i:Ws matteus mat'i:Ws
matthee mat'e@ matthee mat'e@
mattheüs mat'i:Ws
matthéüs mat'i:Ws matthéüs mat'i:Ws
maureen _^_EN maureen _^_EN
mefistofeles mEfist'o@f@l@s mefistofeles mEfist'o@f@l@s
petrus pe@trWs petrus pe@trWs
phoebe fi:bi phoebe fi:bi
picasso pik'asu picasso pik'asu
piketberg pik'Etb&rx2
pinokkio pin'Oki;u pinokkio pin'Oki;u
pretorius pr@to@riWs pretorius pr@to@riWs
pythagoras pit'A:x2o@ras
quijote kix2'OtE
quixote kix2'OtE quixote kix2'OtE
rachmaninoff rax2m'aninOf rachmaninoff rax2m'aninOf
rademeyer rA:d@meI@r rademeyer rA:d@meI@r
sophie _^_EN sophie _^_EN
stephan ste@fan stephan ste@fan
stephanus st@fA:nWs stephanus st@fA:nWs
stevenson _^_EN
strauss straUs strauss straUs
stockenström stOk@nstro@m stockenström stOk@nstro@m
suzanne suz'A:n suzanne suz'A:n
trudie trudi trudie trudi
versfeld f&rsf&lt versfeld f&rsf&lt
veronica _^_EN veronica _^_EN
victor _^_EN
victoria _^_EN victoria _^_EN
viljoen $2 viljoen $2
villiers vIli@rs villiers vIli@rs
porsche pOrS@ porsche pOrS@
port pOrt $1 port pOrt $1
rover _^_EN rover _^_EN
sorbonne _^_FR
sotho su:tu sotho su:tu
toyota $2 toyota $2
venda vEnda venda vEnda
eks Eks eks Eks
ekself %&ks'&lf ekself %&ks'&lf
elders &ld@rs elders &ld@rs
elementale El@mEnt'A:l@
elite il'i:t elite il'i:t
encore A~NkO:r encore A~NkO:r
enige e@nIx2@ enige e@nIx2@
eone $2 eone $2
era e@ra era e@ra
erger &rg@r erger &rg@r
ergering &rg@r@N
espeak i:;spi:k espeak i:;spi:k
(et cetera) Ets'Et@ra (et cetera) Ets'Et@ra
euro Y@ru euro Y@ru
genade $2 genade $2
genesis x2e@n@s@s genesis x2e@n@s@s
//gesamentlik x2@sA:m@ntl@k //gesamentlik x2@sA:m@ntl@k
gentleman _^_EN
gewellys x2e@v@lleIs gewellys x2e@v@lleIs
gladiator x2ladi'A:tOr gladiator x2ladi'A:tOr
globale x2lo@b'A:l@ globale x2lo@b'A:l@
inagneming @nax2ne@m@N inagneming @nax2ne@m@N
indien Indin $verb indien Indin $verb
induna ind'u:na induna ind'u:na
infame @nfA:m@
ingevolge $3 ingevolge $3
inkatha iNk'A:ta inkatha iNk'A:ta
inkluis $2 inkluis $2
londense lOnd@ns@ londense lOnd@ns@
lord _^_EN lord _^_EN
luidop lYyt_Op luidop lYyt_Op
lykwaak leIkvA:k


macaroni makar'o@ni macaroni makar'o@ni
madame mad'A:m madame mad'A:m
omrede $2 omrede $2
omtrent Omtr'Ent omtrent Omtr'Ent
onbegrip $1 onbegrip $1
onbruik $1
onderrig On@r'Ix2 $verb onderrig On@r'Ix2 $verb
ondersoek $3 $verb ondersoek $3 $verb
onderweg $3 onderweg $3
sektore $2 sektore $2
sinagoge s@n@x2o@x2@ sinagoge s@n@x2o@x2@
senatore s@nat'o@r@ senatore s@nat'o@r@
siesta si;'Esta
singenot sInx2@nOt singenot sInx2@nOt
sir _^_EN sir _^_EN
skepsele skEps@l@ skepsele skEps@l@
verafgeleë f&rafx2@le@@ verafgeleë f&rafx2@le@@
verby f@rbeI verby f@rbeI
verdere f&rd@r@ verdere f&rd@r@
vererger f@r&rg@r
ver f'&:r ver f'&:r
vereduifie fe@r@dYyfi vereduifie fe@r@dYyfi
verg f&rx2 verg f&rx2

+ 940
- 872
dictsource/af_rules
File diff suppressed because it is too large
View File


+ 14
- 1
dictsource/dict_phonemes View File

* : ; b C C2 d D * : ; b C C2 d D
dZ f g h j k l m dZ f g h j k l m
n N p pF r s S t n N p pF r s S t
tS ts v x z Z
tS ts v w x z Z




Dictionary el_dict Dictionary el_dict
b c d f g h j k b c d f g h j k
l m n N p r s t l m n N p r s t
tS v w z tS v w z


Dictionary ur_dict

@ a a: aI aU E e: i
I i: O o: U u:

: b bh c ch d D d.
dh dh. dZ f g gh H j
J Jh k kh l m n N
p ph Q q R r. s S
s. t T t. th th. v x
z Z z.

+ 4
- 1
dictsource/en_list View File

antihero $1 antihero $1
antilog $1 antilog $1
antimatter $1 antimatter $1
antinomy ant'In@mI
antimony $2
antioch $1 antioch $1
antipathy ant'Ip@TI antipathy ant'Ip@TI
antiphonal ant'If@n@L antiphonal ant'If@n@L
jasmine dZazmIn jasmine dZazmIn
jesus dZi:z@s jesus dZi:z@s
joky dZoUkI joky dZoUkI
jour ZU@ // french
jukebox dZu:kb0ks jukebox dZu:kb0ks
july dZu:l'aI july dZu:l'aI


Dominic d0mI2nIk Dominic d0mI2nIk
Donaghy d0n'hi: Donaghy d0n'hi:
Doris d0rIs Doris d0rIs
Dorothy dO@r@Ti
Dougall du:g@L Dougall du:g@L
Dylan dIl@n Dylan dIl@n
Edith i:dIT Edith i:dIT
Elizabeth I2lIz@b@T Elizabeth I2lIz@b@T
Emily EmI2lI
Emma Em@ Emma Em@
Emmy EmI Emmy EmI
Etheridge ET@-rIdZ Etheridge ET@-rIdZ

+ 2
- 3
dictsource/en_rules View File

r) ouge u:Z r) ouge u:Z
_) ough O: _) ough O:
ough (t O: ough (t O:
ough (* OI
ough oU ough oU
b) ough aU b) ough aU
b) ough (t O: b) ough (t O:
_) re (emP2 r%i: _) re (emP2 r%i:
_) re (enP2 r%i: _) re (enP2 r%i:
_) re (eqP2 r%i: _) re (eqP2 r%i:
_) re (esP2 r%i:
_) re (exP2 r%i: _) re (exP2 r%i:
referend rEf@r'End referend rEf@r'End
re (fug rE re (fug rE
?5 ss) wor (d wVR ?5 ss) wor (d wVR
wor (th_ w3: wor (th_ w3:
?5 wor (th_ wVR ?5 wor (th_ wVR
s) w (ick
As) w (ick


.group x .group x
_) x (C Eks _) x (C Eks
_) y (n@ V _) y (n@ V
_) y (s@ V _) y (s@ V
C) y (abl I2 C) y (abl I2
y (y
y (C I y (C I
C) y %I C) y %I
y (ar j y (ar j

+ 33
- 0
dictsource/hu_list View File

velünk $unstressend velünk $unstressend
veletek $unstressend veletek $unstressend
velük $unstressend velük $unstressend
közt $unstressend
hiszik $unstressend
hiszitek $unstressend
önt $unstressend
benn $unstressend
kinn $unstressend
kés $unstressend
néz $unstressend
vont $unstressend
fiút $unstressend
von $unstressend
nézett $unstressend
rám $unstressend
rád $unstressend
mód $unstressend
győz $unstressend
repült $unstressend
ül $unstressend
gyújt $unstressend
hajt $unstressend
köp $unstressend
látni $unstressend
sült $unstressend
roncs $unstressend
is $unstressend
fut $unstressend
ló $unstressend
véljük $unstressend
vélik $unstressend
vélem $unstressend
véled $unstressend
véli $unstressend
vélitek $unstressend


// word pairs // word pairs



+ 50
- 32
dictsource/hu_rules View File



biz (A biz, // bizalmas etc. biz (A biz, // bizalmas etc.
biedermeier bi:dER2ma:jER2 biedermeier bi:dER2ma:jER2
_) batthiány bAc:a:n^i
_) batthiány bAc:a:n^i


.group c .group c
c ts c ts
rövi) d (zárlat d rövi) d (zárlat d
sarja) d (zik d sarja) d (zik d
nyála) d (z d nyála) d (z d
ren) dsz (erint d|s
ren) dsz (erint d|s
szaba) d (szájú d


.group dz .group dz
fogó) dz (kod ts fogó) dz (kod ts
e) gy (sínű J e) gy (sínű J
e) gy (sor J e) gy (sor J
né) gy (sor J né) gy (sor J
e) gy (es-egyedül J //need one J phoneme with this word, not J: phoneme


.group h .group h
h h h h
.group í .group í
í i: í i:
íts i:tS: íts i:tS:
ítsd i:tSd
ítsd i:tSd
t) í (zen i t) í (zen i
t) í (zet i t) í (zet i
v) í (zen i v) í (zen i
pero) n (jegy n pero) n (jegy n
ö) n (járó n ö) n (járó n
tulajdo) n (jog n tulajdo) n (jog n
ko) nn (ektor n //connector word, we spokening one n letter, not two n letter


ko) nn (ektor n //connector word, we spokening one n letter, not two n letter
me) nj (_S2 n^
be) nn (szülött n
éle) n (jár n
magá) n (jelleg n


.group o .group o
o o o o
_) richa (rd R2iCa: _) richa (rd R2iCa:
_) richá (rd R2iCa: _) richá (rd R2iCa:
reichsmarschall R2EjsmAR2SAl: reichsmarschall R2EjsmAR2SAl:
?!2 _) roose (velt R2u:z@
?!2 _) roose (velt R2u:z




.group s .group s
vi) ssz (hang s vi) ssz (hang s
felelő) ss (ég S felelő) ss (ég S
égzengé) ssz (erű Ss égzengé) ssz (erű Ss
világo) ssz (ürke Ss
motoro) ssz (emüveg Ss
bőgé) ssz (erű Ss
kavará) ssz (erű Ss
_sa) ssz (eg Ss



.group sz .group sz
sz s sz s
épüle) t (sarok t épüle) t (sarok t
mene) t (sor t mene) t (sor t
skó) t (sapka t skó) t (sapka t
lé) t (jogosultsága t
bérle) t (jegy t
csapa) t (játék t
ese) t (jog t
fejeze) t (jel t
ké) t (jegyű t
krike) tt (játék t:
mene) t (jegy t
szüne) t (jel t
ú) t (jelző t
ú) t (jog t
gondola) t (jel t
helyze) t (jel t

lé) t (jogosultsága t
bérle) t (jegy t
csapa) t (játék t
ese) t (jog t
fejeze) t (jel t
ké) t (jegyű t
krike) tt (játék t:
mene) t (jegy t
szüne) t (jel t
ú) t (jelző t
ú) t (jog t
gondola) t (jel t
helyze) t (jel t
folyama) t (sáv t
ada) t (szolgáltat t
_ú) t (sáv t
négyze) t (centi t


.group ts .group ts
ts (_S2 tS //general rule with word end of ts letters ts (_S2 tS //general rule with word end of ts letters
já) tsz ts: já) tsz ts:
já) tssz ts: já) tssz ts:
já) tsz (m ts já) tsz (m ts
já) tsz (hat ts
tsz (_S3 ts: tsz (_S3 ts:
tsz (é ts: tsz (é ts:
tsz (o ts: tsz (o ts:


.group ú .group ú
ú u: ú u:
h) ú (szan u


.group ü .group ü
ü y ü y


.group ű .group ű
ű y: ű y:
t) ű (zijáték y


.group v .group v
v v v v
nehé) z (súly z nehé) z (súly z
raj) z (szeg z raj) z (szeg z
raj) z (szög z raj) z (szög z
pén) z (t s
rende) z (ked s
kocká) z (tat s
hibá) z (tat s
különbö) z (tet s
válto) z (tat s
válto) z (tass s
tájéko) z (tat s
tájéko) z (tass s

pén) z (t s
rende) z (ked s
kocká) z (tat s
hibá) z (tat s
különbö) z (tet s
válto) z (tat s
válto) z (tass s
tájéko) z (tat s
tájéko) z (tass s
mé) z (szín z
bi) z (tat s
rá) z (kód s




.group .group

+ 4
- 1
dictsource/ta_list View File

போனஸ் $alt போனஸ் $alt
போகி $alt போகி $alt
பாபா ba:ba: பாபா ba:ba:
புத்த buddV
//புத்த buddV




// initial த as [d] // initial த as [d]
கட $alt கட $alt
கோ $alt கோ $alt
கதி $alt கதி $alt
கோபி $alt
கச்சாமி $alt
குரு $alt




பப pVpV பப pVpV

+ 118
- 24
dictsource/ta_rules View File

க்க (B kk க்க (B kk
ற்) க _kV ற்) க _kV
ற்) க (B _k ற்) க (B _k
ட்) க kV
ட்) க (B k
க (ிரு k


க (ீத g க (ீத g
க (ஜ gV க (ஜ gV
_) க (ாந்த g _) க (ாந்த g
_) க (ுண்ட g _) க (ுண்ட g
_) க (ோபுர g _) க (ோபுர g
_) க (ுரு g
_) க (ுகன g _) க (ுகன g
_) க (ணபதி gV _) க (ணபதி gV
_) க (ணீர gV _) க (ணீர gV
_) க (தியில் gV _) க (தியில் gV
_) க (டிகார gV _) க (டிகார gV
வி) க்ட (ோரியா kt. // victoria வி) க்ட (ோரியா kt. // victoria
க (ோப g
க (ாரன k க (ாரன k
க (ாரர k க (ாரர k
_) க (ோபம k
_) கோப (ித்து ko:b _) கோப (ித்து ko:b
_) க (ோபப் k _) க (ோபப் k
_) க (ெட்டி g _) க (ெட்டி g
_) க (வண gV
_) க (ோகுல g
கோப (ால go:p
_) க (ோபிய g
_) க (ோபிநா g
_) க (ோபிசெட் g
_) க (ூடலூர g
_) க (ுடியாத்த g
_) க (வன gV
_) க (ுருவின g
_) க (ுருவிட g
_) க (ுருக்கள g
_) க (ுருவோட g
_) க (ுருவுடை g
_) க (ுருரா g
_) க (ுருநா g
_) க (ுருவாய g




.group ங .group ங


_) ச (ிட் tS _) ச (ிட் tS
_) ச (ின் tS _) ச (ின் tS
_) ச (ேரி tS


_) ச (ப்பாத்தி tSV _) ச (ப்பாத்தி tSV


_) சிரு (ஷ்டி sri
ச (ாந்தி s.
ச (ண்மு s.V


.group ஜ .group ஜ
ஜ dZV ஜ dZV
_) த (ுஷ் d _) த (ுஷ் d
_) த (க்ஷிணா dV _) த (க்ஷிணா dV
_) த (ண்ட dV _) த (ண்ட dV
_) த (ண்டவாள tV
_) த (ருமி dV _) த (ருமி dV
_) த (ர்பை dV _) த (ர்பை dV
_) த (ாவா d _) த (ாவா d
_) த (ினுச d _) த (ினுச d
_) த (ாராவி d _) த (ாராவி d
_) த (ர்க dV _) த (ர்க dV
_) த (ான d
// _) த (ான d
_) த (ேக d _) த (ேக d
_) த (ேக்கு t _) த (ேக்கு t
_) த (ேக்கிலை t _) த (ேக்கிலை t
_) த (ன்ராஜ dV _) த (ன்ராஜ dV
_) த (ாராபுர d _) த (ாராபுர d
_) த (டி_மாட dV _) த (டி_மாட dV

_) த (ேவன d
_) த (ேவி d
_) த (ேவர்க d
_) த (ேவதை d
_) த (ேவாம்ச d
_) த (ிவ்ய d
_) த (ிண்டிவன d
_) த (ுறை d
_) த (ிண்டுக்கல d
_) த (மயந்தி dV
_) த (ுரோண d
_) த (ுரியோதனன d
_) த (ுச்சாதனன d
_) த (ிரௌபதி d

யு) த்த ddV
யு) த்த(B dd
பு) த்த (ி dd பு) த்த (ி dd
பு) த்த (ியி dd பு) த்த (ியி dd
பு) த்த (ர ddV பு) த்த (ர ddV
பு) த்த (ன ddV பு) த்த (ன ddV


_சாந்) த (ி t
_சும) த (ி t
_வசந்) த (ி t
_சுகந்) த (ி t
_வனி) த (ா t
_சுனி) த (ா t
_ல) த (ா t
பிரேமல) த (ா t
_ரேவ) த (ி t
_வினி) த (ா t
_வசந்) த tV
_பார்வ) த (ி t
பிரபாவ) த (ி t
_கோம) த (ி t
_பிர) த (ீ t

_) திரு (ஷ்டி dri
_) திரு (திரா dri
_) துர (ோண tr
_) திர (ௌபதி tr



.group ந .group ந
ந nV ந nV
த) ப (ா p த) ப (ா p
த) ப (B b த) ப (B b


பத (ி pVt
@) பத (ி pVt
ப (ுர p ப (ுர p
ப (ால p ப (ால p
ப (ாள p ப (ாள p
ம்) ப (ா b ம்) ப (ா b




_) ப (ால b
_) ப (ால் p
// _) ப (ால b
_) ப (ால் p
_) ப (ாலின் p _) ப (ாலின் p
_) ப (ாலை p _) ப (ாலை p
_) ப (ாலில் p
// _) ப (ாலில் p
_) ப (ாலுடன் p _) ப (ாலுடன் p
_) ப (ாலினுடைய p
// _) ப (ாலினுடைய p


_) ப (ாலாபிஷேக p _) ப (ாலாபிஷேக p
_) ப (ாலு b
_) ப (ானு b
_) ப (ீம b
_) ப (ாலு b
_) ப (ானு b
_) ப (ீம b
_) ப (காசுர bV _) ப (காசுர bV
_) ப (ோஜ b
_) ப (தில bV
_) ப (ஜ bV
_) ப (ோஜ b
_) ப (தில bV
_) ப (ஜ bV
_) ப (ைரவ b _) ப (ைரவ b
_) ப (யம bV
_) ப (யம bV
_) ப (ார்கவி b _) ப (ார்கவி b
_) ப (ூதேவி b _) ப (ூதேவி b
_) ப (ம்பாய bV _) ப (ம்பாய bV
_) ப (ாதுஷா b _) ப (ாதுஷா b
_) ப (க்த bV
_) ப (லம bV
_) ப (க்த bV
_) ப (லம bV
_) ப (லவான bV _) ப (லவான bV
_) ப (ிராமண b _) ப (ிராமண b
_) ப (ிரம்ம b _) ப (ிரம்ம b
_) ப (ம்பர bV
_) ப (லூன bV
_) ப (ூமி b
_) ப (ம்பர bV
_) ப (லூன bV
_) ப (ூமி b
_) ப (ூலோக b _) ப (ூலோக b
_) ப (ூகோல b _) ப (ூகோல b
_) ப (ூத b
_) ப (ூத b
_) ப (ுதன b _) ப (ுதன b
_) ப (லி bV _) ப (லி bV
_) ப (கவான bV _) ப (கவான bV
_) ப (ோபால b _) ப (ோபால b
_) ப (ெங்களூர b _) ப (ெங்களூர b
_) ப (ூபாள b _) ப (ூபாள b
_) ப (ுத்த b
_) புத்த(K buddV
_) புத் (தJ_புத+ put
_) ப (னியன bV _) ப (னியன bV
கோ) ப (ி p கோ) ப (ி p
_) ப (ாலச b
_) ப (ாலக b
_) ப (ாலமு b
_) ப (ாலதண் b
_) ப (ூவுலக b
_) ப (ிரகஸ்பதி b
_) ப (ிரகதீ b
_) ப (ொம்மை b
_) ப (ொம்மல b
_) ப (ாக்கி b
_) ப (ஸ bV
_) ப (ாஷை b
_) ப (ிரம்மை b
_) ப (ாரம b
_) ப (ங்களா bV
_) ப (ங்கம bV
_) ப (ுட்டி b

_) பிர (ம்மன brV
_) பிர (ாமணன br
_) பிர (கஸ்பதி brV
_) பிர (கதீ brV
_) பிர (கலாதன prV
_) பிர (காஷ prV
_) பிர (காச prV
_) பிர (சாத prV
_) பிர (ே pr
_) பிரு (கன்நளை bri
_) பிர (சாந்தி prV
_) பிர (ம்மை brV
_) பிர (சன்ன prV
_) பிர (ச்சனை prV
_) பிர (ப prV
_) பிர (தீ prV




// musical notes // musical notes

+ 23
- 22
platforms/windows/windows_dll/src/speak_lib.h View File

/* This is the header file for the library version of espeak */ /* This is the header file for the library version of espeak */
/* */ /* */
/*************************************************************/ /*************************************************************/
#define ESPEAK_API __declspec(dllexport)


#include <stdio.h> #include <stdio.h>


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options);
ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options);
/* Must be called before any synthesis functions are called. /* Must be called before any synthesis functions are called.
output: the audio data can either be played by eSpeak or passed back by the SynthCallback function. output: the audio data can either be played by eSpeak or passed back by the SynthCallback function.


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
void espeak_SetSynthCallback(t_espeak_callback* SynthCallback);
ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback);
/* Must be called before any synthesis functions are called. /* Must be called before any synthesis functions are called.
This specifies a function in the calling program which is called when a buffer of This specifies a function in the calling program which is called when a buffer of
speech sound data has been produced. speech sound data has been produced.
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*));
ESPEAK_API void espeak_SetUriCallback(int (*UriCallback)(int, const char*, const char*));
/* This function may be called before synthesis functions are used, in order to deal with /* This function may be called before synthesis functions are used, in order to deal with
<audio> tags. It specifies a callback function which is called when an <audio> element is <audio> tags. It specifies a callback function which is called when an <audio> element is
encountered and allows the calling program to indicate whether the sound file which encountered and allows the calling program to indicate whether the sound file which
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_Synth(const void *text,
ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
size_t size, size_t size,
unsigned int position, unsigned int position,
espeak_POSITION_TYPE position_type, espeak_POSITION_TYPE position_type,
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_Synth_Mark(const void *text,
ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text,
size_t size, size_t size,
const char *index_mark, const char *index_mark,
unsigned int end_position, unsigned int end_position,
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_Key(const char *key_name);
ESPEAK_API espeak_ERROR espeak_Key(const char *key_name);
/* Speak the name of a keyboard key. /* Speak the name of a keyboard key.
If key_name is a single character, it speaks the name of the character. If key_name is a single character, it speaks the name of the character.
Otherwise, it speaks key_name as a text string. Otherwise, it speaks key_name as a text string.
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_Char(wchar_t character);
ESPEAK_API espeak_ERROR espeak_Char(wchar_t character);
/* Speak the name of the given character /* Speak the name of the given character


Return: EE_OK: operation achieved Return: EE_OK: operation achieved
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative);
ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative);
/* Sets the value of the specified parameter. /* Sets the value of the specified parameter.
relative=0 Sets the absolute value of the parameter. relative=0 Sets the absolute value of the parameter.
relative=1 Sets a relative value of the parameter. relative=1 Sets a relative value of the parameter.
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
int espeak_GetParameter(espeak_PARAMETER parameter, int current);
ESPEAK_API int espeak_GetParameter(espeak_PARAMETER parameter, int current);
/* current=0 Returns the default value of the specified parameter. /* current=0 Returns the default value of the specified parameter.
current=1 Returns the current value of the specified parameter, as set by SetParameter() current=1 Returns the current value of the specified parameter, as set by SetParameter()
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
/* Specified a list of punctuation characters whose names are to be spoken when the /* Specified a list of punctuation characters whose names are to be spoken when the
value of the Punctuation parameter is set to "some". value of the Punctuation parameter is set to "some".


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
void espeak_SetPhonemeTrace(int value, FILE *stream);
ESPEAK_API void espeak_SetPhonemeTrace(int value, FILE *stream);
/* Controls the output of phoneme symbols for the text /* Controls the output of phoneme symbols for the text
value=0 No phoneme output (default) value=0 No phoneme output (default)
value=1 Output the translated phoneme symbols for the text value=1 Output the translated phoneme symbols for the text
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
void espeak_CompileDictionary(const char *path, FILE *log, int flags);
ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags);
/* Compile pronunciation dictionary for a language which corresponds to the currently /* Compile pronunciation dictionary for a language which corresponds to the currently
selected voice. The required voice should be selected before calling this function. selected voice. The required voice should be selected before calling this function.


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec);
ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec);
/* Reads the voice files from espeak-data/voices and creates an array of espeak_VOICE pointers. /* Reads the voice files from espeak-data/voices and creates an array of espeak_VOICE pointers.
The list is terminated by a NULL pointer The list is terminated by a NULL pointer


If voice_spec is NULL then all voices are listed. If voice_spec is NULL then all voices are listed.
If voice spec is given, then only the voices which are compatible with the voice_spec
If voice spec is give, then only the voices which are compatible with the voice_spec
are listed, and they are listed in preference order. are listed, and they are listed in preference order.
*/ */


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_SetVoiceByName(const char *name);
ESPEAK_API espeak_ERROR espeak_SetVoiceByName(const char *name);
/* Searches for a voice with a matching "name" field. Language is not considered. /* Searches for a voice with a matching "name" field. Language is not considered.
"name" is a UTF8 string. "name" is a UTF8 string.


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec);
ESPEAK_API espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec);
/* An espeak_VOICE structure is used to pass criteria to select a voice. Any of the following /* An espeak_VOICE structure is used to pass criteria to select a voice. Any of the following
fields may be set: fields may be set:


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_VOICE *espeak_GetCurrentVoice(void);
ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void);
/* Returns the espeak_VOICE data for the currently selected voice. /* Returns the espeak_VOICE data for the currently selected voice.
This is not affected by temporary voice changes caused by SSML elements such as <voice> and <s> This is not affected by temporary voice changes caused by SSML elements such as <voice> and <s>
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_Cancel(void);
ESPEAK_API espeak_ERROR espeak_Cancel(void);
/* Stop immediately synthesis and audio output of the current text. When this /* Stop immediately synthesis and audio output of the current text. When this
function returns, the audio output is fully stopped and the synthesizer is ready to function returns, the audio output is fully stopped and the synthesizer is ready to
synthesize a new message. synthesize a new message.
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
int espeak_IsPlaying(void);
ESPEAK_API int espeak_IsPlaying(void);
/* Returns 1 if audio is played, 0 otherwise. /* Returns 1 if audio is played, 0 otherwise.
*/ */


#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_Synchronize(void);
ESPEAK_API espeak_ERROR espeak_Synchronize(void);
/* This function returns when all data have been spoken. /* This function returns when all data have been spoken.
Return: EE_OK: operation achieved Return: EE_OK: operation achieved
EE_INTERNAL_ERROR. EE_INTERNAL_ERROR.
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
espeak_ERROR espeak_Terminate(void);
ESPEAK_API espeak_ERROR espeak_Terminate(void);
/* last function to be called. /* last function to be called.
Return: EE_OK: operation achieved Return: EE_OK: operation achieved
EE_INTERNAL_ERROR. EE_INTERNAL_ERROR.
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
#endif #endif
const char *espeak_Info(void* ptr);
ESPEAK_API const char *espeak_Info(void* ptr);
/* Returns the version number string. /* Returns the version number string.
The parameter is for future use, and should be set to NULL The parameter is for future use, and should be set to NULL
*/ */

+ 18
- 3
src/compiledata.cpp View File

wxString filename; wxString filename;
wxFileName fname; wxFileName fname;
wxString dictstr; wxString dictstr;
wxString filetype;
wxString report = _T(""); wxString report = _T("");
int err; int err;
int errors = 0; int errors = 0;
fprintf(f_phused,"Phonemes which are used in the *_rules and *_list files\n"); fprintf(f_phused,"Phonemes which are used in the *_rules and *_list files\n");
} }


bool cont = dir.GetFirst(&filename, _T("*_rules"), wxDIR_FILES);
bool cont = dir.GetFirst(&filename, _T("*_rules*"), wxDIR_FILES);
while ( cont ) while ( cont )
{ {
fname = wxFileName(filename); fname = wxFileName(filename);
filetype = fname.GetName().AfterLast('_');
if((filetype != _T("rules")) && (filetype != _T("rules.txt")))
{
cont = dir.GetNext(&filename);
continue;
}

dictstr = fname.GetName().BeforeLast('_'); dictstr = fname.GetName().BeforeLast('_');
strcpy(dictname,dictstr.mb_str(wxConvLocal)); strcpy(dictname,dictstr.mb_str(wxConvLocal));

dict_count++; dict_count++;
strcpy(voicename,dictname); strcpy(voicename,dictname);


// read the *_rules file to see if a phoneme table is specified though a voice name // read the *_rules file to see if a phoneme table is specified though a voice name
sprintf(path,"%s%s_rules",path_dsource,dictname);
if((f_in = fopen(path,"r")) != NULL)
sprintf(path,"%s%s_rules.txt",path_dsource,dictname);
if((f_in = fopen(path,"r")) == NULL)
{
sprintf(path,"%s%s_rules",path_dsource,dictname);
f_in = fopen(path,"r");
}

if(f_in != NULL)
{ {
unsigned int ix; unsigned int ix;
unsigned int c; unsigned int c;

+ 20
- 8
src/compiledict.cpp View File

text_mode = 0; text_mode = 0;


sprintf(fname,"%s%s",path,filename);
// try with and without '.txt' extension
sprintf(fname,"%s%s.txt",path,filename);
if((f_in = fopen(fname,"r")) == NULL) if((f_in = fopen(fname,"r")) == NULL)
return(-1);
{
sprintf(fname,"%s%s",path,filename);
if((f_in = fopen(fname,"r")) == NULL)
return(-1);
}


fprintf(f_log,"Compiling: '%s'\n",fname); fprintf(f_log,"Compiling: '%s'\n",fname);


case 'X': case 'X':
c = RULE_NOVOWELS; c = RULE_NOVOWELS;
break; break;
case 'J':
c = RULE_SKIPCHARS;
break;
case 'L': case 'L':
// expect two digits // expect two digits
c = *p++ - '0'; c = *p++ - '0';
if(f_log == NULL) if(f_log == NULL)
f_log = stderr; f_log = stderr;


// try with and without '.txt' extension
sprintf(path,"%s%s_",dsource,dict_name); sprintf(path,"%s%s_",dsource,dict_name);
sprintf(fname_in,"%srules",path);
f_in = fopen_log(fname_in,"r");
if(f_in == NULL)
sprintf(fname_in,"%srules.txt",path);
if((f_in = fopen(fname_in,"r")) == NULL)
{ {
if(fname_err)
strcpy(fname_err,fname_in);
return(-1);
sprintf(fname_in,"%srules",path);
if((f_in = fopen_log(fname_in,"r")) == NULL)
{
if(fname_err)
strcpy(fname_err,fname_in);
return(-1);
}
} }


sprintf(fname_out,"%s%c%s_dict",path_home,PATHSEP,dict_name); sprintf(fname_out,"%s%c%s_dict",path_home,PATHSEP,dict_name);

+ 35
- 6
src/dictionary.cpp View File

static char output[60]; static char output[60];


static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ', static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',
'@','&','%','+','#','S','D','Z','A','L',' ',' ',' ',' ',' ','N','K','V',' ','T','X','?','W'};
'@','&','%','+','#','S','D','Z','A','L','!',' ','?','?','J','N','K','V','?','T','X','?','W'};


static char symbols_lg[] = {'A','B','C','H','F','G','Y'}; static char symbols_lg[] = {'A','B','C','H','F','G','Y'};




if((letter == rb) || ((letter==(unsigned char)REPLACED_E) && (rb=='e'))) if((letter == rb) || ((letter==(unsigned char)REPLACED_E) && (rb=='e')))
{ {
add_points = 21;
if((letter & 0xc0) != 0x80)
add_points = 21; // don't add point for non-initial UTF-8 bytes
consumed++; consumed++;
} }
else else
} }
break; break;


case RULE_SKIPCHARS:
{
// Used for lang=Tamil, used to match on the next word after an unknown word ending
// only look until the end of the word (including the end-of-word marker)
// Jx means 'skip characters until x', where 'x' may be '_' for 'end of word'
char *p = post_ptr + letter_xbytes;
char *p2 = p;
int rule_w; // skip characters until this
utf8_in(&rule_w,rule);
while((letter_w != rule_w) && (letter_w != RULE_SPACE))
{
p2 = p;
p += utf8_in(&letter_w,p);
}
if(letter_w == rule_w)
{
post_ptr = p2;
}
}
break;

case RULE_INC_SCORE: case RULE_INC_SCORE:
add_points = 20; // force an increase in points add_points = 20; // force an increase in points
break; break;
default: default:
if(letter == rb) if(letter == rb)
{ {
if(letter == RULE_SPACE)
add_points = (21-distance_right);
else
if((letter & 0xc0) != 0x80)
{
// not for non-initial UTF-8 bytes
add_points = (21-distance_right); add_points = (21-distance_right);
}
} }
else else
failed = 1; failed = 1;
if(letter == RULE_SPACE) if(letter == RULE_SPACE)
add_points = 4; add_points = 4;
else else
add_points = (21-distance_left);
{
if((letter & 0xc0) != 0x80)
{
// not for non-initial UTF-8 bytes
add_points = (21-distance_left);
}
}
} }
else else
failed = 1; failed = 1;

+ 10
- 5
src/extras.cpp View File

const int tab2 = 18; const int tab2 = 18;
const int tab3 = 28; const int tab3 = 28;


sprintf(fname_in,"%s/%s_rules",path_dsource,dictname);
sprintf(fname_out,"%s_formatted",fname_in);

// try with and without '.txt' extension
sprintf(fname_in,"%s/%s_rules.txt",path_dsource,dictname);
if((f_in = fopen(fname_in,"r")) == NULL) if((f_in = fopen(fname_in,"r")) == NULL)
{ {
wxLogError(_T("Can't open rules file: ") + wxString(fname_in,wxConvLocal));
return;
sprintf(fname_in,"%s/%s_rules",path_dsource,dictname);
if((f_in = fopen(fname_in,"r")) == NULL)
{
wxLogError(_T("Can't open rules file: ") + wxString(fname_in,wxConvLocal));
return;
}
} }

sprintf(fname_out,"%s/%s_rules_formatted",path_dsource,dictname);
if((f_out = fopen(fname_out,"w")) == NULL) if((f_out = fopen(fname_out,"w")) == NULL)
{ {
wxLogError(_T("Can't write to file: ") + wxString(fname_out,wxConvLocal)); wxLogError(_T("Can't write to file: ") + wxString(fname_out,wxConvLocal));

+ 2
- 0
src/numbers.cpp View File

prev = 0; prev = 0;
subtract = 0x7fff; subtract = 0x7fff;
ph_out[0] = 0; ph_out[0] = 0;
flags[0] = 0;
flags[1] = 0;


if((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) if((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER))
return(0); return(0);

+ 9
- 5
src/readclause.cpp View File

0x055e, // Armenian question 0x055e, // Armenian question
0x055b, // Armenian emphasis mark 0x055b, // Armenian emphasis mark


0x0b1b, // Arabic ;
0x061f, // Arabic ?

0x1362, // Ethiopic period 0x1362, // Ethiopic period
0x1363, 0x1363,
0x1364, 0x1364,
CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question
CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark


CLAUSE_SEMICOLON, // Arabic ;
CLAUSE_QUESTION, // Arabic question mark

CLAUSE_PERIOD, // Ethiopic period CLAUSE_PERIOD, // Ethiopic period
CLAUSE_COMMA, // Ethiopic comma CLAUSE_COMMA, // Ethiopic comma
CLAUSE_SEMICOLON, // Ethiopic semicolon CLAUSE_SEMICOLON, // Ethiopic semicolon
char phonemes2[55]; char phonemes2[55];
char *string1 = (char *)string; char *string1 = (char *)string;


flags[0] = flags[1] = 0;
if(LookupDictList(tr,&string1,phonemes,flags,0,NULL)) if(LookupDictList(tr,&string1,phonemes,flags,0,NULL))
{ {
SetWordStress(tr, phonemes, flags, -1, 0); SetWordStress(tr, phonemes, flags, -1, 0);
// Because of an xml tag, we are waiting for the // Because of an xml tag, we are waiting for the
// next non-blank character to decide whether to end the clause // next non-blank character to decide whether to end the clause
// i.e. is dot followed by an upper-case letter? // i.e. is dot followed by an upper-case letter?
if(c1 == '\n')
{
// end_clause_after_tag &= ~CLAUSE_DOT;
}
if(!iswspace(c1)) if(!iswspace(c1))
{ {
if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1)))
if(!IsAlpha(c1) || !iswlower(c1))
// if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1)))
{ {
UngetC(c2); UngetC(c2);
ungot_char2 = c1; ungot_char2 = c1;

+ 1
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.42.02 30.Nov.09";
const char *version_string = "1.42.03 08.Dec.09";
const int version_phdata = 0x014200; const int version_phdata = 0x014200;


int option_device_number = -1; int option_device_number = -1;

+ 8
- 2
src/tr_languages.cpp View File

break; break;


case L('a','r'): // Arabic case L('a','r'): // Arabic
case L('u','r'): // Urdu
tr->letter_bits_offset = OFFSET_ARABIC; tr->letter_bits_offset = OFFSET_ARABIC;
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
break; break;
tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable
tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable
tr->langopts.numbers = NUM_SWAP_TENS; tr->langopts.numbers = NUM_SWAP_TENS;
tr->langopts.break_numbers = 0x24924aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi
tr->langopts.break_numbers = 0x14aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi
tr->letter_bits_offset = OFFSET_DEVANAGARI; tr->letter_bits_offset = OFFSET_DEVANAGARI;


if(name2 == L('p','a')) if(name2 == L('p','a'))
} }
break; break;


case L('u','r'): // Urdu
tr->letter_bits_offset = OFFSET_ARABIC;
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
tr->langopts.numbers = NUM_SWAP_TENS;
tr->langopts.break_numbers = 0x52a8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi
break;

case L('v','i'): // Vietnamese case L('v','i'): // Vietnamese
{ {
static const short stress_lengths_vi[8] = {150, 150, 180, 180, 210, 230, 230, 240}; static const short stress_lengths_vi[8] = {150, 150, 180, 180, 210, 230, 230, 240};

+ 8
- 7
src/translate.h View File

#define RULE_LINENUM 8 // next 2 bytes give a line number, for debugging purposes #define RULE_LINENUM 8 // next 2 bytes give a line number, for debugging purposes


#define RULE_SPACE 32 // ascii space #define RULE_SPACE 32 // ascii space
#define RULE_SYLLABLE 9
#define RULE_STRESSED 10
#define RULE_DOUBLE 11
#define RULE_INC_SCORE 12
#define RULE_DEL_FWD 13
#define RULE_ENDING 14
#define RULE_SYLLABLE 9 // @
#define RULE_STRESSED 10 // &
#define RULE_DOUBLE 11 // %
#define RULE_INC_SCORE 12 // +
#define RULE_DEL_FWD 13 // #
#define RULE_ENDING 14 // S
#define RULE_DIGIT 15 // D digit #define RULE_DIGIT 15 // D digit
#define RULE_NONALPHA 16 // Z non-alpha #define RULE_NONALPHA 16 // Z non-alpha
#define RULE_LETTERGP 17 // A B C H F G Y letter group number #define RULE_LETTERGP 17 // A B C H F G Y letter group number
#define RULE_LETTERGP2 18 // L + letter group number #define RULE_LETTERGP2 18 // L + letter group number
#define RULE_CAPITAL 19 // word starts with a capital letter
#define RULE_CAPITAL 19 // ! word starts with a capital letter
#define RULE_REPLACEMENTS 20 // section for character replacements #define RULE_REPLACEMENTS 20 // section for character replacements
#define RULE_SKIPCHARS 23 // J
#define RULE_NO_SUFFIX 24 // N #define RULE_NO_SUFFIX 24 // N
#define RULE_NOTVOWEL 25 // K #define RULE_NOTVOWEL 25 // K
#define RULE_IFVERB 26 // V #define RULE_IFVERB 26 // V

Loading…
Cancel
Save