mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[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
This commit is contained in:
+40
-2
@@ -220,17 +220,21 @@ amanzimtoti $4
|
||||
antwerpen antv&rp@n
|
||||
babilon babilOn
|
||||
bangladesj baNglad'ES
|
||||
barcelona bars@l'o@na
|
||||
barkly _^_EN
|
||||
bellevue b&lvju:
|
||||
bermuda $2
|
||||
bethlehem bEt_liEm
|
||||
boedapest budapEst
|
||||
boekarest bukarEst
|
||||
bogotá bOgOt'A:
|
||||
bolivië bul'Ivi:@
|
||||
bonnievale _^_EN
|
||||
bordeaux bOrd'@U
|
||||
boston _^_EN
|
||||
brittanje $2
|
||||
brooklyn _^_EN
|
||||
(buenos aires) bwEnOs_'aIrEs
|
||||
burundi bur'undi
|
||||
caledon kalidOn
|
||||
carolina karul'ina
|
||||
@@ -246,6 +250,7 @@ colesberg ko@lsb&rx2
|
||||
constantia $2
|
||||
christiana kr@stij'A:na
|
||||
damaskus d@maskWs
|
||||
denemarke de@n@mark@
|
||||
djakarta dZak'arta
|
||||
doebaai $2
|
||||
duitswes dYytsv'Es
|
||||
@@ -253,6 +258,7 @@ ermelo &rm@lo@
|
||||
franschhoek frA~nsh'uk
|
||||
gadara x2@dA:ra
|
||||
galilea x2al@l'i:a
|
||||
genève Z@nE:v
|
||||
germiston _^_EN
|
||||
getsémané x2Ets'e@mani
|
||||
gonubie g@nu:bi
|
||||
@@ -268,6 +274,7 @@ hirosjima hiruS'ima
|
||||
israel IsraI:l
|
||||
italië it'A:li;@
|
||||
jeffreysbaai dZEfrisb'AI
|
||||
junín x2un'in
|
||||
kalafong kalaf'ON
|
||||
kanada kanad%a
|
||||
kanaän kA:nA:an
|
||||
@@ -302,14 +309,21 @@ moorreesburg mur'e@sbWrx2
|
||||
europa Y@r'o@pa
|
||||
nigel _^_EN
|
||||
nineve nIn@fi
|
||||
oklahoma @Ukl@h'@Uma
|
||||
outeniekwa @Ut@n'ikwa
|
||||
oxford _^_EN
|
||||
palermo pal'&rmu
|
||||
pelindaba p&l@nd'A:ba
|
||||
perú p@ru
|
||||
piketberg p@kEtb&rx2
|
||||
portugal pOrtyx2al
|
||||
potchefstroom pOtSIfstr'o@m
|
||||
rhône _^_FR
|
||||
richardsbaai ritS@dsb'AI
|
||||
robertson _^_EN
|
||||
sahara sah'A:ra
|
||||
salvador salvadO:r
|
||||
santiago santi;'A:gu
|
||||
secunda s@kunda
|
||||
senekal se@n@kal
|
||||
seychelle seIS'&l@
|
||||
@@ -334,6 +348,7 @@ washington _^_EN
|
||||
wellington wEliNt@n
|
||||
wolseley wulsli
|
||||
uganda ug'anda
|
||||
uruguay urugwaI
|
||||
zimbabwe zI:mb'ab_wE
|
||||
zulu zulu // Kwazulu-Natal
|
||||
|
||||
@@ -353,7 +368,9 @@ annalet anal'Et
|
||||
André 'andreI
|
||||
annette an'Et
|
||||
antoinette antun'Et
|
||||
archimedes arx2im'e@dEs
|
||||
aristoteles arist'o@t@lEs
|
||||
arthur _^_EN
|
||||
badenhorst bA:d@nhOrst
|
||||
barbara bA:b@ra
|
||||
basson $2
|
||||
@@ -376,6 +393,7 @@ bredenkamp bre@d@nkamp
|
||||
bruwer bruw'&:r
|
||||
caesar siz@r
|
||||
carl kA:r@L
|
||||
carlyle _^_EN
|
||||
carol _^_EN
|
||||
casanova kasan'o@va
|
||||
cecil sEs@l
|
||||
@@ -415,7 +433,9 @@ derick dErik
|
||||
deventer d'e@v@nt@r
|
||||
diana dij'A:na
|
||||
donaldson _^_EN
|
||||
dostojewski dOstOj'Evski
|
||||
du $u
|
||||
duncan daNk@-n
|
||||
(du pisanie) du||pis'A:ni
|
||||
(du plessis) du||pl@s'i
|
||||
(du plooy) d@||ploI
|
||||
@@ -442,6 +462,7 @@ farao fA:ro@
|
||||
ferreira f@r&:r@
|
||||
filemon f'il@mOn
|
||||
fischer fiS@r
|
||||
flaubert _^_FR
|
||||
floris $1
|
||||
fouché fuS'e@
|
||||
fourie fur'i
|
||||
@@ -457,8 +478,10 @@ gerhardus $2
|
||||
gertruida $2
|
||||
gilbert _^_EN
|
||||
gloria glO:ria
|
||||
gordon _^_EN
|
||||
grange x2rA:nsi
|
||||
grové x2ruv'e@
|
||||
gulliver _^_EN
|
||||
gustav gustaf
|
||||
guy _^_EN
|
||||
hamlet _^_EN
|
||||
@@ -472,6 +495,7 @@ henry _^_EN
|
||||
herklaas $1
|
||||
herkules $1
|
||||
hilde hild@
|
||||
ibsen ibs@n
|
||||
ilse 'ilz@
|
||||
ingrid iNgr@d
|
||||
isabel is@b&l
|
||||
@@ -490,6 +514,8 @@ jordaan $2
|
||||
joris $1
|
||||
josef jo@s@f
|
||||
josephina jo@s@f'ina
|
||||
josé _^_ES
|
||||
juan x2wan
|
||||
juanita juan'ita
|
||||
julia _^_EN
|
||||
khayyam kaj'am
|
||||
@@ -510,6 +536,7 @@ levi le@fi
|
||||
liesbet lisbEt
|
||||
louis luI
|
||||
louise luw'i:z
|
||||
lukas lukas
|
||||
mackintosh _^_EN
|
||||
madelene mad@l'e@n
|
||||
mbeki mbE:ki
|
||||
@@ -533,6 +560,7 @@ mary _^_EN
|
||||
mathilda mat'Ilda
|
||||
matteus mat'i:Ws
|
||||
matthee mat'e@
|
||||
mattheüs mat'i:Ws
|
||||
matthéüs mat'i:Ws
|
||||
maureen _^_EN
|
||||
mefistofeles mEfist'o@f@l@s
|
||||
@@ -566,9 +594,10 @@ petronella pe@trun'&la
|
||||
petrus pe@trWs
|
||||
phoebe fi:bi
|
||||
picasso pik'asu
|
||||
piketberg pik'Etb&rx2
|
||||
pinokkio pin'Oki;u
|
||||
pretorius pr@to@riWs
|
||||
pythagoras pit'A:x2o@ras
|
||||
quijote kix2'OtE
|
||||
quixote kix2'OtE
|
||||
rachmaninoff rax2m'aninOf
|
||||
rademeyer rA:d@meI@r
|
||||
@@ -607,6 +636,7 @@ sophia suf'i:ja
|
||||
sophie _^_EN
|
||||
stephan ste@fan
|
||||
stephanus st@fA:nWs
|
||||
stevenson _^_EN
|
||||
strauss straUs
|
||||
stockenström stOk@nstro@m
|
||||
suzanne suz'A:n
|
||||
@@ -624,6 +654,7 @@ totius to@SiWs
|
||||
trudie trudi
|
||||
versfeld f&rsf<
|
||||
veronica _^_EN
|
||||
victor _^_EN
|
||||
victoria _^_EN
|
||||
viljoen $2
|
||||
villiers vIli@rs
|
||||
@@ -668,6 +699,7 @@ peugeot pW:Z@U
|
||||
porsche pOrS@
|
||||
port pOrt $1
|
||||
rover _^_EN
|
||||
sorbonne _^_FR
|
||||
sotho su:tu
|
||||
toyota $2
|
||||
venda vEnda
|
||||
@@ -905,12 +937,14 @@ effense Ef@ns@
|
||||
eks Eks
|
||||
ekself %&ks'&lf
|
||||
elders &ld@rs
|
||||
elementale El@mEnt'A:l@
|
||||
elite il'i:t
|
||||
encore A~NkO:r
|
||||
enige e@nIx2@
|
||||
eone $2
|
||||
era e@ra
|
||||
erger &rg@r
|
||||
ergering &rg@r@N
|
||||
espeak i:;spi:k
|
||||
(et cetera) Ets'Et@ra
|
||||
euro Y@ru
|
||||
@@ -934,6 +968,7 @@ geldelike x2&ld@l@k@
|
||||
genade $2
|
||||
genesis x2e@n@s@s
|
||||
//gesamentlik x2@sA:m@ntl@k
|
||||
gentleman _^_EN
|
||||
gewellys x2e@v@lleIs
|
||||
gladiator x2ladi'A:tOr
|
||||
globale x2lo@b'A:l@
|
||||
@@ -973,6 +1008,7 @@ impromptu impr'Omptu
|
||||
inagneming @nax2ne@m@N
|
||||
indien Indin $verb
|
||||
induna ind'u:na
|
||||
infame @nfA:m@
|
||||
ingevolge $3
|
||||
inkatha iNk'A:ta
|
||||
inkluis $2
|
||||
@@ -1008,6 +1044,7 @@ lokaas lOk_A:s
|
||||
londense lOnd@ns@
|
||||
lord _^_EN
|
||||
luidop lYyt_Op
|
||||
lykwaak leIkvA:k
|
||||
|
||||
macaroni makar'o@ni
|
||||
madame mad'A:m
|
||||
@@ -1065,6 +1102,7 @@ ommekeer Om@ke@r
|
||||
omrede $2
|
||||
omtrent Omtr'Ent
|
||||
onbegrip $1
|
||||
onbruik $1
|
||||
onderrig On@r'Ix2 $verb
|
||||
ondersoek $3 $verb
|
||||
onderweg $3
|
||||
@@ -1150,6 +1188,7 @@ sedertdien $3
|
||||
sektore $2
|
||||
sinagoge s@n@x2o@x2@
|
||||
senatore s@nat'o@r@
|
||||
siesta si;'Esta
|
||||
singenot sInx2@nOt
|
||||
sir _^_EN
|
||||
skepsele skEps@l@
|
||||
@@ -1205,7 +1244,6 @@ veraf f&r_af
|
||||
verafgeleë f&rafx2@le@@
|
||||
verby f@rbeI
|
||||
verdere f&rd@r@
|
||||
vererger f@r&rg@r
|
||||
ver f'&:r
|
||||
vereduifie fe@r@dYyfi
|
||||
verg f&rx2
|
||||
|
||||
+964
-896
File diff suppressed because it is too large
Load Diff
@@ -89,7 +89,7 @@ Y:
|
||||
* : ; b C C2 d D
|
||||
dZ f g h j k l m
|
||||
n N p pF r s S t
|
||||
tS ts v x z Z
|
||||
tS ts v w x z Z
|
||||
|
||||
|
||||
Dictionary el_dict
|
||||
@@ -612,3 +612,16 @@ oi ong ou u ui yu
|
||||
b c d f g h j k
|
||||
l m n N p r s t
|
||||
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
@@ -567,7 +567,7 @@ antigen $1
|
||||
antihero $1
|
||||
antilog $1
|
||||
antimatter $1
|
||||
antinomy ant'In@mI
|
||||
antimony $2
|
||||
antioch $1
|
||||
antipathy ant'Ip@TI
|
||||
antiphonal ant'If@n@L
|
||||
@@ -1347,6 +1347,7 @@ japan dZ@pan
|
||||
jasmine dZazmIn
|
||||
jesus dZi:z@s
|
||||
joky dZoUkI
|
||||
jour ZU@ // french
|
||||
jukebox dZu:kb0ks
|
||||
july dZu:l'aI
|
||||
|
||||
@@ -2606,10 +2607,12 @@ Dinah daIn@
|
||||
Dominic d0mI2nIk
|
||||
Donaghy d0n'hi:
|
||||
Doris d0rIs
|
||||
Dorothy dO@r@Ti
|
||||
Dougall du:g@L
|
||||
Dylan dIl@n
|
||||
Edith i:dIT
|
||||
Elizabeth I2lIz@b@T
|
||||
Emily EmI2lI
|
||||
Emma Em@
|
||||
Emmy EmI
|
||||
Etheridge ET@-rIdZ
|
||||
|
||||
+2
-3
@@ -4004,7 +4004,6 @@
|
||||
r) ouge u:Z
|
||||
_) ough O:
|
||||
ough (t O:
|
||||
ough (* OI
|
||||
ough oU
|
||||
b) ough aU
|
||||
b) ough (t O:
|
||||
@@ -4447,6 +4446,7 @@
|
||||
_) re (emP2 r%i:
|
||||
_) re (enP2 r%i:
|
||||
_) re (eqP2 r%i:
|
||||
_) re (esP2 r%i:
|
||||
_) re (exP2 r%i:
|
||||
referend rEf@r'End
|
||||
re (fug rE
|
||||
@@ -5102,7 +5102,7 @@
|
||||
?5 ss) wor (d wVR
|
||||
wor (th_ w3:
|
||||
?5 wor (th_ wVR
|
||||
s) w (ick
|
||||
As) w (ick
|
||||
|
||||
.group x
|
||||
_) x (C Eks
|
||||
@@ -5123,7 +5123,6 @@
|
||||
_) y (n@ V
|
||||
_) y (s@ V
|
||||
C) y (abl I2
|
||||
y (y
|
||||
y (C I
|
||||
C) y %I
|
||||
y (ar j
|
||||
|
||||
@@ -825,6 +825,39 @@ velem $unstressend
|
||||
velünk $unstressend
|
||||
veletek $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
|
||||
|
||||
|
||||
+50
-32
@@ -31,7 +31,7 @@
|
||||
|
||||
biz (A biz, // bizalmas etc.
|
||||
biedermeier bi:dER2ma:jER2
|
||||
_) batthiány bAc:a:n^i
|
||||
_) batthiány bAc:a:n^i
|
||||
|
||||
.group c
|
||||
c ts
|
||||
@@ -147,7 +147,8 @@ hierar) ch (i h
|
||||
rövi) d (zárlat d
|
||||
sarja) d (zik d
|
||||
nyála) d (z d
|
||||
ren) dsz (erint d|s
|
||||
ren) dsz (erint d|s
|
||||
szaba) d (szájú d
|
||||
|
||||
.group dz
|
||||
fogó) dz (kod ts
|
||||
@@ -276,6 +277,7 @@ _minde) gy (ik J:
|
||||
e) gy (sínű J
|
||||
e) 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
|
||||
h h
|
||||
@@ -291,8 +293,8 @@ _minde) gy (ik J:
|
||||
.group í
|
||||
í i:
|
||||
íts i:tS:
|
||||
ítsd i:tSd
|
||||
|
||||
ítsd i:tSd
|
||||
|
||||
t) í (zen i
|
||||
t) í (zet i
|
||||
v) í (zen i
|
||||
@@ -410,9 +412,11 @@ negyve) n (yard n
|
||||
pero) n (jegy n
|
||||
ö) n (járó 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
|
||||
o o
|
||||
@@ -453,7 +457,7 @@ ko) nn (ektor n //connector word, we spokening one n letter, not two n letter
|
||||
_) richa (rd R2iCa:
|
||||
_) richá (rd R2iCa:
|
||||
reichsmarschall R2EjsmAR2SAl:
|
||||
?!2 _) roose (velt R2u:z@
|
||||
?!2 _) roose (velt R2u:z
|
||||
|
||||
|
||||
.group s
|
||||
@@ -635,6 +639,12 @@ köhögé) ssz (erű Ss
|
||||
vi) ssz (hang s
|
||||
felelő) ss (ég S
|
||||
é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
|
||||
sz s
|
||||
@@ -796,20 +806,23 @@ passzá) t (szél t
|
||||
épüle) t (sarok t
|
||||
mene) t (sor 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
|
||||
ts (_S2 tS //general rule with word end of ts letters
|
||||
@@ -819,6 +832,7 @@ helyze) t (jel t
|
||||
já) tsz ts:
|
||||
já) tssz ts:
|
||||
já) tsz (m ts
|
||||
já) tsz (hat ts
|
||||
tsz (_S3 ts:
|
||||
tsz (é ts:
|
||||
tsz (o ts:
|
||||
@@ -884,6 +898,7 @@ indula) tsz (ó t|s
|
||||
|
||||
.group ú
|
||||
ú u:
|
||||
h) ú (szan u
|
||||
|
||||
.group ü
|
||||
ü y
|
||||
@@ -893,6 +908,7 @@ indula) tsz (ó t|s
|
||||
|
||||
.group ű
|
||||
ű y:
|
||||
t) ű (zijáték y
|
||||
|
||||
.group v
|
||||
v v
|
||||
@@ -993,16 +1009,18 @@ találko) z (t s
|
||||
nehé) z (súly z
|
||||
raj) z (szeg 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
|
||||
|
||||
+4
-1
@@ -206,7 +206,7 @@ tamil தமிழ் $text
|
||||
போனஸ் $alt
|
||||
போகி $alt
|
||||
பாபா ba:ba:
|
||||
புத்த buddV
|
||||
//புத்த buddV
|
||||
|
||||
|
||||
// initial த as [d]
|
||||
@@ -246,6 +246,9 @@ tamil தமிழ் $text
|
||||
கட $alt
|
||||
கோ $alt
|
||||
கதி $alt
|
||||
கோபி $alt
|
||||
கச்சாமி $alt
|
||||
குரு $alt
|
||||
|
||||
|
||||
பப pVpV
|
||||
|
||||
+117
-23
@@ -39,6 +39,9 @@
|
||||
க்க (B kk
|
||||
ற்) க _kV
|
||||
ற்) க (B _k
|
||||
ட்) க kV
|
||||
ட்) க (B k
|
||||
க (ிரு k
|
||||
|
||||
க (ீத g
|
||||
க (ஜ gV
|
||||
@@ -55,7 +58,6 @@
|
||||
_) க (ாந்த g
|
||||
_) க (ுண்ட g
|
||||
_) க (ோபுர g
|
||||
_) க (ுரு g
|
||||
_) க (ுகன g
|
||||
_) க (ணபதி gV
|
||||
_) க (ணீர gV
|
||||
@@ -66,13 +68,28 @@
|
||||
_) க (தியில் gV
|
||||
_) க (டிகார gV
|
||||
வி) க்ட (ோரியா kt. // victoria
|
||||
க (ோப g
|
||||
க (ாரன k
|
||||
க (ாரர k
|
||||
_) க (ோபம k
|
||||
_) கோப (ித்து ko:b
|
||||
_) க (ோபப் k
|
||||
_) க (ெட்டி g
|
||||
_) க (வண gV
|
||||
_) க (ோகுல g
|
||||
கோப (ால go:p
|
||||
_) க (ோபிய g
|
||||
_) க (ோபிநா g
|
||||
_) க (ோபிசெட் g
|
||||
_) க (ூடலூர g
|
||||
_) க (ுடியாத்த g
|
||||
_) க (வன gV
|
||||
_) க (ுருவின g
|
||||
_) க (ுருவிட g
|
||||
_) க (ுருக்கள g
|
||||
_) க (ுருவோட g
|
||||
_) க (ுருவுடை g
|
||||
_) க (ுருரா g
|
||||
_) க (ுருநா g
|
||||
_) க (ுருவாய g
|
||||
|
||||
|
||||
.group ங
|
||||
@@ -99,9 +116,13 @@
|
||||
|
||||
_) ச (ிட் tS
|
||||
_) ச (ின் tS
|
||||
_) ச (ேரி tS
|
||||
|
||||
_) ச (ப்பாத்தி tSV
|
||||
|
||||
_) சிரு (ஷ்டி sri
|
||||
ச (ாந்தி s.
|
||||
ச (ண்மு s.V
|
||||
|
||||
.group ஜ
|
||||
ஜ dZV
|
||||
@@ -154,6 +175,7 @@
|
||||
_) த (ுஷ் d
|
||||
_) த (க்ஷிணா dV
|
||||
_) த (ண்ட dV
|
||||
_) த (ண்டவாள tV
|
||||
_) த (ருமி dV
|
||||
_) த (ர்பை dV
|
||||
_) த (ாவா d
|
||||
@@ -167,7 +189,7 @@
|
||||
_) த (ினுச d
|
||||
_) த (ாராவி d
|
||||
_) த (ர்க dV
|
||||
_) த (ான d
|
||||
// _) த (ான d
|
||||
_) த (ேக d
|
||||
_) த (ேக்கு t
|
||||
_) த (ேக்கிலை t
|
||||
@@ -222,12 +244,49 @@
|
||||
_) த (ன்ராஜ dV
|
||||
_) த (ாராபுர d
|
||||
_) த (டி_மாட dV
|
||||
_) த (ேவன d
|
||||
_) த (ேவி d
|
||||
_) த (ேவர்க d
|
||||
_) த (ேவதை d
|
||||
_) த (ேவாம்ச d
|
||||
_) த (ிவ்ய d
|
||||
_) த (ிண்டிவன d
|
||||
_) த (ுறை d
|
||||
_) த (ிண்டுக்கல d
|
||||
_) த (மயந்தி dV
|
||||
_) த (ுரோண d
|
||||
_) த (ுரியோதனன d
|
||||
_) த (ுச்சாதனன d
|
||||
_) த (ிரௌபதி d
|
||||
|
||||
யு) த்த ddV
|
||||
யு) த்த(B dd
|
||||
பு) த்த (ி dd
|
||||
பு) த்த (ியி dd
|
||||
பு) த்த (ர ddV
|
||||
பு) த்த (ன ddV
|
||||
|
||||
_சாந்) த (ி t
|
||||
_சும) த (ி t
|
||||
_வசந்) த (ி t
|
||||
_சுகந்) த (ி t
|
||||
_வனி) த (ா t
|
||||
_சுனி) த (ா t
|
||||
_ல) த (ா t
|
||||
பிரேமல) த (ா t
|
||||
_ரேவ) த (ி t
|
||||
_வினி) த (ா t
|
||||
_வசந்) த tV
|
||||
_பார்வ) த (ி t
|
||||
பிரபாவ) த (ி t
|
||||
_கோம) த (ி t
|
||||
_பிர) த (ீ t
|
||||
|
||||
_) திரு (ஷ்டி dri
|
||||
_) திரு (திரா dri
|
||||
_) துர (ோண tr
|
||||
_) திர (ௌபதி tr
|
||||
|
||||
|
||||
.group ந
|
||||
ந nV
|
||||
@@ -264,46 +323,46 @@
|
||||
த) ப (ா p
|
||||
த) ப (B b
|
||||
|
||||
பத (ி pVt
|
||||
@) பத (ி pVt
|
||||
ப (ுர p
|
||||
ப (ால p
|
||||
ப (ாள p
|
||||
ம்) ப (ா b
|
||||
|
||||
|
||||
_) ப (ால b
|
||||
_) ப (ால் p
|
||||
// _) ப (ால b
|
||||
_) ப (ால் p
|
||||
_) ப (ாலின் p
|
||||
_) ப (ாலை p
|
||||
_) ப (ாலில் p
|
||||
// _) ப (ாலில் p
|
||||
_) ப (ாலுடன் p
|
||||
_) ப (ாலினுடைய p
|
||||
// _) ப (ாலினுடைய p
|
||||
|
||||
_) ப (ாலாபிஷேக p
|
||||
_) ப (ாலு b
|
||||
_) ப (ானு b
|
||||
_) ப (ீம b
|
||||
_) ப (ாலு b
|
||||
_) ப (ானு b
|
||||
_) ப (ீம b
|
||||
_) ப (காசுர bV
|
||||
_) ப (ோஜ b
|
||||
_) ப (தில bV
|
||||
_) ப (ஜ bV
|
||||
_) ப (ோஜ b
|
||||
_) ப (தில bV
|
||||
_) ப (ஜ bV
|
||||
_) ப (ைரவ b
|
||||
_) ப (யம bV
|
||||
_) ப (யம bV
|
||||
_) ப (ார்கவி b
|
||||
_) ப (ூதேவி b
|
||||
_) ப (ம்பாய bV
|
||||
_) ப (ாதுஷா b
|
||||
_) ப (க்த bV
|
||||
_) ப (லம bV
|
||||
_) ப (க்த bV
|
||||
_) ப (லம bV
|
||||
_) ப (லவான bV
|
||||
_) ப (ிராமண b
|
||||
_) ப (ிரம்ம b
|
||||
_) ப (ம்பர bV
|
||||
_) ப (லூன bV
|
||||
_) ப (ூமி b
|
||||
_) ப (ம்பர bV
|
||||
_) ப (லூன bV
|
||||
_) ப (ூமி b
|
||||
_) ப (ூலோக b
|
||||
_) ப (ூகோல b
|
||||
_) ப (ூத b
|
||||
_) ப (ூத b
|
||||
_) ப (ுதன b
|
||||
_) ப (லி bV
|
||||
_) ப (கவான bV
|
||||
@@ -321,9 +380,44 @@
|
||||
_) ப (ோபால b
|
||||
_) ப (ெங்களூர b
|
||||
_) ப (ூபாள b
|
||||
_) ப (ுத்த b
|
||||
_) புத்த(K buddV
|
||||
_) புத் (தJ_புத+ put
|
||||
_) ப (னியன bV
|
||||
கோ) ப (ி 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
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
/* This is the header file for the library version of espeak */
|
||||
/* */
|
||||
/*************************************************************/
|
||||
#define ESPEAK_API __declspec(dllexport)
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -151,7 +152,7 @@ typedef enum {
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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.
|
||||
output: the audio data can either be played by eSpeak or passed back by the SynthCallback function.
|
||||
|
||||
@@ -170,7 +171,7 @@ typedef int (t_espeak_callback)(short*, int, espeak_EVENT*);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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.
|
||||
This specifies a function in the calling program which is called when a buffer of
|
||||
speech sound data has been produced.
|
||||
@@ -198,7 +199,7 @@ int SynthCallback(short *wav, int numsamples, espeak_EVENT *events);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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
|
||||
<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
|
||||
@@ -239,7 +240,7 @@ int UriCallback(int type, const char *uri, const char *base);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
espeak_ERROR espeak_Synth(const void *text,
|
||||
ESPEAK_API espeak_ERROR espeak_Synth(const void *text,
|
||||
size_t size,
|
||||
unsigned int position,
|
||||
espeak_POSITION_TYPE position_type,
|
||||
@@ -295,7 +296,7 @@ espeak_ERROR espeak_Synth(const void *text,
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
espeak_ERROR espeak_Synth_Mark(const void *text,
|
||||
ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text,
|
||||
size_t size,
|
||||
const char *index_mark,
|
||||
unsigned int end_position,
|
||||
@@ -319,7 +320,7 @@ espeak_ERROR espeak_Synth_Mark(const void *text,
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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.
|
||||
If key_name is a single character, it speaks the name of the character.
|
||||
Otherwise, it speaks key_name as a text string.
|
||||
@@ -333,7 +334,7 @@ espeak_ERROR espeak_Key(const char *key_name);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
espeak_ERROR espeak_Char(wchar_t character);
|
||||
ESPEAK_API espeak_ERROR espeak_Char(wchar_t character);
|
||||
/* Speak the name of the given character
|
||||
|
||||
Return: EE_OK: operation achieved
|
||||
@@ -378,7 +379,7 @@ typedef enum {
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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.
|
||||
relative=0 Sets the absolute value of the parameter.
|
||||
relative=1 Sets a relative value of the parameter.
|
||||
@@ -414,7 +415,7 @@ espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int rela
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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=1 Returns the current value of the specified parameter, as set by SetParameter()
|
||||
*/
|
||||
@@ -422,7 +423,7 @@ int espeak_GetParameter(espeak_PARAMETER parameter, int current);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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
|
||||
value of the Punctuation parameter is set to "some".
|
||||
|
||||
@@ -437,7 +438,7 @@ espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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
|
||||
value=0 No phoneme output (default)
|
||||
value=1 Output the translated phoneme symbols for the text
|
||||
@@ -449,7 +450,7 @@ void espeak_SetPhonemeTrace(int value, FILE *stream);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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
|
||||
selected voice. The required voice should be selected before calling this function.
|
||||
|
||||
@@ -502,19 +503,19 @@ typedef struct {
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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.
|
||||
The list is terminated by a NULL pointer
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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.
|
||||
"name" is a UTF8 string.
|
||||
|
||||
@@ -527,7 +528,7 @@ espeak_ERROR espeak_SetVoiceByName(const char *name);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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
|
||||
fields may be set:
|
||||
|
||||
@@ -547,7 +548,7 @@ espeak_ERROR espeak_SetVoiceByProperties(espeak_VOICE *voice_spec);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
espeak_VOICE *espeak_GetCurrentVoice(void);
|
||||
ESPEAK_API espeak_VOICE *espeak_GetCurrentVoice(void);
|
||||
/* 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>
|
||||
*/
|
||||
@@ -555,7 +556,7 @@ espeak_VOICE *espeak_GetCurrentVoice(void);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#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
|
||||
function returns, the audio output is fully stopped and the synthesizer is ready to
|
||||
synthesize a new message.
|
||||
@@ -568,14 +569,14 @@ espeak_ERROR espeak_Cancel(void);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
int espeak_IsPlaying(void);
|
||||
ESPEAK_API int espeak_IsPlaying(void);
|
||||
/* Returns 1 if audio is played, 0 otherwise.
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
espeak_ERROR espeak_Synchronize(void);
|
||||
ESPEAK_API espeak_ERROR espeak_Synchronize(void);
|
||||
/* This function returns when all data have been spoken.
|
||||
Return: EE_OK: operation achieved
|
||||
EE_INTERNAL_ERROR.
|
||||
@@ -584,7 +585,7 @@ espeak_ERROR espeak_Synchronize(void);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
espeak_ERROR espeak_Terminate(void);
|
||||
ESPEAK_API espeak_ERROR espeak_Terminate(void);
|
||||
/* last function to be called.
|
||||
Return: EE_OK: operation achieved
|
||||
EE_INTERNAL_ERROR.
|
||||
@@ -594,7 +595,7 @@ espeak_ERROR espeak_Terminate(void);
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
const char *espeak_Info(void* ptr);
|
||||
ESPEAK_API const char *espeak_Info(void* ptr);
|
||||
/* Returns the version number string.
|
||||
The parameter is for future use, and should be set to NULL
|
||||
*/
|
||||
|
||||
+18
-3
@@ -2085,6 +2085,7 @@ wxString CompileAllDictionaries()
|
||||
wxString filename;
|
||||
wxFileName fname;
|
||||
wxString dictstr;
|
||||
wxString filetype;
|
||||
wxString report = _T("");
|
||||
int err;
|
||||
int errors = 0;
|
||||
@@ -2135,18 +2136,32 @@ wxString CompileAllDictionaries()
|
||||
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 )
|
||||
{
|
||||
fname = wxFileName(filename);
|
||||
filetype = fname.GetName().AfterLast('_');
|
||||
if((filetype != _T("rules")) && (filetype != _T("rules.txt")))
|
||||
{
|
||||
cont = dir.GetNext(&filename);
|
||||
continue;
|
||||
}
|
||||
|
||||
dictstr = fname.GetName().BeforeLast('_');
|
||||
strcpy(dictname,dictstr.mb_str(wxConvLocal));
|
||||
|
||||
dict_count++;
|
||||
strcpy(voicename,dictname);
|
||||
|
||||
// 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 c;
|
||||
|
||||
+20
-8
@@ -690,9 +690,14 @@ static int compile_dictlist_file(const char *path, const char* filename)
|
||||
|
||||
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)
|
||||
return(-1);
|
||||
{
|
||||
sprintf(fname,"%s%s",path,filename);
|
||||
if((f_in = fopen(fname,"r")) == NULL)
|
||||
return(-1);
|
||||
}
|
||||
|
||||
fprintf(f_log,"Compiling: '%s'\n",fname);
|
||||
|
||||
@@ -860,6 +865,9 @@ static void copy_rule_string(char *string, int &state)
|
||||
case 'X':
|
||||
c = RULE_NOVOWELS;
|
||||
break;
|
||||
case 'J':
|
||||
c = RULE_SKIPCHARS;
|
||||
break;
|
||||
case 'L':
|
||||
// expect two digits
|
||||
c = *p++ - '0';
|
||||
@@ -1659,14 +1667,18 @@ int CompileDictionary(const char *dsource, const char *dict_name, FILE *log, cha
|
||||
if(f_log == NULL)
|
||||
f_log = stderr;
|
||||
|
||||
// try with and without '.txt' extension
|
||||
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);
|
||||
|
||||
+35
-6
@@ -1648,7 +1648,7 @@ static char *DecodeRule(const char *group_chars, int group_length, char *rule)
|
||||
static char output[60];
|
||||
|
||||
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'};
|
||||
|
||||
@@ -1998,7 +1998,8 @@ static void MatchRule(Translator *tr, char *word[], int group_length, char *rule
|
||||
|
||||
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++;
|
||||
}
|
||||
else
|
||||
@@ -2148,6 +2149,27 @@ static void MatchRule(Translator *tr, char *word[], int group_length, char *rule
|
||||
}
|
||||
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:
|
||||
add_points = 20; // force an increase in points
|
||||
break;
|
||||
@@ -2180,10 +2202,11 @@ static void MatchRule(Translator *tr, char *word[], int group_length, char *rule
|
||||
default:
|
||||
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);
|
||||
}
|
||||
}
|
||||
else
|
||||
failed = 1;
|
||||
@@ -2348,7 +2371,13 @@ static void MatchRule(Translator *tr, char *word[], int group_length, char *rule
|
||||
if(letter == RULE_SPACE)
|
||||
add_points = 4;
|
||||
else
|
||||
add_points = (21-distance_left);
|
||||
{
|
||||
if((letter & 0xc0) != 0x80)
|
||||
{
|
||||
// not for non-initial UTF-8 bytes
|
||||
add_points = (21-distance_left);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
failed = 1;
|
||||
|
||||
+10
-5
@@ -1344,14 +1344,19 @@ void FormatDictionary(const char *dictname)
|
||||
const int tab2 = 18;
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
wxLogError(_T("Can't write to file: ") + wxString(fname_out,wxConvLocal));
|
||||
|
||||
@@ -813,6 +813,8 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab)
|
||||
prev = 0;
|
||||
subtract = 0x7fff;
|
||||
ph_out[0] = 0;
|
||||
flags[0] = 0;
|
||||
flags[1] = 0;
|
||||
|
||||
if((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER))
|
||||
return(0);
|
||||
|
||||
+9
-5
@@ -92,6 +92,9 @@ static const unsigned short punct_chars[] = {',','.','?','!',':',';',
|
||||
0x055e, // Armenian question
|
||||
0x055b, // Armenian emphasis mark
|
||||
|
||||
0x0b1b, // Arabic ;
|
||||
0x061f, // Arabic ?
|
||||
|
||||
0x1362, // Ethiopic period
|
||||
0x1363,
|
||||
0x1364,
|
||||
@@ -131,6 +134,9 @@ static const unsigned int punct_attributes [] = { 0,
|
||||
CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question
|
||||
CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark
|
||||
|
||||
CLAUSE_SEMICOLON, // Arabic ;
|
||||
CLAUSE_QUESTION, // Arabic question mark
|
||||
|
||||
CLAUSE_PERIOD, // Ethiopic period
|
||||
CLAUSE_COMMA, // Ethiopic comma
|
||||
CLAUSE_SEMICOLON, // Ethiopic semicolon
|
||||
@@ -570,6 +576,7 @@ static const char *LookupSpecial(Translator *tr, const char *string, char* text_
|
||||
char phonemes2[55];
|
||||
char *string1 = (char *)string;
|
||||
|
||||
flags[0] = flags[1] = 0;
|
||||
if(LookupDictList(tr,&string1,phonemes,flags,0,NULL))
|
||||
{
|
||||
SetWordStress(tr, phonemes, flags, -1, 0);
|
||||
@@ -2406,14 +2413,11 @@ if(option_ssml) parag=1;
|
||||
// Because of an xml tag, we are waiting for the
|
||||
// next non-blank character to decide whether to end the clause
|
||||
// i.e. is dot followed by an upper-case letter?
|
||||
if(c1 == '\n')
|
||||
{
|
||||
// end_clause_after_tag &= ~CLAUSE_DOT;
|
||||
}
|
||||
|
||||
if(!iswspace(c1))
|
||||
{
|
||||
if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1)))
|
||||
if(!IsAlpha(c1) || !iswlower(c1))
|
||||
// if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1)))
|
||||
{
|
||||
UngetC(c2);
|
||||
ungot_char2 = c1;
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.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;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
@@ -279,7 +279,6 @@ Translator *SelectTranslator(const char *name)
|
||||
break;
|
||||
|
||||
case L('a','r'): // Arabic
|
||||
case L('u','r'): // Urdu
|
||||
tr->letter_bits_offset = OFFSET_ARABIC;
|
||||
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
|
||||
break;
|
||||
@@ -538,7 +537,7 @@ Translator *SelectTranslator(const char *name)
|
||||
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.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;
|
||||
|
||||
if(name2 == L('p','a'))
|
||||
@@ -1034,6 +1033,13 @@ SetLengthMods(tr,3); // all equal
|
||||
}
|
||||
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
|
||||
{
|
||||
static const short stress_lengths_vi[8] = {150, 150, 180, 180, 210, 230, 230, 240};
|
||||
|
||||
+8
-7
@@ -135,18 +135,19 @@
|
||||
#define RULE_LINENUM 8 // next 2 bytes give a line number, for debugging purposes
|
||||
|
||||
#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_NONALPHA 16 // Z non-alpha
|
||||
#define RULE_LETTERGP 17 // A B C H F G Y 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_SKIPCHARS 23 // J
|
||||
#define RULE_NO_SUFFIX 24 // N
|
||||
#define RULE_NOTVOWEL 25 // K
|
||||
#define RULE_IFVERB 26 // V
|
||||
|
||||
Reference in New Issue
Block a user