[1.27.10] Added inverse conditional rules in *_list and *_rules. eg. ?!3 "if rule 3 is NOT set".

lang=en-r, adjusted vowels.
Moved single characters (eg. % @) from *_list to *_rules so they can be used in combinations (eg. %-).


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@65 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2007-07-15 16:02:08 +00:00
parent 0def252307
commit daaa9ddbb7
40 changed files with 295 additions and 160 deletions
+15 -6
View File
@@ -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
@@ -126,12 +126,18 @@ christo krIstu
christian krIstian
christine kr@st'i:n
coetzee kuts'e@
cronjé krOnj'e@
debora d@bo@ra
der d@r
deventer d'e@v@nt@r
du $u
(du plessis) du||pl@s'i
(du preez) d@||pr'e@
(du toit) d@||toI
elize il'i:z
esegiël is'e@x2i_@l
estelle %ist&l
etienne Eti@n
eugene judZ'i:n
eugène yZ'En
farao fA:ro@
@@ -172,13 +178,13 @@ mostert m'Ost@rt
mozart mo@tsart
naomi na_'o@mi
natasha n%at'aSa
naudé nOd'e@
paul p@Ul
paulus p@UlWs
philip fIl@p
pierre p'e@r
petrus pe@trWs
phoebe fi:bi
preez pr'e@
rachmaninoff rax2m'aninOf
rebekka r@bEka
ronel run'&l
@@ -186,7 +192,9 @@ rousseau r@s@U
roux r'u
schalk sk'alk
scheepers ske@p@rs
schoeman skuman
schoor sko@r
schutte skWt@
shakespeare _^_EN
tania tanja
terblanche t@rblA:nS
@@ -197,12 +205,12 @@ marais mar'E:
mandela mand'E:la
celliers sIlj'e@
joubert jub'&:r
plessis pl@s'i
scarlatti $2
schalkwyk skalkveIk
schreiner SraIn@r
tony t@Uni
xhosa kO:za
toit toI
khumalo kum'A:lu
@@ -295,7 +303,6 @@ voor $u $strend2
// misc unstressed
de d@
du $u
dat $u $strend
te t@
nie $unstressend
@@ -514,6 +521,7 @@ ongewoons $1
onkunde $1
onmag $1
onmin $1
oplaas $2
onraad $1
onrus $1
oorkom $2
@@ -527,6 +535,7 @@ patriotisme patri|ut'Ism@
penorent pEno@rEnt
per pIr
persent p@rsEnt
pinotage pinut'A:Z
prakseer $2
program prux2r'am
@@ -541,7 +550,7 @@ rukkerig rWk@r@x2
samelewing sA:m@l,e@v@N
sedert se@d@rt
sektore $2
sinteties $2
skares skA:r@s
skepsele skEps@l@
s'n s'@n
sobere s'o@b@r@
+83 -17
View File
@@ -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
@@ -12,11 +12,13 @@
.group a
_C) a (Cie_ 'A:
a A:
AC) a (_ %a // short final a in words like: Eva/Pieta/(su)sara
%C) a (_ %a // short final a in words like: Bella/Betta/gogga
&d) a (_ %a // short, unstressed a after d at end of word: soda/padda... and compounds
i) a (_ %a // a short and unstressed in words ending in ia: laboratoria/millennia
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.
@@ -39,8 +41,9 @@
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
t) abel %ab&l //tabelopskrif temperatuurtabel etc.
spekt) abel 'A:b@l // respektabel/-e/-heid/-ste
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
@@ -312,7 +315,8 @@
bek (_ b&k // exception to be (C%+ bE
beken b@kEn // 2nd e sound: oorbekend/welbekende
@) beker (_ be@k@r // compounds ending with -beker
bell b&l // inbeller/oorbelle/seepbelle
r) bel b&l // fix e sound: deurbel/oorbel
bell (+ b&l // inbeller/oorbelle/seepbelle
_) bel (C b&l // Belgies/belhamel
bere (_ be@r@ //tediebere pandabere etc.
beste (_ bEst@ // fix e sound: beste/allerbeste/naasbeste/-s
@@ -411,7 +415,7 @@
direk d%irEk // direk/-sie/-te/-theid/indirek...
dirig (e d@r@x2 // fix stress and i sounds: dirigeer/dirigent and compounds
diskre (s d@skrE // fix stress and e sound: diskresie/diskresionêre
&) de (_S2 d@
divide (nd d@v@dE //dividende etc.
&) des (_ d@s
d (_N t //
dj c // palatal stop
@@ -444,8 +448,11 @@
dominee (_ d'o@m@ni
domin (A dOmin' // domineer/dominering
_) dom (ACC dOm // fix o sound: domastrant/domonnosel and derivitives
dosi (s do@s@ // fix stress: (oor)dosis/-se; excep. to rule of stress on -is
@) d (C t // oudste/benoudste/goudstad/steeds/Sweeds
ge) dw dw// fix d sound: rondgedwaal/deurgedwarrel/deurgedwing, etc.
@) ds (_ ts // fix d sound of wrds ending in -ds: buitentyds, etc.
oo) d (r t // fix d sound: broodrooster/doodryp/loodreg/noodroep
p) d (C d // oopdwing/koopdwang
ver) d (C d // verdwyn; see rule: @) d (C t
@) dd d // beddens/bedding
@@ -518,6 +525,7 @@
@) eer 'e@r // this string most often has stress
h) eer e@r // words containing heer take default stress: allesoorheersende
sf) eer e@r // sfeer at end of compounds does not take stress: atmosfeer, etc.
sk) eer e@r // words kontaining skeer take default stress: af/glad/kort/raakgeskeer
Cs) eer e@r // words containing seer (meaning pain) take default stress
w) eer e@r // stress may vary in words containing weer: lugafweer/donderweer
u) eer 'e@r // aktueer/konstrueer/salueer, etc.
@@ -584,6 +592,7 @@
%C) e (C @ // (d)warrelwind/slakkepas
ll) e (lK & // parallel/-le
@s) e (l@ @ // e sound in words like borselkop/voedselaanvulling and many similar
@s) e (lfde '& //fix dieselfde
Cs) e (lf & // e sound in words like terselfdertyd/vanselfsprekend
Cs) e (lle_ & // e sound in words like bloedselle/limfselle/stamselle/tronkselle
AC) e (lh @ // e sound in words like edelheid/ydelheid/kreupelheid
@@ -596,6 +605,7 @@
&) e (lC_ @
@m) e (ld & // aanmeld/voormeld
Csp) e (ld & // fix e sound: borsspeld/haakspeld/doekspeld, etc.
Csp) e (ls & // fix e sound: jakkalspels/penspels/lamspels and similar
elagtig @l'ax2t@x2 // beuselagtig/e/heid/buffelagtig...
ener (gi %En@r // energie/energiek/e
ele (ment El@ // element/e/klankelement
@@ -629,6 +639,7 @@
breip) e (n E // fix e sound in breipen/-ne
&) e (n_ @
&) e (nC_ @
&) e (nde_ @ // fix penultimate e sound: sinkende/drinkende/klinkende
&) e (ng_ E
erf) e (nis @ //erfenis/kultuurerfenis/verderfenis
@@ -740,7 +751,7 @@
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
p) e (ring 'e@ //emansipering 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
@@ -902,6 +913,7 @@
her (eva h&r? // fix e sound: herevalueer...
hersen h&rs@n // restore default stress and fix 2nd e sound: hersenskim/-me/-mig/hersenskudding
hertog (in h%&rt%Ox2 // fix stress and o sound: (aarts/groot)hertogin/-ne and similar
hertzog h&rtsOx2 // fix stress and o sound: hertzog/-isme/-koekies
_) her (uit h''&r_ // restore stress to 1st slb.: heruitgawe/-gee/-saai/-sending
hel h&l
_) helde h'&ld@ // heldedade/heldedood/heldemoed...
@@ -934,7 +946,8 @@
_) 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
C) i (g @ // figuur/figure/stoksielsaligalleenA
X) i (gK+ I // fix stress: (ont)stig/-ting/ontwrig
_ant) i (C i // fix i sounds an words like: antichris/antidoot/antiklimaks, etc.
ps) i (gA i // i sound in words like psigiater/psigoloog, etc.
s) i (gC I // stress: sigverlies/opsigte
@@ -1029,6 +1042,7 @@
iër (@ i'e@r // kopiëring/subsidiërende
fn) is (A @s_ // fix i sound: begrafnisete/-ondernemer/-onkoste
AC) is (_ 'Is // aktivis/humanis/kommunis/pianis/solis/violis/kompromis
pub) is (_ @s // restore defaultstress: pubis, excep. to: AC) is (_
en) is (K @s // stress: beduidenis/bekentenis/gevangenis, etc.
kris) is @s // fix stress: krisis and compounds
pol) is (_ @s // polis and compounds
@@ -1306,6 +1320,7 @@
manier m@ni:r //manier and compounds
manu (sk ,many
marine m%arin@ // marine and compounds
ma (ritz m%a' // fix stress: Maritz/Pietermaritsburg
marmelade m%arm@lA:d@ // fix stress and e sounds: marmelade and compounds
mar (sje m%ar // move default stress: marsjeer and derivitives
mas (biek m%as // move default stress: masbieker/-s
@@ -1494,6 +1509,8 @@
nuan (seer n%y%an // fix stress: (ge)nuanseer/-d
nuus (kierig n%ys // move default stress: nuuskierig/-heid
nuwer (wet n%yv@r // move default stress: nuwerwets/-e
@Cer) ny (_ n'eI // move default stress: lekkerny/raserny/slawerny
@Cer) ny (e n'eI // move default stress: gekkernye/lekkernye/sotternye
.group o
@@ -1516,6 +1533,7 @@
_) ordent %OrdEnt // move default stress: ordentlik/-e/-er/-ste/-heid
orie o@ri
oriu 'o@riW
_) or (ka %Or // move default stress: orkaan/orkane/orkaanwaarskuwing...
orkes %OrkEs // orkes and compounds
_) os (moC %Os // move default stress: osmose/osmoties/-e
@@ -1636,6 +1654,7 @@
_) on (@P2 %On
ondeur %Ond%y@r // ondeurdagte/ondeurdringbaar/ondergrondelik
_) on (fiks On // stress on 1st slb.: onfiks/-e/-heid
onheil ''OnheIl // stress: onheil/e/onheilbringer/onheilsvoorspelling
onheil (ig %Onh'eIl // stress: onheilig/e
onheil (spel %Onh%eIl // stress: onheilspellend/e
@@ -1647,8 +1666,14 @@
onteenseg Onte@ns'&x2 // onteenseglik/e
_) ontel %Ont&l // ontelbaar/ontelbare/ontelbaarheid
on (toe %On // ontoereikend/heid
on (tugtig %On // fix stress and avoid ont prefix: ontugtig/-e/-heid
on (tug On // stress on 1st slb and avoid ont prefix: ontug/-pleger...
on (tyd %On // ontydig and derivitives
_) on (wAs 'On // onwis/onwys
_) onweer Onve@r // stress on 1st slb.: onweer/-snag/-swolke...
_) onweer (l %Onv%e@r // but onweerlegbaar/-bare/-baarheid
_) onweer (spr %Onv%e@r // onweerspreekbaar/onweerspreeklike/onweersproke
_) onweer (staan %Onv%e@r // onweerstaanbaar/-bare/-baarheid
_) onge (@P4 Onx2@
_) ongees %Onx2%e@s // ongeesdriftig; see rule: _) onge (@P4 Onx2@
_) ongeloofli (k Onx2@l'o@fl@ // to avoid "lik" suffix retranslation of "ongeloof"
@@ -1704,12 +1729,14 @@
oor (heers %o@r // move default stress
oorkoepel o@rk'up@l // stress and pronunc. of el: oorkoepelend/oorkoepeling
_) oorlede o@rl'e@d@ // stress oorlede/ne/s
oorle (wing o@rl''e@ // stress on 2nd slb.: oorlewing/-sekuriteit/-situasie
oor (reed %o@r // move default stress
oor (redA %o@r // move default stress: oorredingskrag
oor (rompel %o@r // move default stress
oor (sk %o@r // stress: oorskadu/oorskat/oorskrei
_) oor (skiet o@r // stress on 1st slb.: oorskiet and compounds
oor (spronk %o@r // move default stress: (on)oorspronklik and compounds
oor (stur %o@r // move default stress: oorsturig/-e/-heid
oor (tr %o@r // oortree/oortreding/oortref
oor (tuig %o@r // oortuig/oortuiging/oortuigende
_) oor (vleuel %o@r // move default stress: oorvleuel/-ing
@@ -1728,7 +1755,8 @@
pakke (t p%akE // pakket/-te and compounds
panga paNga // fix g sound: panga/-s
_) pan (to p%an // move default stress: pantoffel and compounds/pantoen
papaja pap'AIa //papaja and compounds
papaja p%ap'A:ia //papaja and compounds
papawer p%apA:v@r // move default stress: papawer/-s and compounds
pam (C p%am // move default stress: pamflet/pampoen/pampoentjies and compounds
pam (pa pam // restore default stress: pampas and compounds
pape (gaai p%ap@ //papegaai and compounds: stress, a and e sounds
@@ -1736,6 +1764,7 @@
pantser pants@r // fix e sound in compounds starting with pantser
pa (pier p%a // papier and compounds
parle (ment p%arl@ // move default stress and fix e sound: parlement and compounds, eg.
parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds
pa (tat p@ // patat/warmpatat/wurgpatat
patie (K p%at'i //words ending in patie has stress at end + a sound/simpatiek
para (C ,para //paralel, paragraaf etc.
@@ -1771,7 +1800,9 @@
per (so p@r // persoon/persone
perso (neel p%&rs%u // personeel and compounds
pervers p@rf&rs // pervers/perversie
_) pi (la p%i // move default stress: pilaar/pilare/pilatus
pi (sto p@ // pistool/pistole and compounds
pizza pitsa // fix zz sound: pizza and compounds
pla (fon pl%a // plafon and many compounds
_) pla (kka pl%a // move default stress: plakkaat/plakkate
plane (tA pl%an@' // planetarium/interplanetêr
@@ -1781,14 +1812,18 @@
plig plIx2 // fix i sound: dienspligontduiker/pliguitvoering
@) pligtig pl'Ix2t@x2 // pligtig in compounds takes stress: dienspligtige, etc.
pof (add pOf_ // fix o sound: (konings)pofadder/-s
po (liep p%u // fix stress and o sound: poliep/-e/-agtig and compounds of poliep
polisie pul'isi
politiek pOl@t'ik
popu ,pOpy
_) por (C %pOr //portret portaal etc.
por (sie pOr // restore default stress: porsie/-s/-tjie
portu (ge p%Ort%y // fix stress: Portugees/Portugese
_) pos (a pOs //posadres/posadministrasie
_) post (K p'@Ust- //post where it means after
_) post (u p%Ost // move default stress: postuur/posture/postuum and compounds of postuur
_) prak (tyk pr%ak // stress: praktyk and compounds
pre (lud pr@ // fix stress and e sound: prelude/-s/(ge)preludeer
pre (mier pr@ // move default stress and fix e sound: premier and compounds
pre (sA pr@ // president/presies/present
pre (se_ pre@ // fix e sound of words ending in -prese
@@ -1802,6 +1837,7 @@
profesie prOf@s'i // fix vowel sounds and move stress
pro (CA pr%u // probeer/produk/proses/professie/provinsie
prokie pro@k%i //sprokie and compounds
proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc.
prosa pr'o@sa //prosa and compounds
proses (_ prus'Es //proses at end of word
@@ -1820,6 +1856,7 @@
pub (li p%Wb
puntener p%Wnt@ne@r // stress and 2nd e sound: puntenerig and derivitives
pu (pil p%y // move default stress: pupil/-le and compounds
.group q
@@ -1827,6 +1864,7 @@
q (q
qu _^_EN // words containing qu are English
quix (otie kw%iks // avoid translation by English rules: quixoties/-e
.group r
@@ -1847,6 +1885,8 @@
_) ra (pport r%a // fix stress: rapport/skoolrapport/rapportryer
rasse ras@ // e sound of compounds starting with rasse
ribbe (tj r'Ibi
rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der
ritme rItm@ // fix e sound in ritmes/ritmespeler
ritu (A r@t%y // ritueel/rituele/ritualisties
_) rol (A rOl? // oprolaksie/roloorvleueling
roetine r%utin@ // stress: roetine/-basis/-besoek/-kontrole...
@@ -1862,11 +1902,11 @@
rivier r@f'i:r
_) ri (g rI // stress on 1st slb.: rigting/-loos/-vas, etc.
rond (r rOnt // grondreuk/grondrel/rondreis/-rol/-ry
rugby r'Wgbi
ru (moer r%W // fix stress and u sound: rumoer/-ig/-heid
rondom rOnt_%Om // rondom/rondomheen/rondomstaner
rolprent rOlprEnt // rolprent/rolprentvertoning and other compounds
ru (briek r%W // move default stress: rubriek/-skrywer, etc.
rugby rWgbi
ru (moer r%W // fix stress and u sound: rumoer/-ig/-heid
.group re
rea (ks r%ia // reaksie/s/skokreaksie
rea (C r%i%a // reageer/realis/me|ties
@@ -1878,6 +1918,7 @@
reden (ACA r@d@n' // redenasie/s
_) redi (gA r%Ed%i // redigeer/geredigeer/-de/ongeredigeerde
refor (m r@f%Or // gereformeerde/reformering/reformasie
regime (_ r@Zi:m // regime/-s and compounds
reg (ist r@x2 // registrasie/-nommer/register/bevolkingsregister
regverdig r&x2f'&rd@x2 // regverdig/onregverdige/regverdigheid - verwyder uit af_list
re (kru r@ // move stress from 1st slb
@@ -1885,6 +1926,7 @@
rele (van r@l@ // relevansie/relevant and derivitives
re (nA r@ // move stress from 1st slb.: renoster
reper (kus r%e@p@r // stress: reperkussie/-s
re (produ r%e@ // fix stress and e sound: reproduksie/reproduseer
repu (t r%Epy // move stress from 1st slb
rewol (u r%Ev%Wl //rewolusie and friends
rewolwer r@v'Olv@r //rewolwer and friends
@@ -1926,6 +1968,8 @@
sch S
sh (_ S
sj S
sjampanje S%ampanj@ // move default stress: sjampanje and compounds
sjerrie SEri // fix e sound: sjerrie and compounds
sjokolade SOk@l'A:d@ // sjokolade and compounds
s (japie s // dorpsjapie/plaasjapie/stadsjapie
@) sj (aar sj // diensjaar/lewensjaar/begrotingsjaar
@@ -1934,19 +1978,24 @@
sig (a@ s@x2 // sigaar/sigare/sigaardosie
siklu (s siklW // siklus and many compounds
sili (nd s@lI // silinder(s)/silinderkoppe
sinteties s@nte@tis // sinteties/e/fotosinteties/-e
si (viel s@ // move default stress and fix i sound: siviel/-e
s (iën S
sending (_ sEnd@N //fix sending at word end
saamge (P6 s'A:mx2@ // saamgepers/-de/saamgetel/saamgeêet
saamgee sA:mx2e@ // fix ee in saamgee; see rule: saamge (P6
sabot (A s%ab%ut // sabotasie/saboteer
salaris s@lA:r@s // salaris/aanvangsalaris/salarisskaal/-uitbetaling
salon salOn // eetsalon/haarkappersalon
_) sam (b s%am // move default stress: sambok/-kke/sambreel/sambrele and compounds
_) same (@P4 s'A:m@ // samekoms/sameswering
samel (C sA:m@l // versamelde: see rule:_) same (@P4 s'A:m@
samen (+ sA:m@n // gesamentlik/-e
_) sar (d s%ar // sardien/-blikkie/sardinies/sardyne
sar (kA s%ar // move default stress: sarkasme/sarkasties/sarkoom
sa (tir s%a // move default stress: satire/satiries/-e
_) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher
_) sede se@d@ // sede/-s|-preek
seker se@k@r // versekering/sekerheid/onsekerheid/sekere
se (ko s@ // sekond/sekonde/sekondes/sekondant
@@ -1956,16 +2005,21 @@
&) sele (_ s'e@l@
no) sele (_ s@l@ // e sounds in onnosele
self (stan s%&lf // move default stress: selfstandig/-e/-heid
seli (ba s%El%i // move default stress and fix e sound: selibaat/selibate
@) sel (wig s'&l // stress: (ver)eenselwig and derivitives
_) semen (t s@mEn // sementtafel/blad/vierkant
semi (na s%Em%i // seminaar/seminare/seminarium
sening se@n@N // sening/haaksening/heupsening
_) senior s''i:ni@r // default stress; fix vowl sounds: senior and compounds starting with senior
senior (itei s%i:n%i%Or // fix vowel sounds: senioriteit
sen (trale s%En // exception to default stress rule
_) ser (e@ s@r // fix stress and 1st e sound: sereen/serene
sere (moni s%Er@ // seremonie/-meester/huwelikseremonie/seremonieel
ser (sant s@r // move default stress: sersant and compounds
ser (vet s@r // servet and compounds, e.g. servetring
ses (uur sEs_ // fix e sound and insert short break: sesuur/-nuus, etc.
setel (K se@t@l // setel and compounds; to avoid "=tel" suffix
sete (ne_ se@t@ // fix e sound: besetenes/aangesetene/ingesetene
siaal Si'A:l // potensiaal/provinsiaal
@@ -1982,6 +2036,7 @@
skan (da sk%an // move default stress: skandaal/skandale/skandalig and compounds
_) skar (C sk%ar // move default stress: skarlaken/skarminkel/skarnier and many compounds
skarrel skar@l // restore default stress: (ge)skarrel/-ing
_) ske (let sk@ // fix stress and 1st e sound: skelet and compounds
skemer ske@m@r // fix 2nd e in many compounds and derivitives of skemer-
sker (muts sk%&r // move default stress: (ge)skermutsel/skermutseling/-e
skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum
@@ -2014,7 +2069,11 @@
@) sief (_ s'if // massief/aggressief/passief/intensief
@) siewe (_ s'iv@ // massiewe/aggressiewe/passiewe/intensiewe
_) sieke sik@ // siekeboeg/-fonds/-lys/-lokaal/-loon
si (llabe s@ // move default stress: sillabe/-s
silwer sIlv@r // silwerskoon/silwerware/compounds of silwer
sim (bo s@m // move default stress: simbool/simbole/simbolies/-e
simbo (liek s@mb%u // fix stress and vowel sounds: simboliek and compounds
simpo (siA s@mpo@ // fix stress and o sound: simposium/simposia and compounds
// sioe Si'u
si (o Si // fisiologie/-logiese/-loog
sio (ne Siu' // emosioneel/emosionele/rasioneel/rasionele, etc.
@@ -2046,7 +2105,7 @@
@) sug (tig s'Wx2 // eersugtig/onbaatsugtig/onselfsugtig, etc.
sukses s%WksEs // sukses/suksesse/suksesvol/reusesukses
su (mmier s%W // move default stress: sumier/-e
su (san s%u // fix stress and u sound: susan/-na
su (saC s%u // fix stress and u sound: susan/-na/susara
swag sv'ax2
swart (gal sw%art // move default stress: swartgallig
swerk sv&rk
@@ -2059,6 +2118,7 @@
stapel stA:p@l // fix e sound: (op)stapeling/stapelaar
staties st'A:tis
steding ste@d@N // besteding and compounds
C) steker ste@k@r // e sound: (aan/dop/kwaad/rugsteker/-s/-y, etc.
wor) stel st@l //worstel e sound in compounds
@) stel (iC st@l // eersteling/gunsteling/wellusteling/worsteling/eerstelig and compounds
@) ste (llen st'& // belangstellendes/gerusstellend/regstellende/teleurstellend
@@ -2137,7 +2197,7 @@
toneel t%une@l
toege (wing t'ux2e@ // exception to _) toege (@P5 tux2@
_) toege (@P5 t'ux2@
toe (laatba t%u // move default stress: (on)toelaatbaar/-bare/-baarheid
toer (@ t%ur // move default stress: toeris/-te/compounds of toernooi
toere tu:r@ // restore default stress
toe (vallig t%u // exception to default stress rule
@@ -2160,6 +2220,7 @@
tuin (ier t%Yyn // move default stress: tuinier and compounds
tussen tWs@n // tussenin/tussenbeide/tussenganger
tuur t'yr
parti) tuur ty:r // compounds ending with partituur take default stress: musiekpartituur
s) tuur ty:r // "uur" in stuur takes default stress: weggestuur
@) ty (dig t'eI // gelyktydig/vroegtydig
@@ -2192,7 +2253,7 @@
_) 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
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
@@ -2216,7 +2277,7 @@
tes (_ t@s
&) tel (_S3 t@l
&) tel (_ t@l
teleur t@lY@r // teleur/teleurstelling/teleurgesteld
&) tels (_S4 t@ls
sleu) tel t@l //sleutel in compounds
@@ -2271,7 +2332,8 @@
uitgee (+ 'Yytx2e@ // se rule: _) uitge (@P5 Yytx2@
uitsonderli (k %YytsOn@rl@ // move default stress: uitsonderlik/-e vs. uitsonder
uit (sorteer ''Yyt // remove stress from -eer and place on 1st slb
uitstaande %YytstA:nd@ // move default stress
uitspreekl %Yytspre@kl // fix stress and avoid -lik suffix: onuitspreeklik/-e
uitstaan (C %YytstA:n // move default stress: uitstaande/onuitstaanbaar/-bare
uit (steken %Yyt // move default stress
uit (spatt %Yyt // move default stress
_) uitge (@P5 'Yytx2@ // words beginning with uitge have stress on 1st slb
@@ -2314,6 +2376,7 @@
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 (kyker f'&:r //verkyker and compounds
_) ver (@P3 f@r
verant (w f@r%ant // (on)verantwoordelik/-heid/verantwoording
verende f'e@r@nd@
@@ -2468,6 +2531,8 @@
@) ws (_N _^_EN
@) w (_N _^_EN
@) werste vIrst@
k) w (oA v // fix w sound: dankwoord/werkwoord/skoonmaakwoede/spreekwoord
@C) w (oCC v // fix w sound: kubiekwortel/steekwond/onafhanklikwording/republiekwording/varkwors
woe (styn v%u // move default stress: woestyn and compounds
wolke vOlk@ // nimbuswolke/wolkekrabber
woorde vo@rd@
@@ -2484,6 +2549,7 @@
.group z
z z
z (z
t) z s // fix s sound: britz/fritz/hertz and similar
.group
-17
View File
@@ -48,23 +48,6 @@ y ipsilon
_z zet
ž Zet
: dv'ojtetSka
% pRotsento
+ plus
€ eURo
@ zavina:tS
& ampr-sent
# gR^i:Zek
/ lomeno
\\ beksleS
! vigR^itSn^i:k
° stupen^
× kRa:t
÷ Jeleno
§ paRagRaf
~ tilda
^ zdR^i:Ska
© k'opiRajt
_#9 t'ap
_#32 m'ezeRa // space
+18 -1
View File
@@ -632,7 +632,24 @@ _flegma) ti ti
ŕ r-
ü i
$ dola:R
$ dola:R
: dv'ojtetSka
% pRotsento
+ plus
€ eURo
@ zavina:tS
& ampr-sent
# gR^i:Zek
/ lomeno
\\ beksleS
! vigR^itSn^i:k
° stupen^
× kRa:t
÷ Jeleno
§ paRagRaf
~ tilda
^ zdR^i:Ska
© k'opiRajt
. tetSka
. (. _:
-10
View File
@@ -17,16 +17,6 @@
_. pUnkt
_, kOma
€ OY*o:
£ paUnd
% p@-*o:ts'Ent
& Unt
@ kl'ame:*,af@
# nUm3
+ plUs
= glaIC
~ tIld@
\ bEkslES
_| paIp
_: d'Op@lp,UNkt
+13 -2
View File
@@ -1131,8 +1131,19 @@
š S
ž Z
, (D kOma
$ dOl'A:
, (D kOma
$ dOl'A:
€ OY*o:
£ paUnd
% p@-*o:ts'Ent
& Unt
@ kl'ame:*,af@
# nUm3
+ plUs
= glaIC
~ tIld@
\ bEkslES
. pUnkt
. (. _:
+3 -4
View File
@@ -11,7 +11,7 @@
// Conditional rules
// ?2 Use long 'a' in 'bath'
// ?3 General American
// ?4 Not General American
// ?!3 Not General American
// ?5 split [3:] er [3:], ir [IR], ur [VR]
// ?6 'one' = [wVn], 'of' = [Vv]
// ?7 Scottish
@@ -134,8 +134,7 @@ _0C h'Vndr@d
_0M1 T'aUz@nd
_0M2 m'Ili@n
_0M3 b'Ili@n
_0and @n
?3 _0and
?!3 _0and @n
_dpt pOInt
_roman roUm@n_
@@ -1462,7 +1461,7 @@ rapport rap'o@
rarest re@r@st
rascal raask@L
ratatouille rat@t'u:I2
rather rA:D3
?!3 rather rA:D3
ratio reISI2oU
rationale raS@n'al
ravine r@vi:n
+1 -1
View File
@@ -23,7 +23,7 @@
// Conditional rules
// ?2 Use long 'a' in 'bath'
// ?3 General American
// ?4 Not General American
// ?!3 Not General American
// ?5 split [3:] er [3:], ir [IR], ur [VR]
// ?6 'one' = [wVn], 'of' = [Vv]
// ?7 Scottish
-20
View File
@@ -33,26 +33,6 @@ _y i:gR'Ek
// character names
! Eksklamassj'O~
$ dOlaR
@ aRobas
% puRsA~
& _e
+ plys
~ tilde
€ @Ro
¢ sEnt
¥ i;En
£ livR
° d@gRe
± pl'yz_'u_mw'E~
× myltip@-lj'e_p'aR
÷ diviz'e_p'aR
¼ W~_k'aR
½ W~_d@m'i
¾ tRw'a k'aR
© _^_EN
® R@ZistR'@d_m'aRk
//_cap k,ap@-t@L
+21 -1
View File
@@ -502,7 +502,7 @@
alc) oo (l O // alcool
z) oo o // zoo
oo u // pool
oo (X u // pool
_gal) op (_ o // galop
_sir) op (_ o // sirop
@@ -772,3 +772,23 @@
// symbols that are normally spoken when reading text
, (D pilk:u
! Eksklamassj'O~
$ dOlaR
@ aRobas
% puRsA~
& _e
+ plys
~ tilde
€ @Ro
¢ sEnt
¥ i;En
£ livR
° d@gRe
± pl'yz_'u_mw'E~
× myltip@-lj'e_p'aR
÷ diviz'e_p'aR
¼ W~_k'aR
½ W~_d@m'i
¾ tRw'a k'aR
© _^_EN
® R@ZistR'@d_m'aRk
-6
View File
@@ -323,13 +323,7 @@ ly Ellipsilon
ny En^
_. pont
% sa:zAle:k
@ kukAts
€ EuR2o
+ plus
§ pAR2AgR2AfuS
Ft foR2int
$ dolla:R2
+7 -1
View File
@@ -143,7 +143,7 @@ _minde) gy (ik J:
ly j
lly jj
A) lj (A lj_|
A) lj (A ljj
C) ly (_ li
_kéth) ly li
@@ -320,6 +320,12 @@ _szára) zs (ág zS
ñ n^
ø Y
% sa:zAle:k
@ kukAts
€ EuR2o
+ plus
§ pAR2AgR2AfuS
. pont
. (. _:
\.) .
+14 -3
View File
@@ -529,11 +529,21 @@ The dictionary list is searched from bottom to top. The first match that satisf
then if "to" is at the end of the clause, we get [tu:], if not then we get [t@].
<p>&nbsp;<hr>
<h3>4.5 Numbers and Character Names</h3>
<h4>4.5.1 Letter names</h4>
<h3>4.5 Conditional Rules</h3>
Rules in a <b>_rules</b> file and entries in a <b>_list</b> file can be made conditional. They apply only to some voices. This can be useful to specify different pronunciations for different variants of a language (dialects or accents).<p>
Conditional rules have &nbsp; <b>?</b> &nbsp; and a condition number at the start if the line in the <b>_rules</b> or <b>_list</b> file. This means that the rule only applies of that condition number is specified in a <b>dictrules</b> line in the <a href="voices.html">voice file</a>.<p>
If the rule starts with &nbsp; <b>?!</b> &nbsp; then the rule only applies if the condition number is <b>not</b> specified in the voice file. eg.<p>
<pre>
?3 can't kant // only use this if the voice has: dictrules 3
?!3 rather rA:D3 // only use if the voice doesn't have: dictrules 3
</pre>
<p>&nbsp;<hr>
<h3>4.6 Numbers and Character Names</h3>
<h4>4.6.1 Letter names</h4>
The names of individual letters can be given either in the <b>_rules</b> or <b>_list</b> file. Sometimes an individual letter is also used as a word in the language and its pronunciation as a word differs from its letter name. If so, it should be listed in the <b>_list</b> file, preceded by an underscore, to give the letter name (as distinct from its pronunciation as a word). eg. in English:
<pre> _a eI</pre>
<h4>4.5.2 Numbers</h4>
<h4>4.6.2 Numbers</h4>
The operation the TranslateNumber() function is controlled by the language's <code>langopts.numbers</code> option. This constructs spoken numbers from fragments according to various options which can be set for each language. The number fragments are given in the <b>_list</b> file.
<p>
<ul>
@@ -562,5 +572,6 @@ _0 to _9 &nbsp;
</tbody></table>
</ul>
</body>
</html>
+13 -11
View File
@@ -306,7 +306,7 @@
1 vdiph/ae fr_ca
1 vdiph/ae_2 en_n
8 vdiph/ai base2 eo sk hr mk it pt vi
3 vdiph/ai_2 en_us cy
2 vdiph/ai_2 cy
1 vdiph/ai_3 no
1 vdiph/ai_4 af
2 vdiph/ai_5 de la
@@ -320,8 +320,8 @@
6 vdiph/au_4 base2 cy eo sk it is
1 vdiph/ee-e hi
4 vdiph/eei en de pt vi
2 vdiph/eei_2 eo fi
3 vdiph/eei_3 en_us en_rp sk
3 vdiph/eei_2 en_us eo fi
2 vdiph/eei_3 en_rp sk
1 vdiph/eei_4 nl
3 vdiph/eeu pt vi zhy
2 vdiph/eeu_2 la pt_pt
@@ -412,7 +412,7 @@
4 vowel/& en_rp fi hi sv
4 vowel/0 base2 en hi pt
4 vowel/0_2 en_n en_wm pt_pt sw
5 vowel/0_3 en_us en_sc en_rp hu
4 vowel/0_3 en_us en_sc en_rp hu
2 vowel/@_2 fr
6 vowel/@_3 en_sc de hi
1 vowel/3_2 en_n
@@ -429,7 +429,7 @@
12 vowel/a#_3 en en_n en_us en_wm de hi ru pt_pt vi zhy
4 vowel/a_4 en_wm el vi
3 vowel/a_5 it sv sw
7 vowel/aa en_us fi fr_ca no zhy
5 vowel/aa fi fr_ca no zhy
1 vowel/aa# fi
3 vowel/aa_2 en cy
1 vowel/aa_3 af
@@ -437,6 +437,7 @@
2 vowel/aa_5 en_n
2 vowel/aa_6 de
1 vowel/aa_7 nl
2 vowel/aa_8 en_us
3 vowel/a_en en fr
1 vowel/@_bck hi
15 vowel/e base2 en en_n af cy eo fr hr mk it la pt ++
@@ -501,9 +502,8 @@
5 vowel/u# en en_sc
6 vowel/u_2 fi fr sk hr mk ro
1 vowel/u#_2 sv
1 vowel/u_3 ro
2 vowel/u_3 en_us ro
1 vowel/u#_3 en_n
1 vowel/u_4 en_us
2 vowel/u#_4 en_sc
1 vowel/u_5 sw
3 vowel/u_6 en_rp pt_pt
@@ -549,16 +549,18 @@
1 vwl_en_rp/oo en_rp
1 vwl_en/u en
4 vwl_en/u_L en en_n en_us en_rp
1 vwl_en_us/3_us en_us
2 vwl_en_us/3_us en_us
2 vwl_en_us/a en_us
2 vwl_en_us/ar2 en_us
1 vwl_en_us/aai en_us
2 vwl_en_us/ar en_us
1 vwl_en_us/ee en_us
1 vwl_en_us/er en_us
1 vwl_en_us/i_final3 en_us
2 vwl_en_us/ii en_us
2 vwl_en_us/ir en_us en_sc
4 vwl_en_us/or en_us en_sc
1 vwl_en_us/@r_us en_us
1 vwl_en_us/oo en_us
1 vwl_en_us/oor en_us
3 vwl_en_us/or en_us en_sc
1 vwl_en_us/ur en_us
1 vwl_en_us/V en_us
2 vwl_en_wm/aa en_wm
BIN
View File
Binary file not shown.
+44 -43
View File
@@ -10,17 +10,18 @@ phoneme @ // Schwa
formants vowel/@
unstressed
linkout r-
length 140
length 130
endphoneme
phoneme 3 // Schwa, used for rhotic schwa in American
vowel starttype (@) endtype (@)
formants vwl_en_us/@r_us
formants vwl_en_us/3_us
// formants vowel/3_2
unstressed
linkout r-
beforevowel @
length 175
length 180
endphoneme
@@ -37,7 +38,7 @@ phoneme @5 // Schwa, changes to U before a vowel
formants vowel/@
unstressed
beforevowelpause U
length 140
length 130
endphoneme
@@ -52,35 +53,33 @@ endphoneme
phoneme a
vowel starttype (a) endtype (@)
length 200
length 190
formants vwl_en_us/a
reduceto a2 0
endphoneme
phoneme aa // 'bath' etc.
vowel starttype (a) endtype (@)
length 190
formants vwl_en_us/a
linkout r-
endphoneme
phoneme a2
vowel starttype (@) endtype (@)
unstressed
length 150
length 140
formants vowel/a#_3
linkout r-
endphoneme
phoneme aa // 'bath' etc.
vowel starttype (a) endtype (@)
length 200
formants vwl_en_us/a
// formants vowel/a_2
linkout r-
endphoneme
phoneme E
vowel starttype (e) endtype (e)
length 160
formants vwl_en_us/ee
// formants vowel/ee_2
reduceto I 0
endphoneme
@@ -92,6 +91,7 @@ phoneme I
linkout ;
endphoneme
phoneme I2
vowel starttype (i) endtype (i)
unstressed
@@ -111,15 +111,15 @@ endphoneme
phoneme 0
vowel starttype (o) endtype (o)
length 190
formants vowel/aa
length 180
formants vowel/aa_8
reduceto @ 0
endphoneme
phoneme V
vowel starttype (a) endtype (@)
length 150
length 170
formants vwl_en_us/V
// formants vowel/V_2
reduceto @ 0
@@ -128,31 +128,32 @@ endphoneme
phoneme U
vowel starttype (o) endtype (o)
length 150
length 140
formants vowel/8_2
endphoneme
phoneme A:
vowel starttype (a) endtype (a)
length 210
formants vowel/aa
before r vwl_en_us/ar2
length 200
formants vowel/aa_8
before r vwl_en_us/ar
linkout r-
endphoneme
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American
vowel starttype (a) endtype (@)
length 250
formants vwl_en_us/ar2
length 240
formants vwl_en_us/ar
appendph r
endphoneme
phoneme 3:
vowel starttype (@) endtype (@)
length 230
length 220
// formants vwl_en_us/@r_us2
formants vwl_en_us/3_us
// reduceto @ 0
linkout r-
@@ -161,7 +162,7 @@ endphoneme
phoneme i:
vowel starttype (i) endtype (i)
length 165
length 160
formants vowel/i_en
after w w/wi2
linkout ;
@@ -170,7 +171,7 @@ endphoneme
phoneme O:
vowel starttype (o) endtype (o)
length 210
length 200
formants vowel/0_3
before r vwl_en_us/or
reduceto @ 0
@@ -180,7 +181,7 @@ endphoneme
phoneme O@
vowel starttype (o) endtype (@)
length 240
formants vwl_en_us/or
formants vwl_en_us/oor
appendph r
endphoneme
@@ -196,57 +197,57 @@ endphoneme
phoneme O
vowel starttype (o) endtype (o)
length 150
formants vowel/0_3
formants vwl_en_us/oo
reduceto @ 0
endphoneme
phoneme u:
vowel starttype (u) endtype (u)
length 190
formants vowel/u_4
length 170
formants vowel/u_3
before l/2 vwl_en/u_L-40+l/L2_uL
endphoneme
phoneme aU
vowel starttype (a) endtype (u)
length 210
length 200
formants vdiph/au_2
endphoneme
phoneme oU
vowel starttype (@) endtype (u)
length 230
length 210
formants vdiph/8u
endphoneme
phoneme aI
vowel starttype (a) endtype (i)
length 220
formants vdiph/ai_2
length 210
formants vwl_en_us/aai
endphoneme
phoneme eI
vowel starttype (e) endtype (i)
length 220
formants vdiph/eei_3
length 210
formants vdiph/eei_2
endphoneme
phoneme OI
vowel starttype (o) endtype (i)
length 230
length 220
formants vdiph/ooi
endphoneme
phoneme e@
vowel starttype (e) endtype (@)
length 260
length 250
formants vwl_en_us/er
appendph r
endphoneme
@@ -254,7 +255,7 @@ endphoneme
phoneme i@
vowel starttype (i) endtype (@)
length 240
length 220
formants vwl_en_us/ir
appendph r
endphoneme
@@ -262,7 +263,7 @@ endphoneme
phoneme U@
vowel starttype (@) endtype (@)
length 240
length 220
formants vwl_en_us/ur
linkout r-
endphoneme
@@ -301,7 +302,7 @@ phoneme t# // reduced [t] as in "city"
vowelin f1=0 f2=1700 -300 300 f3=-100 80
vowelout f1=0 f2=1700 -300 300 f3=-100 80
lengthmod 5
wave x/d%80
wave x/d%90
endphoneme
+1 -1
View File
@@ -62,7 +62,7 @@ endphoneme
phoneme a:
vowel starttype (a) endtype (a)
length 260
length 270
formants vowel/a
endphoneme
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+23 -2
View File
@@ -161,6 +161,7 @@ int compile_line(char *linebuf, char *dict_line, int *hash)
int ix;
int step;
int n_flag_codes = 0;
int flag_offset;
int length;
int multiple_words = 0;
char *multiple_string = NULL;
@@ -189,7 +190,17 @@ int compile_line(char *linebuf, char *dict_line, int *hash)
if((c == '?') && (step==0))
{
// conditional rule, allow only if the numbered condition is set for the voice
flag_offset = 100;
p++;
if(*p == '!')
{
// allow only if the numbered condition is NOT set
flag_offset = 132;
p++;
}
ix = 0;
if(isdigit(*p))
{
@@ -201,7 +212,7 @@ int compile_line(char *linebuf, char *dict_line, int *hash)
ix = ix*10 + (*p-'0');
p++;
}
flag_codes[n_flag_codes++] = ix+100;
flag_codes[n_flag_codes++] = ix + flag_offset;
c = *p;
}
@@ -859,7 +870,17 @@ char *compile_rule(char *input)
if(rule_cond[0] != 0)
{
ix = -1;
ix = atoi(rule_cond);
if(rule_cond[0] == '!')
{
// allow the rule only if the condition number is NOT set for the voice
ix = atoi(&rule_cond[1]) + 32;
}
else
{
// allow the rule only if the condition number is set for the voice
ix = atoi(rule_cond);
}
if((ix > 0) && (ix < 255))
{
output[len++] = RULE_CONDITION;
+27 -5
View File
@@ -666,7 +666,7 @@ int Translator::IsVowel(int letter)
void SetLetterVowel(Translator *tr, int c)
{//=======================================
tr->letter_bits[c] = 0x81; // group 0 only
tr->letter_bits[c] = (tr->letter_bits[c] & 0x40) | 0x81; // keep value for group 6 (front vowels e,i,y)
}
void ResetLetterBits(Translator *tr, int groups)
@@ -1773,9 +1773,21 @@ void Translator::MatchRule(char *word[], const char *group, char *rule, MatchRec
case RULE_CONDITION:
/* conditional rule, next byte gives condition number */
condition_num = *rule++;
if((dict_condition & (1L << condition_num))==0)
failed = 1;
if(condition_num >= 32)
{
// allow the rule only if the condition number is NOT set
if((dict_condition & (1L << (condition_num-32))) != 0)
failed = 1;
}
else
{
// allow the rule only if the condition number is set
if((dict_condition & (1L << condition_num)) == 0)
failed = 1;
}
if(!failed)
match.points++; // add one point for a matched conditional rule
break;
}
@@ -2677,8 +2689,18 @@ int Translator::LookupDict2(char *word, char *word2, char *phonetic, unsigned in
if(flag >= 100)
{
// conditional rule
if((dict_condition & (1 << (flag-100))) == 0)
condition_failed = 1;
if(flag >= 132)
{
// fail if this condition is set
if((dict_condition & (1 << (flag-132))) != 0)
condition_failed = 1;
}
else
{
// allow only if this condition is set
if((dict_condition & (1 << (flag-100))) == 0)
condition_failed = 1;
}
}
else
if(flag > 64)
+1 -1
View File
@@ -389,7 +389,7 @@ void Translator::CalcLengths()
if(p->type == phLIQUID)
{
p->length = speed1;
p->pitch1 = p->pitch2 - 20; // post vocalic [r/]
//p->pitch1 = p->pitch2 - 20; // post vocalic [r/]
}
if(next->type == phVSTOP)
+1 -1
View File
@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"
const char *version_string = "1.27.09 12.Jul.07";
const char *version_string = "1.27.10 15.Jul.07";
const int version_phdata = 0x012701;
int option_device_number = -1;
+1 -2
View File
@@ -317,8 +317,7 @@ Translator *SelectTranslator(const char *name)
case L('h','u'): // Hungarian
{
static int stress_amps_hu[8] = {17,17, 19,19, 20,24, 24,22 };
static int stress_lengths_hu[8] = {185,190, 190,190, 0,0, 210,220};
// static int stress_lengths_hu[8] = {180,180, 200,190, 0,0, 210,225};
static int stress_lengths_hu[8] = {185,195, 195,190, 0,0, 210,220};
static const unsigned int replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0};
static const unsigned int replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute
+9 -5
View File
@@ -713,6 +713,7 @@ if((wmark > 0) && (wmark < 8))
length = 999;
while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(word)))
{
char *p;
// This word looks "unpronouncable", so speak letters individually until we
// find a remainder that we can pronounce.
word += TranslateLetter(word,phonemes,0);
@@ -722,13 +723,15 @@ if((wmark > 0) && (wmark < 8))
strcpy(word_phonemes,phonemes);
return(0);
}
if(memcmp(word,"'s ",3) == 0)
p = &word[word_length-3];
if(memcmp(p,"'s ",3) == 0)
{
// remove a 's suffix and pronounce this separately (not as an individual letter)
add_plural_suffix = 1;
word[0] = ' ';
word[1] = ' ';
break;
p[0] = ' ';
p[1] = ' ';
last_char = p[-1];
}
length=0;
@@ -1903,7 +1906,8 @@ if((c == '/') && (langopts.testing & 2) && isdigit(next_in) && IsAlpha(prev_out)
{
if(!IsAlpha(prev_out) || (langopts.ideographs && (c >= 0x3000)))
{
letter_count = 0;
if(prev_out != '\'')
letter_count = 0; // don't reset count for an apostrophy within a word
if((prev_out != ' ') && (prev_out != '\''))
{