Changed -b option to include an option for 16 bit character input. numbers.cpp: Added option for vigesimal number systems for tens+units. Fixed problems with word-length indications in callback events. -m option now ignores XML comments. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@216 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -196,26 +196,29 @@ _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@ | |||
| _0de d@ | |||
| _0ste st@ | |||
| _1o _'e@r | |||
| _2o tw'e@ | |||
| _3o d'&:r | |||
| _7o s'e@v@n | |||
| _8o _'ax2 | |||
| _9o ne@x2@n | |||
| _0Co h'On@rtst@ | |||
| // Place names | |||
| acapulco akap'ulk@U | |||
| afganistan afg'anistan | |||
| alaska al'aska | |||
| albanië alb'A:ne@:@- | |||
| algerië alx2'e@re@:@- | |||
| amanzimtoti $4 | |||
| antwerpen antv&rp@n | |||
| babilon babilOn | |||
| bangladesj baNglad'ES | |||
| barkly _^_EN | |||
| bellevue b&lvju: | |||
| bermuda $2 | |||
| bethlehem bEt_liEm | |||
| @@ -235,6 +238,7 @@ ceylon s@lOn | |||
| chicago _^_EN | |||
| china S'ina | |||
| clanwilliam kl&:nw'ili@m | |||
| clifton _^_EN | |||
| colenso kul'E:ns@U | |||
| colesberg ko@lsb&rx2 | |||
| constantia $2 | |||
| @@ -247,12 +251,13 @@ ermelo &rm@lo@ | |||
| franschhoek frA~nsh'uk | |||
| gadara x2@dA:ra | |||
| galilea x2al@l'i:a | |||
| gariep x2ar'ip | |||
| germiston _^_EN | |||
| getsémané x2Ets'e@mani | |||
| gonubie g@nu:bi | |||
| goudini $2 | |||
| gordonsbaai gO:rd@nsb'AI | |||
| (graaff reinet) x2rA:f||r@n'Et | |||
| grahamstad x2rA:mstat | |||
| griekeland x2rik@lant | |||
| groblersdal x2rObl@rsd'al | |||
| havana hav'ana | |||
| @@ -260,6 +265,7 @@ hermon $1 | |||
| hirosjima hiruS'ima | |||
| israel IsraI:l | |||
| italië it'A:li;@ | |||
| jeffreysbaai dZEfrisb'AI | |||
| kalafong kalaf'ON | |||
| kanada kanad%a | |||
| kanaän kA:nA:an | |||
| @@ -272,6 +278,9 @@ kongo kONgu | |||
| knysna neIsna | |||
| kuruman kuruman | |||
| kwa kwa $u $only // KwaZulu, etc. | |||
| lady _^_EN // Lady Grey/Lady Smith | |||
| ladybrand leIdibr'ant | |||
| laingsburg leInsbWrx2 | |||
| lesotho l@sutu | |||
| limpopo l@mpo@po@ | |||
| (los angeles) lOs_'andZ@li:z | |||
| @@ -283,10 +292,10 @@ maputo map'u:tu | |||
| mauritius mOr'iSjWs | |||
| milaan $2 | |||
| mesopotamië mEsuput'A:mi@ | |||
| mpumalanga mpu:mal'aNga | |||
| montagu mOnt@ky | |||
| moreletapark mOr@l,Etap'ark | |||
| moorreesburg mur'e@sbWrx2 | |||
| mosambiek mo@samb'ik | |||
| (thaba nchu) tab'A:||ntSu | |||
| europa Y@r'o@pa | |||
| nigel _^_EN | |||
| @@ -314,6 +323,7 @@ tunisië $2 | |||
| turkye $2 | |||
| ulundi ul'undi | |||
| upington apiNt@n | |||
| vanrhynsdorp fanr'eInsdOrp | |||
| vesuvius v@su:viWs | |||
| viëtnam vj'Etnam | |||
| wallonië val'o@ni@ | |||
| @@ -333,14 +343,20 @@ adam adam | |||
| adriaan A:drijan | |||
| adrie A:dri | |||
| albertus alb'&rtWs | |||
| alfred _^_EN | |||
| allah %alA: | |||
| amelia am'i:lija | |||
| annalet anal'Et | |||
| André 'andreI | |||
| annette an'Et | |||
| antoinette antun'Et | |||
| barbara bA:b@ra | |||
| basson $2 | |||
| bea bi:ja | |||
| benade b@nA:di | |||
| benjamin bEndZ@m@n | |||
| bennett bEn@t | |||
| bertha b&rta | |||
| bester b'Est@r | |||
| beyers beI@rs | |||
| blignault blIx2n@Ut | |||
| @@ -350,7 +366,7 @@ bouwer b@U@r | |||
| brian _^_EN | |||
| bredenkamp bre@d@nkamp | |||
| breytenbach breIt@nbax2 | |||
| brouwer bruw'&:r | |||
| bruwer bruw'&:r | |||
| caesar siz@r | |||
| carl kA:r@L | |||
| casanova kasan'o@va | |||
| @@ -375,6 +391,7 @@ cindy sIndi | |||
| coetzee kuts'e@ | |||
| cronjé krOnj'e@ | |||
| cynthia _^_EN | |||
| dalene dal'e@n | |||
| darwin _^_EN | |||
| david _^_EN | |||
| (da vinci) da||v'intSi | |||
| @@ -390,16 +407,20 @@ donaldson _^_EN | |||
| du $u | |||
| (du pisanie) du||pis'A:ni | |||
| (du plessis) du||pl@s'i | |||
| (du plooy) d@||ploI | |||
| (du preez) d@||pr'e@ | |||
| (du toit) d@||toI | |||
| duvenage dyv@nA:x2@ | |||
| eksteen $1 | |||
| eldorado &ldOr'A:d@U | |||
| elisabeth il'isabEt | |||
| elize il'i:z | |||
| elmien $2 | |||
| elsabe &ls@bi | |||
| elsabé &ls@bi | |||
| emmarentia Emar'e~nSja | |||
| erasmus $2 | |||
| ernest _^_EN | |||
| eségiël is'e@x2i_@l | |||
| estelle %ist&l | |||
| etienne Eti@n | |||
| @@ -418,15 +439,18 @@ george _^_EN | |||
| georgina dZO:dZ'ina | |||
| gerhard x2&rart | |||
| gerhardus $2 | |||
| gertruida $2 | |||
| gloria glO:ria | |||
| grange x2rA:nsi | |||
| gustav gustaf | |||
| guy _^_EN | |||
| hamlet _^_EN | |||
| harry _^_EN | |||
| havenga hA:f@Nx2a | |||
| haydn hAId@n | |||
| helen _^_EN | |||
| helena hil'e@na | |||
| helene hi:l'i:n | |||
| helloïse hEluw'i:z | |||
| henry _^_EN | |||
| herklaas $1 | |||
| @@ -436,10 +460,12 @@ ilse 'ilz@ | |||
| ingrid iNgr@d | |||
| isabel is@b&l | |||
| iskariot isk'ariOt | |||
| jaco jaku | |||
| jacques ZA:k | |||
| james _^_EN | |||
| jane _^_EN | |||
| Jean ZA~n $capital | |||
| jesebel je@s@b&l | |||
| jimmy _^_EN | |||
| joan _^_EN | |||
| joey dZ@Ui | |||
| @@ -452,14 +478,17 @@ kelvin _^_EN | |||
| kim _^_EN $capital | |||
| krige krix2@ | |||
| labuschagne labWsk'ax2ni | |||
| lafras $2 | |||
| langenhoven laN@nho@f@n | |||
| lasarus lA:s@r%Ws | |||
| lategan lA:t@x2an | |||
| le l@ $only | |||
| leandra li'andra | |||
| leipoldt lAIpOlt | |||
| leonardo liu:n'ardu | |||
| leonie li'o@ni | |||
| levi le@fi | |||
| liesbet lisbEt | |||
| louis luI | |||
| louise luw'i:z | |||
| mackintosh _^_EN | |||
| @@ -467,6 +496,8 @@ mbeki mbE:ki | |||
| magdalena $3 | |||
| malan mal'an | |||
| malherbe mal'&rb@ | |||
| mantovani mantOv'A:ni | |||
| mara mA:ra | |||
| marelie mar@li | |||
| margaret _^_EN | |||
| margaretha marx2ar'e@ta | |||
| @@ -478,8 +509,11 @@ marlise marl'i:s | |||
| martha marta | |||
| martin m'A:rt@n | |||
| mary _^_EN | |||
| mathilda mat'Ilda | |||
| matteus mat'i:Ws | |||
| matthee mat'e@ | |||
| matthéüs mat'i:Ws | |||
| maureen _^_EN | |||
| mefistofeles mEfist'o@f@l@s | |||
| melanie m@lA:ni | |||
| meraai m@rAI | |||
| @@ -491,6 +525,7 @@ michiel $2 | |||
| mike _^_EN | |||
| miriam mIri@m | |||
| mohammed muh'am@t | |||
| morkel mOrk@l | |||
| morné mOrn'eI | |||
| mostert m'Ost@rt | |||
| mouton mut'On | |||
| @@ -516,10 +551,12 @@ rebekka r@bEka | |||
| reinette r@nEt | |||
| renette r@nEt | |||
| renée r@neI | |||
| retha re@ta | |||
| retief r@tif | |||
| rhodes _^_EN | |||
| robert _^_EN | |||
| ronel run'&l | |||
| rossouw r@s@U | |||
| rousseau r@s@U | |||
| ruda ruda | |||
| rupert rup@rt | |||
| @@ -554,6 +591,7 @@ toerien $2 | |||
| totius to@SiWs | |||
| trudie trudi | |||
| versfeld f&rsf< | |||
| veronica _^_EN | |||
| victoria _^_EN | |||
| viljoen $2 | |||
| villiers vIli@rs | |||
| @@ -574,8 +612,11 @@ schalkwyk skalkveIk | |||
| schreiner SraIn@r | |||
| tony t@Uni | |||
| trichardt trix2A:rt | |||
| vera ve@ra | |||
| verwey f@rveI | |||
| vivaldi viv'aldi | |||
| viviers v@v@je@ | |||
| wilhelm v@lh&l@-m | |||
| khumalo kum'A:lu | |||
| zuma zu:ma | |||
| @@ -589,6 +630,11 @@ citroên s@trun | |||
| ferrari f@rA:ri | |||
| martini mart'i:ni | |||
| naspers nasp&rs | |||
| peugeot pW:Z@U | |||
| (pick n pay) p,ik||@n||p'eI | |||
| port pOrt $1 | |||
| rover _^_EN | |||
| sotho su:tu | |||
| toyota $2 | |||
| venda vEnda | |||
| volvo vOlvu | |||
| @@ -665,7 +711,7 @@ hoekom $pause | |||
| hoeveel $pause | |||
| wat $pause | |||
| watter $pause | |||
| ás as '!as | |||
| // prepositions | |||
| aan $u $strend2 | |||
| @@ -717,9 +763,10 @@ dis $u | |||
| // phrase with words spoken together | |||
| (nie waar nie) n,i||v,A:r||n'i | |||
| (à la carte) a||la||k'art | |||
| (carpe diem) karpE||di:Em | |||
| (nie waar nie) n,i||v,A:r||n'i | |||
| (sy aan sy) s,eI||an||s'eI | |||
| // main word list | |||
| @@ -735,6 +782,7 @@ agamemnon ax2am'EmnOn | |||
| aggressie $2 | |||
| agterstevoor $4 | |||
| agterweë $3 | |||
| aha A:h'!A: | |||
| algaande $2 | |||
| alge alx2@ | |||
| algehele alx2@h,e@l@ | |||
| @@ -743,8 +791,10 @@ almiskie $3 | |||
| alom al_'Om | |||
| alreeds $2 | |||
| alternatiewe $4 | |||
| amelee am@le@ | |||
| amen A:mEn | |||
| anale an'A:l@ | |||
| as't as@t $u | |||
| asof asOf | |||
| asook %as_o@k | |||
| aspris $2 | |||
| @@ -762,6 +812,7 @@ beswil bEsv@l | |||
| besnedene b@sne@d@n@ | |||
| bestes bEst@s | |||
| beta be@ta $only | |||
| betlehemster bEtli:Emst&r | |||
| bewe be@v@ | |||
| bewend be@v@nt | |||
| bewering b@ve@rIN | |||
| @@ -779,6 +830,9 @@ capita kapita | |||
| casino kas'i:n@U | |||
| cedille s@dIl@ | |||
| charisma kar'Isma | |||
| cliché kliS'eI: | |||
| clichés kliS'eI:s | |||
| crescendo kr@SEndu | |||
| dadelik dA:d@lIk | |||
| @@ -832,6 +886,7 @@ geldelike x2&ld@l@k@ | |||
| genade $2 | |||
| genesis x2e@n@s@s | |||
| //gesamentlik x2@sA:m@ntl@k | |||
| gladiator x2ladi'A:tOr | |||
| globale x2lo@b'A:l@ | |||
| gooi x2OI | |||
| gomorra x2@mOra | |||
| @@ -840,6 +895,7 @@ gratis x2r'A:t@s | |||
| grondys x2rO:nt_eIs | |||
| hallo h'Il,@U | |||
| handtertjie hant&:rci | |||
| hanou hA:n@U | |||
| hardop hart?Op | |||
| heeltemal he@lt@mal | |||
| @@ -896,7 +952,9 @@ kulture $2 | |||
| kunsmatige kWnsm'A:t@x2@ | |||
| kwansuis $2 | |||
| lasagne las'anj@ | |||
| libido l@bidu | |||
| lokaas lOk_A:s | |||
| londense lOnd@ns@ | |||
| lord _^_EN | |||
| @@ -910,7 +968,9 @@ meegee me@x2e@ | |||
| memorabilia mEmOrab'ilija | |||
| memoriam mEm'o@riam | |||
| mercedes $2 | |||
| meregebied me@r@x2@bit | |||
| merlot m&rl'o@ | |||
| miaau mi'aU: | |||
| midwinter mIdv@nt@r | |||
| militêre mIl@t'&:r@ | |||
| minister m@nIst@r | |||
| @@ -997,6 +1057,7 @@ pandemonium pand@m'o@niWm | |||
| parate par'A:t@ | |||
| parke park@ | |||
| parkie $1 | |||
| parte $1 | |||
| patos pA:tOs | |||
| patriotisme patri|ut'Ism@ | |||
| penorent pEno@rEnt | |||
| @@ -1056,6 +1117,7 @@ suburbia sWb'Wrbija | |||
| tanga taNga | |||
| tango taNx2u | |||
| tenminste $2 | |||
| tequila t@ki:la | |||
| terdeë $2 | |||
| terug t@-rWx2 | |||
| tesaam t@sA:m | |||
| @@ -23,6 +23,7 @@ | |||
| &b) a (_ %a // short final a: mamba and compounds/marimba/hamba | |||
| &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 | |||
| &rm) a (_ %a // shorten a sound: Irma/karma/firma and compounds | |||
| &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. | |||
| @@ -36,7 +37,7 @@ | |||
| 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 | |||
| _) abo (C %abO // move default stress and fix a and o sounds: abominasie/abonnement/aborsie | |||
| _) a (bC %a // abdy/ablatief/ablusie/abstrak, etc. | |||
| _) a (bba a // restore default stress: (ge)abba/abbamandjie, etc. | |||
| abse (s %apsE // fix stress and e sound: abses/-se | |||
| @@ -257,6 +258,7 @@ | |||
| arre (stA %ar@ // arrestasie/arresteer | |||
| arro (g %ar%u // arrogant/-e/arrogansie | |||
| ar (seen %ar | |||
| arte (fak %art@ // move default stress: artefak/-te | |||
| ar (tikel %ar // stress: artikel and compounds | |||
| artiku %art%ik%y // stress and vowel sounds: artikulasie/artikuleer | |||
| @C) as (_ as // shorten final a of words ending in -as: rigtingvas/jonkmanskas, etc. | |||
| @@ -290,6 +292,7 @@ | |||
| C) a (xA+ a // shorten a before x: taxi and compounds/praxi/saxofoon | |||
| ay (_ _^_EN // words ending in ay are English | |||
| ays (_ _^_EN // words ending in ays are English | |||
| aë (robi %aI // move default stress: aërobies/-e | |||
| .group aa | |||
| @@ -365,6 +368,8 @@ | |||
| _) ann (a@ %an // move default stress: annaal/annale | |||
| g) an (_ _^_EN //if it ends in gan it is English | |||
| C) anette (_ %anEt // Janette/Sanette | |||
| ano (rak an%u // fix stress and vowel sounds: anorak/-ke | |||
| ano (reksi %an%u // fix stress and o sound: anoreksie(leier...) | |||
| ansjovi anS''o@f@ // fix stress and o sound: ansjovis/-se/-smeer | |||
| an (tjie aIN | |||
| _) ana (C ,ana // words starting with ana starts destressed | |||
| @@ -470,6 +475,7 @@ | |||
| balsem bals@m // correct e sound in derivatives like balseming | |||
| bara (k bar'a | |||
| bar (bA b%ar // barbaar/barbare and derivatives/barbier and compounds | |||
| basi (lisk b%as@ // fix vowel sounds: basilisk/-e 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... | |||
| @@ -528,7 +534,7 @@ | |||
| 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. | |||
| byge (low b%eIx2@ // move default stress: bygelowig/-e/-heid | |||
| byge (lowi b%eIx2@ // move default stress: bygelowig/-e/-heid | |||
| _) by (telP2 b'eI // fix e sound: bytel/-ling/-lery | |||
| by (voorb b%eI// move default stress | |||
| bywoordeli b%eIvo@rd@l@ // move default stressa: bywoordelik/-e | |||
| @@ -553,21 +559,19 @@ | |||
| C) be (rsie b'&: //kombersie etc. | |||
| bene (r be@n@ //benerig/e | |||
| be (C%+ bE // beffie/bessie/bennie/bettie/blombeddings | |||
| bek (d b&k // fix e sound: eendbekdier/kortbekdolfyn/rooibekduifie/skinderbekdorp | |||
| re) be (lK+ b& // fix e sounds: rebel/-le/-lie | |||
| _) be (Cy b@ // bely/beny/betyds | |||
| bes (ie_ be@s //sonbesie duinebesie etc. | |||
| bes (ies_ be@s //sonbesies duinebesies etc. | |||
| son) be (sie be@ // fix e sound in compounds with sonbesie: sonbesiebos, etc. | |||
| beste (k b@st& // fix e sound: bestekopname and many compounds of bestek | |||
| bed (h bEt // fix stress, e sound and d sound: bedhoek/bedhok, etc. | |||
| bed (C bEt | |||
| bedjie bE:ici // (ge)bedjie/-s/bababedjie | |||
| 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 | |||
| be (dr@ b@ // bedremmeld/bedrewe/bedrywig, etc. | |||
| bed (t bE // fix e and d sounds: bedtafeltjie/bedtyd | |||
| bedw (@ b@dw // bedwing and similar | |||
| @) bed (_ bEt // bruidsbed/dubbelbed; many compounds ending in bed | |||
| be (de_ be@ // bede/gebede | |||
| bedes (_ be@d@s // bedes/seënbedes, etc. | |||
| @@ -733,6 +737,7 @@ | |||
| deto (nA d%Et%u // fix e and o sounds and stress: detonasie/detoneer/detonering | |||
| deur (aar d%y@r_ // move default stress: deuraar/-de | |||
| deur (bo d%Y@r // move default stress: deurboor/deurborende | |||
| deur (dag d%Y@r // move default stress: (on)deurdag/-te/-theid | |||
| deur (drenk d%y@r // move default stress: deurdrenk/-te | |||
| deur (dring@ d%y@r // move default stress: deurdringend/-e | |||
| deur (grond d%y@r // move default stress: (on)deurgrond/-elik/-e/-heid | |||
| @@ -862,6 +867,7 @@ | |||
| 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 | |||
| dw (erg dw // fix d sound: tuindwerg/-e/-ie | |||
| @) 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 | |||
| @@ -875,11 +881,13 @@ | |||
| e (C E | |||
| CAC) e (CC @ // fix e sound: nalatenskap/wapenstilstand | |||
| CAC) e (C% E // beesfilette/nougesette/onderbesette/voortgesette | |||
| blind) e (C@ @ // fix e sound in compounds like: blindekol/-mol/-wese | |||
| juwel) e (C @ // fix e sound: juwelekissie and similar compounds | |||
| fontein) e (C @_ // fix e sound: Fonteinesirkel/-wisselaar, etc. | |||
| kening) e (@ @ // fix e sound: rekeningeklerk/-navraag and similar | |||
| narkos) e (C @ // fix e sound: narkosedood/-gas/-masker/-middel/-rekords, etc. | |||
| ooi) e (C @ // fix e sound: dooiepunt/ooievaar and similar | |||
| skew) e (C @ // fix e sound: skewekop/-mond | |||
| 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 | |||
| @@ -890,6 +898,7 @@ | |||
| CAC) e (rr @ // fix e sound: koperring/-rooi/nederryn/somerreën/-rok/superrealis/syferrekenaar... | |||
| @C) e (reekK @ // fix e sound: duine-/rotsereeks | |||
| aai) e (C @ // fix e sound: baaierd/waaierstert/paaiement/compounds starting with baaiers- | |||
| lat) eres @r@s //lateres | |||
| fp) ers (_ &rs // fix e sound: dof-/gif-/olyf-/tydskrifpers, etc. | |||
| bloup) ers &:rs // fix e sound: bloupers | |||
| treil) e (rC @ // fix e sound: (vis)treilerkaptein/-wrak and similar compounds | |||
| @@ -931,6 +940,7 @@ | |||
| ies) e (b @ // fix e sound: dinamiesebinding/ekonomiesebemagtiging | |||
| &At) e (bA@ @ // fix e sound: batebestuur/sekuriteitebeurs/soldatebbaadjie/geslotebaan, etc. | |||
| Aw) e (bA @ // fix e sound: briewebesteller/diewebende/newebedoeling/skewebek/stywebeen | |||
| @d) e (bl @ // fix e sound: huldeblyk/-e/lindeblom/maagdebloeisel | |||
| @C) e (bo @ // compounds with boek/boer/boog/boom/bol/bord/borsel/bos/ grondbonebotter/kamdebo... | |||
| @C) e (bu @ // briewebus/ereburger/novellebundel/urinebuis/woedebui | |||
| @C) e (by @ // fix e sound: statebybel/-s | |||
| @@ -1422,6 +1432,7 @@ | |||
| fari (seër f%ar%i // fix stress and a sound: Fariseër/-s | |||
| farma (seut f%arm%a // move default stress: farmaseut/-e/-ies/-ika | |||
| fasade f%asA:d@ // fix stress and 1st a sound: fasade/-s and compounds | |||
| fase (tK f%asE // | |||
| fasili f%as@l%i // fasiliteit/e/aftrekorderfasiliteit | |||
| fa (ta@ f%a //fix stress and 1st a sound: fatale/fatalis/-me/-te/-ties | |||
| fat (soen f%at // move default stress: (on)fatsoen(lik) | |||
| @@ -1443,6 +1454,7 @@ | |||
| fi (siek f@ // correct 1st i sound and move default stress: | |||
| fili (ppA f@l@ // fix stress and i sounds: Filippyne/-pynse/filippien | |||
| filistyn f@l@st'eIn // filistyn/e | |||
| fille (t f@lE // fix stress and e sound: (bees)fillet/-te and similar | |||
| _) fi (na@ f%i // finaal/finale/finansies | |||
| mor) fine (@ fin@_ // fix e sound in compounds: morfineafhanklikheid/-beswyming/-dosis/-tablet | |||
| fi (skA f@ // move default stress: fiskaal/fiskale/konfiskeer | |||
| @@ -1456,8 +1468,10 @@ | |||
| flu (we fl%y // move default stress: fluweel/fluwele and compounds | |||
| _) fok (o fOk_ // fix o sound, insert short break: fokop/fokof | |||
| folio fo@li_u // fix o sounds: folio and compounds | |||
| fondue f%Ondy // fix stress and ue sound: fondue and compounds | |||
| @) fonie fun'i // kakofonie/simfonieorkes/telefonie | |||
| @) fonies f'o@nis // fix stress: simfoniese/polifonies/telefonies | |||
| @) fonie (s@@ fun'i // fix stress: simfonieseisoen and similar | |||
| fon (tein f%On // move default stress: fontein/fonteinwater, etc. | |||
| _) for (C f%Or // formeel/formele/forseer/fortuin | |||
| fore (l f%ur& // fix stress and e sound: forel/-e and compounds | |||
| @@ -1472,6 +1486,7 @@ | |||
| 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 | |||
| frangi (pani fr%aN%i // fix stress: frangipani and compounds | |||
| fre (kwen fr%i // fix stress and 1st e sound: frekwensie/-s and compounds | |||
| freud frOId // Freud/Freudiaans/-e | |||
| front (A@ fr%Ont // fix stress and e sound: konfronterend/-e/konfrontering | |||
| @@ -1494,10 +1509,14 @@ | |||
| gal (joen x2%al // move default stress: galjoen/-e and compounds | |||
| gamie (_ x2am'i // bi-/mono-/poligamie, etc. | |||
| gamies x2'A:mis // bi-/mono-/poligamies/-e | |||
| ga (riep x2%a // fix stress and a sound: Gariep(dam) | |||
| gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds | |||
| garni (soen x2%arn%i // fix stress: garnisoen and compounds | |||
| @C) garye x2%ar'eI@ // Fix stress: Bulgarye/Hongarye | |||
| gas (aan x2as_ // fix stress: gasaanleg/-aansteker and similar comp9ounds | |||
| _) gas (A x2''as_ // fix stress: gasaanleg/-aansteker/-installasie/-ontploffing | |||
| gas (erig x2A:s // long a and no pause: gaserig/-e/-heid | |||
| gas (ie x2A:s // long a and no pause: gasie/-s and compounds | |||
| gas (ig x2A:s // long a and no pause: gasig/-e/-heid | |||
| gauteng x2%aUtEN //Gauteng and compounds | |||
| _) gh g | |||
| gh (_ k | |||
| @@ -1739,6 +1758,7 @@ | |||
| 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. | |||
| hex (C hEks // prevent English translation: Hex(rivier)vallei | |||
| 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@ | |||
| @@ -1757,6 +1777,7 @@ | |||
| hiër (argie h%i@r // stress on 1st a: hiërargies/-e | |||
| hiëro (glie h%i@r%u // fix stress and vowel sounds: hiëroglief/-gliewe | |||
| A) hle (_ =LE // Nguni words and names ending in -hle: Enhlalakahle/Hlalanikahle/malahle/Phahle | |||
| _) hobo ho@bu // fix o sound in compounds: hobokonsert/-musiek/-solo/-sonata/-speler | |||
| hoeve (r h%uf& // fix stress and e sounds: hoever(re) | |||
| hoeveelh (e h%ufe@lh // move default stress: hoeveelheid/-hede | |||
| hof (A hOf_ // fix o, pause: hofaansoek/-amptenaar/-etiket/-interdik/-ordonnans/-uitspraak/-ure... | |||
| @@ -1785,6 +1806,7 @@ | |||
| ie i | |||
| tr) ie (_ 'i //stress on trie at word end | |||
| ieë (K i:@ // knieë/vlieë/spieël/-tjie | |||
| ie (uu i // split ie/uu, eu not diphthong: drieuur and similar | |||
| ss) ief (_ 'if // move default stress: aggressief/massief/obsessief/progressief, etc. | |||
| ss) iewe (_ 'iv@ // move default stress: aggressiewe/massiewe/obsessiewe/progressiewe | |||
| ns) iewe (K 'iv@ // fix stress and e sound: intensiewesorg(eenheid) and similar | |||
| @@ -1827,6 +1849,7 @@ | |||
| _) immi (grA @m@ // fix stress and i sounds: immigrant/-e and compounds | |||
| _) i (mmu %i // fix stress and i sound: immuun/immune/immuniteit | |||
| _) inder (C @nd@r // inderdaad/inderhaas/indertyd | |||
| _) indel (C Ind&l // fix e sound: indelf/indelwe/indelwing | |||
| indi (a@ @nd%i // fix stress: Indiaan/Indiane | |||
| in (dien @n //indienstreding/indiensopleiding/indiensplasing | |||
| indis (kr @nd@s // stress: indiskreet/-e/indiskresie/-s | |||
| @@ -1939,6 +1962,8 @@ | |||
| irriter (@ ir@t'e@r // irriterend/e/irritering | |||
| iles (_ _^_EN // words and names ending in -iles are English | |||
| ipe (kon %ip@ // Fix stress and e sound: ipekonders and compounds | |||
| _) ira (C %ira // fix stress: Irak/Iran/Iranees/-nese/Iraki | |||
| ity (_N _^_EN | |||
| @) igering ix2'e@r@N | |||
| instruks @nstr'Wks // instruksie/s (stress) | |||
| @@ -1978,6 +2003,7 @@ | |||
| @) iseur is'Y@r // adviseur/narkotiseur | |||
| @) i (sering i | |||
| C) isie 'isi // ambisie/ammunisie/komposisie/ammunisiekis | |||
| @@@C) isie isi // restore default stress in compounds like kragkompetisie... | |||
| C) isieus isi'Y@s // ambisieus/suspisieuse | |||
| C) isk (_ 'Isk // asterisk/tamarisk | |||
| C) isk (e_ 'Isk // asteriske/tamariske | |||
| @@ -2074,6 +2100,7 @@ | |||
| _) 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 | |||
| kla (kous klA: // fix stress and long a sound: klakous/-e | |||
| klande (sti kl%and@ // move default stress: klandestien/-e | |||
| _) kla (sA@@ kla // klasaantekeninge/klasonderwyser and other compounds | |||
| kla (ssiek kl%a // move default stress: klassiek/-e | |||
| @@ -2103,7 +2130,7 @@ | |||
| kleure klY@r@ // fix e sound: kleurebeeld/-gloed/-kaart/-kontras/-mengeling/-prag/-sin... | |||
| kli (maat kl@ // move default stress: klimaat and compounds | |||
| kli (mop klI // fix i sound: klimop(plant) | |||
| klim (u klIm_ // fix i sound in compounds like bergklimuitstappie | |||
| berg) klim (A klIm_ // fix i sound in compounds like bergklimuitstappie/-ekspedisie | |||
| kli (niek kl@ // fix stress and i sound: kliniek and compounds | |||
| klip (A klIp_ // fix i sound: klipalbaster/-altaar/--uil/leiklipolie | |||
| klou (sule kl%@U // move default stress: klousule/-s | |||
| @@ -2209,6 +2236,8 @@ | |||
| _) kar (b k%ar // move default stress: karba/karbol/karbonkel and their compounds | |||
| kar (be kar // restore default stress: karbestuurder/-s/-besitter, etc. | |||
| kar (does k%ar // move default stress: kardoes and compounds | |||
| _) ka (rien k%a // fix stress and a sound: Karien/Karientjie/Kariena | |||
| karika (tu k%ar%ik%a // fix stress and a sounds: karikatuur/karikature | |||
| 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 | |||
| @@ -2224,13 +2253,14 @@ | |||
| kar (wei k%ar // move default stress: karwei and derivatives | |||
| ka (sarm k%a // move default stress: kasarm and compounds | |||
| kaserne k%as&rn@ // move default stress, fix 1st e sound: kaserne and compounds | |||
| kaske (nade k%ask@ // fix stress and e sound: kaskenade/-s and compounds | |||
| _) ka (sta k%a // move default stress: kastaiing and compounds | |||
| _) ka (ste@ k%a // move default stress: kasteel/kastele and compounds | |||
| ka (sty k%a // move default stress: kasty/-der/-ding | |||
| kasse (t k%asE // fix stress and e sound: kasset/-te and compounds | |||
| ka (strol k%a // move default stress: kastrol/-le and compounds | |||
| _) kata ,kata | |||
| katalo (gus k%atalu // fix stress and vowel sounds: katalogus and compounds | |||
| katalo (gA k%atal%u // fix stress and vowel sounds: katalogus and compounds/katalogi/katalogisering | |||
| kate (dr k%at@ // katedraal/katedrale and compounds | |||
| kate (gA k%at@ // fix stress and vowel sounds: kategis/-te/kategismus and compounds/kategese/kategeet | |||
| kategorie k,at@x2ur'i // to also handle plural | |||
| @@ -2238,6 +2268,7 @@ | |||
| kategories k,at@x2'o@ris // to move stress | |||
| K) katel kA:t@l // fix e sound of compounds: katelknop/-styl, etc. | |||
| katjie (pie k%aIc%i // move default stress: katjiepiering and compounds | |||
| katki (sA k%atk@ // fix i sound: katkiseer/katkisasie, etc. | |||
| _) ka (to k%a // fix stress and a sound: katode and compounds/katoliek/katots | |||
| _) ka (tr k%a // move default stress: Katrina/katrol and compounds | |||
| @@ -2311,10 +2342,12 @@ | |||
| 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%Ons''En // fix stress and e sound: konsentries/-e | |||
| konsep (A k%OnsEp_ // fix e sound, pause: konsepooreenkoms and similar compounds | |||
| 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 | |||
| konstabel k%OnstA:b@l // (hof/hoof/verkeers)konstabel/-s, etc. | |||
| konsti (tusi k%Onst@ // fix stress and i sound: konstitusie and compounds | |||
| konsul (A k%Ons%Wl // konsulaat/konsulate/konsulêr | |||
| kon (sul kOn // restore default stress: konsul and compounds | |||
| konsul (tant k%Ons%Wl // fix stress: konsultant/-e and compounds | |||
| @@ -2322,6 +2355,7 @@ | |||
| _) kontra (KP6 k'Ontra // kontra is prefix | |||
| kontra (diks k%Ontr%a // move default stress: kontradiksie/-s | |||
| _) kontrak k%Ontrak // move default stress: kontraksie/kontrak and compounds | |||
| kontrap (sie k%Ontrap // fix stress: kontrapsie/-s | |||
| _) kontras k%Ontras // move default stress: kontras/-te/kontrasteer | |||
| kontrasep k%Ontr%asEp // fix stress and e sound: kontrasepsie and derivatives | |||
| kontrover (s k%Ontr%uv&r // o and v sounds: kontroversie/kontroversieel | |||
| @@ -2341,7 +2375,7 @@ | |||
| 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. | |||
| ko (ö k%u // koördinasie/koöpsie/koöperasie/-atief, etc. | |||
| @@ -2354,9 +2388,11 @@ | |||
| lagune l%ax2yn@ // move default stress: lagune and compounds | |||
| _) la (kon l%a // lakoniek/lakonies/lakonisme | |||
| lamfer lA~mf@r // fix e sound: lamferdoek/-vlae, etc. (variant) | |||
| lampe (t l%ampE // move default stress: lampet/-te/lampetbeker/-s | |||
| lanfer lA~mf@r // fix e sound: lanferdoek/-vlae, etc. | |||
| lam (len l%am // move default stress: lamlendeling/lamlendig/-e/-heid | |||
| lande (ry l%and@ // move default stress: landerye/compounds of landery- | |||
| _) land (_rover _^_EN | |||
| _) lang (d@@ l%aN // langdradig/langdurig and their derivitivs | |||
| _) lange (CA laN@ // e sound: langelaas/Langeberge | |||
| lang (werp l%aN // move default stress: langwerpig/-e/-heid | |||
| @@ -2379,6 +2415,7 @@ | |||
| legende l@x2End@ // move default stress; fix e sounds | |||
| legen (da l@x2@n // move default stress and fix e sounds | |||
| legi (oen l%Ex2%i // fix stress and e sound: legioen/-e and compounds | |||
| le (kker l& // fix e sound: luilekker/-dae/-lewe, etc | |||
| leli (k le@l@ // fix e sound and stress: lelik and derivatives | |||
| _) lende lEnd@ // lendelam/lendene/compounds of lende | |||
| lening le@n@N // banklening/sorgverlening/hulpverlening... | |||
| @@ -2474,6 +2511,7 @@ | |||
| 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 | |||
| ma (kassar m%a // fix stress and 1st a sound: (anti)makassar/-s | |||
| @) makie (sie mak'i // fix a sound and stress: bol(le)makiesie/-slanery | |||
| ma (kietie m%a // fix stress and a sound: makietie and compounds: verjaardagmakietie/-s | |||
| @) makranka makr'anka // fix stress and vowel sounds: koek(e)makranka/-s | |||
| @@ -2605,6 +2643,7 @@ | |||
| morf (otomie m%Orf // move default stress: morfotomie | |||
| _) morr (i mOr // restore default stress: morrig/morrie/-doring | |||
| _) mors (@ mOrs // restore default stress: morsaf/morsdood/morsig | |||
| mosam (biek m%o@s%am // move default stress: Mosambiek/-er/-se | |||
| mosa (ïek m%o@s%a // move default stress: mosaïek and compounds | |||
| mo (skee m%O // move default stress: moskee/-s and compounds | |||
| motor mo@t@r // motorfiets/motorkar/vragmotor | |||
| @@ -2627,7 +2666,7 @@ | |||
| mede (doë m%e@d@ // move default stress: mededoë/-nd | |||
| _) mede (ly m%e@d@// move stress | |||
| mede (plig m%e@d@ // move stress: medepligtige | |||
| media mi:dia // compounds of media | |||
| media mi:di:ja, // 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 | |||
| @@ -2657,7 +2696,7 @@ | |||
| mentee (C mEnt'e@ // argumenteer/dokumenteer/fragmenteer stress related | |||
| mentele (K mEnt'e@l@ // stress always on penultimate slb of words ending in ntele/-r | |||
| men (tasie m%En // fix stress: argumentasie/dokumentasie and similar | |||
| mentering mEnt'e@r@N | |||
| mekaar m@k'A:r | |||
| mekaarge m@k'A:rx2@ | |||
| @@ -2706,10 +2745,12 @@ | |||
| eu) n (g n // dreungeluid/kreungeluid/steungeluid/steungewend | |||
| oo) n (g n // hoongelag/loongeld/telefoongesprek/woongeriewe and similar | |||
| Cui) n (g n // basuingeskal/bruingebrand/bruingeel/tuingereedskap/tuingewas/tuingrond | |||
| we) n (g@++ n // split n/g: opwengrammofoon/wengereg/-gedagtes | |||
| y) n (g n // fyngoud/hooflyngesprek/langtermyngroei/kaplyngrens | |||
| ë) n (g n // split -ng-: reëngeluid/-geur/-gogga/-gordel/seëngebed | |||
| aa) n (gas n // split n/g: metaangas and compounds and similar | |||
| &) n (gat n // split "ng": mangat/-e/woongat/-e/opwengat/-e | |||
| spi) n (ge n // split n/g: spingehalte/-geluid, etc. | |||
| ng (eeR Nx2 // diftongeer/gedistingeerde/rangeer and compounds | |||
| ngees nx2e@s // split n/g: leuen-/span-/sportman-/wengees | |||
| n (_g N | |||
| @@ -2720,6 +2761,8 @@ | |||
| _) 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 (byge n%A: // move default stress: nabygeleë and derivatives | |||
| nabyh (e n%A:beIh // move default stress: nabyheid/-hede | |||
| na (ï n%a_ // naïef/naïewe/naïwiteit | |||
| @) na (lis n%a // shorten a sound: joernalis/-te/-tiek | |||
| nami (bi n%amI // Namibië/Namibiese | |||
| @@ -2767,6 +2810,7 @@ | |||
| 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 | |||
| bye) nes nEs // fix e sound: byenes and compounds | |||
| 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 | |||
| @@ -2812,7 +2856,7 @@ | |||
| no (stalgie n%O // stress on 2nd slb.: nostalgies | |||
| note (b no@t@ // fix e sound: notebalk/-e/-bank/-beurs | |||
| notule (K n%utyl@ // fix stress and vowel sounds: notule and compounds | |||
| no (velle n%u // move default stress and fix o sound | |||
| novelle n%uf&l@ // move default stress and fix o sound: novelle/-s and compounds | |||
| november n%o@fEmb@r // fix 1st e sound and stress: November and compounds | |||
| ntere (ss ntr@' // interessant/interesseer/geïnteresseerd | |||
| n (tjie N // breintjie/fonteintjie/kleintjie | |||
| @@ -2857,7 +2901,7 @@ | |||
| _) ok (tA %Ok // move default stress: Oktober and compounds: Oktobermaand, etc./oktaaf/oktawe | |||
| ole (ander %o@l%i // fix stress and e sound: oleander and compounds | |||
| C) o (lia o@ // fix o sound: Goliat/magnolia | |||
| oliek (_ ul'ik // koliek/mankoliek/simboliek | |||
| K) oliek ul'ik // koliek/mankoliek/simboliek/koliekbaba | |||
| oliek (e_ ul'ik // mankolieke/katolieke | |||
| oliekig ul'ik@x2 // mankoliekig/-e/-heid | |||
| o (lien %u // fix stress and o sound: olien/-hout, etc. | |||
| @@ -2929,6 +2973,7 @@ | |||
| oloog ul'o@x2 // bioloog/kardioloog and similar | |||
| oloë ul'u@ // bioloë/kardioloë and similar | |||
| omega %o@me@x2a // omega/-s | |||
| omele (t %Om@lE // fix stress and vowel sounds: omelet/-te and compounds | |||
| ometrie ume@tr'i // geometrie/psigometrie | |||
| ometries um'e@tris // geometries/psigometriese | |||
| w) o (rs O: //lengthen o sound in wors compounds | |||
| @@ -2991,6 +3036,7 @@ | |||
| opper Op@r // oppergesag/wese/vlak/man | |||
| opper (vlakki %Op@r // move default stress: oppervlakkig/-e/-heid/-ste | |||
| opsetlik %OpsEtl@k // move default stress: opsetlik/-e/-heid | |||
| op (sione@ %Op // fix stress vowel and s sounds: opsioneel/-nele | |||
| optel Opt&l | |||
| _) op (@P2 'Op // opeet/opeis/optredes/opoffering | |||
| open (+ o@p@n // open/opening/e/s | |||
| @@ -3328,6 +3374,7 @@ | |||
| peripa (t pEripa'' // fix stress and vowel sounds: peripateties/-e/peripatetikus/-se/peripatetici | |||
| peri (sCA p%Er@ // fix stress and vowel sounds: peristalties/-e/peristaltiek/periskoop/-skopies | |||
| @) perke (_ p&rk@ // fix e sound in some words ending in -perke: menseperke | |||
| @) perker (K p&rk@r // fix e sound: words like spoedbeperker/-s | |||
| @) perking p&rk@N // fix e sound in some words containing -perking | |||
| per (kussie p@r // fix stress and e sound: perkussie and compounds | |||
| perle (moe p%&rl@ // move default stress: perlemoen/perlemoer and compounds/reperkussie/-s | |||
| @@ -3343,6 +3390,8 @@ | |||
| pers (om p&rs_ // fix e sound, pause: persombudsman/-ne and compounds | |||
| perso (neel p%&rs%u // personeel and compounds | |||
| pervers p@rf&rs // pervers/perversie | |||
| pervert p@rf&rt // fix stress and e sounds: pervert/-e and compounds | |||
| runder) pes pEs // fix e sound: runderpes and compounds | |||
| pe (tieter p@ // fix stress and 1st e sound: petieterig/-e/-heid | |||
| pe (tisi p@ // fix stress and e sound: petisie/petisionaris and compounds | |||
| _) pe (trA_ pe@ // lengthen e sound: Petro/Petra | |||
| @@ -3352,10 +3401,12 @@ | |||
| ph (_ f // fix ph sound: Rudolph/Joseph | |||
| phi (lip fI | |||
| phi (lippA_ f@ // fix stress and 1st i sound: Philippa/Philippi | |||
| _) pieter (sA@ p%it@r // move default stress: pieters(i)elie and compounds | |||
| pig (meA p@x2 // move default stress: pigmee/pigmeë | |||
| pi (kant p%i // move default stress: pikant/-e, etc. | |||
| pikke (wyn p@k@ // move default stress: pikkewyn and compounds | |||
| _) pi (la p%i // move default stress: pilaar/pilare/pilatus | |||
| pio (n p%ijO // fix stress: pion/-ne and compounds of pion | |||
| pio (nier p%i%u // fix stress and vowel sounds: pionier and compounds | |||
| pira (mi p%ir%a // move default stress: piramide/-s/piramiedvormig | |||
| pi (sto p@ // pistool/pistole and compounds | |||
| @@ -3452,8 +3503,9 @@ | |||
| promisku pr%Om@sky // fix stress and o sound: promisku/-e/-íteit | |||
| promulg (e pr%Om%Wlx2 // fix stress and vowel sounds: promulgeer/-gering | |||
| proposi pr%Op@zi // stress, o and s sounds: (besigheids)proposisie/-si, etc. | |||
| prosa pr'o@sa //prosa and compounds | |||
| prosa pro@s%a //prosa and compounds | |||
| prosa (ïe pr%o@sA: // fix stress and vowel sounds: prosaïes/-e | |||
| @) prose (_ pro@s@ // fix o sound: klap-/klip-/knop-/popr ose | |||
| proses pr%usEs // proses/versoeningsproses/strafproseswet | |||
| projek pr%ujEk | |||
| @@ -3519,6 +3571,7 @@ | |||
| rasse ras@ // e sound of compounds starting with rasse | |||
| ribbe (tj r'Ibi | |||
| riete rit@ // fix e sound: merietelys/rietedak, etc. | |||
| rinkh (als rINk // drop h: rinkhals and compounds | |||
| rinne (w r@n@ // move default stress: (ge/ver)rinneweer/-de/-der | |||
| _) ri (o r%i // move default stress: riool and compounds/riolering | |||
| ris (kant r@s // move default stress: riskant/-e | |||
| @@ -3551,6 +3604,7 @@ | |||
| rugby rWgbi | |||
| ru (dolC ru // fix u sound: rudolf | |||
| _) rug (A@ r''Wx2_ // fix u sound, pause: rugoefeninge/-operasie and similar | |||
| ruma (tiek r%Wm@ // fix stress and vowel sounds: rumatiek(vingers and similar) | |||
| ru (moer r%W // fix stress and u sound: rumoer/-ig/-heid | |||
| rusper (C rWsp@r // fix e sound: rusperband/-tjie/-trekker and similar | |||
| ru (ïn r%y_ // move default stress: ruïne/-s | |||
| @@ -3631,9 +3685,11 @@ | |||
| o) rene r@n@ // eersgeborene/uitverkorenes | |||
| re (geer r@ // regeer/geregeer; stress to end | |||
| reger (A r@x2e@r // regering/regerende | |||
| repertoire r%Ep@rtwA:r // repertoire and compounds | |||
| re (sensA r@ // resensie/-s/resenseer/resensent | |||
| reser (v r@s@r // fix stress and e sounds: (ge)reserveer/reservering | |||
| re (sessie r@ // fix stress and e sound: resessie/-s and compounds | |||
| resi (tA r@s@ // fix vowel sounds: resitasie and compounds/resiteer | |||
| respek r@spEk | |||
| respek (teer r@sp%Ek // stress to end | |||
| &) rele (_ r'e@l@ | |||
| @@ -3693,6 +3749,7 @@ | |||
| _) sebra se@bra // fix vowel sounds: sebra/-strepe; variant of zebra | |||
| se (ggA s& // fix e sound: niksseggend/-e | |||
| @) seko (no@ s_%Ek%u // fix e sound; default stress; insert short pause: bedryfs-landsekonomie/-s/-ekonoom | |||
| @) seks (_ sEks // fix final e sound: kinder-/kuber-/oumens-/selfoon-/tienerseks | |||
| seks (tant s%Eks // move default stress: sekstant and compounds | |||
| sekste (t s%EkstE // fix stress and 2nd e sound: sekstet/-te | |||
| selek (CA s@lEk //seleksie selekteer etc. | |||
| @@ -3700,6 +3757,7 @@ | |||
| sen (sorie s%En // move default stress: sensories/-e | |||
| senter sEnt@r // fix e sound: binne-/buite-/Springboksenter | |||
| @C) se (re_ se@ // fix penultimate e sound: bed-/brand-/keel-/kop-/kruip-/maag-/mond-/pitsere | |||
| se (roet s@ // fix stress and e sound: seroet and compounds | |||
| seroto (ni s%Er@t%u // fix stress and vowel sounds: serotonien(vlakke, etc.) | |||
| sitrus s'itr%Ws_ //i sound and stress in compounds | |||
| @@ -3733,6 +3791,7 @@ | |||
| sa (tanie s%A: | |||
| sa (tir s%a // move default stress: satire/satiries/-e | |||
| sa (turnu s%a // fix stress and a sound: saturnus and compounds | |||
| sauna sO:na // fix au sound: sauna(bad and similar compounds) | |||
| sav (annA s%av // fix stress and v sound: savanna/-s/savanne | |||
| _) schu (C Su // fix u sound: Schubert/Schultz/Schumann/Schumacher | |||
| _) sedan s@dan // fix stress and e sound: sedan/-s/sedanmotor, etc. | |||
| @@ -3814,6 +3873,7 @@ | |||
| skerpi (oen sk%&rp%i // move default stress: skerpioen/-e and compounds | |||
| skilder (y sk@ld@r // move stress to y: skildery and compounds like skilderymuseum | |||
| skisofr (e sk%is%ufr // fix stress and o sound: skisofreen/skisofrene | |||
| _) skok (AP4 sk''Ok_ // fix o sound and stress: skokaankondiging/-effek/-insluiting/-onthulling... | |||
| skole sko@l@ // fix e sound in compounds: skolebeheerliggaam/-koor/-rugby/-wedstryd/-wet | |||
| sko (lier sk%o@ // move default stress: skolier/-e | |||
| skoppel (maa sk%Op@l // move default stress: skoppelmaai/-e/-er/-s | |||
| @@ -3821,7 +3881,7 @@ | |||
| skrif (A skrIf_ // i sound: (hand)skrifontleder/skrifuitleg/tydskrifadvertensie/-afdeling/-artikel | |||
| skuld (erken skWlt_ // fix d sound: skulderkenning/-s/-erkentenis | |||
| skyn (hei sk%eIn // move default stress: skynheilig/-e/-heid | |||
| _) slag sl'ax2 | |||
| _) slag sl''ax2_ // slagoffer/-instrument/-e | |||
| slag (off slax2_ // short a sound, insert pause: misdaadslagoffer and similar compounds | |||
| sla (vin sl%a // move default stress and shorten a sound: slavin/-ne and compounds | |||
| sla (we slA: // fix stress and a sound: slawearbeid/-er, etc. | |||
| @@ -3982,6 +4042,7 @@ | |||
| standerd (@ st%and@rt // compounds starting with standerd | |||
| stand (houde st%ant // move default stress: standhoudend/-e/-heid | |||
| stand (vasti st%ant // move default stress: (on)standvastig/-e/-heid | |||
| _) stap (A stap_ // fix a sound, pause: stapafstand/-ekspedisie/-oord | |||
| stapel stA:p@l // fix e sound: (op)stapeling/stapelaar | |||
| staties st'A:tis | |||
| sta (tutA st%a // fix stress and a sound: statute/statutêr | |||
| @@ -4162,7 +4223,8 @@ | |||
| _) trak (ta tr%ak // move default stress: traktaat/traktate | |||
| _) trans (@P5 tr%ans // transatlanties/transformasie/transoranje/Transvaal, etc. | |||
| _) trans (aksie tr%ans // remove small break: transaksie/-s and compounds | |||
| transendent (A tr%ans%End%Ent // fix stress and vowel sounds and remove short break: transendenteel/-tele/-taal | |||
| transendent (A tr%ans%End%Ent // fix stress and vowel sounds and remove short break: transendenteel/-tele/-taal | |||
| transistor tr%ansIst@r // trans- not prefix, fix o sound: transistor(radio, etc.) | |||
| transito tr%ansit%u // trans not prefix: transitorooftog and similar | |||
| transport tr%anspOrt // fix stress: transport and compounds | |||
| trap (orr trap_ // shorten a sound: traporrel/-tjie/-s and compounds | |||
| @@ -4269,6 +4331,7 @@ | |||
| _) ter (l t@r // move default stress: terloops/-e | |||
| @) term (_ t&r@m // correct pronunciation of e | |||
| @) terme (_ t&rm@ // correct pronunciation of 1st e | |||
| &) termes t@rmEs // fix e sounds: bottermes and similar | |||
| ter (miet t%&r // move default stress: termiet/-e and compounds | |||
| _) ter (w t@r // stress and e sound: terwyl/terwille | |||
| sin) te (ti te@ //sintetiseer, compounds and derivatives | |||
| @@ -4299,6 +4362,7 @@ | |||
| &) tel (_ t@l | |||
| ge) tel (_ t&l // fix e sound: bymekaargetel/oorgetel, etc. | |||
| teleur t@lY@r // teleur/teleurstelling/teleurgesteld | |||
| &) tels (_ t@ls | |||
| sleu) tel t@l //sleutel in compounds | |||
| @@ -4386,7 +4450,7 @@ | |||
| uit (voerig %Yyt // move stress: uitvoerig/-e/-heid | |||
| uit (wisba %Yyt // move default stress: (on)uitwisbaar/-bare/-baarheid | |||
| _) uitge (@P5 'Yytx2@ // words beginning with uitge have stress on 1st slb | |||
| uitgewer 'Yytx2,e@v@r | |||
| uitgewer Yytx2%e@v@r | |||
| uitgewerk Yytx2@v&rk // uitgewerk and derivatives; see rule: uitgewer | |||
| uitgewerp Yytx2@v&rp // fix vowel sounds, see rule: uitgewer | |||
| uitke (n YytkE // mix e sound: uitken | |||
| @@ -4460,6 +4524,7 @@ | |||
| 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 (X fe@t@ // fix stress and e sounds, remove pause: vete/-s and compounds | |||
| vete (ra f%Et@ // fix stress and e sounds: veteraan/-ane and compounds | |||
| veter (K fe@t@r // (skoen)veter/-s, etc. | |||
| _) veto (reg fe@t%u // fix o sound: vetoreg/-te | |||
| @@ -4569,6 +4634,7 @@ | |||
| vol (kome f%Ol | |||
| vo (llA_ fO // volle/vollê/Volla - exception to: vo (lC f%O | |||
| volle (dig f%Ole@ // fix stress and e sound: (on)volledig/-e/-heid... | |||
| voll (engte fOlE | |||
| vo (ller fO // exception to: vo (lC f%O | |||
| volles (_ fOl@s // fix stress and e sound: volles/passievolles, etc. | |||
| vol (hou_ fOl // exception to: vo (lC f%O | |||
| @@ -4576,7 +4642,7 @@ | |||
| vol (mane fOl // exception to: vo (lC f%O | |||
| vol (prop fOl // exception to: vo (lC f%O | |||
| vol (r fOl // volrond/-rooi/-ryp: exception to: vo (lC f%O | |||
| vol (sirk fOl // volsirkel: exception to: vo (lC f%O | |||
| vol (siC fOl // volsirkel/volsin/-ne: exception to: vo (lC f%O | |||
| _) vol (sk fOl // restore default stress: volskaalse/-skaduwee/-skerm/-skiet, etc. | |||
| vol (ste_ fOl // exception to: vo (lC f%O | |||
| vol (sto fOl // volstof/volstoom/volstop/volstort; exception to: vo (lC f%O | |||
| @@ -4644,6 +4710,7 @@ | |||
| nd) w v // aandwandeling/brandweer/eindwedstryd/grondwet/grondwal | |||
| Cod) w v // fix w sound: godwelgevallig/godweet/godwees | |||
| k) w w | |||
| k) w (erC v // fix w sound: wrakwerf/-werwe | |||
| volks) w v // fix w sound: Volkswagen/volkswelsyn/-weldoener, etc. | |||
| k) w (And v // fix w sound: buikwand/rukwinde | |||
| s) w w | |||
| @@ -4886,12 +4953,14 @@ | |||
| @) 'tjie %ici // foto'tjie/ma'tjie, etc. | |||
| K) á (CK '!a // extra stress: kán/wás and similar | |||
| áá '!A: // extra stress: dáár/dáár and similar | |||
| álle (K '!al@ // ekstra stress: álle/-s | |||
| K) ék (_ '&k // fix e sound and stress: ék/gék | |||
| K) é (CK '!E // extra stress: hét/nét and similar | |||
| éé '!e@ // extra stress: één, etdc. | |||
| ék (_ '!&k // ekstra stress: ék/plék | |||
| ə @ // char.replacement for 'n | |||
| _C) è (_ E // dè/nè | |||
| éú '!Y@ // stressed syllable | |||
| ê e: | |||
| l) êer &:@r // fix ê sound: lêer and compounds | |||
| @@ -4908,6 +4977,7 @@ | |||
| ï (nsp @ // geïnspireer/-de | |||
| ï (nt @ // geïnteresseerd | |||
| ï (nC 'I // beïndruk/beïnvloed | |||
| ïnkarn (A @Nk%arn // fix stress and nk sound: reïnkarnasie and compounds/reïnkarneer | |||
| ïsol %is%ul // geïsoleer/-d | |||
| K) ó (CK '!O // extra stress: óf/kón and similar | |||
| óé '!u // extra stress: móét/sóék and similar | |||
| @@ -4919,13 +4989,12 @@ | |||
| û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 | |||
| __) - (_D minWs | |||
| A_) - (_D _ | |||
| C_) - (_D _ | |||
| @@ -42,7 +42,6 @@ _< m@n'o||_:_:k@ | |||
| _> ma#Z;'o||_:_:k@ | |||
| _' a#p'Ost**'Uf | |||
| _" kUm'Et@s | |||
| _$ dola#r | |||
| - m'En^s | |||
| __ b'aRR2a#||B'ajS;a# | |||
| _/ ba*Ra | |||
| @@ -50,8 +49,8 @@ _\ b'a*RaimbERt'iDa | |||
| _` a#ks'Ent,UB'E**t | |||
| _( 'ob**@||pa#**'Ent@zis | |||
| _) t'anka#||pa#**'Ent@zis | |||
| _[ 'ob**@||kla#wD'at,or | |||
| _] t'anka#||kla#wD'at,or | |||
| _[ 'ob**@||kla#wD'at,o* | |||
| _] t'anka#||kla#wD'at,o* | |||
| _{ 'ob**@||kl'aws | |||
| _} t'anka#||kl'aws | |||
| _« 'ob**@||kUm'Et@s | |||
| @@ -69,7 +68,7 @@ _» t'anka#||kUm'Et@s | |||
| @ a*R'oBa | |||
| / ba*Ra | |||
| © kopi*R'aIt | |||
| £ lliur**@s | |||
| £ lliu**@s | |||
| ¶ pa#**'aQ**a#f | |||
| § a#pa#**t'at // o secció? | |||
| @@ -216,7 +215,7 @@ o o $atend | |||
| b be | |||
| c se | |||
| ç se,tr@nkaDa# | |||
| ç se,t**@nkaDa# | |||
| d de | |||
| f Efa# | |||
| g Je | |||
| @@ -12,7 +12,7 @@ | |||
| .L02 h l r s v w y z // continuants, not f | |||
| .L03 f h r s v w y z // continuants, not l | |||
| .L04 i í e é è // front vowels | |||
| .L08 p t k f s // sords | |||
| .L05 p t k f s // sords | |||
| .L09 b d g m v l n d z r q // sonors | |||
| .L10 a e o // vocals fortes | |||
| .L11 i u // vocals febles | |||
| @@ -116,7 +116,7 @@ | |||
| m m | |||
| _) m' (P2 m | |||
| mp (K m | |||
| ment (_ m'Ent | |||
| // ment (_ m'En // ?? | |||
| .group n | |||
| @@ -126,6 +126,7 @@ | |||
| e) n (_ n // except after e, i | |||
| i) n (_ n | |||
| nt (K n | |||
| nt (_ =n | |||
| ny n^ | |||
| b) n (@ m | |||
| v) n (@ m | |||
| @@ -137,7 +138,7 @@ | |||
| .group o | |||
| o o | |||
| or (_ 'or | |||
| or (_ 'o* | |||
| ou Ow | |||
| @@ -155,7 +156,7 @@ | |||
| .group r | |||
| r R | |||
| _) r RR2 | |||
| _) r *R | |||
| r (_ = // final r is silent, but stress the vowel | |||
| r (t ** | |||
| A) r (A ** | |||
| @@ -164,7 +165,7 @@ | |||
| m) r (A R | |||
| n) r (A R | |||
| s) r (A R | |||
| rr RR2 | |||
| rr *R | |||
| .group s | |||
| @@ -205,8 +206,8 @@ | |||
| .group x | |||
| x ks | |||
| _e) x dz | |||
| _è) x dz | |||
| _A) x gz | |||
| _A) x (L05 ks | |||
| K) x S; | |||
| Ai) x S; | |||
| Au) x S; | |||
| @@ -236,4 +237,4 @@ | |||
| g) ü w | |||
| ñ n^ | |||
| $ dola#r | |||
| $ dola#* | |||
| @@ -109,7 +109,7 @@ _17 'zi:btse:n | |||
| _18 '_axttse:n | |||
| _19 'nOYntse:n | |||
| _2X 'tsvantsIC | |||
| _3X 'd@-*aItsIC | |||
| _3X 'd@-*aIsIC | |||
| _4X 'fi:*tsIC | |||
| _5X 'fynftsIC | |||
| _6X 'zEktsIC | |||
| @@ -36,9 +36,9 @@ o O u U | |||
| * ** : ; b B d D | |||
| dZ; f g j J J^ k l | |||
| l^ m n N n^ p Q r | |||
| R R2 s S; t T ts tS; | |||
| v v# w z Z Z; | |||
| l^ m n N n^ p Q R | |||
| R2 s S; t T ts tS; v | |||
| v# w z Z Z; | |||
| Dictionary cs_dict | |||
| @@ -139,8 +139,8 @@ o O oI u | |||
| * ** : b B d D f | |||
| g j J J^ k l m n | |||
| N n^ p Q r R R2 s | |||
| t T tS v v# w x z | |||
| N n^ p Q R R2 s t | |||
| T tS v v# w x z | |||
| Dictionary fi_dict | |||
| @@ -371,6 +371,18 @@ N n^ p q R s S S; | |||
| t tS v w x z | |||
| Dictionary eu_dict | |||
| a aI aU e eI eU i o | |||
| oI u Y | |||
| * ** : ; b B c d | |||
| D f g h j J k l | |||
| l^ m n n^ p Q r R | |||
| s S t tS ts tz v w | |||
| x z | |||
| Dictionary nl_dict | |||
| 8 @ @- A a: E e: EI | |||
| @@ -178,8 +178,8 @@ _‼ Ekskla2m'eIS@nz | |||
| _₠ jU@roU | |||
| # haS $max3 | |||
| @ _at_ | |||
| & _and | |||
| @ _at_ $u+ | |||
| & _and $u+ | |||
| \ bakstroUk $max3 | |||
| / stroUk $max3 | |||
| ?3 \ bakslaS $max3 | |||
| @@ -303,12 +303,15 @@ _0M3 b'Ili@n | |||
| _dpt pOInt | |||
| _roman roUm@n_ | |||
| _0st st | |||
| _0nd @nd | |||
| _0rd d | |||
| _0th T | |||
| _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 | |||
| _1o f'3: | |||
| _2o s'Ek | |||
| _3o T'3: | |||
| _5o f'I | |||
| _0Co h'Vndr@dT | |||
| @@ -429,6 +432,7 @@ accursed a2k3:sI2d | |||
| ?5 accursed a2kVRsI2d | |||
| achille a2kIli: | |||
| aching eIkI2N | |||
| achy eIkI | |||
| adam ad@m | |||
| adamant ad@m@nt | |||
| add ad | |||
| @@ -607,6 +611,7 @@ authority a2T0rI2tI | |||
| authoritative O:T'0rI2t@tIv | |||
| autograph O:t@graf | |||
| auto O:toU | |||
| autocracy O:t'0kr@sI | |||
| automobile O:t@m@bi@l | |||
| autonomous O:t'0n@m@s | |||
| autopsy O:t0psI | |||
| @@ -720,6 +725,7 @@ cannabis kana2bIs | |||
| canoe k@nu: | |||
| canoes k@nu:z | |||
| canton kant0n | |||
| canvas kanv@s | |||
| capitol kapIt@L | |||
| caprice ka2pr'i:s | |||
| caramel kar@mEl | |||
| @@ -753,6 +759,8 @@ chapel tSap@L | |||
| charade Sa2rA:d | |||
| charismatic karIsm'atIk | |||
| charit tSarIt // charitable | |||
| chic Si:k | |||
| chisel tSIz@L | |||
| chocolate tS0kl@t | |||
| cholera k0l@r@ | |||
| cholesterol k@lEst@r0l | |||
| @@ -847,6 +855,7 @@ coordinate koU'O:dI2neIt $verb | |||
| copier k0pi@3 | |||
| coral k0r@L | |||
| coronet k0r@nEt | |||
| corollary $2 | |||
| corporal kO@pr@L | |||
| corporate kO@p@r@t | |||
| corps kO@ $only | |||
| @@ -1203,6 +1212,7 @@ hospitable h0sp'It@b@L | |||
| hostage h0stI2dZ | |||
| hostess hoUstEs | |||
| hotel hoUt'El | |||
| hotkey h0tki: | |||
| house haUz $verb | |||
| however $2 | |||
| howto haUtu: | |||
| @@ -1582,6 +1592,7 @@ pageant padZ@nt | |||
| paltry pO:ltrI | |||
| panacea pana2s'i:@ | |||
| panache $2 | |||
| pancreas pankri@s | |||
| parabola p@rab@l@ | |||
| paralysis p@ral@sIs | |||
| parameter p@ramI2t3 | |||
| @@ -1912,6 +1923,7 @@ shrilly SrIllI $verbf | |||
| sibelius sI2beIli@s | |||
| sierra sI'e@r@ | |||
| signage saInI2dZ | |||
| signal sIgn@l // signaled | |||
| signer saIn3 | |||
| sikh si:k | |||
| silhouette sI2lUw'Et | |||
| @@ -2142,6 +2154,7 @@ vegan vi:g@n | |||
| vengeance vEndZ@ns | |||
| venus vi:n@s | |||
| versus v3:sI2z | |||
| vertices v3:tIsi:z | |||
| vestige vEstI2dZ | |||
| vex vEks // for vexed | |||
| vicar vIk3 | |||
| @@ -2391,7 +2404,7 @@ Oman oUm'an | |||
| Oregon 0rI2g@n | |||
| Pacific pa2sIfIk | |||
| Palestine pal@staIn | |||
| Palestinian pal@st'Ini:@n | |||
| Palestinia pal@st'Ini:@ | |||
| Panama pan@mA: | |||
| Paris parIs | |||
| Peking pi:k'IN | |||
| @@ -2420,7 +2433,7 @@ Seychelle seIS'El | |||
| Sicily sIsI2lI | |||
| Slovak sloUvak | |||
| Seoul soUl | |||
| (sri lanka) sr,i:||l'anka2 | |||
| Sri sr,i: // Sri Lanka(n) | |||
| Sudan su:d'an | |||
| Suez su:I2z | |||
| Sulawesi su:la2w'eIsI | |||
| @@ -2448,6 +2461,7 @@ Wyoming waI'oUmI2N | |||
| Xhosa kO:s@ | |||
| zaire zaI'i@3 | |||
| zimbabwe zI2mbA:bwI | |||
| zimbabwean zI2mbA:bwI@n | |||
| Aaron e@r@n | |||
| Abe eIb | |||
| @@ -2505,6 +2519,7 @@ Gary garI | |||
| Geraint gEraInt | |||
| Gibbs gIbz | |||
| Giles gaIlz | |||
| Gladys gladIs | |||
| Glynn glIn | |||
| Graeme greI@m | |||
| Graham greI@m | |||
| @@ -2565,6 +2580,7 @@ Mohammad moUh'amI2d | |||
| Muhammad moUh'amI2d | |||
| Moira mOIr@ | |||
| Natalie nata2li | |||
| Natasha $2 | |||
| Nathan neIT@n | |||
| Neville nEvIl | |||
| Nicholas nIk@l@s | |||
| @@ -2887,6 +2903,7 @@ we'd %wi:d $pastf | |||
| I aI $u+ $verbf $only | |||
| (I am) %aIa2m | |||
| (I am) %aIam $atend | |||
| he %hi: $verbsf | |||
| she %Si: $only $verbsf | |||
| it %It $verbsf | |||
| @@ -1442,7 +1442,7 @@ | |||
| conva (l k0nv@ | |||
| _) co (nvoy k0 | |||
| _) copy k0pI | |||
| coro (lla k@r0 | |||
| coro (ll k0r0 | |||
| co (rrect k@ | |||
| correspo k,0rIsp'0 | |||
| co (rro k@ | |||
| @@ -1869,6 +1869,7 @@ | |||
| @f) ed (_S2vdei t | |||
| @g) ed (_S1vi d | |||
| @k) ed (_S2vdei t | |||
| el) ed (_S2dv d | |||
| &en) ed (_S2v d | |||
| cl) ed (_S1v d | |||
| @p) ed (_S2vdei t | |||
| @@ -2751,6 +2752,7 @@ | |||
| ie I | |||
| ie (_ I | |||
| ied (_S2i d // suffix | |||
| ieds (_S3i dz | |||
| ie (c aI | |||
| ie (ce i: | |||
| ie (_ aI | |||
| @@ -2875,6 +2877,7 @@ | |||
| @) ingment (_S7dve I2Ng-m@nt | |||
| logu) ing (_S4v I2N | |||
| x) ing (_+S3v I2N | |||
| el) ing (_+S3dv I2N | |||
| @@om) ing (_S3dv I2N | |||
| en) ing (_S3v I2N | |||
| en) ings (_S4v I2Nz | |||
| @@ -3831,6 +3834,7 @@ | |||
| _f) or (@ O@ | |||
| _f) ore (A O@ | |||
| f) or (k O@ | |||
| _f) or (s@ %O@ | |||
| ch) or (d O@ | |||
| l) or (d O@ | |||
| _m) or O@ | |||
| @@ -4083,7 +4087,7 @@ | |||
| c) over Vv3 | |||
| c) ov (et Vv | |||
| d) ove Vv | |||
| g) ov (ern Vv | |||
| g) overn Vv3n | |||
| sh) ov (+ Vv | |||
| h) ov (el 0v | |||
| h) ov (er 0v | |||
| @@ -4106,7 +4110,7 @@ | |||
| .group ow | |||
| ow oU | |||
| ow (itz =oUv | |||
| ow (itz_ =oUv | |||
| ow (ay_ @w | |||
| kn) owle (d 0lI | |||
| _) ow (l aU | |||
| @@ -4183,6 +4187,7 @@ | |||
| ras) p (b | |||
| _) pur (su p3 | |||
| put (_ pUt | |||
| s) put (_ pVt | |||
| pyon pj0n | |||
| _) pyro (@@P4 p,aIroU | |||
| pyrom (e paIr'0m | |||
| @@ -4794,6 +4799,7 @@ | |||
| @) u (late =jU | |||
| @) u (lar =jU | |||
| @) u (lum =jU | |||
| @) uli (_ =jUlaI | |||
| &) u (lous_ =jU | |||
| ll) u (l ju: | |||
| j) u (li u: | |||
| @@ -29,6 +29,16 @@ _0M3 mili'ardo | |||
| _0M4 duili'ono | |||
| _dpt _komo_ | |||
| // ordinal numbers | |||
| _0a a | |||
| _0aj aI | |||
| _0an an | |||
| _0ajn aIn | |||
| _0-a a | |||
| _0-aj aI | |||
| _0-an an | |||
| _0-ajn aIn | |||
| // accent names | |||
| _lig ligat'uRa | |||
| _acu dekst@-*ak'oRna | |||
| @@ -17,10 +17,6 @@ | |||
| a a | |||
| aj aI | |||
| aŭ aU | |||
| D_-_) a (_ %a //'a' after a number | |||
| D_-_) an (_ %an //'an' after a number | |||
| D_) a (_ %a //'a' after a number | |||
| D_) an (_ %an //'an' after a number | |||
| .group b | |||
| @@ -63,7 +63,7 @@ _» kom'iJ^as||dE**'EtSas | |||
| ^ TiRkumfl'exo | |||
| € eU**o | |||
| % pOrTj'Ento $max3 | |||
| % pO**Tj'Ento $max3 | |||
| & ampERs'ant | |||
| @ a*R'oBa | |||
| / ba*Ra | |||
| @@ -212,7 +212,7 @@ | |||
| ü u | |||
| ñ n^ | |||
| $ d'Olar | |||
| $ d'Ola* | |||
| _) - (_D m'EnOs | |||
| A_) - (_D _ | |||
| @@ -24,7 +24,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated 2009-01-14 Michel Such <[email protected]> | |||
| // Updated 2009-02-01 Michel Such <[email protected]> | |||
| // | |||
| // * Numbers, a few abbreviations and exceptions. | |||
| // | |||
| @@ -111,7 +111,6 @@ _# djEz | |||
| _' a2postr'Of | |||
| _( 'uvR@-parA~t'Ez | |||
| _) f'Erm parA~t'Ez | |||
| _* asterisk: | |||
| _, virgyl | |||
| _- tirE | |||
| _. _|pw%E~ | |||
| @@ -141,11 +140,11 @@ _µ mikR'o | |||
| _§ sEksj'O~ | |||
| // symbols that are normally spoken when reading text | |||
| @ arobaz | |||
| % pursA~ $max3 | |||
| * asterisk: $max3 | |||
| @ _!arobaz | |||
| % pursA~ $max3 | |||
| & e $u $brk | |||
| _& _e_komErsj'al | |||
| * asterisk: $max3 | |||
| + plys $max3 | |||
| ~ tilde | |||
| € @ro | |||
| @@ -200,30 +199,11 @@ _4X karA~t | |||
| _41 karA~te:W~ | |||
| _5X sE~kA~t | |||
| _51 sE~kA~te:W~ | |||
| _6X swAsA~t | |||
| _6X swAsA~t: | |||
| _61 swAsA~te:W~ | |||
| _7X swAsA~t:diz3 | |||
| _71 swAsA~te:O~z | |||
| _72 swAsA~t:duz | |||
| _73 swAsA~t:tREz | |||
| _74 swAsA~t:katOrz | |||
| _75 swAsA~t:kE~z | |||
| _76 swAsA~t:sEz | |||
| _77 swAsA~t:dis:Et | |||
| _78 swAsA~t:diz'w^it3 | |||
| _79 swAsA~t:diznWf | |||
| _8X katR@vE~ | |||
| _8X katR@vE~: | |||
| _80 katR@vE~z2 | |||
| _9X katR@vE~diz3 | |||
| _91 katR@vE~:O~z | |||
| _92 katR@vE~:duz | |||
| _93 katR@vE~:tREz | |||
| _94 katR@vE~:katOrz | |||
| _95 katR@vE~:kE~z | |||
| _96 katR@vE~:sEz | |||
| _97 katR@vE~:dis:Et | |||
| _98 katR@vE~:dizw^it3 | |||
| _99 katR@vE~:diznWf | |||
| _0C sA~ | |||
| _1C0 sA~t2 | |||
| _0M1 mil | |||
| @@ -236,24 +216,8 @@ _dpt virgyl | |||
| //some numbers have special pronunciation in Belgium and Switzerland | |||
| ?2 _7X sEptA~t | |||
| ?2 _71 sEptA~te:W~ | |||
| ?2 _72 sEptA~t:dYz2 | |||
| ?2 _73 sEptA~t:tRwAz2 | |||
| ?2 _74 sEptA~t:katr | |||
| ?2 _75 sEptA~t:sE~k | |||
| ?2 _76 sEptA~t:siz3 | |||
| ?2 _77 sEptA~t:sEt | |||
| ?2 _78 sEptA~t:w^it3 | |||
| ?2 _79 sEptA~t:nWf | |||
| ?2 _9X no2nA~t | |||
| ?2 _91 no2nA~te:W~ | |||
| ?2 _92 no2nA~t:dYz2 | |||
| ?2 _93 no2nA~t:tRwAz2 | |||
| ?2 _94 no2nA~t:katr | |||
| ?2 _95 no2nA~t:sE~k | |||
| ?2 _96 no2nA~t:siz3 | |||
| ?2 _97 no2nA~t:sEt | |||
| ?2 _98 no2nA~t:w^it3 | |||
| ?2 _99 no2nA~t:nWf | |||
| (21 ème) vE~te:yniEm | |||
| (31 ème) tRA~te:yniEm | |||
| @@ -288,7 +252,7 @@ hz _!E2rts | |||
| ibm $abbrev | |||
| ide $abbrev | |||
| ip $abbrev | |||
| jaws dZ'O2wz | |||
| jaws dZ'awz | |||
| kde $abbrev | |||
| kg kilogram | |||
| khz kiloE2rts | |||
| @@ -324,8 +288,9 @@ xfce iksEfse@ | |||
| xy $abbrev | |||
| dr dOkt Wr $dot $capital | |||
| dr dOktWr $dot $capital | |||
| prof $dot | |||
| pr professeur $text *dot $capital | |||
| @@ -472,7 +437,6 @@ trop $u+ | |||
| assez $u+ | |||
| beaucoup $u+ | |||
| peu $u+ | |||
| peu $noun | |||
| très $u | |||
| // negative | |||
| @@ -480,7 +444,6 @@ ne $u $verbf | |||
| pas $u+ | |||
| pas $noun | |||
| plus $u+ | |||
| plus $noun | |||
| guère $u+ | |||
| jamais $u+ | |||
| non nO~ $u+ | |||
| @@ -504,7 +467,8 @@ sommes $u+ $verb | |||
| sont $u+ $verb | |||
| fus $u+ $verb | |||
| fut $u+ $verb | |||
| fut fyt2 $u+ $verb | |||
| fût fyt2 $u+ $verb | |||
| fûmes $u+ $verb | |||
| fûtes $u+ $verb | |||
| furent $u+ | |||
| @@ -526,6 +490,7 @@ eues yz2 $u+ | |||
| eus yz2 $u+ | |||
| eut yt2 $u+ $verb | |||
| eût yt2 $u+ $verb | |||
| eûmes $u+ $verb | |||
| eûtes $u+ $verb | |||
| eurent yrt2 $u+ | |||
| @@ -627,14 +592,17 @@ malus malys | |||
| mapper _^_en | |||
| mars mars | |||
| mieux mj'Y $u+ | |||
| mrs _^_en | |||
| ours urs | |||
| parangon parA~gO~ | |||
| phallus falys | |||
| polder pOldEr | |||
| premier pr@mjer2 | |||
| (program files) pr,o2gram||f'ajlz | |||
| program _^_en | |||
| quit _^_en | |||
| scanner skaner2 | |||
| scanner skanWr $noun | |||
| sir _^_EN | |||
| souris suri | |||
| sus sys | |||
| sus sy $verb | |||
| @@ -733,7 +701,7 @@ from frO2m $u+ | |||
| get _^_en | |||
| google gu:gWl | |||
| gnome gnOm | |||
| gnu gnu | |||
| gnu $abbrev | |||
| hamburger hA~b@rgWr | |||
| help _^_en | |||
| hot _^_en | |||
| @@ -819,5 +787,5 @@ wallis wAlis | |||
| futuna futuna | |||
| zimbabwe zimbabwe | |||
| pest $1 | |||
| @@ -23,7 +23,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated: 2009-01-14 Michel Such <[email protected]> | |||
| // Updated: 2009-02-19 Michel Such <[email protected]> | |||
| // | |||
| // Letter classes: | |||
| @@ -738,6 +738,7 @@ _) half _^_en | |||
| _AC) ind (er_ _^_en // finder, reminder | |||
| ize (X _^_en // realize | |||
| dr) i (ve _^_en | |||
| ram_f) i (le _^_en | |||
| .group î | |||
| @@ -902,7 +903,7 @@ _) half _^_en | |||
| // group o: English section | |||
| oa (X _^_en // approach, load | |||
| oa (CeX _^_en | |||
| oa (CerX _^_en | |||
| oach _^_en | |||
| old (er_ _^_en // folder, older | |||
| C) oing (_ _^_en // going | |||
| @@ -1102,6 +1103,7 @@ _) t (_ te | |||
| -) t (- t2 | |||
| _) t' (P2v t | |||
| Vn) t (_ t2 | |||
| A) t (- t2 | |||
| t (_ | |||
| peti) t (_ t2 | |||
| _) th t // thon | |||
| @@ -1292,6 +1294,8 @@ Vn) t (_ t2 | |||
| .group x | |||
| x ks | |||
| _) x (A gz // xylophone | |||
| xml (_S3 _!iksEmEl | |||
| e) x (A gz // exagérer exemple | |||
| L03e) x (A ks // annexe, vexer | |||
| _ine) x (A gz | |||
| @@ -136,6 +136,4 @@ | |||
| 4 4 | |||
| 5 5 | |||
| 6 6 | |||
| 7 1 | |||
| 8 3 | |||
| 9 6 | |||
| 7 7 | |||
| @@ -1,4 +1,4 @@ | |||
| 58 phoneme tables | |||
| 59 phoneme tables | |||
| new total | |||
| base 103 103 | |||
| base2 24 122 | |||
| @@ -43,7 +43,7 @@ | |||
| no 28 129 | |||
| is 33 129 | |||
| vi 41 140 | |||
| zhy 40 136 | |||
| zhy 41 137 | |||
| zh 66 154 | |||
| sw 14 112 | |||
| tr 18 127 | |||
| @@ -58,6 +58,7 @@ | |||
| ne 18 157 | |||
| mr 1 149 | |||
| om 25 125 | |||
| eu 6 124 | |||
| Data file Used by | |||
| b/b [b] base | |||
| @@ -245,8 +246,8 @@ envelope/p_214 [5] vi | |||
| envelope/p_512 [6] vi | |||
| envelope/p_fall [2] vi | |||
| [7] vi | |||
| [1] zhy | |||
| [4] zhy | |||
| [7] zhy | |||
| [21] zh | |||
| [51] zh | |||
| [22] zh | |||
| @@ -255,6 +256,7 @@ envelope/p_fall [2] vi | |||
| [+] rw | |||
| envelope/p_fallrise [4] vi | |||
| envelope/p_level [1] vi | |||
| [1] zhy | |||
| [3] zhy | |||
| [6] zhy | |||
| [55] zh | |||
| @@ -723,6 +725,8 @@ ufric/s [s] base | |||
| [s] es | |||
| [s#] pt | |||
| [z] sq | |||
| [s] eu | |||
| [z] eu | |||
| ufric/s_ [s] base | |||
| [z] base | |||
| [s2] fi | |||
| @@ -738,6 +742,8 @@ ufric/s_ [s] base | |||
| [s2] is | |||
| [z] sq | |||
| [s2] om | |||
| [s] eu | |||
| [z] eu | |||
| ufric/s! [s] base | |||
| [s2] fi | |||
| [s] fr | |||
| @@ -1012,6 +1018,8 @@ ustop/ts [ts] base2 | |||
| [dz] sq | |||
| [dz] hy | |||
| [ts#] hy | |||
| [ts] eu | |||
| [tz] eu | |||
| ustop/ts_ [ts] base2 | |||
| [ts] de | |||
| [ts] eo | |||
| @@ -1024,6 +1032,8 @@ ustop/ts_ [ts] base2 | |||
| [dz] sq | |||
| [dz] hy | |||
| [ts#] hy | |||
| [ts] eu | |||
| [tz] eu | |||
| ustop/ts2 [ts] lv | |||
| [ts] hy | |||
| ustop/tsh [tS] base | |||
| @@ -2134,6 +2144,7 @@ vowel/y# [Y:] en | |||
| [8] nl | |||
| [Y] ro | |||
| [oe] zhy | |||
| [Y] eu | |||
| vowel/y## [y#] is | |||
| vowel/y_2 [y] fr | |||
| [y"] fr | |||
| @@ -6,7 +6,7 @@ | |||
| phoneme 1 // tone: high level | |||
| stress | |||
| tone 50 30 envelope/p_fall NULL | |||
| tone 50 50 envelope/p_level NULL | |||
| endphoneme | |||
| @@ -40,6 +40,12 @@ phoneme 6 // tone: low level | |||
| endphoneme | |||
| phoneme 7 // tone: high fall | |||
| stress | |||
| tone 50 30 envelope/p_fall NULL | |||
| endphoneme | |||
| //==================================================== | |||
| // Consonants | |||
| //==================================================== | |||
| @@ -1361,3 +1361,6 @@ include ph_mathari | |||
| phonemetable om base | |||
| include ph_oromo | |||
| phonemetable eu base2 | |||
| include ph_basque | |||
| @@ -1030,8 +1030,8 @@ void ChangeWordStress(Translator *tr, char *word, int new_stress) | |||
| void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, int tonic, int prev_stress) | |||
| {//======================================================================================================== | |||
| void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, int tonic, int prev_stress) | |||
| {//========================================================================================================= | |||
| /* Guess stress pattern of word. This is language specific | |||
| 'dictionary_flags' has bits 0-3 position of stressed vowel (if > 0) | |||
| @@ -1109,6 +1109,13 @@ void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, | |||
| max_stress = GetVowelStress(tr, phonetic, vowel_stress, vowel_count, stressed_syllable, 1); | |||
| if((max_stress == 0) && (tr->langopts.stress_flags & 1) && (vowel_count == 2)) | |||
| { | |||
| // option: don't stress monosyllables except at end-of-clause | |||
| vowel_stress[1] = 1; | |||
| dictionary_flags |= FLAG_STRESS_END; | |||
| } | |||
| // heavy or light syllables | |||
| ix = 1; | |||
| for(p = phonetic; *p != 0; p++) | |||
| @@ -1219,8 +1226,6 @@ void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, | |||
| else | |||
| { | |||
| stressed_syllable = 1; | |||
| if(stressflags & 0x1) | |||
| max_stress = 3; // don't give full stress to monosyllables | |||
| } | |||
| // only set the stress if it's not already marked explicitly | |||
| @@ -52,7 +52,7 @@ static const char *help_text = | |||
| "\t Use voice file of this name from espeak-data/voices\n" | |||
| "-w <wave file name>\n" | |||
| "\t Write output to this WAV file, rather than speaking it directly\n" | |||
| "-b\t Input text is 8-bit encoding\n" | |||
| "-b\t Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit \n" | |||
| "-m\t Interpret SSML markup, and ignore other < > tags\n" | |||
| "-q\t Quiet, don't produce any speech (may be useful with -x)\n" | |||
| "-x\t Write phoneme mnemonics to stdout\n" | |||
| @@ -330,6 +330,7 @@ int main (int argc, char **argv) | |||
| int option_index = 0; | |||
| int c; | |||
| int ix; | |||
| int value; | |||
| int flag_stdin = 0; | |||
| int flag_compile = 0; | |||
| int filesize = 0; | |||
| @@ -362,7 +363,7 @@ int main (int argc, char **argv) | |||
| while(true) | |||
| { | |||
| c = getopt_long (argc, argv, "a:bf:g:hk:l:mp:qs:v:w:xXz", | |||
| c = getopt_long (argc, argv, "a:b:f:g:hk:l:mp:qs:v:w:xXz", | |||
| long_options, &option_index); | |||
| /* Detect the end of the options. */ | |||
| @@ -372,7 +373,11 @@ int main (int argc, char **argv) | |||
| switch (c) | |||
| { | |||
| case 'b': | |||
| synth_flags |= espeakCHARS_8BIT; | |||
| // input character encoding, 8bit, 16bit, UTF8 | |||
| if((sscanf(optarg,"%d",&value) == 1) && (value <= 4)) | |||
| synth_flags |= value; | |||
| else | |||
| synth_flags |= espeakCHARS_8BIT; | |||
| break; | |||
| case 'h': | |||
| @@ -192,7 +192,7 @@ t_espeak_command* create_espeak_mark(const void *text, size_t size, const char * | |||
| //> | |||
| //< create_espeak_key, create_espeak_char | |||
| t_espeak_command* create_espeak_key(const char *key_name) | |||
| t_espeak_command* create_espeak_key(const char *key_name, void *user_data) | |||
| { | |||
| ENTER("create_espeak_key"); | |||
| int a_error=1; | |||
| @@ -205,7 +205,9 @@ t_espeak_command* create_espeak_key(const char *key_name) | |||
| a_command->type = ET_KEY; | |||
| a_command->state = CS_UNDEFINED; | |||
| a_command->u.my_key = strdup( key_name); | |||
| a_command->u.my_key.user_data = user_data; | |||
| a_command->u.my_key.unique_identifier = ++my_current_text_id; | |||
| a_command->u.my_key.key_name = strdup( key_name); | |||
| a_error=0; | |||
| key_error: | |||
| @@ -223,7 +225,7 @@ t_espeak_command* create_espeak_key(const char *key_name) | |||
| return a_command; | |||
| } | |||
| t_espeak_command* create_espeak_char(wchar_t character) | |||
| t_espeak_command* create_espeak_char(wchar_t character, void* user_data) | |||
| { | |||
| ENTER("create_espeak_char"); | |||
| int a_error=1; | |||
| @@ -235,7 +237,9 @@ t_espeak_command* create_espeak_char(wchar_t character) | |||
| a_command->type = ET_CHAR; | |||
| a_command->state = CS_UNDEFINED; | |||
| a_command->u.my_char = character; | |||
| a_command->u.my_char.user_data = user_data; | |||
| a_command->u.my_char.unique_identifier = ++my_current_text_id; | |||
| a_command->u.my_char.character = character; | |||
| a_error=0; | |||
| char_error: | |||
| @@ -463,9 +467,9 @@ int delete_espeak_command( t_espeak_command* the_command) | |||
| break; | |||
| case ET_KEY: | |||
| if (the_command->u.my_key) | |||
| if (the_command->u.my_key.key_name) | |||
| { | |||
| free((void*)(the_command->u.my_key)); | |||
| free((void*)(the_command->u.my_key.key_name)); | |||
| } | |||
| break; | |||
| @@ -562,14 +566,14 @@ void process_espeak_command( t_espeak_command* the_command) | |||
| case ET_KEY: | |||
| { | |||
| const char* data = the_command->u.my_key; | |||
| const char* data = the_command->u.my_key.key_name; | |||
| sync_espeak_Key(data); | |||
| } | |||
| break; | |||
| case ET_CHAR: | |||
| { | |||
| const wchar_t data = the_command->u.my_char; | |||
| const wchar_t data = the_command->u.my_char.character; | |||
| sync_espeak_Char( data); | |||
| } | |||
| break; | |||
| @@ -42,12 +42,28 @@ typedef struct | |||
| void* user_data; | |||
| } t_espeak_mark; | |||
| typedef struct | |||
| { | |||
| unsigned int unique_identifier; | |||
| void* user_data; | |||
| wchar_t character; | |||
| } t_espeak_character; | |||
| typedef struct | |||
| { | |||
| unsigned int unique_identifier; | |||
| void* user_data; | |||
| const char* key_name; | |||
| } t_espeak_key; | |||
| typedef struct | |||
| { | |||
| unsigned int unique_identifier; | |||
| void* user_data; | |||
| } t_espeak_terminated_msg; | |||
| typedef struct | |||
| { | |||
| espeak_PARAMETER parameter; | |||
| @@ -71,8 +87,8 @@ typedef struct | |||
| { | |||
| t_espeak_text my_text; | |||
| t_espeak_mark my_mark; | |||
| const char* my_key; | |||
| wchar_t my_char; | |||
| t_espeak_key my_key; | |||
| t_espeak_character my_char; | |||
| t_espeak_parameter my_param; | |||
| const wchar_t* my_punctuation_list; | |||
| const char *my_voice_name; | |||
| @@ -88,9 +104,9 @@ t_espeak_command* create_espeak_mark(const void *text, size_t size, const char * | |||
| t_espeak_command* create_espeak_terminated_msg(unsigned int unique_identifier, void* user_data); | |||
| t_espeak_command* create_espeak_key(const char *key_name); | |||
| t_espeak_command* create_espeak_key(const char *key_name, void *user_data); | |||
| t_espeak_command* create_espeak_char(wchar_t character); | |||
| t_espeak_command* create_espeak_char(wchar_t character, void *user_data); | |||
| t_espeak_command* create_espeak_parameter(espeak_PARAMETER parameter, int value, int relative); | |||
| @@ -747,6 +747,9 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars) | |||
| // Numbers | |||
| static char ph_ordinal2[12]; | |||
| int TranslateRoman(Translator *tr, char *word, char *ph_out) | |||
| {//===================================================== | |||
| @@ -905,13 +908,14 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
| int found_ordinal = 0; | |||
| int next_phtype; | |||
| char string[12]; // for looking up entries in *_list | |||
| char ph_ordinal[20]; | |||
| char ph_tens[50]; | |||
| char ph_digits[50]; | |||
| char ph_and[12]; | |||
| char ph_ordinal[12]; | |||
| // is there a special pronunciation for this 2-digit number | |||
| found = 0; | |||
| ph_ordinal[0] = 0; | |||
| if(control & 4) | |||
| { | |||
| @@ -920,6 +924,8 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
| } | |||
| if(control & 2) | |||
| { | |||
| strcpy(ph_ordinal, ph_ordinal2); | |||
| sprintf(string,"_%do",value); | |||
| if((found = Lookup(tr, string, ph_digits)) != 0) | |||
| { | |||
| @@ -969,6 +975,14 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
| Lookup(tr, string, ph_tens); | |||
| } | |||
| if((ph_tens[0] == 0) && (tr->langopts.numbers & NUM_VIGESIMAL)) | |||
| { | |||
| // tens not found, (for example) 73 is 60+13 | |||
| units = (value % 20); | |||
| sprintf(string,"_%dX",(value / 10) & 0xfe); | |||
| Lookup(tr, string, ph_tens); | |||
| } | |||
| ph_digits[0] = 0; | |||
| if(units > 0) | |||
| { | |||
| @@ -997,8 +1011,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) | |||
| } | |||
| } | |||
| ph_ordinal[0] = 0; | |||
| if((control & 2) && (found_ordinal == 0)) | |||
| if((control & 2) && (found_ordinal == 0) && (ph_ordinal[0] == 0)) | |||
| { | |||
| if((value >= 20) && (((value % 10) == 0) || (tr->langopts.numbers & 0x10))) | |||
| Lookup(tr, "_ord20", ph_ordinal); | |||
| @@ -1196,10 +1209,6 @@ 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) | |||
| {//==================================================================================================== | |||
| // Number translation with various options | |||
| @@ -1208,7 +1217,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned | |||
| int n_digits; | |||
| int value; | |||
| int ix; | |||
| unsigned int ix; | |||
| unsigned char c; | |||
| int suppress_null = 0; | |||
| int decimal_point = 0; | |||
| @@ -1221,41 +1230,57 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned | |||
| 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 | |||
| int hyphen; | |||
| char *p; | |||
| char string[20]; // for looking up entries in **_list | |||
| char buf1[100]; | |||
| char ph_append[50]; | |||
| char ph_buf[200]; | |||
| char ph_buf2[50]; | |||
| char suffix[20]; | |||
| static const char str_pause[2] = {phonPAUSE_NOLINK,0}; | |||
| *flags = 0; | |||
| for(ix=0; isdigit(word[ix]); ix++) ; | |||
| n_digits = ix; | |||
| value = this_value = atoi(word); | |||
| ph_ordinal2[0] = 0; | |||
| if((tr->langopts.numbers & 0x10000) && (word[ix] == '.')) | |||
| { | |||
| // ordinal number | |||
| // ordinal number is indicated by dot after the number | |||
| ordinal = 2; | |||
| word[ix] = ' '; | |||
| } | |||
| else | |||
| if(tr->langopts.ordinals) | |||
| { | |||
| // ordinal numbers are recognized by letters after the number | |||
| // look for an ordinal number suffix after the number | |||
| ix++; | |||
| pp = ordinal_strings[tr->langopts.ordinals]; | |||
| while((p = *pp++) != NULL) | |||
| hyphen = 0; | |||
| p = suffix; | |||
| if(word[ix] == '-') | |||
| { | |||
| *p++ = '-'; | |||
| hyphen = 1; | |||
| ix += 2; | |||
| } | |||
| while((word[ix] != 0) && (word[ix] != ' ') && (ix < (sizeof(suffix)-1))) | |||
| { | |||
| len = strlen(p); | |||
| if((word[ix+len] == ' ') && (memcmp(&word[ix], p, len) == 0)) | |||
| *p++ = word[ix++]; | |||
| } | |||
| *p = 0; | |||
| if(suffix[0] != 0) | |||
| { | |||
| sprintf(string,"_0%s",suffix); | |||
| if(Lookup(tr, string, ph_ordinal2)) | |||
| { | |||
| // this is an ordinal suffix | |||
| ordinal = 2; | |||
| memset(&word[ix], ' ', len); | |||
| break; | |||
| flags[0] |= FLAG_SKIPWORDS; | |||
| dictionary_skipwords = 1 + hyphen; | |||
| } | |||
| } | |||
| } | |||
| @@ -1462,7 +1487,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned | |||
| strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. | |||
| } | |||
| *flags = FLAG_FOUND; | |||
| *flags |= FLAG_FOUND; | |||
| prev_value = this_value; | |||
| return(1); | |||
| } // end of TranslateNumber_1 | |||
| @@ -51,7 +51,7 @@ char *namedata = NULL; | |||
| static FILE *f_input = NULL; | |||
| static int ungot_char2 = 0; | |||
| char *p_textinput; | |||
| unsigned char *p_textinput; | |||
| wchar_t *p_wchar_input; | |||
| static int ungot_char; | |||
| static const char *ungot_word = NULL; | |||
| @@ -373,13 +373,21 @@ int Eof(void) | |||
| static int GetC_get(void) | |||
| {//====================== | |||
| int c; | |||
| unsigned int c; | |||
| unsigned int c2; | |||
| if(f_input != NULL) | |||
| { | |||
| c = fgetc(f_input); | |||
| if(feof(f_input)) c = ' '; | |||
| return(c & 0xff); | |||
| if(option_multibyte == espeakCHARS_16BIT) | |||
| { | |||
| c2 = fgetc(f_input); | |||
| if(feof(f_input)) c2 = 0; | |||
| c = c + (c2 << 8); | |||
| } | |||
| return(c); | |||
| } | |||
| if(option_multibyte == espeakCHARS_WCHAR) | |||
| @@ -402,7 +410,15 @@ static int GetC_get(void) | |||
| } | |||
| if(!end_of_input) | |||
| { | |||
| if(option_multibyte == espeakCHARS_16BIT) | |||
| { | |||
| c = p_textinput[0] + (p_textinput[1] << 8); | |||
| p_textinput += 2; | |||
| return(c); | |||
| } | |||
| return(*p_textinput++ & 0xff); | |||
| } | |||
| } | |||
| return(0); | |||
| } | |||
| @@ -440,7 +456,7 @@ static int GetC(void) | |||
| c1 = GetC_get(); | |||
| } | |||
| if(option_multibyte == espeakCHARS_WCHAR) | |||
| if((option_multibyte == espeakCHARS_WCHAR) || (option_multibyte == espeakCHARS_16BIT)) | |||
| { | |||
| count_characters++; | |||
| return(c1); // wchar_t text | |||
| @@ -1862,8 +1878,8 @@ static MNEM_TAB xml_char_mnemonics[] = { | |||
| {NULL,-1}}; | |||
| int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type) | |||
| {//============================================================================================ | |||
| int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type) | |||
| {//============================================================================================================= | |||
| /* Find the end of the current clause. | |||
| Write the clause into buf | |||
| @@ -2031,49 +2047,62 @@ f_input = f_in; // for GetC etc | |||
| } | |||
| } | |||
| else | |||
| if((c1 == '<') && (ssml_ignore_l_angle != '<') && ((c2 == '/') || iswalpha(c2))) | |||
| if((c1 == '<') && (ssml_ignore_l_angle != '<')) | |||
| { | |||
| // SSML Tag | |||
| n_xml_buf = 0; | |||
| c1 = c2; | |||
| while(!Eof() && (c1 != '>') && (n_xml_buf < N_XML_BUF)) | |||
| if(c2 == '!') | |||
| { | |||
| xml_buf[n_xml_buf++] = c1; | |||
| c1 = GetC(); | |||
| } | |||
| xml_buf[n_xml_buf] = 0; | |||
| c2 = ' '; | |||
| buf[ix++] = ' '; | |||
| self_closing = 0; | |||
| if(xml_buf[n_xml_buf-1] == '/') | |||
| { | |||
| // a self-closing tag | |||
| xml_buf[n_xml_buf-1] = ' '; | |||
| self_closing = 1; | |||
| // a comment, ignore until closing '<' | |||
| while(!Eof() && (c1 != '>')) | |||
| { | |||
| c1 = GetC(); | |||
| } | |||
| c2 = ' '; | |||
| } | |||
| terminator = ProcessSsmlTag(xml_buf,buf,ix,n_buf,self_closing); | |||
| if(terminator != 0) | |||
| else | |||
| if((c2 == '/') || iswalpha(c2)) | |||
| { | |||
| buf[ix] = ' '; | |||
| buf[ix++] = 0; | |||
| if(terminator & CLAUSE_BIT_VOICE) | |||
| // SSML Tag | |||
| n_xml_buf = 0; | |||
| c1 = c2; | |||
| while(!Eof() && (c1 != '>') && (n_xml_buf < N_XML_BUF)) | |||
| { | |||
| // a change in voice, write the new voice name to the end of the buf | |||
| p = current_voice_id; | |||
| while((*p != 0) && (ix < (n_buf-1))) | |||
| xml_buf[n_xml_buf++] = c1; | |||
| c1 = GetC(); | |||
| } | |||
| xml_buf[n_xml_buf] = 0; | |||
| c2 = ' '; | |||
| buf[ix++] = ' '; | |||
| self_closing = 0; | |||
| if(xml_buf[n_xml_buf-1] == '/') | |||
| { | |||
| // a self-closing tag | |||
| xml_buf[n_xml_buf-1] = ' '; | |||
| self_closing = 1; | |||
| } | |||
| terminator = ProcessSsmlTag(xml_buf,buf,ix,n_buf,self_closing); | |||
| if(terminator != 0) | |||
| { | |||
| buf[ix] = ' '; | |||
| buf[ix++] = 0; | |||
| if(terminator & CLAUSE_BIT_VOICE) | |||
| { | |||
| buf[ix++] = *p++; | |||
| // a change in voice, write the new voice name to the end of the buf | |||
| p = current_voice_id; | |||
| while((*p != 0) && (ix < (n_buf-1))) | |||
| { | |||
| buf[ix++] = *p++; | |||
| } | |||
| buf[ix++] = 0; | |||
| } | |||
| buf[ix++] = 0; | |||
| return(terminator); | |||
| } | |||
| return(terminator); | |||
| continue; | |||
| } | |||
| continue; | |||
| } | |||
| } | |||
| ssml_ignore_l_angle=0; | |||
| @@ -2087,6 +2116,7 @@ f_input = f_in; // for GetC etc | |||
| if((punct = lookupwchar(punct_chars,c1)) == 0) | |||
| { | |||
| charix[ix] = count_characters - clause_start_char; | |||
| *charix_top = ix; | |||
| ix += utf8_out(c1,&buf[ix]); | |||
| terminator = CLAUSE_PERIOD; // line doesn't end in punctuation, assume period | |||
| } | |||
| @@ -2342,6 +2372,7 @@ if(option_ssml) parag=1; | |||
| while(j < ix) | |||
| charix[j++] = -1; // subsequent bytes of a multibyte character | |||
| } | |||
| *charix_top = ix; | |||
| if(((ix > (n_buf-20)) && !IsAlpha(c1) && !iswdigit(c1)) || (ix >= (n_buf-2))) | |||
| { | |||
| @@ -86,7 +86,7 @@ static const char *help_text = | |||
| "\t Use voice file of this name from espeak-data/voices\n" | |||
| "-w <wave file name>\n" | |||
| "\t Write output to this WAV file, rather than speaking it directly\n" | |||
| "-b\t Input text is 8-bit encoding\n" | |||
| "-b\t Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit \n" | |||
| "-m\t Interpret SSML markup, and ignore other < > tags\n" | |||
| "-q\t Quiet, don't produce any speech (may be useful with -x)\n" | |||
| "-x\t Write phoneme mnemonics to stdout\n" | |||
| @@ -568,7 +568,7 @@ int main (int argc, char **argv) | |||
| #else | |||
| while(true) | |||
| { | |||
| c = getopt_long (argc, argv, "a:bf:g:hk:l:p:qs:v:w:xXmz", | |||
| c = getopt_long (argc, argv, "a:b:f:g:hk:l:p:qs:v:w:xXmz", | |||
| long_options, &option_index); | |||
| /* Detect the end of the options. */ | |||
| @@ -580,7 +580,10 @@ int main (int argc, char **argv) | |||
| switch (c) | |||
| { | |||
| case 'b': | |||
| // input character encoding, 8bit, 16bit, UTF8 | |||
| option_multibyte = espeakCHARS_8BIT; | |||
| if((sscanf(optarg2,"%d",&value) == 1) && (value <= 4)) | |||
| option_multibyte= value; | |||
| break; | |||
| case 'h': | |||
| @@ -884,7 +884,7 @@ ESPEAK_API espeak_ERROR espeak_Key(const char *key) | |||
| } | |||
| #ifdef USE_ASYNC | |||
| t_espeak_command* c = create_espeak_key( key); | |||
| t_espeak_command* c = create_espeak_key( key, NULL); | |||
| a_error = fifo_add_command(c); | |||
| if (a_error != EE_OK) | |||
| { | |||
| @@ -910,7 +910,7 @@ ESPEAK_API espeak_ERROR espeak_Char(wchar_t character) | |||
| return(EE_OK); | |||
| } | |||
| t_espeak_command* c = create_espeak_char( character); | |||
| t_espeak_command* c = create_espeak_char( character, NULL); | |||
| a_error = fifo_add_command(c); | |||
| if (a_error != EE_OK) | |||
| { | |||
| @@ -27,7 +27,7 @@ | |||
| #include <stdio.h> | |||
| #define ESPEAK_API_REVISION 3 | |||
| #define ESPEAK_API_REVISION 5 | |||
| /* | |||
| Revision 2 | |||
| Added parameter "options" to eSpeakInitialize() | |||
| @@ -38,6 +38,8 @@ Revision 3 | |||
| Revision 4 | |||
| Added flags parameter to espeak_CompileDictionary() | |||
| Revision 5 | |||
| Added espeakCHARS_16BIT | |||
| */ | |||
| /********************/ | |||
| /* Initialization */ | |||
| @@ -227,6 +229,7 @@ int UriCallback(int type, const char *uri, const char *base); | |||
| #define espeakCHARS_UTF8 1 | |||
| #define espeakCHARS_8BIT 2 | |||
| #define espeakCHARS_WCHAR 3 | |||
| #define espeakCHARS_16BIT 4 | |||
| #define espeakSSML 0x10 | |||
| #define espeakPHONEMES 0x100 | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.40.07 13.Jan.09"; | |||
| const char *version_string = "1.40.09 11.Mar.09"; | |||
| const int version_phdata = 0x014000; | |||
| int option_device_number = -1; | |||
| @@ -263,7 +263,6 @@ 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; | |||
| @@ -345,7 +344,6 @@ 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; | |||
| @@ -446,6 +444,17 @@ Translator *SelectTranslator(const char *name) | |||
| break; | |||
| case L('e','u'): // basque | |||
| { | |||
| static const short stress_lengths_eu[8] = {200, 200, 200, 200, 0, 0, 210, 230}; // very weak stress | |||
| static const unsigned char stress_amps_eu[8] = {16,16, 18,18, 18,18, 18,18 }; | |||
| SetupTranslator(tr,stress_lengths_eu,stress_amps_eu); | |||
| tr->langopts.stress_rule = 1; // ?? second syllable ?? | |||
| tr->langopts.numbers = 0x569 + NUM_VIGESIMAL; | |||
| } | |||
| break; | |||
| case L('f','i'): // Finnish | |||
| { | |||
| static const unsigned char stress_amps_fi[8] = {18,16, 22,22, 20,22, 22,22 }; | |||
| @@ -466,6 +475,7 @@ Translator *SelectTranslator(const char *name) | |||
| } | |||
| break; | |||
| case L('f','r'): // french | |||
| { | |||
| static const short stress_lengths_fr[8] = {190, 170, 190, 200, 0, 0, 235, 240}; | |||
| @@ -473,10 +483,10 @@ Translator *SelectTranslator(const char *name) | |||
| SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | |||
| tr->langopts.stress_rule = 3; // stress on final syllable | |||
| tr->langopts.stress_flags = 0x0024; // don't use secondary stress | |||
| tr->langopts.stress_flags = 0x0024 + 0x1; // don't use secondary stress, monosyllables are unstressed | |||
| tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables | |||
| tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN; | |||
| tr->langopts.numbers = 0x1509 + 0x8000 + NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL; | |||
| SetLetterVowel(tr,'y'); | |||
| } | |||
| break; | |||
| @@ -958,7 +968,7 @@ SetLengthMods(tr,3); // all equal | |||
| SetupTranslator(tr,stress_lengths_th,stress_amps_th); | |||
| tr->langopts.stress_rule = 0; // stress on final syllable of a "word" | |||
| tr->langopts.stress_flags = 1; // don't automatically set diminished stress (may be set in the intonation module) | |||
| tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module) | |||
| tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() | |||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||
| // tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping) | |||
| @@ -1024,7 +1034,7 @@ SetLengthMods(tr,3); // all equal | |||
| SetupTranslator(tr,stress_lengths_zh,stress_amps_zh); | |||
| tr->langopts.stress_rule = 3; // stress on final syllable of a "word" | |||
| tr->langopts.stress_flags = 1; // don't automatically set diminished stress (may be set in the intonation module) | |||
| tr->langopts.stress_flags = 2; // don't automatically set diminished stress (may be set in the intonation module) | |||
| tr->langopts.vowel_pause = 0; | |||
| tr->langopts.tone_language = 1; // Tone language, use CalcPitches_Tone() rather than CalcPitches() | |||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||
| @@ -86,7 +86,7 @@ PHONEME_LIST2 ph_list2[N_PHONEME_LIST]; // first stage of text->phonemes | |||
| wchar_t option_punctlist[N_PUNCTLIST]={0}; | |||
| char ctrl_embedded = '\001'; // to allow an alternative CTRL for embedded commands | |||
| int option_multibyte=espeakCHARS_AUTO; // 0=auto, 1=utf8, 2=8bit, 3=wchar | |||
| int option_multibyte=espeakCHARS_AUTO; // 0=auto, 1=utf8, 2=8bit, 3=wchar, 4=16bit | |||
| // these are overridden by defaults set in the "speak" file | |||
| int option_linelength = 0; | |||
| @@ -1950,7 +1950,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
| int finished; | |||
| int single_quoted; | |||
| int phoneme_mode = 0; | |||
| int dict_flags; // returned from dictionary lookup | |||
| int dict_flags = 0; // returned from dictionary lookup | |||
| int word_flags; // set here | |||
| int next_word_flags; | |||
| int embedded_count = 0; | |||
| @@ -1962,8 +1962,9 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
| char *p; | |||
| int j, k; | |||
| int n_digits; | |||
| int charix_top; | |||
| short charix[N_TR_SOURCE+1]; | |||
| short charix[N_TR_SOURCE+4]; | |||
| WORD_TAB words[N_CLAUSE_WORDS]; | |||
| int word_count=0; // index into words | |||
| @@ -1973,7 +1974,7 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
| int tone; | |||
| int tone2; | |||
| p_textinput = (char *)vp_input; | |||
| p_textinput = (unsigned char *)vp_input; | |||
| p_wchar_input = (wchar_t *)vp_input; | |||
| embedded_ix = 0; | |||
| @@ -1987,9 +1988,11 @@ void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *t | |||
| for(ix=0; ix<N_TR_SOURCE; ix++) | |||
| charix[ix] = 0; | |||
| terminator = ReadClause(tr, f_text, source, charix, N_TR_SOURCE, &tone2); | |||
| terminator = ReadClause(tr, f_text, source, charix, &charix_top, N_TR_SOURCE, &tone2); | |||
| charix[N_TR_SOURCE] = count_characters; | |||
| charix[charix_top+1] = 0; | |||
| charix[charix_top+2] = 0x7fff; | |||
| charix[charix_top+3] = 0; | |||
| clause_pause = (terminator & 0xfff) * 10; // mS | |||
| tone = (terminator >> 12) & 0xf; | |||
| @@ -2454,16 +2457,14 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| if(IsSpace(c)) | |||
| { | |||
| if(space_inserted) | |||
| if(prev_out == ' ') | |||
| { | |||
| source_index = prev_source_index; // rewind to the previous character | |||
| char_inserted = 0; | |||
| space_inserted = 0; | |||
| continue; // multiple spaces | |||
| } | |||
| if(prev_out == ' ') | |||
| if(space_inserted) | |||
| { | |||
| continue; // multiple spaces | |||
| words[word_count].length = source_index - words[word_count].sourceix; | |||
| } | |||
| // end of 'word' | |||
| @@ -2516,6 +2517,13 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| all_upper_case = FLAG_ALL_UPPER; | |||
| syllable_marked = 0; | |||
| } | |||
| if(space_inserted) | |||
| { | |||
| source_index = prev_source_index; // rewind to the previous character | |||
| char_inserted = 0; | |||
| space_inserted = 0; | |||
| } | |||
| } | |||
| else | |||
| { | |||
| @@ -2644,12 +2652,12 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| // include the next few characters, in case there are an ordinal indicator | |||
| pn[0] = ' '; | |||
| memcpy(pn+1, pw, 5); | |||
| pn[5] = 0; | |||
| memcpy(pn+1, pw, 8); | |||
| pn[8] = 0; | |||
| for(pw = &number_buf[1]; pw < pn;) | |||
| { | |||
| TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 ); | |||
| dict_flags = TranslateWord2(tr, pw, &words[ix], words[ix].pre_pause,0 ); | |||
| while(*pw++ != ' '); | |||
| words[ix].pre_pause = 0; | |||
| words[ix].flags = 0; | |||
| @@ -2679,11 +2687,6 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| } | |||
| } | |||
| if(dict_flags & FLAG_SKIPWORDS) | |||
| { | |||
| ix += dictionary_skipwords; // dictionary indicates skip next word(s) | |||
| } | |||
| if((dict_flags & FLAG_DOT) && (ix == word_count-1) && (terminator == CLAUSE_PERIOD)) | |||
| { | |||
| // probably an abbreviation such as Mr. or B. rather than end of sentence | |||
| @@ -2691,6 +2694,11 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre | |||
| tone = 4; | |||
| } | |||
| } | |||
| if(dict_flags & FLAG_SKIPWORDS) | |||
| { | |||
| ix += dictionary_skipwords; // dictionary indicates skip next word(s) | |||
| } | |||
| } | |||
| for(ix=0; ix<2; ix++) | |||
| @@ -301,7 +301,7 @@ typedef struct { | |||
| int vowel_pause; | |||
| int stress_rule; // 1=first syllable, 2=penultimate, 3=last | |||
| // bit0=don't stress monosyllables, | |||
| // bit0=don't stress monosyllables, except at end of clause | |||
| // bit1=don't set diminished stress, | |||
| // bit2=mark unstressed final syllables as diminished | |||
| // bit4=don't allow secondary stress on last syllable | |||
| @@ -328,6 +328,7 @@ typedef struct { | |||
| #define NUM_ROMAN_UC 0x40000 | |||
| #define NUM_NOPAUSE 0x80000 | |||
| #define NUM_ROMAN_AFTER 0x200000 | |||
| #define NUM_VIGESIMAL 0x400000 | |||
| // bits0-1=which numbers routine to use. | |||
| // bit2= thousands separator must be space | |||
| @@ -348,6 +349,7 @@ typedef struct { | |||
| // bit19=don't add pause after a number | |||
| // bit20='and' before hundreds | |||
| // bit21= say "roman" after the number, not before | |||
| // bit22= vigesimal number, if tens are not found | |||
| int numbers; | |||
| #define NUM2_100000 0x800 // numbers for 100,000 and 10,000,000 | |||
| @@ -364,7 +366,6 @@ 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; | |||
| @@ -514,7 +515,7 @@ extern Translator *translator2; | |||
| extern const unsigned short *charsets[N_CHARSETS]; | |||
| extern char dictionary_name[40]; | |||
| extern char ctrl_embedded; // to allow an alternative CTRL for embedded commands | |||
| extern char *p_textinput; | |||
| extern unsigned char *p_textinput; | |||
| extern wchar_t *p_wchar_input; | |||
| extern int dictionary_skipwords; | |||
| @@ -568,11 +569,11 @@ void CalcPitches(Translator *tr, int clause_tone); | |||
| int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | |||
| int Unpronouncable(Translator *tr, char *word); | |||
| void SetWordStress(Translator *tr, char *output, unsigned int dictionary_flags, int tonic, int prev_stress); | |||
| void SetWordStress(Translator *tr, char *output, unsigned int &dictionary_flags, int tonic, int prev_stress); | |||
| int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags); | |||
| int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); | |||
| void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); | |||
| int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type); | |||
| int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type); | |||
| void SetVoiceStack(espeak_VOICE *v); | |||