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-fd96e6ae7743master
//maintainer: Willem van der Walt | |||||
//maintainer: Willem van der Walt | |||||
// email: [email protected] | // email: [email protected] | ||||
// tel: +27 12 8413996 | // tel: +27 12 8413996 | ||||
// Meraka Institute, CSIR | // Meraka Institute, CSIR | ||||
samelewing sA:m@l,e@v@N | samelewing sA:m@l,e@v@N | ||||
sedert se@d@rt | sedert se@d@rt | ||||
sektore $2 | sektore $2 | ||||
sinteties $2 | |||||
skepsele skEps@l@ | skepsele skEps@l@ | ||||
s'n s'@n | s'n s'@n | ||||
sobere s'o@b@r@ | sobere s'o@b@r@ |
a (C a | a (C a | ||||
C) a (Csier %a // (ge)finansier/kassier | C) a (Csier %a // (ge)finansier/kassier | ||||
j) a (pan %a //japan first a sound and stress | j) a (pan %a //japan first a sound and stress | ||||
C) abie 'A:bi | C) abie 'A:bi | ||||
abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie | abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie | ||||
_) a (bC %a // abdy/ablatief/ablusie/abstrak, etdc. | _) a (bC %a // abdy/ablatief/ablusie/abstrak, etdc. | ||||
_) aka a%k@ //akademie etc. | _) aka a%k@ //akademie etc. | ||||
akkedis a%k@d'Is //akkedis and compounds | akkedis a%k@d'Is //akkedis and compounds | ||||
ae A: //should be A:@ but sounds wrong | 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 | ai aI | ||||
adres %adrEs // fix last e sound of adres as last part of compounds | adres %adrEs // fix last e sound of adres as last part of compounds | ||||
_) alle (C al@ // alledaags/e/allerhande | _) alle (C al@ // alledaags/e/allerhande | ||||
CoeC) e (C @ //fix e in boetedoening, boedelbelasting and many others | CoeC) e (C @ //fix e in boetedoening, boedelbelasting and many others | ||||
orr) e (l @ //fix e in borrel, orrel, korrel in compounds | orr) e (l @ //fix e in borrel, orrel, korrel in compounds | ||||
intell) e (k %E //intellek, and friends | 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 | eval (u %iv%al // evaluasie/evalueer/evaluering | ||||
CAt) e (gn & //fix e in mikrotegnologie and others | CAt) e (gn & //fix e in mikrotegnologie and others | ||||
ei) e @ //eiewys and others | ei) e @ //eiewys and others | ||||
iber (i@ %ibe@r // Liberië/Siberië/Liberiese/Siberiese/Iberiese | iber (i@ %ibe@r // Liberië/Siberië/Liberiese/Siberiese/Iberiese | ||||
ie i | ie i | ||||
h) i (dro i //hidro in compounds | h) i (dro i //hidro in compounds | ||||
_) in (a@ In_ //inasem inagneming etc. | |||||
_) iese (C ,is@ // iesegrimmig and derivitives | _) iese (C ,is@ // iesegrimmig and derivitives | ||||
ieus i'Y@s // this ending always takes stress | ieus i'Y@s // this ending always takes stress | ||||
C) i (g @// figuur/figure/stoksielsaligalleenA | C) i (g @// figuur/figure/stoksielsaligalleenA | ||||
minder (jar m@n@r // move default stress: minderjarig and derivitives | minder (jar m@n@r // move default stress: minderjarig and derivitives | ||||
miner (A m@n@r // mineraal and many compounds | miner (A m@n@r // mineraal and many compounds | ||||
mi (neur m%i // move default stress: mineur and 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 | mikr (o mikr | ||||
ministers m@n'Ist@rs | ministers m@n'Ist@rs | ||||
mise (ra m@s // fix stress and drop e: miserabel/-e/-s/-ste | mise (ra m@s // fix stress and drop e: miserabel/-e/-s/-ste | ||||
_) na (skeer n''A: // restore default stress: naskeermiddel/-room | _) na (skeer n''A: // restore default stress: naskeermiddel/-room | ||||
_) na (tC na // many compounds beginning with nat | _) na (tC na // many compounds beginning with nat | ||||
na (tuur n%a // natuur and compounds and derivitives | na (tuur n%a // natuur and compounds and derivitives | ||||
navig n%av%ix2 //navigasie, navigeer etc. | |||||
@) na (_ na // shorten final na, except for: | @) na (_ na // shorten final na, except for: | ||||
r) na (_ nA: // daarna/hierna/waarna | r) na (_ nA: // daarna/hierna/waarna | ||||
nadruklik nA:dr'Wkl@k // nadruklik/e | nadruklik nA:dr'Wkl@k // nadruklik/e | ||||
te (oo t@ // geboorteoorskot/kosteoorweging/siekteoorsaak/terroristeoorlog | te (oo t@ // geboorteoorskot/kosteoorweging/siekteoorsaak/terroristeoorlog | ||||
_) teraarde t%&r?A:rd@ // move default stress and fix e sounds: teraardebestelling/-s | _) teraarde t%&r?A:rd@ // move default stress and fix e sounds: teraardebestelling/-s | ||||
n) terie t@r'i // galanterie/infanterie and compounds | 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 | _) tering te@r@N // tering and compounds | ||||
tesou (rie t%Es%u //tesourie and compounds | tesou (rie t%Es%u //tesourie and compounds | ||||
moles) tering te@r@N // molestering/kindermolestering | moles) tering te@r@N // molestering/kindermolestering | ||||
_) ter (l t@r // move default stress: terloops/-e | _) ter (l t@r // move default stress: terloops/-e | ||||
@) term (_ t&r@ // correct pronunciation of e | @) term (_ t&r@ // correct pronunciation of e | ||||
@) terme (_ t&rm@ // correct pronunciation of 1st 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 (K t'&:r@-n //lantern ekstern etc. | ||||
tern (e_ t'&rn // interne/eksterne | tern (e_ t'&rn // interne/eksterne | ||||
_) ter (nA t@r // terneergedruk/ternouernood | _) ter (nA t@r // terneergedruk/ternouernood | ||||
ven (ster fe~n // nasalise | ven (ster fe~n // nasalise | ||||
ven (yn f@n // venyn/venynig | ven (yn f@n // venyn/venynig | ||||
ver f@r | ver f@r | ||||
virtu v@rtS%y //virtueel virtuose etc. fix v and t sounds and assure lack of stress | |||||
_) ver (@P3 f@r | _) ver (@P3 f@r | ||||
verant (w f@r%ant // (on)verantwoordelik/-heid/verantwoording | verant (w f@r%ant // (on)verantwoordelik/-heid/verantwoording | ||||
verende f'e@r@nd@ | verende f'e@r@nd@ | ||||
woe (styn v%u // move default stress: woestyn and compounds | woe (styn v%u // move default stress: woestyn and compounds | ||||
wolke vOlk@ // nimbuswolke/wolkekrabber | wolke vOlk@ // nimbuswolke/wolkekrabber | ||||
woorde vo@rd@ | woorde vo@rd@ | ||||
w (yser v //padwyser and many others with wyser in compounds | |||||
nt) w (A v | nt) w (A v | ||||
.group x | .group x | ||||
** | ** | ||||
**) * (_ _:: | **) * (_ _:: | ||||
+ plus | |||||
+ pl'Ws | |||||
_) ++ (_ pluspl'us | _) ++ (_ pluspl'us | ||||
\+\+\+) + // ignore + after the first 3 | \+\+\+) + // ignore + after the first 3 | ||||
* *; b b; c C d d; | * *; b b; c C d d; | ||||
dZ f f; g h j k l | dZ f f; g h j k l | ||||
l; m m; n N n; p p; | 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 | Dictionary is_dict |
_cap k,ap@-t@L | _cap k,ap@-t@L | ||||
_?A lEt3 | _?A lEt3 | ||||
_?? sImb@L | _?? sImb@L | ||||
_#9 tab | |||||
_#32 speIs | |||||
_! Ekskl@m'eIS@n | _! Ekskl@m'eIS@n | ||||
_" kwoUts | _" kwoUts | ||||
_0and @n | _0and @n | ||||
?3 _0and | ?3 _0and | ||||
_dpt pOInt | _dpt pOInt | ||||
_roman roUm@n_ | |||||
// ABBREVIATIONS | // ABBREVIATIONS | ||||
wwii dVb@Lju:dVb@Lju:t'u: | wwii dVb@Lju:dVb@Lju:t'u: | ||||
xy $abbrev | xy $abbrev | ||||
ii tu: $abbrev // roman numerals | |||||
iii Tri: $abbrev | |||||
iv fo@ $abbrev | |||||
nd $only | nd $only | ||||
rd $only | rd $only |
// numbers | // 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 | |||||
// possessives | // possessives | ||||
mi $u+ | |||||
mi mi $u+ | |||||
mis $u+ | mis $u+ | ||||
tu $u+ | tu $u+ | ||||
tus $u+ | tus $u+ |
// translation rules | |||||
// translation rules for Spanish | |||||
// This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
// Conditional rules | |||||
// ?1 Castilian | |||||
// ?2 Latin America | |||||
.group a | .group a | ||||
_) a (_ a | _) a (_ a | ||||
a a | a a | ||||
ai aI | ai aI | ||||
ay aI | |||||
ay (K aI | |||||
ay (_ 'aI | ay (_ 'aI | ||||
e E | e E | ||||
e (_ e | e (_ e | ||||
ei eI | ei eI | ||||
ey eI | |||||
ey (K eI | |||||
ey (_ 'eI | ey (_ 'eI | ||||
_) eu eU | _) eu eU | ||||
.group v | .group v | ||||
_) v (_ ve | |||||
_) v (_ uve | |||||
v v | v v | ||||
_) v v | _) v v | ||||
m) v v | m) v v | ||||
.group w | .group w | ||||
_) w (_ d'oBle,u | |||||
_) w (_ ,uve||d'oBle | |||||
w w | w w | ||||
_1M4 b'ilijUn | _1M4 b'ilijUn | ||||
_dpt _:z'a*Ez_ | _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 | // Abbreviations | ||||
aaa $abbrev | aaa $abbrev |
ú.n u:JnEvEzEt: $dot | ú.n u:JnEvEzEt: $dot | ||||
vö v'EZd||_'Yss2E | 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 | // Articles | ||||
nem $alt2 $strend | nem $alt2 $strend | ||||
ne $u+ | ne $u+ | ||||
e $u // "-e" question | |||||
e $atend // stressed at end of sentence | |||||
// Unstressed adverbs prepositions etc. | // Unstressed adverbs prepositions etc. | ||||
néhány $u+ | néhány $u+ | ||||
on $u // on | on $u // on | ||||
en $u | en $u | ||||
ön $u | ön $u | ||||
an $u // so many persons | |||||
ón $u | |||||
szor $u // times | szor $u // times | ||||
szer $u | szer $u | ||||
ször $u | ször $u | ||||
minden $u // all | minden $u // all | ||||
részben $u // partly | részben $u // partly | ||||
egyik $u // one of | |||||
másik $u // the other | |||||
// word pairs | // word pairs | ||||
// Main Exceptions List | // Main Exceptions List | ||||
//===================== | //===================== | ||||
nato na:to: | |||||
a A | a A | ||||
_) a (_ %A | _) a (_ %A | ||||
!_n) ato a:to: // NATO | |||||
.group á | .group á | ||||
á a: | á a: | ||||
.group b | .group b | ||||
b b | b b | ||||
bb b: | |||||
// bb b: | |||||
biz (A b'iz, // bizalmas etc. | biz (A b'iz, // bizalmas etc. | ||||
biedermeier bi:dER2ma:jER2 | biedermeier bi:dER2ma:jER2 | ||||
.group d | .group d | ||||
d d | d d | ||||
dd d: | |||||
// dd d: | |||||
dz dz | dz dz | ||||
A) dz (A d:z | A) dz (A d:z | ||||
dzs dZ | dzs dZ | ||||
.group e | .group e | ||||
e E | e E | ||||
D_-_) es (_ %ES | D_-_) es (_ %ES | ||||
.group é | .group é | ||||
.group g | .group g | ||||
g g | g g | ||||
gg g: | |||||
// gg g: | |||||
gy J | gy J | ||||
ggy J: | ggy J: | ||||
A) gyj (A J: | A) gyj (A J: | ||||
_e) gy (es J: | _e) gy (es J: | ||||
_e) gy (et J: | |||||
_e) gy (et_ J: | |||||
_e) gy (etlen J: | |||||
_e) gy (ik J: | _e) gy (ik J: | ||||
_e) gy (üt J: | _e) gy (üt J: | ||||
_minde) gy (ik J: | _minde) gy (ik J: | ||||
.group k | .group k | ||||
k k | k k | ||||
kk k: | kk k: | ||||
kk (C kk | |||||
_) köz kYz | _) köz kYz | ||||
.group l | .group l | ||||
.group p | .group p | ||||
p p | p p | ||||
pp p: | pp p: | ||||
pp (C pp | |||||
p (v p_ | p (v p_ | ||||
_) potsdam potsda:m | _) potsdam potsda:m | ||||
r R2 | r R2 | ||||
rr RR | rr RR | ||||
rm R2_m | rm R2_m | ||||
r (cc R | |||||
_) richa (rd R2iCa: | _) richa (rd R2iCa: | ||||
_) richá (rd R2iCa: | _) richá (rd R2iCa: | ||||
-) t (_ t | -) t (_ t | ||||
t t | t t | ||||
tt t: | tt t: | ||||
tt (C tt | |||||
ty c | ty c | ||||
// s) ty c: // | // s) ty c: // | ||||
// z) ty c: // keztyű | // z) ty c: // keztyű |
ti $u+ | ti $u+ | ||||
si $u+ | si $u+ | ||||
ci $u+ | ci $u+ | ||||
vi $u+ | |||||
li $u+ | |||||
vi vi $u+ | |||||
li li $u+ | |||||
// words that double the following consonant | // words that double the following consonant |
sunto $u | sunto $u | ||||
// numerals 1-100 | |||||
// numerals | |||||
ii II // word, not numeric | |||||
vi wI // word, not numeric | |||||
i 'u:nUs $capital | i 'u:nUs $capital | ||||
ii d'UO $capital | ii d'UO $capital | ||||
iii t@-*,e:s | |||||
iv kw'at:UOR | |||||
v kw'i:NkwE | |||||
vi s,Eks $capital | 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: | |||||
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. | |||||
_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 | |||||
_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 |
_ú ,u&g'udU | _ú ,u&g'udU | ||||
_ü ,utR'em& | _ü ,utR'em& | ||||
i i // speak i v x as letters, not Roman numbers | |||||
v ve | |||||
x Sis# | |||||
_cap maI'uskulU | _cap maI'uskulU | ||||
_?A l'etR& | _?A l'etR& | ||||
_?? s'imbolU | _?? s'imbolU | ||||
// numeric | // 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# | ?1 _3 tr'es# | ||||
?2 _3 tR'es# | ?2 _3 tR'es# | ||||
?1 _4 kw'atru | ?1 _4 kw'atru | ||||
?2 _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 | ?1_11 'oNzy | ||||
?2_11 'oNzi | ?2_11 'oNzi | ||||
unts $abbrev | unts $abbrev | ||||
usb $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 | // articles | ||||
o $u+ | o $u+ |
únh ''u~n^ | únh ''u~n^ | ||||
.group v | .group v | ||||
_) v (_ ve | |||||
v v | v v | ||||
v (v | v (v | ||||
.group x | .group x | ||||
_) x (_ Sis# | |||||
x (A S | x (A S | ||||
A) x (A ks | A) x (A ks | ||||
_e) x (A z | _e) x (A z |
// translation rules for Romanian | // translation rules for Romanian | ||||
// This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
.group a | .group a | ||||
a a | a a | ||||
ai aI | ai aI | ||||
au (_ 'aU | au (_ 'aU | ||||
a (AAA a | a (AAA a | ||||
&) a (_S1q a | &) a (_S1q a | ||||
gi) a (_S1q 'a | gi) a (_S1q 'a | ||||
V@) a (_ 'a | |||||
V@) a (N_ 'a | |||||
ăi) a (_ 'a | ăi) a (_ 'a | ||||
@) abil (_ 'abil | @) abil (_ 'abil | ||||
_) anti (@P4 anti | _) anti (@P4 anti | ||||
@) ale (_ 'ale | @) ale (_ 'ale | ||||
@ion) a (_ 'a | |||||
.group ă | .group ă | ||||
ă @ | ă @ | ||||
ăi @I | |||||
ăi (_ @I | |||||
ău @U // ?? only at end of word ?? | ă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 @ | &) ă (_S1 @ | ||||
&ec) ă (_ @ | |||||
@ăC) ă (_ @ | |||||
@er) ă (_ @ | |||||
@iţ) ă (_ @ | |||||
@) ă (Că_ =@ | |||||
ări (A_ @*'i | ări (A_ @*'i | ||||
ării (_ @*'iI | ării (_ @*'iI | ||||
ări (AA_ @*'i | ări (AA_ @*'i | ||||
@) ăt (_S2t @t | |||||
@) ătă (_S3t @t@ | |||||
@) ătul (_S4t @tul | |||||
@) ătele (_S5t @tele | |||||
@) ătului (_S6t @tuluI | |||||
@) ătelor (_S6t @telor | |||||
@) ăie (_ =@Ie | |||||
.group â | .group â | ||||
â y | â y | ||||
âi yI | âi yI | ||||
âu yU | âu yU | ||||
@) âie (_ =yIe | |||||
.group b | .group b | ||||
b b | b b | ||||
@) b (i_ b; | |||||
bb b | |||||
@) b (i_ b; | |||||
@) b (il_ =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 | mo) bil (_ b'il | ||||
@@) col (_ =kol | @@) col (_ =kol | ||||
@@) coli (_S1t =I^ | @@) coli (_S1t =I^ | ||||
@@) cole (_S1t e | @@) cole (_S1t e | ||||
@) cni (_ kn'i | @) cni (_ kn'i | ||||
@) cnea (_ kne'a | @) cnea (_ kne'a | ||||
.group d | .group d | ||||
d d | d d | ||||
dd d | |||||
@) d (i_ d; | @) d (i_ d; | ||||
.group e | .group e | ||||
e 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 | eu (_ 'eU | ||||
ea ea | ea ea | ||||
&) ea (_S2q ea | &) ea (_S2q ea | ||||
&) eSi eaj | &) eSi eaj | ||||
eau eaw | eau eaw | ||||
eo eo | eo eo | ||||
eoa eO'a | |||||
e (AAA e | 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 | &C) e (re_ %e | ||||
_ac) ee (a eI | |||||
r) ei (er_ 'eI | |||||
@) e (re_ =e | @) e (re_ =e | ||||
@) e (ri_ =e | @) e (ri_ =e | ||||
@) e (rea_ =e | @) e (rea_ =e | ||||
@) e (rii_ =e | |||||
i) e (re_ e | i) e (re_ e | ||||
i) e (ri_ e | i) e (ri_ e | ||||
i) e (rii_ e | |||||
i) e (rea_ 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 | .group f | ||||
f f | f f | ||||
ff f | |||||
@) f (i_ f; | @) f (i_ f; | ||||
.group i | .group i | ||||
i i | i i | ||||
i (A j | i (A j | ||||
@) i (e_ j | |||||
&C) i (_N$1q i/ | &C) i (_N$1q i/ | ||||
&) i (_N$1q i | &) i (_N$1q i | ||||
&) i (-N$1q i // don't reduce to [I^] if a hyphen follows | &) i (-N$1q i // don't reduce to [I^] if a hyphen follows | ||||
ţ) i (-Că i | ţ) i (-Că i | ||||
ţ) i (-Ci i | ţ) i (-Ci i | ||||
ţ) i (-l i | |||||
ţ) i (-ne i | |||||
&') i (_ i | &') i (_ i | ||||
ţi-) i (_ _ // combined with previous word as [iI] | ţi-) i (_ _ // combined with previous word as [iI] | ||||
Cr) i (_ i | Cr) i (_ i | ||||
V&) i (_ 'i // verb | |||||
V&) i (N_ 'i // verb | |||||
ăC) ia (_ 'ia | ăC) ia (_ 'ia | ||||
âC) ia (_ 'ia | âC) ia (_ 'ia | ||||
ăC) ie (_ 'ie | ăC) ie (_ 'ie | ||||
â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 | iei (_ 'ieI | ||||
ii iI | ii iI | ||||
iu ju | iu ju | ||||
&) ic (_ =ik | &) ic (_ =ik | ||||
&) ica (_ =ika | |||||
&) ice (_ =itSe | &) ice (_ =itSe | ||||
&) icile (_ =itSile | |||||
&) icile (_ =itSile | |||||
&) icilor (_ =itSilor | &) icilor (_ =itSilor | ||||
@) icii (_ =itSiI | @) icii (_ =itSiI | ||||
scr) i (e 'i | |||||
&) ing (_ %iNg // foreign words | &) ing (_ %iNg // foreign words | ||||
i (t_ 'i | 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 î | .group î | ||||
.group l | .group l | ||||
l l | l l | ||||
ll l | |||||
@) l (i_ l; | @) l (i_ l; | ||||
_) l (_ le | _) l (_ le | ||||
-) l (_ l // -l | -) l (_ l // -l | ||||
.group m | .group m | ||||
_) m (_ me | _) m (_ me | ||||
m m | m m | ||||
mm m | |||||
@) m (i_ m; | @) m (i_ m; | ||||
_) m (-a m | _) m (-a m | ||||
@) n (tic_ =n | @) n (tic_ =n | ||||
@) n (ic_ =n | @) n (ic_ =n | ||||
_) n (-a 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 | .group o | ||||
o o | o o | ||||
oa Oa | oa Oa | ||||
oai Oaj | oai Oaj | ||||
oi oI | |||||
_) oi oI | |||||
oi (_ 'oI | oi (_ 'oI | ||||
ou oU | ou oU | ||||
ou (_ 'oU | ou (_ 'oU | ||||
o (AAA o | o (AAA o | ||||
@) oi (t_ o'i | |||||
@) oi (tă_ o'i | |||||
@) oi (ţi_ o'i | |||||
@) oi (te_ o'i | |||||
.group p | .group p | ||||
p p | p p | ||||
pp p | |||||
@) p (i_ p; | @) p (i_ p; | ||||
.group q | .group q | ||||
q k | q k | ||||
qu kw | qu kw | ||||
.group r | .group r | ||||
r r | |||||
A) r (A * | |||||
C) r (A @-* | |||||
rr *r | |||||
A) r (i_ *; | |||||
_) re (@P2v re | |||||
_) re (gul re | |||||
@u) ri (_NS2t rI^ | |||||
r r | |||||
rr r | |||||
A) r (A * | |||||
C) r (A @-* | |||||
rr *r | |||||
A) r (i_ *; | |||||
_) re (@P2T re | |||||
_) re (gul re | |||||
@u) ri (_NS2t rI^ | |||||
C) ri (_ @-*i | |||||
@u) rii (_S3t riI | |||||
@u) rile (_S4t rile | @u) rile (_S4t rile | ||||
@) rilor (_S5t rilor | |||||
@u) rilor (_S5t rilor | |||||
C) ri (_ @-*i | |||||
@) răm (_S1t m | @) răm (_S1t m | ||||
@) răţi (_S4t *@tsI^ | @) răţi (_S4t *@tsI^ | ||||
@u) re (_S2t *e | |||||
.group s | .group s | ||||
_) s (_ se | _) s (_ se | ||||
_) s (-a s | _) s (-a s | ||||
s s | s s | ||||
@) s (i_ s; | |||||
-) s (_ s | |||||
sh S | |||||
ss s | |||||
&) sprezece (_S8t sp@-*ez,etSe | &) sprezece (_S8t sp@-*ez,etSe | ||||
@) sem (_S1t m | @) sem (_S1t m | ||||
@) seră (_S2t *@ | @) seră (_S2t *@ | ||||
@) serăm (_S3t *@m | |||||
@) serăm (_S3t *@m | |||||
@) serăţi (_S4t *@tsI^ | @) serăţi (_S4t *@tsI^ | ||||
@) seşi (_S2t SI^ | @) seşi (_S2t SI^ | ||||
@) sni (_ sn'i | |||||
@) sni (_ sn'i | |||||
.group ş | .group ş | ||||
tt (_ t | tt (_ t | ||||
@) t (i_ t; | @) t (i_ t; | ||||
ts ts | |||||
tz ts | |||||
tt t | |||||
.group ţ | .group ţ | ||||
ţ ts | ţ ts | ||||
.group u | .group u | ||||
u u | u u | ||||
u (A w | u (A w | ||||
ui uI | |||||
_) ui uI | |||||
ui (_ uI | |||||
ui (e wi | 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 | |||||
@ic) ul (_S2 ul | |||||
@ic) uri (_S3 urI^ | |||||
V&) ui (_N u'i | |||||
&) ul (_S2t ul | |||||
@ic) ul (_S2t ul | |||||
@ic) ule (_S3t ule | |||||
@ic) ului (_S4t uluI | |||||
@ic) uri (_S3 urI^ | |||||
@ic) urile (_S5 urile | @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 | .group v | ||||
x ks | x ks | ||||
A) x (A gz | A) x (A gz | ||||
ma) x (i ks | ma) x (i ks | ||||
e) x (e ks | |||||
cone) x (iu ks | cone) x (iu ks | ||||
i) x (e ks | i) x (e ks | ||||
o) x (e ks // boxele | 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 | o) x (i ks // oxigen | ||||
a) x (ia ks // axial | a) x (ia ks // axial | ||||
ale) x ks | ale) x ks | ||||
.group z | .group z | ||||
z z | z z | ||||
zz z | |||||
@) z (i_ z; | @) z (i_ z; | ||||
.group | .group | ||||
ö Y | ö Y | ||||
% protSent | |||||
D_) % la_sut@ | D_) % la_sut@ | ||||
% p@-*otSent | |||||
$ dolar | |||||
+ plus | |||||
& ampersand | |||||
© k'apiraIt | |||||
@ a*'ond | |||||
/ sleS | |||||
€ 'eU*o | |||||
° g@-*ade | |||||
, (D v'irgul@ | , (D v'irgul@ | ||||
*) * (* | *) * (* | ||||
** | ** | ||||
**) * (_ _:: | **) * (_ _:: | ||||
0 r/ NULL 0 r | 0 r/ NULL 0 r | ||||
0 r- NULL 0 r | 0 r- NULL 0 r | ||||
0 g- NULL 0 NULL | 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 r | ||||
0 ; NULL 0 NULL | 0 ; NULL 0 NULL | ||||
0 a e 15 a _ | 0 a e 15 a _ | ||||
0 a NULL 0 a | 0 a NULL 0 a | ||||
0 @- NULL 0 NULL | 0 @- NULL 0 NULL | ||||
0 j/ NULL 0 j | |||||
0 I^ _ 0 I | 0 I^ _ 0 I | ||||
0 I^ NULL 20 I _ | 0 I^ NULL 20 I _ | ||||
0 @U NULL 60 @ w | 0 @U NULL 60 @ w | ||||
0 aU NULL 60 a 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 iU NULL 60 i w | ||||
0 yU NULL 60 l w | |||||
0 yU NULL 60 1 w | |||||
0 oU NULL 60 o w | 0 oU NULL 60 o w | ||||
0 @I NULL 60 @ j | 0 @I NULL 60 @ j | ||||
0 iI NULL 60 i j | 0 iI NULL 60 i j | ||||
0 aI NULL 60 a 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 oI NULL 60 o j | ||||
0 uI NULL 60 u j | 0 uI NULL 60 u j | ||||
0 yI NULL 60 1 j | 0 yI NULL 60 1 j |
vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
length 230 | length 230 | ||||
formants vwl_en_us/3_us | formants vwl_en_us/3_us | ||||
reduceto @ 0 | |||||
// reduceto @ 0 | |||||
linkout r- | linkout r- | ||||
endphoneme | endphoneme | ||||
char capital[20]; | char capital[20]; | ||||
char ph_buf[30]; | char ph_buf[30]; | ||||
char ph_buf2[50]; | char ph_buf2[50]; | ||||
static char single_letter[8] = {0}; | |||||
static char single_letter[10] = {0,0}; | |||||
ph_buf[0] = 0; | ph_buf[0] = 0; | ||||
capital[0] = 0; | capital[0] = 0; | ||||
n_bytes = utf8_in(&letter,word,0); | n_bytes = utf8_in(&letter,word,0); | ||||
if((letter & 0xfff00) == 0x0e000) | |||||
{ | |||||
letter &= 0xff; // uncode private usage area | |||||
} | |||||
if(control > 2) | if(control > 2) | ||||
{ | { | ||||
// include CAPITAL information | // include CAPITAL information | ||||
} | } | ||||
letter = towlower(letter); | 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]); | len = utf8_out(letter,&single_letter[2]); | ||||
single_letter[2+len] = ' '; | |||||
single_letter[len+2] = ' '; | |||||
next = RULE_SPELLING; | next = RULE_SPELLING; | ||||
if(word[n_bytes] == ' ') | if(word[n_bytes] == ' ') | ||||
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) | int Translator::LookupNum2(int value, int control, char *ph_out) | ||||
{ | { | ||||
if((thousandplex > 0) && (value < 1000)) | if((thousandplex > 0) && (value < 1000)) | ||||
{ | { | ||||
if(langopts.numbers & 0x40000) | |||||
if(langopts.numbers2 & 0x100) | |||||
{ | { | ||||
if((thousandplex == 1) && (value >= 100)) | if((thousandplex == 1) && (value >= 100)) | ||||
{ | { |
c1 = j; | c1 = j; | ||||
} | } | ||||
} | } | ||||
if((sayas_mode == 0x14) && (c1 <= 0x20)) | |||||
{ | |||||
c1 += 0xe000; // move into unicode private usage area | |||||
} | |||||
} | } | ||||
else | else | ||||
if(c1 == '<') | if(c1 == '<') |
#include "translate.h" | #include "translate.h" | ||||
#include "wave.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; | const int version_phdata = 0x012701; | ||||
int option_device_number = -1; | int option_device_number = -1; |
langopts.stress_rule = 0; | langopts.stress_rule = 0; | ||||
langopts.word_gap = 0; | langopts.word_gap = 0; | ||||
langopts.numbers = 0x41; | |||||
langopts.numbers = 0x41 + NUM_ROMAN; | |||||
} | } | ||||
tr->langopts.param[LOPT_PREFIXES] = 1; | tr->langopts.param[LOPT_PREFIXES] = 1; | ||||
memcpy(tr->stress_lengths,stress_lengths_de,sizeof(tr->stress_lengths)); | memcpy(tr->stress_lengths,stress_lengths_de,sizeof(tr->stress_lengths)); | ||||
tr->langopts.numbers = 0x11c19; | |||||
tr->langopts.numbers = 0x11c19 + NUM_ROMAN; | |||||
SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
} | } | ||||
break; | break; | ||||
tr->langopts.unstressed_wd2 = 2; | tr->langopts.unstressed_wd2 = 2; | ||||
tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels | 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; | break; | ||||
tr->langopts.stress_rule = 6; // stress on last heaviest syllable | tr->langopts.stress_rule = 6; // stress on last heaviest 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 = 0x811 + 0x40000; | |||||
tr->langopts.numbers = 0x811; | |||||
tr->langopts.numbers2 = 0x100; | |||||
tr->letter_bits_offset = OFFSET_DEVANAGARI; | tr->letter_bits_offset = OFFSET_DEVANAGARI; | ||||
tr->langopts.replace_chars = replace_chars_hi; | tr->langopts.replace_chars = replace_chars_hi; | ||||
tr->langopts.replacement_chars = replacement_chars_hi; | tr->langopts.replacement_chars = replacement_chars_hi; | ||||
tr->langopts.max_initial_consonants = 5; | tr->langopts.max_initial_consonants = 5; | ||||
tr->langopts.spelling_stress = 1; | 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.numbers2 = 0x4a; // variant numbers before thousands,milliards | ||||
tr->langopts.replace_chars = replace_cyrillic; | tr->langopts.replace_chars = replace_cyrillic; | ||||
tr->langopts.replacement_chars = replace_cyrillic_latin; | tr->langopts.replacement_chars = replace_cyrillic_latin; | ||||
tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word | tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word | ||||
tr->langopts.long_stop = 130; | tr->langopts.long_stop = 130; | ||||
tr->langopts.numbers = 0x1809; | |||||
tr->langopts.numbers = 0x1809 + NUM_ROMAN; | |||||
SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
tr->langopts.spelling_stress = 1; | tr->langopts.spelling_stress = 1; | ||||
//SetLengthMods(tr,3); // all equal | //SetLengthMods(tr,3); // all equal | ||||
tr->langopts.param[LOPT_IT_DOUBLING] = 2; // double the first consonant if the previous word ends in a stressed vowel | 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_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.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; | break; | ||||
tr->langopts.unstressed_wd1 = 0; | tr->langopts.unstressed_wd1 = 0; | ||||
tr->langopts.unstressed_wd2 = 2; | tr->langopts.unstressed_wd2 = 2; | ||||
tr->langopts.param[LOPT_DIERESES] = 1; | tr->langopts.param[LOPT_DIERESES] = 1; | ||||
tr->langopts.numbers = 0x1 + NUM_ROMAN; | |||||
tr->langopts.max_roman = 5000; | |||||
} | } | ||||
break; | break; | ||||
// tr->langopts.vowel_pause = 1; | // tr->langopts.vowel_pause = 1; | ||||
tr->langopts.stress_rule = 3; // stress on final syllable | tr->langopts.stress_rule = 3; // stress on final syllable | ||||
tr->langopts.stress_flags = 0x6 | 0x10 | 0x20000; | 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 | tr->punct_to_tone[0][3] = 2; // use exclamation intonation | ||||
SetLetterVowel(tr,'y'); | SetLetterVowel(tr,'y'); | ||||
} | } | ||||
tr->charset_a0 = charsets[2]; // ISO-8859-2 | tr->charset_a0 = charsets[2]; // ISO-8859-2 | ||||
tr->langopts.replace_chars = replace_chars_ro; | tr->langopts.replace_chars = replace_chars_ro; | ||||
tr->langopts.replacement_chars = replacement_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 | tr->langopts.numbers2 = 0x1e; // variant numbers before all thousandplex | ||||
} | } | ||||
break; | break; | ||||
tr->langopts.stress_rule = 2; | tr->langopts.stress_rule = 2; | ||||
tr->langopts.stress_flags = 0x6 | 0x10; | tr->langopts.stress_flags = 0x6 | 0x10; | ||||
tr->langopts.numbers = 0x408e1; | |||||
tr->langopts.numbers = 0x8e1; | |||||
tr->langopts.numbers2 = 0x100; | |||||
} | } | ||||
break; | break; | ||||
langopts.param[LOPT_PREFIXES] = 1; | langopts.param[LOPT_PREFIXES] = 1; | ||||
SetLetterVowel(this,'y'); // add 'y' to vowels | SetLetterVowel(this,'y'); // add 'y' to vowels | ||||
langopts.numbers = 0x0d1; | |||||
langopts.numbers = 0x0d1 + NUM_ROMAN; | |||||
memcpy(stress_lengths,stress_lengths2,sizeof(stress_lengths)); | memcpy(stress_lengths,stress_lengths2,sizeof(stress_lengths)); | ||||
} | } | ||||
langopts.length_mods0 = length_mods_en0; | langopts.length_mods0 = length_mods_en0; | ||||
langopts.long_stop = 100; | langopts.long_stop = 100; | ||||
langopts.max_roman = 49; | |||||
langopts.thousands_sep = ','; | langopts.thousands_sep = ','; | ||||
langopts.decimal_sep = '.'; | langopts.decimal_sep = '.'; | ||||
found = TranslateNumber(word,phonemes,&dictionary_flags,wflags); | 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)) | !(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. | // An upper case word in a lower case clause. This could be an abbreviation. | ||||
int phoneme_mode = 0; | int phoneme_mode = 0; | ||||
int dict_flags; // returned from dictionary lookup | int dict_flags; // returned from dictionary lookup | ||||
int word_flags; // set here | int word_flags; // set here | ||||
int next_word_flags; | |||||
int embedded_count = 0; | int embedded_count = 0; | ||||
int letter_count = 0; | int letter_count = 0; | ||||
char *word; | char *word; | ||||
word_count = 0; | word_count = 0; | ||||
single_quoted = 0; | single_quoted = 0; | ||||
word_flags = 0; | word_flags = 0; | ||||
next_word_flags = 0; | |||||
expect_verb=0; | expect_verb=0; | ||||
expect_past=0; | expect_past=0; | ||||
expect_verb_s=0; | expect_verb_s=0; | ||||
} | } | ||||
} | } | ||||
else | else | ||||
if((option_sayas2 & 0xf0) != 1) | |||||
if((option_sayas2 & 0xf0) != 0x10) | |||||
{ | { | ||||
if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out)) | 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 | c = ' '; // change from upper to lower case, start new word at the last uppercase | ||||
prev_in2 = c; | prev_in2 = c; | ||||
source_index = prev_source_index; // unget | source_index = prev_source_index; // unget | ||||
next_word_flags |= FLAG_NOSPACE; | |||||
} | } | ||||
//#endif | //#endif | ||||
} | } | ||||
for(k=j; charix[k]!=0; k++); | for(k=j; charix[k]!=0; k++); | ||||
words[word_count].length = k-j; | words[word_count].length = k-j; | ||||
word_flags = 0; | |||||
word_flags = next_word_flags; | |||||
next_word_flags = 0; | |||||
pre_pause = 0; | pre_pause = 0; | ||||
word_mark = 0; | word_mark = 0; | ||||
all_upper_case = FLAG_ALL_UPPER; | all_upper_case = FLAG_ALL_UPPER; |
// wordflags, flags in source word | // wordflags, flags in source word | ||||
#define FLAG_ALL_UPPER 0x1 /* no lower case letters in the 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_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_HAS_PLURAL 0x4 /* upper-case word with s or 's lower-case ending */ | ||||
#define FLAG_PHONEMES 0x8 /* word is phonemes */ | #define FLAG_PHONEMES 0x8 /* word is phonemes */ | ||||
#define FLAG_LAST_WORD 0x10 /* last word in clause */ | #define FLAG_LAST_WORD 0x10 /* last word in clause */ | ||||
#define FLAG_STRESSED_WORD 0x20 /* this word has explicit stress */ | #define FLAG_STRESSED_WORD 0x20 /* this word has explicit stress */ | ||||
#define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */ | #define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */ | ||||
#define FLAG_HYPHEN 0x80 | #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_DONT_SWITCH_TRANSLATOR 0x1000 | ||||
#define FLAG_SUFFIX_REMOVED 0x2000 | #define FLAG_SUFFIX_REMOVED 0x2000 | ||||
#define FLAG_HYPHEN_AFTER 0x4000 | #define FLAG_HYPHEN_AFTER 0x4000 | ||||
unsigned char *length_mods; | unsigned char *length_mods; | ||||
unsigned char *length_mods0; | unsigned char *length_mods0; | ||||
#define NUM_ROMAN 0x20000 | |||||
// bits0-1=which numbers routine to use. | // bits0-1=which numbers routine to use. | ||||
// bit2= thousands separator must be space | // bit2= thousands separator must be space | ||||
// bit3= , decimal separator, not . | // bit3= , decimal separator, not . | ||||
// bit12=allow space as thousands separator (in addition to langopts.thousands_sep) | // 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) | // bits13-15 post-decimal-digits 0=single digits, 1=(LANG=it) 2=(LANG=pl) 3=(LANG=ro) | ||||
// bit16=dot after number indicates ordinal | // bit16=dot after number indicates ordinal | ||||
// bit18=special word for 100,000s LANG=sw | |||||
// bit17=recognize roman numbers | |||||
int numbers; | int numbers; | ||||
// bits 1-4 use variant form of numbers before thousands,millions,etc. | // bits 1-4 use variant form of numbers before thousands,millions,etc. | ||||
// bit6=(LANG=pl) two forms of plural, M or MA | // bit6=(LANG=pl) two forms of plural, M or MA | ||||
// bit7=(LANG-ru) use MB for 1 thousand, million, etc | // bit7=(LANG-ru) use MB for 1 thousand, million, etc | ||||
// bit8=(LANG=sw) special word for 100,000s | |||||
int numbers2; | int numbers2; | ||||
int max_roman; | |||||
int thousands_sep; | int thousands_sep; | ||||
int decimal_sep; | int decimal_sep; | ||||
int intonation; // 1=tone language | int intonation; // 1=tone language | ||||
int LookupNum3(int value, char *ph_out, int suppress_null, int thousandplex, int prev_thousands); | 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 LookupThousands(int value, int thousandplex, char *ph_out); | ||||
int TranslateNumber_1(char *word1, char *ph_out, unsigned int *flags, int wflags); | int TranslateNumber_1(char *word1, char *ph_out, unsigned int *flags, int wflags); | ||||
int TranslateRoman(char *word, char *ph_out); | |||||
void InitGroups(void); | void InitGroups(void); | ||||
void AppendPhonemes(char *string, int size, const char *ph); | void AppendPhonemes(char *string, int size, const char *ph); |