mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[1.27.06] Roman number translation added (for some languages).
espeak_Char(32) can speak "space" by adding an entry for _#32 in *_list file. Similarly for Tab. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@61 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+2
-1
@@ -1,4 +1,4 @@
|
||||
//maintainer: Willem van der Walt
|
||||
//maintainer: Willem van der Walt
|
||||
// email: wvdwalt@csir.co.za
|
||||
// tel: +27 12 8413996
|
||||
// Meraka Institute, CSIR
|
||||
@@ -541,6 +541,7 @@ rukkerig rWk@r@x2
|
||||
samelewing sA:m@l,e@v@N
|
||||
sedert se@d@rt
|
||||
sektore $2
|
||||
sinteties $2
|
||||
skepsele skEps@l@
|
||||
s'n s'@n
|
||||
sobere s'o@b@r@
|
||||
|
||||
+16
-4
@@ -16,6 +16,7 @@
|
||||
a (C a
|
||||
C) a (Csier %a // (ge)finansier/kassier
|
||||
j) a (pan %a //japan first a sound and stress
|
||||
|
||||
C) abie 'A:bi
|
||||
abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie
|
||||
_) a (bC %a // abdy/ablatief/ablusie/abstrak, etdc.
|
||||
@@ -37,6 +38,11 @@
|
||||
_) aka a%k@ //akademie etc.
|
||||
akkedis a%k@d'Is //akkedis and compounds
|
||||
ae A: //should be A:@ but sounds wrong
|
||||
konst) abel A:b@l //exception for konstabel in compounds
|
||||
t) abel %ab'&l //tabelopskrif temperatuurtabel etc.
|
||||
t) abell %ab'&l //tabelle fix double l
|
||||
w) a (tering A: //watering exception to the rest
|
||||
C) a (tering %a //short unstressed a before tering formatering etc. except watering
|
||||
ai aI
|
||||
adres %adrEs // fix last e sound of adres as last part of compounds
|
||||
_) alle (C al@ // alledaags/e/allerhande
|
||||
@@ -734,7 +740,8 @@
|
||||
CoeC) e (C @ //fix e in boetedoening, boedelbelasting and many others
|
||||
orr) e (l @ //fix e in borrel, orrel, korrel in compounds
|
||||
intell) e (k %E //intellek, and friends
|
||||
|
||||
p) e (ring 'e@ //imansipering and others e sound and stress
|
||||
roep) e (ring 'e@ //groepering e sound and stress
|
||||
eval (u %iv%al // evaluasie/evalueer/evaluering
|
||||
CAt) e (gn & //fix e in mikrotegnologie and others
|
||||
ei) e @ //eiewys and others
|
||||
@@ -924,6 +931,7 @@
|
||||
iber (i@ %ibe@r // Liberië/Siberië/Liberiese/Siberiese/Iberiese
|
||||
ie i
|
||||
h) i (dro i //hidro in compounds
|
||||
_) in (a@ In_ //inasem inagneming etc.
|
||||
_) iese (C ,is@ // iesegrimmig and derivitives
|
||||
ieus i'Y@s // this ending always takes stress
|
||||
C) i (g @// figuur/figure/stoksielsaligalleenA
|
||||
@@ -1320,7 +1328,6 @@
|
||||
minder (jar m@n@r // move default stress: minderjarig and derivitives
|
||||
miner (A m@n@r // mineraal and many compounds
|
||||
mi (neur m%i // move default stress: mineur and compounds
|
||||
minnares (_ m@n%arEs // fix stress and e sound: minnares/medeminnares and similar
|
||||
mikr (o mikr
|
||||
ministers m@n'Ist@rs
|
||||
mise (ra m@s // fix stress and drop e: miserabel/-e/-s/-ste
|
||||
@@ -1449,6 +1456,7 @@
|
||||
_) na (skeer n''A: // restore default stress: naskeermiddel/-room
|
||||
_) na (tC na // many compounds beginning with nat
|
||||
na (tuur n%a // natuur and compounds and derivitives
|
||||
navig n%av%ix2 //navigasie, navigeer etc.
|
||||
@) na (_ na // shorten final na, except for:
|
||||
r) na (_ nA: // daarna/hierna/waarna
|
||||
nadruklik nA:dr'Wkl@k // nadruklik/e
|
||||
@@ -2176,12 +2184,15 @@
|
||||
te (oo t@ // geboorteoorskot/kosteoorweging/siekteoorsaak/terroristeoorlog
|
||||
_) teraarde t%&r?A:rd@ // move default stress and fix e sounds: teraardebestelling/-s
|
||||
n) terie t@r'i // galanterie/infanterie and compounds
|
||||
wa) te (ring t@ //water exception to rest
|
||||
Ca) te (ring t'e@ //opdatering formatering etc.
|
||||
_) tering te@r@N // tering and compounds
|
||||
tesou (rie t%Es%u //tesourie and compounds
|
||||
moles) tering te@r@N // molestering/kindermolestering
|
||||
_) ter (l t@r // move default stress: terloops/-e
|
||||
@) term (_ t&r@ // correct pronunciation of e
|
||||
@) terme (_ t&rm@ // correct pronunciation of 1st e
|
||||
sin) te (ti te@ //sintetiseer, compounds and derivitives
|
||||
tern (K t'&:r@-n //lantern ekstern etc.
|
||||
tern (e_ t'&rn // interne/eksterne
|
||||
_) ter (nA t@r // terneergedruk/ternouernood
|
||||
@@ -2302,6 +2313,7 @@
|
||||
ven (ster fe~n // nasalise
|
||||
ven (yn f@n // venyn/venynig
|
||||
ver f@r
|
||||
virtu v@rtS%y //virtueel virtuose etc. fix v and t sounds and assure lack of stress
|
||||
_) ver (@P3 f@r
|
||||
verant (w f@r%ant // (on)verantwoordelik/-heid/verantwoording
|
||||
verende f'e@r@nd@
|
||||
@@ -2459,7 +2471,7 @@
|
||||
woe (styn v%u // move default stress: woestyn and compounds
|
||||
wolke vOlk@ // nimbuswolke/wolkekrabber
|
||||
woorde vo@rd@
|
||||
|
||||
w (yser v //padwyser and many others with wyser in compounds
|
||||
nt) w (A v
|
||||
|
||||
.group x
|
||||
@@ -2515,7 +2527,7 @@
|
||||
**
|
||||
**) * (_ _::
|
||||
|
||||
+ plus
|
||||
+ pl'Ws
|
||||
_) ++ (_ pluspl'us
|
||||
\+\+\+) + // ignore + after the first 3
|
||||
|
||||
|
||||
@@ -307,9 +307,9 @@ y Y yI yU
|
||||
* *; b b; c C d d;
|
||||
dZ f f; g h j k l
|
||||
l; m m; n N n; p p;
|
||||
r s S s; S; t t; tS
|
||||
ts ts; v v; w z Z z;
|
||||
Z;
|
||||
r s S S; t T t; tS
|
||||
ts ts; v v; w w2 x z
|
||||
Z z; Z;
|
||||
|
||||
|
||||
Dictionary is_dict
|
||||
|
||||
+3
-4
@@ -54,6 +54,8 @@ z zEd
|
||||
_cap k,ap@-t@L
|
||||
_?A lEt3
|
||||
_?? sImb@L
|
||||
_#9 tab
|
||||
_#32 speIs
|
||||
|
||||
_! Ekskl@m'eIS@n
|
||||
_" kwoUts
|
||||
@@ -135,6 +137,7 @@ _0M3 b'Ili@n
|
||||
_0and @n
|
||||
?3 _0and
|
||||
_dpt pOInt
|
||||
_roman roUm@n_
|
||||
|
||||
|
||||
// ABBREVIATIONS
|
||||
@@ -187,10 +190,6 @@ u.s ju:'Es
|
||||
wwii dVb@Lju:dVb@Lju:t'u:
|
||||
xy $abbrev
|
||||
|
||||
ii tu: $abbrev // roman numerals
|
||||
iii Tri: $abbrev
|
||||
iv fo@ $abbrev
|
||||
|
||||
|
||||
nd $only
|
||||
rd $only
|
||||
|
||||
+40
-38
@@ -3,43 +3,45 @@
|
||||
|
||||
|
||||
// numbers
|
||||
_0 TE*o
|
||||
_1 'uno
|
||||
_2 d'os
|
||||
_3 t@-*'es
|
||||
_4 kw'at@-*o
|
||||
_5 T'inko
|
||||
_6 s'eIs
|
||||
_7 sj'Ete
|
||||
_8 'otSo
|
||||
_9 nw'Eve
|
||||
_1X dj'ET
|
||||
_11 'onTe
|
||||
_12 d'oTe
|
||||
_13 t@-*'ETe
|
||||
_14 kat'oRTe
|
||||
_15 k'inTe
|
||||
_20 v'eInte
|
||||
_2X v'eInt
|
||||
_3X t@-*'eInta
|
||||
_4X kwa*'Enta
|
||||
_5X Tinkw'Enta
|
||||
_6X sEs'Enta
|
||||
_7X sEt'Enta
|
||||
_8X otS'Enta
|
||||
_9X nov'Enta
|
||||
_0C T'ientos
|
||||
_1C0 T'ien // exactly one hundred
|
||||
_1C T'iento
|
||||
_5C kinj'Entos
|
||||
_0M1 m'il
|
||||
_1M1 m'il // no '1' before thousand
|
||||
_0M2 mil^'ones
|
||||
_1M2 'unmil^'on
|
||||
_0M4 _bil^'ones
|
||||
_1M4 'unbil^'on
|
||||
_0and i
|
||||
_dpt koma
|
||||
_0 TE*o
|
||||
_1 'uno
|
||||
_2 d'os
|
||||
_3 t@-*'es
|
||||
_4 kw'at@-*o
|
||||
_5 T'inko
|
||||
_6 s'eIs
|
||||
_7 sj'Ete
|
||||
_8 'otSo
|
||||
_9 nw'Eve
|
||||
_1X dj'ET
|
||||
_11 'onTe
|
||||
_12 d'oTe
|
||||
_13 t@-*'ETe
|
||||
_14 kat'oRTe
|
||||
_15 k'inTe
|
||||
_20 v'eInte
|
||||
_2X v'eInt
|
||||
_3X t@-*'eInta
|
||||
_4X kwa*'Enta
|
||||
_5X Tinkw'Enta
|
||||
_6X sEs'Enta
|
||||
_7X sEt'Enta
|
||||
_8X otS'Enta
|
||||
_9X nov'Enta
|
||||
_0C T'ientos
|
||||
_1C0 T'ien // exactly one hundred
|
||||
_1C T'iento
|
||||
_5C kinj'Entos
|
||||
_7C s,EtETj'Entos
|
||||
_9C n,ovETj'Entos
|
||||
_0M1 m'il
|
||||
_1M1 m'il // no '1' before thousand
|
||||
_0M2 mil^'ones
|
||||
_1M2 'unmil^'on
|
||||
_0M4 _bil^'ones
|
||||
_1M4 'unbil^'on
|
||||
_0and i
|
||||
_dpt koma
|
||||
|
||||
|
||||
|
||||
@@ -101,7 +103,7 @@ os $u+
|
||||
|
||||
|
||||
// possessives
|
||||
mi $u+
|
||||
mi mi $u+
|
||||
mis $u+
|
||||
tu $u+
|
||||
tus $u+
|
||||
|
||||
+9
-5
@@ -1,12 +1,16 @@
|
||||
// translation rules
|
||||
// translation rules for Spanish
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
// Conditional rules
|
||||
// ?1 Castilian
|
||||
// ?2 Latin America
|
||||
|
||||
|
||||
.group a
|
||||
_) a (_ a
|
||||
a a
|
||||
ai aI
|
||||
ay aI
|
||||
ay (K aI
|
||||
ay (_ 'aI
|
||||
|
||||
|
||||
@@ -39,7 +43,7 @@
|
||||
e E
|
||||
e (_ e
|
||||
ei eI
|
||||
ey eI
|
||||
ey (K eI
|
||||
ey (_ 'eI
|
||||
_) eu eU
|
||||
|
||||
@@ -153,7 +157,7 @@
|
||||
|
||||
|
||||
.group v
|
||||
_) v (_ ve
|
||||
_) v (_ uve
|
||||
v v
|
||||
_) v v
|
||||
m) v v
|
||||
@@ -161,7 +165,7 @@
|
||||
|
||||
|
||||
.group w
|
||||
_) w (_ d'oBle,u
|
||||
_) w (_ ,uve||d'oBle
|
||||
w w
|
||||
|
||||
|
||||
|
||||
+1
-31
@@ -155,37 +155,7 @@ _0M4 b'ilijUna
|
||||
_1M4 b'ilijUn
|
||||
_dpt _:z'a*Ez_
|
||||
|
||||
// Roman numerals
|
||||
ii $abbrev
|
||||
iii $abbrev
|
||||
iv $abbrev
|
||||
vii $abbrev
|
||||
viii $abbrev
|
||||
ix $abbrev
|
||||
xi $abbrev
|
||||
xii $abbrev
|
||||
xiii $abbrev
|
||||
xiv $abbrev
|
||||
xvi $abbrev
|
||||
xvii $abbrev
|
||||
xviii $abbrev
|
||||
xix $abbrev
|
||||
xxi $abbrev
|
||||
xxii $abbrev
|
||||
xxiii $abbrev
|
||||
xxiv $abbrev
|
||||
xxvi $abbrev
|
||||
xxvii $abbrev
|
||||
xxviii $abbrev
|
||||
xxix $abbrev
|
||||
xxxi $abbrev
|
||||
xxxii $abbrev
|
||||
xxxiii $abbrev
|
||||
xxxiv $abbrev
|
||||
xxxvi $abbrev
|
||||
xxxvii $abbrev
|
||||
xxxviii $abbrev
|
||||
xxxix $abbrev
|
||||
|
||||
|
||||
// Abbreviations
|
||||
aaa $abbrev
|
||||
|
||||
+10
-28
@@ -63,34 +63,7 @@ u.n u:JnEvEzEt: $dot
|
||||
ú.n u:JnEvEzEt: $dot
|
||||
vö v'EZd||_'Yss2E
|
||||
|
||||
?1 i EJ $abbrev
|
||||
ii kEttY: $abbrev
|
||||
iii ha:R2om $abbrev
|
||||
iv ne:J $abbrev
|
||||
vi hAt $abbrev
|
||||
vii he:t $abbrev
|
||||
viii n^olts $abbrev
|
||||
ix kilEnts $abbrev
|
||||
xi tizEnEJ $abbrev
|
||||
xii tizEnkEttY: $abbrev
|
||||
xiii tizEnha:Rom $abbrev
|
||||
xiv tizEnne:J $abbrev
|
||||
xv tizEnYt $abbrev
|
||||
xvi tizEnhAt $abbrev
|
||||
xvii tizEnhe:t $abbrev
|
||||
xviii tizEnn^olts $abbrev
|
||||
xix tizEnkilEnts $abbrev
|
||||
xx hu:s $abbrev
|
||||
xxi husonEJ $abbrev
|
||||
xxii husonkEttY: $abbrev
|
||||
xxiii husonha:Rom $abbrev
|
||||
xxiv husonne:J $abbrev
|
||||
xxv husonYt $abbrev
|
||||
xxvi husonhAt $abbrev
|
||||
xxvii husonhe:t $abbrev
|
||||
xxviii husonn^olts $abbrev
|
||||
xxix husonkilEnts $abbrev
|
||||
xxx hARmints $abbrev
|
||||
?1 i EJ $abbrev // option for Roman number
|
||||
|
||||
|
||||
// Articles
|
||||
@@ -135,6 +108,8 @@ noha $u $pause // even thought
|
||||
nem $alt2 $strend
|
||||
ne $u+
|
||||
|
||||
e $u // "-e" question
|
||||
e $atend // stressed at end of sentence
|
||||
|
||||
// Unstressed adverbs prepositions etc.
|
||||
néhány $u+
|
||||
@@ -189,6 +164,8 @@ ről $u
|
||||
on $u // on
|
||||
en $u
|
||||
ön $u
|
||||
an $u // so many persons
|
||||
ón $u
|
||||
szor $u // times
|
||||
szer $u
|
||||
ször $u
|
||||
@@ -241,6 +218,9 @@ egyaránt $u // alike
|
||||
minden $u // all
|
||||
részben $u // partly
|
||||
|
||||
egyik $u // one of
|
||||
másik $u // the other
|
||||
|
||||
|
||||
// word pairs
|
||||
|
||||
@@ -341,5 +321,7 @@ $ dolla:R2
|
||||
// Main Exceptions List
|
||||
//=====================
|
||||
|
||||
nato na:to:
|
||||
|
||||
|
||||
|
||||
|
||||
+9
-7
@@ -6,14 +6,12 @@
|
||||
a A
|
||||
_) a (_ %A
|
||||
|
||||
!_n) ato a:to: // NATO
|
||||
|
||||
.group á
|
||||
á a:
|
||||
|
||||
.group b
|
||||
b b
|
||||
bb b:
|
||||
// bb b:
|
||||
|
||||
biz (A b'iz, // bizalmas etc.
|
||||
biedermeier bi:dER2ma:jER2
|
||||
@@ -59,7 +57,7 @@ hierar) ch (i C
|
||||
|
||||
.group d
|
||||
d d
|
||||
dd d:
|
||||
// dd d:
|
||||
dz dz
|
||||
A) dz (A d:z
|
||||
dzs dZ
|
||||
@@ -82,7 +80,6 @@ hierar) ch (i C
|
||||
|
||||
.group e
|
||||
e E
|
||||
|
||||
D_-_) es (_ %ES
|
||||
|
||||
.group é
|
||||
@@ -97,7 +94,7 @@ hierar) ch (i C
|
||||
|
||||
.group g
|
||||
g g
|
||||
gg g:
|
||||
// gg g:
|
||||
gy J
|
||||
ggy J:
|
||||
|
||||
@@ -109,7 +106,8 @@ hierar) ch (i C
|
||||
A) gyj (A J:
|
||||
|
||||
_e) gy (es J:
|
||||
_e) gy (et J:
|
||||
_e) gy (et_ J:
|
||||
_e) gy (etlen J:
|
||||
_e) gy (ik J:
|
||||
_e) gy (üt J:
|
||||
_minde) gy (ik J:
|
||||
@@ -135,6 +133,7 @@ _minde) gy (ik J:
|
||||
.group k
|
||||
k k
|
||||
kk k:
|
||||
kk (C kk
|
||||
_) köz kYz
|
||||
|
||||
.group l
|
||||
@@ -186,6 +185,7 @@ szamue) ly lli
|
||||
.group p
|
||||
p p
|
||||
pp p:
|
||||
pp (C pp
|
||||
p (v p_
|
||||
|
||||
_) potsdam potsda:m
|
||||
@@ -199,6 +199,7 @@ szamue) ly lli
|
||||
r R2
|
||||
rr RR
|
||||
rm R2_m
|
||||
r (cc R
|
||||
|
||||
_) richa (rd R2iCa:
|
||||
_) richá (rd R2iCa:
|
||||
@@ -232,6 +233,7 @@ _munká) s S
|
||||
-) t (_ t
|
||||
t t
|
||||
tt t:
|
||||
tt (C tt
|
||||
ty c
|
||||
// s) ty c: //
|
||||
// z) ty c: // keztyű
|
||||
|
||||
+2
-2
@@ -118,8 +118,8 @@ mi $u+
|
||||
ti $u+
|
||||
si $u+
|
||||
ci $u+
|
||||
vi $u+
|
||||
li $u+
|
||||
vi vi $u+
|
||||
li li $u+
|
||||
|
||||
|
||||
// words that double the following consonant
|
||||
|
||||
+34
-108
@@ -259,118 +259,44 @@ estote $u
|
||||
sunto $u
|
||||
|
||||
|
||||
// numerals 1-100
|
||||
// numerals
|
||||
|
||||
ii II // word, not numeric
|
||||
vi wI // word, not numeric
|
||||
|
||||
i 'u:nUs $capital
|
||||
ii d'UO $capital
|
||||
iii t@-*,e:s
|
||||
iv kw'at:UOR
|
||||
v kw'i:NkwE
|
||||
vi s,Eks $capital
|
||||
vii s'EptEm
|
||||
viii 'Okto:
|
||||
ix n'OwEm
|
||||
x d'EkEm
|
||||
|
||||
xi 'u:ndEkIm
|
||||
xii dU'OdEkIm
|
||||
xiii t@-*,e:d'EkIm
|
||||
xiv kwat:w'ORdEkIm
|
||||
xv kw,i:nd'EkIm
|
||||
xvi s'EdEkIm
|
||||
xvii sEpt'EndEkIm
|
||||
xviii dUOdEwIg'IntI
|
||||
xix u:ndEwIg'IntI
|
||||
xx wi:g'Inti:
|
||||
_0 n'Ulla
|
||||
_1 'u:nUs
|
||||
_2 d'UO
|
||||
_3 t@-*,e:s
|
||||
_4 kw'at:UOR
|
||||
_5 kw'i:NkwE
|
||||
_6 s,Eks
|
||||
_7 s'EptEm
|
||||
_8 'Okto:
|
||||
_9 n'OwEm
|
||||
_10 d'EkEm
|
||||
|
||||
xxi wi:g'Inti:||'u:nUs
|
||||
xxii wi:g'Inti:||d'UO
|
||||
xxiii wi:g'Inti:||t@-*,e:s
|
||||
xxiv wi:g'Inti:||kw'at:UOR
|
||||
xxv wi:g'Inti:||kw'i:NkwE
|
||||
xxvi wi:g'Inti:||s,Eks
|
||||
xxvii wi:g'Inti:||s'EptEm
|
||||
xxviii wi:g'Inti:||'Okto:
|
||||
xxix wi:g'Inti:||n'OwEm
|
||||
xxx t@-*i:g'Inta:
|
||||
|
||||
xxxi t@-*i:g'Inta:||'u:nUs
|
||||
xxxii t@-*i:g'Inta:||d'UO
|
||||
xxxiii t@-*i:g'Inta:||t@-*,e:s
|
||||
xxxiv t@-*i:g'Inta:||kw'at:UOR
|
||||
xxxv t@-*i:g'Inta:||kw'i:NkwE
|
||||
xxxvi t@-*i:g'Inta:||s,Eks
|
||||
xxxvii t@-*i:g'Inta:||s'EptEm
|
||||
xxxviii t@-*i:g'Inta:||'Okto:
|
||||
xxxix t@-*i:g'Inta:||n'OwEm
|
||||
xl kwad@-*a:g'Inta:
|
||||
|
||||
xli kwad@-*a:g'Inta:||'u:nUs
|
||||
xlii kwad@-*a:g'Inta:||d'UO
|
||||
xliii kwad@-*a:g'Inta:||t@-*,e:s
|
||||
xliv kwad@-*a:g'Inta:||kw'at:UOR
|
||||
xlv kwad@-*a:g'Inta:||kw'i:NkwE
|
||||
xlvi kwad@-*a:g'Inta:||s,Eks
|
||||
xlvii kwad@-*a:g'Inta:||s'EptEm
|
||||
xlviii kwad@-*a:g'Inta:||'Okto:
|
||||
xlix kwad@-*a:g'Inta:||n'OwEm
|
||||
l kwi:Nkwa:g'Inta:
|
||||
|
||||
li kwi:Nkwa:g'Inta:||'u:nUs $capital
|
||||
lii kwi:Nkwa:g'Inta:||d'UO
|
||||
liii kwi:Nkwa:g'Inta:||t@-*,e:s
|
||||
liv kwi:Nkwa:g'Inta:||kw'at:UOR
|
||||
lv kwi:Nkwa:g'Inta:||kw'i:NkwE
|
||||
lvi kwi:Nkwa:g'Inta:||s,Eks
|
||||
lvii kwi:Nkwa:g'Inta:||s'EptEm
|
||||
lviii kwi:Nkwa:g'Inta:||'Okto:
|
||||
lix kwi:Nkwa:g'Inta:||n'OwEm
|
||||
lx sEksa:g'Inta:
|
||||
|
||||
lxi sEksa:g'Inta:||'u:nUs
|
||||
lxii sEksa:g'Inta:||d'UO
|
||||
lxiii sEksa:g'Inta:||t@-*,e:s
|
||||
lxiv sEksa:g'Inta:||kw'at:UOR
|
||||
lxv sEksa:g'Inta:||kw'i:NkwE
|
||||
lxvi sEksa:g'Inta:||s,Eks
|
||||
lxvii sEksa:g'Inta:||s'EptEm
|
||||
lxviii sEksa:g'Inta:||'Okto:
|
||||
lxix sEksa:g'Inta:||n'OwEm
|
||||
lxx sEptUa:g'Inta: $capital
|
||||
|
||||
lxxi sEptUa:g'Inta:||'u:nUs
|
||||
lxxii sEptUa:g'Inta:||d'UO
|
||||
lxxiii sEptUa:g'Inta:||t@-*,e:s
|
||||
lxxiv sEptUa:g'Inta:||kw'at:UOR
|
||||
lxxv sEptUa:g'Inta:||kw'i:NkwE
|
||||
lxxvi sEptUa:g'Inta:||s,Eks
|
||||
lxxvii sEptUa:g'Inta:||s'EptEm
|
||||
lxxviii sEptUa:g'Inta:||'Okto:
|
||||
lxxix sEptUa:g'Inta:||n'OwEm
|
||||
lxxx Okto:g'Inta:
|
||||
|
||||
lxxxi Okto:g'Inta:||'u:nUs
|
||||
lxxxii Okto:g'Inta:||d'UO
|
||||
lxxxiii Okto:g'Inta:||t@-*,e:s
|
||||
lxxxiv Okto:g'Inta:||kw'at:UOR
|
||||
lxxxv Okto:g'Inta:||kw'i:NkwE
|
||||
lxxxvi Okto:g'Inta:||s,Eks
|
||||
lxxxvii Okto:g'Inta:||s'EptEm
|
||||
lxxxviii Okto:g'Inta:||'Okto:
|
||||
lxxxix Okto:g'Inta:||n'OwEm
|
||||
xc no:na:g'Inta:
|
||||
|
||||
xci no:na:g'Inta:||'u:nUs
|
||||
xcii no:na:g'Inta:||d'UO
|
||||
xciii no:na:g'Inta:||t@-*,e:s
|
||||
xciv no:na:g'Inta:||kw'at:UOR
|
||||
xcv no:na:g'Inta:||kw'i:NkwE
|
||||
xcvi no:na:g'Inta:||s,Eks
|
||||
xcvii no:na:g'Inta:||s'EptEm
|
||||
xcviii no:na:g'Inta:||'Okto:
|
||||
xcix no:na:g'Inta:||n'OwEm
|
||||
c k'EntUm
|
||||
|
||||
// This list could be expanded further, however programming
|
||||
// the pronunciation would be more efficient.
|
||||
_11 'u:ndEkIm
|
||||
_12 dU'OdEkIm
|
||||
_13 t@-*,e:d'EkIm
|
||||
_14 kwat:w'ORdEkIm
|
||||
_15 kw,i:nd'EkIm
|
||||
_16 s'EdEkIm
|
||||
_17 sEpt'EndEkIm
|
||||
_18 dUOdEwIg'IntI
|
||||
_19 u:ndEwIg'IntI
|
||||
|
||||
_2X wi:g'Inti:
|
||||
_3X t@-*i:g'Inta:
|
||||
_4X kwad@-*a:g'Inta:
|
||||
_5X kwi:Nkwa:g'Inta:
|
||||
_6X sEksa:g'Inta:
|
||||
_7X sEptUa:g'Inta:
|
||||
_8X Okto:g'Inta:
|
||||
_9X no:na:g'Inta:
|
||||
_0C k'EntUm
|
||||
_0M1 m'IllE
|
||||
|
||||
+26
-26
@@ -28,6 +28,11 @@ _õ ,otS'iU
|
||||
_ú ,u&g'udU
|
||||
_ü ,utR'em&
|
||||
|
||||
i i // speak i v x as letters, not Roman numbers
|
||||
v ve
|
||||
x Sis#
|
||||
|
||||
|
||||
_cap maI'uskulU
|
||||
_?A l'etR&
|
||||
_?? s'imbolU
|
||||
@@ -80,23 +85,23 @@ _" 'abRi;'asp&||d'upl&s#
|
||||
// numeric
|
||||
//********
|
||||
|
||||
?1_0 z'Eru
|
||||
?2_0 z'E*U
|
||||
?1_1 'um
|
||||
?2_1 'uN
|
||||
_2 d'oIs#
|
||||
?1 _0 z'Eru
|
||||
?2 _0 z'E*U
|
||||
?1 _1 'um
|
||||
?2 _1 'uN
|
||||
_2 d'oIs#
|
||||
?1 _3 tr'es#
|
||||
?2 _3 tR'es#
|
||||
?1 _4 kw'atru
|
||||
?2 _4 kw'atRu
|
||||
_5 s'iNku
|
||||
_6 s'eIs#
|
||||
?1_7 s'Ety
|
||||
?2_7 s'EtSi
|
||||
_8 'oItu
|
||||
?1_9 n'Ovy
|
||||
?2_9 n'Ovi
|
||||
10 d'Es#
|
||||
_5 s'iNku
|
||||
_6 s'eIs#
|
||||
?1 _7 s'Ety
|
||||
?2 _7 s'EtSi
|
||||
_8 'oItu
|
||||
?1 _9 n'Ovy
|
||||
?2 _9 n'Ovi
|
||||
_10 d'Es#
|
||||
|
||||
?1_11 'oNzy
|
||||
?2_11 'oNzi
|
||||
@@ -200,20 +205,15 @@ ue $abbrev
|
||||
unts $abbrev
|
||||
usb $abbrev
|
||||
|
||||
// roman numerals
|
||||
?1 ii d'oIs# $abbrev
|
||||
?1 iii tr'es# $abbrev
|
||||
?1 iv kw'atru $abbrev
|
||||
|
||||
|
||||
dr $dot
|
||||
dra $dot
|
||||
mr $dot
|
||||
mrs $dot
|
||||
prof pr'Of $dot
|
||||
sr $dot
|
||||
?1 sra ,Es;'Errj'a $dot
|
||||
?2 sra $dot
|
||||
dr $dot
|
||||
dra $dot
|
||||
mr $dot
|
||||
mrs $dot
|
||||
prof pr'Of $dot
|
||||
sr $dot
|
||||
?1 sra ,Es;'Errj'a $dot
|
||||
?2 sra $dot
|
||||
|
||||
// articles
|
||||
o $u+
|
||||
|
||||
@@ -603,7 +603,6 @@
|
||||
únh ''u~n^
|
||||
|
||||
.group v
|
||||
_) v (_ ve
|
||||
v v
|
||||
v (v
|
||||
|
||||
@@ -616,7 +615,6 @@
|
||||
|
||||
|
||||
.group x
|
||||
_) x (_ Sis#
|
||||
x (A S
|
||||
A) x (A ks
|
||||
_e) x (A z
|
||||
|
||||
+1149
-217
File diff suppressed because it is too large
Load Diff
+184
-81
@@ -1,8 +1,10 @@
|
||||
|
||||
// translation rules for Romanian
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
|
||||
|
||||
|
||||
.group a
|
||||
a a
|
||||
ai aI
|
||||
@@ -11,52 +13,58 @@
|
||||
au (_ 'aU
|
||||
a (AAA a
|
||||
&) a (_S1q a
|
||||
|
||||
gi) a (_S1q 'a
|
||||
V@) a (_ 'a
|
||||
V@) a (N_ 'a
|
||||
ăi) a (_ 'a
|
||||
@) abil (_ 'abil
|
||||
_) anti (@P4 anti
|
||||
@) ale (_ 'ale
|
||||
@ion) a (_ 'a
|
||||
|
||||
|
||||
.group ă
|
||||
ă @
|
||||
ăi @I
|
||||
ăi (_ @I
|
||||
ău @U // ?? only at end of word ??
|
||||
ău (_ @U
|
||||
|
||||
ăi (m_ @'i
|
||||
ăi (t_ @'i
|
||||
ăi (ţi_ @'i
|
||||
|
||||
|
||||
ăi (te @'i
|
||||
ăi (n_ @'i
|
||||
ăi (na_ @'i
|
||||
ăi (ni_ @'i
|
||||
ăi (ne_ @'i
|
||||
ău (_ '@U
|
||||
@) ăte (_S3t @te
|
||||
@) ătă (_S3t @t@
|
||||
@) ătul (_S4t @tul
|
||||
@) ătele (_S5t @tele
|
||||
@) ătului (_S6t @tuluI
|
||||
@) ătelor (_S6t @telor
|
||||
&) ă (_S1 @
|
||||
&ec) ă (_ @
|
||||
@ăC) ă (_ @
|
||||
@er) ă (_ @
|
||||
@iţ) ă (_ @
|
||||
@) ă (Că_ =@
|
||||
ări (A_ @*'i
|
||||
ării (_ @*'iI
|
||||
ări (AA_ @*'i
|
||||
@) ăt (_S2t @t
|
||||
@) ătă (_S3t @t@
|
||||
@) ătul (_S4t @tul
|
||||
@) ătele (_S5t @tele
|
||||
@) ătului (_S6t @tuluI
|
||||
@) ătelor (_S6t @telor
|
||||
@) ăie (_ =@Ie
|
||||
|
||||
|
||||
.group â
|
||||
â y
|
||||
âi yI
|
||||
âu yU
|
||||
@) âie (_ =yIe
|
||||
|
||||
|
||||
.group b
|
||||
b b
|
||||
@) b (i_ b;
|
||||
bb b
|
||||
|
||||
@) b (i_ b;
|
||||
@) b (il_ =b
|
||||
@) b (ila_ =b
|
||||
@) b (ili_ =b
|
||||
@) b (ilii_ =b
|
||||
@) b (ilului_ =b
|
||||
@) b (ililor_ =b
|
||||
@) b (ilile_ =b
|
||||
mo) bil (_ b'il
|
||||
|
||||
|
||||
@@ -70,55 +78,70 @@
|
||||
@@) col (_ =kol
|
||||
@@) coli (_S1t =I^
|
||||
@@) cole (_S1t e
|
||||
|
||||
|
||||
@) cni (_ kn'i
|
||||
@) cnea (_ kne'a
|
||||
|
||||
|
||||
.group d
|
||||
d d
|
||||
dd d
|
||||
@) d (i_ d;
|
||||
|
||||
|
||||
.group e
|
||||
e e
|
||||
ei eI
|
||||
// eu eU // only at end of word ??
|
||||
// eu e[u // ??
|
||||
_) ei eI
|
||||
ei (_ eI
|
||||
// eu eU // only at end of word ??
|
||||
// eu e[u // ??
|
||||
eu (_ 'eU
|
||||
ea ea
|
||||
&) ea (_S2q ea
|
||||
&) eSi eaj
|
||||
eau eaw
|
||||
|
||||
eo eo
|
||||
eoa eO'a
|
||||
|
||||
e (AAA e
|
||||
@) eş (_ =eS
|
||||
|
||||
@) eşul (_ =eSul
|
||||
@) eşi (_ =eSI^
|
||||
@) eşului (_ =eSuluI
|
||||
@) eşilor (_ =eSilor
|
||||
|
||||
@) ec (a_ =ek
|
||||
@) ec (ă_ =ek
|
||||
@) ec (ii_ =ek
|
||||
@) ec (ile_ =ek
|
||||
@) ec (ilor_ =ek
|
||||
@At) ec (i@_ etS
|
||||
@At) ec (A_ ek
|
||||
@At) ec (ii_ eTtS
|
||||
// &) es (_S1q e
|
||||
&C) e (re_ %e
|
||||
_ac) ee (a eI
|
||||
|
||||
r) ei (er_ 'eI
|
||||
|
||||
@) e (re_ =e
|
||||
@) e (ri_ =e
|
||||
@) e (rea_ =e
|
||||
@) e (rii_ =e
|
||||
i) e (re_ e
|
||||
i) e (ri_ e
|
||||
i) e (rii_ e
|
||||
i) e (rea_ e
|
||||
|
||||
_ac) ee (a eI
|
||||
r) ei (er_ 'eI
|
||||
|
||||
@) eş (_ =eS
|
||||
|
||||
@) eşul (_ =eSul
|
||||
@) eşi (_ =eSI^
|
||||
@) eşului (_ =eSuluI
|
||||
@) eşilor (_ =eSilor
|
||||
// &) es (_S1q e
|
||||
|
||||
@) e (ra_ =e
|
||||
@) e (ră_ =e
|
||||
@f) e (ra_ e
|
||||
@f) e (ra_ e
|
||||
i) e (ră_ e
|
||||
i) e (ra_ e
|
||||
eoa eO'a
|
||||
|
||||
|
||||
.group f
|
||||
f f
|
||||
ff f
|
||||
@) f (i_ f;
|
||||
|
||||
|
||||
@@ -138,22 +161,48 @@
|
||||
.group i
|
||||
i i
|
||||
i (A j
|
||||
|
||||
@) i (e_ j
|
||||
&C) i (_N$1q i/
|
||||
&) i (_N$1q i
|
||||
&) i (-N$1q i // don't reduce to [I^] if a hyphen follows
|
||||
|
||||
ţ) i (-Că i
|
||||
ţ) i (-Ci i
|
||||
|
||||
ţ) i (-l i
|
||||
ţ) i (-ne i
|
||||
&') i (_ i
|
||||
ţi-) i (_ _ // combined with previous word as [iI]
|
||||
Cr) i (_ i
|
||||
V&) i (_ 'i // verb
|
||||
V&) i (N_ 'i // verb
|
||||
ăC) ia (_ 'ia
|
||||
âC) ia (_ 'ia
|
||||
|
||||
ăC) ie (_ 'ie
|
||||
âC) ie (_ 'ie
|
||||
@) ie (_S1q ie
|
||||
|
||||
g) i (ne_ =i
|
||||
g) i (nea_ =i
|
||||
c) i (uC
|
||||
cţ) ie (_ =ie
|
||||
cţ) iei (_ =ieI
|
||||
cţ) ia (_ =ja
|
||||
graf) ie (_ 'ie
|
||||
graf) ia (_ 'ia
|
||||
graf) iei (_ 'ieI
|
||||
graf) ii (_ 'iI
|
||||
scop) ie (_ 'ie
|
||||
scop) ia (_ 'ia
|
||||
scop) iei (_ ieI
|
||||
scop) ii (_ 'iI
|
||||
er) ia (_ 'ia
|
||||
er) iei (_ 'ieI
|
||||
on) ie (_ 'ie
|
||||
on) ia (_ 'ia
|
||||
on) iei (_ 'ieI
|
||||
uş) ie (_ 'ie
|
||||
uş) ia (_ 'ia
|
||||
uş) iei (_ 'ieI
|
||||
// @) ie (_S1q ie
|
||||
|
||||
iei (_ 'ieI
|
||||
ii iI
|
||||
@@ -163,15 +212,26 @@
|
||||
iu ju
|
||||
|
||||
&) ic (_ =ik
|
||||
&) ica (_ =ika
|
||||
&) ice (_ =itSe
|
||||
&) icile (_ =itSile
|
||||
&) icile (_ =itSile
|
||||
&) icilor (_ =itSilor
|
||||
@) icii (_ =itSiI
|
||||
|
||||
scr) i (e 'i
|
||||
&) ing (_ %iNg // foreign words
|
||||
|
||||
i (t_ 'i
|
||||
ioa iO'a
|
||||
ioa iO'a
|
||||
|
||||
@) işte (_ =iSte
|
||||
@) iştea (_ =iStea
|
||||
@) i (ţă_++++++++ =i
|
||||
@) i (ţe_ =i
|
||||
@) i (ţei_ =i
|
||||
@) i (ţelor_ =i
|
||||
-) i (_ j
|
||||
@) i (ţele_ =i
|
||||
|
||||
|
||||
.group î
|
||||
@@ -190,6 +250,7 @@
|
||||
|
||||
.group l
|
||||
l l
|
||||
ll l
|
||||
@) l (i_ l;
|
||||
_) l (_ le
|
||||
-) l (_ l // -l
|
||||
@@ -205,6 +266,7 @@
|
||||
.group m
|
||||
_) m (_ me
|
||||
m m
|
||||
mm m
|
||||
@) m (i_ m;
|
||||
_) m (-a m
|
||||
|
||||
@@ -220,69 +282,75 @@
|
||||
@) n (tic_ =n
|
||||
@) n (ic_ =n
|
||||
_) n (-a n
|
||||
-) n (_ n
|
||||
|
||||
-) n (_ n
|
||||
@itudi) ne (_S2t ne
|
||||
@itudi) nea (_S3t nea
|
||||
@itudi) nii (_S3t niI
|
||||
@itudi) ni (_S2t ni
|
||||
@itudi) nile (_S4t nile
|
||||
@itudi) nilor (_S5t nilor
|
||||
|
||||
|
||||
.group o
|
||||
o o
|
||||
oa Oa
|
||||
oai Oaj
|
||||
oi oI
|
||||
_) oi oI
|
||||
oi (_ 'oI
|
||||
ou oU
|
||||
ou (_ 'oU
|
||||
o (AAA o
|
||||
|
||||
@) oi (t_ o'i
|
||||
@) oi (tă_ o'i
|
||||
@) oi (ţi_ o'i
|
||||
@) oi (te_ o'i
|
||||
|
||||
|
||||
.group p
|
||||
p p
|
||||
pp p
|
||||
@) p (i_ p;
|
||||
|
||||
|
||||
|
||||
.group q
|
||||
q k
|
||||
qu kw
|
||||
|
||||
|
||||
.group r
|
||||
r r
|
||||
A) r (A *
|
||||
C) r (A @-*
|
||||
rr *r
|
||||
A) r (i_ *;
|
||||
r r
|
||||
rr r
|
||||
A) r (A *
|
||||
C) r (A @-*
|
||||
rr *r
|
||||
A) r (i_ *;
|
||||
|
||||
_) re (@P2v re
|
||||
_) re (gul re
|
||||
@u) ri (_NS2t rI^
|
||||
_) re (@P2T re
|
||||
_) re (gul re
|
||||
@u) ri (_NS2t rI^
|
||||
C) ri (_ @-*i
|
||||
@u) rii (_S3t riI
|
||||
@u) rile (_S4t rile
|
||||
@) rilor (_S5t rilor
|
||||
@u) rilor (_S5t rilor
|
||||
|
||||
C) ri (_ @-*i
|
||||
@) răm (_S1t m
|
||||
@) răţi (_S4t *@tsI^
|
||||
@u) re (_S2t *e
|
||||
|
||||
|
||||
.group s
|
||||
_) s (_ se
|
||||
_) s (-a s
|
||||
s s
|
||||
@) s (i_ s;
|
||||
-) s (_ s
|
||||
sh S
|
||||
ss s
|
||||
|
||||
&) sprezece (_S8t sp@-*ez,etSe
|
||||
|
||||
@) sem (_S1t m
|
||||
@) seră (_S2t *@
|
||||
@) serăm (_S3t *@m
|
||||
@) serăm (_S3t *@m
|
||||
@) serăţi (_S4t *@tsI^
|
||||
@) seşi (_S2t SI^
|
||||
@) sni (_ sn'i
|
||||
@) sni (_ sn'i
|
||||
|
||||
|
||||
.group ş
|
||||
@@ -298,6 +366,10 @@
|
||||
tt (_ t
|
||||
@) t (i_ t;
|
||||
|
||||
ts ts
|
||||
tz ts
|
||||
tt t
|
||||
|
||||
|
||||
.group ţ
|
||||
ţ ts
|
||||
@@ -314,19 +386,34 @@
|
||||
.group u
|
||||
u u
|
||||
u (A w
|
||||
ui uI
|
||||
_) ui uI
|
||||
ui (_ uI
|
||||
ui (e wi
|
||||
V&) ui (_ u'i
|
||||
ui (m_ u'i
|
||||
ui (t_ u'i
|
||||
ui (ţi_ u'i
|
||||
ui (se_ u'i
|
||||
&) ul (_S2t ul
|
||||
V&) ui (_N u'i
|
||||
|
||||
@ic) ul (_S2 ul
|
||||
@ic) uri (_S3 urI^
|
||||
&) ul (_S2t ul
|
||||
@ic) ul (_S2t ul
|
||||
@ic) ule (_S3t ule
|
||||
@ic) ului (_S4t uluI
|
||||
@ic) uri (_S3 urI^
|
||||
@ic) urile (_S5 urile
|
||||
|
||||
&) ului (_S4t uluI
|
||||
@) us (_S2t us
|
||||
@) usul (_S4t usul
|
||||
@) usuri (_S5t usuri
|
||||
@) usului (_S6t usuluI
|
||||
@) usurile (_SS´7t usurile
|
||||
@) usurilor (_S8t usurilor
|
||||
@ăC) u (N_ 'u
|
||||
@) um (_S2t um
|
||||
@) umul (_S4t umul
|
||||
@) umului (_S6t umuluI
|
||||
@) umuri (_S5t umuri
|
||||
@) umurile (_S7t umurile
|
||||
@) umurilor (_S8t umurilor
|
||||
c) um (_ um
|
||||
@) uie (_ =wie
|
||||
|
||||
|
||||
.group v
|
||||
@@ -342,10 +429,17 @@
|
||||
x ks
|
||||
A) x (A gz
|
||||
ma) x (i ks
|
||||
e) x (e ks
|
||||
cone) x (iu ks
|
||||
i) x (e ks
|
||||
o) x (e ks // boxele
|
||||
u) x (a ks
|
||||
a) x (a ks
|
||||
a) x (ă ks
|
||||
a) x (e ks
|
||||
i) x (a ks
|
||||
o) x (a ks
|
||||
A) x (â ks
|
||||
@) x (ibil ks
|
||||
o) x (i ks // oxigen
|
||||
a) x (ia ks // axial
|
||||
ale) x ks
|
||||
@@ -359,15 +453,22 @@
|
||||
|
||||
.group z
|
||||
z z
|
||||
zz z
|
||||
@) z (i_ z;
|
||||
|
||||
|
||||
|
||||
.group
|
||||
ö Y
|
||||
|
||||
% protSent
|
||||
D_) % la_sut@
|
||||
% p@-*otSent
|
||||
$ dolar
|
||||
+ plus
|
||||
& ampersand
|
||||
© k'apiraIt
|
||||
@ a*'ond
|
||||
/ sleS
|
||||
€ 'eU*o
|
||||
° g@-*ade
|
||||
|
||||
, (D v'irgul@
|
||||
|
||||
@@ -384,3 +485,5 @@
|
||||
*) * (*
|
||||
**
|
||||
**) * (_ _::
|
||||
|
||||
|
||||
|
||||
+6
-4
@@ -6,24 +6,26 @@
|
||||
0 r/ NULL 0 r
|
||||
0 r- NULL 0 r
|
||||
0 g- NULL 0 NULL
|
||||
0 w/ NULL 0 w
|
||||
0 w NULL 0 u
|
||||
0 w/ NULL 0 u
|
||||
0 * NULL 0 r
|
||||
0 ; NULL 0 NULL
|
||||
0 a e 15 a _
|
||||
0 a NULL 0 a
|
||||
0 @- NULL 0 NULL
|
||||
0 j/ NULL 0 j
|
||||
0 I^ _ 0 I
|
||||
0 I^ NULL 20 I _
|
||||
0 @U NULL 60 @ w
|
||||
0 aU NULL 60 a w
|
||||
0 eU NULL 60 e w
|
||||
0 eU NULL 80 e u
|
||||
0 iU NULL 60 i w
|
||||
0 yU NULL 60 l w
|
||||
0 yU NULL 60 1 w
|
||||
0 oU NULL 60 o w
|
||||
0 @I NULL 60 @ j
|
||||
0 iI NULL 60 i j
|
||||
0 aI NULL 60 a j
|
||||
0 eI NULL 60 e j
|
||||
0 eI NULL 100 e i
|
||||
0 oI NULL 60 o j
|
||||
0 uI NULL 60 u j
|
||||
0 yI NULL 60 1 j
|
||||
|
||||
@@ -154,7 +154,7 @@ phoneme 3:
|
||||
vowel starttype (@) endtype (@)
|
||||
length 230
|
||||
formants vwl_en_us/3_us
|
||||
reduceto @ 0
|
||||
// reduceto @ 0
|
||||
linkout r-
|
||||
endphoneme
|
||||
|
||||
|
||||
+78
-3
@@ -51,13 +51,18 @@ int Translator::TranslateLetter(char *word, char *phonemes, int control)
|
||||
char capital[20];
|
||||
char ph_buf[30];
|
||||
char ph_buf2[50];
|
||||
static char single_letter[8] = {0};
|
||||
static char single_letter[10] = {0,0};
|
||||
|
||||
ph_buf[0] = 0;
|
||||
capital[0] = 0;
|
||||
|
||||
n_bytes = utf8_in(&letter,word,0);
|
||||
|
||||
if((letter & 0xfff00) == 0x0e000)
|
||||
{
|
||||
letter &= 0xff; // uncode private usage area
|
||||
}
|
||||
|
||||
if(control > 2)
|
||||
{
|
||||
// include CAPITAL information
|
||||
@@ -68,8 +73,17 @@ int Translator::TranslateLetter(char *word, char *phonemes, int control)
|
||||
}
|
||||
letter = towlower(letter);
|
||||
|
||||
if((letter <= 32) || iswspace(letter))
|
||||
{
|
||||
// lookup space as _&32 etc.
|
||||
sprintf(&single_letter[1],"_#%d ",letter);
|
||||
Lookup(&single_letter[1],ph_buf);
|
||||
strcat(phonemes,ph_buf);
|
||||
return(n_bytes);
|
||||
}
|
||||
|
||||
len = utf8_out(letter,&single_letter[2]);
|
||||
single_letter[2+len] = ' ';
|
||||
single_letter[len+2] = ' ';
|
||||
|
||||
next = RULE_SPELLING;
|
||||
if(word[n_bytes] == ' ')
|
||||
@@ -186,6 +200,67 @@ void Translator::SetSpellingStress(char *phonemes, int control)
|
||||
|
||||
|
||||
|
||||
int Translator::TranslateRoman(char *word, char *ph_out)
|
||||
{//=====================================================
|
||||
int c;
|
||||
char *p;
|
||||
int acc;
|
||||
int prev;
|
||||
int value;
|
||||
int subtract;
|
||||
unsigned int flags;
|
||||
char number_chars[N_WORD_BYTES];
|
||||
|
||||
static char *roman_numbers = "ixcmvld";
|
||||
static int roman_values[] = {1,10,100,1000,5,50,500};
|
||||
|
||||
if((langopts.numbers & NUM_ROMAN) == 0)
|
||||
return(0);
|
||||
|
||||
acc = 0;
|
||||
prev = 0;
|
||||
subtract = 0x7fff;
|
||||
|
||||
while((c = *word++) != ' ')
|
||||
{
|
||||
if((p = strchr(roman_numbers,c)) == NULL)
|
||||
return(0);
|
||||
|
||||
value = roman_values[p - roman_numbers];
|
||||
|
||||
if((prev==5) || (prev==50) || (prev==500))
|
||||
{
|
||||
if(value >= prev)
|
||||
return(0);
|
||||
}
|
||||
if((prev != 0) && (prev < value))
|
||||
{
|
||||
if(((acc % 10) != 0) || ((prev*10) < value))
|
||||
return(0);
|
||||
subtract = prev;
|
||||
value -= subtract;
|
||||
}
|
||||
else
|
||||
if(value >= subtract)
|
||||
return(0);
|
||||
else
|
||||
acc += prev;
|
||||
prev = value;
|
||||
}
|
||||
acc += prev;
|
||||
if(acc < 2)
|
||||
return(0);
|
||||
|
||||
if(acc > langopts.max_roman)
|
||||
return(0);
|
||||
|
||||
Lookup("_roman",ph_out); // precede by "roman" if _rom is defined in *_list
|
||||
p = &ph_out[strlen(ph_out)];
|
||||
|
||||
sprintf(number_chars," %d ",acc);
|
||||
TranslateNumber(&number_chars[1],p,&flags,0);
|
||||
return(1);
|
||||
} // end of TranslateRoman
|
||||
|
||||
|
||||
int Translator::LookupNum2(int value, int control, char *ph_out)
|
||||
@@ -589,7 +664,7 @@ int Translator::TranslateNumber_1(char *word, char *ph_out, unsigned int *flags,
|
||||
{
|
||||
if((thousandplex > 0) && (value < 1000))
|
||||
{
|
||||
if(langopts.numbers & 0x40000)
|
||||
if(langopts.numbers2 & 0x100)
|
||||
{
|
||||
if((thousandplex == 1) && (value >= 100))
|
||||
{
|
||||
|
||||
@@ -1546,6 +1546,10 @@ f_input = f_in; // for GetC etc
|
||||
c1 = j;
|
||||
}
|
||||
}
|
||||
if((sayas_mode == 0x14) && (c1 <= 0x20))
|
||||
{
|
||||
c1 += 0xe000; // move into unicode private usage area
|
||||
}
|
||||
}
|
||||
else
|
||||
if(c1 == '<')
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.27.05 05.Jul.07";
|
||||
const char *version_string = "1.27.06 07.Jul.07";
|
||||
const int version_phdata = 0x012701;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
+1
-2
@@ -44,8 +44,7 @@ Translator_English::Translator_English() : Translator()
|
||||
langopts.stress_rule = 0;
|
||||
langopts.word_gap = 0;
|
||||
|
||||
langopts.numbers = 0x41;
|
||||
|
||||
langopts.numbers = 0x41 + NUM_ROMAN;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+14
-10
@@ -122,7 +122,7 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.param[LOPT_PREFIXES] = 1;
|
||||
memcpy(tr->stress_lengths,stress_lengths_de,sizeof(tr->stress_lengths));
|
||||
|
||||
tr->langopts.numbers = 0x11c19;
|
||||
tr->langopts.numbers = 0x11c19 + NUM_ROMAN;
|
||||
SetLetterVowel(tr,'y');
|
||||
}
|
||||
break;
|
||||
@@ -213,7 +213,7 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels
|
||||
|
||||
tr->langopts.numbers = 0x529;
|
||||
tr->langopts.numbers = 0x529 + NUM_ROMAN;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -271,7 +271,8 @@ Translator *SelectTranslator(const char *name)
|
||||
|
||||
tr->langopts.stress_rule = 6; // stress on last heaviest syllable
|
||||
tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable
|
||||
tr->langopts.numbers = 0x811 + 0x40000;
|
||||
tr->langopts.numbers = 0x811;
|
||||
tr->langopts.numbers2 = 0x100;
|
||||
tr->letter_bits_offset = OFFSET_DEVANAGARI;
|
||||
tr->langopts.replace_chars = replace_chars_hi;
|
||||
tr->langopts.replacement_chars = replacement_chars_hi;
|
||||
@@ -302,7 +303,7 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.max_initial_consonants = 5;
|
||||
tr->langopts.spelling_stress = 1;
|
||||
|
||||
tr->langopts.numbers = 0x1c0d + 0x4000;
|
||||
tr->langopts.numbers = 0x1c0d + 0x4000 + NUM_ROMAN;
|
||||
tr->langopts.numbers2 = 0x4a; // variant numbers before thousands,milliards
|
||||
tr->langopts.replace_chars = replace_cyrillic;
|
||||
tr->langopts.replacement_chars = replace_cyrillic_latin;
|
||||
@@ -336,7 +337,7 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word
|
||||
tr->langopts.long_stop = 130;
|
||||
|
||||
tr->langopts.numbers = 0x1809;
|
||||
tr->langopts.numbers = 0x1809 + NUM_ROMAN;
|
||||
SetLetterVowel(tr,'y');
|
||||
tr->langopts.spelling_stress = 1;
|
||||
//SetLengthMods(tr,3); // all equal
|
||||
@@ -384,7 +385,7 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.param[LOPT_IT_DOUBLING] = 2; // double the first consonant if the previous word ends in a stressed vowel
|
||||
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels
|
||||
tr->langopts.param[LOPT_REDUCE] = 1; // reduce vowels even if phonemes are specified in it_list
|
||||
tr->langopts.numbers = 0x2709 + 0x800;
|
||||
tr->langopts.numbers = 0x2709 + 0x800 + NUM_ROMAN;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -397,6 +398,8 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_DIERESES] = 1;
|
||||
tr->langopts.numbers = 0x1 + NUM_ROMAN;
|
||||
tr->langopts.max_roman = 5000;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -483,7 +486,7 @@ Translator *SelectTranslator(const char *name)
|
||||
// tr->langopts.vowel_pause = 1;
|
||||
tr->langopts.stress_rule = 3; // stress on final syllable
|
||||
tr->langopts.stress_flags = 0x6 | 0x10 | 0x20000;
|
||||
tr->langopts.numbers = 0xa69 + 0x2000;
|
||||
tr->langopts.numbers = 0xa69 + 0x2000 + NUM_ROMAN;
|
||||
tr->punct_to_tone[0][3] = 2; // use exclamation intonation
|
||||
SetLetterVowel(tr,'y');
|
||||
}
|
||||
@@ -505,7 +508,7 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->charset_a0 = charsets[2]; // ISO-8859-2
|
||||
tr->langopts.replace_chars = replace_chars_ro;
|
||||
tr->langopts.replacement_chars = replacement_chars_ro;
|
||||
tr->langopts.numbers = 0x1829+0x6000;
|
||||
tr->langopts.numbers = 0x1829+0x6000 + NUM_ROMAN;
|
||||
tr->langopts.numbers2 = 0x1e; // variant numbers before all thousandplex
|
||||
}
|
||||
break;
|
||||
@@ -576,7 +579,8 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.stress_rule = 2;
|
||||
tr->langopts.stress_flags = 0x6 | 0x10;
|
||||
|
||||
tr->langopts.numbers = 0x408e1;
|
||||
tr->langopts.numbers = 0x8e1;
|
||||
tr->langopts.numbers2 = 0x100;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -942,7 +946,7 @@ Translator_Afrikaans::Translator_Afrikaans() : Translator()
|
||||
langopts.param[LOPT_PREFIXES] = 1;
|
||||
SetLetterVowel(this,'y'); // add 'y' to vowels
|
||||
|
||||
langopts.numbers = 0x0d1;
|
||||
langopts.numbers = 0x0d1 + NUM_ROMAN;
|
||||
memcpy(stress_lengths,stress_lengths2,sizeof(stress_lengths));
|
||||
}
|
||||
|
||||
|
||||
+14
-3
@@ -438,6 +438,7 @@ Translator::Translator()
|
||||
langopts.length_mods0 = length_mods_en0;
|
||||
langopts.long_stop = 100;
|
||||
|
||||
langopts.max_roman = 49;
|
||||
langopts.thousands_sep = ',';
|
||||
langopts.decimal_sep = '.';
|
||||
|
||||
@@ -667,7 +668,13 @@ if((wmark > 0) && (wmark < 8))
|
||||
found = TranslateNumber(word,phonemes,&dictionary_flags,wflags);
|
||||
}
|
||||
|
||||
if((wflags & FLAG_ALL_UPPER) && (clause_upper_count <= clause_lower_count) &&
|
||||
if(!found & ((word_flags & FLAG_UPPERS) != FLAG_FIRST_UPPER))
|
||||
{
|
||||
// either all upper or all lower case
|
||||
found = TranslateRoman(word,phonemes);
|
||||
}
|
||||
|
||||
if(!found && (wflags & FLAG_ALL_UPPER) && (clause_upper_count <= clause_lower_count) &&
|
||||
!(dictionary_flags & (FLAG_ABBREV | FLAG_SKIPWORDS)) && (word_length>1) && (word_length<4) && iswalpha(first_char))
|
||||
{
|
||||
// An upper case word in a lower case clause. This could be an abbreviation.
|
||||
@@ -1635,6 +1642,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_
|
||||
int phoneme_mode = 0;
|
||||
int dict_flags; // returned from dictionary lookup
|
||||
int word_flags; // set here
|
||||
int next_word_flags;
|
||||
int embedded_count = 0;
|
||||
int letter_count = 0;
|
||||
char *word;
|
||||
@@ -1715,6 +1723,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_
|
||||
word_count = 0;
|
||||
single_quoted = 0;
|
||||
word_flags = 0;
|
||||
next_word_flags = 0;
|
||||
expect_verb=0;
|
||||
expect_past=0;
|
||||
expect_verb_s=0;
|
||||
@@ -1827,7 +1836,7 @@ void *Translator::TranslateClause(FILE *f_text, const void *vp_input, int *tone_
|
||||
}
|
||||
}
|
||||
else
|
||||
if((option_sayas2 & 0xf0) != 1)
|
||||
if((option_sayas2 & 0xf0) != 0x10)
|
||||
{
|
||||
if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out))
|
||||
{
|
||||
@@ -1937,6 +1946,7 @@ if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out)
|
||||
c = ' '; // change from upper to lower case, start new word at the last uppercase
|
||||
prev_in2 = c;
|
||||
source_index = prev_source_index; // unget
|
||||
next_word_flags |= FLAG_NOSPACE;
|
||||
}
|
||||
//#endif
|
||||
}
|
||||
@@ -2116,7 +2126,8 @@ if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out)
|
||||
for(k=j; charix[k]!=0; k++);
|
||||
words[word_count].length = k-j;
|
||||
|
||||
word_flags = 0;
|
||||
word_flags = next_word_flags;
|
||||
next_word_flags = 0;
|
||||
pre_pause = 0;
|
||||
word_mark = 0;
|
||||
all_upper_case = FLAG_ALL_UPPER;
|
||||
|
||||
+7
-2
@@ -69,12 +69,14 @@
|
||||
// wordflags, flags in source word
|
||||
#define FLAG_ALL_UPPER 0x1 /* no lower case letters in the word */
|
||||
#define FLAG_FIRST_UPPER 0x2 /* first letter is upper case */
|
||||
#define FLAG_UPPERS 0x3 // FLAG_ALL_UPPER | FLAG_FIRST_UPPER
|
||||
#define FLAG_HAS_PLURAL 0x4 /* upper-case word with s or 's lower-case ending */
|
||||
#define FLAG_PHONEMES 0x8 /* word is phonemes */
|
||||
#define FLAG_LAST_WORD 0x10 /* last word in clause */
|
||||
#define FLAG_STRESSED_WORD 0x20 /* this word has explicit stress */
|
||||
#define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */
|
||||
#define FLAG_HYPHEN 0x80
|
||||
#define FLAG_NOSPACE 0x100 // word is not seperated from previous word by a space
|
||||
#define FLAG_DONT_SWITCH_TRANSLATOR 0x1000
|
||||
#define FLAG_SUFFIX_REMOVED 0x2000
|
||||
#define FLAG_HYPHEN_AFTER 0x4000
|
||||
@@ -275,6 +277,7 @@ typedef struct {
|
||||
unsigned char *length_mods;
|
||||
unsigned char *length_mods0;
|
||||
|
||||
#define NUM_ROMAN 0x20000
|
||||
// bits0-1=which numbers routine to use.
|
||||
// bit2= thousands separator must be space
|
||||
// bit3= , decimal separator, not .
|
||||
@@ -289,15 +292,16 @@ typedef struct {
|
||||
// bit12=allow space as thousands separator (in addition to langopts.thousands_sep)
|
||||
// bits13-15 post-decimal-digits 0=single digits, 1=(LANG=it) 2=(LANG=pl) 3=(LANG=ro)
|
||||
// bit16=dot after number indicates ordinal
|
||||
// bit18=special word for 100,000s LANG=sw
|
||||
// bit17=recognize roman numbers
|
||||
|
||||
int numbers;
|
||||
|
||||
// bits 1-4 use variant form of numbers before thousands,millions,etc.
|
||||
// bit6=(LANG=pl) two forms of plural, M or MA
|
||||
// bit7=(LANG-ru) use MB for 1 thousand, million, etc
|
||||
// bit8=(LANG=sw) special word for 100,000s
|
||||
int numbers2;
|
||||
|
||||
int max_roman;
|
||||
int thousands_sep;
|
||||
int decimal_sep;
|
||||
int intonation; // 1=tone language
|
||||
@@ -388,6 +392,7 @@ private:
|
||||
int LookupNum3(int value, char *ph_out, int suppress_null, int thousandplex, int prev_thousands);
|
||||
int LookupThousands(int value, int thousandplex, char *ph_out);
|
||||
int TranslateNumber_1(char *word1, char *ph_out, unsigned int *flags, int wflags);
|
||||
int TranslateRoman(char *word, char *ph_out);
|
||||
|
||||
void InitGroups(void);
|
||||
void AppendPhonemes(char *string, int size, const char *ph);
|
||||
|
||||
Reference in New Issue
Block a user