[1.40.07]

*_list files. Ad feature for ordinal numbers (for some languages).
*_list files. Allow hyphenated word groups to start with a number.
*_list files. Allow "words" of symbols to contain brackets (move check for bracket characters to after the *_list lookup).
--punct option. Fix some unnecessary pauses when speaking punctuation names.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@215 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2009-01-18 11:37:10 +00:00
parent 718b955bfc
commit 0d3e23ef39
39 changed files with 1331 additions and 357 deletions
+88 -9
View File
@@ -105,6 +105,55 @@ _stk str'e@p
_tld t'Ild@
// symbols
_' tik
_" hA:l_|A:n
_- kOp@lte@k@n
__ leIn
_? frA:x2te@k@n
_: dWb@lpWnt
_; kOmapWnt
_, kOma
_| afstre@p
_( lINshaki
_) r&x2shaki
_[ lINs||blOkhaki
_] r&x2s||blOkhaki
_{ lINs||krWlhaki
_} r&x2s||krWlhaki
_< kleIn@r_|as
_> x2ro@t@r_|as
= _x2@l'eIk_ $max3
* st&r $max3
+ pl'Ws $max3
. pWnt $max3
~ tIld@ $max3
% p@rs'Ent $max3
# nOm@r $max3
& _|amp&rsant
£ pO:nt
€ Y@ru
/ stre@p $max3
@ beI_:
\ trystre@p
¥ jEn
§ afde@l@N
¶ parax2rA:f
¶¶ parax2rA:v@
¤ mWnte@k@n
© kup'ir&x2
° x2rA:d@
− minWs
± plWs_OfminWs
µ mikru
× mA:l
÷ x2@de@ldY@r
♯ krYys
♭ mOl
¼ @kwart
½ @halv@
¾ drikwart
⅓ d&:rd@
⅔ tw,e@d'&:rd@s
@@ -146,7 +195,16 @@ _0and _!En
_dpt 'pWnt
_roman rum'eIns@
// ordinal numbers
_ord d@ // default suffix
_ord20 st@ // for 20,30,etc
_1o _'e@rst@
_2o tw'e@d@
_3o d'&:rd@
_7o s'e@v@nd@
_8o _'ax2st@
_9o ne@x2@nd@
_0Co h'On@rtst@
@@ -158,7 +216,6 @@ algerië alx2'e@re@:@-
antwerpen antv&rp@n
babilon babilOn
bangladesj baNglad'ES
bastille bast'il
bellevue b&lvju:
bermuda $2
bethlehem bEt_liEm
@@ -166,6 +223,7 @@ boedapest budapEst
boekarest bukarEst
bolivië bul'Ivi:@
bonnievale _^_EN
bordeaux bOrd'@U
brittanje $2
brooklyn _^_EN
burundi bur'undi
@@ -174,6 +232,7 @@ carolina karul'ina
ceres se@r@s
cesaréa s@s@ri:ja
ceylon s@lOn
chicago _^_EN
china S'ina
clanwilliam kl&:nw'ili@m
colenso kul'E:ns@U
@@ -215,6 +274,7 @@ kuruman kuruman
kwa kwa $u $only // KwaZulu, etc.
lesotho l@sutu
limpopo l@mpo@po@
(los angeles) lOs_'andZ@li:z
macedonië mas@d'o@ni@
madagaskar madax2'askar
majuba maj'uba
@@ -240,6 +300,8 @@ robertson _^_EN
sahara sah'A:ra
secunda s@kunda
senekal se@n@kal
seychelle seIS'&l@
seychelles seIS'&lz
singapoer siNgapur
soshanguve sOSaNg'u:vE
soweto suw'E:tu
@@ -276,10 +338,12 @@ André 'andreI
annette an'Et
antoinette antun'Et
barbara bA:b@ra
bea bi:ja
benjamin bEndZ@m@n
bennett bEn@t
bester b'Est@r
beyers beI@rs
blignault blIx2n@Ut
blomerus blum'e@rWs
botha bo@ta
bouwer b@U@r
@@ -289,7 +353,9 @@ breytenbach breIt@nbax2
brouwer bruw'&:r
caesar siz@r
carl kA:r@L
casanova kasan'o@va
cecil sEs@l
cecile s@si:l
cecilia s@si:lia
charl SA:l
charles _^_EN
@@ -300,6 +366,7 @@ conradie $2
chris krIs
christo krIstu
christoffel kr@stOf@l
christiaan krIstiA:n
christian krIstian
christelle kr@st&l
christina kr@stina
@@ -313,7 +380,7 @@ david _^_EN
(da vinci) da||v'intSi
debora d@bo@ra
debussy d@bus'i:
de d@
de d@ $only
(de la) d@||la $u // de la Rey/de la Bat, etc.
der d@r
derick dErik
@@ -388,7 +455,7 @@ labuschagne labWsk'ax2ni
langenhoven laN@nho@f@n
lasarus lA:s@r%Ws
lategan lA:t@x2an
le l@
le l@ $only
leandra li'andra
leonardo liu:n'ardu
levi le@fi
@@ -400,6 +467,7 @@ mbeki mbE:ki
magdalena $3
malan mal'an
malherbe mal'&rb@
marelie mar@li
margaret _^_EN
margaretha marx2ar'e@ta
marguerite mA:g@r'i:t
@@ -416,6 +484,7 @@ mefistofeles mEfist'o@f@l@s
melanie m@lA:ni
meraai m@rAI
messias m@sijas
metusalem m@t'ysalEm
michael _^_EN
michelle miS'&l
michiel $2
@@ -439,6 +508,7 @@ pierre p'e@r
petronella pe@trun'&la
petrus pe@trWs
phoebe fi:bi
picasso pik'asu
quixote kix2'OtE
rachmaninoff rax2m'aninOf
rademeyer rA:d@meI@r
@@ -466,6 +536,7 @@ schutte skWt@
sebastian s@bastian
servaas s@rfA:s
shakespeare _^_EN
sigmund sigmunt
sophia suf'i:ja
sophie _^_EN
stephan ste@fan
@@ -503,7 +574,8 @@ schalkwyk skalkveIk
schreiner SraIn@r
tony t@Uni
trichardt trix2A:rt
vivaldi viv'aldi
viviers v@v@je@
khumalo kum'A:lu
zuma zu:ma
@@ -513,10 +585,13 @@ boeing _^_EN
centaurus $2
checkers tSEk@rs
chrysler kraIsl@r
citroên s@trun
ferrari f@rA:ri
martini mart'i:ni
naspers nasp&rs
toyota $2
venda vEnda
volvo vOlvu
wimpy wImpi
// article
@@ -634,7 +709,7 @@ my $u $verbf
jou $u $only $verbf
hom $u $verbf
haar $u $only $verbf
se Es@ $capital
se Es@ $capital $only
dis $u
@@ -702,13 +777,14 @@ camembert kam@mb'&:r
camouflage kamufl'A:Z
capita kapita
casino kas'i:n@U
cedille s@dIl@
charisma kar'Isma
chemikalieë $3
crescendo kr@SEndu
dadelik dA:d@lIk
darem dar@m
dekade dEk'A:d@
dekreling dEkre@l@N
deurentyd dy@r@nteIt
deurgaans $1
deurkruis $2
@@ -724,6 +800,7 @@ dusver dWsf&r
eenkeer $1
efesiër if'e@si@r
effense Ef@ns@
eks Eks
ekself %&ks'&lf
elders &ld@rs
elite il'i:t
@@ -802,10 +879,12 @@ jawoord jA:vo@rt
jupiter jupit@r
kafee kaf'e@
kameraderie kam@rA:d@r'i
katswink katsv@nk
kaviaar kavi'A:r
klaasvakie $2
knapsekêrel knaps@k&:r@l
kolossense kOl@s'e~ns@
komaan kOmA:n
konkawe kOnk'A:v@
konte $1
@@ -861,7 +940,6 @@ negering n@x2e@r@N
netjies nE:icis
netjiese nEicis@
netsowel nEtso@v&l
neurone nY@r'o@n@
nikswerd nIksv&:rt
nimmermeer $1
nirvana n@rvA:na
@@ -976,6 +1054,7 @@ stilswye $1
suburbia sWb'Wrbija
tanga taNga
tango taNx2u
tenminste $2
terdeë $2
terug t@-rWx2
@@ -1023,7 +1102,7 @@ volte $1
voluit fOl_Yyt
voorgee fo@rx2e@
voorkeer $1
voorkom $2
voorkom $2 $only
voormalige fo@rm'A:l@x2@
//voorsien $2
voorwaar $2
+86 -66
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
@@ -24,6 +24,7 @@
&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
&r) a (_ %a // short final a in words ending in -ra: infra/mantra/sentra, etc.
Cbr) a (_ A: // long a: blommetjies-/kantbra
&dr) a (_ A: // exceptwrds ending in -dra: ingedra/oorgedra, etc.
_) a (lA %a //short unstressed a for words starting with Al
i) a (tieC %a //words containing iatief/w short unstressed a
@@ -61,6 +62,7 @@
ara (bi %arA: // fix 1st a sound and stress: Arabië/Arabies/-e
ara (bier %ar%a // Stress and a sounds: Arabier/-e
C) are (CA A:r@ // e sound: amptenaredom/blaredak/garebiltong/haredos/jarelange
K) ar (puis %ar // fix stress: (h)arpuis and compounds
Cel) ary ar'eI // move default stress: bedelary/bottelary/dobbelary/huigelary/smokkelary...
@@@smokkel) ary %ar%eI // default stress: diamant-/drank-/dwelm-/goud-/kokaïensmokkelary, etc.
amarula %am%arul%a // fix stress and a sounds: amarula and compounds
@@ -70,6 +72,7 @@
arm (last %ar@-m // move default stress: armlastig/-e
C) asie 'A:si
@@@@) asie A:s%i
C%C) asie A:si // restore default stress: bok-/dikmelkkasie and similar
oub) asie A:si // restore default stress: oubasie/-s
@form) asie A:si // restore default stress to compounds ending in -formasie: graniet-/grond-/rotsformasie, etc.
pl) asie A:s%i // restore default stress: gemeenplasies/gemeenskapsplasies and similar
@@ -86,7 +89,7 @@
a (Cie A: // apies/middagslapie
a (Cy %a
a (CA A:
_) aka %ak@ //akademie etc.
aka (de@ %ak@ // (sport-/leierskaps)akademie/akademies/akadeem/akademe
akkedi %ak@dI //akkedis and compounds
akkommo (d %ak%Om@ // fix stress and vowel sounds: akkommodasie/akkommodeer/-derend
a (kkoord %a // move default stress: akkoord/-e and compounds
@@ -358,6 +361,7 @@
angleer aNle@r // hangleer/slangleer and compounds
angola A~Nx2'o@la //Angola, Angolabos etc.
angol (e %A~Nx2%ul //Angolese etc.
angora %aNgO:r%a // angora(trui-/wol, etc.)
_) ann (a@ %an // move default stress: annaal/annale
g) an (_ _^_EN //if it ends in gan it is English
C) anette (_ %anEt // Janette/Sanette
@@ -407,13 +411,14 @@
@) ba (ren b'A: // onrusbarend/opsienbarend and derivatives
ba (retK b%a // move default stress and shorten a sound: baret/-te
ba (riton ba // shorten a sound: bariton and compounds
ba (rok b%a // fix stress and a sound: barok and compounds
barok bar''Ok_ // fix stress and a sound: barok/-instrumente/-agtig
baro (meter bar%u // fix a and o sounds: barometer and compounds
ba (ron b%a // fix stress and a sound: baron/-ne and compounds
_) ba (sa b%a fix stress and 1st a sound: basalt and compounds
ba (sili b%a // fix stress and 1st a sound: basilie/-kruit, etc.
ba (sieli b%a // fix stress and 1st a sound: basielie/-kruit, etc.
basotho b%asut%u // fix stress and vowel sounds: Basotho/-0ponie and similar
basi (s bA:s@ // basis and compounds
bastille b%asti:l // Bastille and compounds like Bastilledag
batal (jon b%at%al // shorten 1st a sound, moved stress: bataljon and compounds
ba (tik b%a // fix stress and a sound: batik/-doek/-kuns/-werk
bbe (rr b@ // fix e sound: rubberrand/-ranke/-ring/-roller, etc.
@@ -444,6 +449,7 @@
baba bA:ba
baba (tjie bA:baI // fix 2nd a sound: babatjie/-s
_) bad (A bat_ // shorten a sound, pause: bad-/afloop/artikel/olie/oord/uitloop
baklei b@kl'eI // baklei/er
_) bak (o bak_ // fix a sound and stress: bakoor/bakore
balaklava b%al%aklA:v%a // fix stress, a and v sounds: balaklava and compounds
@@ -465,6 +471,7 @@
bara (k bar'a
bar (bA b%ar // barbaar/barbare and derivatives/barbier and compounds
bastion bastiOn // -tion not English: bastion/-s and compounds
_) bate b''A:t@ // fix stress and e sound: batefinansiering/-portefeulje and many others
batte (ry b%at@ // move default stress: battery/-e and compounds: batterysuur...
bibli (oC b@bl%i:% // biblioteek and compounds/biblioteke/bibliofiel/bibliografie...
@@ -516,6 +523,8 @@
bul (ga b%ul // fix stress and u sound: Bulgaarse/Bulgare
bulle (tin b%ul@ // fix stress and u sound: bulletin and compounds
bur (lesk b%Wr // move default stress: burlesk/-e
buro b%yro@ // fix stress and o sound: burohoof and similar
bur (okra b%yr // fix stress for burokraat/-krate/-krasie/-kraties
bybel beIb@l // to correct pronunc. of e in compounds
byder (C@ b%eId@r // byderhand/-s/byderwets
by (een b%eI_ // move default stress: byeen/byeenkoms/-te, etc.
@@ -555,6 +564,7 @@
bed (k bEt // bedkassie/bedkaartjie/bedkatel/bedkussing
bed (l bEt // bedlamp/bedliggie/dubbelbedlaken
bed (m bEt // bedmaats/bedmatjie, etc.
bed (p bEt // fix e sound: bedpan/-ne/-poot, etc.
bed (rand bEt // fix e and first d sounds
bed (s bEt // bedsitkamer/bedsprei/gebedsdag
bed (t bE // fix e and d sounds: bedtafeltjie/bedtyd
@@ -601,6 +611,7 @@
bering b'e@r@N // ontbering/inhibering/inkubering
o) bering b@r@N // versobering
C) bering b@r@N // verorbering/versombering
ont) bering be@r@N // fix e sound in compounds like slaapontbering
skrob) bering b'e@r@N // skrobbering
beu (C bY@ // beur/beuke/beul
@@ -614,6 +625,7 @@
besem be@s@m
besering =b@se@r@N // besering/s/kniebesering...
bete (_ be@t@ // fix stress and e sound: (af)gebete/diabete
dia) betes (@ be@t@s // fix stress and e sound: diabetisleier/-middel, etc.
beter b'e@t@r
beties be@tis // fix e sounds: diabeties/-e
betlehe (m bEtl%i%E // fix stress and vowel sounds: Betlehem/-mer
@@ -635,6 +647,7 @@
cha (risma k%a // fix stress and ch and 1st a sounds: charismaties/-e
chau (C S%@U // chauffeer/chauffeur/-s/chauvinis/-me/-ties
cheddar tSEd@r // fix ch and a sounds: cheddar(kaas)
chemika (li x2%e@m%ikA: // for compounds of chemikalieë
cholera ko@l@ra_ // fix e sound: cholera/-epidemie and similarcompounds
cholesterol k%OlEst@-r%Ol // cholesterol and many compounds
ch (l k // chloor and compounds
@@ -663,6 +676,7 @@
daaren (te d%A:r@n // fix stress and e sound: daarenteen/daarenteë
daarop (v d%A:r%Op // move default stress: daaropvolgend/-e
aan) dag (tig d'ax2 // accent on dag
A) d (agtig t_ // fix d sound in words like oerwoudagtig and similar
daniël dA:ni@l // fix stress: Daniël(skuil)
dani (gh d'A:n@ // -hoedanigheid/hoedanighede/onderdanigheid
@) dant d'ant // dant takes stress: kommandant/pruimedant
@@ -675,6 +689,9 @@
_) de (klass de@ // deklassifikasie/gedeklassifiseer
de (klinA d%E // fix 1st e sound: deklinasie/deklineer/-nering and compounds
de (krimina d%e@ // fix e sound: (ge)dekriminaliseer/dekriminalisering, etc.
kun) dele (K d@lE // fix e sounds: Aardryks-/wiskundeles/-se, etc.
onder) dele (@ de@l@_ // fix e sound: onderdelebedryf/-pakhuis, etc.
voor) dele (@ de@l@_ // fix e sound: voordelefonds and similar
_) dele (gA d@l@ // fix stress and e sounds: delegeer/delegasie
@) de (ment d@ // fix e sound: amendement/bombardement/rendement
de (moCr d%E // demokraat/demokrasie/-ë/demokraties/demografie
@@ -844,6 +861,7 @@
@) d (t // drop d: breedte/handtekening/rondte/rondtrek...
du (et d%u:w // fix stress and -ue-sound: (klavier)duet/-te, etc.
@n) d (uit t_ // fix d sound and insert short break: enduit/handuit and similar
dwelm (_ dw&l@-m // fix d and e sounds in compounds like wonderdwelm
@) dwes tv'Es // noordwes/te/lik/e suidwes/te/lik/e
@) dwese tve@s@ // leedwese/vakbondwese
@) dwillig tv'Il@x2 // d sound and stress: kwaadwillig/bereidwillig
@@ -863,6 +881,7 @@
narkos) e (C @ // fix e sound: narkosedood/-gas/-masker/-middel/-rekords, etc.
ooi) e (C @ // fix e sound: dooiepunt/ooievaar and similar
trol) e (C@ @ // fix e sound in compounds: kontrolebank/-doeleindes/-kamer/-lys/-maatreël/-rekening...
voorrad) e (C @ // fix e sound: voorradedepot/-konvooi and similar
@C) e (aCC @_ // fix e sound: doodseise-/manne-/ongevalle-/troepeafdeling/slakkeafval/handearbeid
C) e (marie @ //anemarie, lisemarie etc.
n) eke (_ @k@ //anneke Heineke etc.
@@ -903,6 +922,7 @@
Cien) e (rC@ @ // fix e sound: opsienersamp/tienerstatus and many similar compounds
@) erts (_ _&rts // fix e sound of many compounds ending in erts
@p) e (rtjie @ // fix e sound: helpertjies/wegkruipertjie
C) e (maat @ // fix e sound: onderdele-/platemaatskappy and similar
@C) e (male_ @ // fix e sound: enemale/telkemale
C) e (man @ // e sound: briewemandjie/derdemannetjie/dowemansdeur/semantiek/semanties/Weideman
C) e (mm++ E // geelkoperemmer/wateremmer
@@ -975,6 +995,7 @@
@C) eps (+ Eps // fix e sound: biseps/triseps and similar
Celm) e (tK @ // fix e sound: helmet/pelmet and compounds
@C) e (taal @ // fix e sound: ape-/burokrate-/diewe-/engele-/gode-/leke-/siele-/skoliere-/tweetaal...
Cd) e (tr @ // fix e sound: teveldetrekking/vreugdetraan/voogdetrust/waardetrust
@k) e (tt@+ E // menseketting/etikette
sp) e (lonk @ // spelonk/rowerspelonk/spelonkagtig etc.
_k) e (ndh =E // but bekendheid/onbekendheid
@@ -1013,6 +1034,7 @@
e (klipK %e@ // fix stress and e sound: eklips/eklipties
e (kono@ %E // 1st e: ekonome/ekonomie/ekonomies/ekonoom
&) ekon (o@ _%Ek%un // fix stress and vowel sounds in compounds like: groepekonoom/handelsekonome
eksamin (A %Eks%am%in // fix stress and vowel sounds: eksaminator/eksaminering(sproses)
eksege (CA %Eks@x2e@ // fix stress and e sounds: eksegese/eksegeties/-e
ekse (llenC %Eks@ // fix 2nd e sound: eksellensie/-s/eksellent/-e
ekspli (siet %Ekspl@ // fix stress and i sound: eksplisiet/-e
@@ -1225,6 +1247,7 @@
werp) e (rsA @ // fix e sound: ontwerpersolie/-sonbril/-uitrusting
lew) e (ns @
&d) e (r@+ @ // not initial or final syllable
skuld) erke _&rkE // fix e sound: skulderkentennis/-erkenning
@C) e (reë @ // fix e sound: geelperskereën/tropereën, etc.
@d) e (rnst+ & // but fix e sound in doodernstig/-e
&t) e (r@ @
@@ -1393,6 +1416,7 @@
fakul (teit f%ak%Wl // fix stress and a sound: fakulteit/-e and many compounds
fa (lanks fa // shorten 1st a: falanks/-e
fami (liA f%ami // fix stress and a sound: familie and compounds/familiêr/-e
fa (nati f%a // fix stress and a sound: fanaties/-e
fan (fare f%an // move default stress: fanfare/-s
fanta (sA f%ant%a // fantaseer/fantasie
fari (seër f%ar%i // fix stress and a sound: Fariseër/-s
@@ -1444,7 +1468,9 @@
fos (fa f%Os // move default stress: fosfaat/fosfate
fo (ssiel f%O // move default stress: fossiel/-e and compounds
foto fo@tu
fotoge (nie f%o@t%ux2e@ // fix stress and e sound: fotogenies/-e
fo (togra fo@ // move default stress: fotograaf and similar
fra (giel fr%a // fix stress and a sound: fragiel/-e
_) fran (CisCA fr%an // fix stress and a sound: Fransiskus/Franciscus/Francisca
fre (kwen fr%i // fix stress and 1st e sound: frekwensie/-s and compounds
freud frOId // Freud/Freudiaans/-e
@@ -1573,6 +1599,7 @@
ge (kk x2&
ge (kh x2&
ge (kt x2& // fix e sound: gektalery
gekw (ord x2&kv // fix stress, e and w sounds: gekwordens/gekwording
genade x2@nA:d@ // correct 2nd e in compounds: genadedood, etc.
genad (etjie x2@nA:d // correct 2nd e in genadetjie
_) ge (rC x2& // gerf/gerwe/gert/gerber
@@ -1641,6 +1668,7 @@
@C) hal (sA h'al // reikhalsend/waaghalsig
hal (sstar h%al // move default stress:
hal (ve@ h%al // move default stress: halveer/halvering/gehalveerde, etc.
hamer hA:m@r // fix e sound: hameragtig/hamerend/-e
hand (o hant? // fix d sound: handopsteek/handoplegging
_) hane (C hA:n@ // hanekam/hanekraai/hanepoot/hanetree
haper hA:p@r // fix e sound: haperend/hapering/-e
@@ -1710,6 +1738,7 @@
he (g h&
heid (_S4 heIt
herinner h&r'In@r // herinner/-ing/-e|s
hetero (@@P6 h%Et@-r%u // fix stress and vowel sounds: many compounds: heteroseksueel/-ele/-aliteit, etc.
hia (sint h%ij%a // fix stress: hiasint/-e and compounds
_) hi (bis h%i // move default stress: hibiskus/-se and compounds
higië (nA h%ix2%ie@
@@ -1805,6 +1834,7 @@
indwing Indw@N // fix d sound: indwing/-ing
in (een @n // ineengedoke/ineengekrimp/ineenstorting and many similar
_) in (ent ''In_ // fix stress, i sound, pause: inent/-ing
infan (ti @nf%an // fix stress: infantiel/-e
in (fek @n // move default stress: infeksie/-s and compounds
infor (ma @nf%Or // move default stress: informant/-e/informasie
in (formeP2 'In // fix e sound: informele
@@ -2041,6 +2071,7 @@
kieser (@ kis@r // fix e sound: kiesertal/-weerstand/kieserskorps/-lys/-opkoms...
kikoe (joe k%iku: // fix stress, lengthen oe: kikoejoe and compounds
kilimandjaro k%il@m%andZA:ru // fix stress and vowel and "dj" sounds: kilimandjaro and compounds
_) kilo kil%u // fix o sound in compounds: kilogram/-liter/-meter
kker (A k@r // swakkerig/blikkerig/flikkerend/flikkering
klaarblyklik klA:rbl'eIkl@k // klaarblyklik/e
klande (sti kl%and@ // move default stress: klandestien/-e
@@ -2084,6 +2115,7 @@
kre (diet kr@ // move default stress: krediet/-kaart/-balans, etc.
kre (dit kr%E // fix e sound: krediteer/akkreditasie
kreme (tart kr@m@ // fix stress and e sounds: kremetart and compounds
_) kre (o kr%i // fix stress and e sound: Kreool/Kreole/Kreoolse
_) kre (pe@ kr@ // fix stress and 1ste sound: krepeer/-krepering
krimi (nA kr@m@' // krimineel/kriminele/diskrimineer
kri (oel kr%i // move default stress: krioel and derivatives
@@ -2110,9 +2142,11 @@
_) kwar (tA kw%ar // move default stress: kwartaal/kwartier
kwart (eeu kwart_ // stress and short break: kwarteeu(-fees/-viering...)
kwartel kwart@l_ // restore default stress: kwartel/-eier/-s and similar
kwarte (t kw%artE // fix stress and e sound: (stryk)kwartet/-te
kwa (tryn kw%a // move default stress: kwatryn/-e/kwatrynvorm
kwela kwE:la // fix vowel sounds: kwela/-dans, etc.
_) kwik (A kwIk_ // fix i sound: kwikinhoud/-oksied
kwinte (t kw@ntE // fix stress and e sound: (stryk)kwintet/-te
kwi (tans kw@ // move default stress: kwitansie and compounds
@@ -2123,11 +2157,12 @@
kabel kA:b@l //stress and e sound
kabeljou kab@lj'@U //kabeljou and compounds
kabinet k%ab%inEt // kabinet/drankkabinet/kabinetsvergadering
kabine (t k%ab%inE // kabinet/drankkabinet/-te/kabinetsvergadering
_) ka (d@ k%a // stress and 1st a: kadawer-/kadet-/kado/kadot(jie)/kadriel,etc.
ka (der kA: // restore stress on long a: kader/-s and compounds
kad (mium kad // fix stress and d sound: kadmium and compounds
kafe (te k%af@ // fix stress and vowel sounds: kafeteria and compounds
kafe (ï k%af%i // fix stress and vowel sounds: kafeïene and compounds
ka (jak k%a // fix stress and 1st a sound: kajak/-ke/-vaarder
kake (C kA:k@ // kakebeen/skakelaar/skakelbord/skakelfunksie
kalahari kalah'A:ri // stress: Kalahari/-sand/-woestyn
@@ -2142,6 +2177,7 @@
ka (mas k%a // fix stress and 1st a sound: kamas/-te and compounds
kamer kA:m@r // compounds: kamerindeling/kamerorkes, etc.
kamera kam@ra
kamer (atjie kam@r // fix a sound: kameratjie and compounds
kamerade k%am@rA:d@ // stress: kamerade/skeepskamerade
kameraa kam@r'A:
kamer (C kA:m@r // kamerdeur/eetkamermat/sitkamervenster
@@ -2164,7 +2200,7 @@
kape (la@ k%ap@ // fix e sound: kapelaan/kapelane and compounds
kaper (jol k%ap@r // fix stress and a sound: kaperjolle and compounds
kapi (ta k%ap%i // fix stress and 1st a sound: kapitaal and compounds/kapitalis/-me/-ties
_) ka (poC k%a // move default stress and shorten a: kapok and compounds/kapot
_) kapo (C k%apO // move default stress and shorten a: kapok and compounds/kapot
kap (tein k%ap // kaptein/kapteinskap/skeepskaptein
kapsule k%apsyl@ // stress and e sound: kapsule/-fabriek/-vorm, etc.
kara (byn k%ar%a // fix stress and a sounds: karabyn/-e and compounds
@@ -2175,6 +2211,7 @@
kar (does k%ar // move default stress: kardoes and compounds
karme (naadj k%arm@ // fix stress and e sound: karmenaadjie and compounds
karmosyn k%arm%useIn // fix stress and o sound: karmosyn and compounds
karna (val k%arn%a // fix stress and 2nd a sound: karnaval and compounds
kar (nuffel k%ar // move default stress: (ge)karnuffel/-de
kara (koel k%ar%a // fix stress and a sounds: karakoel and compounds
kara (va k%ar@ // move default stress: karavaan/karavane
@@ -2273,7 +2310,7 @@
konnek k%unEk // fix stress and vowel sounds: konneksie/-s and compounds
konkel kONk@l // restore default stress and fix [N] sound: konkelaar/konkelwerk, etc.
konsen (tr k%Ons@n // fix stress and e sound: konsentreer/konsentrerend/konsentrasie
konsen (trie k%OnsEn // fix stress and e sound: konsentries/-e
konsen (trie k%Ons''En // fix stress and e sound: konsentries/-e
konsertina k%Ons@rtin%a // fix stress and vowel sounds: konsertina/-musiek and similar
konside (rA k%Ons@d@ // fix vowel sounds: konsiderasie/konsidereer
konsist k%Ons@st // konsistorie and compounds/konsistensie
@@ -2300,7 +2337,9 @@
kosme (tiek k%Osm@ // move default stress: kosmetiek and compounds
kos (met k%Os // move default stress: kosmeties/-e
koste kOst@ // fix e sound in compounds: kostemodel/-ontleding/laekostelugdiens
kos (term kOs // fix e sound: kosterm/-e
kos (tu k%Os // move default stress: kostuum and compounds
kouka (sië k%ukA: // fix stress and vowel sounds: Koukasiër/-s
kou (sa@ k%@U // move default stress: kousaal/-ale
koö k%o@O // koördinasie/koöpsie, etc.
@@ -2419,6 +2458,7 @@
m m
m (m
@) marie (_ m%ar'i //names ending in marie fix a and stress.
mari (tiem m%ar@ // fix stress and vowel sounds: maritiem/-e
macedo (nA m%as@do@ // fix stress and vowel sounds: Macedonië/Macedóniër/-s
machiave m%ak%i%avE // fix stress, vowel and v sounds: Machiavelliaans/-e
made (lie m%A:d@ // fix stress and e sound: madeliefie/-s/watermadeliefies
@@ -2431,6 +2471,7 @@
ma (griet m%a // move default stress: Magriet/-e/-jie
ma (hA m%a // mahoniehout/-lessenaar and similar/mahala
majesteitli m%A:j@steItl@ // move default stress: majesteitlik/-e/-heid
majestu m%A:j@st%y // fix stress: majestueus/-e
makaber m%akA:b@r // fix stress and vowel sounds: makaber/-e/-heid
maka (paan m%ak%a // fix stress and a sounds: Makapaan/-s/-grot and compounds
@) makie (sie mak'i // fix a sound and stress: bol(le)makiesie/-slanery
@@ -2460,9 +2501,9 @@
manu (sk ,many
_) ma (rA m%a // short, unstressed a: Marietjie/Marina/Marinda/Marita/Maree/marog
marat (on mar%at // fix stress and a sounds: maraton and compounds
marath (on mar%at // fix stress, a sound, drop h: marathon and compounds
marathon mar%at%On_ // fix stress, a sound, drop h: marathon and compounds: marathonatleet, etc.
marga (ri m%arx2%a // fix stress and a sound: margarien and compounds
marine m%arin@ // marine and compounds
marine (K m%arin@ // marine and compounds
mario (net m%ar%i%u // fix stress and vowel sounds: marionet/-te and compounds
ma (ritz m%a' // fix stress: Maritz/Pietermaritsburg
marmelade m%arm@lA:d@ // fix stress and e sounds: marmelade and compounds
@@ -2588,6 +2629,7 @@
mede (plig m%e@d@ // move stress: medepligtige
media mi:dia // compounds of media
medisi (na@ m%Ed@s%i // fix stress and vowel sounds: medisinaal/-nale
medi (tA m%Ed%i // fix e sound: mediteer/meditering/meditasie
medite (rre m%Ed%it@ // fix stress and vowel sounds: mediterreens/-e
me (dium mi: // fix e sound
_) me (duC m@ // fix stress and e sound: medulla/medusa
@@ -2623,6 +2665,7 @@
_) melodi (eu m%El%ud%i //melodieus
_) melodie mElud'i
_) melo (dr m'Elu //melodrama etc.
memora (bili m%Em%Or%a // fix vowel sounds and stress: (sport)memorabilia and similar
_) metel me@t@l // vermetel/-e/-es/-heid...
ment m'Ent
mental (iteit m,Ental // fix stress: mentaliteit/sentimentaliteit and compounds
@@ -2633,6 +2676,7 @@
me (rrie mE // fix e sound: merrie/-s/perdemerrie and similar compounds
AAs) mes (_ mEs // fix last e sound in compounds like kombuismes
Cs) mes (_ mEs // fix last e sound in compounds like slagtersmes
tafel) mes (_ mEs // fix final e sound: tafelmes
_) mes (aan mEs_ // fix e sound, pause: mesaanval/-ler
metaa (C m@tA: // fix stress and e sound: metaal/metaan and compounds
metale m@t'A:l@
@@ -2674,6 +2718,7 @@
@) nges (_ N@s // banges/langes/dinges
@) ng (itis_ Nx2 // brongitis/faringitis/laringitis
_) na (C_ n'a //three-letter words starting with na
na (boots nA: // long a in compounds: klank-/vlugnabootser, etc.
na (burig n%A: // move default stress: naburig/-e/-heid
na (ï n%a_ // naïef/naïewe/naïwiteit
@) na (lis n%a // shorten a sound: joernalis/-te/-tiek
@@ -2722,10 +2767,12 @@
neo (li n%i%u // fix stress and vowel sounds: neolities/-e/neolitikum
ner (veu n%&r // move default stress: nerveus/-e
@C) nes (_ nEs // fix final e sound: doringnes/aasvoëlnes/kalkoennes/hamerkopnes/reiernes/kiewietnes
by) nes nEs // fix e sound: (perde)bynes/te
net (agtig nEt_ // fix e sound: (vis)netagtig/-e
_) net (o nEt_ // fix o sound: netonderrok/-klere
_) netto nEt%u // fix o sound: nettobalans/-skuldboek and many such compounds
net (werk nEt // fix e sound in compounds: kern-/rugsteun-/selfoon-/teen-/telefoon-/vastelynnetwerk
neuro (CA n%Y@ro@ // move default stress: neurone/neurose/-s
neute nY@t@ // fix connecting e sound: neutedop/neutekraker
neu (tr n%Y@ // move default stress: neutraal/neutrale
_) nguni Ngu:ni // Nguni/-beeste/-tale
@@ -2985,6 +3032,8 @@
@) oties 'o@tis // antibioties/eksoties/eroties/neuroties
@) otomie (_N %o@t%um'i // fix o sounds and stress of medical terms: laparotomie, etc.
@) otomie (ë %o@t%um'i: // fix o sounds and stress of plurals of medical terms: leukotomieë/nefrotomieë, etc.
_) outo (@P4 @Utu // fix stress and o sound: outomaat/-mate/-maties/outomobiel, etc.
out (okra %@Ut // to handle outokraat and derivatives
oux 'u //in surnames like tredoux, leroux etc.
_) o (va@ %o@ // move default stress: ovaal/ovale/ovaalvormig
ovari (otomi %o@v%A:r%i // fix stress, v and vowel sounds: ovariotomie
@@ -3130,7 +3179,7 @@
_) oor (denk %o@r // move default stress: oordenk/-ing/-s
oordrewe o@rdr'e@v@ // stress: oordrewe/oordrewenheid
oor (dink %o@r // move default stress
oor (doen %o@r // move default stress
_) oor (doen %o@r // move default stress
oor (donder %o@r // move default stress: oordonder/-ing
oor (draag %o@r // move default stress: oordraagbaar/-lik, etc.
_) oor (dryC %o@r // move default stress: oordryf/oordrywing
@@ -3161,6 +3210,7 @@
oor (rompel %o@r // move default stress
oorsaaklik %o@rsA:kl@k // fix stress: oorsaaklik/-e/-heid
oor (sigt %o@r // move default stress: oorsigtelik/oorsigtig/-e
oor (sigtyd o@r // restore default stress: oorsigtydperk/-e
_) oor (skadu %o@r // move default stress: oorskadu/-wing
_) oor (skat %o@r // move default stress: oorskat/-te/-ting
oor (skry %o@r // stress: oorskry/-ding and compounds
@@ -3221,15 +3271,15 @@
paro (di p%ar%u // fix stress and vowel sounds: parodie and compounds
parti (tu p%art@ // fix stress and i sound: partituur/partiture and compounds
pase (lla p%as& // fix stress and a sound: pasella(tjie) and compounds
pa (sifi p%a // shorten a sound: pasifis/-me/-ties/-e
pa (stel p%a // move default stress: pastel(kleur) and similar compounds
pa (tat p@ // patat/warmpatat/wurgpatat
patie (KN p%at'i //words ending in patie has stress at end + a sound/simpatiek
@) paties p'A:tis // fix stress and a sound: simpaties/-e
para (C ,para //paralel, paragraaf etc.
parade (K p@rA:d@ // parade and compounds
_) par (C@ p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig
_) par (CA p%ar // (ge)parkeer/parkeerplek/party(keer/maal...)/parfuum/parmantig
parke (raad park@ // fix stress and e sound: Parkeraad(slid, etc.)
pars (C pars // restore default stress: parsbalie/-kuip/-tyd, etc.
_) pas (AA pas // pasaangeër/pasoortreding
pas (op p%as // pasop/pasoppens
passa (sier p%as%a // stress: passasier and compounds
@@ -3412,7 +3462,7 @@
prominen prOmin'En // prominent/e/prominensie
propag ,prOpax2
prosedure prOs@d'yr@
prose (dure pr%Os@ // (regs)prosedure/prosedureel/-rele
prosti (tu pr%Ost@ // fix stress and i sound: prostituut/prostitute/prostitusie and compounds
protes prut'Es
protes (te_N pr%utEs // proteste, but prevent breaking protestering
@@ -3549,6 +3599,7 @@
re (pliek r@ // fix stress and e sound: repliek and compounds
re (produ r%e@ // fix stress and e sound: reproduksie/reproduseer
rep (tiel r%Ep // move default stress: reptiel/-e and compounds
reses (_ r@sEs // fix stress and e sound: (hof-/vakansie)reses
reso (nA r%Es%u // fix stress and e sound: resonant/-e/resonansie/resoneer
re (spon r@ // fix stress and e sound: respons/-e/-ie/respondent, etc.
_) re (spyt r@ // fix stress and e sound: respyt/-dae/-tydperk
@@ -3604,6 +3655,7 @@
sangere (K s%aN@rE //sangeres and compounds: opera-/popsangeres
o) s (_ s // exceptions to rule: @@@) s (_S1 s
u) s (_ s // exceptions to rule: @@@) s (_S1 s
s (chemi s // split s/ch: watersuiweringschemikalieë and similar compounds
sch S
s (chaos s // split s/ch: regs-/verkeerschaos
sh (_ _^_EN
@@ -3630,6 +3682,7 @@
sili (nd s@lI // silinder(s)/silinderkoppe
si (llabA s@
si (napK s@ // fix stress and i sound: sinaps/-esinapties
_) sin (dro s@n // move default stress: sindroom/sindrome
sin (ja s@n // move default stress: sinjaal/sinjale
_) si (noC s@ // fix stress and i sound: sinode and compounds/sinops/sinop;ties
sino (niem s,in%u // fix stress and vowel sounds: sinoniem/-e
@@ -3778,6 +3831,7 @@
sma (rag sm%a // fix stress and a sound: smarag/-te
snaper (ing snA:p@r // fix stress and vowel sounds: versnapering/-e/-s and compounds
snel (_ sn&l // fix e: aansnel/agternasnel/blitssnel/heengesnel/koppesnel/nasnel/verbysnel
_) snel (A sn''&l_ // fix e sound, pause: snelaanval/-instrument/-ontwikkelende/-oorgang, etc.
sodom (iet s,o@dOm // fix stress
_) soeda (n s%uda // fix stress: Soedan/Soedanese
soet (sappi s%ut // move default stress: soetsappig/-e/-heid
@@ -3872,12 +3926,14 @@
dwerg) ste (r st& // fix e sound: dwergster/-re
nd) ste (r st& // fix e sound: aandster/oggendster
pool) ste (r st& // fix e sound: poolster
prent) ste (r st& // fix e sound: rolprentster/-re
see) ste (r st& // fix e sound: seester/-re/seesterpunte and similar compounds
sepie) ste (r st& // fix e sound: sepiester/-re
sewe) ste (r st& // fix e sound: sewester and compounds
visie) ste (r st& // fix e sound: televisiester/-re
_) ste (ri st%E // fix stress and e sound: steriel/-e/steriliteit
ster (-hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfster-hotel
ster (hotel st&r // fix e sound: een-/twee-/drie-/vier-/vyfsterhotel
stimu (lA st@m%y // move default stress and fix i sound: stimuleer/stimulering/stimulasie
_) sub (a sWb_ // subagent/subartikel/subatomies, etc.
sub (li s%Wb // move default stress: subliem/-e
@@ -3901,7 +3957,7 @@
_) sw sw // fix w sound: words beginning with sw-: swerweling/swetend
swaar (lyw sw%A:r // move default stress: swaarlywig/-e/-heid
swaar (moed sw%A:r // move default stress: swaarmoedig/-e/-heid
swag sv'ax2
swag (K sv'ax2
swa (hili sw%a // fix stress and a sound: swahili/-'s
_) swam (A@ swam_ // shorten a sound: swamagtig/-etend/-infeksie
swart (gal sw%art // move default stress: swartgallig
@@ -3917,7 +3973,7 @@
.group st
D_) ste st@ //ste after numbers 22ste etc.
_) staats st''A:ts // force stress: staatsadministrasie/-advokaat/-akkreditasie, etc.
_) staat (s st''A:t // force stress: staatsadministrasie/-advokaat/-akkreditasie, etc.
_) sta (bi@ st%a // fix stress and a sound: (on)stabiel/-e/stabiliseer/(on)stabiliteit
sta (dion stA: // fix a sound: stadion and many compounds
stalag (Ciet st%al%ax2 // fix stress and 1st a sound: stalagmiet/stalagtiet/-e
@@ -3966,6 +4022,7 @@
sterretjie st'&rici
sterwens (@ st&rv@ns_ // fix 2nd e sound and insert paus: sterwensuur/-kreet/-nood and similar
ste (m stE // eliminate one m in derivatives like stemming
ste (maat st@ // fix e sound: -dienstemaatskappy/-e and similar
ste (mark st@ // fix e sound: (hoër/laer/middel)inkomstemark/-te, etc.
stempel stEmp@l // fix 2nd e sound: stempelband/-datum/-gereedskap/-hamer/-jaar/-letter...
@) stemperame s_tEmp@-r%amE // fix vowel sounds and stress: dobbelaars-/kunstenaarstemperament, etc.
@@ -4009,7 +4066,8 @@
tafe (re t%af@ // fix vowel sounds: tafereel/taferele and compounds
taiwa (n t%aIwa // fix stress and w and a sounds: Taiwan/Taiwanese
taksider (m t%aks%id%&r // fix stress and e sound: taksidermie/taksidermis/-te
ta (lent t%a // fix stress and a sound: talent/-e/-jie
talent t%alEnt // fix stress and a sound: talent/-e/musiek-/kunstalent
talen (tjie t%alEiN // fix -entjie: (kuns-/musiek)talentjie
@) talig t'A:l@x2 // Anderstalig/tweetalig
@) ta (lis t%a // shorten a sound: hospitalisasie/kapitalisme/katalisator and similar
_) ta (ma t%a // tamatie and compounds
@@ -4252,7 +4310,7 @@
teltjie t@lki
@) tel (o t@l // hartelose/besluiteloos/gedagtelose
tendens t%Ende~ns // fix stress and e sounds: tendens/-e and compounds
&) tert (A t@rt // fix e sound: agtertoe/foltertuig/gietertuit/kilometertoelae/lastertaal/letterteken
&) tert (A@ t@rt // fix e sound: agtertoe/foltertuig/gietertuit/kilometertoelae/lastertaal/letterteken
&) tert (r t@rt // fix e sound: pleistertroffel/venstertralie/ystertralies/ystertrap
&s) tert (aan t&:rt // fix e sound: swa(w)elstertaandpak/-ke
&s) tert (e_ t&:rt // fix e sound: swa(w)elsterte/vissterte
@@ -4314,6 +4372,7 @@
uitgee (+ 'Yytx2e@ // se rule: _) uitge (@P5 Yytx2@
uit (huisig %Yyt // move stress: uithuisig/-e/-heid
uiting Yyt@N // remove break and fix ng: uiting/-e/-svermoë and similar compounds
ui (tjie Yy // "uit" not prefix here: uitjie/-s
uitme (kaar %Yytm@ // move default stress: uitmekaar breek/gaan/loop/, etc.
uit (munten %Yyt // move stress: uitmuntend/-e
uit (sluiten %Yyt // move default stress: uitsluitend/-e
@@ -4352,8 +4411,9 @@
.group v
v f
v (v
@) vaardig f'A:rd@x2 // diensvaardig/hulpvaardig/onboetvaardig/strydvaardig
@) vaardig f'A:rd@x2 // diensvaardig/hulpvaardig/onboetvaardig/strydvaardig
uit) vaardig fA:rd@x2 // but uitvaardig
ver) vaardig fA:rd@x2 // default stress: onderdelevervaardiger and similar
va (doek fa // stress on 1st slb.: vadoek/-e
vagina vax2ina // fix v sound and shorten a sound: vagina/-s
vagin (A@ v%ax2%in // move default stress: vaginale and similar
@@ -4372,6 +4432,8 @@
vari (A v%ar%i // fix v sound and stress: variasie/-s/varieer
vaseline v%as@lin // fix stress, v and vowel sounds: vaseline/-bottel, etc.
vasste (l fast& // fix e sound: vasstel(ling/-lende)
_) vat (A@ fat_ // fix a sound: vatafstand/-orgaan
vate (C fA:t@ // fix e sound: vatefabriek/-maker
vati (kaan f%at%i // fix stress and shorten a sound: vatikaan and derivatives and compounds
@) ve (_ _^_EN //words ending in ve is English
veel (duid f%e@l // move default stress: veelduidig/-e/veelduidend/-e
@@ -4396,6 +4458,7 @@
vere (sto fe@r@ // avoid ver prefix: verestoffer/-s and compounds
verversing f@rf'&rs@N //verversing and compounds
vere (_ fe@r@ // fix e sound: vere and compounds ending in vere
ve (st fE // fix e sound: huweliksbevestiger/-bevestiging
_) vet (A fEt_ // fix e sound, pause: vetafskeiding/-olie/-oplossing, etc.
vete (ra f%Et@ // fix stress and e sounds: veteraan/-ane and compounds
veter (K fe@t@r // (skoen)veter/-s, etc.
@@ -4535,6 +4598,7 @@
_) voor (delig f%o@r // move default stress: voordelig/-e
_) voorge (@P6 f'o@rx2@
_) voor (komA f%o@r // move default stress: voorkomende/voorkomer/voorkoming and compounds
voor (komba f%o@r // move default stress: voorkombaar/-heid/-bare
voor (sie f%o@r // move default stress: voorsien/-ing
voorskrifteli (k f%o@rskrIft@l@ // move default stress: voorskriftelik/-e/-heid
voorspe (lK fo@rsp'& // voorspel/voorspelling/voorspelbaar/onvoorspelbaar
@@ -4580,6 +4644,7 @@
nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal
Cod) w v // fix w sound: godwelgevallig/godweet/godwees
k) w w
volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc.
k) w (And v // fix w sound: buikwand/rukwinde
s) w w
@s) w (aan v // fix w sound: groot-/kleinheids-/hoogmoeds-/liefdes-/vervolgingswaan
@@ -4668,8 +4733,9 @@
@s) w (An_ v // plurals of the above in -de: de treate
_) wan (AP3 v''an_ // wanorde/wanopvatting/wanaanpassing/winindruk/wanadministrasie/wanaangewend
@t) w (and v // fix w sound: bloedvatwand/grotwand/hartwand
C) wag vax2 // fix w sound: bokwagter/skildwag and compounds/veldwagter
C) wag (K vax2 // fix w sound: bokwagter/skildwag and compounds/veldwagter
k) wagga wax2a // fix w sound: kwagga/bergkwagga, etc.
wal (kure v%al // move default stress: Walkure/-s
wange (drag vanx2@ // (jeug)wangedrag and similar
wankel (moed v%aNk@l // move default stress: wankelmoedig/-e/-heid
wanordeli (k v%an_Ord@l@ // move default stress: wanordelik/-e/-heid
@@ -4732,6 +4798,7 @@
wn _^_EN // names containing town/Brackendowns/Brown
_) wol (A vOl_ // fix o sound, insert short break: wol(onderbaadjie/-broek/-hemp/-klere)/-olie
wol (vin v%Ol // move default stress: wolvin/-ne
worth _^_EN
wood (+ _^_EN // English: Woodstock/Goodwood/Lynnwood
woongewes vo@nx2@vEs // fix stress and e sounds: woongewes/-te
@@ -4852,60 +4919,13 @@
ûe W:@ // brûe/rû
ý '!eI // extra stress: jý/mý/sý and similar
ñ _^_ES // words containing ñ are Spanish: senñor/-a/-ita
// punctuation
! _:eItrup_:
!) !
$ dOl@r
% p@rs'Ent
& _|amp&rsant
£ pO:nt
€ Y@ru
/ stre@p
@ beI_:
\\ trystre@p
// punctuation, but don't speak multiple occurrances
= _:x2@l'eIk_:
= (==
=) = (=
==) = (_ _::
* st&r
*) * (*
**
**) * (_ _::
+ pl'Ws
_) ++ (_ plWspl'Ws
\+\+\+) + // ignore + after the first 3
__) - (_D minWs
A_) - (_D _
C_) - (_D _
--) -
. pWnt
. (. _:
\.) .
~ tIld@
// extra symbols
¥ jEn
§ afde@l@N
¶ parax2rA:f
¶¶ parax2rA:v@
¤ mWnte@k@n
© kup'ir&x2
° x2rA:d@
− minWs
± plWs_OfminWs
µ mikru
¼ @kwart
½ @halv@
¾ drikwart
× mA:l
÷ x2@de@ldY@r
♯ krYys
♭ mOl
+10 -1
View File
@@ -124,9 +124,18 @@ _1M2 _'aIn@||mIlI'o:n
_0M3 ||mIlI'a*d@n
_1M3 _'aIn@||mIlI'a*d@
_0M4 bIlI'o:n
_0and ||Unt
_0and ||_|Unt
_dpt _kOma
// ordinal numbers
_ord t@ // default ending
_ord20 st@ // 20,30,etc
_1o _'e:*st@
_3o dr'It@
_7o z'i:bt@
_8o _'axt@
_0Co 'hUnd3tst@
// Abbreviations
//==============
a.a.o A:A:o:
+81 -2
View File
@@ -15,6 +15,20 @@ n N p r s S t T
tS v w x x2 z Z
Dictionary bn_dict
& a a: a~ e E e~ i
I i: i:~ i~ l- o O o:
O~ o~ r- U u u: u:~ u~
V
* b B bh c C ch d
d. d.h dh g gh h j J
Jh k kh l m n N n.
n^ p ph Q r r. s S
s. t t. t.h th tS x z
Dictionary ca_dict
@ a a# aI e E E2 i
@@ -53,6 +67,20 @@ p r s S t T v w
x z
Dictionary kn_dict
a a: aI aU e E e: i
I i: o o: r- u u: V
y
: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s S
s. S; t t. t.h th tS v
w z
Dictionary de_dict
3 @ @- a A A: aI aU
@@ -246,6 +274,47 @@ s S t tS v w x z
Z
Dictionary ml_dict
a a: aI aU e E e: i
I i: o o: r- u u: V
y
: b bh c ch d d. d.h
dh dZ f g gh h j J
Jh k kh l l. m n N
n. n^ p ph R R2 s s.
S; t t. t.h th tS v w
z z.
Dictionary ne_dict
@ @/ @2 @3 a aI aU a~
e E eI eU e~ E~ i I
i~ l- o O o: oI oU O~
o~ r- u uI u~ V VI VU
V~
- : b bh c ch d d.
d.h dh f g gh h H j
J Jh k kh l l. m n
N n. n^ p ph Q q r
r. s S s. t T t. t.h
th v w x z z.
Dictionary om_dict
a A a# a: E e E# I
I# i: O O# o: U U# u:
** : b B c` d D d`
dZ f g h j k k` l
m n n^ p p` R s S
s2 t t` tS v w z
Dictionary ku_dict
8 a e E E# eI eU i
@@ -292,6 +361,16 @@ N n^ p r R s S t
tS ts tS; v x z Z
Dictionary rw_dict
a e i o u
* : b B c d dZ f
g h j J k l m n
N n^ p q R s S S;
t tS v w x z
Dictionary nl_dict
8 @ @- A a: E e: EI
@@ -458,8 +537,8 @@ Dictionary zh_dict
@ @r a A ai Au E ei
i i. i[ iA iE io iou N-
o o- ou u u@ ua uai uei
uo y y& y@ yE yi yu
o o- ong ou u u@ ua uai
uei uo y y& y@ yE yi yu
; C f h j k kh l
L m n N p ph r R
+22 -9
View File
@@ -102,7 +102,6 @@ _#32 speIs
_  hA@dspeIs // U+00A0 no-break-space
_! Ekskl@m'eIS@n
_" kwoUts
_# haS
_$ d0l3
_% p3s'Ent
?5 _% pVRs'Ent
@@ -178,6 +177,7 @@ _‴ trIp@LpraIm
_‼ Ekskla2m'eIS@nz
_₠ jU@roU
# haS $max3
@ _at_
& _and
\ bakstroUk $max3
@@ -186,8 +186,8 @@ _₠ jU@roU
?3 / slaS $max3
* ast@rIsk $max3
% p3sEnt $max3
= _:i:kw@Lz_: $max3
?5 % pVRs'Ent $max3
= _:i:kw@Lz_: $max3
¢ sEnts
£ paUnd
¥ jEn
@@ -303,10 +303,13 @@ _0M3 b'Ili@n
_dpt pOInt
_roman roUm@n_
(1 st) f3:st
(2 nd) sEk@nd
(3 rd) T3:d
(5 th) fIT
_ord T // default ending
_ord20 @T // for 20,30,etc
_1o f'3:st
_2o s'Ek@nd
_3o T'3:d
_5o f'IT
_0Co h'Vndr@dT
// ABBREVIATIONS
@@ -338,6 +341,7 @@ ibm $abbrev
ie aIi:_! $pause $only
i.e aIi:_! $pause
irc $abbrev
(km ²) skw,e@kIl'0mIt3z
lbs paUndz
LBS $abbrev
ltd lImI2tI2d
@@ -815,7 +819,7 @@ concise k0ns'aIs
cone koUn
conflict $1 $onlys
conflict $verb
conger k0ng3
conger k0Ng3
conscience k0nS@ns
construct $1 $onlys
construct $verb
@@ -1382,6 +1386,7 @@ mammoth mam@T
mandate $2 $verb
manganese $1
manger meIndZ3
mangetout m0nZt'u:
manhour manaU@
mankind $2
maneuver m@nu:v3
@@ -1665,6 +1670,7 @@ prestige prEst'i:Z
?3 pretense pri:tEns
pretext pri:tEkst
pretty prItI
privation praIv'eIS@n
privilege prIvI2lI2dZ
privy prIvI
prix pri:
@@ -1847,6 +1853,7 @@ satan seIt@n
satanist seIt@nIst
saucepan sO:sp@n
saudi saUdI
saute sO:teI
says sEz
schema ski:m@
shallow SaloU
@@ -1884,8 +1891,10 @@ sentient sEnti@nt
sequester $2
sequine si:kwI2n
series si:ri:z
serenade sErI2n'eId
serene s@ri:n
sergeant sA@dZ@nt
sesame sEsa2mI
settee $2
severe sI2v'i@3 $only
severely sI2v'i@3lI2 $verbf
@@ -2550,8 +2559,10 @@ Michael maIk@L
Michele mI2SEl
Michelle mI2SEl
Miguel mi:Q'El
Mohammad moUh'amId
Muhammad moUh'amId
Minerva mI2n3:v@
Mohamed moUh'amI2d
Mohammad moUh'amI2d
Muhammad moUh'amI2d
Moira mOIr@
Natalie nata2li
Nathan neIT@n
@@ -2604,6 +2615,7 @@ Disney dIznI
Patel pa2tEl
Primavera pri:m@v'e@r@
Prentice prEntIs
Reid ri:d
Reuter rOIt3
Ubuntu u:b'u:ntu:
Yaesu jeIsu:
@@ -2746,6 +2758,7 @@ aren't ,A@nt $pastf $strend2
weren't ,w3:nt $pastf $strend2
will $u+ $only $verbf $strend2
will $noun
(will to) wIlt@5
would $u+ $verbf $only $strend2
(would have) w%Udh%a2v $pastf
+12 -7
View File
@@ -30,6 +30,7 @@
// ?8 Use full vowel, not schwa in some word endings
.L01 l r
.L02 i y
.replace
ff ff // ligature
@@ -856,10 +857,10 @@
area e@ri@
arest (_ e@r@st
ar (en ar
p) are (nth @rE
p) are (nthe @rE
c) ar (eer ar
c) are (C@ e@
p) are (nt e@r@
p) ar (ent e@r
pp) ar (enC ar
sp) ar (enC ar
ar' (nt A@
@@ -1700,6 +1701,7 @@
e (meou i:
_C) e (mur i:
&) e (n @
&r) e (n E
Ah) e (n E
ll) e (nge I
e (o I2
@@ -1900,6 +1902,7 @@
.group ei
l) eice (st E
eich aIx
eigh eI
l) eigh i:
sl) eigh eI
@@ -3557,12 +3560,16 @@
@) o (ist oU
oix (_ wa
o (ky_ oU
?3 g) o (ng O
?3 r) o (ng O
?3 s) o (ng O
t) o (ngu V
&) oped (_ @pd
c) oped (_ oUpd
_) o (per 0
_) ope (n oUp@
un) ope (n oUp@
@) opol (i '0p@L
@) opol (L02 '0p@l
opolitan @p'0lIt@n
oppor (tu %0p3
opp (res @p
@@ -3753,9 +3760,6 @@
_) one (r oUn@
m) on (ey Vn
und) one (_ Vn
?3 g) ong ON
?3 r) ong ON
?3 s) ong ON
?!3 m) ong (er VNg
on (i_ 'oUn
&) onism (_ =@nIz@m
@@ -4395,6 +4399,7 @@
rehen rIh'En
_) re (i@P2 r,i:
_) rei (l raI
_) rei (c raI
_) rele (g rElI2
rele (nt rI2lE
rele (v rElI
@@ -4804,7 +4809,7 @@
u (lul V
h) u (man ju:
u (me ju:
r) ument @m@nt
r) um (ent @m
fl) uor u:3
u (o ju:
@) uous =ju:@s
+7 -3
View File
@@ -24,7 +24,7 @@
// 2006-11-18 Gilles Casse <gcasse@oralux.org>
//
// Updated 2008-12-09 Michel Such <michel.such@free.fr>
// Updated 2009-01-14 Michel Such <michel.such@free.fr>
//
// * Numbers, a few abbreviations and exceptions.
//
@@ -111,6 +111,7 @@ _# djEz
_' a2postr'Of
_( 'uvR@-parA~t'Ez
_) f'Erm parA~t'Ez
_* asterisk:
_, virgyl
_- tirE
_. _|pw%E~
@@ -143,9 +144,9 @@ _§ sEksj'O~
@ arobaz
% pursA~ $max3
* asterisk: $max3
& _e
& e $u $brk
_& _e_komErsj'al
+ plys $max3
+ plys $max3
~ tilde
€ @ro
¢ sEnt
@@ -596,6 +597,7 @@ montréal mO~real
(qu'est ce que) kEsk@ $u
absent absA~
admin admin
adsltv $abbrev
airbus E2rbys
auvent ovA~
bien bjE~n2 $u+
@@ -622,6 +624,7 @@ hélas elas $u+
iris iris
laser lazEr
malus malys
mapper _^_en
mars mars
mieux mj'Y $u+
ours urs
@@ -629,6 +632,7 @@ parangon parA~gO~
phallus falys
polder pOldEr
premier pr@mjer2
(program files) pr,o2gram||f'ajlz
scanner skaner2
scanner skanWr $noun
souris suri
+4 -3
View File
@@ -23,7 +23,7 @@
// 2006-11-18 Gilles Casse <gcasse@oralux.org>
//
// Updated: 2008-12-09 Michel Such <michel.such@free.fr>
// Updated: 2009-01-14 Michel Such <michel.such@free.fr>
//
// Letter classes:
@@ -119,6 +119,7 @@
cch k // bacchanale
cc (Y ks // accéder
cc k // occuper
_) c (d se
_) ch (arism k // charisme, charismatique
_) ch (irop k // chiroptère
a) ch (_ k // almanach
@@ -244,6 +245,7 @@ _) ç' (P2v s
A) e (rA // remerciera
gu) e (rA @
qu) e (rA @
v) e (lop @-
@) em (me a // patiemment
em (b A~ // décembre
em (mACC A~ // emmancher
@@ -679,7 +681,6 @@ _) half _^_en
Cr) i (é i:
Cr) i (er_ i:
rr) i (er_ j
dr) iver a2jvWr
C) ien (t_ i
dév) ien (t_ i
t) ien (K_ jE~ // tient
@@ -735,8 +736,8 @@ _) half _^_en
ind (_ _^_en // find, mind
_C) ind (er_ _^_en // finder, reminder
_AC) ind (er_ _^_en // finder, reminder
// ink _^_en // link
ize (X _^_en // realize
dr) i (ve _^_en
.group î
+29 -6
View File
@@ -4,12 +4,11 @@
// Conditional rules:
// ?1 speak "i" as Roman number
// Numbers
_0 nullA
_1 EJ
_2 kEttY:
_2 kEt:Y:
_3 ha:R2om
_4 ne:J
_5 Yt
@@ -43,7 +42,30 @@ _1M3 ke:tmillia:R2d
_0M4 billio:
_1M4 billio:
_2M4 ke:tbillio:
_dpt ||_vEss2Y:_
_dpt ||_v,Ess2Y:_
_0Z1 tizAd // tenths
_0Z2 sa:zAd // hundredths
_0Z3 EzR2Ed
_0Z4 ti:zEzR2Ed
// ordinal numbers
_ord Edik
_1o ElSY:
_2o ma:Sodik
_3o hAR2_mAdik
_4o nEJEdik
_5o YtYdik
_6o hAtodik
_7o hEtEdik
_8o n^oltsAdik
_9o kilEntsEdik
_10o tizEdik
_12o tizENkEt:Edik
_20o husAdik
_0Co sa:zAdik
// accent names
_lig ligAtu:R2A
@@ -355,6 +377,7 @@ ny En^
% sa:zAle:k $max3
+ plus $max3
= EJEnlY:Se:g $max3
# sa:mjEl $max3
@ kukAts
& e:SjEl
€ EuR2o
@@ -364,6 +387,7 @@ ny En^
^ hia:n^
° fokjEl
Ft foR2int
\ viss2ApER2 $max3
_, vEss2Y:
_; pontoSvEss2Y:
@@ -382,15 +406,14 @@ _[ s'YglEtES||z'a:R2o:
_] s'YglEtES||z'a:R2o:
_{ k'AptSoS||z'a:R2o:
_} k'AptSoS||z'a:R2o:
_# sa:mjEl
_… ha:R2_mASpont
_• di:spont
_\ viss2ApER2
// Main Exceptions List
//=====================
nato na:to:
$textmode
(1-én) elsején
+4 -3
View File
@@ -232,17 +232,18 @@ _nyílá) s S
_o) sló slo:
tojá) s S
sz (öld Sz
va) s (zabl S||
_) semmelweiss sEmmElvEjs
_) semmelweis sEmmElvEjs
_) semmelweiß sEmmElvEjs
engel) s s
mu) ss (olini ss2
_) saar sa:R2
_wa) sh (ing S
sz (öld Sz
va) s (zabl S||
egé) szs (ég S
.group t
_) t (_ te:
+63 -4
View File
@@ -85,7 +85,20 @@ _0M1 t'u:kstuo:Si
_1M1 t'u:kstuo:tis
_0M2 m'iljo:ni
_1M2 m'iljo:ns
_dpt k'uomats_
_dpt k'omats_
// ordinal numbers
_ord ais // default ending
_1o p'iR2mais
_2o 'otR2ais
_3o tR'eSais
_4o tS'etuRtais
_5o p'iektais
_6o s'estais
_7o s'epti:tais
_8o 'astotais
_9o d'evi:tais
_0Co s'imtais
// accent names (Mostly English names, please fix)
@@ -95,7 +108,7 @@ _ac2 d'ubultsakju:t
_brv 'i:suma
_ced s'edi:la
_cir d'iakR2itiska:
_dia 'umlaut
_dia 'umlauts
_dot p'unkts
_grv gR2'a:v
_hac h'atSek
@@ -292,7 +305,6 @@ janv janva:R2is
jūl ju:lijs
jūn ju:nijs
lp lapa
lpp lappuse
lat lati:n^u
latv latvieSu
Ls lati $capital
@@ -322,12 +334,59 @@ sv sve:tais
st sant
šķ SciR2a
// words with [o]
// words with [o]
adadžo $alt
aikido $alt
anno $alt
automoto $alt
bandžo $alt
bendžo $alt
bingo $alt
bolero $alt
bravo $alt
bruno $alt
bruto $alt
depo $alt
dingo $alt
domino $alt
džudo $alt
čello $alt
embargo $alt
esperanto $alt
facto $alt
fiasko $alt
foto $alt
hallo $alt
hugo $alt
indigo $alt
inkognito $alt
intermeco $alt
kakao $alt
kastro $alt
kazino $alt
microsoft $alt
moto $alt
lego $alt
lumbago $alt
maestro $alt
metro $alt
moto $alt
odo $alt
oto $alt
panno $alt
pianīno $alt
rančo $alt
retro $alt
rokoko $alt
roks $alt
sambo $alt
solfedžo $alt
sonera $alt
triko $alt
trimo $alt
uno $alt
veto $alt
žabo $alt
+432 -129
View File
File diff suppressed because it is too large Load Diff
+8
View File
@@ -172,11 +172,19 @@ language).
.group o
o o
ou ou
o1u ou55
o2u ou35
o3u ou214
o4u ou51
ong (K ong
o1ng (K ong55
o2ng (K ong35
o3ng (K ong214
o4ng (K ong51
y) o io
y) ou iou
y) o1u iou55
+225 -5
View File
@@ -1,4 +1,4 @@
51 phoneme tables
58 phoneme tables
new total
base 103 103
base2 24 122
@@ -44,41 +44,58 @@
is 33 129
vi 41 140
zhy 40 136
zh 65 153
zh 66 154
sw 14 112
tr 18 127
ku 18 127
id 15 124
sq 35 127
hy 24 119
rw 15 129
ml 13 151
kn 15 151
bn 59 155
ne 18 157
mr 1 149
om 25 125
Data file Used by
b/b [b] base
[b] fr
[b] hi
[b;] ro
[b] bn
b/b_ [b] base
[b] fr
[b] hi
[b] bn
b/b@ [b] base
[b] hi
[b] bn
b/b@2 [b] base
[b] hi
[b] bn
b/ba [b] base
[b] hi
[b] bn
b/be [b] base
[b] hi
[b] bn
b/bi [b] base
[b] hi
[b;] ro
[b] bn
b/bo [b] base
[b] hi
[b] bn
b/bu [b] base
[b] hi
[b] bn
b/xb [b] base
[b] fr
[b] hi
[bh] hi
[b] bn
d/d [d] base
[d[] base
[d] base2
@@ -97,6 +114,9 @@ d/d [d] base
[d] sw
[d] id
[d] sq
[d] bn
[d.] bn
[d`] om
d/d_ [d] base
[d[] base
[d] base2
@@ -115,6 +135,9 @@ d/d_ [d] base
[d] sw
[d] id
[d] sq
[d] bn
[d.] bn
[d`] om
d/d_dnt [d] sr
d/dr [*] base
[d] base
@@ -135,6 +158,8 @@ d/dr [*] base
[d] sw
[d] id
[d] sq
[d] bn
[d.] bn
d/tap [*;] ro
d/tap1 [*] base
d/tap2 [t#] en_us
@@ -162,6 +187,9 @@ d/xd [d] base
[d] sq
[dz] sq
[dz] hy
[d] bn
[d.] bn
d/xd2 [d`] om
d/xd3 [dh] hi
d/xd_pzd [d;] pl
[d;] ru
@@ -178,6 +206,7 @@ dzh/dzh [dZ] base
[dZ;] sr
[dZ;] ru
[dZ;] sq
[J] bn
dzh/dzh_ [dZ] base
[dZ;] base
[dz;] base
@@ -187,12 +216,15 @@ dzh/dzh_ [dZ] base
[dZ;] mk
[dZ;] ru
[dZ;] sq
[J] bn
dzh/dzh2 [dZ] hr
[dZ;] hr
dzh/dz_pzd [J] base
[J] tr
[J] ku
[J2] bn
dzh/dz_pzd_ [J] base
[J2] bn
dzh/xdzh [dZ] base
[dZ;] base
[dz;] base
@@ -202,9 +234,12 @@ dzh/xdzh [dZ] base
[dZ;] mk
[dZ;] ru
[dZ;] sq
[J] bn
dzh/xdz_pzd [J] base
[Jh] hi
[J2] bn
envelope/i_risefall [11] zh
envelope/i_risefall2 [+2] rw
envelope/p_214 [5] vi
[214] zh
envelope/p_512 [6] vi
@@ -217,6 +252,7 @@ envelope/p_fall [2] vi
[22] zh
[33] zh
[53] zh
[+] rw
envelope/p_fallrise [4] vi
envelope/p_level [1] vi
[3] zhy
@@ -234,16 +270,19 @@ g2/g_ [g-] base
g2/xg [g-] base
[g] hi
[gh] hi
[g] bn
g/g [g] base
[g] cy
[g] fr
[g] hi
[g] es
[g] bn
g/g_ [g] base
[g] cy
[g] fr
[g] hi
[g] es
[g] bn
g/xg [g] base
[g] cy
[g] fr
@@ -253,35 +292,50 @@ h/h_ [h] base
[H] hi
[h] hi
[<h>] la
[H] bn
[h] bn
h/h@ [h] base
[h] fi
[H] hi
[h] hi
[h] sr
[<h>] la
[H] bn
[h] bn
[th] bn
h/ha [h] base
[h] fi
[H] hi
[h] hi
[<h>] la
[H] bn
[h] bn
h/he [h] base
[h] fi
[H] hi
[h] hi
[<h>] la
[H] bn
[h] bn
h/hi [h] base
[h] fi
[H] hi
[h] hi
[<h>] la
[H] bn
[h] bn
h/ho [h] base
[H] hi
[h] hi
[<h>] la
[H] bn
[h] bn
h/hu [h] base
[H] hi
[h] hi
[<h>] la
[H] bn
[h] bn
h/hu_fi [h] fi
j2/_j2 [;] base
j2/j2@ [(@)] base
@@ -417,6 +471,7 @@ l/l_o [(o)] base
[O2] fr
[o2] fr
l^/l_rfx [l.] hi
[l.] bn
l/lu [(u)] base
[u] fr
[y] fr
@@ -538,6 +593,7 @@ r3/r_o [(o)] base
[O2] fr
r3/r_ru [R4] ru
r3/r_ru2 [R4] ru
r3/r_sr [r.] bn
r3/r_trill [R2] base
[R3] base
[r] af
@@ -587,6 +643,7 @@ r/r [r] base
[r] de
r/_r [r] base
[r] en_sc
[r.] bn
r/r_ [r] base
[r] en_sc
[r] de
@@ -595,6 +652,7 @@ r/r_ [r] base
[r] ru
[r] ro
[r] sw
[r.] bn
r/r@ [(@)] base
r/ra [(a)] base
r/re [(e)] base
@@ -612,6 +670,7 @@ r/rr [r/] base
r/ru [(u)] base
r/tr [r] base
[r] en_sc
[r.] bn
r/trr [r/] base
[r/] af
[r] de
@@ -678,6 +737,7 @@ ufric/s_ [s] base
[z;] ro
[s2] is
[z] sq
[s2] om
ufric/s! [s] base
[s2] fi
[s] fr
@@ -686,10 +746,12 @@ ufric/s! [s] base
[s] es
[s#] pt
[s2] is
[s2] om
ufric/s_continue [s2] fi
[s2] hu
[s2] lv
[s2] is
[s2] om
ufric/sh [S] base
[S] fr
[s#] pt_pt
@@ -732,11 +794,13 @@ ufric/x_sr [h] sr
ufric/xx [X] base
[Q"] base
ustop/c [c] base
ustop/c_ejc [c`] om
ustop/k [k] base
[k] en
[k] fr
[k] zhy
[k] sw
[kh] bn
ustop/k_ [k] base
[k] base2
[k] en
@@ -746,11 +810,13 @@ ustop/k_ [k] base
[k] lv
[k] sk
[k] el
[kh] zh
[k] sw
[k] sq
[kh] bn
ustop/k_asp [gh] hi
[kh] hi
[kh] zh
ustop/k_ejc [k`] om
ustop/ki [k] base
[k] base2
[k] en
@@ -768,6 +834,7 @@ ustop/ki [k] base
[c] tr
[J] ku
[c] ku
ustop/ki_ejc [k`] om
ustop/kl [k] base
[k] base2
[k] en
@@ -780,6 +847,7 @@ ustop/kl [k] base
[k] el
[k] zhy
[k] sw
[kh] bn
ustop/kr [k] base
[k] base2
[k] en
@@ -792,6 +860,7 @@ ustop/kr [k] base
[k] el
[k] zhy
[k] sw
[kh] bn
ustop/k_unasp [k] base
[k] base2
[k] fi
@@ -803,21 +872,25 @@ ustop/k_unasp [k] base
[k] zhy
[k] sq
[k] hy
[k] bn
ustop/k_unasp_ [k] zh
ustop/null [?] base
ustop/p [p] base
[p] fr
[p2] fr
[p] zhy
[ph] bn
ustop/p_ [p] base
[p] fr
[p2] fr
[ph] hi
[ph] zh
[p#] hy
[ph] bn
ustop/p_asp [bh] hi
[ph] hi
[ph] zh
[p#] hy
ustop/p_ejc [p`] om
ustop/percus10 [(X1] base
ustop/pl [p] base
[p] base2
@@ -833,6 +906,8 @@ ustop/pl [p] base
[p] sq
[p] hy
[p#] hy
[p] bn
[ph] bn
ustop/pr [p] base
[p] base2
[p] fi
@@ -844,6 +919,8 @@ ustop/pr [p] base
[p;] ro
[p] hy
[p#] hy
[p] bn
[ph] bn
ustop/p_unasp [p] base
[p] base2
[p] fi
@@ -857,6 +934,7 @@ ustop/p_unasp [p] base
[p] zh
[p] sq
[p] hy
[p] bn
ustop/p_unasp_ [p] base2
[p] fi
[p] hi
@@ -867,6 +945,7 @@ ustop/p_unasp_ [p] base2
[p;] ro
[p] sq
[p] hy
[p] bn
ustop/q [q] base
ustop/q_u [q] base
ustop/t [t] base
@@ -874,6 +953,7 @@ ustop/t [t] base
[d.h] hi
[t.h] hi
[t] zhy
[t.h] bn
ustop/t_ [t] base
[t2] en
[t] fr
@@ -884,6 +964,8 @@ ustop/t_ [t] base
[t] sk
[t] el
[th] zh
[t.] bn
[t.h] bn
ustop/t_dnt [t] base
[t[] base
[t] base2
@@ -900,17 +982,22 @@ ustop/t_dnt [t] base
[t] sw
[t] sq
[t] hy
[t] bn
ustop/t_dnt2 [t] base2
ustop/t_ejc [t`] om
ustop/t_hi [t[] base
[t] hi
[t] sq
[t] hy
[t] bn
[th] bn
ustop/t_pzd [c] base
[t;] pl
[t;] ru
ustop/tr [t] base
[t2] en
[t] ru
[t.h] bn
ustop/ts [ts] base2
[ts] de
[ts] eo
@@ -928,7 +1015,6 @@ ustop/ts [ts] base2
ustop/ts_ [ts] base2
[ts] de
[ts] eo
[ts] hu
[ts] lv
[ts] pl
[dz] pl
@@ -953,6 +1039,7 @@ ustop/t_short [t] fr
[t] lv
[t] sk
[t] el
[t.] bn
ustop/tsh_pzd [tS;] zh
ustop/tsh_pzd_unasp [tS;] zh
ustop/tsh_sr [tS] sr
@@ -963,12 +1050,15 @@ ustop/ts_pzd [tS;] base
[tS;] ru
[c] sq
[dZ;] sq
[ch] bn
ustop/ts_pzd_ [c] hi
[c] hu
[c] hy
[c] bn
ustop/ts_pzd2 [c] hi
[c] hu
[c] hy
[c] bn
ustop/ts_pzd3 [tS;] hr
[dZ;] hr
ustop/t_sr [d] sr
@@ -1048,6 +1138,7 @@ vdiph/aae [aI] en_us
vdiph/aai [ai] lv
[aai] zhy
[aI] sq
[aI] ne
vdiph/aai_2 [AI] af
[AY] cy
vdiph/aai_3 [ai] fi
@@ -1059,6 +1150,9 @@ vdiph/aau_2 [aU] en_wi
[aU] la
[aau] zhy
vdiph/aau_3 [aU] hi
[aU] kn
[aU] bn
[aU] ne
vdiph/aau_4 [aU] vi
vdiph/ae [E:] fr_ca
[aI] la
@@ -1073,6 +1167,7 @@ vdiph/ai [aI] base2
[a:I] vi
[aI] id
[aI] hy
[aI] kn
vdiph/ai_2 [aI] en
[aI] cy
[aY] cy
@@ -1099,12 +1194,14 @@ vdiph/au_4 [aU] base2
[aU] is
[aU] id
vdiph/ee-e [E:] hi
[E:] bn
vdiph/eei [EI] base2
[eI] en
[EI] de
[EI] nl
[EI] vi
[eI] hy
[eI] ne
vdiph/eei_2 [eI] eo
[ei] fi
[ei] lv
@@ -1136,11 +1233,13 @@ vdiph/eu [eU] base2
[eU] sk
[eU] pt
[eU] vi
[eU] ne
vdiph/eu_2 [eu] fi
vdiph/@i [@I] vi
[@:I] vi
vdiph/&i [&i] fi
[aI] hi
[aI] bn
vdiph/@i_2 [eI] af
[@I] cy
[@Y] cy
@@ -1157,6 +1256,7 @@ vdiph/oi [oI] base2
[oI] it
[OI] la
[oI] vi
[oI] ne
vdiph/oi_2 [oI] af
vdiph/ooi [OI] en
[OI] en_n
@@ -1176,6 +1276,7 @@ vdiph/oou [oU] cs
[OU] grc
vdiph/ou [ou] fi
[ou] zhy
[oU] ne
vdiph/ou_2 [oU] sk
[oU] ro
vdiph/ou_3 [oU] is
@@ -1193,11 +1294,14 @@ vdiph/ui [uI] base2
[ui] lv
[uI] vi
[ui] zhy
[uI] ne
vdiph/u-i [yI] vi
vdiph/ui_2 [uI] af
vdiph/ui_3 [uI] cy
[uY] cy
vdiph/Vi [VI] ne
vdiph/Vu [@U] af
[VU] ne
vdiph/Vu_2 [oU] en_wm
vdiph/Vu_3 [o:] nl
vdiph/&y [&y] fi
@@ -1214,6 +1318,7 @@ vdiph/y#y_2 [Yy] af
[eoi] zhy
vdiph/y#y_3 [Y:] nl
vnasal/aa_n [a~] hi
[a~] bn
vnasal/aa_n2 [A~] en
[A~] fr
vnasal/aa_n3 [A~] af
@@ -1225,11 +1330,15 @@ vnasal/ee_n [E~] en
vnasal/ee_n2 [a] en_us
[E~] hi
[&~] pt_pt
[E~] bn
vnasal/ee_u_n [E~] pl
vnasal/e_n [e~] af
[e~] hi
[e~] pt
[e~] bn
vnasal/i_n [i~] pt
[i~] bn
[i:~] bn
vnasal/i_n2 [i~] hi
vnasal/m- [m-] sw
vnasal/n- [n-] sw
@@ -1237,15 +1346,19 @@ vnasal/nn- [N-] sw
vnasal/oi_n [oI~] pt
vnasal/o_n [o~] hi
[o~] pt
[o~] bn
vnasal/o_n2 [o~] af
vnasal/o_n3 [O~] fr
vnasal/oo_n [O~] en
vnasal/oo_n2 [O~] hi
[o] zh
[O~] bn
vnasal/oo_n3 [O~] pl
vnasal/u_n [u~] hi
[u~] pt
[u] zh
[u~] bn
[u:~] bn
vnasal/V_n [V~] hi
vnasal/W_n [E~] fr
[W~] fr
@@ -1254,6 +1367,8 @@ voc/dh [D] base
[D] es
voc/dh_ [D] base
[D] es
[D] om
voc/dh_om [D] om
voc/j [J^] base
voc/Q [Q] base
[Q^] base
@@ -1272,6 +1387,7 @@ voc/v [v] base
[v2] nl
[v;] ro
[v] is
[v] bn
voc/v_ [B] base
[v] base
[v] fi
@@ -1282,11 +1398,14 @@ voc/v_ [B] base
[v#] es
[v;] ro
[v] is
[v] bn
voc/v2 [v#] es
voc/vj [v] base
[v] fr
vocw/dh [D] base
[D] es
[D] om
[d`] om
vocw/Q [Q] base
[Q^] base
vocw/Q_ [Q] base
@@ -1342,6 +1461,9 @@ vowel/@ [@] base
[V] cy
[@4] hi
[@] hy
[@] ml
[@] kn
[@4] bn
vowel/@- [@-] base
[r*] hr
vowel/& [a] en_rp
@@ -1350,6 +1472,8 @@ vowel/& [a] en_rp
[&] lv
[&:] lv
[&] sv
[&] bn
[&:] bn
vowel/0 [0] en
[O] hi
[O] pt
@@ -1373,6 +1497,8 @@ vowel/@_3 [@] en_sc
[@] de
[W2] fr
[@3] hi
[@3] bn
[@3] ne
vowel/3_2 [3:] en_n
[@] zh
vowel/3_3 [3:] en_rp
@@ -1415,6 +1541,10 @@ vowel/a# [a/] base2
[&] sr
[&] pt
[&/] pt
[a#] rw
[a/] rw
[a] om
[a:] om
vowel/a_2 [a] base2
[a] en_wi
[A:] en_wi
@@ -1424,11 +1554,13 @@ vowel/a_2 [a] base2
[A] pt
[a] pt_pt
[a] ro
[a] rw
vowel/a#_2 [a#] pl
[&] hr
[a2] sv
[&] is
[a/] sw
[a] kn
vowel/a_3 [a] en_sc
[a/] en_sc
[A:] en_sc
@@ -1453,14 +1585,21 @@ vowel/a#_3 [a2] en
[&/] pt_pt
[a] zhy
[a/] sq
[a] ml
[a] bn
[a#] om
vowel/a_4 [a/] el
[a] vi
[a:] om
vowel/a_5 [a:] ta
[a/] it
[a] la
[a] sv
[a] sw
[a] tr
[a:] ml
[a:] kn
[A] om
vowel/a_6 [a] fr
[a2] fr
[a] ca
@@ -1492,10 +1631,15 @@ vowel/aa_7 [A] nl
vowel/aa_8 [0] en_us
[A:] en_us
vowel/aa_9 [a:] hi
[a:] bn
[a] ne
vowel/a_en [A] fr
vowel/@_bck [@] hi
[@/] hi
[@] zh
[@] bn
[V] ne
[@/] ne
vowel/e [e] base2
[e:] en
[eI] en_n
@@ -1519,6 +1663,12 @@ vowel/e [e] base2
[e] vi
[e] id
[e] sq
[e] rw
[e#] rw
[e] ml
[e:] ml
[e:] kn
[e] ne
vowel/e# [I] en_sc
[I2] en_sc
vowel/e_2 [eI] en_sc
@@ -1528,10 +1678,13 @@ vowel/e_2 [eI] en_sc
[e] it
[e:] sv
[e:] no
[e] bn
[e:] bn
vowel/e_3 [i] en_n
[e:] hu
[e] ku
vowel/e_5 [i] en_sc
vowel/e_6 [e] om
vowel/ee [E] en_n
[E] sv
vowel/e_e [E] en_sc
@@ -1583,6 +1736,7 @@ vowel/e_mid [E] en_rp
[E] id
[E2] id
[e] hy
[E] bn
vowel/e_mid2 [E] af
[E] de
[E2] de
@@ -1597,6 +1751,9 @@ vowel/e_mid2 [E] af
[e] sw
[e] tr
[e#] sq
[e] kn
[E] om
[E#] om
vowel/@_fnt [@] en_wi
[@2] en_wi
[@2] hr
@@ -1623,6 +1780,12 @@ vowel/i [i] base2
[i] zh
[i] sw
[i] hy
[i] rw
[i#] rw
[i:] ml
[i:] kn
[i] ne
[i:] om
vowel/i# [y:] cy
vowel/i_2 [i2] de
[i:] de
@@ -1650,6 +1813,8 @@ vowel/i_6 [i] hi
[i] tr
[i] ku
[i] id
[i] ml
[i] kn
vowel/i#_6 [i.] zh
vowel/i_7 [i] pl
[i] sq
@@ -1658,6 +1823,8 @@ vowel/i_en [i:] en
[i:] en_us
vowel/i_fnt [i:] en_wi
[i:] hi
[i] bn
[i:] bn
vowel/ii [I] en_n
[I2] en_n
[I] en_rp
@@ -1672,10 +1839,14 @@ vowel/ii [I] en_n
[i] zhy
[I] ku
[I#] sq
[I] om
[I#] om
vowel/ii# [Y] cy
[Y] ru
[I] ku
[i] sq
[y] ml
[y] kn
vowel/ii_2 [i] zh
vowel/ii#_2 [y] pl
vowel/ii_3 [I] cy
@@ -1686,6 +1857,7 @@ vowel/ii_3 [I] cy
[I] sv
[I] no
[I] tr
[I] bn
vowel/ii#_3 [I2] en_us
vowel/ii_4 [I] en
[I2] en
@@ -1716,6 +1888,11 @@ vowel/@_low [3] en_rp
[@] ro
[@2] no
[@] id
[@] bn
[V] bn
[@2] bn
[V] ne
[@/] ne
vowel/@_low2 [@/] en_us
[@2] en_us
vowel/o [o] base2
@@ -1735,6 +1912,13 @@ vowel/o [o] base2
[o:] sv
[o] id
[o] hy
[o] rw
[o#] rw
[o] ml
[o:] ml
[o] kn
[o:] kn
[o] bn
vowel/o_2 [o:] cy
[o2] fr
[o:] hi
@@ -1742,6 +1926,7 @@ vowel/o_2 [o:] cy
[o:] la
[o:] no
[o] vi
[o:] bn
vowel/o-_2 [V] en_n
[V] en_wm
vowel/o_3 [oU] en_sc
@@ -1763,6 +1948,8 @@ vowel/o_mid [U@] en_rp
[O2] fr
[o] hu
[o] tr
[o] ne
[o:] om
vowel/oo [O:] en_sc
[O] en_wi
[O:] en_wi
@@ -1801,6 +1988,9 @@ vowel/oo_4 [O] base2
[3:] en_wi
[O:] hi
[O] it
[O] bn
[O] om
[O#] om
vowel/oo_5 [O] pl
[O] is
[O] sq
@@ -1820,6 +2010,7 @@ vowelr/r-voc [r-] jbo
[r-] sk
[r:] sk
[r-] hr
[r-] bn
vowelr/V3_r [VR] en
[3] en_sc
[@r] zh
@@ -1836,6 +2027,12 @@ vowel/u [u:] en_wi
[u:] cs
[U] la
[u] id
[u] ml
[u:] ml
[u] kn
[u:] kn
[u] bn
[u:] om
vowel/u# [u:] en_sc
[Y] tr
vowel/u_2 [u1] fi
@@ -1879,6 +2076,10 @@ vowel/u_bck [u] base2
[u] zh
[u] sq
[u] hy
[u] rw
[u#] rw
[u:] bn
[u] ne
vowel/u_bck2 [u:] la
vowel/u_fnt [u:] en_rp
vowel/uu [U] en
@@ -1900,6 +2101,9 @@ vowel/uu_bck [U] en_wi
[U] pt
[U] no
[u] zhy
[U] bn
[U] om
[U#] om
vowel/V [3] en_sc
vowel/V_2 [V] en
[a] af
@@ -1909,6 +2113,7 @@ vowel/V_2 [V] en
vowel/V_3 [V] en_rp
[V] hi
[V] ta
[V] bn
vowel/V_4 [V] en_sc
vowel/V_6 [V] en_us
[a#] lv
@@ -2023,6 +2228,7 @@ vwl_hi/l-voc [l-] jbo
[l-] hi
[l-] sk
[l:] sk
[l-] bn
vwl_no/& [a] no
[a:] no
vwl_no/au- [aU] no
@@ -2071,6 +2277,7 @@ vwl_zh/iou [iou] zh
vwl_zh/ng [ng] zhy
vwl_zh/oeng [oen] zhy
vwl_zh/ong [ong] zhy
[ong] zh
vwl_zh/uaa [uA] zh
vwl_zh/uai [uai] zh
vwl_zh/uei [uei] zh
@@ -2117,6 +2324,7 @@ x/b [b] base
[b] hi
[b;] ro
[b] is
[b] bn
x/b_ [b] base
[b] fr
x/d [d] base
@@ -2129,6 +2337,8 @@ x/d [d] base
[d] is
[d] id
[d] sq
[d.] bn
[d`] om
x/d_ [d] base
[d[] base
[d] base2
@@ -2146,6 +2356,9 @@ x/d_ [d] base
[d] sw
[d] id
[d] sq
[d] bn
[d.] bn
[d`] om
x/d_dnt [d[] base
[d] base2
[d] fi
@@ -2155,21 +2368,26 @@ x/d_dnt [d[] base
[d] ru
[d;] ro
[d] sw
[d] bn
x/d_pzd [d;] pl
[d;] ru
x/dzh [J] base
[dZ] base
[J2] bn
x/dzh_ [dZ] base
[dZ;] base
[dz;] base
[J] hi
[dZ;] mk
[dZ;] ru
[J] bn
x/dz_pzd [dZ;] base
[dz;] base
[J] hi
[dZ;] mk
[dZ;] ru
[J] bn
x/dz_pzd_ [J2] bn
x/g_ [g] base
[g] cy
[g] fr
@@ -2181,5 +2399,7 @@ x/g2 [g] base
[g] hi
[g] es
[g] is
[g] bn
x/g2_ [g-] base
[g] hi
[g] bn
BIN
View File
Binary file not shown.
+1 -2
View File
@@ -101,8 +101,7 @@ phoneme ts
vowelin f1=0 f2=1700 -300 300 f3=-100 80
vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
lengthmod 2
wave ustop/ts
before _ ustop/ts_
wave ustop/ts // don't use ustop/ts_ (before non-vowel)
endphoneme
+9 -3
View File
@@ -70,7 +70,7 @@ phoneme ph
vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
lengthmod 2
wave ustop/p_
wave ustop/p_asp
endphoneme
phoneme m //not clear before some vowel
@@ -134,7 +134,7 @@ phoneme kh
vowelin f1=1 f2=1700 0 200 f3=-300 80 f4
vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30
lengthmod 2
wave ustop/k_
wave ustop/k_asp%80
endphoneme
phoneme tS;
@@ -274,7 +274,7 @@ endphoneme
phoneme @r //tmp use V3_r
vowel starttype (@) endtype (@)
length 250
length 350
formants vowelr/V3_r
endphoneme
@@ -360,6 +360,12 @@ phoneme ou
formants vdiph/8u
endphoneme
phoneme ong
vowel starttype (o) endtype (o)
length 500
formants vwl_zh/ong
endphoneme
phoneme u //try more before N
vowel starttype (u) endtype (u)
length 250
+20
View File
@@ -1341,3 +1341,23 @@ phonemetable hy base
include ph_armenian
phonemetable rw base2
include ph_kinyarwanda
phonemetable ml hi
include ph_malayalam
phonemetable kn hi
include ph_kannada
phonemetable bn hi
include ph_bengali
phonemetable ne hi
include ph_nepali
phonemetable mr hi
include ph_mathari
phonemetable om base
include ph_oromo
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -6
View File
@@ -876,12 +876,8 @@ int Compile::LoadWavefile(FILE *f, const char *fname)
max = -sample;
}
if(max > 1)
{
scale_factor = (max / 127) + 1;
}
else
scale_factor = 0;
scale_factor = (max / 127) + 1;
//fprintf(f_errors," sample len=%d max=%4x shift=%d\n",length,max,scale_factor);
+21 -2
View File
@@ -203,6 +203,7 @@ static int compile_line(char *linebuf, char *dict_line, int *hash)
int flag_offset;
int length;
int multiple_words = 0;
int multiple_numeric_hyphen = 0;
char *multiple_string = NULL;
char *multiple_string_end = NULL;
@@ -343,7 +344,14 @@ step=1; // TEST
case 1:
if((c == '-') && (word[0] != '_'))
{
flag_codes[n_flag_codes++] = BITNUM_FLAG_HYPHENATED;
if(isdigit(word[0]))
{
multiple_numeric_hyphen = 1;
}
else
{
flag_codes[n_flag_codes++] = BITNUM_FLAG_HYPHENATED;
}
c = ' ';
}
if(isspace2(c))
@@ -530,8 +538,14 @@ step=1; // TEST
}
else
{
dict_line[length++] = 80 + multiple_words;
dict_line[length++] = 80 + multiple_words + multiple_numeric_hyphen; // if numeric, count a hyphen as an extra word
ix = multiple_string_end - multiple_string;
if(multiple_numeric_hyphen)
{
// the first part is numeric, so keep the hyphen to match on
dict_line[length++] = '-';
dict_line[length++] = ' ';
}
memcpy(&dict_line[length],multiple_string,ix);
length += ix;
}
@@ -1303,6 +1317,11 @@ static int compile_lettergroup(char *input, FILE *f_out)
fputc(RULE_GROUP_START,f_out);
fputc(RULE_LETTERGP2,f_out);
fputc(group + 'A', f_out);
if(letterGroupsDefined[group] != 0)
{
fprintf(f_log,"%5d: lettergroup L%.2d is already defined\n",linenum,group);
error_count++;
}
letterGroupsDefined[group] = 1;
n_items = 0;
+9 -1
View File
@@ -542,7 +542,7 @@ void GetTranslatedPhonemeString(char *phon_out, int n_phon_out)
if(plist->synthflags & SFLAG_SYLLABLE)
{
if((stress = plist->tone) > 1)
if((stress = plist->stresslevel) > 1)
{
if(stress > 5) stress = 5;
phon_out[phon_out_ix++] = stress_chars[stress];
@@ -2550,6 +2550,14 @@ int TranslateRules(Translator *tr, char *p_start, char *phonemes, int ph_size, c
return(0);
}
#endif
// is it a bracket ?
if(IsBracket(letter))
{
if(pre_pause < 4)
pre_pause = 4;
}
// no match, try removing the accent and re-translating the word
if((letter >= 0xc0) && (letter <= 0x241) && ((ix = remove_accent[letter-0xc0]) != 0))
{
+1 -1
View File
@@ -466,7 +466,7 @@ int main (int argc, char **argv)
break;
case 0x104: // --voices
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,NULL,0);
espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS,0,data_path,0);
DisplayVoices(stdout,optarg);
exit(0);
-2
View File
@@ -1163,7 +1163,6 @@ void Test2()
const char* text1 = "Hello world. Testing.";
extern void TestCompile2(void);
void TestTest(int control)
{//=======================
@@ -1178,7 +1177,6 @@ void TestTest(int control)
//CharsetToUnicode("ISO-8859-4");
//CharsetToUnicode("ISCII");
//TestCompile2();
return;
if(control==2)
+11 -11
View File
@@ -734,12 +734,12 @@ static void CalcPitches_Tone(Translator *tr, int clause_tone)
p = &phoneme_list[0];
for(ix=0; ix<n_phoneme_list; ix++, p++)
{
if((p->type == phVOWEL) && (p->tone >= 4))
if((p->type == phVOWEL) && (p->stresslevel >= 4))
{
if(count_stressed == 0)
final_stressed = ix;
if(p->tone >= 4)
if(p->stresslevel >= 4)
{
final_stressed = ix;
count_stressed++;
@@ -747,7 +747,7 @@ static void CalcPitches_Tone(Translator *tr, int clause_tone)
}
}
phoneme_list[final_stressed].tone = 7;
phoneme_list[final_stressed].stresslevel = 7;
// language specific, changes to tones
if(tr->translator_name == L('v','i'))
@@ -813,7 +813,7 @@ static void CalcPitches_Tone(Translator *tr, int clause_tone)
if((tph->mnemonic == 0x3535 ) || (tph->mnemonic == 0x3135))
{
// change sentence final tone 1 or 4 to stress 6, not 7
phoneme_list[final_stressed].tone = 6;
phoneme_list[final_stressed].stresslevel = 6;
}
}
@@ -840,7 +840,7 @@ static void CalcPitches_Tone(Translator *tr, int clause_tone)
p->tone_ph = PhonemeCode2('4','4');
// tone 5 is unstressed (shorter)
p->tone = 1; // diminished stress
p->stresslevel = 1; // diminished stress
}
}
@@ -859,7 +859,7 @@ static void CalcPitches_Tone(Translator *tr, int clause_tone)
{
tone_ph = p->tone_ph;
if(p->tone != 1) // TEST, consider all syllables as stressed
if(p->stresslevel != 1) // TEST, consider all syllables as stressed
{
if(ix == final_stressed)
{
@@ -924,9 +924,9 @@ void CalcPitches(Translator *tr, int clause_type)
syllable_tab[n_st].flags = 0;
syllable_tab[n_st].env = PITCHfall;
syllable_tab[n_st].nextph_type = phoneme_list[ix+1].type;
syllable_tab[n_st++].stress = p->tone; // stress level
syllable_tab[n_st++].stress = p->stresslevel;
if(p->tone >= 4)
if(p->stresslevel >= 4)
n_primary++;
}
else
@@ -1051,7 +1051,7 @@ void CalcPitches(Translator *tr, int clause_type)
for(ix=ph_start; ix < ph_end; ix++)
{
p = &phoneme_list[ix];
p->tone = syllable_tab[st_ix].stress;
p->stresslevel = syllable_tab[st_ix].stress;
if(p->synthflags & SFLAG_SYLLABLE)
{
@@ -1071,7 +1071,7 @@ void CalcPitches(Translator *tr, int clause_type)
p->env = PITCHrise;
}
else
if(p->tone > 5)
if(p->stresslevel > 5)
p->env = syl->env;
if(p->pitch1 > p->pitch2)
@@ -1092,7 +1092,7 @@ if(p->tone_ph)
if(syl->flags & SYL_EMPHASIS)
{
p->tone |= 8; // emphasized
p->stresslevel |= 8; // emphasized
}
st_ix++;
+143 -62
View File
@@ -893,39 +893,54 @@ static int LookupThousands(Translator *tr, int value, int thousandplex, char *ph
static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
{//========================================================================
// Lookup a 2 digit number
// control bit 0: use special form of '1'
// control bit 0: tens and units (use special form of '1')
// control bit 1: ordinal number
// control bit 2: use feminine form of '2'
// control bit 3: speak zero tens
int found;
int ix;
int units;
int used_and=0;
int found_ordinal = 0;
int next_phtype;
char string[12]; // for looking up entries in de_list
char string[12]; // for looking up entries in *_list
char ph_tens[50];
char ph_digits[50];
char ph_and[12];
char ph_ordinal[12];
if((value == 1) && (control & 1))
{
if(Lookup(tr, "_1a", ph_out) != 0)
return(0);
}
// is there a special pronunciation for this 2-digit number
found = 0;
if(control & 4)
{
sprintf(string,"_%df",value);
found = Lookup(tr, string, ph_digits);
}
if(control & 2)
{
sprintf(string,"_%do",value);
if((found = Lookup(tr, string, ph_digits)) != 0)
{
found_ordinal = 1;
}
}
if(found == 0)
{
if((value == 1) && (control & 1))
{
if(Lookup(tr, "_1a", ph_out) != 0)
return(0);
}
sprintf(string,"_%d",value);
found = Lookup(tr, string, ph_digits);
}
// no, speak as tens+units
if((control & 2) && (value < 10))
if((control & 8) && (value < 10))
{
// speak leading zero
Lookup(tr, "_0", ph_tens);
@@ -934,49 +949,70 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
{
if(found)
{
strcpy(ph_out,ph_digits);
return(0);
ph_tens[0] = 0;
}
else
{
units = (value % 10);
if((value % 10) == 0)
{
sprintf(string,"_%d0",value / 10);
found = Lookup(tr, string, ph_tens);
}
if(!found)
{
sprintf(string,"_%dX",value / 10);
Lookup(tr, string, ph_tens);
}
if((control & 2) && ((units == 0) || (tr->langopts.numbers & 0x10)))
{
sprintf(string,"_%dXo",value / 10);
if(Lookup(tr, string, ph_tens) != 0)
{
found_ordinal = 1;
}
}
if(found_ordinal == 0)
{
sprintf(string,"_%dX",value / 10);
Lookup(tr, string, ph_tens);
}
if((value % 10) == 0)
{
strcpy(ph_out,ph_tens);
return(0);
}
found = 0;
units = (value % 10);
if(control & 4)
{
// is there a variant form of this number?
sprintf(string,"_%df",units);
found = Lookup(tr, string, ph_digits);
}
if(found == 0)
{
sprintf(string,"_%d",units);
Lookup(tr, string, ph_digits);
ph_digits[0] = 0;
if(units > 0)
{
found = 0;
if(control & 4)
{
// is there a variant form of this number?
sprintf(string,"_%df",units);
found = Lookup(tr, string, ph_digits);
}
if((control & 2) && ((tr->langopts.numbers & 0x10) == 0))
{
// ordinal
sprintf(string,"_%do",units);
if((found = Lookup(tr, string, ph_digits)) != 0)
{
found_ordinal = 1;
}
}
if(found == 0)
{
sprintf(string,"_%d",units);
Lookup(tr, string, ph_digits);
}
}
}
}
if(tr->langopts.numbers & 0x30)
ph_ordinal[0] = 0;
if((control & 2) && (found_ordinal == 0))
{
if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & 0x10)))
Lookup(tr, "_ord20", ph_ordinal);
if(ph_ordinal[0] == 0)
Lookup(tr, "_ord", ph_ordinal);
}
if((tr->langopts.numbers & 0x30) && (ph_tens[0] != 0) && (ph_digits[0] != 0))
{
Lookup(tr, "_0and", ph_and);
if(tr->langopts.numbers & 0x10)
sprintf(ph_out,"%s%s%s",ph_digits,ph_and,ph_tens);
sprintf(ph_out,"%s%s%s%s",ph_digits, ph_and, ph_tens, ph_ordinal);
else
sprintf(ph_out,"%s%s%s",ph_tens,ph_and,ph_digits);
sprintf(ph_out,"%s%s%s%s",ph_tens, ph_and, ph_digits, ph_ordinal);
used_and = 1;
}
else
@@ -993,7 +1029,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
ph_tens[ix] = 0;
}
}
sprintf(ph_out,"%s%s",ph_tens,ph_digits);
sprintf(ph_out,"%s%s%s",ph_tens, ph_digits, ph_ordinal);
}
if(tr->langopts.numbers & 0x100)
@@ -1015,9 +1051,11 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out)
} // end of LookupNum2
static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null, int thousandplex, int prev_thousands)
{//====================================================================================================================
static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null, int thousandplex, int control)
{//=============================================================================================================
// Translate a 3 digit number
// control bit 0, previous thousands
// bit 1, ordinal number
int found;
int hundreds;
int x;
@@ -1039,7 +1077,16 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
ph_thousands[0] = 0;
ph_thousand_and[0] = 0;
Lookup(tr, "_0C", ph_100);
found = 0;
if((control & 2) && ((value % 100) == 0))
{
// ordinal number, with no tens or units
found = Lookup(tr, "_0Co", ph_100);
}
if(found == 0)
{
Lookup(tr, "_0C", ph_100);
}
if(((tr->langopts.numbers & 0x0800) != 0) && (hundreds == 19))
{
@@ -1073,7 +1120,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
ph_digits[0] = 0;
if(hundreds > 0)
{
if((tr->langopts.numbers & 0x100000) && (prev_thousands || (ph_thousands[0] != 0)))
if((tr->langopts.numbers & 0x100000) && ((control & 1) || (ph_thousands[0] != 0)))
{
Lookup(tr, "_0and", ph_thousand_and);
}
@@ -1111,7 +1158,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
ph_hundred_and[0] = 0;
if((tr->langopts.numbers & 0x40) && ((value % 100) != 0))
{
if((value > 100) || (prev_thousands && (thousandplex==0)))
if((value > 100) || ((control & 1) && (thousandplex==0)))
{
Lookup(tr, "_0and", ph_hundred_and);
}
@@ -1121,16 +1168,15 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
buf2[0] = 0;
value = value % 100;
if(value == 0)
{
if(suppress_null == 0)
Lookup(tr, "_0", buf2);
}
else
if((value != 0) || (suppress_null == 0))
{
x = 0;
if(thousandplex==0)
{
x = 1; // allow "eins" for 1 rather than "ein"
if(control & 2)
x = 3; // ordinal number
}
else
{
if(tr->langopts.numbers2 & (1 << thousandplex))
@@ -1150,6 +1196,9 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null
} // end of LookupNum3
static const char *ordinalstr_en[] = {"th","st","nd","rd",NULL,};
static const char *ordinalstr_af[] = {"de","ste",NULL,};
static const char **ordinal_strings[] = {NULL, ordinalstr_en, ordinalstr_af};
static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int *flags, int wflags)
{//====================================================================================================
@@ -1166,10 +1215,15 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
int thousandplex = 0;
int thousands_inc = 0;
int prev_thousands = 0;
int ordinal = 0;
int this_value;
static int prev_value;
int decimal_count;
int max_decimal_count;
int decimal_mode;
int len;
const char *p;
const char **pp;
char string[12]; // for looking up entries in de_list
char buf1[100];
char ph_append[50];
@@ -1182,6 +1236,30 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
n_digits = ix;
value = this_value = atoi(word);
if((tr->langopts.numbers & 0x10000) && (word[ix] == '.'))
{
// ordinal number
ordinal = 2;
word[ix] = ' ';
}
else
if(tr->langopts.ordinals)
{
// ordinal numbers are recognized by letters after the number
ix++;
pp = ordinal_strings[tr->langopts.ordinals];
while((p = *pp++) != NULL)
{
len = strlen(p);
if((word[ix+len] == ' ') && (memcmp(&word[ix], p, len) == 0))
{
ordinal = 2;
memset(&word[ix], ' ', len);
break;
}
}
}
ph_append[0] = 0;
ph_buf2[0] = 0;
@@ -1200,7 +1278,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
}
}
if((word[0] == '0') && (prev_thousands == 0) && (word[1] != tr->langopts.decimal_sep))
if((word[0] == '0') && (prev_thousands == 0) && (word[1] != ' ') && (word[1] != tr->langopts.decimal_sep))
{
if((n_digits == 2) && (word[3] == ':') && isdigit(word[5]) && isspace(word[7]))
{
@@ -1278,7 +1356,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
Lookup(tr, "_.", ph_append);
}
LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands);
LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal);
if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200))
sprintf(ph_out,"%s%s%s",ph_append,ph_buf2,ph_buf); // say "thousands" before its number
else
@@ -1296,7 +1374,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
if(decimal_count > 1)
{
max_decimal_count = 2;
switch(tr->langopts.numbers & 0xe000)
switch(decimal_mode = (tr->langopts.numbers & 0xe000))
{
case 0x8000:
max_decimal_count = 5;
@@ -1318,18 +1396,21 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
break;
case 0x2000:
case 0xa000:
// Italian decimal fractions
if((decimal_count < 4) || ((decimal_count==4) && (word[n_digits] != '0')))
if(decimal_count <= 4)
{
LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0);
strcat(ph_out,buf1);
if(word[n_digits]=='0')
LookupNum3(tr, atoi(&word[n_digits]), ph_buf, 0,0,0);
if((word[n_digits]=='0') || (decimal_mode == 0xa000))
{
// decimal part has leading zeros, so add a "hundredths" or "thousandths" suffix
sprintf(string,"_0Z%d",decimal_count);
Lookup(tr, string, buf1);
strcat(ph_out,buf1);
if(Lookup(tr, string, buf1) == 0)
break; // revert to speaking single digits
strcat(ph_buf,buf1);
}
strcat(ph_out,ph_buf);
n_digits += decimal_count;
}
break;
+1 -1
View File
@@ -628,7 +628,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
phlist[ix].type = ph->type;
phlist[ix].env = PITCHfall; // default, can be changed in the "intonation" module
phlist[ix].synthflags = plist2->synthflags | switched_language;
phlist[ix].tone = plist2->stress & 0xf;
phlist[ix].stresslevel = plist2->stress & 0xf;
phlist[ix].tone_ph = plist2->tone_number;
phlist[ix].sourceix = 0;
+2 -2
View File
@@ -136,11 +136,11 @@ void ProsodyDisplay::SelectPh(int index)
if((p == NULL) || (p->ph == NULL)) return;
emphasized = "";
if(p->tone & 8)
if(p->stresslevel & 8)
emphasized = "*";
sprintf(buf,"Stress %s%d Amp %2d LenMod %2d Pitch %3d %3d [env=%d] Flags %.2x ",
emphasized,p->tone&0x7,p->amp,p->length,p->pitch1,p->pitch2,p->env,p->ph->phflags);
emphasized,p->stresslevel&0x7,p->amp,p->length,p->pitch1,p->pitch2,p->env,p->ph->phflags);
wxLogStatus(wxString(buf,wxConvLocal));
}
+6 -4
View File
@@ -862,8 +862,10 @@ static int AnnouncePunctuation(Translator *tr, int c1, int c2, char *buf, int bu
if(c1 == '-')
return(CLAUSE_NONE); // no pause
if(bufix > 0)
return(CLAUSE_SHORTCOMMA);
if((strchr_w(punct_close,c1) != NULL) && !iswalnum(c2))
return(CLAUSE_COLON);
return(CLAUSE_SHORTFALL+4);
if(iswspace(c2) && strchr_w(punct_stop,c1)!=NULL)
return(punct_attributes[lookupwchar(punct_chars,c1)]);
@@ -2029,7 +2031,7 @@ f_input = f_in; // for GetC etc
}
}
else
if((c1 == '<') && (ssml_ignore_l_angle != '<'))
if((c1 == '<') && (ssml_ignore_l_angle != '<') && ((c2 == '/') || iswalpha(c2)))
{
// SSML Tag
n_xml_buf = 0;
@@ -2300,10 +2302,10 @@ if(option_ssml) parag=1;
if((nl_count==0) && (c1 == '.'))
{
if(iswdigit(cprev) && (tr->langopts.numbers & 0x10000))
if(iswdigit(cprev) && (tr->langopts.numbers & 0x10000) && islower(c2))
{
// dot after a number indicates an ordinal number
c2 = ' ';
c2 = '.';
continue;
}
if(iswlower(c2))
+2 -2
View File
@@ -298,8 +298,8 @@ void CalcLengths(Translator *tr)
{
prev = &phoneme_list[ix-1];
p = &phoneme_list[ix];
stress = p->tone & 0x7;
emphasized = p->tone & 0x8;
stress = p->stresslevel & 0x7;
emphasized = p->stresslevel & 0x8;
next = &phoneme_list[ix+1];
+1
View File
@@ -676,6 +676,7 @@ int main (int argc, char **argv)
break;
case 0x104: // --voices
init_path(argv[0],data_path);
DisplayVoices(stdout,optarg2);
exit(0);
+2 -2
View File
@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"
const char *version_string = "1.40 22.Dec.08";
const char *version_string = "1.40.07 13.Jan.09";
const int version_phdata = 0x014000;
int option_device_number = -1;
@@ -46,7 +46,7 @@ int current_phoneme_table;
PHONEME_TAB *phoneme_tab[N_PHONEME_TAB];
unsigned char phoneme_tab_flags[N_PHONEME_TAB]; // bit 0: not inherited
unsigned int *phoneme_index=NULL;
static unsigned int *phoneme_index=NULL;
char *spects_data=NULL;
unsigned char *wavefile_data=NULL;
static unsigned char *phoneme_tab_data = NULL;
+1 -1
View File
@@ -1394,7 +1394,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
case phVOWEL:
ph = p->ph;
stress = p->tone & 0xf;
stress = p->stresslevel & 0xf;
// vowel transition from the preceding phoneme
vowel_transition0 = vowel_transition[0];
+1 -1
View File
@@ -183,7 +183,7 @@ typedef struct {
typedef struct {
PHONEME_TAB *ph;
unsigned char env; // pitch envelope number
unsigned char tone;
unsigned char stresslevel;
unsigned char type;
unsigned char prepause;
unsigned char amp;
+4 -1
View File
@@ -263,6 +263,7 @@ Translator *SelectTranslator(const char *name)
SetLetterVowel(tr,'y'); // add 'y' to vowels
tr->langopts.numbers = 0x8d1 + NUM_ROMAN;
tr->langopts.ordinals = 2;
tr->langopts.accents = 1;
}
break;
@@ -344,6 +345,7 @@ Translator *SelectTranslator(const char *name)
tr->langopts.stress_rule = 0;
tr->langopts.numbers = 0x841 + NUM_ROMAN;
tr->langopts.ordinals = 1;
tr->langopts.param[LOPT_COMBINE_WORDS] = 2; // allow "mc" to cmbine with the following word
}
break;
@@ -554,7 +556,7 @@ Translator *SelectTranslator(const char *name)
tr->langopts.param[LOPT_IT_DOUBLING] = 1;
tr->langopts.param[LOPT_COMBINE_WORDS] = 99; // combine some prepositions with the following word
tr->langopts.numbers = 0x1009 + NUM_ROMAN;
tr->langopts.numbers = 0x1009 + 0xa000 + NUM_ROMAN + 0x10000;
SetLetterVowel(tr,'y');
tr->langopts.spelling_stress = 1;
SetLengthMods(tr,3); // all equal
@@ -1038,6 +1040,7 @@ SetLengthMods(tr,3); // all equal
break;
default:
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
break;
}
+19 -5
View File
@@ -74,6 +74,7 @@ static int word_emphasis = 0; // set if emphasis level 3 or 4
static int prev_clause_pause=0;
static int max_clause_pause = 0;
int pre_pause;
// these were previously in translator class
@@ -641,6 +642,7 @@ int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab)
found = LookupDictList(tr, &word1, phonemes, dictionary_flags, FLAG_ALLOW_TEXTMODE, wtab); // the original word
if(dictionary_flags[0] & FLAG_TEXTMODE)
{
first_char = word1[0];
stress_bits = dictionary_flags[0] & 0x7f;
found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab); // the text replacement
if(dictionary_flags2[0]!=0)
@@ -1172,7 +1174,7 @@ strcpy(phonemes2,phonemes);
if(dictionary_flags[1] & FLAG_NOUNF)
{
/* not expecting a verb next */
tr->expect_noun = 3;
tr->expect_noun = 2;
tr->expect_verb = 0;
tr->expect_verb_s = 0;
tr->expect_past = 0;
@@ -1942,7 +1944,6 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
int next_in;
int char_inserted=0;
int clause_pause;
int pre_pause=0;
int pre_pause_add=0;
int word_mark = 0;
int all_upper_case=FLAG_ALL_UPPER;
@@ -1972,13 +1973,13 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t
int tone;
int tone2;
p_textinput = (char *)vp_input;
p_wchar_input = (wchar_t *)vp_input;
embedded_ix = 0;
embedded_read = 0;
option_phoneme_input &= ~2; // clear bit 1 (temporary indication)
pre_pause = 0;
if((clause_start_char = count_characters) < 0)
clause_start_char = 0;
@@ -2409,12 +2410,15 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
}
}
else
#ifdef deleted
// Brackets are now recognised in TranslateRules()
if(IsBracket(c))
{
pre_pause_add = 4;
c = ' ';
}
else
#endif
if(lookupwchar(breaks,c) != 0)
{
c = ' '; // various characters to treat as space
@@ -2636,10 +2640,13 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
}
}
}
pn[0] = ' ';
pn[1] = 0;
word = pw;
// include the next few characters, in case there are an ordinal indicator
pn[0] = ' ';
memcpy(pn+1, pw, 5);
pn[5] = 0;
for(pw = &number_buf[1]; pw < pn;)
{
TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 );
@@ -2650,8 +2657,15 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre
}
else
{
pre_pause = 0;
dict_flags = TranslateWord2(tr, word, &words[ix], words[ix].pre_pause, words[ix+1].pre_pause);
if(pre_pause > words[ix+1].pre_pause)
{
words[ix+1].pre_pause = pre_pause;
pre_pause = 0;
}
if(dict_flags & FLAG_SPELLWORD)
{
// redo the word, speaking single letters
+4 -1
View File
@@ -175,7 +175,8 @@
#define CLAUSE_VOICE 0 + 0x24000
#define CLAUSE_PERIOD 35 + 0x80000
#define CLAUSE_COMMA 20 + 0x41000
#define CLAUSE_SHORTCOMMA 5 + 0x41000
#define CLAUSE_SHORTCOMMA 4 + 0x41000
#define CLAUSE_SHORTFALL 4 + 0x40000
#define CLAUSE_QUESTION 35 + 0x82000
#define CLAUSE_EXCLAMATION 40 + 0x83000
#define CLAUSE_COLON 30 + 0x40000
@@ -363,6 +364,7 @@ typedef struct {
int max_roman;
int thousands_sep;
int decimal_sep;
int ordinals;
// bit 0, accent name before the letter name, bit 1 "capital" after letter name
int accents;
@@ -496,6 +498,7 @@ extern int end_character_position;
extern int clause_start_char;
extern int clause_start_word;
extern char *namedata;
extern int pre_pause;