diff --git a/dictsource/da_list b/dictsource/da_list index 3614a4a1..10590fa1 100755 --- a/dictsource/da_list +++ b/dictsource/da_list @@ -67,7 +67,7 @@ _? spWrgsmVlstajn _! udRVbstejn _- binnesdrai __ b'Onsdrai -& ou +& Vw £ pun? € euro © kopyrajt @@ -127,7 +127,7 @@ _0M3 milij'A:d3 _1M4 'e:n||bilij'o:n _0M4 bilij'o:n3 -_0and 3 +_0and V _dpt _k,Vm&: // PB a number followed by dot @@ -280,7 +280,6 @@ z sEt ø W // PB English words -bacon _^_EN bondage _^_EN volleyball _^_EN dj _^_EN @@ -303,7 +302,6 @@ coke _^_EN cool _^_EN couch _^_EN cursor _^_EN -//cowboy _^_EN debugger _^_EN ensemble _^_FR event _^_EN @@ -316,12 +314,11 @@ hooligan _^_EN interface _^_EN image _^_EN joke _^_EN -joystick _^_EN laptop _^_EN level _^_EN login _^_EN look _^_EN -lord _^_EN +//lord _^_EN macho _^_EN management _^_EN message _^_EN @@ -382,7 +379,6 @@ boyle _^_EN $alt clarence _^_EN $alt cyrus _^_EN cia _^_EN $alt -fbi _^_EN $alt fox _^_EN jones _^_EN larry _^_EN $alt @@ -467,69 +463,70 @@ tonnage $alt trikotage $alt // PB final -abel - stressed a -acceptabel $alt -affabel $alt -aimabel $alt -amortisabel $alt -analysabel $alt -appellabel $alt -applikabel $alt -deklinabel $alt -demontabel $alt -differentiabel $alt -diskutabel $alt -disputabel $alt -durabel $alt -fashionabel $alt -favorabel $alt -formidabel $alt -inacceptabel $alt -inkommensurabel $alt -irritabel $alt -kapabel $alt -kassabel $alt -komfortabel $alt -kommensurabel $alt -kommutabel $alt -komparabel $alt -kondemnabel $alt -konfiskabel $alt -konstabel $alt -kontrollabel $alt -konvenabel $alt -konversabel $alt -kritisabel $alt -kurabel $alt -//mirabel $alt -miserabel $alt -mutabel $alt -navigabel $alt -negligeabel $alt -negotiabel $alt -notabel $alt -operabel $alt -parabel $alt -passabel $alt -portabel $alt -praktikabel $alt -praktisabel $alt -profitabel $alt -præsentabel $alt -realisabel $alt -remarkabel $alt -rentabel $alt -reparabel $alt -respektabel $alt -risikabel $alt -ræsonnabel $alt -spendabel $alt -tolerabel $alt -trafikabel $alt -transportabel $alt -variabel $alt -venerabel $alt -veritabel $alt -vulnerabel $alt +// "el" has been removed in order to make rules for +// "konstabel" and the plural "konstabler" without "e" +acceptab $alt +affab $alt +aimab $alt +amortisab $alt +analysab $alt +appellab $alt +applikab $alt +deklinab $alt +demontab $alt +differentiab $alt +diskutab $alt +disputab $alt +durab $alt +fashionab $alt +favorab $alt +formidab $alt +inacceptab $alt +inkommensurab $alt +irritab $alt +kapab $alt +kassab $alt +komfortab $alt +kommensurab $alt +kommutab $alt +komparab $alt +kondemnab $alt +konfiskab $alt +konstab $alt +kontrollab $alt +konvenab $alt +konversab $alt +kritisab $alt +kurab $alt +miserab $alt +mutab $alt +navigab $alt +negligeab $alt +negotiab $alt +notab $alt +operab $alt +parab $alt +passab $alt +portab $alt +praktikab $alt +praktisab $alt +profitab $alt +præsentab $alt +realisab $alt +remarkab $alt +rentab $alt +reparab $alt +respektab $alt +risikab $alt +ræsonnab $alt +spendab $alt +tolerab $alt +trafikab $alt +transportab $alt +variab $alt +venerab $alt +veritab $alt +vulnerab $alt // PB adjectives and nouns with final -ant - stressed a acceptant $alt @@ -796,6 +793,7 @@ fiskal $alt fluvial $alt foderal $alt formal $alt +fokal $alt fraktal $alt frontal $alt frugal $alt @@ -893,7 +891,6 @@ mondial $alt monumental $alt moral $alt museal $alt -musical mju:sik3l $alt nasal $alt national $alt neural $alt @@ -2038,6 +2035,22 @@ viborgenser $alt vordingborgenser $alt ålborgenser $alt +// PB final -em: stressed e +problem $alt + bekvem $alt + diadem $alt + eksem $alt +ekstrem $alt + emblem $alt + fonem $alt + grafem $alt + morfem $alt +myxødem $alt + poem $alt + system $alt + teorem $alt + ødem $alt + // PB country names with final -ien - stress on previous syllable abessinien $alt abkhasien $alt @@ -2332,6 +2345,7 @@ elskerinde $alt forfatterinde $alt forstanderinde $alt fyrstinde $alt +fristerinde $alt gelinde gel'end@ $alt gemalinde $alt grevinde $alt @@ -2765,7 +2779,6 @@ kosmogoni $alt kvadrofoni $alt litani $alt ludomani $alt -mahogni m&h'oni $alt makaroni m&k@r'Vni $alt mani $alt misogyni $alt @@ -2831,6 +2844,7 @@ polygami $alt salami sal'&mi $alt socionomi $alt sodomi $alt +stomi $alt synonymi $alt taksonomi $alt trakeotomi $alt @@ -2997,7 +3011,6 @@ mezzanin $alt mokkasin $alt morfin $alt muezzin $alt -muffin mVf'en $alt musselin $alt naftalin $alt nankin $alt @@ -3638,6 +3651,110 @@ timid $alt tyfoid $alt valid $alt +// PB final -iker: stressed previous syllable +afatiker $alt +agnostiker $alt +akademiker $alt +akustiker $alt +alkoholiker $alt +allergiker $alt +analytiker $alt +anorektiker $alt +apoplektiker $alt +aritmetiker $alt +asteniker $alt +astigmatiker $alt +astmatiker $alt +atlantiker $alt +blasfemiker $alt +botaniker $alt +bulimiker $alt +datamatiker $alt +diabetiker $alt +diagnostiker $alt +dialektiker $alt +didaktiker $alt +diætetiker $alt +dogmatiker $alt +dramatiker $alt +dysfatiker $alt +dyslektiker $alt +egocentriker $alt +eklektiker $alt +elegiker $alt +elektriker $alt +elektroniker $alt +empiriker $alt +epigrafiker $alt +epileptiker $alt +erotiker $alt +excentriker $alt +fanatiker $alt +filharmoniker $alt +flegmatiker $alt +fonetiker $alt +føniker $alt +genetiker $alt +gnostiker $alt +grammatiker $alt +heraldiker $alt +hermeneutiker $alt +historiker $alt +homiletiker $alt +hysteriker $alt +hæretiker $alt +idylliker $alt +ironiker $alt +karismatiker $alt +keramiker $alt +kiromantiker $alt +kiropraktiker $alt +koleriker $alt +logistiker $alt +matematiker $alt +mekaniker $alt +melankoliker $alt +melodiker $alt +metafysiker $alt +metodiker $alt +metriker $alt +nekromantiker $alt +neurasteniker $alt +neurotiker $alt +nostalgiker $alt +numismatiker $alt +obstetriker $alt +pantomimiker $alt +paralytiker $alt +parlamentariker $alt +peripatetiker $alt +platoniker $alt +polemiker $alt +politiker $alt +polytekniker $alt +pragmatiker $alt +prognostiker $alt +prosaiker $alt +retoriker $alt +reumatiker $alt +romantiker $alt +sangviniker $alt +satiriker $alt +sekteriker $alt +semantiker $alt +semiotiker $alt +skeptiker $alt +skismatiker $alt +skolastiker $alt +statistiker $alt +syfilitiker $alt +symfoniker $alt +systematiker $alt +teoretiker $alt +typotekniker $alt +æstetiker $alt +økumeniker $alt + //PB words with final -isk - stress on the previous syllable abkhasisk $alt absolutistisk $alt @@ -5318,6 +5435,7 @@ tvivlagtig $alt tvivlrådig $alt tyvagtig $alt tålmodig $alt +ungdommelig $alt vankundig $alt vederheftig $alt vederhæftig $alt @@ -5593,6 +5711,7 @@ skribleri $alt skriveri $alt skruebrækkeri $alt skrædderi $alt +skyderi $alt skulkeri $alt skumleri $alt skyderi $alt @@ -5789,7 +5908,7 @@ augmentere $alt auktionere $alt auskulter $alt autentificer $alt -autografer $alt +autografere $alt autoklaver $alt automatiser $alt autonomiser $alt @@ -5797,7 +5916,7 @@ autoriser $alt avancere $alt averter $alt bagatelliser $alt -bajader $alt +bajadere $alt balancere $alt balkaniser $alt balloter $alt @@ -5807,7 +5926,7 @@ bandagere $alt banderolere $alt barbariser $alt barbere $alt -barder $alt +bardere $alt barrier $alt barrikader $alt basere $alt @@ -6120,6 +6239,7 @@ formaliser $alt formatere $alt formere $alt formuler $alt +omformuler $alt fortificer $alt fosfatere $alt fosforescer $alt @@ -6368,15 +6488,15 @@ karboniser $alt karburer $alt karesser $alt kariker $alt -karrier $alt +karriere $alt karter $alt kartonner $alt -kaserner $alt +kasernere $alt kassere $alt kastrer $alt katalogiser $alt katalyser $alt -katapulter $alt +katapultere $alt kategoriser $alt katekiser $alt katolicer $alt @@ -6425,7 +6545,7 @@ kompiler $alt komplementer $alt kompletter $alt komplicer $alt -komplimenter $alt +komplimentere $alt komponer $alt komposter $alt komprimer $alt @@ -6751,7 +6871,7 @@ persifler $alt persister $alt personaliser $alt personificer $alt -perspektiver $alt +perspektivere $alt perturber $alt perverter $alt petitioner $alt @@ -6766,7 +6886,7 @@ pivoter $alt pizziker $alt placer $alt plagier $alt -plakater $alt +plakatere $alt planere $alt plastificer $alt platiner $alt @@ -6879,7 +6999,7 @@ reaktiver $alt realiser $alt reassumer $alt reassurer $alt -rebeller $alt +rebellere $alt recenser $alt recidiver $alt recirkuler $alt @@ -6890,7 +7010,7 @@ redresser $alt reducer $alt referer $alt reflekter $alt -reformer $alt +reformere $alt refunder $alt refuser $alt regaler $alt @@ -7117,7 +7237,7 @@ synkretiser $alt synkroniser $alt syntetiser $alt systematiser $alt -tabeller $alt +tabellere $alt tabuere $alt tabuiser $alt tabuler $alt @@ -7197,12 +7317,13 @@ typiser $alt typografer $alt tyranniser $alt uniformere $alt +undervurder $alt urbaniser $alt urger $alt uriner $alt usurper $alt vacciner $alt -vagabonder $alt +vagabondere $alt valider $alt valoriser $alt valuter $alt @@ -7222,7 +7343,7 @@ vidimer $alt vikarier $alt vindicer $alt viriliser $alt -visere $alt +//visere $alt visiter $alt visualiser $alt vitaliser $alt @@ -8853,6 +8974,7 @@ automation $alt autorisation $alt aversion $alt ballotation $alt +baron $alt bastion $alt benediktion $alt billion $alt @@ -9599,7 +9721,7 @@ liaison li&s'VN $alt meson $alt person $alt ræson REs'VN $alt -sæson sEs'VN $alt +//sæson sEs'VN $alt unison $alt // PB exceptions from the "be" rule in group "be" @@ -10501,6 +10623,7 @@ emulgator $alt eskalator $alt evaluator $alt evaporator $alt +faktor $alt fundator $alt generator $alt gladiator $alt @@ -10553,6 +10676,7 @@ likvidator $alt makulator $alt manipulator $alt multiplikator $alt +motor $alt nomenklator $alt observator $alt operator $alt @@ -10602,6 +10726,40 @@ versifikator $alt vibrator $alt visitator $alt ækvator $alt +junior $alt +prior $alt +senior $alt +aggressor $alt +assessor $alt +censor $alt +decisor $alt +defensor $alt +dimissor $alt +divisor $alt +kompressor $alt +kondensor $alt +processor $alt +professor $alt +provisor $alt +revisor $alt +sensor $alt +sponsor $alt +successor $alt +kondor $alt +korridor $alt +labrador $alt +matador $alt +picador $alt +ronkedor $alt +toreador $alt +//major $alt +anafor $alt +metafor $alt +hydrofor $alt +donor $alt +sonor $alt +tenor $alt +tumor $alt // PB Final -ut - stressed u absolut $alt @@ -10645,6 +10803,7 @@ arrangør $alt assurandør $alt auditør $alt bankør $alt + billettør $alt causør $alt charmør $alt chauffør $alt @@ -10848,6 +11007,7 @@ sententiøs $alt seriøs $alt serøs $alt skabrøs $alt +skandaløs $alt skarlatinøs $alt skrofuløs $alt spatiøs $alt @@ -11010,15 +11170,6 @@ rejicere rejis'eV // PB should not be pronounced [raje] rejicerer rejis'eV // PB rejiceres rejis'eVs // PB rejicering rejis'eRiN // PB -gele sjel'e // PB gele -gelé sjel'e // PB gelé -geleen sjel'e@-n // PB geleen -geleer sjel'e3 // PB geleer -geleens sjel'e@-ns // PB geleens -geleerne sjel'eVn@ // PB geleerne -geleernes sjel'eVn@s // PB geleernes -geleagtig sjel'eagte //PB geleagtig -geleagtige sjel'eagte@ //PB geleagtige nogle n'o:@-n // PB English: 'some' - must be pronounced like the Danish word 'nogen' nogen n'o:@-n // PB ligesom lisVm // PB @@ -11027,10 +11178,10 @@ konfirmand kVnferm'&nd // PB konfirmander kVnferm'&nd3 // PB konfirmanderne kVnferm'&nd3-n@ // PB konfirmandernes kVnferm'&nd3-n@s // PB -dollar dVlV // PB +//dollar dVlV // PB giv g'i // PB the v shouldn't be pronounced giver gir // PB the v shouldn't be pronounced -jaloux sja'lu // PB jaloux +jaloux sj&'lu // PB jaloux aficionado afisjo'na:do // PB breakdance brEig'da:ns // PB breakdance breakdancen brEig'da:ns@-n // PB breakdancen @@ -11064,7 +11215,6 @@ calais kal'E // PB Calais - town in France date dejt // PB date - stævnemøde siger sir // PB silent d (tids nok) tis||n'Vk // PB silent d -cologne ko'lVN3 // PB skateboardet sk'eitbo@d3D // PB billie bile // PB the name Billie (hole in one) h'oulinw,0n // PB English golf expression used in Danish @@ -11103,6 +11253,7 @@ co $abbrev $allcaps // PB for CO2-kvote ngo $abbrev edb $abbrev mri $abbrev +kfuk $abbrev $allcaps wc v'ese // w is pronounces as v in Danish (wc'et) v'ese@d (wc'er) v'eseV @@ -11140,7 +11291,6 @@ hav hAu $atend // PB problem with 'sig' [si] = "say" and 'sig' = "himself/herself" [saj] (sig mig) si||maj // PB sig mig engang (sig hvad) si||v& // PB sig hvad du mener -(sig det) si||de // PB sig det, du mener sig $atend $sentence saj // end of a sentence - han vaskede sig. (gør sig til) g,Wr||saj||t'el // PB (gav sig til) g&||saj||tel // PB han gav sig til at ... @@ -11187,11 +11337,12 @@ legenderne leg'EndVn3s (så længe) sV||l'EN3 (så være) sV||v'EV (så må) sV||m'O +(så må sige) s'O||m'O|s'i@ (så har) sV||har (se så) se||sV (så sent) sV||sent (ville så) vil3||sV -så sV $sentence $atstart +//så sV $sentence $atstart (hvad så) v&||sV $atend // "Hvad så?" (virkede så) v'irkeD@||sV (kom så) kVm||sV diff --git a/dictsource/da_rules b/dictsource/da_rules index 04c3860a..a54aebc0 100755 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -11,21 +11,23 @@ ü y ö ø ä æ - -.L01 k g nk ng // velars -.L02 c h f k p r s t //PB 'ægte' konsonanter - 'real' consonants -//.L03 b d g j l m n v w //PB halvvokaler - semivowels, approximates -.L04 u y i ø o e // PB fortungevokaler - front vowels - not finished -.L05 a æ å // PB bagtungevokaler - not finished, not used yet - -.L06 p b // pande, bande - pege, bege - passe, basse -.L07 t k // time, kime - tone, kone - tage, bage - tanke, banke +// velars - testing "j" +.L01 k g ck nk ng q j +// labialer +.L02 p b f v m +// fortungekonsonanter experimental +.L03 l d +// PB fortungevokaler - front vowels +.L04 u y i ø o +// PB bagtungevokaler - not finished, not used yet +.L05 a æ å +// pande, bande - pege, bege - passe, basse +.L06 p b +.L07 t k v // time, kime - tone, kone - tage, bage - tanke, banke TESTING "v" .L08 sp st sk .L09 m n // ens før vokal: naller, maller - ikke efter: nam, nan .L10 c k -.L11 g k h q x// bagtungekonsonanter -.L03 l d // fortungekonsonanter experimental -.L12 p b f v m // labialer +.L11 a e .group a @@ -34,10 +36,22 @@ a (lt & // PB alt, overalt vr) a (lt A // PB vralte -// PB general rule: [A] after r TOO BROAD +// PB general rule: [A] after r r) a (_ A // PB bagfra + r) a (en A // PB rivieraen Cr) a (n A // PB transport - r) a (C A // PB trappe + r) a (n A // PB ran, ransage + tr) a (C A // PB straf, traf, trav + r) a (L06 A // PB trappe + r) a (CL04 A // PB generation + r) a (ting Ej // PB + r) a (t a // PB ratgear + r) a (d A // PB rad, radmager + r) adar AdAr // PB + r) a (s a // PB rasende, brase + r) a (v a // PB fraværende, rav, rasende, ravage + L01r) a A // PB grad, gral + br) a (l A // PB cerebral, bralre kamer) a A // PB _hurr) a 'A // PB stressed a (dvar & // PB terroradvarsel @@ -50,85 +64,108 @@ for) a (nd A // PB forandre for) a (nk A // PB forankre r) a (nch & // PB + _br) a (nch A // PB br) an (che aN // PB + r) a (nsigt & // PB pokeransigt // PB general rule: [a] after r followed by sp/st/sk r) a (L08 a // PB rask -// PB general rule: [&:] after m/n before L12 followed by e - L09) a (L12e &: // mave +// PB general rule: [&:] after m/n before L02 followed by e + L09) a (L02e &: // mave gn) av (pot Aw // PB gnavpotte torn) ad (o '&d // PB stressed n) a (p A // PB -// PB General rule a between L12: [A] - L12) a (L12 A // PB mappe - too broad? - L12) a (L12e & // PB hvabehar - too broad? - L12) a (L12rL04 & // PB fabrik - too broad? - L12) a (L12ser A // PB babser - er ([V]) isn't a front vowel +// PB General rule a between L02: [A] + L02) a (L02 A // PB mappe - too broad? + L02) a (L02e & // PB hvabehar - too broad? + L02) a (L02rL04 & // PB fabrik - too broad? + L02) a (L02le & // PB vable + L02) a (L02ser A // PB babser + p) apegøje ap@g'Vj3 // PB sn) a (vs A // PB L09) a (j a // PB maj - m) a (jL04 & // PB major + m) a (jo+ & // PB major, majonæse // PB general rule: [a] after l before n l) a (n & // land l) an (ce AN // PB lancere pl) an (ch AN // PB planche + // PB general rule: [a] after consonant before m - C) a (m a // PB ham, gamle, lam + C) a (m a // PB ham, gamle, lam, Sam + C) a (mL11 & // PB Samantha a (ms a // PN Amsterdam pyj) a (ma '& // PB pyjamas c) amaro &m'Ero // PB Camaro (car) + + // PB general rule: [&] after l before m + vowel + l) a (mA & // PB lama + _rekl) a (me '& // PB stressed + // PB general rule: consonant + a + labial + front vowel - C) a (L12L04+ & // PB vitamin, dynamit, kapel + C) a (L02L04+ & // PB vitamin, dynamit gest) a (po 'a // PB kad) a (ver '& // PB stressed - r) a (L12L04+ A // PB bravo + r) a (L02L04+ A // PB bravo +// f) a (vo+ a // PB favorit willi) a (m a // PB name alab) a (m '& // PB Alabama a (mf A // PB amfetamin, amfora -// PB general rule: [&] after l before m + vowel - l) a (mA & // PB lama - _rekl) a (me '& // PB stressed -// PB general rule: [&] after before m/n + +// PB general rule: [&] after f before m/n f) a (L09 & // PB familie, fane f) a (mle A // PB + +// fan) a (tL04 '& // PB fanatiker, fanatisk + // PB general rule: [&] after k k) a (+ & // PB kage, kaste _chik) a (ne '& // PB stressed sk) a (k A // PB skak _mak) a (b '& // PB makaber - stressed + +// general rule: [&:] after consonant before "ne" + C) a (ne &: // PB "mane" opposed to "mande" + r) a (ne A // PB krigsveteraner + // PB general rule: [a] after k before p - k) a (p+ a // PB kappe, kaptajn - c) a (p+ a // PB handicap + L10) a (p+ a // PB kappe, kaptajn, handicap dac) a (po '& // PB stressed - k) a (pi+ & // PB [&] before i - kapitel - k) a (pa+ & // PB [&] before a - kapacitet + k) a (pL11+ & // PB [&] before a/e - kapacitet, kapere k) a (pre & // PB k) a (pring & // PB + // PB general rule: [a] after sk before f sk) a (f+ a // PB skaffe + // PB general rule: [&] after sk before p/b sk) a (L06+ & // PB skab, beredskab + // PB general rule: [A] after sk before p/b + t sk) a (L06t+ A // PB skabt + // PB general rule: [a] after k before m k) a (m a // PB kam, kamp c) a (mp & // PB camping + // PB amm => [a] a (mm a // PB kammerat, amme // PB kame => [&] - k) a (me & // PB kamel, kamera + L10) a (me & // PB kamel, kamera, Camelot // PB general rule: [&] after d - d) a (+ & // PB dame, dag + d) a (mL11 & // PB dame, damask _endd) a (_ '& // PB _med) a (lje '& // PB stressed +underd) a (nig '& // PB stressed a (fbryd A // PB nødafbryder a (fvi A // PB afvise ad) a (m A // PB name - d) ag (@ au // PB dagbog + d) a (g@+ a // PB dagbog, daggry + d) a (gs@ a // PB dagsorden, dagsaktuel, dagslys d) agger (t AgV // PB mand) ag (s & // PB mandagsmiddag tirsd) ag (s & // PB tirsdagsmiddag @@ -142,17 +179,22 @@ _d) a (m_ a // PB dam _d) a (mm a // PB dammen d) a (fn a // PB dafnie + // PB general rule: [A] after d before mp d) a (mp A // PB damp + // PB general rule: [A] after a followed by k/g plus t - a (L11t+ A // PB ak, aktionær, aktuar + a (L01t+ A // PB ak, aktionær, aktuar + // PB general rule: [A] after k before g (au) k) a (g A // PB kagle + // PB general rule: [a] after j before g k) a (j a // PB kaj k) a (ja & // PB kajak // PB general rule: [A] after k before p k) a (ps a // PB kapsel + // PB general rule: [Au] after m/n before g (au) L09) ag Au // PB nagle m) ag (i &g // PB magi @@ -162,29 +204,39 @@ m) ag (azi &g // PB magazine aggie &gi // PB Maggie flan) ag (an &g // PB Flanagan + // PB general rule: [ak] after m/n before gt L09) ag (t ak // PB løgnagtig + // PB general rule: [A] before vl (au) a (vl A // PB avle + // PB general rule: [A] before kt a (kt A // PB aktuar, aktivitet + // PB general rule: [A] before cc a (cc A // accent b) accarat akar'a // PB + // PB general rule: [Au] after b before v b) av (++ Au // PB forbavset b) a (vian & // PB exception + // PB general rule: [a] after sp/st/sk before m L08) a (m a // skam _) a (mb A // PB ambition a (mt A // PB amtskommune test) a (m & // PB testamente + // PB general rule: [A] after sp/st/sk before v L08) a (v & // stav - // PB general rule: af = [Au] before s + +// PB general rule: af = [Au] before s af (s Au // afstand - // PB general rule: [Au] before l + +// PB general rule: [Au] before l av (l Au // savle, tavle + // PB general rule: [Au] after l _l) av Au // lavenergi, lavteknologi, lavadel l) a (vendel & // exception: lavendel @@ -198,25 +250,40 @@ l) av (ni &v // PB madlavning l) av (a_ &v // PB lava l) av (ae &v // PB lavaen + l) av (aC &v // PB lavalampe b) alaklav (a &l&kl'&:v // PB g) av (mi Au // PB gavmild + // PB general rule: [Au] after t before s t) av (s Au // tavshed + // PB general rule: [A] before r a (r+ A // skar _has) a (rd 'A // PB stressed _mal) a (ria 'A // PB stressed _al) a (rm 'A // PB stressed -// PB general rule: [A] before nk/ng - a (nL11++ a // planke, slanke, anke, flanke, gang - a (ngi++ & // PB angive +// PB general rule: [a] before velars + a (L01++ a // planke, slanke, anke, flanke, gang + _mass) a (kre 'a // PB stressed + _) a (L01L04++ & // angive, ankomme + p) a (gn+ & // PB kompagniskab + @) a (krL04+ & // PB anakronisme TEST + r) a (L01++ A // PB tragisk + a (L01e++ a // bange + re) a (g+ & // PB reagere, reagensglas + a (ka++ & // PB akavet, akademiker, akacie + f) a (nklub+ & // PB a (nho++ & // PB anholde a (nga++ & // PB angav a (ngå++ & // PB + b) a (gage++ & // PB bagage + s) a (g_+ & // PB ankesag, sag + sl) a (ng & // PB + sl) a (nge a // PB + l) a (ng+ a // PB livslang skav) a (nk 'A // PB a (nklag++ & // PB anklage - a (nkom++ & // PB ankomme ang (re aN // PB angre _) ang (eC aN // PB anger, angelsaksisk _) ang (ol ang // PB Angola @@ -225,27 +292,45 @@ a (gt A // agt l) a (gt+ A // PB lagt - avoid [au] forl) a (gt_ ''A // PB stressed + // PB general rule: [A] before vn after consonant C) a (vn A // favn, savn + gn) a (vne & // PB + // PB general rule: [a] after kl before consonant kl) a (L06 a // PB klap - a (k a // akrobat - a (C% & // PB akkord TEST - e) a & // PB Korea azalea - a (ka & // PB akavet - a (ngC A // PB angst - b) a (L06 A // PB baptist + +// PB general rule: consonant + a + c/k: [a] + C) a (L10 a // PB makværk, Jacob + att) ache &S'e // PB + C) a (L10L04 & // PB pacifist - maybe not a valid rule c = s here + C) a (L10e a // PB race + L08) a (L10L04 & // PB stakit + pl) a (ka & // PB plakat + st) a (ka & // PB stakat + + a (k & // PB akkord TEST + a (ppetit a // PB appetit + + h) a (cienda _^_es // PB + l) a (kr %& // PB lakrids + e) a & // PB Korea, azalea b) ay aj // PB bayersk b) ayreuth ajR'Vjt // PB German town + m) anhattan &nh'&t@n // PB +bloody_m) ary &ri // PB gu) ay aj // PB Paraguay a (mp %A // PB ampul _) aage Ou3 // PB name - a (men_ A // PB + _) a (men_ A // PB amager AmAr // PB Amager _) amy Ejmi // PB name + g) aux 'o // PB Margaux a (ppar a // PB apparat a (ppels a // PB appelsin ae (ro E // PB aerobic, aerosol + _st) a (ll O // PB about airplane "stall" + t) alk (show Ok // PB r) a (cerbil E // PB r) a (cercyk E // PB r) a (cerbane E // PB @@ -264,6 +349,9 @@ _trilli) a (r 'A // PB stressed - trilliard metast) a (se '& // PB stressed pic) a (sso '& // PB stressed _o) a (se '& // PB stressed + salam) a (nder '& // PB stressed +_propag) a (nd '& // PB stressed -propaganda + bals) a (mi '& // PB stressed - balsamico L08) av (C Au // stavn s) av (C Au // PB savklinge s) ag (C Au // PB sagfører @@ -274,29 +362,30 @@ metast) a (se '& // PB stressed @h) av (_ Au // PB flammehav h) av (C Au // PB havbund h) av (over Au // PB havoverfladen - h) a (vn A // PB havn h) av (is Au // PB - h) av (aborr Au PB havaborre + h) av (aborr Au // PB havaborre + h) av (ud Au // PB havudsigt h) ag (l Au // PB + ag (n Au // PB fish lure + p) agne '&nj@ // PB champagne + ag (nos %ag // PB agnostiker hav) a (nna '& // PB Havanna h) a (ck & // PB hacke color) ado 'Ado // PB US state _) av (_ Au // PB av - C) a (k a // PB makværk _f) akultet &kult'et // PB fakultet _) absolution AbsoluS'on // PB absolution AbsoluSon // PB _) attribution &tRibuS'on // PB attribution &tRibuSon // PB C) a (x a // PB fax - st) a (ki & // PB stakit m) a (ka & // PN makaber klim) a & // PB klimarelateret + klim) a (ks a // PB C) a (ck a // PB tackle - sn) a (ck & // PN + sn) a (ck & // PB bl) a (ck & // PB blackout s) a (x a // PB saxofon - l) a (kA & // PB lakune @l) a (g &j // PB nederlag gr) ape Eb // PB grapefrugt astaire &sd'E:r // PB name @@ -307,11 +396,14 @@ metast) a (se '& // PB stressed air Er // PB airbag aubrey V:bri // PB name agency EjdZ@nsi // PB +ginger_) ale Ejl // PB _d) ave _^_en // PB name _w) aco Ejkow // PB US city r) aw O // OB Rawlins l) awrence 0r@ns // PB name b) ach ax // PB name + _) ahab Ejh&b // PB name + allie &li // PB name en_l) a (ser Ej // PB l) a (serst Ej // PB laserstråle l) a (serpr Ej // PB laserprinter @@ -322,7 +414,7 @@ metast) a (se '& // PB stressed &) al ($p_alt+ ''&l // the double '' enforces primary stress - fatal, monumental r) al ($p_alt+ 'Al // [A] after "r" - general, neutral &) al (is$p_alt+ &l' // PB socialisme -// exception - no stress because of stress on -ion +// exception - no stress because of stressed -ion r) a (l@@+ A // PB centralisation NEEDS MORE WORK an) al (fabet =&l // PB an) al (y+ &l' // PB alalytiker @@ -338,7 +430,7 @@ metast) a (se '& // PB stressed &r) ant ($p_alt 'Ant // [A] after "r" - kurant // PB stressed a in final -at - words in da_list - &) at ($p_alt ''&t // attentat + &) at ($p_alt '&t // attentat &) at (t$p_alt ''& // fregatter - only one t &) ation ($p_alt &S'on // delegation &r) ation ($p_alt AS'on // koncentration @@ -359,12 +451,13 @@ _oblig) atio (n &S'o // PB clash with "obligat" in da_list &) adent ($p_alt &d'ent // don't spoil the -ent rule - dekad'ent // PB nouns with final -an in da_list - stressed a - &) an ($p_alt+ ''&n // leguan - &r) an ($p_alt+ ''An // orkan + &) an ($p_alt+ ''&n // leguan, velan + &r) an ($p_alt+ 'An // varan // PB final -abel in da_list - stressed a - &) abel ($p_alt '&b@l // aimabel - &r) abel ($p_alt 'Ab@l // kurabel + &) ab (el$p_alt '&b // aimabel + &r) ab (el$p_alt 'Ab // kurabel + &) ab (le$p_alt '&b // konstabler // PB nouns with final -agtig in da_list - stressed a &) agtig ($p_alt+ 'agti // tyvagtig @@ -420,7 +513,7 @@ _katar) a (kt 'a _kontr) a (kt 'a v) a (nlig '& // PB usædvanlig - stressed a - pal) a (ds '& // PB palads - stressed a + pal) ad (s '& // PB palads - stressed a, silent d kart) a (go '&: // PB Kartago - stressed a komm) a (nd '& // PB kommando - stressed kast) a (nje '& // PB stressed @@ -436,27 +529,26 @@ _vatik) a (n '& // PB Vatikanet al) a (sk '& // PB Alaska _radio) a (kti 'A // PB stressed - radioaktiv _impres) a (rio 'A // PB stressed - _rab) a (rber 'A // PB stressed + _rab) arber 'AbV // PB stressed _ar) a (ber 'A // PB stressed eng) a (ng 'a // PB stressed _karav) a (ne '& // PB stressed _chimp) a (n '& // PB stressed - chimpanse pastr) a (mi 'A // PB stressed _bar) a (k 'A // PB stressed + _kak) a (o '& // PB stressed + _can) a (dier '& // PB stressed a (sme '& // PB orgasme, entusiasme bl) a (d & // PB blad h) a (n & // PB han - j) a & // PB ja tj) a (_ &: // PB - j) a (v & // PB javel j) avert aurt // PB javert - sl) av (e &v // PB slave l) ave (ment &@ // PB lavement l) ave (_ &v@ // PB lave l) aver (_ &vV // PB laver +kanonl) avet &vet // PB exception - French origin freel) ance A:Ns // PB kl) aver (_ &v'er // PB klaver - l) a (bo a // PB laborastorium g) a (v &: // PB gav, opgave b) a (jer a // PB b) aby (+ eibi // PB baby @@ -465,10 +557,11 @@ _chimp) a (n '& // PB stressed - chimpanse _) a (nden & // PB anden t) a (bt a // PB tabte l) a (b_+ a // PB lab + l) a (bb a // PB labben l) a (be & // PB laber L08) a (b &: // PB skabe L08) a (bt A // PB skabt - a (bs A // PB absolut + a (bso A // PB absolut a (bc A // PB abces ai (mabel E // PB aimabel mir) abel Ab'El // PB mirabel(le) @@ -476,6 +569,7 @@ _chimp) a (n '& // PB stressed - chimpanse pacem) a (k ei // PB pacemaker interf) a (ce ei // PB interface L08) a (d &: // PB stadig + busk) ad (s '& // PB _) a (e_ &: // PB ae a (fC+ a // PB af = au and exceptions in the f group col) a & // PB colaflaske @@ -498,24 +592,23 @@ cornfl) akes Ejgs // PB t) a (lA &: // PB tale t) a (p a // PB tap t) a (pi & // PB tapir - p) a (p a // PB pap +// p) a (p a // PB pap + _) aha (_ ah'a // PB p) a (pi & // PB papir L09) a (l &: // PB male L09) a (ld & // PB knald _) a (ldr a // PB aldrig - a (ld & // PB alder + a (lde & // PB alder skr) a (l a // PB skrald +rappenskr) a (lde 'a // PB stressed over) a (lt '& // PB stressed a in 'overalt' _eks) a (m+ '& // PB stressed - eksamen, eksaminere &eks) a (m & // PB sh) a & // PB shaman sp) a (m &: // PB isl) a (m 'a: // PB islam, islamisk + hav) a (na '& // PB stressed j) a (men & // PB exception jamen = ja men -// pl) a (m+ & // PB plamage CHECK THIS ONE -// d) a (me+ &: // PB dame -// f) a (n+ & // PB fanden -// av) a (nc 'V // PB avance ch) a (n a // PB chance v) a (j a // PB svajende, vaje // PB general rule: [&] after p/b/d before n @@ -529,16 +622,16 @@ cornfl) akes Ejgs // PB pil) a (tus '& // PB Pontius Pilatus L06) a (nk A // PB bank an (cien aN -// L06) a (nd & // PB pande a (ndre A // PB andre + _) andrea &ndr'e& // PB name andrew &ndru // PB name v) a (ndr A // PB vandre v) a (ndrør & // PB - a (po a // PB apotek + a (pote a // PB apotek n) apoleon &p'oljVn // PB name - L06) a (nk a // PB banke +// L06) a (nk a // PB banke @g) a (ng 'a // PB stressed a in words ending with -gang - engang, enegang - h) a (nk a // PB hank + h) a (L01 a // PB hank, hang, bank h) a (j a // PB haj restaur) ant 'AN // PB added stress l) a (p+ a // PB slap, lap @@ -554,13 +647,12 @@ _dinos) aur 'auV // PB stressed ch) au (f o rest) au (r o s) au (terne o // PB wine -// h) a (ve &: // PB have - noun/verb - garden, oceans, to have @h) av_ Au // PB ildhav -[Au] = [&v] followed by syllable: ['ilh&:v@D] @k) ar (l & // PB bøssekarl afrik) aa (n A: // PB afrikaaner action &kSj@n // PB actionfilm aircondition E:rkVn,i:S@n - akkordeon ak'V:deVn + akkordeon &k'V:deVn attention at'EnS@n athen &t'en // PB Athen andrews &ndRu:z // PB @@ -570,6 +662,7 @@ _dinos) aur 'auV // PB stressed _) abby &bi // PB name avery Ejvri // PB name r) andolph &ndVlf // PB name + sp) alding Old,eN // PB name s) ally &li // PB th) a (nks & // PB thanksgiving str) abads Ab'&s // PB stressed a, silent d @@ -582,8 +675,11 @@ _domin) a (n '& // PB stressed - dominans aw (K aw ay (K Ej // PB a changed to E bookm) a (ker Ej // PB + _v) agas Ejg@s // PB Las Vegas + b) acon EjkVn // PB taleb) a (n '& // PB sm) aragd ar'Awd // PB gem stone + klo) ak A:k // PB .group af @@ -605,21 +701,23 @@ _domin) a (n '& // PB stressed - dominans &) age (re$p_alt+ &S'e@ // not for the "age" words - gagere hjertemass) age &:S@ // hjertemassage - // "ag" words silent g + //PB general rule: "ag" words silent g d) ag (_ &j // PB dag d) ag (e+ &j // PB dage d) ag (l@+ Au // PB daglejer @d) ag (_++ & // PB dommedag sd) ag & // PB fødselsdagsgave - d) ag (og+ ag // PB pædagog + d) ag (og+ &g // PB pædagog + _j) ag (_ &j // PB j) ag (e+ &: // PB jage j) ag (uar ag // PB j) ag (t ag // PB jagt b) ag (h+ Au // PB baghold b) ag (l Au // baglader, baglæns - b) ag (L11 Au // bagklog, baggård + b) ag (L01 Au // bagklog, baggård b) ag (f Au // bagflikke b) ag (b Au // bagbutik + b) ag (rud Au // PB bagrude b) ag (d Au // bagdør b) ag (v Au // bagvendt, bagværk b) ag (An Au // Bagindien, baginder @@ -632,6 +730,7 @@ hjertemass) age &:S@ // hjertemassage b) ag (te Ag // PB nybagte _L06) ag (_ &j // PB bag - single word b) ag (fr &? // bagfra + b) ag (i & // PB bagi b) ag (ved &_: // PB bagved b) ag (efter &j // PB bagefter b) ag (på &? // PB bagpå @@ -642,22 +741,31 @@ hjertemass) age &:S@ // hjertemassage band) age &:S@ // PB gipsbandage sC) ag &j // PB slag, slaget, Skagen, smag st) agn AuN // PB stagnere + kast) agn (et &nj' // PB kastagnetter sl) ag (C@ au // PB slagskib sl) agg (e ak // PB slagger sl) ag (ne &j // PB rædselsslagne l) ag (_ &j // lag + forl) ag %&j // PB forlagsvirksomhed opsl) ag &j // PB f) ag (@ au // PB fagsnak, ufaglært, fagarbejde + f) ag (ter ag // PB l) ag (C au // PB flagstang, lagkage + sl) ag (s+ &j // PB gennemslagskraft + sl) ag (sværd au // PB pl) ag &j // PB plagsom l) ag (re &j // PB oplagres esl) ag (lA Au // PB beslaglægge - sC) ag (t ag // PB universitetsvagt - _sv) ag (t &j // PB svagt + sl) ag (te+ ag // PB slagter + sl) ag (tn+ ag // PB slagtning + sv) ag (t &j // PB svagt åndssv) ag &j // PB evnesv) ag &j // PB +parkeringsv) ag (t ag // PB + æresv) ag (t ag // PB +butiksv) ag (t ag // PB +hospitalsv) ag (t ag // PB m) ag (t ag // PB verdensmagt - sl) ag (te ag // PB slagte sl) ag (smål Au // slagsmål sl) ag (tilf Au // PB slagtilfælde sl) ag (side Au // PB slagside @@ -666,16 +774,18 @@ evnesv) ag &j // PB sp) ag (num Au // PB r) ag (e+ Au // PB drage, rage C) age (+ &:j@ // PB tage, bage, kage + ss) age &S@ // PB rygmassage + C) ager (+ &:jV // PB bagerst, kager ag (ent+ &g // PB dobbeltagent, forsikringsagent, agenten g) age (+ &:S@ // PB fl) ager (mus AuV // PB - C) ager (_+ &:jV // PB tager, bager, kager l) agd (e &:j // PB lagde g) ager (e+ &S'e // PB gagere r) age (++ Aw@ // PB rage, fremragende r) ager (++ AwV // PB rager tr) agedie Ag'eDj@ // PB - t) ager (_ Ar // PB tager [t'Ar] + _t) ager (_ Ar // PB tager [t'Ar] + iagtt) ager (_ &jV // PB iagttager - noun t) ag (_ &j // PB tag t) ag (C aw // PB tagvindue t) ag (ne &j // PB tilfangetagne @@ -762,14 +872,20 @@ _trienn) al (e '&:l baltimore bOltimV: // PB US city burgh bW:g // PB Pittsburgh bike bajk // PB mountainbike, bikermiljø + _) buic bjuik // PB car brand + t_) bone bOwn // PB T-bone-steak + bernie bWni // PB name + beverly bEvVli // PB + bei (rut baj // PB + fris) bee bi // PB + burgess bWdZes // PB name + borough bV*V // PB Peterborough + buffalo bVf3lOw // PB .group be // PB words beginning with "be" with stress on the second syllable (850) // They have secondary stress on the second syllable with a preceeding syllable _) be (@ b%e // PB besta'and - bernie bWni // PB name - beverly bEvVli // PB - fris) bee bi // PB // PB exceptions to the "be" rule _) be (dste bE // bedstefar, bedstemor @@ -817,6 +933,7 @@ _trienn) al (e '&:l _) be (tel be _) be (tl be _) beige bE:S // PB colour + _) be (lla bE .group c @@ -842,6 +959,7 @@ frederi) c (ia =ks // PB ch (loe k // PB Chloe c (k ch (+ S // PB check, chokolade + wi) ch tS // PB sandwich chicago Sik'AgOw // PB child tSajld // PB Fairchild chopin SopEN // PB name @@ -854,7 +972,8 @@ frederi) c (ia =ks // PB s) c (ha // PB no extra S in 'schalburtage' cigaret sig3r'&#t cigarett sig3r'&#t - cc ks + cc ks // PB accent + so) cc (er k // PB European football cappu) cc (ino tSj' // PB fa) c (ad s fa) c (on s @@ -872,7 +991,7 @@ frederi) c (ia =ks // PB callgirl kVlgW:l // PB cowboy kaubOj _) custer kVstV // PB name - _) ciao (_ tjAw // PB + _) ciao (_ tSjAw // PB claude klO:d // PB name churchill tSW:Sil // PB cambridge kejmbRidZ // PB @@ -899,6 +1018,9 @@ piccadilly_) circus sWk@s // PB _) creek (_ kri:k // PB camembert kamANb'Er // PB crazy kREjsi // PB Crazy Horse + cincinnati sensin'&ti // PB + chihuahua tSiw'awa // PB + connor kVnV // PB name .group d @@ -909,30 +1031,45 @@ piccadilly_) circus sWk@s // PB A) d D // PB sted - way too broad? d (uk d // PB produkt + d (ok d // PB paradoks, tørdok a) de (Cr D3 // PB badedragt - not tested y) de D3 // PB brydehold - y) der DV // PB betyder + by) de (l de // PB bydel + by) d (elig D // PB modbydelig + y) der (_ DV // PB betyder @) d (elt d // PB udelt, tildelt + æ) de (l+ D3 // PB ædelt + mo) d (em d // PB + +// PB general rule: silent d in final ærd + ær) d (_ // PB færd, sværd + svær) d (et // PB sværdet + lær) d (_ d // PB højlærd +// fær) d (_ // PB // PB general rule: silent d after l l) d // PB hold, skjold d (om d // PN trældom + d (rys d // PB kaneldrys sol) d (æk d // PB turtel) d (ue d // PB l) d (ug d // PB meldug d (ør d // PB bildør + sal) d (o d // PB C) d (etA d // PB metaldetektor ol) d (ing d // PB holdingfirma, olding + d (ag d // PB gammeldags al) d (rig d // PB aldrig + d (ring d // PB skildring l) d (ig d // PB skyldig bal) de l3 // PB silent d - balde l) d (akin d // PB keep d in "baldakin" hel) d (i d // PB keep d in "heldig" fær) d // silent d in færd, færdsel - fær) d (e d // PB færdes, færden - fær) d (i d // PB keep d in "færdig" - &) d (yr d // PB keep d in "muldyr" + fær) d (eC d // PB færdes, færden + fær) dig di // PB keep d in "færdig" + @) d (yr d // PB keep d in "muldyr" o) dds ds // PB odds bol) d d hva) d // PB silent d in 'hvad' @@ -945,44 +1082,56 @@ turtel) d (ue d // PB stikor) d // PB exception - silent d in 'stikord' d' d //PB d'Aviano - e.g. French and Italian names woo) d d // PB Hollywood + dawson dV:s3n // PB name ud) d (A d // general rule: [D] after vowel and before consonant A) d (C D // adkomst - A) dt (A t // PB fedtet - A) ds s // PB hids, hidsig +// exceptions + fe) dt (@ t // PB fedtet, fedtsyl + ski) dt t // PB + i) d (ti+ D // PB hidtil + bu) d (apest d // PB + æ) d (ru d // PB + bu) ddh d // PB buddhist + y) ds s // PB kryds + pi) ds s // PB spids + kra) ds s // PB kradse + spa) ds (er s // PB spadsere + ri) ds s // PB ridse A) ds (æt Ds // PB hidsætte - kry) d (s // PB silent d - re) ds s // PB tilfreds, omkreds - _u) d (++ D // PB udse, udarte - A) dd D // PB hedder - "er" removed by &) er (_NS2 [V] - a) ds s // PB silent d - palads, krads - A) d (s@ // PB fødsel - deleted 30+ rules, this one does the work - CA) d (s@ D // PB nedsmelte, dødscelle TEST - pla) ds s // PB lejrplads + _u) d (++ D // PB udse + A) d (sel // PB fødsel, brændsel, bidsel + ræ) d (sel D // PB + ned) d (s D // PB nedsmelte + ø) d (s+ D // PB dødscelle, nødspor, ødsel + fø) d (s+ // fødsel gi) d (s+ // PB silend d - gidsel kre) d (s // PB silent d - kredsløb + ø) d (t // PB silent d - mødtes + hi) ds (e s // PB ophidse + pla) ds s // PB + pu) ds s // PB pudse + smu) ds s // PB + dø) d (+ D // PB dødtræt + @fre) ds s // PB tilfreds + fjer) di (ng e // PB silent d - forfjerding (1/4 of an animal ) -// PB general rule: silend d before st +// PB general rule: silent d before st d (st++ // PB silent d - sidste, mindst + mo) d (st+ D // PB modstand, modstå // PB general rule: dd between two vowels: [D] A) dd (A D // PB redder - sli) d (s // PB silent d - slids - spi) d (s // PB silent d - spids spi) d (steg D // PB spidstege + ne) d (st D // PB nedstemme, nedstirre ti) ds (nok s' // PB silent d - tidsnok - ri) d (s // PB silent d - omride, lakrids hår) d // PB silend d - hård, hårdere stri) d (s D // PB but not silent d in e.g. 'stridsvogn' - pu) d (s // PB silent d - pudse - smu) ds s // PB tilsmudse u) dt (+ t // PB brudt plu) dsel sl/2 // PB silentg d - pludselig [pl'usli] in) d (C -// ne) d (C D -// ar) d (K d ir) d (_ d pæ) d (a d re) d (a d @@ -992,9 +1141,7 @@ stikor) d // PB exception - silent d in 'stikord' me) d (b D me) d (d D mi) dd (a d -// he) dd (e D dd (et D -// bu) dd (ing D i) d (e d an) d (e // PB manden, anden - silent d _fan) de (me // PB fandeme - skip de, only this word @@ -1005,50 +1152,34 @@ stikor) d // PB exception - silent d in 'stikord' ti) d (e D vi) d (e D gui) de d -// snu) d (e D in) d (eks d mo) d (el d or) d (el d -// sed) d (el D or) d (en d gui) de (n de ver) d (en d -// vi) d (er D gui) der dV - lu) d (ere d + klu) d (ere d // konkludere A) d (es D ær) d (es d -// A) d (et D gui) de (t de -// a) d (g D bu) d (get - A) d (i d -// in) d (i d -// re) d (i d -// æl) d (i d -// A) d (ig D +// A) d (i d A) di (sk Di // overfladisk -// a) d (k D me) d (l D or) d (ne d -// ry) d (ni D -// or) d (ning d -// be) d (r D -// bla) d (r D An) d (rA d ma) d (ras d An) d (re d bu) ddh (ist d // PB silent h - buddhist -// or) d (re d -// æl) d (re d -// æn) d (re d _a) d (r d // PB adresse, adrenalin hon) d (ura d // PB Honduras -// æn) d (ri d - ti) d (s+ D // tidstabel + ti) d (s+ D // tidstabel ti) d (sel // PB silent d sli) d (so D A) d (t_++ // PB silent d - forbudt, skudt, ladt + A) d (te_++ // PB silent d - beskidte + i) d (t // PB skridtet, skoleridtet fo) d (C++ D // PB fodtøj fjer) d (e // PB silent d - fjerde L09A) d (ta D // PB modtage, medtage, nedtage @@ -1060,6 +1191,8 @@ stikor) d // PB exception - silent d in 'stikord' pen) d (ul d' // PB pendul dendron d'endrVn // // PB filodendron doubleton dVb@ltVn // PB from bridge (card game) + double dVb@l // PB mixed double + deuce dZu:s // PB _) dav (_ dAw // PB dav detente det'A:Nt // PB doughnut downVd // PB @@ -1076,6 +1209,8 @@ stikor) d // PB exception - silent d in 'stikord' detroit detr'Vjt // PB US city daryl d&r3l // PB name drisco _^_en // PB name Driscoll + dutch dVtS // PB name + darlene dAli:n // PB name .group é // added by PB é 'e // idé, entré @@ -1085,21 +1220,30 @@ stikor) d // PB exception - silent d in 'stikord' // PB stress on second syllable after initial "be" in .group be // Secondary stress after a syllable &b) e (@ e, // PB hv'alrosbest,and - &Ab) e (r V // PB fibersprængning + &Ab) er V // PB fibersprængning forb) e e // PB forberede b) e (rig e // PB våbenberiget b) e (rg+ E // PB herberg bomb) e (r@ 3 // PB bomberydder dobb) e (l @ // PB + // PB general rules - C) e (L12 E // PB stemme, lefle - ol) e @ // PB skolebog + C) e (L02 E // PB stemme, lefle + entr) e (pr 3 // PB entreprise + kr) e (bs &# // PB + L03) e (L02 e // PB akademiker + + kol) e (C @ // PB skolebog + C) ering ,ereN // PB lydisolering + pol) e (re+ e // PB finpolere kol) e (st E // PB kolesterol e (d E // PB sted - TEST e (dt e // PB fedtet C) e (C% E // PB celle TEST + _konf) e (tti 'E // PB stressed + kass) e (tte 'E // PB stresed h) e (dd e // PB hedde - e (dA e // PB medalje, rede TEST + C) e (dA e // PB medalje, rede TEST val) e (ncia 'E // PB mal) er V // PB maler mal) e (ri V // PB @@ -1123,38 +1267,42 @@ philad) elphi (a 'Elfj // PB stressed // PB general rule: [E] after r before consonant r) e (dA E: // PB rede r) e (C% E // PB short e before double consonant - redde - L12r) e (C% &# // PB labial + r - fremmed + L02r) e (C% &# // PB labial + r - fremmed + aggr) e (ssor &# // PB + L07r) e (m &# // PB tremme fr) eddie Edi // PB name fr) eddy Edi // PB name r) ee (l e|E // PB reelle r) ey Ej // PB greyhound - ndr) e V // PB mindreårig + ndr) e (A V // PB mindreårig gr) e (l &# // PB grel stor) e V // PB storebror tr) eg (_ aj // PB streg tr) eg (en_ aj // PB stregen tr) eg (er_ aj // PB streger tr) eg (e_ aj // PB understrege + tr) eg (ede_ aj // PB understregede tuar) eg Eg // PB r) e (nd a // PB røvrendt r) e (nte &# // PB r) e (st &# // PB restlager + r) e (stL11 e // PB restaurere klatr) e V // PB hor) e V // PB horeunge - kongr) e (s & // PB kongres - regr) e (s & // PB r) e (vn &# // PB revne + dr) e (vn E // PB overdrevne skr) e (v e // PB skrevne r) e (kto &# // PB rektor &r) e (pl V // PB boreplatform ur) e (ne @ // PB murene r) e (s_ @ // PB forhindres + _tr) e (s E // PB tres (60) opr) e (v E // PB oprevet pr) e (m E // PB premiere spr) e (d E // PB spredt -// PB general rule: [&#] after pr folloewd by double consonant TEST +// PB general rule: [&#] after pr followed by double consonant TEST pr) e (C%+ &# // PB presse // pr) e (C@+ E // PB single consonant - presenning pr) e (s+ &# // PB @@ -1168,9 +1316,11 @@ philad) elphi (a 'Elfj // PB stressed //PB general rule: [e] after r before m + front vowel r) e (mL04 e // PB remoulade, remisse + ældr) e (+ 3 // PB forældremyndighed //PB general rule: [&#] after r before ng r) e (ng &# //PB streng, dreng + mar) e (ng '&# // PB stressed - marengs r) e (ngø E // PB rengøre //PB general rule: [&#] after r before t @@ -1205,12 +1355,13 @@ philad) elphi (a 'Elfj // PB stressed mus) e (um 'E // PB stressed L09) e (t e // metal L09) e (l E // mellem + L06) e (r E // PB perle _m) e (l_ e // PB ed) e (r @ // nederlag tr) e (ma E' // trema s) e (dd E // PB seddel s) ek (sten aj // PB seksten, sekstende - ell) e (r V // ellers + ell) er V // ellers fr) edag Ed& // PB fredag - not [d&j) nov) e (mber 'e // PB dec) e (mber 'e // PB @@ -1218,6 +1369,7 @@ philad) elphi (a 'Elfj // PB stressed eus Wws // PB for Greek names - Zeus, Achilleus st) ew ju // PB Stewart tel) e 3 // PB tele + tel) e (x E // PB afl) e (v 3 // PB aflevere ri) e 3 // PB ferie _a) e (_ 3 // PB ae @@ -1230,6 +1382,7 @@ philad) elphi (a 'Elfj // PB stressed Ar) e (s_ 3_: // PB gøres r) eau o // PB bureaukratiske ee 'e: // PB ideer, cafeer + toup) e 'e // PB stressed fr) ee i: // PB Freeman w) ee (k i: // PB Newsweek ee (jer @a // PB hundeejer @@ -1241,9 +1394,12 @@ philad) elphi (a 'Elfj // PB stressed fr) ee (lan i: // PB freelance b) ee (d ee // PB beedige en) e @ // PB ene, eneste + en) e (m E // PB pærenem en) e (rgi E // PB br) e (L09 &# // PB bremse sn) e (K e // PB sne, snebold + _sn) e (r_ e // PB det sner + _sn) ee (de_ e@ // PB det sneede sn) e (rp E // PB snerpet sn) ed (k e e // PB silent d - snedker _s) e (_ e? // PB se @@ -1278,12 +1434,13 @@ provenc) e // PB Provence - skip the e prov) e (nce 'A: // PB Provence e (gsot &# // PB blegsot e (gfi &# // PB blegfis - egen (rådig aj@n // PB + egen (@ ej@n // PB egenrådig, ehennyttig r) e (ste &# // PB resten r) e (staurant E e (gansigt &# // PB blegansigt -_kongr) e (s '& // PB kongres - stressed but not after a syllable - _regr) e (s '& // PB regres +_kongr) e (s '&# // PB kongres - stressed but not after a syllable + _regr) e (s '&& // PB regres + kongr) e (s &# // PB lægekongres _rødb) e (de 'e // PB stressed e in 'rødbede' _aller) e (de_ E // PB allerede - otherwise the E is changed by another rule _im) e (ns+ 'e // PB stressed @@ -1296,29 +1453,16 @@ _aller) e (de_ E // PB allerede - otherwise the E is changed by anot eagle i:g@l // PB // PB final -em - stressed e -_probl) e (m 'e - probl) e (m e // PB stofproblem - _bekv) e (m 'E - _diad) e (m 'e - _eks) e (m 'e -_ekstr) e (m 'e - _embl) e (m 'e - _fon) e (m 'e - _graf) e (m 'e - _morf) e (m 'e -_myxød) e (m 'e - _po) e (m 'e - _syst) e (m 'e - _teor) e (m 'e - _ød) e (m 'e + &) em (_$p_alt+ 'em // PB problem + &) em (et$p_alt+ 'em // PB problemet + &) em (er$p_alt+ 'em // PB problemer + &) em (s$p_alt+ 'em // PB problems +// various exceptions el) e (ndig E // PB møgelendig - steressed with $alt rule - n) e (m E // PB pærenemt leb) e (ndig 'E // PB steressed with $alt rule _ball) e (t@ 'E // PB balletdanser _en_ball) e (t 'E // PB - ft) e (r 3 // PB oftere - _r) e (nd+ a // PB rend _r) e (ndyr+ e // PB rendyrke øjest) e (n+ e // øjesten skorst) e (n e // PB @@ -1339,15 +1483,20 @@ bautast) e (n // PB sp) ee (d i: // PB speedbåd t) ech Ek // PB hightech stoneh) enge EndZ // PB + pal) e (rmo 'E // PB + tw) ee (d i: // PB + _h) ei (di aj // PB name // PB Words ending with e - general rule @) e (_+ 3 // PB husleje afs) e (_ e // PB afse + godes) e e // PB tilgodese _) e (_speak i // PB eSpeak - capital s makes the e one word _) e (_mail i // PB e-mail hjemv) e e // PB hjemv) ej aj // PB - uds) e (+ e // PB forudse, udse + _uds) e (_+ e // PB udse + _uds) e (r_+ e // PB udser puds) er (+ V // PB turn) e 'e // PB @@ -1384,6 +1533,7 @@ morgent) e e // PB tesk) e e // PB teske gourm) e 'e // PB gourmet _rod) e (o 'e // PB stressed + // PB stressed e in words with -ekt - konfekt _aff) e (kt 'E _arkit) e (kt 'E @@ -1409,17 +1559,12 @@ _prosp) e (kt 'E _sociol) e (kt 'E _subj) e (kt 'E _susp) e (kt 'E + // PB stressed e in words with -cept - konfekt _rec) e (pt 'E _konc) e (pt 'E _acc) e (pt 'E - // PB stressed e in words with final -or - prof) e (ssor 'e - aggr) e (ssor 'a - ass) e (ssor 'E - proc) e (ssor 'e - kompr) e (ssor 'a - succ) e (ssor 'e + // PB stressed e in a few words inding with -est _arr) e (st 'a _asb) e (st 'e @@ -1444,6 +1589,7 @@ _sakram) e (nte 'e anv) ende (_ E-n@ // PB røvr) ende (_ a-n@ // PB røvrende v) ende (+ E-n@ // PB omvende + L08) e (gt e // PB stegt L08) e (g a // PB steg, spegepølse _st) eg (_ e // steg - verb, problem with noun = "roast" @@ -1454,14 +1600,15 @@ _sakram) e (nte 'e n) egl ajl // PB negl r) egel Ejl // PB regel r) egl Ejl // PB regler + k) eg (le aj // PB keglebane br) ea (k Ej // PB breakdance res) e (rve 'e // PB reserve - stressed m) eg (a eg // mega, omega _) eget (_ a:j@D // PB eget r) eg (er Eg // PB e=> E eg (n aj // PB regn, tegning, lege + skr) eg aj // PB underl) eg ej // PB underlegen -// str) eg (+ aj // PB stregen p) eg aj // PB pegefinger p) eggy Egi // PB name l) ey i // PB volley @@ -1506,9 +1653,9 @@ _offic) e (_ // office (officepakke) st) edet (_ ED3d // PB værkstedet Ad) en (@ @-n // udenlandsk, udenad Ad) en (t en // PB identificere -// &) ene (_ @-n@ sir) ene 'En@ // PB gr) ene En@ // PB grene + rr) ed @D // PB lærred, ørred fingr) ene Vn@ // PB st) evie ivi // PB name ucc) es 'e @@ -1530,6 +1677,7 @@ _parent) e (s 'e PB stressed merc) e (des 'e // PB car _ant) e (nne 'E // PB stressed _el) e (v 'e // PB stressed + el) e (vat 3 // PB elevator sydv) e (st 'E // PB stressed // PB a few words with final -es - stressed e @@ -1538,6 +1686,7 @@ _parent) e (s 'e PB stressed rec) e (s 'e exc) e (s 'e proc) e (s 'e + b) ea (t i: // PB beat, beatorkester ompet) en (ce aN ress) en (timent aN // PB ressentiment @@ -1561,37 +1710,45 @@ _parent) e (s 'e PB stressed stript) ease i:s // PB l) ea (se i // PB l) ea (sing i // PB - eu (rop Wu // PB Europa + eu (rop Ww // PB Europa eau 'o // PB bureau, niveau eau (kti @au // PB pladeauktion eau (to @au // PB hæveautomat _t) e (_ e // PB te kin) e (s 'e // PB kineser d) e (s_ @ // PB mødes - ar) e @ // PB vareprøve TEST + var) e @ // PB vareprøve TEST _) eddie Edi // PB name harv) ey i // PB name disn) ey i // PB name _barn) ey i // PN name jess) e i // PB name m) ey (er aj // PB name + budap) e (st 'E // PB stressed h) ei (del aj // PB Heidelberg r) eaux O // PB Devereaux eugene judZ'i:n // PB name _ir) e (ne+ 'E // PB name + ven) e (dig 'e // PB + t) ea (m i: // PB teamwork // PB plural suffix -ene @) ene (_S3 @n@ // brødrene - the brothers + @gg) ene (_S4 @n@ // væggene tj) ene En@ // PB betjene tj) ener EnV // PB // PB stressed e in nouns with final -esse in da_list - &) esse ($p_alt '&s3 // finesse + &) esse ($p_alt ''Es3 // finesse + &) esse (r$p_alt ''EsV // finesser &r) esse ($p_alt '&#s3 // adresse + &r) esse (r$p_alt '&#sV // adresser // PB stressed e in nouns with final -ese in da_list &) ese ($p_alt 'es3 // hypotese + &) ese (r$p_alt 'esV // hypoteser &r) ese ($p_alt 'Es3 // parese + &r) ese (r$p_alt 'EsV // pareser .group el @@ -1605,7 +1762,7 @@ stript) ease i:s // PB // PB exceptions to the -el rule // PB final -el in da_list - stressed e - &) el ($p_alt ''El // model + &) el ($p_alt+ ''El // model &) el (t$p_alt ''El // kommercielt &r) el ($p_alt ''&#l // multikulturel &) el (l$p_alt ''E // modellen - only one l @@ -1615,6 +1772,8 @@ stript) ease i:s // PB form) el (t 'El // PB form) el (l 'El // PB formelle m) el (on el // PB vandmelon +venezu) el (a 'el // PB + hot) el El // PB møghotel // PB final -elig in da_list - stress on previous syllable &) elig ($p_alt =@li // PB jomfruelig @@ -1625,19 +1784,26 @@ muskat) el ''El // PB intellektu) el el // // PB _pan) el 'el // PB pan) el el // PB -bestandd) el el // PB - halvd) el el // PB -nederd) el el // PB - d) el (ing el // PB sk) el (_ El // PB vandskel + orsk) el el // forskel + rsk) el @l // tærskel +grænsesk) el el +marksk) el el h) el (ikopt El // PB kamphelikopter + &p) el (s_ El // PB fåreskindspels &) el (ev el // PB mønsterelev evang) el el // PB evangelie d) el (t+ el // PB tildelt @f) el (t El // PB oliefelt lob) el (ia 'el // PB - d) ele (+ el3 // PB dele, omdele, kønsdele - edd) el l/2 // PB seddel + d) ele (+ el3 // PB dele + bind) ele (d 3le // PB bindeledder + d) eler (+ elV // PB deler +bestandd) el el // PB + halvd) el el // PB +nederd) el el // PB + d) el (ing el // PB + edd) el 3l // PB seddel medd) el del // PB meddel _offici) el (+ 'el // PB officiel verbi) el 'el // adverbiel @@ -1646,18 +1812,15 @@ _offici) el (+ 'el // PB officiel u) el (t+ 'el // aktuelt, seksuelt, visuelt unds) el (ig 'el // PB gennemsku) el (ig =el -// ur) el (_+ '&#l // konjunkturel and) el el // andel and) el (se @l // PB forbandelse hand) el @l // handel spani) el @l // PB cockerspaniel dani) el el // Daniel ford) el el // fordel - orsk) el el // forskel h) el (t+ el // PB tøffelhelt r) el (at el // PB relateret t) el (ef el // telefgon - rsk) el @l // tærskel ed) el (+ el // femtedel - words where "del" means 'part of' led) el (se @l // PB ledelse ked) el (+ @l // grukedel - doesn't mean 'part of' @@ -1667,6 +1830,7 @@ hvedem) el el brillest) el el servantest) el el spisest) el el +landingsst) el el underst) el (+ el _st) el (_ el ond) el el // milliondel @@ -1688,14 +1852,12 @@ underst) el (+ el ded) el el // tiendedel, niendedel farv) el 'El s) el (s El // selskab -grænsesk) el el juv) el 'el kam) el 'el kap) el 'El legemsd) el el løsd) el el - makr) el '&#l -marksk) el el + _makr) el (+ '&#l materi) el 'el medikament) el 'el mortad) el 'el @@ -1733,8 +1895,9 @@ _frikad) el (l 'El // PB stressed - frikadelle frikad) el (l El // PB verdensd) el el @) el (øs el // PB mageløs - el (eg+ el // PB juleleg + jul) eleg @laj // PB juleleg dr) el (+ Vl // PB ældre, forældreløs + alleh) elg (ens 'Elj // PB stressed - allehelgensdag .group en // PB noun suffix -en (perlen - the pearl), -ens (perlens - the pearl's) @@ -1746,6 +1909,7 @@ verdensd) el el // exceptions aft) en @n // PB avoid [Au] when aft(en) is translated _ag) en (t 'en // PB agent + fænom) en 'en // PB stressed ag) en (t en // PB agent &g) en (st en // PB genstand &g) en (kend en // PB genkende @@ -1771,12 +1935,14 @@ _præsid) en (t 'en // præsidentfrue &b) en (_+ en // PB koben, nøgleben _åb) en (_+ @n // PB åben våb) en (++ @n // PB våben + bb) en (_++ @n // PB klubben + ribb) en (++ en // PB ribbenssteg gravst) en en // PB tj) en (st En // PB fortjenstmedalje m) en (s+ En // PB menstruation g) en (st en // PB genstand g) en (sk en // PB genskabe - t) en (A @n // PB TEST - femtenårig + t) en (å @n // PB TEST - femtenårig st) en (A en // PB stenograf småst) en en // PB eksist) en (s 'en // PB eksistens @@ -1794,7 +1960,7 @@ skizofr) en 'En // PB // PB $alt words with final -ent in da_list - stressed e &) ent ($p_alt+ 'ent // student - &) ent (&$p_alt+ 'ent // student + &es) ent ($p_alt+ 'AN // present (gift) &r) ent ($p_alt+ '&#nt // omtrent &) ent (ur$p_alt+ ent' // agentur - stressed u &) ent (alsk$p_alt+ ent' // + "alsk" - stressed a - orientalsk @@ -1819,6 +1985,7 @@ excell) ence ($p_alt 'Ens@ // PB exception &) ender (_ EnV // anliggender, foretagender &r) ender (_ anV // røvrender _kal) ender 'EnV // PB + bart) ender EndV // PB .group er r) er (_ V // PB final "er": V after r - murer @@ -1830,20 +1997,21 @@ excell) ence ($p_alt 'Ens@ // PB exception // NB suffix takes away the stres from "italiener/italienere" and since // it isn't possible to mark the rule "not for $alt words" -er and -ere a not suffixes any more. @) er (_N V // elsker - &) ere (_ 3V // elskere - &) eren (_ Vr3n // elskeren - &) erens (_ Vr3ns // elskerens - &) ers (_ Vs // elskers - &) erne (_ Vn@ // elskerne - &) ernes (_ Vn@s // elskernes - &) erste (_ Vst@ //midterste - &) ert (_ Vt // lummert - &) ers (C Vs // PB Petersborg, tiggerske - TEST + @) ere (_ 3V // elskere + @) eren (_ Vr3n // elskeren + @) erens (_ Vr3ns // elskerens + @) ers (_ Vs // elskers + @) erne (_+ Vn@ // elskerne + @) ernes (_ Vn@s // elskernes + @) erste (_ Vst@ //midterste + @) ert (_ Vt // lummert + @) ers (C Vs // PB Petersborg, tiggerske - TEST // exceptions to the "er" rule + _t) er (_ er // PB "de ter sig underligt" g) er (_++ V // våger, læger [l'EjV] g) er (t+ er // PB Gerta - @g) erne (++ Vn@ // lægerne +// @g) erne (++ Vn@ // lægerne genfotograf) er (e er // PB røntgenfotografere fing) erne (m Vne // PB fingernem @d) erne (++ Vn@ // let the nd rule kick in - inderne @@ -1851,17 +2019,19 @@ genfotograf) er (e er // PB røntgenfotografere reag) ere (_ er3 // overreagere _reag) ere (_ 'er3 // overreagere vurd) ere (_ er3 // overvurdere - overs) er er // PB + tr) ere (+ er3 // indregistrere +_overs) er er // PB ov) ere (ns+ V'e // PB uoverensstemmelse, overens - stressed g) er (+ V // unger, borgerkrig g) er (ani er // PB geranium g) er (man er // PB germansk - m) er (et V // PB nummeret + mm) er (et V // PB nummeret nysg) er (ri er // PB nysgerrig revolv) er V // PB int) er (@ V // PB interaktiv skid) er Vr // PB - st) er (+ V // PB mønster + ønst) er (+ V // PB mønsterelev + st) er (i er // PB ministerium st) er (eo er // PB stereoanlæg st) er (ol Er // PB kolesterol st) er (l er // PB sterling @@ -1872,9 +2042,10 @@ revolv) er V // PB dent) er V // PB studentereksamen _all) er V // PB allersidst pill) er V // PB spiller, piller - As) er (@ V // PB bruseranvendelse + brugs) er V // PB bruseranvendelse s) er (v+ Er // PB reservat, servo s) er (t+ Er // PB dessertere + bas) ere eV // PB behovbaseret tn) er V // PB partnerskab all) er (g er // PB allergisk j) er (n+ Er // jern @@ -1889,7 +2060,7 @@ report) er (+ V // PN not a suffix _kvart) er 'er // PB kvarter, kvarterarrest _karakt) er 'er // PB karakter mort) er 'er // PB morterild -_karakt) er er // PB topkarakter +karakt) er er // PB topkarakter _klav) er 'er // PB stressed _kaval) er 'er // PB stressed _tall) er (k 'Er // PB tallerken @@ -1900,12 +2071,15 @@ _perif) er 'er // PB stressed univ) er Er // PB after a syllable - skoleunivers flatt) er (ende 'er // PB _rivi) er (a 'er // PB stressed + pass) er (sed 'er // PB passersedlen n) er (_ V // PB italiener up) er (C V // PB superfølsom @d) er (C V // PB hæderlig - TOO BROAD? - somm) er (C V // PB sommerhilsen + Amm) er (C V // PB sommerhilsen, tømmerflåde + komm) er (ciel er // PB amm) er (C V // PB hammersej &nf) er (@ @ // PB konference + &nf) er (er@ @r // PB konferere // not a -erne suffix _mod) erne (++ 'ern@ @@ -1914,6 +2088,7 @@ _perif) er 'er // PB stressed cist) erne (+ ern@ fascist) erne (+ Vn@ // exception to "&cist) erne" _kas) erne (+ 'ern@ + _kas) erner (+ 'ernV kas) erne (+ ern@ _lant) erne (+ 'ern@ lant) erne (+ ern@ @@ -1928,10 +2103,14 @@ fascist) erne (+ Vn@ // exception to "&cist) erne" // Exceptions to the suffix rules // Words ending with -ere - stressed e - around 1.600 words in list file - &) ere ($p_alt++ ''e:V // PB stressed - manipulere, protestere - &) er ($p_alt++ ''er // PB stressed - repeter - &) er (_$p_alt++ ''er // PB stressed - repeter - &) er (en$p_alt++ ''er // PB stressed - premieren + @) ere (_$p_alt++ ''e:V // PB stressed - manipulere, protestere (not parfum'ereklame) + @) ere (s_$p_alt++ ''e:V // PB stressed - pensioneres + @) ere (n_$p_alt++ ''e:V // PB stressed - karrieren + @) er ($p_alt++ ''er // PB stressed - repeter + @) er (e$p_alt+++ ''er // PB stressed - vurdere + @) er (_$p_alt++ ''er // PB stressed - repeter + @) er (en$p_alt++ ''er // PB stressed - premieren + &ik) er (_$p_alt++ =V // PB stressed - politiker // exceptions fing) er (en VR // fingeren - clsashes with 'fing'ere' _barb) er 'er // PB @@ -1961,7 +2140,7 @@ diskontinu) ert 'ert introv) ert 'Ert konc) ert 'Ert kontinu) ert 'ert - kuv) ert 'Ert + kuv) ert (++ 'Ert reform) ert 'ert reserv) ert 'ert @@ -1975,11 +2154,17 @@ reserv) ert 'ert desp) er (at 3R // PB desperat alt) eret @r3D // PB d) er (fra er // PB derfra - d) er (et er // PB vurderet - v) er (C+ Er // PB vers, verden + urd) er (et er // PB vurderet + udd) er V // PB mudderet + v) er (C+++ Er // PB vers, verden, kontroversiel + ov) er (+++ V // PB overbevisende, sover, ovenover, overfald +_kontrov) er (s 'Er // PB kontrovers yv) er (+ V // PB flyver + flyv) er (ute 3r // PB flyverute øv) er (++ V // PB øverst, røver perv) er (s 'er // PB stressed e - pervers + &t) er (C V // PB teatervidenskab + t) er (ror er // PB antiterrorgruppe Cav) er (+ V // PB laver, saver lev) er (C+ V // levertran led) er (@ V // lederkursus @@ -1990,8 +2175,8 @@ reserv) ert 'ert @st) er (ie 'er // PB ministeriet _sk) er (_ er // PB sker _s) er (_ er // PB ser - _h) er (++ er // PB her - h) erre (+ ER@ // PB herre + _h) er (_ er // PB her + h) er (li+ Er // PB herlig hv) er (+ er // PB hver enhv) er 'er // PB stressed fork) er (t+ er // PB forkert @@ -2002,10 +2187,10 @@ reserv) ert 'ert f) er (ni Er // PB fernis _fall) er (+ 'er // PB falleret _kass) er (er 'er // PB kasserer - _inf) er (no 'Er // PB inferno - st) er (et r // PB orkesteret + inf) er (no 'Er // PB inferno +// st) er (et r // PB orkesteret tt) er (C V // PB lattermild - _int) er (n+ 'Er // PB stressed + _int) er (n_++ 'Er // PB stressed int) er (nat V // PB international int) er (net V // PB t) er (min Er // PB terminal @@ -2014,8 +2199,6 @@ reserv) ert 'ert t) er (r E // PB terror _) er (C %er // PB er + consonant: stress on next syllable - er'hverv _) er (go er // PB not stress on next in "ergo..." - ov) er (+ V // PB overbevisende, sover - tatov) er er // PB tatovering am) er (ika_ 'er // PB Amerika _røv) er (i Vr' // PB røveri - stressed i røv) er (i Vr // PB togrøveri @@ -2041,7 +2224,7 @@ L06L06) er V // PB klipper _l) er (_++ er // PB ler v) er (r_ er // PB levere man) er (_ 'er // PB hundemaner -narkoman) er V // PB + oman) er (+ V // PB narkomaner, romaner rman) er (_ V // PB formaner th) er_ V // Luther gt) er V // PB agter @@ -2063,7 +2246,7 @@ narkoman) er V // PB .group ed // PB verb suffix - ede (elskede - lovede) // not treated as a suffix any more - too many exceptions - &) ede (_ @D@ // PB elskede + @) ede (_ @D@ // PB elskede &r) ede (_ 3D@ // PB pikerede hov) ed @D // PB hoved @@ -2078,13 +2261,40 @@ narkoman) er V // PB _fr) ede (_+ ED@ // PB frede vr) ede (_+ ED@ // PB vrede ler) ede (_+ ED@ // PB fuglerede + elskovsr) ede ED@ // PB +rotter) ede (_+ ED@ // PB rotterede emb) ede (_+ eD@ // PB embede emb) ede (t_+ eD@ // PB embedet + tilb) ede eD@ // PB hundr) ed (+ @:D // PB hundred - rn) ed (e eD // PB dernede + dern) ed (e eD // PB dernede + hern) ed (e eD // PB dernede &k) ede (+ eD@ // PB dødkede - indl) ede eD@ // PB - afl) ede (_opmærk eD@ // PB aflede opmærksomheden +// PB compounds with "lede" + afl) ede (+ eD@ // PB aflede + bortl) ede (+ eD@ // PB indlede + forl) ede (+ eD@ // PB indlede + henl) ede (+ eD@ // PB henlede + livsl) ede (+ eD@ // PB indlede + indl) ede (+ eD@ // PB indlede + misl) ede (+ eD@ // PB indlede + opl) ede (+ eD@ // PB indlede + ret) ede (+ eD@ // PB indlede + udl) ede (+ eD@ // PB indlede + vejl) ede (+ eD@ // PB indlede + vildl) ede (+ eD@ // PB indlede + afl) eder (+ eDV // PB afleder + bortl) eder (+ eDV // PB indleder + forl) eder (+ eDV // PB indleder + henl) eder (+ eDV // PB henleder + livsl) eder (+ eDV // PB indleder + indl) eder (+ eDV // PB indleder + misl) eder (+ eDV // PB indleder + opl) eder (+ eDV // PB indleder + ret) eder (+ eDV // PB indleder + udl) eder (+ eDV // PB indleder + vejl) eder (+ eDV // PB indleder + vildl) eder (+ eDV // PB indleder .group et // PB verb suffix -et (har elsket - has loved) @@ -2102,17 +2312,22 @@ sang_du) et (_ 'Et // PB @du) et (_ 'Et // PB vindu) et (_ @D // PB jazzball) et Et // PB + viol) et Et // PB ultraviolet + omel) et Et // PB spinatomelet _sk) et et // PB sket pærel) et (+ et // PB pærelet _toil) et 'Et // PB toil) et Et // PB dyretoilet toil) ett Et // PB herretoilettet - one t spl) et (+ Et // PB skønhedsplet - geb) et (+ 'et // PB +guldpl) et Et // PB +sølvpl) et Et // PB + _geb) et (+ 'et // PB _ask) et 'et // PB asketisk s) et (_+ et // PB set it) et (_+ 'et // aktivitet _rak) et 'Et // PB raket + kar) et (++ 'Et // PB stressed _rak) ett 'Et // PB raketter _kad) et (+ 'Et // PB stressed _viol) et ''Et // PB stressed @@ -2154,6 +2369,7 @@ sædvaner) et (+ &#t // PB taler) et (+ &#t // PB mennesker) et (+ &#t // PB fisker) et (+ &#t // PB +færdigr) et (+ &#t // PB stemmer) et (+ &#t // PB arver) et (+ &#t // PB bygger) et (+ &#t // PB @@ -2167,6 +2383,7 @@ gryder) et (+ &#t // PB ændr) et (+ VD // PB r) ett (++ &#t // henrette, rettroende - only one t sr) et (++ &#t // PB rigsret +højester) et &#t // PB av) et (+ @D // havet, lavet - avoid [Au] tag) et @D amul) et 'Et // PB @@ -2179,12 +2396,15 @@ _alfab) et 'et // PB tib) et et // PB _bill) ett 'Et // PB stressed - only one t _kask) et 'et // PB stressed + _kask) ett 'et // PB stressed - only one t _bajon) et 'Et // PB stressed _bajon) ett 'Et // PB only one t _tabur) et (+ '&#t // PB bajon) et Et // PB udsl) et Et // PB udslet intern) et Et // PB + hårn) et Et // PB +fisken) et Et // PB // PB final -ette stressed e _bagu) ette 'Et @@ -2240,7 +2460,7 @@ _vinaigr) ette '&t@ ca) fé f'e // PB café a) f (asi f // PB afasi a) f (atisk f // PB afatisk - a) f (oris f // PB aforisme, aforistisk + a) f (or f // PB aforisme, aforistisk // PB one sylable plus "færdig" - stressed æ @) færdig f'Erdi // bluf'ærdig @@ -2293,12 +2513,16 @@ _vinaigr) ette '&t@ freud frWjd // PB Freud field fi:l/2d // PB françois frANs'wa // PB name + francesca fRanS'Esk& // PB + _) fbi Efbi'aj // PB + frankie fr&nki // PB name .group g g g gg (e g // lægge i) gg g // PB lediggang - gh g // PB ghetto, Ghana + gh (ana g // PB Ghana + gh (etto g // PB ghetto a) gg (res g // PB aggresiv - only one g ru) g // PB rug, rugmel fru) g (t g // PB @@ -2309,16 +2533,18 @@ _vinaigr) ette '&t@ a) g (ave 'g // PB agave _a) g (ar 'g // PB agar, agar-agar ser) gent 'sj&nt // PB sergent - gjorde gjo:3 // PB gjorde + gjorde gjo:V // PB gjorde ki) g k // PB kig, udkig ka) g (e @ // kage ba) g (e @ // bage ba) g (i || // PB bagi ba) g (in w // PB bagindisk + bra) g w // PB brag, bragende æble) grød grWD a) g (urk g' al) geriet Sj3r'i@d // PB Algeriet - al) gerier Sj'iV // PB Algeriet + al) gerier Sj'iV // PB algerier + al) gier S'ir // PB al) gerisk Sj'i:rsg g (iro S // PB guinea gin'e& // PB @@ -2330,6 +2556,8 @@ _vinaigr) ette '&t@ l) g (s j øl) g (e j // PB bølge, selvfølgelig A) g (n j // PB tegn, regne + pa) gn (on nj // PB kompagnon + pa) gn (i n' // PB kompagniskab mu) g (n g // PB mugne hu) g (ning g // PB halshugning si) gn (er N // PB signere @@ -2344,7 +2572,7 @@ _vinaigr) ette '&t@ e) g (enskab j // PB e) ge (r jV // PB eger, egern L08e) g j // PB steg, spegepølse - g (å++ g // PB præstegård + g (ård++ g // PB præstegård val) g (år j // PB L08e) g (t g // PB stegt æ) g (e j @@ -2354,31 +2582,37 @@ _vinaigr) ette '&t@ kvæ) g j // PB l) g (et_ j // PB valget l) g (C // PB bælgmørkt, bælgplante, forfulgt + g (ross g // PB ølgrossist ø) g j // PB deleted (_ g (le j // PB mægler, besegle gur) g (le // PB silent g g (lem g // PB glemt - g )led g // PB gled + _) g (led g // PB gled val) g (t // PB silent g - valgt sy) g // PB silent g -sygdom sa) g j // PB frisag vra) g w // PB skibsvrag spur) gte t@ // PB silent g - spurgte n) gæ gE - Co) g w // PB sprog, tog, toge +// PB general rule: consonant + o + g: [w] + Co) g w // PB tog, toge, noget +// o=>w exceptions pro) g g // PB program østro) gen g'en // PB vo) g (t g // PB bevogtning + vo) g (te g // PB bevogte surro) g (at g // PB to) g (a g // PB exception toga to) g (o g // PB exception Togo to) g (t g // PB exception togt - vo) g (te g // PB bevogte ro) g (an g // PB arrogance ro) g (es g // PB progesteron o) g (raf g // autograf - o) g (n u // PB g => u - vogn, sogn - r) g (_ w // kirurg + + r) g (_ w // kirurg, herberg + r) g (et_ w // herberget + r) gerne (_ wVn3 // PB herbergerne + r) gernes (_ wVn3s // PB herbergerne r) gen (_ @n // PB kirurgen r) gen (s_ @n // PB kirurgens ær) g w // PB bjærge @@ -2386,10 +2620,15 @@ _vinaigr) ette '&t@ u) g (e : su) g : // PB silent g - sugerør u) g (ene S // PB ugenert + gener (_ham Sen'er // PB try to solve "gener" = bother and "gener" = genes + gener (_hende Sen'er // PB + gener (_dem Sen'er // PB + gener (_deres Sen'er // PB u) g (enn g // PB ugennemskuelig - u) g (enL11 g // PB ugengældt, ugenkendelig + u) g (enL01 g // PB ugengældt, ugenkendelig u) g (l // silent g - uglegylp, smugler - ø) ge (+ :j@ // PB bøgetræ, øge + hertu) g // PB silent g + ø) ge (+++ :j@ // PB bøgetræ, øge, døgenigt mø) ge (len :je // PB møgelendig beha) g j // PB ubehag ø) g (n j @@ -2423,22 +2662,31 @@ _vinaigr) ette '&t@ jer) g (A w jer) g (C w bo) g (st k - ø) g (t g + A) g (t_ g // PB søgt, bagt, frugt + g (te_ g // PB søgte, bagte + l) g (te_ // PB silent g - fulgte + vå) g (n u å) g (e u // PB tåge, Åge, våge go) g = // stress on previous syllable, no g - pædagog lo) g = // stress on previous syllable, no g - psykolog + o) g (ram g // PB hologram, monogram gerald dZEr3l/2 // PB gonzales _^_ES // PB _) gin dZen // PB + _) ginger dZendZV // PB ginger ale _) guy (_ ga:j // PB Guy - name geronimo dZer'VnimO:u // PB grady grEjdi // PB name graham (_ _^_en // PB name grahams (_ _^_en // PB name - g (igolo dZ // PB + guthrie gVTRi // PB name + g (igolo dZ // PB gouda gAwd& // PB cheese guirland girl'&nd // PB guirlander + _) grande (_ grand3 // PB italian + gele sjel'e // PB gele + gelé sjel'e // PB gelé // PB final -gi in da_list - stressed i &) gi ($p_alt g'i // pædagogi @@ -2458,7 +2706,6 @@ _vinaigr) ette '&t@ ør) g (s // PB silent g - spørgsmål å) g u // PB åg, åge g (røn g // PN blågrøn - ni) gger gV // PB nigger ne) g (_ j // PB neg, juleneg sne) g j // PB sneget ve) g (en j // PB undvegen @@ -2487,6 +2734,7 @@ _vinaigr) ette '&t@ _) gerard SeR'A: // PB name giuseppe dZis'Ep@ // PB name _) giants dZaj&nts // PB name + gloucester glVstV // PM .group ge @@ -2512,6 +2760,7 @@ indran) ge (re S'e _korte) ge =Se korte) ge Se _lo) ge (_ Se // loge + _lo) ger (_ SV // loger lo) ge (n Se // PB logen halo) ge (n g'e // PB stressed lo) ge (mø Se // PB logemøde @@ -2541,7 +2790,8 @@ _korte) ge =Se hv v A) h (K t) h (en h - w) h (isky // PB whisky - no h + w) h (isky // PB whisky - silent h + spag) h (etti // PB silent h hotline hVtla:jn // PB heat hi:t // PB highhat hA:jh&d // PB @@ -2554,198 +2804,192 @@ _korte) ge =Se hawk hV:k // PB Black Hawk hugh hju: // PB name hudson hVdsVn // PB name + holly hVli // Pb hollywood + heim haIm // PB part of a German name - alzheimerpatient .group i - i i // PB i: => i - made a lot of rules redundant - _) i (n e // PB instinkt, ineffektiv, - i (ni i // PB initiativ - ig (_ i // silent g - dejlig, rig - sn) ig ij // PB snigangreb - fatt) ig i // PB fattigdom - udk) ig ig // PB - r) i (gg e // PB rigge - _l) ig (_stille ek // PB problem: lig = "dead body" and lig = the verb "lie" - _l) ig (_pænt ek // PB - _l) ig (_ordentligt ek // PB - _l) ig (_godt ek // PB - _l) ig (_roligt ek // PB - l) ight ajt // PB - pav) ill (o ilj // PB pavillon - færd) ig i // PB silent g - hurt) ig i // PB silent g - hipp) ie i // PB silent e - ig (hed i // PB vittighed - _k) ig (_ ig // PB kig - _t) ig (_ eg // PB tig - t) igg eg // PB tigge - t) ig (e i // PB fattige, stige - l) ig i // PB virkelig - l) ig (ram ig // PB milligram - l) ig (a ig // PB liga - l) ig (i ig // PB religiøs - pl) ig (t ek // PB pligt - ig (s i // PB silent g -rigsret -samtid) ig i // PB silent g - p) ie (destal i // PB silent e -mussol) i (ni 'i // PB - _præc) i (s 'i // PB stressed - _konc) i (s 'i // PB stressed - _av) i (s 'i // PB stressed - _grav) i (d 'i // PB stressed - _test) i (kel 'i // PM stressed - _test) i (kl 'i // PM plur. stressed -_molev) i (t 'i // PB stressed - molevitten -_marskand) i (s 'i // PB stressed - marskandiser -_princ) i (p 'i // PB stressed - _cyl) i (nd 'e // PB cylinder - stressed - fil) i (st 'i // PB filister - _el) i (te ''i // PB stressed - elitesoldat - _salv) ie 'i: // PB stressed - _ol) i (ven 'i // PB stressed -_algor) i (tme 'i // PB stressed - _utop) i 'i // PB stressed - _rem) i (s 'i // PB stressed - remis, remisse - rem) is (_ 'i // PB silent s (chess) - l) igh (ter aj // PB -luksusl) i (ner aj // PB - _mess) i (as 'i // PB - _mart) i (ni 'i // PB cocktail - _alb) i (no 'i // PB stressed - n) ij (megen aj // PB Nijmegen - v) ie (tnam jE // PB - v) ie (t_cong jE // PB - n) i (gg+ e // PB nigger - n) i (p e // PB nip, nippe - n) i (ss e // PB nisse - skr) i (pt 'e? // PB stressed - manuskript - r) i (ft e // PB skrift, rift, drift - v) i (ft e // PB vifte - d) i (sk e // PB købmandsdisk - d) i (skrimi i // PB diskriminere - jød) i (sk i // PB - d) i (skett i // PB diskette - d) i (ms e // PB - d) i (sku i // PB diskutere - d) i (skret i // PB - kr) i (cket e // PB - f) i (sk e // PB - konf) i (skere i // PB - gr) i (m e // PB - pr) i (n e // prins, princip, print - l) i (lla e // PB - kv) i (st e // PB - sv) i (mm e // PB svimmel - sv) i (ml e // PB svimle + i i -// PB stress on previous syllable - around 400 words in da_list -// -ig words with the prefix be- are handled by group b - the be- rule. -// To keep the list short a large number of u- words were weeded out, -// therefore u- is removed in group u before the word is translated -// since the u+list words keep the stress. -// Any other syllable before the word reverts to normal stress - &) ig ($p_alt++ =i // velærværdig, gudvelbehagelig +// PB general rule: initial in- : [e] + _) i (n e // PB instinkt, ineffektiv + i (ns e // PB bladinsekt, musikinstrument - ige i:@ // PB deleted [(_] - pige, pigen, stige, sige - iger i:V // PB piger - p) igen i:3n // PB pigen -gensid) ig ij // PB maybe "j" should be removed - n) ige (ri ige // PB nigerianer - _n) iger (_ igV // PB Niger (river) -privil) ige ig'e // PB priviligeret - n) igeria ig'eRi& // PB - dil) igen (ce iS'AN // PB diligence - kr) igs is - ed) ige (r ig'e // PB redigere - rr) ige (r ig'e // PB korrigere - nav) ige (r ig'e // PB navigere - dir) ige (r ig'e // PB dirigere -intell) ige (n ig'e // PB intelligent - fr) igea (r igi // PB frigear - _) ige (n ig'E // PB igen - rol) ige iE // PB rolige, beroligende - værd) ig i // PB silent g - værd) ig (en 'ig // PB værdigenstand - _) idel (_ i:D@l // PB idel - israel isrA:l // PB Israel - israeler isrA'elV // PB israelsk - israelsk isrA'elsk // PB - irving WveN // PB name - sen) ior jV // PB - iew j'u - i (nL11 e //PB blinke, sinke, vinge, sving - f) i (n i // PB finkulturel - f) i (nd e // PB - f) ind (el ind // PB findele - f) ind (els en // PB opfindelse - f) i (ndelø e // PB findweløne - f) i (nke e // PB bird (finch) - f) i (nde e // PB - v) i (nkæld i // PB vinkælder - v) i (ngård i // PB vingård - v) i (p e // PB vippe - s) i (d e // PB sidde - s) i (ds i // PB sidst - t) i (nk e // PB stinke - _t) i (n e // PB tinfolie - _inst) i (nkt 'e // PB - f) i (ng e // PB finger - f) i (p e // PB befippet, fipskæg - r) i (ng e // PB ring - labyr) i (nt 'e // PB stressed - gr) i (n i // PB grine - dr) i (l e // PB drille - br) i (lle e // PB briller - vr) i (m e // PB vrimle - i (dt e // PB midt, lidt - sl) i (d i // PB slide, slidt - _sol) i (d 'i // PB solid - b) i (dt i // PB bidt + _) i (ni i // PB initiativ + i (nu i // PB inuit + +// PB general rule: [e] before double consonant + L03) i (L01%+ e // PB ligge, dikke + r) i (L01% e // PB drikke, prikke + L08) i (ll e // PB skille, stille + sp) i (l e // PB lotterispil + L09) i (L03%a+ e // PB middag + L02) i (pp e // PB svippe, vippe + L09) i (pp e // PB nippe, knippe, knippel, snippe + s) i (pp e // PB sippe + + v) i (ss e // PB visse + v) i (sh e // PB uvished + n) i (sse e // PB + p) i (sse e // PB + i (kke+ e // PB ikke, sikkerhed, sikkert + L06) i (lle e // PB billede, piller + b) i (lle_+ i // PB insect + b) i (ller_+ i // PB insect + b) i (llen_+ i // PB insect + b) i (llet+ i // PB + traf) i (k i // PB juletrafikken + +// general rule: [e] between l and nt + l) i (nt e // PB flint, klint, splint + +// general rule: [e] between h and m + h) i (m e // PB himlen + +// general rule: [e] before mp + i (mp e // PB imperium, impuls + +// PB general rule (exception): [e] before velars + r) i (ng e // ring, sikring + fr) i (g i // PB frigav, frigid, frigøre + l) i (L01 e // flink, link, blink + hell) ig ij // PB helligånd + r) ig (C i // PB rigdom - silent g +// f) i (L01 e // finke, finger + f) i (kCL04 i // fiktiv + f) i (kCe e // PB fikse + _f) i (k_ e // PB + s) i (nk++ e // sinke, sinkadus + L07) i (fte e // PB stifte, stifter, vifte TEST + kv) i (L07++ i // PB kvit, kvittere, kvik, kvikt +// k) i (l++ i // PB kilten + v) i (ste+ i // PB afviste, viste + sk) i (Ct i // PB skift, beskidt + k) i (ste+ i // PB + v) i (L01C++ e // vikle, forvikle, afvikle, svigt + t) i (L01+ e // ting, folketing, stik, joystick + v) i (L01 e // PB vinge + v) i (L01a i // PB vikar + t) ig (+ i // PB stig, stige, artig + _t) i (g_+ e // PB + t) i (gg+ e // PB tigge, tigger + pl) i (L01+ e // PB pligt + s) i (L01L07 e // PB sigte, sigt, udsigt +// ds) i (L01L07 i // PB trodsig, pudsig +// l) i (ng e // PB udvikling, forvikling, lingvist + l) ig (C ij // PB lighus + l) ig (i ig // PB relegiøs +// &t) ig i // PB vanvittig, mægtig, hurtig +// n) i (ng e // PB mening + _n) i (k e // PB nikke, nik + n) i (kL04 i // PB nikotin + + k) ikset (_ egs@D // PB + f) i (nkul i // PB finkulturel + +// PB miscellaneous + sv) i (L09C e // PB svimle, svimmel, svindle, svind, sving + L02) i (p e // PB vip, svip, fipskæg + L02) i (L06e i // PB Bibelen, pibe + L02) i (L06re i // PB fibre + C) i (mL06 e // PB simpel, vimpel + p) ibe (tøj iw // PB + b) i (p+ i // PB bipper, biperson + v) i (b+ i // PB vibrere + C) i (ms e // PB fims, gesims, vimse, bims, dims +himstreg) i (ms 'e // PB stressed + sk) i (n e // PB skin, skinne + Cr) i (mC e // PB vrimle, strimle + s) i (dde e // PB sidde + bes) i (dde i // PB våbenbesiddelse + Cr) i (ll e // PB drille, brille + kr) i (ll i // PB kriller + jun) i (or j // PB b) i (tter e // PB - sm) i (dt i // PB - sk) i (dt i // PB skidt - sk) i (L09 e // PB skimmel, solskin, skind - i (mp e // PB imponerende - mask) i (n 'i // PB stressed - maskinskrive - sk) i (nd+ e // PB - par) i (s 'i // PB - h) i (d i // PB hidtil - b) i (lled e // PB billede - kr) i (dt i // PB skridt, kridt - v) i (dt i // PB vidt - v) i (sse e // PB visse, forvisse - v) i (stnok e // PB - forv) i (s i // PB forvise - l) i (ste e // PB liste -special) i (st i // PB - i (nd e // PB ind - v) i (ndrik // PB vindrikker - gev) i (nst e // PB - _) i (nt e // PB intakt - p) i (nt i // PB forpint - f) i (nt_ i // PB - h) i (m e // PB himmel - am) i (go 'i // PB amigo - magas) i 'i // PB magasin - _kap) i (tel 'i // PB stressed - asp) i (c 'i // PB aspic - only this word -_krokod) i (ll 'i // PB stressed - r) idge idZ // PB Coleridge, bridge + b) i (tre e // PB + +// PB [e] after gr - exception + gr) i (m e // PB grimrian + C) i (ng e // PB dressing, ising, ping + gr) i (mL11 i: // PB grime, grimasse + +// PB general rule: [e] before nd/nk/ng + i (nd e // PB ind, finde, vinde + C) i (nk e // PB spinkel, vinkel, forsinke + + v) i (ndrik+ // PB vindrikker + v) i (nkæld+ i // PB vinkælder + v) i (ngård+ i // PB vingård + f) ind (el ind // PB findele + ind (else+ en // PB opfindelse, forbindelse + f) ind (yrk ind // PB findyrke + _vest) i (ndi 'e // PB vestindisk + +// PB general rule: [e] after sp/st/sk/r before k/l + st) i (k e // PB stik + sk) i (l++ e // PB skildpadde, skilt + sk) i (løb++ i // PB skiløber + sk) i (lift+ i // PB + L08) i (ds e // PB spids + L08l) i (L07 e // PB splitte + t) i (d+ i // PB livstidsdom + r) i (f e // PB skrifte, rift, drift + sher) i (f 'i // PB sheriffen + +// greneral rule: [e] between r and c/k - [i] followerd by front vowel + r) i (L10 e // PB drik, skiderik + r) i (L10L04 i // PB frikendt, briket + r) i (L10CL04 i // PB friktion + fr) i (kvarter i // PB + +// general rule: [e] between consonant and st/sp/sk + l) i (L08 e // PB list + r) i (L08 e // PB riste, frisk, brist, vrist, Kristus, dristig + f) i (L08+ e // PB fisketur + v) i (sk+ e // PB hviske + m) i (ste e // PB miste + m) istelten istElten // PB + bil) i (s i // PB spritbilist + +// PB "vist" exceptions +ganske_v) i (st_ e // PB + jov) i (st e // PB + jav) i (st e // PB + L07v) i (st e // PB kvist, tvist + _v) i (st_ e // PB "vist" = probably/might/maybe - problem with verb "vise/vist" + _v) i (st_sig i // PB verb + +// PB general rule: [e] after consonant + l followed by p + Cl) i (p e // PB slip, slippe, klip, glippe, glip + + _l) i (dt_ e // PB problem with verb "lide" + _l) i (dt_skade i // PB + +// PB general rule: d/l + i + k = [e] + L03) i (k e // PB blik, øjeblik, dik + L03) i (kL04 i // PB helikopter + L03) i (L10a i // PB handikap + L03) i (ke i // PB klike + L06) i (k e // PB pik, vatpik + L06) i (ke i // PB pikikerede, piké + d) i (kt i // PB diktat, diktatur, diktum + l) i (kv+ i // PB likvid // PB words with final -id in da_list - stressed i &) id ($p_alt ''iD // hybrid -// PB words with final -isk: stress on previous syllable (1.250 words) +// PB words with final -isk: stress on previous syllable (1.250 words in da_list) &) isk (_$p_alt =isg // canadisk &) isk (e$p_alt =isg // canadiske &) isk (t$p_alt =isg // canadiskt -// PB country names with final -ien - stress on previous syllable +// PB country names in da_list with final -ien - stress on previous syllable &) ien ($p_alt =i@n // it'alien &) ien (sk$p_alt i'En // itali'ensk &) ien (er$p_alt i'En // itali'ener +austral) ier =jV // PB // PB words with final -ik in da_list - stressed i - &) ik ($p_alt ''ik // romantik + &) ik ($p_alt+ ''ik // romantik &) ik (er$p_alt =ik // romantiker &) ik (alsk$p_alt ik' // musikalsk &r) ik ($p_alt ''ek // fabrik @@ -2759,10 +3003,27 @@ _krokod) i (ll 'i // PB stressed // PB words with final -isme in da_list (348) - stressed i &) isme ($p_alt 'ism@ // kommunisme, egoisme + &) isme (r$p_alt 'ismV // organismer // PB words with final -inde in da_list - stressed i &) inde ($p_alt 'en@ // malerinde +// PB put stress on the syllable before final 'ium' - words in da_list + &) ium ($p_alt =iOm // territorium + &r) i (um$p_alt ==i + &r) i (et$p_alt 'i // infirmeriet + +// PB put stress on the syllable before final 'ie' - words in da_list + &) ie ($p_alt =i3 // valkyrie + &) ie (liv$p_alt =i@ // familieliv + &s) ie ($p_alt =j3 // gymnasiereform + &) ie (l$p_alt i'E // materiel + &) ie (re$p_alt =i''e // injuriere, injurierende + +// PB stressed i in words with final -mi in da_list + &m) i ($p_alt ''i // økonomi + &m) i (sk$p_alt =i // stress on the previous syllable - økonomisk + // PB French words with final -ier atel) ier j'e bank) ier j'e @@ -2785,195 +3046,116 @@ particul) ier j'e rent) ier j'e spal) ier j'e - L10am) i (lla 'i // PB Camilla, Kamilla - _alib) i 'i // PB alibi - _fob) i 'i // PB fobi -_konfl) i (kt 'i // PB stressed - _pap) i (r 'i // PB stressed - _tap) i (r 'i // PB stressed - _vels) i (gn 'i // PB stressed - _part) i (sk 'i // PB stressed - _just) i (ts 'i // PB - _kul) i (ss 'i // PB kulisse - _abs) i (nt 'e // PB stressed - _musl) i (m 'i // PB stressed - i (nn e -// i (mK e - l) i (m i // PB lim +// various exceptions + _) idel (_ i:D@l // PB idel + israel isrA:l // PB Israel + israeler isrA'elV // PB israelsk + israelsk isrA'elsk // PB + irving WveN // PB name + smok) i (ng e // PB + sen) ior jV // PB + iew j'u + _t) i (n e // PB tinfolie + b) ingo engo // PB + _m) id (t e // PB midt - silent d + i (mpo e // PB imponerende +special) i (st i // PB stålspecialist + gev) i (nst e // PB + f) i (nte_ e // PB + r) idge idZ // PB Coleridge, bridge + r) isike esike // PB risikere + r) isiko isiko // PB risiko gl) i (m e // PB glimt, glimrende - i (kK e // PB ikke, pik -_krucif) i (ks 'i // PB stressed - d) i (kt i // PB diktatur - f) i (kt i // PB fiktiv - lin) i (k i // PB klinik - @t) i (k i // PB ferieromantik - sk) i (k i // PB skikkelse - _art) i (k 'i // PB stressed artikkel - m) i (k i // PB mikroskop -gudhjælpem) ig aj // PB + klin) i (k i // PB fødeklinik - unstressed after syllable + @t) i (k+ i // PB ferieromantik, finanspolitik + st) i (k+ e // PB bestikke + plast) i (L10 i // PB plastik/c +gudhjælpem) ig =aj // PB i (owa aj // PB US state t) i (ming aj // PB n) i (tten e // PB the number 19 - problem with noun "nitte" - g) i (k+ i // PB begik - i (x e // PB fixe - m) i (ks e // PB mikse + kl) i (k_ e // PB museklik + f) i (x e // PB fixe + L09) i (ks e // PB mikse, niks p) i (lr e // PB pilrådden - it) i (k i // PB politik - _g) i (k_ i // PB - i (k@ i // PB antikvar - v) i (k i // PB kvik - v) i (kl e // PB vikle - k) i (kC+ i // PB kiks, kikkert - k) ikset (_ egs@D // PB - l) i (kv i // PB likvid - fl) i (d i // PB flid - fl) i (n e // PB flint l) i (ns e // PB linse - fl) ig i // PB høflig - r) ikk (+ ek // PB skiderikker - t) i (me i: // PB time + l) i (lla e // PB t) ime (out ajm // PB - s) i (dA+ i: // PB siden - sp) i (ds e // PB spids - sp) i (dsteg i // PB spidstege s) i (d_ e // PB sid - s) i (dd+ e: // PB sidde - bes) i (dd i // PB besidde s) i (lk e // PB silke - s) i (gt e // PB sigte, ansigt sl) i (k e // PB slik impoten empotEn // PB impotens - st) i (f e // PB stift - st) i (k e // PB stik - @ist) i (k_ i // PB journalistik - spl) i (t e // PB splitte - d) i (gt e // PB heltedigt - yd) ig ij // PB tvetydigt, lydig -behænd) ig i // PB silent g - sned) ig ij // PB silent g - ld) ig i // PB heldig - l) i (p e // PB slippe - r) i (k e // PB drik, skiderik -_distr) i (kt 'e // PB stressed - fr) i (k i // PB frikendt - br) i (ke i // PB briket - _l) i (dt e // PB lidt - bl) i (dt i // PB - L08) i (l_ e // PB spil, skil - st) i (l_ i // PB stil - adjective + en_st) i (l_ i // PB stil - noun + best) i (l e // PB bestille st) i (l_ham e // PB verb - stil ham om st) i (l_op_ e // PB verb -forest) i (l e // PB forestille ant) i i // PB antilope - best) i (l e // PB - L08) i (lt e // PB skilt, adskilt - spl) i (n e // PB splint - L08) i (ll e // PB spille - problem with the verb (ud)spile/(ud)spil[sbil] - L08) i (ld i // PB spilde - sk) i (ld e // PB skildpadde, skilderhus - L08) i (le i: // PB spile - L08) i (ls e // PB skilsmisse - sk) i (ldr e // PB skildring - m) i (dda e // PB middag - m) i (ste e // PB miste - p) i (nd e // PB pind - k) i (nd+ e // PB kind - ryk) i (nd 'e // PB stressed + sp) i (ld i // PB spilde + L08) i (le++ i: // PB spile, stile k) i (mse e // PB kimse - L08) i (L06 i // PB skib - tv) i (v i // PB tvivl - v) i (gt e // PB vigtig - ev) ig i // PB evigt, evindelig v) i (l_+ e // PB vil hv) i (l+ i // PB hvil hv) i (lk+ e // PB hvilken -// v) i (nd e // PB vinde v) ind (rue ind // PB v) i (nter e // PB v) i (ntre e // PB v) id (st e // PB vidst - e and silent d v) i (st_ikke e // PB t) i (l e // PB til - vent) i (l i // PB - st) i (le i // PB stile + st) i (lfuld i // PB +// PB stil = "style" not the verb 'stil' = "put" +_min_st) i (l_ i // PB +_din_st) i (l_ i // PB +_jeres_st) i (l_ i // PB +_deres_st) i (l_ i // PB +_hans_st) i (l_ i // PB +_hendes_st) i (l_ i // PB + vent) i (l i // PB slangeventil + st) i (le i: // PB stile ju) i (ce // PB juice - skip the i soft) i (ce aj // PB softice - fr) i (L08 e // PB friste - fl) i (nk e // PB flink - s) i (kC e // PB sikker, sikre + s) i (kC e // PB sikre p) is (_ es // PB pis - p) iss es // PB pisse L08) is (+ is // PB spis - _mag) i (_ 'i // PB magi - stressed i - _mag) i (en_ 'i // PB magien - stressed i -_polit) i 'i // PB politi, politik - stressed i - _civ) i (l 'i // PB stressed - civil - all) igevel 'i@vEl // PB stressed i - alligevel - _band) i (t 'i // PB bandit - _vedl) ige 'i@ // PB vedligeholde -dispon) i (bel 'i // PB stressed - eksig) i (bel 'i // PB stressed - fleks) i (bel 'i // PB stressed - fung) i (bel 'i // PB stressed - horr) i (bel 'i // PB stressed -irrevers) i (bel 'i // PB stressed -kompat) i (bel 'i // PB stressed -konvert) i (bel 'i // PB stressed - pen) i (bel 'i // PB stressed -perfekt) i (bel 'i // PB stressed - plaus) i (bel 'i // PB stressed -revers) i (bel 'i // PB stressed - sens) i (bel 'i // PB stressed -suggest) i (bel 'i // PB stressed - vis) i (bel 'i // PB stressed -_pyram) i (d 'i // PB pyramide - _medl) i (denhed 'i // PB medlidenhed - stressed - _omkr) i (ng 'e // PB stressed e in 'omkring' - kn) i (p e? // PB knippel - kn) i (v i // PB kniv - _min) i (ster_ 'i // PB minister - stressed i - _mag) i (ster 'i // PB magister- stressed - _re) i (ster 'i // PB register - stressed ii - r) i (st e // PB brist, rist -ganske_v) i (st_ e // PB - tr) i (st i // PB -infanter) i (st i // PB + l) igh (ter aj // PB +luksusl) i (ner aj // PB + n) ij (megen aj // PB Nijmegen + v) ie (tnam jE // PB + v) ie (t_cong jE // PB + hipp) ie i // PB silent e + p) ie (destal i // PB silent e + pav) ill (o ilj // PB pavillon + d) i (sk e // PB købmandsdisk + d) i (skva i // PB diskvalificere + d) i (skrimi i // PB diskriminere + d) i (skett i // PB diskette + d) i (sko i // PB diskotek, diskodans + tw) i (st e // PB + d) i (sku i // PB diskutere + d) i (skret i // PB + kr) i (cket e // PB + d) i (ngo e // PB + konf) i (skere i // PB + pr) i (n e // prins, princip, print d) ie (sel i // PB dieselolie k) io (sk jV // PB kiosk - tr) i (ck e // PB trick - r) i (bs e // PB -_franc) i (sco 'i // PB suz) ie i // PB name + ann) ie i // PB name h) igh aj // PB high school cl) ive ajv // PB name gr) imes ajms // PB name + lou) is i // PB + lou) ie i // PB long_) island ajl@nd // PB amnesty_) international intVn'&Son&l // PB v) irtual (_reality '3tSu-@l/2 // PB -// PB put stress on the syllable before final 'ium' - words in da_list - &) ium ($p_alt =iOm // territorium - &r) i (um$p_alt ==i - &r) i (et$p_alt 'i // infirmeriet - -// PB put stress on the syllable before final 'ie' - words in da_list - &) ie ($p_alt =i3 // valkyrie - &) ie (liv$p_alt =i@ // familieliv - &s) ie ($p_alt =j3 // gymnasiereform - &) ie (l$p_alt i'E // materiel - -// PB stressed i in words with final -mi in da_list - &m) i ($p_alt ''i // økonomi - &m) i (sk$p_alt =i // stress on the previous syllable - økonomisk - // PB stressed i in words with final -il in da_list - &) il ($p_alt 'il // pædofil + &) il ($p_alt++ 'il // pædofil + +// PB final -iker in da_list: stressed previous syllable + &) iker ($p_alt+ =ikV // akademiker, teoretiker - r) i (si e // PB risikere - r) i (siko i // PB risiko - r) i (sika i // PB risikaberl - p) i (ll e // PB pille - lat) i (nis i // PB latinisme k) i (et 'i // PB Tyrkiet kas) i (no 'i // PB stressed prosod) i 'i // PB prosodi, prosodien @@ -2982,6 +3164,7 @@ _parod) i 'i // PB parodi _perfid) i 'i // PB perfidi _rapsod) i 'i // PB rapsodi _værd) i 'i // PB + værd) ig i // PB _abbed) i 'i // PB _ortopæd) i 'i // PB ortopædi swah) i (li 'i // PB stressed i @@ -3015,7 +3198,6 @@ _isotop) i 'i _kop) i 'i _litotyp) i 'i _maskep) i 'i -//mikroskop) i 'i _misantrop) i 'i _monotyp) i 'i _otoskop) i 'i @@ -3029,17 +3211,16 @@ _terap) i 'i // PB stressed i in words with final -si in da_list &s) i ($p_alt 'i // fantasi, afasi - v) i (sk e // PB viskelæder +// v) i (sk e // PB viskelæder + _t) i (ske_ e // PB hviske og tiske v) i (sne e // PB l) i (e j r) i (gti e // PB rigtigt - r) i (ca e // PB Fredericia - l) ig (g+ e // PB ligge - only one g offentl) ig i // PB s) i (e j t) i (øs s) i (on j - s) i (a j // PB passiar + s) i (a j' // PB passiar c) i (a j // PB specialitet des) ign ain s) ign (al in // PB lyssignal @@ -3049,6 +3230,175 @@ offentl) ig i // PB _) institution enstituS'on // PB institution enstituSon // PB +// PB stressed i +mussol) i (ni 'i // PB + _præc) i (s 'i // PB stressed + _konc) i (s 'i // PB stressed + _av) i (s 'i // PB stressed +_krucif) i (ks 'i // PB stressed + _grav) i (d 'i // PB stressed + _test) i (kel 'i // PM stressed + _test) i (kl 'i // PM plur. stressed +_molev) i (t 'i // PB stressed - molevitten +_marskand) i (s 'i // PB stressed - marskandiser +_princ) i (p 'i // PB stressed + _cyl) i (nd 'e // PB cylinder - stressed + fil) i (st 'i // PB filister + _el) i (te ''i // PB stressed - elitesoldat + _salv) ie 'i: // PB stressed + _ol) i (ven 'i // PB stressed +_algor) i (tme 'i // PB stressed + _utop) i 'i // PB stressed + mar) i (a 'i // PB stressed + dom) ing (o 'eng // PB stressed Santa Domingo + _rem) i (s 'i // PB stressed - remis, remise +_ekspert) i (se ''i // PB +_entrepr) i (se 'i // PB + _mark) i (se 'i // PB +_muffed) i (se 'i // PB + _repr) i (se 'i // PB + rem) is (_ 'i // PB silent s (chess) + _mess) i (as 'i // PB + _mart) i (ni 'i // PB cocktail + _alb) i (no 'i // PB stressed + &skr) i (pt 'e? // PB stressed - manuskript + L10am) i (lla 'i // PB Camilla, Kamilla + _alib) i 'i // PB alibi + _fob) i 'i // PB fobi +_konfl) i (kt 'i // PB stressed + _pap) i (r 'i // PB stressed + _tap) i (r 'i // PB stressed + _vels) i (gn 'i // PB stressed + _part) i (sk 'i // PB stressed + tah) i (ti 'i // PB + _just) i (ts 'i // PB + _kul) i (ss 'i // PB kulisse + _abs) i (nt 'e // PB stressed + _musl) i (m 'i // PB stressed + _mag) i (_ 'i // PB magi - stressed i + _mag) i (en_ 'i // PB magien - stressed i +_polit) i 'i // PB politi, politik - stressed i + _civ) i (l 'i // PB stressed - civil + all) igevel 'i@vEl // PB stressed i - alligevel + _band) i (t 'i // PB bandit + _vedl) ige 'i@ // PB vedligeholde +dispon) i (bel 'i // PB stressed + eksig) i (bel 'i // PB stressed + fleks) i (bel 'i // PB stressed + fung) i (bel 'i // PB stressed + horr) i (bel 'i // PB stressed +irrevers) i (bel 'i // PB stressed +kompat) i (bel 'i // PB stressed + _inst) i (nkt 'e // PB +konvert) i (bel 'i // PB stressed + pen) i (bel 'i // PB stressed +perfekt) i (bel 'i // PB stressed + plaus) i (bel 'i // PB stressed +revers) i (bel 'i // PB stressed + sens) i (bel 'i // PB stressed +suggest) i (bel 'i // PB stressed + vis) i (bel 'i // PB stressed +_pyram) i (d 'i // PB pyramide + _medl) i (denhed 'i // PB medlidenhed - stressed + _omkr) i (ng 'e // PB stressed e in 'omkring' +_tyver) i 'i // PB stressed + kn) i (v i // PB kniv + _min) i (ster_ 'i // PB minister - stressed i + _mag) i (ster 'i // PB magister- stressed + _re) i (ster 'i // PB register - stressed ii +_distr) i (kt 'e // PB stressed + am) i (go 'i // PB amigo + magas) i 'i // PB magasin + _kap) i (tel 'i // PB stressed + mask) i (n 'i // PB stressed - maskinskrive + asp) i (c 'i // PB aspic - only this word +_krokod) i (ll 'i // PB stressed + _sol) i (d 'i // PB solid + labyr) i (nt 'e // PB stressed + par) i (s 'i // PB + ryk) i (nd 'e // PB stressed + _art) i (k 'i // PB stressed - artikkel +_franc) i (sco 'i // PB +benzedr) i (n 'i // PB +valent) i (no ''i // PB name + _sus) ie i // PB name + +.group ig + +// PB general rule: final -ig [i] - silent g + ig (_ i // dejlig, rig + @) igt (_ it // PB dejligt +// exceptions + ops) ig (+ eg // PB opsigt + pl) ig (t+ eg // PB tavshedspligt + sv) ig (t+ eg // PB strømsvigt + trods) ig i + puds) ig i + hids) ig i + smuds) ig i + ns) ig (t+ eg // PB ansigt + døgen) igt ikt // PB + puds) ig (t i // pudsigt + ds) ig (t+ eg // PB indsigt, udsigt + _d) ig (t eg // PB +helted) ig (t eg // PB + eddad) ig (t eg // PB +haikud) ig (t eg // PB +prosad) ig (t eg // PB +smæded) ig (t eg // PB +skæmted) ig (t eg // PB + opd) ig (t eg // PB + sn) ig ij // PB snigangreb + fatt) ig i // PB fattigdom + udk) ig ig // PB + p) ig (_ ik // PB + _l) ig (_stille ek // PB problem: lig = "dead body" and lig = the verb "lie" + _l) ig (_pænt ek // PB + _l) ig (_ordentligt ek // PB + _l) ig (_godt ek // PB + _l) ig (_roligt ek // PB + l) ight ajt // PB + fr) igea (r igi // PB frigear + ig (hed+ i // PB vittighed, evighed + _k) ig (_ ig // PB kig + l) ig (ram ig // PB milligram + l) ig (a ig // PB liga + ig (s i // PB silent g -rigsret + n) igger egV // PB nigger + +// PB stress on previous syllable - around 400 words in da_list +// -ig words with the prefix be- are handled by group b - the be- rule. +// To keep the list short a large number of u- words were weeded out, +// therefore u- is removed in group u before the word is translated +// since the u+list words keep the stress. +// Any other syllable before the word reverts to normal stress + &) ig ($p_alt++ =i // velærværdig, gudvelbehagelig + + ige (++ i:@ // PB pige, pigen, stige, sige, lige + iger i:V // PB piger + p) igen i:3n // PB pigen +gensid) ig ij // PB maybe "j" should be removed + n) ige (ri ige // PB nigerianer + _n) iger (_ igV // PB Niger (river) +privil) ige ig'e // PB priviligeret + n) igeria ig'eRi& // PB + dil) igen (ce iS'AN // PB diligence + kr) igs is + rol) ige iE // PB rolige, beroligende + værd) ig (en 'ig // PB værdigenstand + yd) ig ij // PB tvetydigt, lydig +behænd) ig i // PB silent g + sned) ig ij // PB silent g + ld) ig i // PB heldig + +// PB stressed e after -ig + ed) ige (r ig'e // PB redigere + rr) ige (r ig'e // PB korrigere + nav) ige (r ig'e // PB navigere + dir) ige (r ig'e // PB dirigere +intell) ige (n ig'e // PB intelligent + _) ige (n+ ig'E // PB igen + .group in // PB words ending with "ine" in da_list with $alt - stressed i @@ -3062,6 +3412,7 @@ offentl) ig i // PB &at) in ($p_alt 'EN // satin &lat) in ($p_alt 'in // latin byzant) in 'in // PB byzantinsk + vel) in (formeret en // PB .group is // PB words ending with -ist in da_list with $alt - stressed i @@ -3101,19 +3452,21 @@ _lokomot) iv 'iv _perspekt) iv 'iv _regulat) iv 'iv _sport) iv 'iv - _stat) iv 'iv + _stat) iv 'iw .group j j j j (aw dZ ja (ck dZ& + joy dZVj // PB joystick ja (mal dZ& // PB name jerry dZeri // PB jamie dZEjmi // PB name jerome Ser'om // PB name - French version jambalaya dZAmb&l'aj& // PB _) jake dZEjk // PB name + _) jill dZil // PB name j (ob dZ john dZVn johnny dZVni // PB name @@ -3169,7 +3522,7 @@ _sport) iv 'iv kumquat kVmkwVd // PB kakerlak kak@l'ak // PB &) kvarter kvarter // PB kommandokvarter -// s) k g + klos (_hold klVs // PB på klos hold _spe) k (takk ' // silent k, stresssed a - spektakkel _spe) k (takl ' // silent k, stressed a - spektakler spe) k (takk // silent k - spektakkel @@ -3181,6 +3534,7 @@ _sport) iv 'iv kontinuum kVnt'inuOm // PB knight nAjt // PB name knox nVgs // PB Fort Knox + knock nVk // PB knockout .group l // PB l changed to l/3 in ph_danish @@ -3196,6 +3550,7 @@ _sport) iv 'iv // PB nouns in da_list with final -let - stressed e &) let ($p_alt l'Et // amulet &) let (t$p_alt l'E // avoid double t - toilettet +cabrio) let l'E // PB silent t s) l l/2 // PB add a bit more to l after s f) l l/2 // PB add a bit more to l after f @@ -3222,13 +3577,18 @@ _sport) iv 'iv long (_island lVN // PB little led@l // PB Little Big Horn lounge lawndZ // PB British word + _) lady lEjdi // PB + g) ladys l&dis // PB name + mac_) leod l'awd // PB MacLeod - name + lucky lVki // PB Lucky Strike .group m m m // PB m? -> m mm m o) mm (øble m||m // PB ommøblere melle) mm m|m // PB mellemmåltid - m (A m + mm (assage m|m // PB lemmassage +// m (A m gour) mand %mAN // PB gourmand _gour) mand m''AN // PB gourment _) mannequin m&n@k'EN // PB @@ -3246,7 +3606,7 @@ _sport) iv 'iv _) mike (_ majk // PB Mike mail mejl montre mO:ntrV - mayday m&jd&j // PB + mayday mEjdE:j // PB miami m&j'&:mi // PB machete m&S'Ed // PB miguel _^_ES // PB @@ -3263,10 +3623,20 @@ _sport) iv 'iv murphy mWfi // PB name murray mVri // PB name molyneux mVlinju: // PB name + murphey mWfi // PB name + murph mWf // PB nickname + marjorie mAdZOri // PB name + montpellier _^_fr // PB + mpson msVn // PB Thompson + marseille maRs'E:j + musical mju:sik3l // PB + mahogni m&h'oni // PB .group me + // PB General rule for words with -ment &) ment m'ent // PB element, segment + // PB exceptions for the -ment rule (French words) arrange) ment mAN // PB arrangement avance) ment mAN // PB avancement @@ -3354,7 +3724,6 @@ _harmo) nika =nik& // PB stressed o // PB general rule: nk = [N] before t nk (t N // adjunkt, sankt ka) n_ // silent n - kan - pag) n (e =nj // PB stress added - kampagne, champagne ræso) nn n // PB ræsonnement A) nn n // PB venner, denne @) nien =ni3-n // PB Albanien, Rumænien - stress on previous syllable @@ -3372,6 +3741,7 @@ _harmo) nika =nik& // PB stressed o neil ni:l // PB name Neil, O'Neil _) nicole nik'Vl // PB name _) neville nEvel/2 // PB name + _) nellie nEli // PB name .group nd // PB general rule: nd = [n] after a vowel @@ -3383,30 +3753,35 @@ james_bo) nd nd // PB James Bond a) nd (y nd // PB name A) ndn n // PB endnu -> [enu] - only one n // exceptions - a) nd (el nd // PB andel + a) nd (el nd // PB andel, sandeltræ + sa) nde (lig n3 // PB sta) nd (+ n // PB opstandelse ba) nd (emedlem nd // PB eje) nd (el nd // PB fi) nd (el nd // PB findele - nd (else (+ n // PB opfindelse + nd (else n // PB opfindelse fi) nd (eløn n // PB e) nd (e+ n // PB endeløs + ko) nd (emnere nd // PB + ko) nd (olere nd // PB fe) nd (er nd // PB vi) nd (e n // PB kvinde, overvindelig vi) nd (rik nd // PB vindrikker e) nd (elig n // PB endelig + ferna) nd (o =nd // PB name ve) ndig ndi // PB udvendig å) nd (eli n // PB åndelig nd (ig nd // PB behændig nd (yr nd // PB dovendyr ha) nd (el n // PB y) ndig ndi // PB + a) nd (re nd // PB andre nd (ida nd // PB kandidat ste) nd nd // PB stendynge, stendige ke) nd (el n // PB kendelse pe) nd (i nd // PB appendiks spe) nd (er nd // PB spendere - stæ) ndig ndi // PB anstændig - silent g +// stæ) ndig ndi // PB anstændig - silent g nd (ør nd // PB køkkendør svi) nd (el n // PB nd (om nd // PB ejendom @@ -3435,6 +3810,7 @@ james_bo) nd nd // PB James Bond ma) nd (er nd // PB kommandere nd (ent nd // PB prætendent u) nd (re nd // PB beundre + hu) nd (+ n // PB hundrede va) nd (re nd // PB vandretur _i) nd (er_+ nd // inder i) nd (erst+ n // PB @@ -3451,7 +3827,9 @@ subtrahe) nd nd // PB general rule: nd = [nd] after a vowel before a A) nd (a nd // mandat + kvi) nd n // PB kvindagtig va) nd (af n // PB vandafvisende + la) nd (ar n // PB landarbejder // PB takes away the d in 'bander' = 'gangs' - n => n? // Neither 'bander' = swears nor 'bander' = gangs is correct @@ -3459,42 +3837,41 @@ subtrahe) nd nd ba) nd (er n? ba) nd (ens nd // PB _en_ba) nd (e nd // PB + forba) nd (er n // PB nd (ow nd sta) nd (ar nd // PB standard - keep the d i) nd (eks nd - i) nd (i nd // PB Indien, individ, indianer + i) ndi ndi // PB Indien, individ, indianer ti) nd (in n // PB tinding - fi) nd n (+ // PB fejlfinding + fi) nd (+ n // PB fejlfinding bi) nd (in n // PB forbinding vi) nd (in n // PB udvinding i) nd (imellem n // exception i) nd (erl+ n // PB inderlig + a) nd (ere nd // PB propagandere eku) nd nd .group ng - ng (_ N // general rule - ting, ring - ba) ng (kok N // PB - i) ng N // PB springvand - æ) ng N // PB sprængning + ng N // general rule - ting, ring + + kæ) ng (uru ng // PB vi) ng (ård ng // PB vingård flami) ng (o =ng // PB stressed i - A) ng (e N // general rule - mange, penge ra) ng (ere NS // PB ta) ng (ent ng // PB + re) ng (ør ng // PB rengøring + ng (æld ng // PB gengæld + a) ng (iv ng // PB selvangivelse ng (evær ng // PB maskingevær i) ngeni (ø nSin // PB ingeniør eva) ng (el ng // PB evangelie allo) ng (e NS // PB - _ri) ng (o ng // PB Ringo - name - hæ) ng N // PB hængning - pi) ng N // PB pingvin - ng (s N // magengs + A) ng (o ng // PB bongo, Congo, Ringo _a) ng (A ng // PB angå cha) ng (ement Nsj // PB changement ora) nge Nsj3 // PB orange ng (a ng - i) ng (s N fi) nger NV _fi) ng (ere ng // PB fingeret fi) ng (eren+ N // PB @@ -3506,12 +3883,24 @@ _en_ba) nd (e nd // PB .group o o o + oo u: // PB English words like 'pool' + br) ooke uk // PB name + f) ood u:d // PB + fl) ood Vd // PB + bl) ood Vd // PB + fl) oor V: // PB + z) oo o: // PB zoologisk + z) oo (m u: // PB + baz) oo 'u: // PB bazooka + m) oore V: // PB name + h) ood u:d // PB Robin Hood + // PB final -skop - stressed o &sk) op ($p_alt 'op // gyroskop &sk) op (i$p_alt op' // mikroskopi // PB final -om in da_list - stressed o - &) om ($p_alt 'om // atom + &) om ($p_alt+ 'om // atom, diplom sark) om om // PB knoglesarkom // PB final - ose - stressed o @@ -3528,24 +3917,196 @@ elektr) o (de 'o pag) o (de 'o peri) o (de 'o - oo u: //PB English words like 'pool' - f) ood u:d // PB - fl) ood Vd // PB - bl) ood Vd // PB - fl) oor V: // PB - z) oo o: // PB zoologisk - baz) oo 'u: // PB bazooka - m) oore V: // PB name - h) ood u:d // PB Robin Hood +// PB general rule c/k + o + n + consonant = [V] + L10) o (nC V // PB konvoj, conga + +// PB general rule consonant + o + double consonant: [V] + C) o (C%++ V // PB korrekt, bolle, propper, kopper + L03r) o (C%++ V // PB droppe + L10r) o (C%++ V // PB kroppe + r) o (C%a++ o // PB rollator + k) o (mmo o // PB kommode + C) o (C%e_++ V // PB fjolle, jolle + ren) omme (+ om'e // PB + ren) ommé (+ om'e // PB + C) o (C%et_++ V // PB jokket + C) o (L02%L04++ V // PB koffein + gr) o (ssi+ o // PB grossist + fr) o (C%++ o // PB frosset, frossen + fr) otte (++ ot'e // PB frottehåndklæde + m) o (sset++ o // PB + k) ommers (_ om'Ers // PB stressed + ap) o (llo++ 'V // PB stressed + k) o (mmerciel++ o // PB kommerciel + fr) o (mm++ V // fromme + C) o (L09n V // PB velkomne + +// PB general rule k + o + double consonant + front vowel: [o] +// Some people pronounce it [V] + k) o (C%L04++ o // PB korridor, korrupt, kollegium + L08) o (C% V // PB skotte, spotte + r) o (C%+ V // PB rotte, skrotte + + k) o (mmentA+++ o // PB kommentar, kommentere + k) o (llekt_ o // PB could also be [V] + k) o (lleg+++ o // PB kolleger + +// PB general rule o + p/b/d + front vowel: [o] + o (L06L04 o // PB topografi, utopi + +// PB general rule o + b + l + a/e/LL04: [o] + o (bla+ o // PB oblat + o (blL04 o // PB obligation + +// PB general rule k/g + o + m: [V] + L01) o (m V // PB kompliceret, komplet, brudgom, jomfru + L01) o (mL04 o // PB komite + L01) o (me o // PB komedie + k) o (mpag o // PB kompagni + k) o (ma o: // PB + _k) o (mpas o' // PB + +// PB general rule p/b + l + o + n/M: [V] + L06l) o (L09 V // PB blond, blomst + +// PB general rule: d/l + o + n/m: [V] + L03) o (L09 V // PB barndom, lom, domhus, don, dommer + fr) o (nt V // PB frontal + L03) o (L09L04 o // PB dominere + L03) o (L09e o // PB donere + L03) o (L09a o // PB donation, donator + +// PB general rule sp/st/sk + r + o + velars: V + L08r) o (L01 V // PB skrog + +// PB general rule consonant + o + velars: V + C) o (L01 V // PB fjong + b) o (L01L04 V // PB bongo + parad) o (ks 'V // PB stressed +elektr) o =o // PB elektrokromatisk + L06r) o (j o // PB projektør + C) o (g o // PB BROAD RULE FOR THE RULES BELOW + n) o (get o // PB + b) o (g o // PB bogmærke + t) o (g o // PB tog (verb took, noun train) + r) o (g o // PB bedrog, krog + r) o (ga o // PB arrogant + sl) o (g o // PB foreslog + dag) o (g o // PB pædagog + o (kaC o // PB pokal, advokat + +// PB general rule sp/st/sk + o + t: V + L08) o (t V // PB spotte, skotte + L08r) o (t V // PB skrot + _mask) o (t 'V // PB stressed + L08) o (tL04 o // PB followed by front vowel: o - skotøj + +// PB general rule o + front consonant: [V] + o (L03K V // PB Olga, Volga, vold, vod, od, volt + L08) o (l o // PB skole, spole, spol + p) o (lsk o // PB + st) o (d_ o // PB + L09) o (d o // PB mod + l) o (L03 o // forlod, blod + r) o (d o // PB + forl) o (ds V // PP + g) o (d o // PB + b) o (d o // PB + g) o (dt V // PB + l) odret (+ VDr&#t // PB + +// PB general rule o + velar + front vovel: [o] + o (L01L04 o // PB okular + C) o (L01L04 o // PB kokosnød + ch) o (k V // PB + ch) o (ko o // PB chokolade + +// PB general rule o + p/b: [V] + o (L06+ V // PB op, opdrage, obstruere + o (L06L11+ o // PB oktober, global, Robert, oberst + L02) o (L06le+ V // PB boble + L02) o (L06%e++ V // PB dobbel + C) o (L06L04++ o // PB monopol, mobil + selv) o (p V // PB selvoptaget + _r) o (bin++ V // PB Robin Hood + Cr) o (L06Ce o // PB problem + r) o (L06L05+ o // PB europæer, propan + le) o (pa o' // PB leopard + nark) o (C o // PB narkobranchen + h) o (b+ o // PB menneskehob + Cn) o (L06++ o // PB knob, knop, knoppen + +// PB general rule l + o + t: [V] + l) o (t V // PB blot, plot, kaskelot + pil) o (t o // PB autopilot + + Ca) o (s V // PB kaos Laos + L08) o (f V // PB stof + tr) o (CL04 o // PB antropolog, tropisk, troperne + _) o (mC ''V // PB omgang, omformulere + o (mk V // PB deromkring + k) o (nC V // PB konfirmand, konfekt, konkurrence + C) o (sCL11 V // PB fosfat, koster, moster, foster + o (sCL04 V // PB osmose + C) o (stL04 o // PB kostume + Cr) o (sk o // PB troskab, kroskænk + n) o (s_ V // PB nos nu ikke i det + g) o (slav o // PB Jugoslavien + h) o (spit o // PB hospital + p) o (styr+ V' // PB + o (sko+ o // PB otoskop, mokroskopi + sk) o (sværte o // PB + + // PB general rule: consonant + o + m:[V] + C) o (m V // PB tomhændet, kedsomhed, tomt, udenoms + C) o (mL04 V // PB bomuld + + s) o (mal o' // PB Somalia + gn) o (m o // PB + kr) o (m o // PB krom + _l) o (s V // PB los + fall) o (s V // PB + _kol) o (s 'V // PB kolos - stressed + kol) o (st o // PB kolostomi + st) o (mL04 o // PB stomi + kol) o (ssa o // PB kolossal + k) o (ntor o // PB + h) o (spice V // PB hospice + v) od (ka Vd // PB + p) o (st V // PB post + p) o (stmod O // PB postmoderne + p) o (stej %o // PB leverpostej + p) o (sttrau o // PB posttraumatisk + term) o o // PB termostat + r) o (st o // PB rost, skamrost, prostitueret + pr) o (sta V // PB prostata + fr) o (st V // PB + f) oged o:@D // PB silent g + bank) o (sp o // PB bankospil + k) o (sko o // PB bronkoskop + kok) o (s o // PB kokosnød + k) o (st_ o // PB kost (broom) Problem with kost = food + k) o (stskole V // PB +hverdagsk) o (st V // PB + k) o (st_og_logi V // PB board and lodging + k) o (stbar V // PB +helsek) o (st V // PB + frok) o (st V // PB + omko (st VmkV // PB omkostninger, leveomkostninger + k) otelet Vt@l'Et // PB svinekotelet + h) o (st o // PB host + fC) o (t V // PB flot, fjot + fC) o (tL04 o // PB flotille + o (x V // PB oxyd t) o (mas V // PB th) o (mas V // PB t) ow (er Au // PB Tower Bridge - mikr) o (ovn o // PB + mikr) oovn oVwn // PB _) o' ou' // PB for Irish names - O'Grady - s) outh aus // PB South Pacific - r) o (bin V // PB + s) outh auT // PB South Pacific _h) olmes (_ oums // PB name + osborne Vsb,On // PB name k) oor (d oV:? // PB koordinat _biot) o (p 'o // PB stressed _isot) o (p 'o // PB stressed @@ -3553,101 +4114,22 @@ antibi) o (tik 'o // PB antibiotika lak) o (ta 'o // PB stressed _morm) o (n 'o // PB stressed o (pofre V // PB + ann) on (ce VN // PB - stressed by $alt list radi) o o // PB radiobil - k) o (pa o // PB psykopat f) o (b o // PB fobi _antil) o (pe 'o // PB stressed -// o (bliga o // PB obligation -// o (piu o // PB opium _t) o (bak o' // PB tobak vide) o o // PB videobånd - gl) o o // PB global - kn) o (L06 o // PB knob, knop h) o (lding Ou // PB holdingselskab br) occ (oli Vk // PB + ma) o (+ o // PB Mao, Maos maosko -// PB general rule consonant + o + n/M + consonant = [V] - C) o (L09C V // PB komme, conga - b) o (nde o // PB - b) o (mb o // PB bombe - -// PB general rule consonant + o + n/M + front vowel = [o] - C) o (L09L04 o // PB kilometer -pepper) o (ni 'o // PB stressed - -// PB general rule consonant + o + double consonant: [V] - C) o (C% V // PB korrekt, bolle - tr) o (mm+ o // PB tromme - -// PB general rule k + o + double consonant + front vowel: [o] -// Some people pronounce it [V] - k) o (C%L04 o // PB korridor, korrupt, kommentar - sk) o (C% V // PB skotte - r) o (C%+ V // PB rotte, skrotte -// PB "e" is not a front vowel here (pronounced [3]) - C) o (m%e+ V // PB velkommen, dommer - -// PB general rule o + p/b/d: [V] - o (L06 V // PB op, opdrage, obstruere - C) o (L06 V // PB boble - le) o (pa o' // PB leopard - -// PB general rule o + p/b/d + front vowel: [o] - o (L06L04 o // PB topografi, utopi - -// PB general rule o + b + l: [o] - o (bl o // PB obligation, oblat - - helik) o (pt 'V // PB stressed - helikopter - _dep) o (t 'o // PB - dep) o (t o // PB - _) oil (_ V:il/2 // PB - cr) oix w'a // PB Delacroix - d) o (nald V // PB name -// p) o (tag o // PB potage - o (per o // PB opera - sk) o o // PB skopudser - _sk) o (d V // PB skod - sk) o (t V // PB Skotland, skotte - _mask) o (t 'V // PB stressed - sk) o (tø o // PB skotøj - c) o (ck V // PB cockerspaniel - sk) o (te o // PB diskotek - skr) o (t V // PB skrot - skr) o (g V // PB skrog - terr) or Vr // PB terror - o (tto V // PB - o (ttende V // PB - sj) o (f o // PB sjofel - o (be o // PB oberst, koben - r) o (L06 o // PB problem - r) o (ck V // PB - pr) o (p V // PB blodprop - pr) o (pe o // PB propel - pr) o (pa o // PB propaganda, propan - kr) o (p V // PB - gr) oggy Vgi // PB groggy - gr) og Vg // PB grog - k) og (t Vg // PB - k) og (nit Vg // PB kognitiv - k) o (telet V // PB - hvalr) o (s V // PB + helik) opter 'VptV // PB stressed - helikopter _eur) o (pa 'o // PB stressed _eskim) o 'o // PB stressed _resp) o (ns 'V // PB stressed - dr) o (p V // PB droppe - r) o (nt V // PB front - er) o (p V // PB herop - o (lm V // PB olm, holm - _) obo ob'o // PB - Ca) o (s V // PB kaos Laos - r) o (ma o // PB romantik - org (+ V:w // PB sorg, morgen, Norge - org (i V:g // PB georgisk - org (ie Vg // PB - ge) org (ine og // PB - o (rga+ V // PB organ - r) or (g oR // PB rorgænger + _dep) o (t 'o // PB stressed + dep) o (t o // PB kont) o (r 'o // PB kontor - stressed korrid) o (r 'o // PB labrad) o (r 'V // PB @@ -3655,7 +4137,6 @@ labrad) o (r 'V // PB mete) o (r 'o // PB matad) o (r 'o // PN sam) o (a 'o // PB - mot) orer 'oV // PB katastr) o (fe 'o: // PB katastrofe lit) o (te 'o: // PB stressed en) o (rm+ 'V // PB stressed @@ -3668,133 +4149,116 @@ klorof) o (rm 'V // PB stressed _rev) o (lv 'V // PB stressed - revolver _kart) o (f 'V // PB stressed - kartofler am) o (k 'V // PB amok + mon) o (k 'V // PB monokel - stressed konv) oj 'Vj // PB stressed mening) oko (k ok'V // PB meningokokker hypok) o (nder 'V // PB - d) o (b V // PB dobbelt - d) o (nn V // PB donna - b) o (ls V // PB bolsje - h) o (ll V // PB Holland h) o (ck V // PB hockey _horis) o (n 'V // PB horisont - o (nt V // PB dont - n) o (n V // PB nonne, nonkombattant _kan) o (n 'o // PB stressed kan) o (n o // PB not stressed after a syllable - o (dds V: // PB odds - o (sse V // PB tosse, nosse - fr) o (sset o // PB - m) o (sset o // PB - j) o (b V // PB job - mon) o (k 'V // PB monokel - stressed - ov (e+ Vu // PB over, oven - ov (erhead Ouv // PB overhead - t) ov (er ov // PB tatovere - k) ov (end ov // PB kovending - ov (ærn+ ov // autoværn - h) ov (+ Vu // hov, sove - ov (+ Vw // PB sjov, lov, skov - o (vej+ o // PB kommandovej - o (vi+ o // PB pseudovidenskabelig - tr) o (v o // PB troværdig - sk) ov (tur Vw // PB - l) ov (_mig_ ow // PB from the verb "at love" - ov (s_+ Vw // PB sjovs, lovs, skovs - ov (t_+ Vw // PB sjovt - ov (n Vw // PB ovn - ov (l Vw // PB skovl - ov (p Vw // PB lovprise - v) ov (e Ov // PB vove - o (fC V // PB ofte - skiz) o (fren o // PB - n) ov (++ ov // PB nova, november - oven) ov Vw // PB ovenover - _C) o (k 'V // PB beginning with 1 consonant followed by o and k: sok, nok, kok - k) o (kos o // PB - p) o (ka o // PB pokal - p) o (ker o // PB - bet) on VN // PB betonen - k) o (ke O // PB koket - d) o (ku o // PB dokument - ch) o (ko o // PN chokolade - o (mr V // PB område - o (mf V // PB omformulere - o (lga V // PB Olga, Volga - _m) o (rt V // PB mortadel - o (k V // PB okker, lok - o (kL04 o // PB okular - aut) o o // PB autoklub - t) or (t V:? // PB tortur - em) o o // PB demokrati - v) o (lC V // PB volt, vold - v) o (d V // PB - prot) o o // PB protokol - kr) o (k o // PB krokus - v) o (ke o // PB provokere - r) o (ke o // PB neurokemi - o (ktob %o // PB stressed next syllable - oktober - fr) o o // PB frokost - fr) o (m V // PB - fr) o (ma o // PB fromage - sm) o (king o: // PB - f) o (kA o // PB fokus, fokal - o (ka o // PB lokal, polal - o (rk V // PB orke orkester - j) o (rt V // PB hjort, pjort - gj) o (rt o // PB - f) o (s V // PB fosfat - g) o (dt V // PB godt, godte - g) o (ng V // PB - lag) o (s V // PB Lagos - k) or (p V: // PB korps - k) or (pi or // PB korpige - k) or (prøve or // PB - k) o (rre V // PB korrekt - g) od (tr oD // PB godtroende - g) od (tAg oD // PB godtage, godtog - h) o (nni V // PB honning -// r) o (tt V // PB rotte - d) o (g V // PB dog - v) o (g V // PB vogn, vogte - v) o (ld V // PB volde - o (ld V // PB oldgammel - s) o (g V // PB sogn - s) o (r V // PB professor - s) orer 'o:V // PB professorer - L08) o (f V // PB stof - l) o (ft V // loft - l) o (dr V // PB lodret - _l) o (g_ V // PB log - l) o (gfil V // PB - l) o (gg V // PB logge på - l) o (gbog Vg // PB - o (lf V // PB golf, Adolf - b) o (ll V // PB bolle - l) ov (e+ ou // PB love - l) ondon VndVn // PB London - bl) ond Vnd //PB blondine, blonde - od_ VD // PB - od, vod, skod - odd (A VD // PB - odder - only this word - k) ors V:s // PB kors, korsage - c) o (rs V // PB corsage - k) o (lL06 V // PB kolbe - k) o (gl V // PB kogle - _d) o (n_ V // PB don juan bistr) o 'o // PB stressed o in 'bistro' + trik) ot 'o // PB stressed, silent t er) o (b 'o // PB erobre - stressed o _er) o (t 'o // PB erot - stressed o _pil) o (t 'o // PB stressed - pilot _idi) o (t 'o // PB stressed _matr) o (s 'o // PB stressed -_metad) o (n 'o PB stressed +_metad) o (n 'o // PB stressed _batalj) o (n 'o // PB stressed ang) o (la 'o // PB stressed +pepper) o (ni 'o // PB stressed + _pr) ovi (ns ov'e // PB provins - stressed i + filos) o (f_ 'V // PB +_filos) o (fi_ o' // PB +_filos) o (fisk 'o //PB + mem) oire o'A: // PB memoire(r) + apr) opos op'o // PB silent s + nark) o (tik 'o // PB narkotika, narkotisk + _ansj) o (s 'o // PB stressed + ul) o (v 'V // PB stressed o - ulovlig _paran) oia 'Vj& // PB stressed - L09) o (va o // PB nova, renovation + _huk) o (mme 'V // PB hukommelse - stressed + _kuj) o (n 'o // PB stressed + komp) o (st 'V // PB stressed + vagab) o (nd 'O // PB stressed + _) oil (_ V:il/2 // PB + cr) oix w'a // PB Delacroix + d) o (nald V // PB name + c) o (ck V // PB cockerspaniel + terr) or Vr // PB terror + o (tto V // PB + o (ttende V // PB + r) o (ck V // PB + jackp) o (t V // PB + gr) oggy Vgi // PB groggy + gr) og Vg // PB grog + k) og (nit Vg // PB kognitiv + hvalr) o (s V // PB + _) obo ob'o // PB + org (+ V:w // PB sorg, morgen, Norge + org (i V:g // PB georgisk + org (ie Vg // PB + ge) org (ine og // PB + o (rga+ V // PB organ + r) or (g oR // PB rorgænger + ov (e+ Vu // PB over, oven, sove + C) ov (+ Vw // PB sjov, lov, skov + ov (erhead Ouv // PB overhead + t) ov (er ov // PB tatovere + k) ov (end ov // PB kovending + ov (ærn+ ov // autoværn + h) ov (+ Vu // hov + vuk) ov (ar ov // PB Vukovar + o (vej+ o // PB kommandovej + o (vi+ o // PB pseudovidenskabelig + tr) o (v+ o // PB troværdig, kontrovers + l) ov (_mig_ ow // PB from the verb "at love" + v) ov (e Ov // PB vove + o (fC V // PB ofte, kofte + h) o (f V // PB hofleverandør + skiz) o (fren o // PB + n) ov (a++ ov // PB nova, renovation + n) ov (em+ ov // PB november + n) ov (el ov // PB novelle + bet) on VN // PB betonen + _m) o (rt V // PB mortadel + o (k V // PB general rule - okker, lok + aut) o o // PB autoklub + t) or (t V:? // PB tortur + t) o (t V // PB hårtot, tot, hottentot + t) o (tA o // PB total + em) o o // PB demokrati + o (ktob %o // PB stressed next syllable - oktober + sm) o (king o: // PB + o (rk V // PB orke orkester + j) o (rt V // PB hjort, pjort + gj) o (rt o // PB + k) or (p V: // PB korps + k) or (pi or // PB korpige + k) or (prøve or // PB + g) od (tr oD // PB godtroende + g) od (tAg oD // PB godtage, godtog + d) o (g V // PB dog + v) o (g V // PB vogn, vogte + _v) og (_ ow // PB "han vog den kullede greve" + C) ogn Vwn // PB sogn, vogn + col) ogn (e l'VNj // PB + boul) ogn (e ''VNj // PB Bois de Boulogne + s) or =V // PB professor + s) orer 'o:V // PB professorer + _l) o (g_ V // PB log + l) o (gfil V // PB + l) o (gbog Vg // PB + l) ov (e+ ou // PB love + l) ondon VndVn // PB London + bl) ond Vnd //PB Keep the d - blondine, blonde + k) ors V:s // PB kors, korsage + c) o (rs V // PB corsage + k) o (gl V // PB kogle + _d) o (n_ V // PB don juan pr) o (vA+ o // PB provokere h) oved o:@D // PB hoved - tr) o o // PB tro - kn) o (tt V // PB knotten kn) o (tn V // PB knotne tr) od (s V // PB silent d - trods kl) od (s V // PB silent d - klods @@ -3802,144 +4266,53 @@ _paran) oia 'Vj& // PB stressed tr) o (j V // PB trojka, Troja p) olish VliS // PB møbelpolish tr) o (kl V // PB trokle - tr) o (p V // PB trop - tr) o (po o // PB antropolog - tr) o (pi o // PB tropisk - tr) o (pe o // PB troperne t) or (_ V // PB faktor st) o (r+ o // PB stor past) or V // PB - mot) or V // PB + mot) or V // PB startmotor t) or (sd V // PB torsdag - t) or (n or // PB t) or (ny V // PB tornyster - t) or (e o // PB faktorer - t) or (en V // PB faktoren, doktoren oy (+ 'Vj // PB destroyer, royal, loyal _f) oyer O@j'e // PB f) oyer O@je // PB p) o (r O // PB porno - _m) o (C o // PB m + o + consonant: mor, mord m) oskva Vskv'& // PB _im) o (d 'o // PB stressed - m) o (pp V // PB moppedreng - m) o (bi o // PB mobil m) ontana Vnt'&n& // PB - m) o (ms V // PB - m) o (kk V // PB mokke, mokka m) o (nitor V // PB _C) o (_ o // PB jo, ko, lo, so f) o (d+ o // PB fodre C) oe (de o: // PB boede, troede - m) o (f o // PB grammofon, homofil - r) o (f o // PB profil - gr) o (f V // PB groft spr) og ow // PB sprog t) o (gt V // PB togt kl) og ow // PB klog, klogt kn) og Vu // PB knogle t) oi o& // PB toilet - d) o (ku o // PB dokument ortod) o (ks 'V // PB l) o (kA o // PB lokal bl) o (k V // PB blokere - br) o (d V // PB brod, brodne - br) o (de o // PB broder, brodere k) o (ka o // PB kokasse, kokain s) o (pra o // PB sopran oregonpine VregVn||pajn // PB oklahoma okl&h'om& // PB p) oint wEN // PB p) ointe wENt@ // PB + p) ointer wENtV // PB c) ogn (ac VN // PB - b) o (m o // PB bombe + b) o (m o // PB bombe, bom + b) o (mm++ o // PB bommen b) ombay Vmb,Ej // PB -// b) o (nsai V // PB -// d) o (m V // PB domstol, ungdom -// L11) o (m V // PB gommen, brudgom, kom, velkommen - lok) o (motiv o // PB - d) o (mA o // PB dominere - k) o (met o // PB - k) o (mmo o // PB kommode + k) omet om'et // PB + k) o (mmo++ o // PB kommode komm) o (de 'o // PB stressed - k) o (mi o // PB komiker - L11) o (ma o // PB koma, narkoman - L11) o (mman o // PB kommando -// p) o (m V // PB pomp -// p) o (n V // PB ponton - p) o (ne o // PB eksponere + L01) o (mman+ o // PB kommando pomp) on VN // PB pompon -// Xl) o (m V // PB lom, lomme, blomst - pl) o (m o // PB exception from the rule above (Xl) o (m) - plombe + kup) on VN // PB tipskupon + tamp) on VN // PB vattampon + pl) o (m o // PB plombe o (m_ V // PB alderdom VERY BROAD - gn) o (m o // PB - o (mt V // PB tomt -// t) o (mC V // PB tomhændet - _) o (mC V // PB omgang -// s) o (m V // PB langsomt, ensom -// o (mm V // PB ensomme VERY BROAD - k) o (mmerc o // PB kommerciel - kr) o (m o // PB krom - o (mi o // PB sodomi - f) o (m o // PB nymfoman - fot) o o // PB - r) o (mA o // PB romer - b) o (mu V // PB bomuld - n) o (ss V // PB nosse - l) o (s V // PB los - o (se+ o // PB glose, pose - l) o (tt V // PB lotteri - l) o (so o // PB filosofi - pl) o (s o // PB eksplosion - kol) o (s 'V // PB kolos - stressed - kosm) o (s V // PB - kol) o (st o // PB kolostomi - kol) o (ssa o // PB kolossal - k) o (nC V // PB konfirmand, konfekt, konkurrence - k) o (ntor o // PB -// c) o (ngo V // PB - k) o (ne o // PB kone - k) o (pi o // PB kopimaskine - _huk) o (mme 'V // PB hukommelse - stressed - bisk) o (p V // PB biskop - h) o (s o // PB hos, hospital - b) o (sn V // PB Bosnien -// b) o (ss V // PB gangsterboss - _r) o (sk V // PB Roskilde -// r) o (ll V // PB rolle - o (se o: // PB rose, skose, pose - h) o (spice V // PB hospice - v) od (ka Vd // PB - p) o (st V // PB post - p) o (stmod O // PB postmoderne - p) o (stej %o // PB leverpostej - p) o (sttrau o // PB posttraumatisk - m) o (st V // PB moster - term) o o // PB termostat - komp) o (st 'V // PB stressed - r) o (st o // PB rost, skamrost - pr) o (sta V // PB prostata - fr) o (st V // PB - f) oged o:@D // PB silent g - k) o (sm V // PB kosmisk - bank) o o // PB bankospil - k) o (sko o // PB bronkoskop - kok) o (s o // PB kokosnød - k) o (st o // PB kost (broom) Problem with kost = food - k) o (stskole V // PB -hverdagsk) o (st V // PB - k) o (ste V // PB verb - koste = brooms will be mispronounced - k) o (st_og_logi V // PB board and lodging - k) o (stbar V // PB -helsek) o (st V // PB - bek) o (st V // OB bekostning - frok) o (st V // PB - L08) o (t V spotte, skotte - omko (st VmkV // PB omkostninger, leveomkostninger - pr) o (sti o // PB prostitueret - st) o (mi o // PB stomi - h) o (st o // PB host - Cl) o (t V // PB flot + + o (sL11 o: // PB rose, skose, pose, prosa ou 'u // PB poussin, toupe rag) out 'u // PB silent t s) ou (l Ow // PB soulmusik @@ -3958,6 +4331,7 @@ _astron) out awd // PB ohio ouh'ajo // PB d) oug Vg // PB Douglas s) onny Vni // PB name + oprah Owpra // PB name l) ou u // PB jalousi b) ourbon W:b@n // PB bourbon whisky ough Vf // PB tough, rough - only 2 words @@ -3965,18 +4339,7 @@ _astron) out awd // PB calh) oun 'un // PB name _b) o (nn_ V // PB German city kl) oge ow,@ - nark) o (tik 'o // PB narkotika, narkotisk - _ansj) o (s 'o // PB stressed - ul) o (v 'V // PB stressed o - ulovlig h) o (ng V // PB Hongkong - k) o (mmu o // PB kommunisme - k) o (mmi o // PB kommis, kommissær - _pr) ovi (ns ov'e // PB provins - stressed i - filos) o (f_ 'V // PB -_filos) o (fi_ o' // PB -_filos) o (fisk 'o //PB - mem) oire o'A: // PB memoire(r) - apr) opos op'o // PB silent s r) oastbeef Ousdbif // PB roastbeef illin) ois V:j // PB ink) og (nito 'Vk // PB @@ -3996,35 +4359,19 @@ _filos) o (fisk 'o //PB &tr) ol (l$p_alt 'o // kontrollere &st) ol (+$p_alt 'ol // pistol - L08) o (le o // PB skole, spole - p) o (lit o // PB udenrigspolitik L08) o (lt V // PB stolt L08) o (lp V // PB stolpe - L11) o (ld V // PB kold, gold + L01) o (ld V // PB kold, gold ravi) o (li 'o // PB stressed o - j) o (l V // PB jolle, fjols, fjolle - p) o (llen V // PB pollen - kj) o (l o // PB kjole - kj) o (ld V // PB skjold - L06) o (ld V // PB bold - L06) o (lt V // PB bolt - o (lk V // PB folk, tolk - d) o (llar V // PB dollar - only this word plus compounds like 'dollargrin' - o (lv V // PB tolv rob) o (t 'V // PB - s) o (l o // PB sol - s) o (ldat o // PB soldat - h) o (l V // PB hold, Holger - h) o (li o // PB holistisk - h) o (lo o // PB hologram - h) o (le o // PB hole - s) o (lde V // PB solde + d) ollar VlV // PB dollar - only this word plus compounds like 'dollargrin' + s) o (l o // PB sol, soldat + s) o (llys++ o // PB + o (ld_ V // PB nathold, skjold + o (lde_ V // PB skjolde, solde s) olgt Vlt // PB solgt - exception - tr) o (ld V // PB trold - kontr) o (l V // PB - kn) o (ld V // PB knold + kontr) o (l V // PB billetkontrol sn) o (t V // PB snot - ne) o (n V // PB neonlys h) otdog VtdVg // PB _h) o (t_ V // PB or (l O: // PB orlov @@ -4044,18 +4391,23 @@ _filos) o (fisk 'o //PB &p) on ($p_alt 'VN // tampon, kupon, pompon &f) on ($p_alt 'VN // sifon &lef) on ($p_alt 'on // telefon + &of) on ($p_alt 'on // grammofom &l) on ($p_alt 'VN // bouillon, talon &el) on ($p_alt 'on // melon // PB exceptions to the -on rule (and other -on exception) stadi) on Vn + ne) on Vn k) ong VN s) on (d Vn // sondere leksik) on Vn liban) on Vn // Libanon - h) on (du Vn // PN Honduras + h) on (d Vn // PN Honduras, Honda + on (du Vn // ondulere, pondus + p) on (t Vn // PB spontan, ponton arg) on Vn dral) on Vn + fre) on Vn dr) onn (ing Vn triatl) on =Vn duatl) on =Vn @@ -4077,6 +4429,7 @@ _maked) on 'on // PB makedoner sal) on VN tal) on VN _sæs) on 'VN + sæs) on VN // jagtsæson tefl) on Vn t) on (_ Vn // ton, kiloton kart) on 'VN // PB mælkekarton @@ -4086,15 +4439,21 @@ _maked) on 'on // PB makedoner alf) on (s 'VN // PB alfons f) ond Vnd // PB ball) on 'VN - on (du Vn // ondulere + alis) on Vn // PB name +robins) on Vn // PB name + m) onty Vnti // PB name .group or - v) or Or // PB alvor + v) or V // PB alvor + or (L04+ or // PB favorit + or (L11+ or // PB favorabel f) or V // PB derfor - juni) or V // PB - enf) or 'V // PB + f) or (L04 or // PB aforisme + f) or (e V // PB fagforening +// enf) or 'V // PB k) or (t V:? // PB kort + or (to Vr // PB ortodoks m) orge V:3 // PB morgen dek) or (_ 'V:r // PB dekor rapp) or (t 'V: // PB rapport @@ -4114,6 +4473,7 @@ _maked) on 'on // PB makedoner n) or (m O // PB st) or (m O: // PB b) or (t Vr // PB bortforklare + _ab) or (t 'Vr // PB stressed or (al oR // PB oral _esk) or (te 'V: // PB eskorte _n) or or // PB nord, nordisk @@ -4127,26 +4487,14 @@ _maked) on 'on // PB makedoner k) or (tA V // PB korte _transp) or (t 'V: // PB stressed - transport -// PB final -sor - stress on previous syllable -_aggress) or =V -_assess) or =V - _cens) or =V -_decis) or =V -_defens) or =V -_dimiss) or =V -_divis) or =V -_kompress) or =V -_kondens) or =V -_process) or =V -_profess) or =V -_provis) or =V -_revis) or =V -_success) or =V - // PB when "ord" means 'word', the d isn't pronunced ord (++ oR // PB ord , forord // PB Exceptions to the or rule - "ord" doesn't mean "word" k) ord (el Vrd // PB kordel + conc) ord (e 'V:d // PB Concorde + g) ord (on V:d // PB name + _l) ord (_ V:d // PB + _l) ord (er_ Vrd // PB _akk) ord 'V:?d // PB stressed hv) ord (an Vrd // PB hvordan m) ord (A ord // PB morder @@ -4159,278 +4507,278 @@ _success) or =V ord (enen+ Vrd // PB ordenen t) ord (++ ord // PB torden, tordne j) ord (en oV // PB fjorden jorden + j) ord (an oRd // PB Jordan + j) ord (i oRd // PB jordisk ord (entlig+ 'Vrd // PB overordentlig - stressed ord (ne+ Vrd // PB ordne ord (nin 'Vrd // PB ordning, forordning - ordre (+ Vrdr3 // PB ordre, ordrebog + or (dre+ Vr // PB ordre, ordrebog k) ord (reng ord // PB kordrenge _) ord (ret+ or // PB ordret ord (retil+ Vrd // PB ordretilgang ord (ruk Vrd' // PB fordrukken - ord (i+ Vrd // PB ordinær + ord (in+ Vrd // PB ordinær b) ord (el Vrd' // PB bordel - j) ord (an oRd // PB Jordan ordonnans Vrdon'&ns // PB ordonnans ordrup ordr0b // PB Ordrup - Danish town C) ore (_ o:V // PB more, store m) orel or'&#l // PB morel _) orleans V:lens // PB New Orleans -// PB stress on previous syllable - '-tor_' nouns in da_list - &t) or ($p_alt ==V // karburator, rollator, multiplikator - &t) or (er$p_alt 'o: // karburatorer +// PB stress on previous syllable - '-tor_' (also -or) nouns in da_list + &) or ($p_alt+ ==V // karburator, rollator, multiplikator, junior + &) or (er$p_alt ''o: // karburatorer, juniorer + &n) or ($p_alt 'or // tenor + &f) or ($p_alt 'or // metafor, anafor &t) orium ($p_alt 'oiOm // don't spoil the -ium rule - laboratorium + &) or (isk$p_alt ''o //manipulatorisk // PB no stress on initial 'for' - 1.550 words. // Secondary stress on the next syllable after a syllable. - _f) or (@+ %V // PB fork'ølet + _f) or (@++ %V // PB fork'ølet, fordr'ev f) or (@ V, // PB s'ommerfork,ølet // exceptions to initial 'for' below - 'for' means "front/fore" - _f) or (a_ 'V // PB fora (plur. of 'forum') - _f) or (an_ 'V // PB foran - _f) or (ude_ 'V // PB forude - _f) or (ankørende 'V // PB forankørende - _f) or (annævnt'V // PB forannævnt - _f) or (ansat 'V // PB foransat - _f) or (anstille 'V // PB foranstillet - _f) or (anstående 'V // PB foranstående - _f) or (ben_ 'V // PB forben - _f) or (bens 'V // PB forbens - _f) or (benene 'V // PB forbenene - _f) or (behand 'V // PB forbehandle - _f) or (beho 'V // PB forbehold - _f) or (bered 'V // PB forberede - _f) or (bil 'V // PB forbillede - _f) or (bjerg 'V // PB forbjerg - _f) or (bogstav 'V // PB forbogstav - _f) or (bud_ 'V // PB forbud - _f) or (bund_ 'V // PB forbund - _f) or (bunds 'V // PB forbundsformand - _f) or (bøn 'V // PB forbøn - _f) or (censur 'V // PB forcensur - _f) or (danser 'V // PB fordanser - _f) or (del_ 'V // PB fordel - _f) or (dom 'V // PB fordom - _f) or (dring 'V // PB fordring, fordringdfri - _f) or (dæk_ 'V // PB fordæk - _f) or (dæks 'V // PB fordæks - _f) or (dækkene 'V // PB fordækkene - _f) or (dør 'OR // PB - _f) ore (+ '0:@ // PB foreberinge, foregribe - _f) ore (n V'e: // PB forene, forening - _f) or (el_ or // PB forel - _f) or (et_ 'o3 // PB foret + _f) or (a_+ 'V // PB fora (plur. of 'forum') + _f) or (an_+ 'V // PB foran + _f) or (ude_+ 'V // PB forude + _f) or (ankørende+ 'V // PB forankørende + _f) or (annævnt+ 'V // PB forannævnt + _f) or (ansat+ 'V // PB foransat + _f) or (anstille+ 'V // PB foranstillet + _f) or (anstående+ 'V // PB foranstående + _f) or (ben_+ 'V // PB forben + _f) or (bens+ 'V // PB forbens + _f) or (benene+ 'V // PB forbenene + _f) or (behand+ 'V // PB forbehandle + _f) or (beho+ 'V // PB forbehold + _f) or (bered+ 'V // PB forberede + _f) or (bil+ 'V // PB forbillede + _f) or (bjerg+ 'V // PB forbjerg + _f) or (bogstav+ 'V // PB forbogstav + _f) or (bud_+ 'V // PB forbud + _f) or (bund+ 'V // PB forbund +// _f) or (bunds+ 'V // PB forbundsformand + _f) or (bøn+ 'V // PB forbøn + _f) or (censur+ 'V // PB forcensur + _f) or (danser+ 'V // PB fordanser + _f) or (del_+ 'V // PB fordel + _f) or (dom+ 'V // PB fordom + _f) or (dring+ 'V // PB fordring, fordringdfri + _f) or (dæk_+ 'V // PB fordæk + _f) or (dæks+ 'V // PB fordæks + _f) or (dækkene+ 'V // PB fordækkene + _f) or (dør+ 'OR // PB + _f) ore (++ '0:3 // PB foreberinge, foregribe + _f) ore (n+ V'e: // PB forene, forening + _f) or (el_+ or // PB forel + _f) or (et_+ 'o3 // PB foret _f) or (elsk+ V' // PB forelske - _f) ore (ne+ V'e: // PB forene - _f) orend (e 'V,en // PB forende - _f) orenkl (e V'enkl // PB forenkle + _f) orend (e+ 'V,en // PB forende + _f) orenkl (e+ V'enkl // PB forenkle _f) orenkl (ing V'enkl // PB forenkling _f) orensis (k or'&#nsis // PB forensisk _f) oretag (som %V3't&: // PB foretagsom _f) orev (ige V'e:v // PB forevige - _f) or (fader 'V // PB forfader - _f) or (far 'V // PB forfar - _f) or (fædre 'O* // PB forfædre - _f) or (gårs O* // PB - f) or (ter V // PB plur. - _f) or (fang V // PB forfang - _f) or (felt V // PB forfelt - _f) or (film V // PB forfilm - _f) or (fjor V // PB forfjor - _f) or (ford V // PB forfordele - _f) or (forfod V // PB forfod - _f) or (forstærk V // PB forforstærker - _f) or (forsøg V // PB forforsøg - _f) or (fra V // PB forfra - _f) or (foryserum V // PB forfryserum - _f) or (fødder V // PB forfødder - _f) or (gast V // PB forgast - _f) or (gang 'V // PB forgang, forgangen - _f) or (gemak V // PB forgemak - _f) or (grund 'V // PB forgrund - _f) or (gænger V // PB forgænger - _f) or (gære V // PB forgære - _f) or (gård V // PB forgård - _f) or (hal V // PB forhal - _f) or (ham V // PB forhammer - _f) or (have V // PB forhave - _f) or (hen V // PB forhenværende - _f) or (histo V // PB forhistorie, forhistorisk - _f) or (hjul V // PB forhjul, forhjulstrukken - _f) or (hold V // PB forhold, forholdsvis + _f) or (fader+ 'V // PB forfader + _f) or (far+ 'V // PB forfar + _f) or (fædr+ 'V* // PB forfædre + _f) or (gårs+ Vr // PB + f) or (ter+ V // PB plur. + _f) or (fang+ V // PB forfang + _f) or (felt+ V // PB forfelt + _f) or (film+ V // PB forfilm + _f) or (fjor+ V // PB forfjor + _f) or (ford+ V // PB forfordele + _f) or (forfod+ V // PB forfod + _f) or (forstærk+ V // PB forforstærker + _f) or (forsøg+ V // PB forforsøg + _f) or (fra+ 'V // PB forfra + _f) or (foryserum+ V // PB forfryserum + _f) or (fødder+ V // PB forfødder + _f) or (gast+ V // PB forgast + _f) or (gang+ 'V // PB forgang, forgangen + _f) or (gemak+ 'V // PB forgemak + _f) or (grund+ 'V // PB forgrund + _f) or (gænger+ 'V // PB forgænger + _f) or (gære+ 'V // PB forgære + _f) or (gård+ 'V // PB forgård + _f) or (hal+ 'V // PB forhal + _f) or (ham+ 'V // PB forhammer + _f) or (have+ 'V // PB forhave + _f) or (hen+ 'V // PB forhenværende + _f) or (histo+ 'V // PB forhistorie, forhistorisk + _f) or (hjul+ 'V // PB forhjul, forhjulstrukken + _f) or (hold 'V // PB forhold, forholdsvis _f) or (holde %V // PB forholde sig til - _f) or (hud V // PB forhud - _f) or (hus V // PB forhus - _f) or (hæng V // PB forhæng - _f) or (hånd V // PB forhånd - _f) or (hånds V // PB forhåndsindtryk + _f) or (hud+ 'V // PB forhud + _f) or (hus+ 'V // PB forhus + _f) or (hæng+ 'V // PB forhæng + _f) or (hånd+ 'V // PB forhånd + _f) or (hånds+ 'V // PB forhåndsindtryk _f) or (ring_ V: // PB foring _f) or (ringen V: // PB foringen _f) or (kammer 'V // PB forkammer _f) or (kant V // PB forkant - _f) or (karl V // PB forkarl + _f) or (karl+ 'V // PB forkarl _f) orka (rl+ a // PB forkarl - _f) or (klog V // PB forklog, forklogskab - _f) or (kontor V // PB forkontor - _f) or (krop V // PB forkrop - _f) or (kvinde V // PB forkvinde - _f) or (kæmper V // PB forkæmper + _f) or (klog+ 'V // PB forklog, forklogskab + _f) or (kontor+ 'V // PB forkontor + _f) or (krop+ 'V // PB forkrop + _f) or (kvinde+ 'V // PB forkvinde + _f) or (kæmper+ 'V // PB forkæmper _f) or (kærlighed 'V // PB forkærlighed - _f) or (køb V // PB forkøbet, forkøbsret + _f) or (køb+ 'V // PB forkøbet, forkøbsret _f) or (kørselsret V // PB forkørselsret _f) or (lag 'V // PB forlag _f) or (lags 'V // PB forlagsret _f) or (land 'V // PB forland - _f) or (lem V // PB forlem - _f) or (lyd V // PB forlyd + _f) or (lem+ 'V // PB forlem + _f) or (lover+ 'V // PB forlover + _f) or (lyd+ 'V // PB forlyd _f) or (lygte 'Vr // PB forlygte - _f) or (lys V // PB forlys + _f) or (lys+ 'V // PB forlys _f) orlyst Vl'Wsd // PB forlyste, forlystelse _f) or (lægger 'V // PB forlægger _f) or (læns 'V // PB forlæns _f) or (læse 'V // PB forlæse _f) or (maldehyd 'V // PB formaldehyd - _f) or (mand 'V // PB formand, formandsskifte - _f) or (mbar 'V // PB formbar - _f) or (mbrød 'V // PB formbrød + _f) or (mand+ 'V // PB formand, formandsskifte + _f) or (mbar+ 'V // PB formbar + _f) or (mbrød+ 'V // PB formbrød _f) or (me+ 'V // PB forme - _f) or (melig 'V // PB formelig - _f) ormer (_ 'VrmV // PB former - problem with "formér" - _f) or (mfast 'Vr // PB formfast - _f) or (mfri 'Vr // PB formfri - _f) or (fuldendt 'Vr // PB formfuldendt - _f) or (mgiv 'Vr // PB formgive - _f) or (middag 'Vr // PB formiddag - _f) or (mkage 'Vr // PB formkage - _f) or (mlære 'Vr // PB formglære - _f) or (mløs 'Vr // PB formløs - _f) or (mning 'Vr // PB formning - _f) or (mor 'Vr // PB formor - like forefather - _f) or (mødre 'Vr // PB formødre - _f) or (mpresse 'Vr // PB formpresse - _f) or (ms 'Vr // PB formsikker, formskære, formsprog, formstof - _f) ormssag (K 'Vrm?s,sa // PB formssag - _f) or (mt 'Vr // PB formtørre - _f) or (mue 'Vr // PB formue, formueskat - _f) or (mynder 'Vr // PB formynder, formynderisk - _f) or (mål 'Vr // PB formål, formålstjenelig - _f) or (navn 'Vr // PB fornavn - _f) or (nem_ 'Vr // PB fornem - _f) or (omtale 'Vr // PB foromtale - _f) or (ord 'Vr // PB forord + _f) or (melig+ 'V // PB formelig + _f) ormer (_+ 'VrmV // PB former - problem with "formér" + _f) or (mfast+ 'Vr // PB formfast + _f) or (mfri+ 'Vr // PB formfri + _f) or (fuldendt+ 'Vr // PB formfuldendt + _f) or (mgiv+ 'Vr // PB formgive + _f) or (middag+ 'Vr // PB formiddag + _f) or (mkage+ 'Vr // PB formkage + _f) or (mlære+ 'Vr // PB formglære + _f) or (mløs+ 'Vr // PB formløs + _f) or (mning+ 'Vr // PB formning + _f) or (mor+ 'Vr // PB formor - like forefather + _f) or (mødre+ 'Vr // PB formødre + _f) or (mpresse+ 'Vr // PB formpresse + _f) or (ms+ 'Vr // PB formsikker, formskære, formsprog, formstof + _f) ormssag+ (K 'Vrm?s,sa // PB formssag + _f) or (mt+ 'Vr // PB formtørre + _f) or (mue+ 'Vr // PB formue, formueskat + _f) or (mynder+ 'Vr // PB formynder, formynderisk + _f) or (mål+ 'Vr // PB formål, formålstjenelig + _f) or (navn+ 'Vr // PB fornavn + _f) or (nem_+ 'Vr // PB fornem + _f) or (omtale+ 'Vr // PB foromtale + _f) or (ord+ 'Vr // PB forord _f) or (ordn or // PB forordning - _f) or (over 'Vr // PB forover - _f) or (panthaver 'Vr // PB forpanthaver - _f) or (parti 'Vr // PB forparti - _f) or (post 'Vr // PB forpost - _f) or (praktik 'Vr // PB forpraktik - _f) or (premiere 'Vr // PB forpremiere - _f) or (programmere 'Vr // PB forprogrammere - _f) or (prøve 'Vr // PB forprøve - _f) or (på 'Vr // PB forpå - _f) or (rang 'Vr // PB forrang - _f) or (rest 'Vr // PB forrest - _f) or (ret 'Vr // PB forret - _f) or (rider 'Vr // PB forrider - _f) or (rige 'Vr // PB forrige - _f) or (rude 'Vr // PB forrude - _f) or (råd_ 'Vr // PB forråd - _f) or (slag 'Vr // PB forslag - _f) or (sanger 'Vr // PB forsanger - _f) or (sats 'Vr // PB forsats, forsatsrude - _f) or (side 'Vr // PB forside - _f) or (ske 'Vr // PB forske - _f) or (skn 'Vr // PB forskning - _f) or (skelli %Vr // PB forskellig - _f) or (sker 'Vr // PB forsker, forskerby - _f) or (skel_ 'Vr // PB forskel - _f) or (skelsbehandl 'Vr // PB forskelsbehandle, -behandling - _f) or (skelsløs 'Vr // PB forskelsløs - _f) or (skol 'Vr // PB forskole, forskoling - _f) or (skrift 'Vr // PB forskrift - _f) or (skud 'Vr // PB forskud - _f) or (skyl 'Vr // PB forskyl - _f) or (skære 'Vr // PB forskære, -bræt - _f) or (skærm 'Vr // PB forskærm - _f) or (slag_ 'Vr // PB forslag - _f) or (slags 'Vr // PB forslas, -stiller - _f) or (læbe 'Vr // PB forlæbe - _f) or (smag 'Vr // PB forsmag - _f) or (sommer 'Vr // PB forsommer - _f) or (sorg 'Vr // PB forsorg - _f) or (spand 'Vr // PB forspand - _f) or (spil_ 'Vr // PB forspil - _f) or (spillet 'Vr // PB forspillet - _f) or (spillene 'Vr // PB forspillene - _f) or (spir 'Vr // PB forspire - _f) or (spring 'Vr // PB forspring - _f) or (spændt 'Vr // PB forspændt - _f) or (stad 'Vr // PB forstad, forstadium - _f) or (stander 'Vr // PB forstander - _f) or (stavelse 'Vr // PB forstavelse - _f) or (stavn 'Vr // PB forstavn - _f) or (stbotanik 'Vr // PB forstbotanik - _f) or (stkandidat 'Vr // PB forstkandidat - _f) or (stlig 'Vr // PB forstlig - _f) or (stmand 'Vr // PB forstmand - _f) or (stmæssig 'Vr // PB forstmæssig - _f) or (studie 'Vr // PB forstudie - _f) or (studium 'Vr // PB forstudum - _f) or (stue 'Vr // PB forstue - _f) or (stvæsen 'Vr // PB forstvæsen - _f) or (stzoologi 'Vr // PB forstzoologi - _f) or (stævn 'Vr // PB forstævn - _f) or (svar_ 'Vr // PB forsvar - _f) or (svarer 'Vr // PB forsvarer - _f) or (svars 'Vr // PB forsvars chef -// _f) or (syn_ 'Vr // PB forsyn -// _f) or (synet 'Vr // PB forsynet - _f) or (sæde 'Vr // PB forsæde - _f) or (sæt 'Vr // PB forsæt - _f) or (så_ 'Vr // PB forså - _f) ortaler 'Vrt&lV // PB fortaler - _f) or (tand 'Vr // PB fortand - _f) or (tands 'Vr // PB fortands - _f) or (tænder 'Vr // PB fortænder - _f) or (tegn_ 'Vr // PB fortegn - _f) or (tegningsret 'Vr // PB fortegningsret - _f) or (tekst 'Vr // PB fortekst - _f) or (telt 'Vr // PB fortelt - _f) or (tfarende 'Vr // PB fortfarende - _f) or (tid 'O: // PB fortid - _f) or (til 'Vr // PB fortil - _f) or (tløbende 'Vr // PB fortløbende - _f) or (tog 'Vr // PB fortog - _f) or (tov 'Vr // PB fortov - _f) or (trappe 'Vr // PB fortrappe - _f) or (trin_ 'Vr // PB fortrin - _f) or (trins 'Vr // PB fortrinsret - _f) or (trop 'Vr // PB fortrop - _f) or (tryk 'Vr // PB fortryk - _f) or (tsætte 'Vr // PB fortsætte - _f) or (tunge 'Vr // PB fortunge - _f) or (tæppe 'Vr // PB fortæppe - _f) or (ud Vr // PB ud, forud, forudsætte - _f) oruden (_ or'uD-n // PB foruden - _f) or (valg 'Vr // PB forvalg - _f) or (varm 'Vr // PB forvarme, forvarmning - _f) or (vars 'Vr // PB forvarsle, forvarsling - _f) or (vask_ 'Vr // PB forvask - _f) or (vejen 'Vr // PB forvejen - _f) or (værelse 'Vr // PB forværelse - _f) or (åd 'Vr // PB foråd - _f) or (år 'Vr // PB forår + _f) or (over+ 'Vr // PB forover + _f) or (panthaver+ 'Vr // PB forpanthaver + _f) or (parti+ 'Vr // PB forparti + _f) or (post+ 'Vr // PB forpost + _f) or (praktik+ 'Vr // PB forpraktik + _f) or (premiere+ 'Vr // PB forpremiere + _f) or (programmere+ 'Vr // PB forprogrammere + _f) or (prøve+ 'Vr // PB forprøve + _f) or (på+ 'Vr // PB forpå + _f) or (rang+ 'Vr // PB forrang + _f) or (rest+ 'Vr // PB forrest + _f) or (ret+ 'Vr // PB forret + _f) or (rider+ 'Vr // PB forrider + _f) or (rige+ 'Vr // PB forrige + _f) or (rude+ 'Vr // PB forrude + _f) or (råd_+ 'Vr // PB forråd + _f) or (slag+ 'Vr // PB forslag + _f) or (sanger+ 'Vr // PB forsanger + _f) or (sats+ 'Vr // PB forsats, forsatsrude + _f) or (side+ 'Vr // PB forside + _f) or (ske+ 'Vr // PB forske + _f) or (skn+ 'Vr // PB forskning + _f) or (skelli+ %Vr // PB forskellig + _f) or (sker+ 'Vr // PB forsker, forskerby + _f) or (skel_+ 'Vr // PB forskel + _f) or (skelsbehandl+ 'Vr // PB forskelsbehandle, -behandling + _f) or (skelsløs+ 'Vr // PB forskelsløs + _f) or (skol+ 'Vr // PB forskole, forskoling + _f) or (skrift+ 'Vr // PB forskrift + _f) or (skud+ 'Vr // PB forskud + _f) or (skyl+ 'Vr // PB forskyl + _f) or (skære+ 'Vr // PB forskære, -bræt + _f) or (skærm+ 'Vr // PB forskærm + _f) or (slag_+ 'Vr // PB forslag + _f) or (slags+ 'Vr // PB forslas, -stiller + _f) or (læbe+ 'Vr // PB forlæbe + _f) or (smag+ 'Vr // PB forsmag + _f) or (sommer+ 'Vr // PB forsommer + _f) or (sorg+ 'Vr // PB forsorg + _f) or (spand+ 'Vr // PB forspand + _f) or (spil_+ 'Vr // PB forspil + _f) or (spillet+ 'Vr // PB forspillet + _f) or (spillene+ 'Vr // PB forspillene + _f) or (spir+ 'Vr // PB forspire + _f) or (spring+ 'Vr // PB forspring + _f) or (spændt+ 'Vr // PB forspændt + _f) or (stad+ 'Vr // PB forstad, forstadium + _f) or (stander+ 'Vr // PB forstander + _f) or (stavelse+ 'Vr // PB forstavelse + _f) or (stavn+ 'Vr // PB forstavn + _f) or (stbotanik+ 'Vr // PB forstbotanik + _f) or (stkandidat+ 'Vr // PB forstkandidat + _f) or (stlig+ 'Vr // PB forstlig + _f) or (stmand+ 'Vr // PB forstmand + _f) or (stmæssig+ 'Vr // PB forstmæssig + _f) or (studie+ 'Vr // PB forstudie + _f) or (studium+ 'Vr // PB forstudum + _f) or (stue+ 'Vr // PB forstue + _f) or (stvæsen+ 'Vr // PB forstvæsen + _f) or (stzoologi+ 'Vr // PB forstzoologi + _f) or (stævn+ 'Vr // PB forstævn + _f) or (svar_+ 'Vr // PB forsvar + _f) or (svarer+ 'Vr // PB forsvarer + _f) or (svars+ 'Vr // PB forsvars chef + _f) or (sæt+ 'Vr // PB forsæt + _f) or (så_+ 'Vr // PB forså + _f) ortaler+ 'Vrt&lV // PB fortaler + _f) or (tand+ 'Vr // PB fortand + _f) or (tands+ 'Vr // PB fortands + _f) or (tænder+ 'Vr // PB fortænder + _f) or (tegn_+ 'Vr // PB fortegn + _f) or (tegningsret+ 'Vr // PB fortegningsret + _f) or (tekst+ 'Vr // PB fortekst + _f) or (telt+ 'Vr // PB fortelt + _f) or (tfarende+ 'Vr // PB fortfarende + _f) or (tid+ 'O: // PB fortid + _f) or (til+ 'Vr // PB fortil + _f) or (tløbende+ 'Vr // PB fortløbende + _f) or (tog+ 'Vr // PB fortog + _f) or (tov+ 'Vr // PB fortov + _f) or (trappe+ 'Vr // PB fortrappe + _f) or (trin_+ 'Vr // PB fortrin + _f) or (trins+ 'Vr // PB fortrinsret + _f) or (trop+ 'Vr // PB fortrop + _f) or (tryk+ 'Vr // PB fortryk + _f) or (tsætte+ 'Vr // PB fortsætte + _f) or (tunge+ 'Vr // PB fortunge + _f) or (tæppe+ 'Vr // PB fortæppe + _f) or (ud+ 'Vr // PB ud, forud, forudsætte + _f) oruden (_+ or'uD-n // PB foruden + _f) or (valg+ 'Vr // PB forvalg + _f) or (varm+ 'Vr // PB forvarme, forvarmning + _f) or (vars+ 'Vr // PB forvarsle, forvarsling + _f) or (vask_+ 'Vr // PB forvask + _f) or (vejen+ 'Vr // PB forvejen + _f) or (værelse+ 'Vr // PB forværelse + _f) or (åd+ 'Vr // PB foråd + _f) or (år+ 'Vr // PB forår .group p p p pp p -// &) p b -// &) pp b _) på (P2 p'V // PB prefix - påtage, påmontere _) på (ske p'O // PB not a prefix - påske _) på (lide pV // PB pålidelig + på (virk pV // PB miljøpåvirkning &) p (_ p // PB hjælp p (syk // psykolog [s,ykol'o] sym) p (tom // PB silent p @@ -4440,6 +4788,7 @@ _success) or =V praline pRAlin'e // PB punchline pVnSlajn // PB parfait pAf'E // PB + presbyterian prEsbytEri'&n // PB protege prod@S'e // PB protege protegé prod@S'e // PB protegé _) passager p&s&sj'er // PB passager @@ -4453,6 +4802,8 @@ _success) or =V _) pearl (_ pW:l // PB Pearl Harbor pierre pjE:r // PB French name perkins pWkens // PB name + pissoir pesw'A: // PB + peace pi:s // PB Greenpeace .group ph @@ -4463,16 +4814,18 @@ _success) or =V q k @) que =k // PB petanque, Monique + bou) quet k''e // PB queen kwi:n // PB te) qu (ila 'k // PB tequila quiz kvis // PB quijote kiS'Vt // PB name quixote kiS'Vt // PB name + qu (isling kv // PB .group r r R rr R - _) rhode RWwd // PB Rhodes + _) rhode RWwd // PB Rhodes rickshaw rekSV: // PB rickshaw rickshawer rekSV:V // PB rickshawer _) reservoir resErvo'a: // PB @@ -4485,12 +4838,14 @@ _success) or =V roger rVdZV // PB resolution REsoluS'on // PB _) road (_ rWwd // PB + rugby RVgbi // PB virtual_) reality ri'&liti // PB + reagan REg&n // PB name r (K r // not followed by a vowel hve) r r // PB hver b) r r // bror - Cd) r (e_ dr // PB andre - Ad) r (e_ R // PB andre +// Cd) r (e_ r // PB andre +// Ad) r (e_ R // PB andre se) r (_ r // PB ser he) r (_ r // PB her je) re (s 3 // PB jeres @@ -4522,7 +4877,7 @@ transpo) r (t //PB transport // The stress is kept in compounds where a word is added after the word. // If a word is added before the word, it reverts to normal stress // If -isk is added the previous syllable gets the stress - &) ri ($p_alt R'i // maleri + &) ri ($p_alt R''i // maleri, infanterist &) ri (sk$p_alt =Ri // malerisk, symmetrisk .group s @@ -4532,6 +4887,8 @@ transpo) r (t //PB transport sc s // PB scene ma) sc (ara sk' // PB di) sc (ount sk' // PB + sc (rap sk // PB scrapbog + sc (oo sk // PB scooter, scoop _) sh S // PB shaman shaw SO: // PB name sc (or sk // PB score @@ -4546,16 +4903,16 @@ transpo) r (t //PB transport slå) s s // PB keep the s for the å rule - slås nervø) s s // PB keep the s for the ø rule generø) s s // PB keep the s for the ø rule - lø) s s // PB keep the s for the el rule - mageløs - en) s s // PB keep the s for the e rule - rense - ti) s s // PB keep the s for the i rule - laryngitis - ti) ss s // PB only one s - tisser - lo) s s // PB keep the s for the o rule - kolos +// lø) s s // PB keep the s for the el rule - mageløs +// en) s s // PB keep the s for the e rule - rense +// ti) s s // PB keep the s for the i rule - laryngitis +// ti) ss s // PB only one s - tisser +// lo) s s // PB keep the s for the o rule - kolos afte) s s // PB keep the s for the f rule - aftes - tav) s s // PB keep the s for the a rule - tavss - trod) s s // PB keep the s for the ds rule - trods - god) s s // PB keep the s for the o rule - goods - klod) s s // PB keep the s for the o rule - klods +// tav) s s // PB keep the s for the a rule - tavss +// trod) s s // PB keep the s for the ds rule - trods +// god) s s // PB keep the s for the o rule - goods +// klod) s s // PB keep the s for the o rule - klods provin) s s // PB keep the s for the o rule - provins - stressed i strabad) s s // PB not a suffix jere) s s // PB not a suffix @@ -4574,9 +4931,11 @@ interferen) s s // PB not a suffix residen) s s // PB tilpa) s s - s (C s pu) sh S // PB pusher mo) sh (e S // PB name + tri) sh S // PB name + mar) sh S // PB Marsha + na) sh S // PB name e) scort sk'V:t // PB franci) sc (o sk // PB Francisco e) sc (obar sk // PB Spanish name @@ -4606,6 +4965,7 @@ franci) sc (o sk // PB Francisco sheik Sajk // PB sicilien sis'ili@n // PB - Italian island scene sen@ // PB + scener senV // PB i) scene (s s'en@ // PB stressed 'e - iscenesætte speak spi:k // PB eSpeak siegfried _^_DE // PB @@ -4624,6 +4984,11 @@ franci) sc (o sk // PB Francisco _) stone sdoun // PB namde - Stone _) sir (_ sW: // PB Sir Arthur sher (wood SW // PB Sherwood Forrest + surf sWf // PB windsurfing + la) sur sur // PB lasurfarve + _) sugar (_ SugV // PB Sugar Ray + savoir s&voa: // PB savoir-faire + er_) sig (_til saj // PB avoid [si] - glæder sig [saj] til et_) sig (_til saj // PB avoid [si] - glædet sig [saj] til e_) sig (_til saj // PB avoid [si] - glæde sig [saj] til @@ -4631,12 +4996,15 @@ franci) sc (o sk // PB Francisco er_) sig (_ saj // PB avoid [si] - vænner sig - test! et_) sig (_ saj // PB avoid [si] vænnet sig - test! e_) sig (_ saj // PB avoid [si] vænne sig - test! + gøre_) sig (_det saj // PB gøre sig det besvær + sig (_det si // PB sig det med blomster bare_) sig (_ si // PB bare sig sanddheden _af_) sig (_ saj // PB avoid [si] af sig selv _han_) sig (_ saj // PB avoid [si] sluttede han sig til t_) sig (_ saj // PB holdt sig fra, opført sig sat_) sig (_ saj // PB sat sig op mod lod_) sig (_ saj // PB lod sig udskrive + gav_) sig (_ saj // PB gav sig til, overgav sig _) sig (_selv saj // PB noget for sig selv for_) sig (_ saj // PB se noget for sig fra_) sig (_ saj // PB slå fra sig @@ -4646,10 +5014,12 @@ franci) sc (o sk // PB Francisco den_) sig (_ saj // PB holder den sig flydende _) sig (_med saj // PB slå_) sig (_ saj // PB + på_) sig (_ saj // PB slår_) sig (_ saj // PB _) sig (_alene saj // PB klare sig alene vende_) sig (_ saj // PB erklære_) sig (_ saj // PB +betro_) sig (_ saj // PB føle_) sig (_ saj // PB hygge_) sig (_ saj // PB skød_) sig (_ saj // PB @@ -4657,27 +5027,40 @@ hygge_) sig (_ saj // PB kom_) sig (_ saj // PB brød_) sig (_ saj // PB ør_) sig (_ saj // PB klør sig, gør sig + man_) sig (_ saj // PB føler man sig _) sig (_ud_ saj // PB rode sig ud i _) sig (_af_ saj // PB tage sig af _) sig (_på_ saj // PB slå sig på _) sig (_ind_ saj // PB bilde sig ind ak_) sig (_ saj // PB drak sig fuld gik_) sig (_ saj // PB gik sig en tur + så_) sig (_om saj // PB så sig om/omkring + ser_) sig (_om saj // PB ser sig om/omkring red_) sig (_ saj // PB red sig en tur - s) s -// PB use [sV] instead pf [sO] +// PB use [sV] instead of [sO] er_) så (_ sV // PB du virker så bekendt es_) så (_ sV // PB du føles så skrøbelig _) så (_fik_ sV // PB så fik du en idé r_) så (_bange sV // PB jeg er/var så bange + re_) så (_ sV // PB være så dum blev_) så (_ sV // PB det blev så slemt + med_) så (_ sV // PB med så kort varsel hold_) så (_ sV // PB hold så op med det +vil_du_) så (_ sV // PB vil du så gøre det? +vil_de_) så (_ sV // PB vil De så gøre det? +vil_i_) så (_ sV // PB vil I så gøre det? + vil_) så (_ sV // PB jo, du vil så _) så (_havde_ sV // PB + _) så (_bliver_ sV // PB + _) så (_blev_ sV // PB + _) så (_have_ sV // PB _) så (_kan_ sV // PB _) så (_går_ sV // PB + _) så (_gå_ sV // PB _) så (_her_ sV // PB _) så (_lad_ sV // PB + _) så (_nær_ sV // PB _) så (_skete_ sV // PB _) så (_skal_ sV // PB _) så (_ved_ sV // PB @@ -4686,13 +5069,21 @@ hygge_) sig (_ saj // PB _) så (_god_ sV // PB _) så (_gik_ sV // PB _) så (_gøre_ sV // PB + _) så (_sikker_ sV // PB + _) så (_besværlig sV // PB _er_du_) så (_ sV // PB _gør_han_) så (_ sV // PB +_vil_han_) så (_ sV // PB +_vil_hun_) så (_ sV // PB +_vil_de_) så (_ sV // PB +_vil_i_) så (_ sV // PB og_) så (_videre sV // PB +// _) så (_du_den sO // PB kompromi) s ' // PB stress added succe) s ' shirt S3:t // PB T-shirt + steak stEjk // PB smiley smajli // PB straight sdrE:jt // PB seattle si'&t@l // PB @@ -4703,6 +5094,10 @@ kompromi) s ' // PB stress added signore _^_it // PB sidney sidni // PB city soign so&N // PB soignere + stephen stiv@n // PB name + sullivan sVliv3n // PB name + special (_branch spEsj3l // PB Special Branch + scone skVn // PB .group t t t @@ -4710,6 +5105,7 @@ kompromi) s ' // PB stress added tj tS // PB tja, tjald, atju, tjek _) t (_ te: // the letter T _) t (_shirt t'i:% // PB T-shirt + _) t (_bone t'i:% // PB T-bone na) tt (øj tt, // PB tombs tu:ms // PB Tombstone toast tVwst// PB toasstbrød @@ -4717,37 +5113,14 @@ kompromi) s ' // PB stress added terry teri // PB e) tt (id t|t // PB ettiden e) tt (al t|t // PB ettal - le) tt (e t // PB slette - p) t t // PB toptitel - s) t d // PB stor - A) t (ere t // PB invitere - A) t (eri t // PB materiel - ve) t (er t // PB veteran - vi) t (er t // PB inviter - teress (ant tr@s // PB interessant - in) teresse t@r'as@ // PB interesse - in) teresser t@r'asV // PB interesse - in) teresseret tr3s'er@D // PB interesseret + teress (ant tr3s // PB interessant + in) teresse t3r'as@ // PB interesse + in) teresser t3r'asV // PB interesse + in) teresseret tr3s'er3D // PB interesseret in) teresserer tr3s'erV // PB interesserer in) teressere tr3s'erV // PB interessere - r) t (e t // PB abortering - re) t (+ t // ret - re) tt (+ t // PB rette - emen) t - cemen) t t - demen) t t // PB dement -elemen) t t -glemen) t - &) tN d // PB changed from [t] - emen) t (al t -glemen) t (al t - poin) t (e t - lemen) t (er t - i) t (et t // PB words with 'itet' - vulgaritet, perversitet th th thunder TVndV // PB - le) t (+ t // PB let - le) tt t // PB slette tredivtedel tr&fd@del // PB tredvtedel tr&fd@del // PB trenchcoat tr'EnSk,oud // PB @@ -4761,6 +5134,7 @@ glemen) t (al t _) tape (_ tEjp // PB gaffatape world_) trade trEjd // PB the_) times tajms // PB newspaper + tokyo tVkjo // PB // PB final -tek - stressed e _apo) tek t'ek @@ -4831,36 +5205,74 @@ meningi) ti (s =ti lek) ti (e S ak) ti (e S // PB aktie &) ti (on+ S // station, dispotion - bas) ti (on // PB + bas) ti (on ti // PB ti (øs+ S // tendentiøs pa) ti (ent S // PB patient kvo) ti (en S // PB kvotient - r) til tel // PP hertil, dertil - _poli) ti (k t'i // PB politik - - _poli) ti (ker =ti // PB + r) til (_ tel // PP hertil, dertil +// _poli) ti (k t'i // PB politik .group u u u +// PB general rule: [O] after d/l + L03) u (f O // PB luft, duft + +// PB general rule: [O] after consonant followed by k/g/h + C) u (L01 O // frugt, fugt, lugt, lugaf + C) u (L01L04 u // Jugoslavien + C) u (L01e+ O // lunge + br) u (g u // PB + k) u (k u // PB + b) u (gse u // PB bugsere + gl) u (g u // PB glugger, glughul + fn) u (g u // PB snefnug + u (gl+ u // PB fuglene, uglerne + br) u (gt O // PB + sl) u (g u // slugt, sluge + Cl) u (k O // PB sluk, pluk + l) ukaf Og'& // PB sygelukaf + +// PB general rule: [0] after l/d followed by ns + L03) u (ns 0 // PB luns, dunst + +// PB general rule: followed by ng: [O] + u (ng 0 // PB lunge, unge + +// PB general rule: [O] followed by nd + u (nd O // PB grund, rund, underligt, undtage + p) u (nd u // PB pund + +// PB general rule: Consonant + r + u + p/b = [O] + Cr) u (L06 O // PB broad general rule - skrub + tr) u (L06 u // PB strube, trup + gr) u (L06 u // PB gruble + + m) u (L01 0 // PB mug, mukke + sm) ug uw // PB i smug, smugkigge + +// PB general rule: m/n + u + rre: [O] + L09) u (rre O // PB snurre, knurre, murre + // PB remove u in order to make the -ig/elig rule (group i) work with u + -ig list words // e.g. u+erværdig [uErv'Erdi] will keep its stress on the next to last syllable. _) u (@@+P1 u // PB exceptions - u isn't a prefix _) u (nd+ O // underfuld, undtage + _) u (ng+ O // PB ungdommelig u (gle+ u // ugle _p) u (b_ V // PB u (hyre+ u u (enig+ u' uformel ufVm'el // PB u (ltima u // PB ultimatum + u (ltra u // PB ultraviolet u (denfor+ u // PB u (dgrundelig+ u // PB u (imodståelig u // PB u (ni++ u // uniform, universitet u (den u // udenfor - u (ng++ 0 u (ge++ u // ugerne _) u (r++ u // ur, urrem, uret _) u (retfæ++P1 u // uretfærdig - prefix @@ -4869,12 +5281,14 @@ meningi) ti (s =ti u (topi u // PB uskyldig usg'yldi // PB d) u (blin V // PB city + _st) u (p_ O // PB rub og stup // PB nouns with final -um in da_list - stress on previous syllable &) um ($p_alt =Om // PB jubilæum // PB stressed -ure - $alt words (French) in da_list pronounced [y:V] - &) ure (+++$p_alt 'y:V // frisure + &) ure (+++$p_alt ''y:V // frisure + &) ure (re+++ yr''e // PB manicurerede &out) ure ($p_alt 'y:r // couture - without [V] because fashion people talk like that // PB -ure without stress after a syllable @@ -4901,7 +5315,7 @@ meningi) ti (s =ti @) tourn) ure y:V // PB final -tur in da_list - stressed u - &t) ur ($p_alt 'ur // struktur + &t) ur ($p_alt ''ur // struktur &t) ur (el$p_alt ur' // strukturel _komf) ur 'ur // PB @@ -4923,7 +5337,8 @@ meningi) ti (s =ti _) ud (ød+P2 ud // udødelig _) ud (åd+P2 ud _) ud (en+ uD - u (nK u + _) ud (kig uD // udkigspost (another rule overrides a silent g rule) + u (nL08 O // PB kunst br) unch VnS // PB b) u (ffer V // PB buffer @@ -4933,15 +5348,12 @@ meningi) ti (s =ti st) u (nt V // PB stuntman _) d) u (ncan V // PB name b) urg (er Wg // PB - u (ng O // PB ung - u (mK O + u (mK O // dum _) usa (_ u:|es|'& // PB _) usa's (_ u:|es|'&s // PB s) ur (fe 3: // PB surfe s) urfer '3:fV // PB surfer s) ur (fb 3: // PB surfbræt - u (nd O // PB underligt, undtage - p) u (nd u // PB pund p) u (nch O // PB _sek) u (nd 'O // PB stressed sek) u (ndæ O // PB sekundær @@ -4957,27 +5369,20 @@ meningi) ti (s =ti col) u (mb 'O // PB Columbia, columbusæg kent) ucky 'Vki // PB calc) u (tta 'V // PB - l) u (f O // PB luft bl) u (fæ u // PB blufærdig -// l) u (gt 0 // PB -// b) u (gt 0 // PB -// fr) u (gt 0 // PB -// f) u (gt 0 // PB fugt - m) u (L11 0 // PB mug sm) u (gl u // PB smugling - C) u (gt O // frugt, fugt, lugt sl) u (gt u // PB b) ug (ta u // PB bugtaler l) u (n_ u // PB lun l) u (ne u // PB lune l) u (nte 0 // PB lunte j) u (nt 0 // PB junta - l) u (ka u // Lukas - h) u (nd u // PB hund - r) u (s u - r) u (st O // PB udrustning + l) u (kas u // Lukas + r) u (st O // PB udrustning, veludrustet + fr) u (s u // PB frustrerende _pr) u (st u // PB pruste ue (_ u: // PB due, vindue, statue + fl) ue u3 // PB aven) ue 'y // PB alb) ue u: // PB albuerum st) ue u: // PB stuearrest @@ -4989,10 +5394,10 @@ meningi) ti (s =ti _konvol) u (t 'u // PB stressed _årh) u (ndrede 'u // PB stressed centrif) u (g 'u // PB stressed + kæng) u (ru 'u_ // PB stressed l) ug (e u: h) u (lt u // PB hult - adjective "et hult træ" h) u (le u: // PB hule - adjective and noun - h) u (g O // PB hugge hj) u (lp O // PB hjulpet hond) u (ra 'u: // PB Honduras u (lje 'u // PB patrulje, badulje @@ -5002,88 +5407,95 @@ centrif) u (g 'u // PB stressed trib) u (ne y // PB unstressed after a syllable _deb) ut 'y // PB stressed, silent t vestib) u (l 'y // PB vestibule + fl) ute yt // PB deb) ut y // PB unstressed after a syllable, silernt t p) u (ré y // PB tomatp) ure yre // PB tomatp) uré yre // PB j) u (ice u: // PB juice - k) u (nne o //PB kunne + kn) u (b O // PB knubs _k) u (n_ 0 // PB kun kl) u (ns 0 // PB k) u (l O // PB kulmine + sk) u (lp u // PB skulptur k) u (lL05 u // PB okular k) ulret ulRVD // PB - k) u (li u // PB kulisse + k) u (lL04 u // PB kulisse, kulørt hovedk) u (ls u // PB k) u (ld u // PB kulde + _k) u (llede u // PB den kullede greve k) u (ldio O // PB kuldioxid omk) u (ld 'u // PB imp) u (ls 'u // PB stressed - k) u (le u // PB kule - sk) u (ll+ u // PB skulle - sk) u (le u: // PB + k) u (C% u PB skulle, kullet + k) u (Ce u: PB skule, kule + L08) u (L02% 0 PB skuffe + sk) u (b O // PB skub, skubbe k) u (lt u // PB kultur - d) u (k 0 // PB duk, dukke d) u (kti u // PB obduktion - u (kk 0 // PB dukke, stukket +// u (kk 0 // PB dukke, stukket ll) u (p V // PB bryllup - l) ukaf Og'& // PB sygelukaf - br) u (gt O // PB brugt +// br) u (gt O // PB brugt tr) u (ff O // PB truffet t) u (nn 0 // PB tunnel m) u (nt 0 // PB munter sn) u (L06 0 // PB snup sn) u (ble u // PB - s) u (L06 0 // PB suppe + s) u (L06% 0 // PB suppe s) u (bli %u // PB sublim s) u (pra u // PB latin s) u (pple u // PB suppleant s) u (bs u // PB substitut u (nk 0 // PB sunket h) u (n u // PB hunkøn - s) u (per u // PB + h) u (rtig O // PB hurtigtog s) u (k 0 // PB suk, sukker - sk) u (f 0 // PB skuffe - sk) u (b O // PB skubbe - skr) u (b O // PB skrubbe - C) u (L06 O // PB broad general rule - sl) u (pp 0 // PB sluppet + sl) u (p O // PB sluppet, løssluppen v) u (g 0 // PB vugge f) u (L06 0 // PB fup + h) u (l O // PB hul - noun - h) u (lbrys u // PB hulbrystet - h) u (L11L11 O // PB hugge + smuth) u (l O // PB smuthulmager + h) u (lC u // PB hulke, hulbrystet + h) u (lsøm O // PB + knaph) u (l O // PB knaphulsblomst + h) u (ltang O // PB + h) u (lske O // PB + h) u (lbånd O // PB + h) u (ljern O // PB + h) u (lle O // PB hulledame + + h) u (L01% O // PB hugge dr) u (k O // PM fordrukken - d) u (ft 0 // PB duft p) u (f O // PB f) u (n+ 0 // PB funktion, karpunkel - p) u (k 0 // PB pukle p) u (lv 0 // PB pulver _r) u (b_ O // PB rub - n) u (l 0 // PB nul - nn) u (lle u // PB annullere + _n) u (l 0 // PB nul _r) u (bbe O // PB rubbe, rubbet k) u (ffert O - b) u (k O // PB buk g) ui (de ai - g) u (st O aug) u (st 'O PB stressed - the month - the name is in da_list with $capital g) u (f O // PB guffe g) ulv Ol // PB gulv - silent v - l) u (k O - L09) u (k 0 // PB O? changed to 0 - smukkere + g) ulv (e Olv // PB gulve + sL09) u (C O // PB smukkere, smurt + sL09) u (t u // PB snut, smutte + sm) u (L03+ u // PB smule, smuld, smuds l) u (krere u // PB L09) u (f O // PB fornuft + m) uffin mVfen // PB m) u (ft u // PB mufti L06) u (nkt 0 // PB punkt val) u (ta 'u // PB stressed _der) u (d 'u // PB stressed - derud - r) u u _instr) u (ks 'u // PB stressed - r) u (p O // PB korrupt gr) u (p u // PB gruppe r) u (m O + r) u (me u // PB PB musikinstrument s) u (cc y + s) uccessor uks'EsV // PB + s) uccessorer uksEs'oV // PB b) u (dget y b) ureau yR'o _men) u 'y @@ -5115,16 +5527,16 @@ proven) u y vv v L09o) v (A v // OV nova renovation pro) v (ence v // PB Provence in France - i) v (l u // PB tvivl _) von (_ fVn // PB von in German names virginia v@dZ'iNj& // PB - a) v (n w // PB [u] changed to [w:] navn, navnebroder + a) v (n w // PB [u] changed to [w] navn, navnebroder sla) v (+ v // PB Jugoslavien la) v (ement @ // PB lavement ve (lse v3 // PB øvelse, stavelse, fornøjelse ø) v (en w // PB røven - A) v (n w // PB nævne - &A) v v + &A) v w // PB fiktiv, nævne + &A) v (_A v // PB gav ordre + &A) v (A v // PB fiktive &r) v v al) v (e v // PB halve el) v (C @@ -5136,6 +5548,8 @@ proven) u y ble) v // PB silent v - blev voliere vVli'E:r // PB vince vens // PB name + verdun vErd'3N // PB + village veledZ // PB .group w @@ -5167,6 +5581,7 @@ proven) u y _) world wWld // PB wiesenthal vis@ntAl // PB name weather wEDV // PB Fairweather + work wW:k // PB workout, teamwork .group x @@ -5182,54 +5597,105 @@ proven) u y _o) xid (_ gs'iD // PB oxid o) xygen gsig'en // PB o) xal gs'&l // PB oxalsyre + xon gsVn // PB Nixon .group y y y +// PB general rule: [y] after consonant + r before sp/st/sk + Cr) y (L08 Y // PB kryster + +// PB general rule: [W] before (some) velars + y (nk W // PB ynk, ynkelig + y (kk+ W // smykke, lykke + l) y (kø W // PB lykønske + t) y (L01%e y // PB tykke, tygge + l) y (n_ y // PB lyn, kuglelyn + _l) y (n y // PB lynkarriere + l) yng WN // PB + sm) y (kn W // PB udsmykning + l) y (g W // PB lygte, flygte + r) y (ge+ y // PB ryge, ryger + st) y (k+ W // PB stykke + ydm) yg yj // PB + yng WN // PB yngre, dynge, tynge, synge + yng (a Wng // PB laryngal + _n) y (n_ W // PB "nyn en melodi" + n) y (nne W // PB + +//PB general rule: [W] before nd + y (nd+ W // PB ynde, begynde, kyndig, udtynde, skynde + s) yndi (k Wndi // PB syndikat + +// PB general rule: consonant + y + sp/st/sk: [y] + C) y (L08+ y // PB kysk, lyst + kr) y (b+ y: // PB krybe + kr) y (bb+ y // PB krybe + kr) y (s+ y // PB krystal, kryster + kr) y (L01%+ @ // PB krykke + r) y (C+ @ // PB ryste, bryllup, tryg, krympe, krymmel + r) y (lle y // PB trylleri + r) y (t+ y // PB rytme, rytter + gr) y (n y // PB + gr) y (nt W // PB + p) y (nt W // PB + r) y (d+ y // PB forbrydelse, bryde, bryd, fryd + fr) y (s+ y // PB forfrysning + +// PB exceptions +skrivel) y (st W // PB + hævnl) y (st W // PB +kappel) y (st W // PB + livsl) y (st W // PB + lærel) y (st W // PB + madl) y (st W // PB +spørgel) y (st W // PB + ul) y (st W // PB +vandrel) y (st W // PB + vell) y (st W // PB + videl) y (st W // PB +virkel) y (st W // PB + ædel) y (st W // PB + øjenl) y (st W // PB +øjensl) y (st W // PB +ørensl) y (st W // PB + l) y (stig W // PB + l) y (stb W // PB lystbåd, lystbetonet + l) y (stelig W // PB + l) y (sten W // PB + l) y (stne W // PB + l) y (stfisk W // PB lystfisker + l) y (sthus W // PB + l) y (stløgn W // PB + l) y (stmord W // PB + l) y (stsejl W // PB lystsejlads + l) y (stspil W // PB + l) y (styacht W // PB + r) yg (_ @k // PB ryg (noun "back") - problem with "ryg" (verb) = "smoke" r) yg (_en y // PB "ryg en cigar" r) yg (ning y // PB silent g - r) yg (C '@k, // PB rygrad pr) yg (l y // PB - tr) yg (le Y // PB trygle - str) yg yj // PB strygetøj - r) y (s W // PB ryste - fr) y (s y // PB fryse - kr) y (st Y // PB kryster - kr) y (m W // PB krymmel - r) y (gt '@ // PB rygte - r) yg (g '@ // PB ryggen - remove one "g" - br) y (ll @ // PB bryllup - dr) y (p @ // PB dryp - l) y (gt+ W? // PB lygte, flygte - l) y (kk W // PB ulykke - l) y (kø W // PB lykønske - sm) y (k W // PB smykke + tr) yg (le y // PB trygle + str) yge y:@ // PB strygetøj lib) y i // PB Libyen _) yves i:v // PB Yves (French name) - l) y (st @ // PB problem with lyst = blond, light coloured - bel) y (s y // PB belyst - l) y (stre Y // PB lystre - _l) y (ste_ y // PB - &l) y (st y // PB åbenlyst - fl) y y // PB flystøtte +// PB problem with lyst = blond, light coloured + har_l) y (st W // PB + får_l) y (st W // PB +ikke_l) y (st W // PB +stor_l) y (st W // PB fl) y (tn W // PB flytning afl) y (t y // PB aflytning L08) y (t W // PB spyt, skyts sk) y (ti y // PB Skytien, skytisk sk) y (ter y // PB skyter s) yv yw // PB - sk) y (sk y // PB skyskraber sk) y (ll W // PB skylle sk) y (l_ W // PB skyl - st) y (k W // PB stykke - s) y (n_ y // PB syn, fjernsyn - s) y (ne y // PB fjernsynet - sl) y (n W // PB slyngel _molek) y (le 'y // PB stressed _lat) y (rus 'y // PB stressed - r) y (k+ W // PB ryk f) y (rre W // PB fyrre f) yrre (t Y:V // PB fyrretræ f) yrre (k Y:V // PB fyrrekogle @@ -5239,22 +5705,15 @@ _molek) y (le 'y // PB stressed n) y (ker W // PB nykker kn) y (tt W: // PB tilknytte kn) y (t y // PB knyt - k) y (s W // PB kys + k) y (s+ W // PB kys, kyst sk) y (s y // PB skysovs, skyskraber - k) y (sk y // PB kyskhed + k) y (sk+ y // PB kyskhed k) yss Ws // PB kysse - k) y (se y: // PB kyse - y (nK W // PB changed from Y to W - synge, ynde + k) y (se+ y: // PB kyse s) y (ndrom y // PB - s) y (ns y // PB - s) y (nl y // PB synlig s) y (nkr y // PB synkron s) y (nt y // PB syntes s) y (nkroc W // PB synkrocyklotron - y (ng+ W // PB syng, yngre - l) y (n y // PB lyn - kl) y (nk W // PB klynke - pl) y (n W // PB plyndre s) y (tten W // PB fl) y (t_ W // PB flyt fl) y (tt W // PB flytte @@ -5263,16 +5722,17 @@ _molek) y (le 'y // PB stressed cit) y i // PB yatzy j&tsi // PB y (onn j // PB bayonne, mayonnaise -// y (mK Y l) y (mf W // PB lymfe n) y (mf W // PB nymfe k) y (mK W // PB bekymring - d) y (L11 W // PB dygtig + d) y (L01 W // PB dygtig + l) y (nch W // PB lynchstemning yacht jagd // PB lystyacht york JV:k // PB yankee j&nki // PB yale jEjl/2 // PB yorkshire _jOkS@ // PB + young jVN // PB cl) yde ajd // PB b) ypass ajpa:s // PB c) y (ber aj // PB cyberspace @@ -5284,11 +5744,16 @@ brookl) y (n i // PB bill) y i // PB luc) y i // PB fift) y i // PB + sherr) y i // PB lill) y i // PB name kitt) y i // PB name bett) y i // PB name donn) y i // PB name trinit) y i // PB name + emil) y i // PB name + kell) y i // PB name + carol) y (n i // PB name + t) yrone aIr'Own // PB name y (asmin S // PB name - Danish version (should it be [dZ]?) amnest) y i // PB cand) y i // PB candyfloss @@ -5299,13 +5764,15 @@ amnest) y i // PB _kab) y (s 'Y // PB stressed _kah) y (t 'Y // PB stressed _par) y (k 'W // PB stressed + _as) y (l 'y // PB stressed + _rev) y 'y // PB stressed pol) y (est i' // PB polyester d) y (_ i d) y (s_ i // PB Kennedys d) y (p W // PB dyppe _s) ykes ajgs // PB name + ypres i:pR-3 // PB French town b) y (A y -// n) y (A y .group z @@ -5325,24 +5792,48 @@ amnest) y i // PB // PB general rule &# after r r) æ &# // PB very broad + for) æ (dle E // PB + pr) æ (CL04 E // PB præsident + r) æ (li E // PB ræling // PB general rule E after tr tr) æ E // PB juletræ - r) æ (L12 E // PB TEST r + æ + labial - dræbe, præparat - r) æ (L12% &# // PB TEST r + æ + double labial - skræppe - r) æ (L12t &# // PB TEST r + æ + labial + t - dræbt + r) æ (L02 E // PB TEST r + æ + labial - dræbe, præparat + tr) æ (n+ E // PB træning, træn + dr) æ (n+ E // PB dræning, dræn + tr) æ (ng+ &# // PB trænge + r) æ (L02% &# // PB TEST r + æ + double labial - skræppe + r) æ (L02t &# // PB TEST r + æ + labial + t - dræbt tr) æ (C &# // PB træværk +_portr) æ (t '&# // PB stressed - dr) æ (n E // PB dræne +// PB general rule r + æ + consonant + e: E + r) æ (Ce+ E // PB træne + rr) æ (Cer+ &# // PB forræderi + dr) æ (ber E // PB +// r) æ (de+ &# // PB græde +// tr) æ (de+ E // PB optræden -// PB general rule r + æ + consonant + front wovel: E - r) æ (CL04+ E // PB træne +// PB general rule r + æ + d + e: &# + r) æ (de+ &# // PB træde, græde -// PB general rule r + æ + d + front wovel: &# - r) æ (dL04+ &# // PB træde, græde +// PB final -æer: stressed æ + _aram) æ (er 'E +_athen) æ (er 'E +_epikur) æ (er 'E +_europ) æ (er 'E +_faris) æ (er 'E +_galil) æ (er 'E + _hebr) æ (er 'E +_kanaan) æ (er 'E +_kanaan) æ (er 'E +_nasir) æ (er 'E +_nazar) æ (er 'E +_propyl) æ (er 'E +_pythagor) æ (er 'E - æ (ld+ E // PB forældre + æld (r+ Eld // PB forældre, ældre pr) æ (k E // PB præke pr) ædi ED // PB silent i - prædiken pr) æ (stati E // PB præstation @@ -5356,10 +5847,12 @@ amnest) y i // PB gev) æ (r 'E // PB gevær besv) æ (r 'E // PB besvær afh) æ (ngig 'E: // PB stressed - _omst) æ (nd 'E // PB stressed - omstændighed + _omst) æ (nd ''E // PB stressed - omstændighed _pal) æ 'E // PB stressed _porcel) æ (n 'E // PB stressed _pygm) æ 'E // PB stressed + trof) æ 'E // PB stressed + _fad) æ (se 'E // PB stressed refr) æn '&N // PB stressed t) æge E:j@ // PB tæge t) æe (r E // PB tæer @@ -5382,6 +5875,7 @@ majest) æ (t 'E // PB stressed æ h) ø (j V ø (je V // PB øje øre W:V // PB VERY BROAD - snørebånd + s) øre (dni WrE // PB søredningstjeneste øjer W#jV // PB bøjer ø (jn W# // PB øjne l) øg 'Vj // løgn, løg @@ -5393,9 +5887,9 @@ majest) æ (t 'E // PB stressed æ L09) ø (g V // PB m => L09 (m + n) - møg _n) ø (d@ 'W: // PB nød- stressed - nødsituation _n) ødt (_ Wd // PB nødt - r) ø (+ '@ // brød + r) ø (+ W // brød r) ø (L09 W# // PB grøn, rømme, strømme - dr) ø (n @ // PB drøn + dr) ø (n W // PB drøn r) ø (mer W: // PB strømere s) ø_ W: L08) ø (g W // PB skøge @@ -5404,6 +5898,8 @@ majest) æ (t 'E // PB stressed æ sp) ør (g W:r // PB spørge sp) ør (gs Wr // PB spørgsmål r) ø (g W# // PB røg + r) ø (gelse W // PB + for) ø (g W // PB forøge for) øg (_ W:? // PB forøg pr) ø (ve W // PB prøve ø (re_ W: // PB køre @@ -5416,7 +5912,8 @@ majest) æ (t 'E // PB stressed æ øj+ V:j // PB changet from [Oj] velg) ø (renhed '@ // PB stressed ø im) ø (dekom 'W: // PB imødekomme - &) ø (st 'W // PB stressed - sydøst + syd) ø (st 'W // PB stressed - sydøst + nord) ø (st 'W // PB stressed - nordøst .group øs //PB (mostley French -eux/-euse) adjectives ending with -øs in da_list - stressed ø @@ -5435,8 +5932,10 @@ majest) æ (t 'E // PB stressed æ tr) å (dt V // PB overtrådt r) å (dg+ V // PB rådgive r) å (df+ V // PB rådføre + r) å (dh+ V // PB rådhus ård O:? // PB gårdmand, bondegård - silent d - ården O@n // PB gården + g) årde O:-3 // PB + ården OVn // PB gården h) årde V:?-3 // PB h) årdest V:r@st // PB p) å (ske O // PB påske @@ -5480,6 +5979,7 @@ uimodst) å (elig 'O // PB stressed gr) å (d O // PB gråd, grådig gr) å (ne O // PB r) å (bt V // PB råbte + r) å (lam V // PB år V: // PB år, står åre V3 // PB tåre å (lti V // PB måltid diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 67d76e1a..fb304be9 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -53,11 +53,11 @@ p r s S t T v w x z -Dictionary da_dict 2010-10-28 +Dictionary da_dict 2010-12-02 & &# 0 3 @ @- a A -e E i o O u V W -W# y Y +aI e E i o O u V +W W# y Y * - : ? b B d D dZ f g h j J k l @@ -66,7 +66,7 @@ s S t T tS v w x z -Dictionary hu_dict 2010-11-17 +Dictionary hu_dict 2010-12-02 a A a: E e: i i: o o: u u: Y y y: Y: @@ -74,7 +74,7 @@ o: u u: Y y y: Y: - : b c C d dZ dz f g h j J k l m n n^ p r R R2 s S -s2 t tS ts v z Z +s2 t t2 tS ts v z Z Dictionary de_dict 2010-08-25 @@ -100,7 +100,7 @@ p Q r R s s; t T ts v x z z; -Dictionary en_dict 2010-11-04 +Dictionary en_dict 2010-11-18 0 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI@ aU @@ -200,7 +200,7 @@ q r r. s S s. t T t. th th. v w x z -Dictionary ta_dict 2010-11-15 +Dictionary ta_dict 2010-12-01 a a: aI aU e E e: i I i: o o: u U u2 u: @@ -249,7 +249,7 @@ n^# p Q r R r# R2 s S s2 t T tl# v x z -Dictionary it_dict 2010-11-10 +Dictionary it_dict 2010-12-03 @- a a/ aI aU e E eI i I o O u @@ -325,7 +325,7 @@ k l m n p R s S t tS v w x -Dictionary nl_dict 2010-11-10 +Dictionary nl_dict 2010-12-03 8 @ @- a A a: A~ E E2 e: EI eU i I o O @@ -662,3 +662,15 @@ W y h j J k l m n p Q R s S t tS v w x z Z + + +Dictionary wo_dict 2010-11-30 + +@ @: a a: e E e: E: +i i: m- n- N- o O O: +o: u u: + +: b c d f g h j +J k l m n N n^ p +q R R2 s s2 t v w +x z diff --git a/dictsource/en_list b/dictsource/en_list index 7028ce51..308abf99 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -1958,7 +1958,7 @@ scaly skeIlI salmon sam@n scalpel skalp@L scared ske@d -scaring ske@rI2 +scaring ske@rI2N scenic si:nIk scald sk0ld scepter sEpt3 diff --git a/dictsource/en_rules b/dictsource/en_rules index 1cf95649..445301fe 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -3660,7 +3660,7 @@ r) ogue oUg v) ogue oUg @@) ogue 0g - l) o (gy @ + @l) og (y =@dZ oh oU o (hA oU j) oh (n 0 @@ -3786,7 +3786,6 @@ at) oll 0l w) oll oUl olm (_ oUm - olo (gy '0l@ olo (gi '0l@ olo (gic @l'0 v) olt oUlt @@ -4996,7 +4995,7 @@ ?8 &f) ully (_ Vl%I &) u (lous_ =jU b) ul (r Ul - &ic) ul (t @L + &ic) ul (t_ @L _) ultra (@ ,Ultra u (lul V @) u (lum =jU diff --git a/dictsource/hu_list b/dictsource/hu_list index 42d17679..1165e13e 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -9,9 +9,9 @@ _2 kEt:Y: _2a ke:t // for 200, 2000 _3 ha:R2om _4 ne:J -_5 Yt -_6 hAt -_7 he:t +_5 Yt2 // [t2] changes a following [t] to [t:] +_6 hAt2 // [t2] changes a following [t] to [t:] +_7 he:t2 // [t2] changes a following [t] to [t:] _8 n^olts _9 kilEnts _10 ti:z @@ -240,6 +240,7 @@ _#-ikának a:nAk (0-st) nul:a:St (1-gyet) EJ:Et (1-gyes) EJ:ES +(2-szer) ke:ts:ER2 (2-őt) kEt:Y:t (2-őn) kEt:Y:n (2-n) kEt:Y:n @@ -273,13 +274,14 @@ _#-ikának a:nAk (6-tal) hAt:Al (6-tól) hAt:o:l (6-tól) h'Atodika:to:l $alt2 - +(6-szor) hAts:oR2 (7-től) he:t:Y:l (7-től) hEtEdike:tY:l $alt2 (7-tel) he:t:El (7-el) he:t:El (7-sekre) hEtESEkR2E (7-sel) hEtES:El +(7-szer) he:ts:ER2 (8-cal) n^olts:Al (8-al) n^olts:Al (9-el) kilEnts:El @@ -292,6 +294,7 @@ _20e hus (10-t) tizEt + //special number exceptions (10-el) ti:zzEl (20-al) hu:s:Al @@ -413,6 +416,7 @@ _?? kAR2AktEr||ko:d // unknown characters (change this) // Abbreviations ADSL a:de:ESEl $allcaps //Internet connection type, we pronouns this with ádéesel +ÁFAa:fA $allcaps ÁNTSZ a:Ente:Es $allcaps ATM a:te:Em $allcaps //The ATM stands. We pronouns this abbreviation with átéem word. Default, Espeak pronouns this abbreviation with atéem word. cm tsEntime:tER2 @@ -430,6 +434,7 @@ MLSZ EmElEs $allcaps ORTT $abbrev $allcaps ORFK oEREfka: $abbrev $allcaps MÁV ma:v $allcaps +LMP ElEmpe: $allcaps MTI $abbrev $allcaps mm milime:tER2 RAM R2Am $allcaps //Espeak normaly spokening this abbreviation with erraem, but this is not good @@ -537,6 +542,7 @@ elé $unstressend előtt $alt $alt3 $unstressend este $alt3 estéjén $alt3 +éjszakára $alt3 mögül $unstressend // behind mögött $unstressend mögé $unstressend @@ -568,6 +574,7 @@ nekem $unstressend közül $unstressend közé $unstressend között $u $alt3 +idén $alt3 környékén $alt3 an $u // so many persons as $u @@ -634,7 +641,13 @@ csütörtökig $alt3 péntekig $alt3 szombatig $alt3 vasárnapig $alt3 - +hétfőn $alt $alt3 +kedden $alt3 +szerdán $alt3 +csütörtökön $alt3 +pénteken $alt3 +szombaton $alt3 +vasárnapon $alt3 sok $unstressend // many kevés $unstressend // few se $unstressend // neither @@ -1209,6 +1222,12 @@ járni $unstressend döntöttek $unstressend írt $unstressend méltó $unstressend +dől $unstressend +nyomsz $unstressend +elnök $unstressend +itthon $unstressend +otthon $unstressend +köszönhető $unstressend // word pairs @@ -1344,7 +1363,7 @@ _– gondolAtjEl _— kviR2tmi:nus _" ide:zY:jEl _( b'Alza:R2o:jEl $max3 -_) j'obbza:R2o:jEl $max3 +_) j'obza:R2o:jEl $max3 _[ n^'ito:sYglEtES $max3 _] z'a:R2o:sYglEtES $max3 _{ k'EzdY:kAptSoS $max3 @@ -1407,6 +1426,7 @@ nato na:to: $textmode MSZP emeszpé +MSZMP emeszempé SZDSZ eszdéesz @@ -1466,5 +1486,6 @@ CD-m) cédém (NVDA-t) envédéát (NVDA-tól) envédéától (NVDA-val) envédéával - - +(%-kal) százalékkal +(ÁFÁ-t) áfát +(MB-al) megabájttal diff --git a/dictsource/hu_rules b/dictsource/hu_rules index bb76cb23..dcc68e25 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -8,13 +8,14 @@ ô ő û ű +// these consonants following a double letter change it to single +.L01 b c d f g h j k l m n p s t r v w z .group a a A _) a (_ %A D00_-) al (_ zAl // double z for 100-al 000_-) al (_ Al // ... but not 1000-al - _) alattvaló AlAtvAlo: ahhoz Ahoz @@ -35,20 +36,15 @@ biz (A biz, // bizalmas etc. ?1 biedermeier bi:dER2ma:jER2 _) batthiány bAc:a:n^i -bb (f b //general rule if have two b and f letter, need spokening one b letter -bb (g b //if have two b and one g or gy letter, need spokening one b letter -bb (h b //if have two b and one h letter, need spokening one b letter -bb (j b //general rule if have two b and j letter, need spokening one b letter -bb (k b -bb (l b //general rule if have two b and l letter, need spokening one b letter -bb (m b //if have two b and one m letter, need spokening one b letter -bb (n b //general rule if have two b and n letter, need spokening one b letter -bbr bR2 //general rule if have two b and r letter, need spokening one b and one r letter -bb (s b //general rule if have two b and s or sz letter, need spokening one b letter -bb (t b //if have two b and one t letter, need spokening one b letter -bb (v b //general rule if have two b and v letter, need spokening one b letter -bb (w b //general rule if have two b and w letter, need spokening one b letter -bb (z b //general rule if have two b and z or zs letter, need spokening one b letter + b (-b b: // use long [b:], not two [b] + b-) b // silent after 'bb-' + bb (-b b: + bb-) b //silent after bb- part + bb (-L01 b // only speak one b if followed by a consonant after the - character + + bb (L01 b // only speak one b if followed by a consonant + bbr bR2 //special exception with always need executing + .group c c ts @@ -87,6 +83,33 @@ gyümöl) cs (zs tS árbó) c (csúcs ts árbo) c (csúcs ts fegyen) c (csoport ts + ccs (L01 tS // only speak one cs if followed by a consonant + cc (L01 ts // only speak one c if followed by a consonant + ccsr tSR2 //special exception with need always execute + ccr tsR2 //special exception + c (-cs tstS //if have end of first word c and after the - character a cs letter pair, need spokening single ts and TS phoneme + c-) cs //not need spokening second cs phoneme + cs (-ccs tS: //this situation need spokening one TS: phoneme + cs-) ccs //not need spokening second tS: phoneme after - character + c (-c ts: // use long [ts:], not two [ts] + c-) c // silent after 'cc-' + ccs (-ccs tS: + ccs-) ccs + ccs (-cs tS: //need spokening one longer TS: phoneme + ccs-) cs //not need spokening second tS phoneme + cc (-cs ts //if this situation happening, need spokening one ts phoneme + cc-) cs tS //need spokening the TS phoneme after the - character + cc (-ccs ts //need spokening one ts phoneme before the - character + cc-) ccs tS //need spokening shorter tS phoneme after the - character + cc (-c ts: // use long [ts:], not two [ts] if after the - character have only cc letter pair + cc-) c //second ts phoneme not need spokening after the - character + cc (-L01 ts // only speak one c if followed by a consonant after the - character + cs (-cs tS: // use long [tS:], not two [tS] + cs-) cs // second tS phoneme not need spokening after - character + ccs (-L01 tS // only speak one ts if followed by a consonant after the - character + cs (-sz tS|s //need spokening single ts and single s phoneme + ccs (-sz tS|s //need spokening single ts and single s phoneme + .group ch anar) ch (i h @@ -120,8 +143,17 @@ oligar) ch h dts tS: dt t: dtszé t:se: -dd (h d //if have two d and one h letter, need spokening one d letter -ddr dR2 //if have two d and one r letter, need spokening one d and one r letter + ddzs (L01 dZ + ddz (L01 dz + dd (L01 d + ddb db //general exception with alwais need executing + ddr dR2 //special exception with always need executing + d (-d d: //if have d after the - character, need spokening longer d: phoneme, not two single d phoneme + d-) d //but the second d phoneme after the - character not need spokening + ddzs (-L01 dZ //need spokening one dZ phoneme if have after the - character a consonant + dd (-d d: //if have two d the first word and a d with second word beginning, need spokening a longer d: phoneme, not a longer d: and a single d phoneme + dd-) d //the second d phoneme not need pronouncing + dd (-L01 d //if have a consonant after the - character, need spokening one d letter, not often happening this but not matter if handled apró) d (sz d dsz (_S3 ts: beszé) d (szin d @@ -192,7 +224,7 @@ menetren) dsz (erű d|s twee) dz (ak d|z twee) dsz (ok d|s dtt t: //this letters need spokening longer t phoneme - _) kar) d (su d + kar) d (su d zöl) d (sapk d hí) d (szer d szaba) d (szoft d @@ -200,8 +232,6 @@ menetren) dsz (erű d|s ren) d (zavar d ügyvé) d (jel d kez) dt t - tiné) dzs (e dZ - mene) dzs (me dZ ná) d (szék d rövi) d (soroz d pa) d (szerű d @@ -234,7 +264,10 @@ standar) d (jegy d szaba) d (szombat d ren) dsz (erintegráció ts máso) d (szülött d -va) d (szój d + va) d (szój d + ebé) d (jeg d + szaba) d (jeg d //szabadjegy, szabadjeggyel words need spokening single d phoneme + tize) d (száz d //for example tizedszázalék word need single d and s phoneme .group dz fogó) dz (kod ts @@ -257,10 +290,14 @@ mentegető) dz z dz dz: A) dz (A dz: dzs dZ - A) dzs dZ: + dzs (C dZ + a) dzs (A dZ + mene) dzs (A dZ: +mahara) dzs (A dZ: + bri) dzs (A dZ: +?1 kambo) dzs (A dZ: //a town name with need spokening dZ: phoneme dz dz: C) dzs dZ - A) dzs (A dZ: borsó) dz z beszé) dz (avar d|z dobáló) dz z @@ -270,19 +307,17 @@ rángató) dz z titkoló) dz z ringató) dz z mére) dz (k ts -pilóta) dzs (ek dZ ezre) dz (ene d|z száza) dz (ene d|z honvé) dz (ászló d|z smarag) dz (öld d|z kapáló) dz z -_ó) dz (ko ts + _ó) dz (ko ts .group e e E 000_-) el (_ REl // double R for 1000-el 000000_-) el (_ El // ... but not 1000000-el - _) ehhez EhEz _) egyezség EJ:ESSe:g _) egyezségg EJ:ESSe:g: @@ -303,32 +338,47 @@ _ó) dz (ko ts .group f f f - //führer fy:R2ER2 +?1 führer fy:R2ER2 e) ff (ajt f e) ff (él f a) ff (él f - + ff (L01 f // only speak one b if followed by a consonant + ffb fb //general rule, always need one f before the remaining b beginning word, for example be end of words + ffr fR2 //general rule, always need one f before the remaining b beginning word, for example be end of words + ff (-L01 f .group g g g gg g: ggy J: -gg (b g //if have two g and one b letter, need spokening one g letter -gg (f g //if have two g and one f letter, need spokening one g letter -gg (h g //if have two g and one h letter, need spokening one g letter -gg (l g //if have two g and one l letter, need spokening one g letter -ggr gR2 //if have two g and r letter, need spokening one g and one r letter -gg (v g //if have two g and one v letter, need spokening one g letter + gg (L01 g + ggb gb //special exception with always need executing + ggr gR2 //special exception with always need executing ?1 _) goeth gY:tE me) g (gy g - me) ggy (fa J - me) ggy (piros J - me) ggy (vörös J + ggy (L01 J + ggyb Jb //special exception with always need executing + ggyr JR2 //special exception with always need executing + me) ggy (L01 J //special exception with not good spokening single g and one gy letter, for example meggyfolt not spokening meg and gy folt with single words + me) ggyb Jb //special exception with not good spokening single g and one gy letter, for example meggyben not spokening meg and gy folt with single words + me) ggyr JR2 //special exception with not good spokening single g and one gy letter, for example meggyre not spokening meg and gy folt with single words + gy (-gy J: //need spokening longer J: phoneme with this situation + gy-) gy //but not need spokening the second J: phoneme + ggy (-L01 J //if have consonant after the - character, need spokening one J phoneme + me) ggy (-L01 J //special exception with not good spokening single g and one gy letter, for example meggyfolt not spokening meg and gy folt with single +//words + me) ggy (-gy J: //this is a special exception if have after a - character with gy consonant + g (-gy gJ //special rule + g-) gy //not need spokening second J phoneme + g (-g g: //if the first word end of g and second word beginning with g letter, need spokening one longer g: phoneme + g-) g //not need spokening second g phoneme + gg (-gy gJ //special rule + gg-) gy //not need spokening second J phoneme + gg (-L01 g //if have consonant after the - character, need spokening one g character me) ggy (es J: me) ggy (et J: -me) ggy (el J: + me) ggy (el J: me) ggy (_S3 J: - me) ggy (szín J le) g (gy g orszá) g (gyűlés g fo) g (gyűrű g @@ -351,10 +401,9 @@ ritkasá) g (gyűjt g pro) g (gyak g arcüre) g (gyulladás g bete) g (gyógyász g -me) ggy (nek J: -szöve) g (gyűjt g -ta) g (gyűl g -gu) gg (ol g + szöve) g (gyűjt g + ta) g (gyűl g + gu) gg (ol g .group gy gy J @@ -431,10 +480,10 @@ tizene) gy (en J: épülete) gy (ütt J: na) gy (salló J _e) gy (ágy J: - nem-e) gy (ez J: //if have a nem word and used the $combine attribute in hu_list file, Espeak spokening one J phoneme, but J: is need spokening. + nem-e) gy (ez J: // if have a "nem" word (with $combine attribute), need [J:] not [J] e) gy (idejű J: _e) gy (idő J: - nem-e) gy (ütt J: //if have a nem word and used the $combine attribute in hu_list file, Espeak spokening one J phoneme, but J: is need spokening. + nem-e) gy (ütt J: // if have a "nem" word (with $combine attribute), need [J:] not [J] na) gy (sarló J e) gy (azon J: _e) gy (oldal J: @@ -453,13 +502,16 @@ harmince) gy (edik J: né) gy (jegy J a) gy (sebész J tár) gy (sorozat J -e) gy (jegyű J -tár) gy (jutal J - + e) gy (jegyű J + tár) gy (jutal J + e) gys (áv J|S //egysáv beginning words for example need spokening single J and S phoneme. + _e) gy (ablak J: .group h h h hertz hER2ts + hh (-L01 h + .group i @@ -500,6 +552,11 @@ tár) gy (jutal J @) jével (_S5 je:vEl _) javíts jAvi:tS: _) javítsd jAvi:tSd + jj (L01 j //if have a consonants after two j letter, need spokening one j letter + jjb jb //need always executing this exception + jjr jR2 //need always executing this exception + jj (-L01 j + @@ -508,6 +565,9 @@ tár) gy (jutal J k k kk k: kk (C k: + kk (-L01 k //if next word starts with a consonant (except k, see next rule), need one k letter + kk (-k k: // but except for k beginning second words, this situation need spokening longer k: phoneme + kk-) k // silent after 'kk-' spokened phoneme _) köztársaság k'Ysta:R2SASa:g _) köztársaságg k'Ysta:R2SASa:g: központ kYspont @@ -520,17 +580,14 @@ tár) gy (jutal J kossutht koSu:t: kossuthj koSu:c: készségg ke:SSe:g: -kk (b k //if have two k and b letter, need spokening one k letter -so) kk (b k: //an exception with need spokening longer k phoneme -kk (d k //if have two k and one d letter, need spokening one k letter -kk (f k //if have two k and f letter, need spokening one k letter -kk (h k k //if have two k and h letter, need spokening one k letter -kk (j k //if have two k and j letter, need spokening one k letter -kk (m k //if have two k and m letter, need spokening one k letter -kkr kR2 //if have two k and r letter, need spokening one k letter -kk (s k //if have two k and s or sz letter, need spokening one k letter -kk (t k //if have two k and t letter, need spokening one k letter + kkb kb //need keep this exception because have some words ben or ban suffixes + kk (L01 k + kkj kj //need keep this exception because have some words jének or jának suffixes + kkr kR2 //special exception with always need executing _) közt kYst + k (-k k: //for example marok-körző word need cut one k letter and need spokening k: phoneme only + k-) k //silent with second k phoneme + .group l l l @@ -539,7 +596,6 @@ kk (t k //if have two k and t letter, need spokening one k letter fe) l (jegy l fe) l (jelen l fe) l (jár l - lj l^j cé) l (já jj @@ -562,9 +618,7 @@ kk (t k //if have two k and t letter, need spokening one k letter _kéth) ly li szamue) lly lli szamue) ly lli - mi) ll (i l - szá) ll (t l szé) l (jár l szé) l (jegy l keresztü) l (j l @@ -578,19 +632,18 @@ keresztü) l (j l _) e) lj (ár lj _ta) lj (án lj _fé) l (jobb l -ll (b l //if have two l and b letter, need spokening one l letter -ll (d l //if have two l and d letter, need spokening one l letter -ll (g l //if have two l and a g or gy letter, need spokening one l letter -ll (h l //if have two l and h letter, need spokening one l letter -ll (k l //if have two l and k letter, need spokening one l letter -ll (n l //if have two l and n or ny letter, need spokening one l letter before the n or ny letter -ll (s l //if have two l letter and s or sz letter, need spokening one l letter -ll (t l //if have two l and a t letter, need spokening one l letter + ll (L01 l // only speak one 1 if followed by a consonant + llb lb //special exception with always need executing + llr lR2 //special exception with always need executing + lly (-L01 j //if have consonants after - character, need spokening one j letter with first part + ll (-L01 l +bagate) ll (iz l .group m m m ko) mm (uni m - + mm (-L01 m //if have a consonant after - character, need spokening one m letter + mm (L01 m //if have a consonant after two m letter, need spokening one m letter .group n n n @@ -600,21 +653,13 @@ ll (t l //if have two l and a t letter, need spokening one l letter ny n^ nny n^n^ nj n^n^ -nny (cs n^ //if have two ny and cs letter, need spokening one ny letter -nny (d n^ //if have two nny and one d letter, need spokening one ny letter -nny (f n^ //if have two ny and one f letter, need spokening one ny letter -nny (g n^ //if have two ny and one g letter, need spokening one ny letter -nny (k n^ //if have two nny and one k letter, need spokening one ny letter -nny (t n^ //if have two nny and one t letter, need spokening one ny letter -nny (v n^ //if have two nny and one v letter, need spokening one n^ letter -nn (h n //if have two n and one h letter, need spokening one n letter -nn (k n //if have two n and one k letter, need spokening one k letter -nn (m n //if have two n and one m letter, need spokening one n letter -nn (l n //if have two n and one l letter, need spokening one l letter -nn (s n //if have two n and one s or sz letter, need spokening one n letter -nn (t n //if have two n and one t letter, need spokening one n letter - - + nny (cs n^ //special exception + nny (L01 n^ // only speak one ny if followed by a consonant + nnyb n^b //special exception with always need executing + nnyr n^R2 //special exception with always need executing + nn (L01 n // only speak one n if followed by a consonant + nnb nb //special exception with always need executing + nnr nR2 //special exception with always need executing szí) n (ját n szí) n (józan n nyj n^n^ @@ -640,8 +685,7 @@ negyve) n (yard n pero) n (jegy n ö) n (járó n tulajdo) n (jog n - ko) nn (ektor n //connector word, we spokening one n letter, not two n letter - be) nn (szülött n + ko) nn (ektor n //"connector" word, we one n letter, not two n éle) n (jár n magá) n (jelleg n elle) n (játék n @@ -662,15 +706,20 @@ _feddhetetle) n (jelle n ingatla) n (jog n nyeremé) ny (játék n^ botrá) ny (játék n^ - magá) nny (ugdíj nn^ //the nny letter pair this word not mean the double n^ phoneme, need spokening single the first n and n^ phoneme with this -//word. -alkotmá) ny (jog n^ + magá) nny (ugdíj nn^ //the nny here is n+ny not the double n^ phoneme +alkotmá) ny (j n^ //for example alkotmányjog, alkotmányjavaslat words need spokening n^ phoneme + nny (-L01 n^ //if have a consonant after - character, need spokening one n^ phoneme + nn (-L01 n //if have a consonant after - phoneme, need spokening one n phoneme +eredmé) ny (j n^ //for example eredményjelző word need spokening n^ phoneme + hiá) ny (j n^ //for example hiányjel word need spokening n^ phoneme + mező) ny (j n^ //for example mezőnyjátékos word need spokening n^ phoneme + esemé) ny (jel n^ +helybe) n (jár n + polle) n (jelen n .group o o o - otthon othon - .group ó ó o: @@ -682,14 +731,17 @@ alkotmá) ny (jog n^ .group p p p + p (-p p: //need spokening p: phoneme, not pp phoneme + p-) p //the second p phoneme don't need spokening after - character pp p: + pp-) p // silent after 'pp-' pp (C p: p (v p_ - + pp (L01 p + ppb pb //special exception with always need executing + ppr pR2 //special exception with always need executing ?1 _) potsdam potsda:m - - - + pp (-L01 p //if have consonant after - character, need spokening one p letter .group q q kv @@ -708,9 +760,17 @@ alkotmá) ny (jog n^ _) richá (rd R2iCa: i) rr (itá R2 ko) rr (epetá R2 + a) rr (ogáns R2 + rr (L01 R2 + rrb R2b //special exception with always need executing + rrr R2R2 //not need spokening three R2 phoneme + te) rr (ier R2 + te) rr (ori R2 .group s s S + s (-sz s: //if have the - character the next word part beginning with sz, always need spokening s: phoneme + s-) sz //but not need spokening second sz phoneme föld) s (ánc S ?1 hel) s (inki z ki) s (ebb SS @@ -893,7 +953,6 @@ zökkené) ssz (erű Ss köhögé) ssz (erű Ss üté) ssz (erű Ss olva) ssz s: - vi) ssz (hang s felelő) ss (ég S égzengé) ssz (erű Ss világo) ssz (ürke Ss @@ -917,7 +976,17 @@ páncélo) ssz Ss hajtá) ssz (erű Ss sorva) ssz (ák s: rendelteté) ssz (er Ss -klien) ssz (oft Ss + klien) ssz (oft Ss + ssz (L01 s + sszb sb //general rule, always need one sz before the remaining b beginning word, for example be end of words + sszr sR2 //general rule, always need one sz before the remaining r beginning word, for example ra end of words + ss (L01 S + ssb Sb //general rule, always need one s before the remaining b beginning word, for example be end of words + ssr SR2 //general rule, always need one s before the remaining r beginning word part, for example ra end of words + ssz (-L01 s //if have a consonant after the - character, need spokening one sz phoneme + ss (-L01 S //if have a consonant after the - character, need spokening one S letter +települé) ssz (er Ss //for example településszerkezet word need spokening single S and s phoneme. + .group sz sz s @@ -952,253 +1021,134 @@ rongyo) szs (ák SZ szemete) szs (ák SZ .group t - - _) t (_ te: - -) t (_ t t t + t (-ty c: + t-) ty //silent with second ty phoneme + + + + ty (-ty c: //special rule, need pronouncing one longer c: phoneme + ty-) ty //not need spokening second c phoneme + tty (L01 c + tt (-ty c: //special cases with uncommon words + tt-) ty //silent with second ty phoneme + tt (L01 t + tt (-L01 t //if have consonant after - character, need spokening one t letter with another not defined grammatical cases + tt (-t t: + tt-) t //second part not need spokening the t phoneme + t (-t t: // use long [t:], not two [t] + t-) t // silent after 'tt-' + + + -) t (_ t + _) t (_ te: tc ts: - tt t: - ttk tk //if have two t and k letter, need spokening tk letter pair. - tth th //if have two t and h letter, need spokening th letter pair. - ttg t:g - ttgy t:J - ttp t:p + ne) t (c t + á) t (caplat t +tábláza) t (cell t +négyze) t (centi t + tesz) t (cikk t + á) t (cikáz t + t (cs t + tesz) t (cél t +terüle) t (cél t +fejeze) t (cím t + á) t (cím t + természetes tER2me:sEtES + a) th (én t + thököly tYkYli + ty c + nosz) ty ti +vörösmar) ty ti + ö) t (yard t + C) tyj c + A) tyj (A c: + _ka) ty (n ti @) tól (_S3q to:l @) től (_S3q tY:l - tt (C t: - ttn tn //if have two t and n letter, need spokening one t and one n letter -képze) tt (nek t: //exception -terveze) tt (n t: //exception + spor) t (cent t //for example sportcentrum word need spokening single t and ts phoneme +használ) t (cikk t + grafi) t (ceruz t //for example grafitceruzával, grafitceruze need spokening single t before c letter + pamu) t (cér t - - ttm tm //if have two t letter and m letter, need spokening one t and one m letter - ttl tl //if have two t and l letter, need spokening one t and one l letter -sűríte) tt (le t: //special exception -o) tt (lét t: //special exception - ttr tR2 //if have two t and r letter, need spokening one t and one r letter -helyeze) tt (ről t: - ttv tv //if have two t and v letter, need spokening one t and one v letter - ty c -// s) ty c: // -// z) ty c: // keztyű - ttj c: - tty c: -becsüle) t t -becsüle) tt t: - csapa) t (jel t - cson) t t - cson) tt t: - cson) tj c - ezüs) t t - ezüs) tt t: - éle) t t - éle) tt t: - fron) t (szolgál t - gyapo) t t - gyapo) tt t: -gondola) t (sor t - gráni) t t - gráni) tt t: - ada) t t - ada) tt t: - ké) t (sarok t - ké) t (sor t - ké) t (sáv t - ké) t (sarkú t - ké) t (sebességes t -kegyele) t t -kegyele) tt t: - korán) t (se t - üzle) tt t: - üzle) tj c: - nemze) t (szo t - min) t t - t (cs t - tts (á tS: - tts (é tS: +.group tj C) tj c - A) tj (A c: - C) tyj c - ttyj c: - A) tyj (A c: - - _ka) ty (n ti - -vörösmar) ty ti - á) t (cikáz t - á) t (caplat t - á) t (sza t - á) tj (ár t|j - á) t (szö t - á) tsz (ő t|s - á) t (szú t - á) t (szű t - á) t (jut t - á) t (juss t - á) t (jö t -állapo) t (sor t -felada) t (sor t -művele) t (sor t - szige) t (sor t -folyama) t (jel t - hi) t (sze t - korlá) tj (ára c: - t (jel t //need this general rule when any not added word contains the tjel part - kür) t t kür) tj c - kür) t (jel t - küldö) ttj c: - o) tt t: - szen) t (szék t - szé) t t - szé) tt t: - á) t (sor t - á) t (sze t - á) t (sug t - á) t (suh t - á) t (sur t - ne) t (c t - ne) t (se t - ne) t (szo t - - lá) t (sze t - lé) t (szám t - ké) t (száz t - ö) t (száz t - ha) t (száz t - hé) t (száz t - vona) t (jegy t - tesz) t (sor t - tes) t (sér t - fron) t (jár t - á) t (söpör t - ala) tt (jár t: - halo) tt (sápad t: - mi) t (se t - há) t (szél t - thököly tYkYli - nosz) ty ti - ké) t (szín t -passzá) t (szél t - szen) t (jános t - ö) t (yard t - bi) t (sebesség t - álla) t (sereg t - á) t (segít t - épüle) t (sarok t - mene) t (sor t - skó) t (sapka t - lé) t (jogosultság t - bérle) t (jegy t - csapa) t (játék t - ese) t (jog t -fejeze) t (jel t - ké) t (jegyű t - krike) tt (játék t: - mene) t (jegy t - mene) t (jeggy t - szüne) t (jel t - ú) t (jelző t - ú) t (jog t -gondola) t (jel t -helyze) t (jel t -folyama) t (sáv t - ada) t (szolgáltat t - _ú) t (sáv t -négyze) t (centi t - á) tj (öt t|j - á) tj (ön t|j - á) t (süvít t - bará) tj (ár c: //barátjára, barátjáról words need spokening c: phoneme -kísérle) t (sorozat t - á) t (sült t - á) t (süt t - épüle) t (sarok t -terüle) ts (áv t|S -terüle) t (cél t - hé) t (jegyű t - természetes tER2me:sEtES - ha) t (sáv t - szen) t (szobrok t - tesz) t (cél t - dró) t (sövény t - dró) t (sövénny t - a) th (én t - huncu) t (ság t - néme) t (juhá t - pó) t (je t - halo) tt (ba t - éle) t (jel t - nemze) t (straté t - gá) tj (ár c: - pár) t (sajtó t -hangula) t (jel t -állapo) t (jel t -vizsgála) t (soroza t - á) tjátsz tja:ts: - á) tjátssz tja:ts: - kobal) t (sugár t -többle) t (szol t - á) t (söprő t - ú) t (javí t -billentyűze) t (jel t - á) t (címké t - sej) t (szö t - szöve) t (sapk t - mene) t (szél t - tesz) t (cikk t - á) t (sejle t -mozdula) t (so t - kabá) t (szé t - bozó) t (so t + cson) tj c ezüs) tj c -fejeze) t (cím t - lan) t (szó t - á) tj (öhe t|j - kú) t (sug t - _há) ts (ág tS: - hol) t (játék t - hol) t (sápadt t - söré) t (seb t - pán) t (szél t - boo) t (sorrend t - _á) t (jöj t - ú) tsz (oros t|s -művele) t (sáv t - _ké) t (szob t - ne) t (sátor t + üzle) tj c: + A) tj (A c: + ú) tj (aví tj + pó) tj (e tj + mene) tj (eggy tj + mene) tj (egy tj + vona) tj (egy tj + bérle) tj (egy tj + ö) tj (egyű tj + ha) tj (egyű tj + hé) tj (egyű tj + ké) tj (egyű tj + tj (el tj //need this general rule when any not added word contains the tjel part + kür) tj (el tj + éle) tj (el tj + csapa) tj (el tj + szüne) tj (el tj +billentyűze) tj (el tj +fejeze) tj (el tj +folyama) tj (el tj +gondola) tj (el tj +hangula) tj (el tj +helyze) tj (el tj +állapo) tj (el tj + _á) tj (elentkez tj + ú) tj (elzés tj + ú) tj (elző tj + ú) tj (og tj + ese) tj (og tj + lé) tj (ogosultság tj + néme) tj (uhá tj + skó) tj (uhász tj + á) tj (uss tj + á) tj (ut tj + szen) tj (ános tj + á) tj (ár t|j + gá) tj (ár c: há) tj (ár c: - ker) t (szomszéd t - éle) t (járadék t - _á) t (sodor t - par) t (sáv t - tes) t (játék t - ö) t (jegyű t - ha) t (jegyű t - hé) t (jegyű t - zár) t (sorú t - skó) t (juhász t -szerete) t (szolgálat t - ú) t (jelzés t -vizsgála) t (sor t -dagana) t (sej t -tábláza) t (sor t - ben) t (szorul t - _á) t (jelentkez t - spor) t (szolgál t - üzle) t (sor t -tábláza) t (cell t + bará) tj (ár c: //barátjára, barátjáról words need spokening c: phoneme + fron) tj (ár tj + korlá) tj (ára c: + éle) tj (áradék tj + á) tjátssz tja:ts: + á) tjátsz tja:ts: + hol) tj (áték tj + tes) tj (áték tj + csapa) tj (áték tj + á) tj (ö tj + á) tj (öhe tj + _á) tj (öj tj + á) tj (ön tj + á) tj (öt tj .group ts ts (_S2 tS //general rule with word end of ts letters + ts (a tS + ts (á tS + ts (e tS + ts (é tS + ts (o tS + ts (u tS tsü tSy apá) ts (ág tS: +becsüle) ts (é t|S // "becsületsértés" need spokening [t] and [S], not [tS] bizo) ts (ág tS: - já) tsz ts: + cson) ts (ér t|S // eg. "csontsérülés" word need [t] and [S], not [tS] + gyapo) tsz t|s // eg. "gyapotszőttes", "gyapotszövet" + já) tsz (A ts: já) tssz ts: já) tsz (m ts já) tsz (hat ts + já) tsz (v ts tsz (_S3 ts: tsz (é ts: tsz (o ts: @@ -1207,7 +1157,9 @@ tábláza) t (cell t tsz (a t|s tsz (e t|s tsz (á t|s +kegyele) ts (ér t|S //eg "kegyeletsértés" need single [t] and [S], not [tS] me) tsz (et ts: + min) ts (em t|S //mintsem word ké) tsz (er ts: ö) tsz (ör ts: hé) tsz (er ts: @@ -1217,12 +1169,6 @@ tábláza) t (cell t mula) ts tS: nemze) ts tS: néme) ts (ég tS: - ts (a tS - ts (á tS - ts (e tS - ts (é tS - ts (o tS - ts (u tS tsd tSd bará) ts tS: dön) ts (ön tS @@ -1237,7 +1183,7 @@ tábláza) t (cell t sajá) ts (ág tS: lehe) ts (ég tS: tehe) ts (ég tS: - lá) tsz ts: + lá) tsz (A ts: lá) tssz (on ts: lá) tssz (anak ts: te) tsz ts: @@ -1280,6 +1226,129 @@ indula) tsz (ó t|s köteleze) ts (ég tS: kötö) ts (ég tS: +munkafüze) ts (abl t|S + pár) ts (ajtó t|S + szöve) ts (apk t|S + skó) ts (apka t|S + ké) ts (arkú t|S + ké) ts (arok t|S + épüle) ts (arok t|S + épüle) ts (arok t|S + mi) ts (e t|S + ne) ts (e t|S + korán) ts (e t|S + söré) ts (eb t|S + bi) ts (ebesség t|S + ké) ts (ebességes t|S + á) ts (egít t|S +dagana) ts (ej t|S + á) ts (ejle t|S + álla) ts (ereg t|S + bozó) ts (o t|S +mozdula) ts (o t|S + _á) ts (odor t|S + á) ts (or t|S + ké) ts (or t|S + mene) ts (or t|S + tesz) ts (or t|S + üzle) ts (or t|S + szige) ts (or t|S +felada) ts (or t|S + ada) ts t|S //for example adatsor, adatsebesség words + ada) tsz t|s //for example adatszolgáltatás word +gondola) ts (or t|S +művele) ts (or t|S +tábláza) ts (or t|S +vizsgála) ts (or t|S +állapo) ts (or t|S +vizsgála) ts (oroza t|S +kísérle) ts (orozat t|S + boo) ts (orrend t|S + zár) ts (orú t|S + nemze) ts (traté t|S + á) ts (ug t|S + kú) ts (ug t|S + kobal) ts (ugár t|S + á) ts (uh t|S + á) ts (ur t|S + á) tsz (a t|s + á) tsz (e t|s + hi) tsz (e t|s + lá) tsz (e t|s + ne) tsz (o t|s + nemze) tsz (o t|s + _ké) tsz (ob t|s + szen) tsz (obrok t|s +többle) tsz (ol t|s + fron) tsz (olgál t|s + spor) tsz (olgál t|s +szerete) tsz (olgálat t|s + ada) tsz (olgáltat t|s + ker) tsz (omszéd t|s + ú) tsz (oros t|s + ben) tsz (orul t|s + lé) tsz (ám t|s + ö) tsz (áz t|s + ha) tsz (áz t|s + hé) tsz (áz t|s + ké) tsz (áz t|s + kabá) tsz (é t|s + szen) tsz (ék t|s + há) tsz (él t|s + pán) tsz (él t|s + mene) tsz (él t|s +passzá) tsz (él t|s + ké) tsz (ín t|s + lan) tsz (ó t|s + á) tsz (ö t|s + sej) tsz (ö t|s + á) tsz (ú t|s + á) tsz (ő t|s + á) tsz (ű t|s + _há) ts (ág tS: + huncu) ts (ág t|S + hol) ts (ápadt t|S + ne) ts (átor t|S + _ú) ts (áv t|S + ha) ts (áv t|S + ké) ts (áv t|S + par) ts (áv t|S +folyama) ts (áv t|S +művele) ts (áv t|S +terüle) ts (áv t|S + tes) ts (ér t|S + á) ts (öprő t|S + á) ts (öpör t|S + dró) ts (övénny t|S + dró) ts (övény t|S + gá) ts (üllyed t|S + á) ts (ült t|S + á) ts (üt t|S + á) ts (üvít t|S + _pó) tsz (ék t|s //pótszék word for example need spokening single t and sz phoneme + _ö) tsz (ob t|s //for example ötszobás word need spokening single t and sz letter + _ha) tsz (ob t|s //same as prewious rule + _hé) tsz (ob t|s //same as prewious rule +gyakorla) ts (oroz t|S + + +.group tt + tt t: + ttgy t:J + ttj c: + ala) tt (jár t + krike) tt (játék t + ttr tR2 //special exception with always need executing +helyeze) tt (ről t: + tts (á tS: + halo) tt (sápad t + tts (é tS: + tty c: + ttyj c: +keresz) tt (űz t: + + + .group u u u szovjet) u (nió u: @@ -1295,14 +1364,18 @@ szovjet) u (nió u: ü y ütt yt: ütty yc: -egy) ütt (m yt -egy) ütt (l yt -egy) ütt (v yt + ütty (L01 yc + üttyb ycb //special exception with always need executing + üttyr ycR2 //special exception with always need executind + ütt (L01 yt + üttb ytb //special exception with always need executing + üttr ytR2 //special exception with always need executing + .group ű ű y: t) ű (zijáték y - _t) ű (nés y //If this word is a single word, need y phoneme, not y: phoneme. For example the tűnés word, but not need this rule with eltűnés word. + _t) ű (nés y //If this word is a single word, need [y] not [y:]. eg. "tűnés" but not "eltűnés" _t) ű (njön y .group v @@ -1326,6 +1399,9 @@ egy) ütt (v yt .group z z z + zz (b z //if have two z and b letter, need one [z] + zz (t z //if have two z and t letter, need one [z] + zz (v z zs Z zzs Z: @@ -1341,32 +1417,24 @@ csontvá) z z helye) z (ked s inté) z (ked s költö) z (köd s - lefeje) z (te s lefeje) z (ték s pén) z (tár s ré) z (serpenyő z tartó) z (t s - gá) z (cső z - - ké) z (sz z há) z (so z - - má) zc (sz z mé) zc (sz z nehé) z (sé S nehé) z (súlyú z iga) zs (ág SS - ga) zs (ág SS pén) z z tor) z (ság z _vité) z z _ví) z (s z - ga) zs (ág zS _gá) zsz (ámla zs _gá) zsz (ámlá zs @@ -1374,12 +1442,8 @@ lefeje) z (ték s ő) zs (uta zS _vá) zs (or zS _szára) zs (ág SS - _nehé) zs (ely zS - _) zürich tsyR2i C - vigyá) zz (ba z - vigyá) zz (t z tí) zsz (er s: szá) zsz (or s: mé) z (sör z @@ -1387,7 +1451,6 @@ _szára) zs (ág SS ké) z (zsibbadás z ké) z (sérül z szű) z (sült z - gő) z (sugár z találko) z (t s eszkö) z (sor z @@ -1395,7 +1458,7 @@ találko) z (t s matró) z (sapka z nehé) z (súly z tör) zsz (ászló Z|z - zsz z|s //general exception. Need difference first z and second sz phoneme. For example, rajzszög, rajzszeg, mézszín words. + zsz z|s //general exception. Need difference first z and second sz phoneme. eg: rajzszög, rajzszeg, mézszín words. pén) z (t s rende) z (ked s kocká) z (ta s @@ -1453,10 +1516,16 @@ ajándéko) z (t s hango) z (t s szerve) z (ked s kaló) z (ság z +szellő) z (tet s + vigyá) zz (áll z + zippzár tsipza:R2 + zipzár tsipza:R2 + győ) z (köd s + győ) z (t s + kötö) z (kö s + árví) z (súj z //for example árvízsújtott word need spokening single z phoneme, not Z phoneme .group - - $ dolla:R2 ä E æ E diff --git a/dictsource/it_list b/dictsource/it_list index 115df401..09ee6bc0 100644 --- a/dictsource/it_list +++ b/dictsource/it_list @@ -149,6 +149,8 @@ _0Z3 mill'ezimi // 1000ths // abbreviations (http ://) 'ak:at,i:t,i:p'i:_ +www 'vu'vu'vu +avv avvocato $text $hasdot // articles i $u $only diff --git a/dictsource/it_listx b/dictsource/it_listx index 11c9bb56..4fcb5086 100644 --- a/dictsource/it_listx +++ b/dictsource/it_listx @@ -12,8 +12,8 @@ abit $1 abomas $2 academia $3 $alt acantodi $3 $alt -acar $1 acari $1 +acar $1 accademia $3 $alt accadia $3 accegli $alt @@ -38,7 +38,7 @@ addebit $2 $alt2 addi $2 addome $alt adeline $alt2 -adempiere $2 $alt +adempiere $2 adenoipofisi $5 adenomer $3 aderbale $2 @@ -97,8 +97,8 @@ alenia $alt aleria $2 $alt2 ales $alt alesia $2 $alt -alessia $3 alessi $alt +alessia $3 alfabet $alt algebric $alt algenib $alt @@ -186,6 +186,7 @@ anfipoli $2 anfor $1 angel $1 angeli $1 +angel $1 angiogenesi $3 anglosassone $3 anglosassoni $3 @@ -215,15 +216,15 @@ anteros $1 anthemis $1 antiaerea $3 antiaereo $3 -antic $2 anticamer $3 anticip $2 +antic $2 anticresi $alt antidot $2 antidrog $alt antieroe $alt -antif $1 antifate $2 +antif $1 antifon $2 antigas $3 antigone $2 @@ -267,8 +268,8 @@ aprassia $3 apricen $alt2 aprile $2 aquilegia $3 $alt -arab $1 arabi $1 +arab $1 aragon $3 aragost $alt2 aramei $3 @@ -298,8 +299,8 @@ ardar $1 ardea $1 ardesia $2 $alt area $1 -arenaceo $3 aren $alt2 +arenaceo $3 arene $alt2 areol $2 argali $3 @@ -342,8 +343,8 @@ asclepiodot $4 asepsi $alt asfissia $3 asil $2 -asin $1 asincron $2 +asin $1 asintot $2 asmonei $3 asol $1 @@ -392,6 +393,7 @@ austrasia $3 autari $1 autentic $alt autentiche $alt +autentic $alt autobus $1 autocefalia $6 autocton $3 $alt @@ -416,8 +418,8 @@ azeotrop $3 azimut $1 azoospermia $5 azot $alt -aztec $alt aztechi $alt +aztec $alt baba $2 baccara $3 bacen $alt2 @@ -426,8 +428,8 @@ badia $2 badile $2 bage $2 bagli bal^'i -bagnol $2 bagnoli $2 +bagnol $2 bagnoregi $alt bajazet $3 $alt2 baka $2 @@ -437,8 +439,8 @@ balenotter $alt bali $2 balia $2 balneoterapia $6 -balsam $1 balsami $1 +balsam $1 banari $1 bancarott $alt2 banconot $alt @@ -487,8 +489,8 @@ benessere $alt benevol $alt benton $alt beot $alt -berber $1 berberi $1 +berber $1 bere $alt2 bergeggi $alt2 bergere $2 @@ -537,32 +539,32 @@ bobbi $alt boccaner $alt2 boccett $alt2 boccia $alt -boem $alt boemia $2 $alt +boem $alt bogue $2 boheme $alt -bol $alt bolgheri $1 bolgia $1 $alt boll $alt2 +bol $alt bom $alt bombe $2 -bonacolsi $alt bon $alt +bonacolsi $alt bonarcad $2 bonassol $3 -bond $alt bonden $alt2 +bond $alt bongiorn $alt2 bonnanar $2 bonos $alt bonta $2 bontebok $1 $alt bordo $2 $alt -borea $1 bore $alt -borg $alt2 +borea $1 borghi $alt2 +borg $alt2 borgia $1 borgorose $alt borgosatoll $alt2 @@ -584,6 +586,7 @@ bov $alt bove $alt bovegn $1 $alt boves $alt +bov $alt bozzol $alt braccett $alt2 brachiceri $2 @@ -617,9 +620,9 @@ bufal $1 buffal $1 buia b'uia buio b'uio -bulgar $1 bulgari $1 bulgaria $3 +bulgar $1 bultei $2 buonarroti $alt burber $1 @@ -679,6 +682,7 @@ canad $1 canal $2 canap $1 canape $1 +canap $1 canazei $3 candel $alt2 canfor $1 @@ -708,7 +712,7 @@ cappellania $4 caprifogli $alt capuleti $alt2 caput $2 -caraco $3 $alt +caraco $3 caraibico kaRa'ibiko carcan $1 carcare $1 @@ -722,8 +726,8 @@ carite $3 carlin $2 carne $2 $alt carnefice $alt2 -carnivor $2 carnivori $2 +carnivor $2 caronia $3 carot $alt carpar $1 @@ -816,9 +820,9 @@ centin $1 $alt centocchi $alt centol $alt centopiedi $alt -centr $alt centri $alt centric $alt +centr $alt centrifug $2 centromer $2 centuripe $2 @@ -828,13 +832,16 @@ ceram $1 ceranesi $2 cerber $1 cerc $alt2 +cerchi $alt2 cerchia $alt2 cerchi $alt2 cercine $alt2 +cerc $alt2 cercoceb $alt cercol $alt2 cercopitec $alt cernobbi $alt +cer $alt2 cerveteri $2 $alt ces $alt cesar $1 @@ -842,8 +849,8 @@ cesare $1 cesaro $3 $alt cesi $alt cest $alt2 -cet $alt cetnici $alt +cet $alt cetr $alt2 cezanne $1 $alt2 chambery $alt2 @@ -916,17 +923,17 @@ cleomene $2 cleptomania $4 cles $alt clet $alt -cli $1 -climen $1 climene $1 +climen $1 +cli $1 clipeo $1 clistene $1 clodia $alt cloe $alt cloramfenicol $5 $alt -cob $alt cobas $alt cobh $alt2 +cob $alt cocchia $alt cocchi $alt coccia $alt @@ -945,11 +952,11 @@ cola $2 colbricon $3 colchide $alt colei $2 -coleotter $alt coleotteri $alt +coleotter $alt colesterol $4 -collagene $2 coll $alt2 +collagene $2 colleg $alt collegi $alt collelong $alt @@ -958,6 +965,7 @@ coller $alt collett $alt collevecchi $alt colli $alt +coll $alt2 collodi $alt colloqui $alt colob $1 @@ -965,8 +973,8 @@ cologn $alt colon $2 colonia $3 colonn $alt2 -color $alt2 colorn $alt2 +color $alt2 colosimi $2 colui kol'u:i comedia $alt @@ -983,14 +991,15 @@ compiet $alt compit $1 complet $alt complice $alt -composit $2 composite $2 +composit $2 compost $alt2 composte $alt2 +compost $alt2 compravendit $3 compress $alt -comput $1 $alt computazionale $5 $alt2 +comput $1 $alt comunita $4 concav $1 $alt concentric $alt @@ -1016,9 +1025,9 @@ congruo $1 $alt conifer $2 coniuge $1 conn $alt2 -cons $alt consci $alt conselice $alt2 +cons $alt console $alt conson $1 $alt consuet $alt @@ -1040,14 +1049,14 @@ copolimer $3 coppia $alt coppol $alt coprolalia $4 -copt $alt copti $alt +copt $alt corazzat $2 cordenons $3 $alt cordob $1 $alt2 cordogli $alt -corea $1 core $alt +corea $1 cored $1 corfu $2 coriz $1 @@ -1063,9 +1072,9 @@ correr $2 corrett $alt corrid $2 corrott $alt2 -cort $alt2 corte $alt2 cortenuov $alt +cort $alt2 cortes $2 cortile $2 cortisol $3 @@ -1077,6 +1086,7 @@ cosen $alt2 cosi $2 cosm $alt cosmic $alt +cosm $alt cosmogonia $4 cospett $alt cosseria $2 @@ -1086,12 +1096,13 @@ costi $2 cot $alt cote $alt coti $alt +cot $alt cottim $alt coupe $3 coyote $alt cratere $2 -cred $alt credit $1 $alt2 +cred $alt cremer $1 cremia $1 cremisi $1 @@ -1100,8 +1111,8 @@ cres $alt crescit $1 cresol $2 crest $alt2 -cretaceo $2 cret $alt +cretaceo $2 crevalcore $alt cricet $alt criogenia $4 @@ -1142,8 +1153,8 @@ custode $alt custodia $alt cutaneo $2 dafni $2 -dagherrotip $3 dagherrotipia $5 +dagherrotip $3 dalmat $1 damar $1 damocle $1 @@ -1157,9 +1168,9 @@ davver $2 $alt2 debit $1 $alt2 debole $1 debor $1 $alt +dec $alt decade $1 $alt decalog $2 -dec $alt decameron $2 decapoli $2 decebal $2 $alt @@ -1195,8 +1206,8 @@ deuteronomi $alt deuterostomi $alt devot $alt diabete $alt -diacon $2 diaconia $4 +diacon $2 diadem $alt diagnosi $2 dialett $alt @@ -1265,29 +1276,29 @@ diviet $alt djembe $2 $alt dobrugia $2 doclea $1 $alt -dod $alt dodecaedr $alt dodecagon $3 dodecanes $alt dodicesim $alt dodici $alt2 +dod $alt dogali $1 doge $alt dogli $alt -dol $alt dolcett $alt2 dolfin $2 dolianov $alt dollar $1 $alt dolman $alt dolmen $alt +dol $alt dolomia $2 $alt domenic $alt2 domin $1 domusnovas $alt dona $2 -don $alt2 donnol $alt +don $alt2 donori $3 dopolavor $alt2 doppiopett $alt @@ -1317,12 +1328,12 @@ ebl $alt eboli $1 $alt ebrei $2 ebridi $alt -ec $alt ecate $1 $alt eccentric $alt ecceter $2 $alt ecij $1 $alt2 eclog $1 $alt +ec $alt ecosistem $alt ecub $1 $alt eczem $alt @@ -1353,6 +1364,7 @@ elemosin $3 elett $alt elettr $alt elettric $alt +elettr $alt elettrod $alt elettrodott $alt2 elettroforesi $alt @@ -1376,7 +1388,6 @@ ellespont $alt elogi $alt eloqui $alt els $alt2 -em $alt emblem $alt embol $alt embolia $3 @@ -1387,6 +1398,7 @@ emes $1 $alt emicrania $4 emicriptofit $4 emmental $1 $alt +em $alt emodialisi $3 emofilia $4 emostasi $2 @@ -1470,8 +1482,8 @@ eroin $3 erotomania $5 erro $2 $alt erzegovin $3 -esac $alt esacisottaedr $alt +esac $alt esaedr $alt esagon $2 esametr $2 @@ -1494,14 +1506,14 @@ esotropia $4 esperia $2 esplicit $2 esposimetr $3 -ess $alt2 esserci $1 $alt essere $alt -est $alt2 +ess $alt2 estasi $1 estensimetr $3 ester $1 estet $alt +est $alt2 estoni $1 estraneo $2 et $alt @@ -1531,8 +1543,8 @@ eun $1 eurasia $3 eurek $1 euriloc $3 -eurit $1 euritmia $4 +eurit $1 europ $alt europi $alt europol $4 @@ -1569,8 +1581,8 @@ fatic $2 fattispecie $alt fattoria $3 fauglia $2 -feb $alt febbre $alt +feb $alt febbrile $2 feccia $alt fedele $alt2 @@ -1580,8 +1592,8 @@ felce $alt2 felice $2 felicita $4 felsin $1 -feltr $alt2 feltre $alt2 +feltr $alt2 femin $1 $alt2 femmin $1 femminile $3 @@ -1616,8 +1628,8 @@ filemone $alt filistei $3 filobus $1 filocrate $2 -filosof $2 filosofia $4 +filosof $2 filossen $2 filostrat $2 filot $alt @@ -1631,8 +1643,8 @@ fiond $alt2 fischi $2 fisioterapia $6 fitocenosi $alt2 -fitofag $2 fitofagi $2 +fitofag $2 fitoterapia $5 flamenc $alt2 flegias $1 $alt @@ -1645,8 +1657,8 @@ foder $1 foggia $alt foglia $alt fogli $alt -folag $1 fol $alt +folag $1 folgaria $3 folgore $1 follia $2 @@ -1657,7 +1669,6 @@ fontanafredd $alt2 fontanelice $alt2 fontanigord $alt2 foppol $alt -for $alt2 foraminiferi $4 foraneo $2 forcol $alt2 @@ -1666,8 +1677,9 @@ forgia $1 fori $2 formalita $4 formic $2 -fornace $2 forn $alt2 +for $alt2 +fornace $2 forr $alt2 forse $alt2 fortuito fO@-*t'uito @@ -1695,8 +1707,8 @@ freccette $alt2 fredd $alt2 fren $alt2 frigia $1 -frod $alt frode $alt +frod $alt frumenzi $alt fruscio f@-*uS'i:o fruttosi $alt @@ -1768,9 +1780,9 @@ giog $alt2 giolit $1 gionat $1 giorn $alt2 -giov $alt2 giovane $1 $alt2 giovine $alt2 +giov $alt2 gipet $alt gipsotec $alt girostat $2 @@ -1784,20 +1796,20 @@ glia l^'i:a glicerol $3 glicolisi $2 gliptodontidi $alt -glob $alt globicefal $3 $alt +glob $alt glossolalia $4 glottide $alt glucosi $alt gluteo $1 -gnom $alt gnome $alt +gnom $alt gogo $2 $alt -gol $alt golasecc $alt2 goleador $4 golem $alt golgi $alt +gol $alt golia $2 goliardia $4 gomit $1 $alt2 @@ -1905,8 +1917,8 @@ infamia $2 infantile $3 infedele $alt2 infelice $3 -infer $1 inferi $1 +infer $1 infett $alt infinita $4 infinitesim $alt @@ -1918,8 +1930,8 @@ ingorg $alt2 ininterrott $alt2 innocuo $alt inquiet $alt -insett $alt insetti $alt +insett $alt insetticid $4 insieme $alt insit $1 @@ -1978,10 +1990,10 @@ isopsefia $4 isopter $2 $alt isoscele $2 $alt isospin $3 -isotop $2 isotopia $4 -isotrop $2 +isotop $2 isotropia $4 +isotrop $2 isotteri $alt istantanea $3 istantaneo $3 @@ -2057,14 +2069,14 @@ lepre $alt lepri $alt lequile $alt leros $alt2 -lesb $alt lesbic $alt +lesb $alt lesm $alt lessic $alt lestrigoni $2 let $alt -lett $alt letter $alt +lett $alt lettig $2 leuc $1 leuci $1 @@ -2074,9 +2086,10 @@ leve $alt levita $3 liber $1 liberi $1 +liber $1 liberta $3 -licantrop $2 licantropia $4 +licantrop $2 licomede $alt liet $alt lieve $alt @@ -2102,17 +2115,17 @@ litania $3 litoraneo $3 lob $alt localita $4 -lod $alt lode $2 $alt +lod $alt lodol $1 lodz $alt2 -log $alt loggia $alt logli $alt +log $alt lol $alt lombardia $3 -long $alt longhi $alt +long $alt lonicer $2 lord $alt2 loredan $3 @@ -2230,6 +2243,7 @@ mazzaccher $2 mazze $2 $alt mazzin $2 mazzol $2 +medi $alt media $alt medi $alt mediceo $2 @@ -2263,6 +2277,7 @@ mensile $2 mensol $alt ment $alt2 mente $alt2 +ment $alt2 mercanzia $3 merce $2 meri $2 @@ -2295,14 +2310,14 @@ metastasi $2 metatesi $2 meteor $2 $alt2 meteore $2 -metod $alt metodi $alt +metod $alt metr $alt2 mettere $alt mexic $alt2 mezenzi $alt -mezzadria $3 mezz $alt +mezzadria $3 mezzaneg $2 mezzogiorn $alt2 miastenia $4 @@ -2335,9 +2350,9 @@ mirafiori $alt2 miriade $2 misantropia $4 miscellanea $3 -miser $1 miserere $3 miseria $2 +miser $1 misia $1 misoginia $4 mista $2 @@ -2351,6 +2366,7 @@ mochi $alt moconesi $2 mod $alt modem $alt +mod $alt modestia $2 modoc $alt mogan $1 @@ -2365,6 +2381,7 @@ moken $alt mol $alt mole $alt molecol $alt +mol $alt mollic $2 moloch $alt molochi $alt @@ -2373,8 +2390,8 @@ molten $alt2 molv $alt mombarocci $alt momentaneo $3 -monade $1 mon $alt +monade $1 monarchia $3 mondadori $alt2 mondolf $alt @@ -2414,8 +2431,8 @@ monzon $2 mopsuestia $2 mores $alt morfem $alt -moria $2 mori $alt2 +moria $2 morini $1 morol $2 moscov $alt @@ -2426,6 +2443,7 @@ mostr $alt2 mot $alt motel $2 motmot $2 $alt +mot $alt motocross $3 mozz $alt2 mufti $2 @@ -2437,8 +2455,8 @@ muntaz $2 musei $2 musicoterapia $6 muster $2 -mutagen $2 mutagenesi $3 +mutagen $2 nabatei $3 nabucodonosor $4 $alt nadir $2 @@ -2517,19 +2535,20 @@ nosocomi $alt nostoi $1 $alt2 not $alt notes $alt +not $alt nottetemp $alt noumea $alt2 noumen $2 nous $2 -nov $alt nove $alt novembre $alt nover $1 novi $alt +nov $alt nucleo $1 nucleosintesi $4 -numer $1 numeri $1 +numer $1 nunatak $3 nuot $alt nuov $alt @@ -2546,9 +2565,9 @@ oboe $1 $alt obsolet $alt occhi $alt ocean $2 -od $alt ode $alt odi $alt +od $alt odontoiatria $6 odontotecnic $alt ofant $1 $alt @@ -2575,7 +2594,6 @@ oltremod $3 $alt oltreocean $4 olympos $1 olynthos $1 -om $alt omayyadi $2 ombelic $3 omeg $alt @@ -2586,6 +2604,7 @@ omicron $1 $alt omnibus $1 $alt omnitel $3 omnium $alt +om $alt omogeneo $3 omotopia $4 omotteri $alt @@ -2618,8 +2637,8 @@ organon $1 $alt2 orgia $1 origan $2 oritterop $3 -orl $alt2 orleans $alt2 +orl $alt2 orogenesi $3 orologi $alt orop $alt @@ -2640,8 +2659,8 @@ ortottic $alt orviet $alt orzinuovi $alt orzivecchi $alt -osc $alt oscar $alt +osc $alt osmi $alt ospite $alt osroe $1 @@ -2653,8 +2672,8 @@ ossidoreduttasi $1 osteogenesi $4 ostia $1 ostile $2 -ostrogot $alt ostrogoti $alt +ostrogot $alt ot $alt otrant $1 otre $alt2 @@ -2665,8 +2684,8 @@ ottic $alt ottim $alt ottoboni $alt ottobre $alt2 -ottotip $2 ottotipi $2 +ottotip $2 ovest $alt ovideposizione $alt ovile $2 @@ -2752,17 +2771,18 @@ peccioli $alt peceneghi $alt pecor $1 $alt pedagog $alt -ped $alt pedaven $alt2 +ped $alt pediatria $3 pedofilia $4 pedogenesi $3 peggi $alt -pelag $1 pel $alt2 +pelag $1 pelaverg $alt2 pell $alt2 pelle $alt2 +pel $alt2 pelope $1 peloponnes $alt pelosi $alt2 @@ -2782,8 +2802,8 @@ pentametr $2 pentapoli $2 pentateuc $3 pentatl $1 -pentatl $alt pentatlet $alt +pentatl $alt pentod $alt pepi $alt pepoli $1 $alt @@ -2828,6 +2848,7 @@ pesc $alt pescasseroli $3 pesche $alt peschici $alt +pesc $alt pesi $alt pessim $alt pest $alt2 @@ -2894,9 +2915,9 @@ planimetr $2 plantagenet $alt plasmodesm $alt plasmodi $alt -platan $1 platani $1 platania $3 +platan $1 platin $1 plebe $alt plecotteri $alt @@ -2926,8 +2947,8 @@ polesine $alt2 polia $2 policrate $2 policrom $2 -poliedr $alt poliedric $alt +poliedr $alt polifem $alt poligal $2 poligon $2 @@ -2943,11 +2964,12 @@ politecnic $alt polizia $3 polizz $1 poll $alt2 -polli $alt pollic $alt pollice $alt pollin $1 $alt polline $alt +polli $alt +poll $alt2 pomice $alt2 pompei $2 ponce $alt @@ -2974,9 +2996,9 @@ pos $alt posamine $3 posillip $2 possibilita $5 -post $alt2 posteri $1 posteriori $alt2 +post $alt2 postum $1 potal $1 potamogale $3 @@ -2997,9 +3019,9 @@ pred $alt predilett $alt prefett $alt pregadi $3 -preg $alt preganziol $4 pregi $alt +preg $alt premia $1 premilcuore $alt prensile $alt @@ -3010,8 +3032,8 @@ presepi $alt press $alt prestit $1 presuppost $alt2 -pret $alt prete $alt +pret $alt preterit $2 prett $alt previ $alt @@ -3023,8 +3045,8 @@ primogenit $3 principi $2 prior $alt2 privilegi $alt -prob $alt problem $alt +prob $alt proboscide $alt procediment $alt proci $alt @@ -3057,11 +3079,11 @@ prosodia $3 prospett $alt prostaferesi $3 prostat $1 -prot $alt proteo $1 $alt protesi $1 protett $alt proteus $1 $alt +prot $alt protir $1 protocerebr $3 protomartire $3 @@ -3069,6 +3091,7 @@ protostell $alt2 prototip $2 prov $alt prove $alt +prov $alt prozi $2 prua p@-*'u:a psichiatria $3 @@ -3100,8 +3123,8 @@ quartirol $3 quattordicesim $alt quattordici $alt2 quattroruote $alt -quiet $alt quiete $alt +quiet $alt quindicesim $alt quot $alt raab $2 @@ -3122,9 +3145,9 @@ ranocchia $alt ranocchi $alt rapace $2 rape $2 $alt -rapsod $2 rapsod $alt rapsodia $3 +rapsod $2 rate $2 rateo $1 razzia $2 @@ -3245,15 +3268,16 @@ rondo $2 $alt ronzi $2 ropaloceri $3 rore $alt -rosalia $3 ros $alt +rosalia $3 rose $2 roseo $1 $alt rosolia $3 -rosp $alt rospigliosi $alt2 +rosp $alt ross $alt2 rossi $alt2 +ross $alt2 rot $alt rotari $1 rotor $alt @@ -3327,8 +3351,8 @@ sassoni $1 satan $1 satellite $2 satir $1 -satrap $1 satrapia $3 +satrap $1 satur $1 savoc $1 savorgnan $3 @@ -3362,8 +3386,8 @@ sciovia $2 sclerodermia $4 scogli $alt scol $alt2 -scorci $alt2 scorciatoia $alt2 +scorci $alt2 scordia $2 scorpor $1 scorrett $alt @@ -3414,7 +3438,6 @@ semmai $2 semol $1 sempre $alt sempreverde $alt2 -sen $alt2 seneghe $1 $alt seni $alt senile $2 @@ -3423,6 +3446,7 @@ seniore $alt sennacherib $4 senno $2 $alt sennori $1 $alt +sen $alt2 senoni $1 $alt sepri $alt sepsi $alt @@ -3443,6 +3467,7 @@ sessuofobia $4 sett $alt sette $alt settembre $alt +sett $alt settime $1 seul $2 seves $1 $alt @@ -3478,8 +3503,8 @@ simun $2 sinagog $alt sinalefe $alt sincope $1 -sincron $1 sincronia $3 +sincron $1 sindia $2 sindone $1 sindrome $1 @@ -3511,8 +3536,8 @@ snod $alt sobborg $alt2 socci $alt soccors $alt2 -socialdemocrazia $6 soci $alt +socialdemocrazia $6 societa $3 sod $alt sodi $alt @@ -3529,9 +3554,9 @@ soleo $1 $alt solit $1 solletic $alt2 solopac $3 -somal $1 -somali $1 som $alt +somali $1 +somal $1 somm $alt2 sonar $alt sonia $2 @@ -3541,8 +3566,8 @@ soprabit $2 sorbitol $3 sorci $alt2 sord $alt2 -sorg $alt2 sorgere $alt2 +sorg $alt2 sorgon $1 sorisole $2 sors $alt2 @@ -3578,8 +3603,8 @@ speculum $1 speot $alt spermicid $3 spessimetr $2 -spettr $alt spettri $alt +spettr $alt spianatoia $alt2 spied $alt spigol $1 @@ -3671,18 +3696,18 @@ tane $2 $alt tanganic $3 tantal $1 tapir $1 -tarant $1 tarantasia $3 +tarant $1 tardigradi $2 tari $2 tarpan $2 -tartar $1 tartari $1 +tartar $1 tassametr $2 tassi $2 tata $2 -tatar $1 tatari $1 +tatar $1 taurianov $alt te $alt tec $alt @@ -3698,8 +3723,8 @@ tegu $2 teista tE'ista tel $alt2 telecamer $3 -telef $1 telefilm $3 +telef $1 telefon $2 $alt telegon $2 $alt telegraf $2 $alt @@ -3713,11 +3738,11 @@ temen $1 $alt temi $alt temistocle $2 temnospondili $alt -temp $alt tempe $alt temper $1 $alt tempi $alt templ $alt +temp $alt tempor $1 $alt temporaneo $3 tempr $alt @@ -3725,8 +3750,8 @@ temu $2 tenace $2 tenebr $1 $alt tened $1 $alt -tener $1 $alt tenere $2 $alt2 +tener $1 $alt tenia $alt tenue $alt teocrazia $4 @@ -3819,9 +3844,9 @@ torbole $alt2 torchiarol $3 tord $alt2 tornabuoni $alt -torn $alt2 tornarecci $alt torni $alt2 +torn $alt2 tornol $alt2 torped $alt tors $alt2 @@ -3900,8 +3925,8 @@ trivenet $2 $alt troade $1 $alt trombocitopenia $6 trot $alt -trov $alt trovarobe $alt +trov $alt tuber $1 tunisi $1 turan $2 @@ -3936,8 +3961,8 @@ uov $alt upup $1 uretere $3 urzulei $3 -usbec $alt usbechi $alt +usbec $alt usignol $3 usini $1 ussan $1 @@ -3961,8 +3986,8 @@ valpanten $alt2 valsassin $2 valsecc $alt2 valsesia $2 $alt -vandal $1 vandali $1 +vandal $1 varen $alt2 varenn $alt2 varieta $4 @@ -3976,6 +4001,7 @@ veicolo vE'ikolo vel $alt2 velen $alt2 velletri $alt2 +vel $alt2 velocipede $3 velocita $4 ven $alt2 @@ -3984,8 +4010,8 @@ venceslao $3 vendit $1 venerdi $3 venere $alt -venet $1 $alt veneti $1 $alt +venet $1 $alt ventenni $alt ventesim $alt venti $alt2 @@ -3997,11 +4023,12 @@ ventriloqui $alt ventriloquo $2 venusta $3 vepre $alt -verace $2 ver $alt2 +verace $2 verde $alt2 verg $alt2 vergine $alt2 +ver $alt2 verne $2 vernice $2 verolanuov $alt @@ -4012,8 +4039,8 @@ vertov $1 verz $alt2 verzegnis $alt vescic $2 -vescov $1 vescovile $3 +vescov $1 vesp $alt vespasian $4 vespr $alt @@ -4029,6 +4056,7 @@ videoclip $4 videotec $alt vidigraf $2 vigano $3 $alt +vigevan $2 $alt vignol $2 vigonov $alt villamassargia $4 @@ -4069,8 +4097,8 @@ volv $alt vomer $1 vomit $1 vosgi $alt -vot $alt voti $alt +vot $alt vudu $2 vulture $1 vuot $alt @@ -4112,8 +4140,8 @@ zevi $alt ziggurat $1 zigote $alt zigotteri $alt -zingar $1 zingari $1 +zingar $1 zoccol $alt zoe $alt zon $alt @@ -4121,6 +4149,6 @@ zoofilia $4 zoppia $2 zoppol $alt zuccari $1 -zuccher $1 zuccheri $1 +zuccher $1 zulu $2 diff --git a/dictsource/it_rules b/dictsource/it_rules index a23a2c1c..9193d16f 100644 --- a/dictsource/it_rules +++ b/dictsource/it_rules @@ -27,7 +27,7 @@ @) a (ggine_ 'a _) ae (r aI - @) ano (_ %ano //ByFilo +// @) a (no_ =a //ByFilo, this seems to make it_listx longer @) avano (_S5 'avano a (tterA_ 'a diff --git a/dictsource/nl_list b/dictsource/nl_list index 540c0774..87f8804a 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -778,8 +778,33 @@ libel $2 mirabel $3 tabel $2 +// ending -eum is stressed ['e:8m] +atheneum $alt +colosseum $alt +jubileum $alt +lyceum $alt +mausoleum $alt +museum $alt +carbolineum $alt +linoleum $alt $2 +marmoleum $alt +petroleum $alt $2 + +// ending -ot is stressed +fagot $2 +kapot $2 +patriot $3 +komplot $2 +poliglot $3 +marmot $2 +schavot $2 + // words ending in el, elt, elde, elden, elend, elende, eld, ele, elen -// with stress on the previous syllable +// with stress on the previous syllable, +// also words ending in er. etc. + +beter $alt + // adjectives edel $alt enkel $alt @@ -1211,8 +1236,10 @@ actiepunt Aksip8nt agenda $2 amino $1 amnestie $3 +bijziend $2 // bijziendheid boudoir budv#'a:r bourgondier burx'o:ndi:@r +braille brAj@ circuit sIrku'i chalet Sa:lE champagne SAmp'An^@ @@ -1225,18 +1252,24 @@ chat tSEt check tSEk chiffon Sif'On contour ko:nt'ur +divers div'Ers dynastie $3 +eensgelijks e:nsQ@l'EIks +emaille ,e:m'Aij@ eucharistie $4 +inductie $2 ingewikkeld $3 ingrijpend $2 ingeval $3 ingevolge $3 ingrediënt $4 ingenieur Inzj@nj'Y:r +informatie $3 journaal Surn'a:l maxima $1 meteen mEt'e:n minima $1 +nabij nab'EI ongastvrij OnQAstv@-*'EI ongelooflijk $3 ongemakkelijk $3 @@ -1257,6 +1290,7 @@ tegenstrijdig $3 tegenwoordig $3 travestie $3 verderop $3 +volledig $2 waarschijnlijk $2 diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 35dceb9f..303bebe9 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -17,13 +17,17 @@ @) abel (_ 'a:bE2l @) abele (_ 'a:b@l@ _) af (C@P2 'Af - age (_ 'a:Z@ + age (_N 'a:Z@ ages (_S1 s age (_$w_alt a:Q@ aire (_ 'E:r air (_ 'Er + @) agne (_ 'An^@ ale (_ 'a:l@ @) ant (_ 'Ant + @) ant (e_ 'Ant + @) ant (en_ 'Ant + @) ant (er_ 'Ant @) a (de_ 'a: @) a (ta_ 'a: @@ -37,6 +41,7 @@ &) baar (_ =ba:r _) be (@P2 b@ _) b (ee+ b + _) bei (de bEI _) be (ren bI: _) be (rm bE _) be (stia bE @@ -47,6 +52,7 @@ _) bezig be:z@x _) beu bY: _) bij (C@P3 b'EI + _) brand br'And _) bureau byr'o: _) buurt (@@P5 b'yrt // buurtbewoner @@ -88,6 +94,8 @@ ciële S'e:l@ coach ko:tS + _) congres kOnQr'Es + .group d d d // auto-devoice at end-of-word @@ -98,7 +106,7 @@ .group e e e: - &C) e (_S1q @ + &C) e (_S1qd @ e (_ @ e (CK E e (x E @@ -110,6 +118,7 @@ eeuw eU eu Y: + ea (_ 'e:a: eau o: //words with French origin @) ee (_ 'e: @) ee (X_ 'e: @@ -131,18 +140,33 @@ &) el (den_$p_alt =@l &) el (end_$p_alt =@l + &) er (_$p_alt =@r + &) er (e_$p_alt =@r + &) er (en_$p_alt =@r + &) er (t_$p_alt =@r + &) er (d_$p_alt =@r + &) er (de_$p_alt =@r + &) er (den_$p_alt =@r + &) er (end_$p_alt =@r + + &) elijks @l@ks &) em (_ @m &) en (_S2qd @n &) ens (_S3q @ns &) end (_ @nd &) ende (_ @nd@ @) ent (_ 'Ent + @) ent (e_ 'Ent + @) ent (en_ 'Ent + @) ent (er_ 'Ent &) er (_ @r &) ere (_ @r@ &) er (en_$p_alt @r // where 'eren' is not a verb ending eren (_ 'I:r@n &) es (_ @s @) etten (_S3 @n + eum (_$w_alt 'e:8m + @mus) eum (_ ,e:8m // compounds @) eur (_ 'Y:r &) e (nB@ E2 @@ -152,6 +176,9 @@ @) e (raar_ @ &) e (rC@ E2 + c) e (ntrum E // not @ + _) expositie Ekspo:z'itsi + .group f @@ -166,12 +193,15 @@ _) ge (@P2 Q@ _) gee Qe: gener (aal Q,e:n@r - gelijk Q@lEIk + _) gelijk Q@lEIk _) ge (rC QE _) geu QY: _) ge (ven Qe: + _) ge (ver Qe: _) ge (ving Qe: + ge (sprek Q@ // in compounds + .group h h h @@ -179,6 +209,7 @@ _) her (@P3 hEr _) her (en hI:r + &) heid (_S4 hEIt .group i @@ -199,9 +230,12 @@ &) ica (_ =ika: &) ico (_ =iko: ie (X 'i + ie (ren_ 'i ie (rd_ 'i @) ig (_S2dq @x @) ige (_ @Q@ + ij (_ 'EI + ij (e_ 'EI @) ij (n_ 'EI &) ika (_ =ika: &) iko (_ =iko: @@ -240,8 +274,10 @@ m m m) m + mail me:Il management ma:nIdZm@nt _) mee (@P3 m'e: + menu (_ m@ny .group n @@ -271,8 +307,9 @@ @@C) o (_ =o: oe (X_ 'u oir (_ 'v#a:r + pr) o (gram o: oo (X 'o: - telef) oo (n 'o: + oon 'o:n // in compounds, eg. telefoongesprek _) op (@@P2 'Op _) open (@P4 'o:p@n _) op (era 'o:p @@ -327,7 +364,9 @@ r r A) r (A r C) r (A r - rr *r + rr *r + + route rut@ // route(s) .group re _) re (geren r@ @@ -356,6 +395,7 @@ @) ssi (o S _) standaard (@P9 st'Anda:rt + _vre) s (e s .group t @@ -388,7 +428,7 @@ .group te _) tegen (P5 t'e:Q@n _) terug (P5 t@r'8x - _) te (gelijk t@ + _) te (gelijkP2 t@ _) te (gemoetP2 t@ _) te (goed t@ _) te (hui t@ // tehuis @@ -437,6 +477,8 @@ w (CK w _) weg (@P3 v#'Ex + _) weg (en v#e:Q + _) weg (e_ v#e:Q // bewegelijk .group x diff --git a/dictsource/ta_list b/dictsource/ta_list index 8b45e447..e16dff04 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -227,7 +227,6 @@ tamil தமிழ் $text பாம்ப் $alt பீராமண $alt பால்ய $alt -பலு $alt பில் $alt பந்த் $alt பில்லி $alt @@ -254,8 +253,6 @@ tamil தமிழ் $text பீர் $alt போயிங் $alt பலத்தாலான $alt -பெஞ்ச் $alt -பெஞ்சு $alt பார $alt பாமா $alt பென்ஸ் $alt @@ -279,6 +276,15 @@ tamil தமிழ் $text பிஸி $alt பேஷ் $alt பாவே $alt +பாலு $alt +பீடி $alt +பிசி $alt +போன்சாய் $alt +போன்ஸாய் $alt +பீப் bi:p +ப்யூனஸ் $alt +பவுத்த $alt +பவுத்தம் $alt (பி . ஏ) bije: @@ -332,6 +338,8 @@ tamil தமிழ் $text தொப்புனு $alt தருமம் $alt தாவே $alt +தருமமும் $alt +தராவி $alt // initial ட @@ -353,6 +361,7 @@ tamil தமிழ் $text டிக் t.ik ரெட்டி red.d.i செல்லம் $alt +சிக்கன் $alt கக $alt // initial க as [g] diff --git a/dictsource/ta_rules b/dictsource/ta_rules index 077a2ec7..b9d4ae6e 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -52,6 +52,8 @@ // 'a' 'e' 'i' .L03 இ எ அ +// alternative 's' characters +.L04 ச ஸ // consonants @@ -133,12 +135,26 @@ க (ாரர k _) க (ிடுகிடு g _) க (ின்னென்ற g + _) கி (ரக g + _) கி (ரகண g + _) கி (ரந்த g + _) கி (ரவுண்ட g + _) கி (ரஹ g + _) கி (ராக்கி g + _) கி (ராதக k + _) கி (ராம g _) க (ிரிஜா g _) க (ிரிதர g + _) கி (ரீட k + _) கி (ரீன்லாந்த g _) கி (ரீம k _) க (ிருகஸ்தர g _) க (ிருஹஸ்தர g _) கி (ரேக்க g + _) கி (ரைண்டர g + _) கி (ரௌண்ட g + _) கி (ளாஸ g + _) கி (ளினிக் k _) க (ீதல k _) க (ீத்த k _) க (ுகநாத g @@ -186,6 +202,7 @@ _) க (ுருதேவ g _) க (ுருநா g _) க (ுருபூஜை g + _) க (ுருப்பெயர g _) க (ுருமார g _) க (ுருரா g _) க (ுருவா g @@ -196,6 +213,7 @@ _) க (ுருவுடை g _) க (ுருவை g _) க (ுருவோட g + _) க (ுறட்டை g _) கு (வாலியர g _) க (ூகிள g _) க (ூகுள g @@ -215,6 +233,7 @@ _) க (ேட்டைத் g _) க (ேட்டைப் g _) க (ேலி g + _) க (ொறட்ட g _) கோக (ிலா go:k _) க (ோகுல g _) க (ோதாவரி g @@ -253,12 +272,14 @@ _) க (ௌ g _) கௌட (ில்ய kaUt. _) க (ௌட்டில்ய k + _) க (ௌவ k + _) க் (ரவுண்ட g _) க் (ரூப g + _) க் (ரௌண்ட g _) க் (வாலியர g //endsort //sort - _மை) க kV# அலை) க (டல kV சமையல்) க (ட் kV உச்ச) க (ட்ட kV @@ -304,6 +325,7 @@ _தென்) க (ாசி k _நேர்) க (ாணல k _கண்) க (ாணா k + விவே) க (ானந்த k _வலை) க (ாப் k தொல்) க (ாப்பி k மூல) க (ாரண k @@ -316,27 +338,14 @@ _ம) க (ிந்த H மோ) க (ினி H _ம) க (ிமை H - _) கி (ரக g - _) கி (ரகண g கி (ரண g பொற்) கி (ரண g - _) கி (ரந்த g - _) கி (ரஹ g - _) கி (ராக்கி g - _) கி (ராதக k - _) கி (ராம g - _) கி (ரீட k - _) கி (ரீன்லாந்த g ஐஸ்) கி (ரீம k ங்) க (ிரு g கிரு (ஷ் kri - _) கி (ரைண்டர g - _) கி (ரௌண்ட g இங்) கி (லீஷ் g கி (லேச k அங்) க (ிள k - _) கி (ளாஸ g - _) கி (ளினிக் k _வட) க (ிழ k தென்) க (ிழ k _பா) க (ிஸ்தான k @@ -379,6 +388,7 @@ வீண்) க (ோப k _நாகர்) க (ோயில k _ட) க் k + _மை) க் k _ஷா) க் (_ k துர்) க்க ggV# மார்) க்க ggV# @@ -396,6 +406,8 @@ அயோ) க்க (ிய gg ஆரோ) க்க (ிய gg வைரா) க்க (ிய gg + அநு) க்கி (ர gg + அனு) க்கி (ர gg L03) க்கி (ரக gg // a,i _வி) க்க (ிரக gg சத்தியா) க்கி (ரக gg @@ -406,6 +418,7 @@ _மு) க்க (ுண gg அணு) க்க (ுண்ட gg ஜன) க்க (ும்பல gg + _வி) க்ச (னரி ks.V _பி) க்ச (ர ktSV _மெ) க்சிக (ோ ksik க்ட kt.V# // English words @@ -468,11 +481,15 @@ ச (ந்தர tSV _) ச (ந்தர்ப sV ச (ந்திர tSV + _ஹட்) ச (ன sV + _வாட்) ச (ன sV _) ச (ப்பாத்தி tSV _) சரசு (வதி sVrVs _) சர்ச (ி tSVrtS மருதா) ச (ல tSV வேதா) ச (ல tSV + _சேஷா) ச (ல tSV +_தணிகா) ச (ல tSV அருணா) ச (ல tSV _) ச (ாணக்கிய tS ச (ாந்தி s. @@ -488,8 +505,11 @@ ராஜோப) ச (ார tS _) ச (ார்ஜை tS _) ச (ார்ஜ்_ tS + _) ச (ார்லஸ tS _) ச (ாளுக்கிய tS _) சிக (ாகோ tSik + _) ச (ிக்கனு tS + _) ச (ிக்கனை tS _) சிக் (மங்களூர tSik _) சிக் (லெட் tSik _) ச (ிட்டாக tS @@ -504,6 +524,7 @@ _) ச (ித்திர tS வி) ச (ித்திர tS _) ச (ித்திரவதை tS + _) ச (ித்தூர tS _) ச (ித்ரவதை tS _) ச (ித்ரா tS சு) சித (்ரா tSit @@ -544,12 +565,14 @@ _) ச (ெல்லக்குட்டி tS _) ச (ெல்லத்துக்கு tS _) ச (ெல்லத்தை tS + _) ச (ெல்லப்ப tS _) ச (ெல்லமா tS _) ச (ெஸ் tS _) ச (ேனல tS _) ச (ேரி tS _) ச (ேலஞ் tS _) ச (ைனாவ tS + _) ச (ைனீஸ tS _) ச (ௌதரி tS //endsort @@ -578,6 +601,8 @@ //sort +அர்ஜண்) ட t.V# +அர்ஜெண்) ட t.V# _மில்) ட (ன t.V _) ட (ன் t.V ிங்) ட (ன் t.V // -ington @@ -596,6 +621,7 @@ _) ட (ாக்க t. // talkies _) டாக்ட (ர d.a:kt.V _) டாக (்ஸி t.a:k + _) டாங்க (ர t.a:NkV _) டாங்க (ி t.a:Nk _) டாட (ா t.a:t. அண்) டார்டிக t.a:rt.ikV# @@ -605,6 +631,7 @@ _போர்) ட (ிகோ t. ஆர்) டிக் t.ik _) ட (ிக்க t. + _) டின்க (ரிங் t.inkV _) டி (யூசன t. _) டி (யூஷன t. _) டி (ரங்கு t. @@ -615,21 +642,26 @@ _) டிராபிக் t.ra:fik _) ட (ிராம t. கொலஸ்) டி (ரால _|t. + _) டி (ராலி t. _) டி (ராவல t. _) டி (ராவெல t. _) டி (ரெயின t. + _) டி (ரெய்லர t. _) டி (ரெஸ d. _) டிரேயின (ை t.re:jn _) டி (ரைவர d. கண்) டி (ரோல t. _) ட (ிவிய t. + _) ட (ெக்ஸாஸ t. _) டென்டுல்க (ர t.ent.UlkV _) ட (ென்ஷன t. _) டெம்ப (ர t.empV _) டெம்ப (ோ t.emp டெலிப (ோன t.elif _) ட (ெலிவிஷன t. + _) ட (ெல்_அவீவ t. // tel aviv _) டெஸ்ட t.est.V# + _) டேங்க (ர t.e:NkV _) ட (ேப t. _) ட (ேஸ்ட t. _) டைட (ில t.aIt. @@ -637,6 +669,7 @@ _) ட (ைம்_ t. _) ட (ோக்கன t. _) ட (ோக்கியோ t. + _) டோரண்ட (ோ t.o:rVn.t. _ல) ட்ட d.d.V# _ரெ) ட்ட (ியா d.d. இ) ட்ட (ிலி d.d. @@ -645,12 +678,16 @@ _) ட்ராஃபிக் t.ra:fik _) ட (்ரான்சிஸ்டர t. _) ட்ராபிக் t.ra:fik + _) ட் (ராலி t. _) ட் (ராவல t. _) ட் (ராவெல t. + _) ட்ரெயி (லர t.rej + _) ட் (ரெய்லர t. _பெ) ட் (ரோ t. கண்) ட் (ரோல t. _வீ) ட் (ல t. _ஹி) ட் (லர t. + அ) ட்லாண்ட t.la:n.t.V# // atlant //endsort @@ -739,12 +776,14 @@ _) த (யாள dV _) த (யை dV _) த (ரணி dV + _) த (ராவிய dV _) த (ரிசனங் dV _) த (ரிசனத் dV _) த (ரிசி dV _) த (ரித்திரம dV _) த (ருமத் dV _) த (ருமன dV + _) தருமப (ுரி dVrUmVp _) த (ருமர dV _) த (ருமி dV _) த (ர்க dV @@ -770,11 +809,13 @@ _) த (ானத் d _) த (ானமா d _) த (ானிய d + _) த (ானியங்கி t _) த (ானுவ d _) த (ாமோதர d _) த (ாம்_தூம d _) த (ாயாதி d _) த (ாரணி d + _) த (ாராசுர d _) த (ாராபுர d _) த (ாராள d _) த (ாராவி d @@ -852,6 +893,7 @@ _) த (ுச்சாதனன d _) த (ுட்ட d _) த (ுபாய d + _) த (ுப்பட்டா d _) த (ுரதிருஷ்ட d _) த (ுரதிர்ஷ்ட d _) த (ுரதிஷ்ட d @@ -896,6 +938,7 @@ _) த (ேவருலக d _) த (ேவர்க d _) த (ேவலோக d + _) த (ேவஸ்தான d _) த (ேவாதி d _) த (ேவாமிருத d _) த (ேவாம்ச d @@ -920,6 +963,7 @@ _ப) த (ஞ்சலி tV _கீழ்) த (ட்ட tV _மேல்) த (ட்ட tV + பிள்ளை) த (ன tV முட்டாள்) த (ன tV _கௌ) த (மி tV _கீ) த (ா t @@ -967,6 +1011,7 @@ _பார்வ) த (ி t பு) த்த (ர ddV _விரு) த்தாச (ல dda:tSV அ) த்த (ாசி dd + _சி) த்தாந்த dda:ntV# சி) த்த (ார் dd பு) த்த (ி dd அயோ) த்த (ி dd @@ -995,6 +1040,7 @@ _பார்வ) த (ி t வி) த்து (வான d _முக) த்து (வார dd அ) த்த (ெய்வ dd + L03) த்த (ெய்வ dd குல) த்த (ெய்வ dd உ) த்த (ேச dd L03) த்த (ேச dd // a, e, i @@ -1068,6 +1114,7 @@ _பார்வ) த (ி t _) ப (ங்களா bV _) ப (ங்கார bV _) ப (சவகல்யாண bV + _) ப (ச்சன bV _) ப (ஜ bV _) ப (ட்சண bV _) ப (ட்சிக்க bV @@ -1101,11 +1148,14 @@ _பார்வ) த (ி t _) ப (யப் bV _) ப (யம bV _) ப (யாலஜி bV + _) பயாஸ்கோப் bVja:sko:p _) ப (யில்வான bV _) ப (ரதநாட்டிய bV _) ப (ரதன bV _) ப (ரதர bV + _) ப (ராக்_ஒபாமா bV _) ப (ரோட bV + _) ப (ர்கர bV _) ப (ர்னாலா bV _) ப (ர்மா bV _) ப (ர்லாங் fV @@ -1127,19 +1177,24 @@ _பார்வ) த (ி t _) ப (லவீன bV _) ப (லஹீன bV _) பலாத்க (ார bVla:dk + _) ப (லிகடா bV + _) ப (லிக்கடா bV _) ப (லிக்குச் bV _) ப (லிக்கொ bV _) ப (லிஜா bV _) ப (லிபீட bV _) ப (லிய bV + _) பலுச (ிஸ்தான bVlUtS _) ப (லூன bV _) ப (ல்கேரிய bV _) பல்ட (ி bVlt. _) ப (ல்பு bV _) ப (ல்பை bV + _) ப (ளு bV _) ப (வாணி bV _) ப (வானி bV _) பவுண்ட (ன faUn.t.V + _) ப (வுத்தத்தில bV _) ப (வ்ய bV _) ப (ஸ bV _) ப (ஹதூர bV @@ -1195,6 +1250,7 @@ _பார்வ) த (ி t _) ப (ாரம b _) ப (ாரம்பரிய p _) ப (ாரிஸ்டர b + _) ப (ார்L04லோனா b _) ப (ார்கவி b _) ப (ார்ம f _) ப (ாலக b @@ -1202,6 +1258,7 @@ _பார்வ) த (ி t _) ப (ாலக்காட p _) ப (ாலச b _) ப (ாலதண் b + _) பாலப (ாட ba:lVp _) ப (ாலமுர b _) ப (ாலாஜி b _) ப (ாலாபிஷேக p @@ -1209,9 +1266,10 @@ _பார்வ) த (ி t _) ப (ாலாவ b _) ப (ாலின் p _) ப (ாலியத்த b - _) ப (ாலு b + _) ப (ாலிவுட் b _) ப (ாலுடன் p _) ப (ாலும்_ p + _) ப (ாலுவ b _) ப (ாலை p _) ப (ால் p _) ப (ால்_தாக்கரே b @@ -1231,7 +1289,9 @@ _முகத்தின்_) ப (ாவ b முகத்திலிருந்து_) ப (ாவ b _) ப (ாவனா b _) ப (ாவனை b + _) ப (ாவிக்கப்பட b _) ப (ாவிக்கிற b + _) ப (ாவிக்கும்போத b _) ப (ாவித்த b _) ப (ாவிப்பத b _) ப (ாவிப்பதா b @@ -1245,16 +1305,19 @@ _முகத்தின்_) ப (ாவ b _) ப (ாஸ்மதி b _) பி(ராந்தியு b _) ப (ி_._பி_._சி b // b.b.c + _) ப (ிகர f _) ப (ிக்கு b _) ப (ிக்ஷு b _) ப (ிக்ஷூ b _) ப (ிங்கர்_ f _) ப (ிசினஸ b + _) ப (ிசிய b _) ப (ினாமி b _) ப (ினிஷ f _) ப (ின்லாந்த f _) ப (ிபிசி b // bbc _) ப (ிம்ப b + _) பி (யூனஸ்_ b _) ப (ிரகதீ b _) பி (ரகதீ b _) பி (ரகலாதன p @@ -1333,6 +1396,7 @@ _முகத்தின்_) ப (ாவ b _) பி (ராப் p _) பி (ராமண b _) பி (ராமணன b + _) பி (ராமி b _) பி (ராமிக் b _) பி (ராமின்_ b _) பி (ரார்தன p @@ -1346,6 +1410,7 @@ _முகத்தின்_) ப (ாவ b _) பி (ரிட b _) ப (ிரித்தானி b _) பி (ரித்தானி b + _) பிரின்சிப (ால prinsip _) பி (ரியன p _) பி (ரியப் p _) பி (ரியம p @@ -1386,15 +1451,20 @@ _முகத்தின்_) ப (ாவ b _) ப (ீச்சு b _) ப (ீஜ b _) ப (ீஜிங b - _) ப (ீடி b + _) ப (ீடிகள b _) ப (ீடிகை p _) ப (ீடித்த p + _) ப (ீடிப்புகை b + _) ப (ீடிய b + _) பீட்ரூட் bi:t.ru:t. + _) ப (ீப்பொலி b _) ப (ீம b _) ப (ீரங்கி b _) பீ (ராமண b _) ப (ீராமணர b _) ப (ீரை b _) ப (ீரோ b + _) ப (ீர்பால b _) ப (ீஹார b _) ப (ுக்கில b _) ப (ுக்கென்ற b @@ -1440,11 +1510,12 @@ _முகத்தின்_) ப (ாவ b _) ப (ூமி b _) ப (ூலோக b _) ப (ெங்களூர b + _) ப (ெங்கால b + _) பெஞ்ச bentSV# _) ப (ெஞ்சமின b - _) ப (ெஞ்சா b - _) ப (ெஞ்சி b _) பெட்ட (ுக்கு bed.d. _) ப (ெட்ரூம b + _) ப (ெப்ரவரி f _) ப (ெர்னார்ட b _) ப (ெர்முடா b _) ப (ெர்லிங b @@ -1476,6 +1547,7 @@ _முகத்தின்_) ப (ாவ b _) ப (ோதித் b _) ப (ோதை b _) ப (ோனிய b + _) ப (ோன்கள f _) ப (ோன்ஸ்லே b _) ப (ோபால b _) ப (ோர்ஜரி f @@ -1549,6 +1621,7 @@ _சந்திர_) ப (ோஸ b _க) ப (த் bV வீர) ப (த்தினி pV உ) ப (ந்நியாச pV + _லிஸ்) ப (ன bV கல்) ப (னா pV _கம்) ப (னி pV பிரதா) ப (ம bV @@ -1563,15 +1636,21 @@ _சந்திர_) ப (ோஸ b வீர) ப (ராக்கிரம pV கரம்) ப (ற் pV ப (ற்றி_ pV + _பக்கப்) ப (ல bV + படைப்) ப (ல bV +ஆயுதப்) ப (ல bV _மகா) ப (லி bV _மூடு) ப (ல்லக் pV +வேலைப்) ப (ளு bV வட) ப (ழ pV வீண்) ப (ழி pV _வா) ப (ஸ pV _தீ) ப (ா p + _கலி) ப (ா f _கலீ) ப (ா f _சம) ப (ாக b முதற்) ப (ாக b + உதிரிப்) ப (ாக b _பிக்) ப (ாக்க+ p உ) ப (ாசனை p சமன்) ப (ாட p @@ -1581,6 +1660,7 @@ _சந்திர_) ப (ோஸ b ராம) ப (ாண b // also இராமபாண _யாழ்) ப (ாண p தண்ட) ப (ாணி p + பஞ்ச) ப (ாண்ட p ப (ாண்டி p ப (ாதை p ஜிந்தா) ப (ாத் b @@ -1588,8 +1668,10 @@ _சந்திர_) ப (ோஸ b _டீ) ப (ாய் p எதிர்) ப (ார p கண்) ப (ார்வை p +_ப்ரின்சி) ப (ால p _சிவ) ப (ாலன b _கா) ப (ாலி b + _டி) பால்ட fa:lt.V# _நே) ப (ாள p _பூ) ப (ாளம்_ p _ராஜ) ப (ாளைய p @@ -1602,7 +1684,9 @@ _சந்திர_) ப (ோஸ b வாதா) ப (ி p கோ) ப (ி p சித்தப்) பி(ரமை b + _கன்) ப (ிகர f _பசி) ப (ிக் f + கண்டு) ப (ிடி p திமிர்) ப (ிடி p ராவல்) ப (ிண்டி p ர்) ப (ின்_ b @@ -1610,9 +1694,12 @@ _சந்திர_) ப (ோஸ b ம்) ப (ின்_ b _முன்) ப (ின்_ p @) ப (ின்நாலும்_ p + @) ப (ின்னர்_ p @) ப (ின்னால்_ p _) ப (ிப்ரவரி f + _லெஸ்) ப (ியன b பிரக (ாஷ prVk + மதப்) பிரச (ார prVtS பி (ரத p வீண்) பி (ரமை b துஷ்) பி (ரயோக p @@ -1633,7 +1720,10 @@ _சந்திர_) ப (ோஸ b _திம்) ப (ு p _அன்) ப (ுட b _மார்) ப (ுட b + வாயு) ப (ுத்திர p + அக்னி) ப (ுத்திர p பாடலி) ப (ுத்திர p +அக்கினி) ப (ுத்திர p வில்லி) ப (ுத்தூர p ம்) ப (ுரா b _தர்ம) ப (ுரி p @@ -1647,10 +1737,12 @@ _சந்திர_) ப (ோஸ b இன்ஸ்) ப (ெக்டர p இளம்) ப (ெண் p _கம்) ப (ெனி p - புலம்) ப (ெயர் p + இடம்) ப (ெயர p + _புலம்) ப (ெயர p மொழி) ப (ெயர் p ப (ெருமான p ப (ெற p // ?? end-of-word + suffix ?? + _க) ப (ே f _கை) ப (ேசி p _செல்) ப (ேசி p அலை) ப (ேசி p @@ -1659,6 +1751,8 @@ _சந்திர_) ப (ோஸ b _வெல்) ப (ேர f ப (ேரில்_ p ப (ேர்_ p + _பழம்) ப (ொருள p + _தொல்) ப (ொருள p வன்) ப (ொருள் p மென்) ப (ொருள் p வீண்) ப (ொழுத p @@ -1685,9 +1779,11 @@ _சந்திர_) ப (ோஸ b ப (ோதே_+ p ஐ) ப (ோன f _செல்) ப (ோன f +மைக்ரோ) ப (ோன f ப (ோன_ p ப (ோனா p ப (ோன்ற+ p // ?? end-of-word + suffix ?? + ப (ோயிரு p ப (ோய் p கலி) ப (ோர்னிய f ப (ோல_ p @@ -1696,6 +1792,7 @@ _சந்திர_) ப (ோஸ b ப (ோலத்_ p ப (ோலப்_ p ப (ோலவே_ p + ப (ோலும்_ p ப (ோல்_+ p ப (ோவத p _கம்) ப (ோஸ p @@ -1726,6 +1823,7 @@ _சந்திர_) ப (ோஸ b _ல) ப்ப (ை bb துர்) ப்ப (ோதனை bb கம்) ப்யூட (ர pjU:t.V + _மா) ப் (ள p //endsort // If ப+ appearing in the middle of a word is followed by ட+ @@ -1751,6 +1849,9 @@ _சந்திர_) ப (ோஸ b பாப (K pa:pV பப (ா pVp பாப (ா pa:p + _) பாப (ம pa:bV + _) பாப (த் pa:bV + _) பாப (ங் pa:bV // த) ப (K pV தா) ப (K pV // த) ப (ா p @@ -1814,6 +1915,8 @@ _சந்திர_) ப (ோஸ b ல lV ல (B l + _செய) ல்ப RpV# + .group ள ள l.V @@ -1888,10 +1991,15 @@ _சந்திர_) ப (ோஸ b இ (ராவுத்த இ (ராஷ்டிர இ (லகுவாக + இ (லட்சங் இ (லட்சண + இ (லட்சத் + இ (லட்சம + இ (லட்சா இ (லட்சிய இ (லண்டன இ (லவங்க + இ (லாப இ (லேச //endsort @@ -1958,6 +2066,7 @@ _சந்திர_) ப (ோஸ b ௌ aU _த) ௌி el.i // for bad scanning + வ) ௌி el.i ் // virama diff --git a/phsource/compile_report b/phsource/compile_report index 6de818cf..f2b77608 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,4 +1,4 @@ -67 phoneme tables +68 phoneme tables new total base 107 107 consonants 9 115 @@ -21,7 +21,7 @@ consonants 9 115 fr-ca 11 140 hi 59 150 ta 21 153 - hu 24 121 + hu 25 122 lv 29 125 nl 25 126 pl 22 120 @@ -67,6 +67,7 @@ consonants 9 115 az 10 127 ak 8 109 am 8 123 + wo 18 118 Data file Used by b/b [b] base @@ -345,7 +346,7 @@ l/l_ [l] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [h}] base +l/l@ [há] base [l#] base [l] fr [l/2] fr @@ -378,14 +379,14 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [h}] base +l/la [há] base [l#] base [l] fr [l/2] fr [K] nso l/l_a [l/3] base [l/] fr -l/le [h}] base +l/le [há] base [l#] base [l] fr [l/2] fr @@ -396,7 +397,7 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [h}] base +l/li [há] base [l#] base [l] fr [l/2] fr @@ -409,7 +410,7 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [h}] base +l/lo [há] base [l#] base [l] fr [l/2] fr @@ -417,7 +418,7 @@ l/lo [h}] base l/l_o [l/3] base [l/] fr l^/l_rfx [l.] base -l/lu [h}] base +l/lu [há] base [l#] base [l] fr [l/2] fr @@ -738,6 +739,7 @@ ustop/k_unasp [k] base [k] sq ustop/k_unasp_ [k] zh ustop/null [?] base + [t2] hu ustop/p [p] base [p2] fr [p] zhy @@ -1217,6 +1219,8 @@ vowel/@ [@] base [@] hy [@] ml [@] sl + [@] wo + [@:] wo vowel/@- [@-] base [r*] hr vowel/& [a] en-rp @@ -1301,6 +1305,7 @@ vowel/a# [a] base2 [&] sr [a#] rw [a/] rw + [a] wo vowel/a_2 [a] base2 [a] en-wi [A:] en-wi @@ -1314,6 +1319,7 @@ vowel/a_2 [a] base2 [a] da [a] rw vowel/a#_2 [A] nl + [a:] nl [a#] pl [&] hr [a] sv @@ -1364,6 +1370,7 @@ vowel/a_5 [a:] ta [a:] ml vowel/a_6 [a] ca [a:] vi + [a:] wo vowel/a_7 [a] en [a] fr [a] ht @@ -1437,6 +1444,8 @@ vowel/e [e] base [e:] ml [e] ne [e] sl + [e] wo + [e:] wo vowel/e# [I] en-sc vowel/e_2 [eI] en-sc [e:] de @@ -1483,6 +1492,8 @@ vowel/ee_3 [&] af vowel/ee_4 [E] sq vowel/ee_5 [E] en [E] ak + [E] wo + [E:] wo vowel/ee_6 [&] sk [E3] sv [E] ku @@ -1564,6 +1575,7 @@ vowel/i [i] base [i] nso [i] ak [i] am + [i:] wo vowel/i# [y:] cy vowel/i_2 [i2] de [i:] de @@ -1652,6 +1664,7 @@ vowel/ii_6 [I] en-wm [i/] pt [i] is [I] sq + [i] wo vowel/ii_en [i] en [i] sq vowel/ii_final [i] en-us @@ -1698,6 +1711,8 @@ vowel/o [o] base2 [o:] pa [o] sl [o] ak + [o] wo + [o:] wo vowel/o_2 [o:] cy [o:] hi [o:] hu @@ -1749,6 +1764,8 @@ vowel/oo [o] base [O] id [o] prs [o] bg + [O] wo + [O:] wo vowel/oo_1 [O:] en-n [O:] en-rp [O@] en-rp @@ -1812,6 +1829,7 @@ vowel/u [u] base [u:] ml [u] prs [u] ak + [u:] wo vowel/u# [u:] en-sc [Y] tr vowel/u_2 [u1] fi @@ -1823,6 +1841,7 @@ vowel/u_2 [u1] fi [u] sl [u] bg [u] am + [u] wo vowel/u#_2 [u-] sv vowel/u#_3 [U] ta [U:] ta diff --git a/phsource/j2/j2@ b/phsource/j2/j2@ index ff114fa6..d3c4477f 100644 Binary files a/phsource/j2/j2@ and b/phsource/j2/j2@ differ diff --git a/phsource/j2/j2e b/phsource/j2/j2e index ef5de606..775a6806 100644 Binary files a/phsource/j2/j2e and b/phsource/j2/j2e differ diff --git a/phsource/mbrola/hu1 b/phsource/mbrola/hu1 index c0596f64..116d6c2a 100644 --- a/phsource/mbrola/hu1 +++ b/phsource/mbrola/hu1 @@ -26,6 +26,7 @@ volume 32 0 N NULL 0 n 0 C NULL 0 x 0 s2 NULL 0 s +0 t2 NULL 0 t // map English phonemes to Hungarian diff --git a/phsource/ph_dutch b/phsource/ph_dutch index 3d17eb9d..c3f53b2b 100644 --- a/phsource/ph_dutch +++ b/phsource/ph_dutch @@ -78,7 +78,11 @@ phoneme a: vowel starttype #a endtype #a length 210 IF thisPh(isUnstressed) THEN - FMT(vowel/a#_4) + IF thisPh(isWordEnd) THEN + FMT(vowel/a#_2) + ELSE + FMT(vowel/a#_4) + ENDIF ENDIF FMT(vowel/a) endphoneme diff --git a/phsource/ph_hungarian b/phsource/ph_hungarian index ad4f0e8e..b0d25856 100644 --- a/phsource/ph_hungarian +++ b/phsource/ph_hungarian @@ -123,6 +123,18 @@ phoneme t // dental variant of /t/ endphoneme +phoneme t2 +// changes to pause when followed by [t], so the [t][ becomes [t:] + vls dnt stop + lengthmod 2 + IF nextPh(t) THEN + WAV(ustop/null, 0) + ELSE + ChangePhoneme(t) + ENDIF +endphoneme + + phoneme d vcd dnt stop voicingswitch t diff --git a/phsource/ph_tamil b/phsource/ph_tamil index bdbee178..b13bbc9d 100644 --- a/phsource/ph_tamil +++ b/phsource/ph_tamil @@ -66,14 +66,14 @@ endphoneme phoneme o vowel starttype #o endtype #o - length 160 + length 130 FMT(vowel/o) endphoneme phoneme o: vowel starttype #o endtype #o - length 280 + length 300 FMT(vowel/o) endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 56ef691e..243053ea 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1840,3 +1840,6 @@ include ph_akan phonemetable am base2 include ph_amhari + +phonemetable wo base +include ph_wolof diff --git a/platforms/windows/windows_dll/espeak.dsp b/platforms/windows/windows_dll/espeak.dsp index d175a459..afba8fe1 100755 --- a/platforms/windows/windows_dll/espeak.dsp +++ b/platforms/windows/windows_dll/espeak.dsp @@ -109,6 +109,10 @@ SOURCE=.\src\klatt.cpp # End Source File # Begin Source File +SOURCE=.\src\sonic.cpp +# End Source File +# Begin Source File + SOURCE=.\src\numbers.cpp # End Source File # Begin Source File @@ -174,6 +178,10 @@ SOURCE=.\src\klatt.h # End Source File # Begin Source File +SOURCE=.\src\sonic.h +# End Source File +# Begin Source File + SOURCE=.\src\phoneme.h # End Source File # Begin Source File diff --git a/src/compiledict.cpp b/src/compiledict.cpp index c6ef8e5a..d6f6a950 100644 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -208,14 +208,15 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont int flags; int suffix_char; int condition_num=0; + int at_start = 0; const char *name; char buf[60]; char buf_pre[60]; char suffix[20]; static char output[60]; - static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ', - '@','&','%','+','#','S','D','Z','A','L','!',' ','?','?','J','N','K','V','?','T','X','?','W'}; + static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ', + '&','%','+','#','S','D','Z','A','L','!',' ','@','?','J','N','K','V','?','T','X','?','W'}; static char symbols_lg[] = {'A','B','C','H','F','G','Y'}; @@ -241,6 +242,8 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont case RULE_PHONEMES: finished=1; break; + case RULE_PRE_ATSTART: + at_start = 1; // drop through to next case case RULE_PRE: match_type = RULE_PRE; *p = 0; @@ -342,8 +345,10 @@ char *DecodeRule(const char *group_chars, int group_length, char *rule, int cont sprintf(p,"?%d ",condition_num); p = &p[strlen(p)]; } - if((ix = strlen(buf_pre)) > 0) + if(((ix = strlen(buf_pre)) > 0) || at_start) { + if(at_start) + *p++ = '_'; while(--ix >= 0) *p++ = buf_pre[ix]; *p++ = ')'; @@ -1158,6 +1163,7 @@ static char *compile_rule(char *input) char *prule; int len; int len_name; + int start; int state=2; int finish=0; int pre_bracket=0; @@ -1308,9 +1314,21 @@ static char *compile_rule(char *input) } if(rule_pre[0] != 0) { - output[len++] = RULE_PRE; + start = 0; + if(rule_pre[0] == RULE_SPACE) + { + // omit '_' at the beginning of the pre-string and imply it by using RULE_PRE_ATSTART + c = RULE_PRE_ATSTART; + start = 1; + } + else + { + c = RULE_PRE; + } + output[len++] = c; + // output PRE string in reverse order - for(ix = strlen(rule_pre)-1; ix>=0; ix--) + for(ix = strlen(rule_pre)-1; ix>=start; ix--) output[len++] = rule_pre[ix]; } diff --git a/src/dictionary.cpp b/src/dictionary.cpp index b671c414..93a9a2cd 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1090,6 +1090,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int done; int stressflags; int dflags = 0; + int first_primary; signed char vowel_stress[N_WORD_PHONEMES/2]; char syllable_weight[N_WORD_PHONEMES/2]; @@ -1433,6 +1434,7 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, } done = 0; + first_primary = 0; for(v=1; v= 4) + { + if(first_primary == 0) + first_primary = v; + else + if(stressflags & S_FIRST_PRIMARY) + { + // reduce primary stresses after the first to secondary + vowel_stress[v] = 3; + } + } } if((unstressed_word) && (tonic < 0)) @@ -1737,7 +1751,6 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ int failed; int unpron_ignore; int consumed; /* number of letters consumed from input */ - int count; /* count through rules in the group */ int syllable_count; int vowel; int letter_group; @@ -1747,6 +1760,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ int n_bytes; int add_points; int command; + int check_atstart; MatchRecord match; static MatchRecord best; @@ -1769,7 +1783,6 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ total_consumed = 0; - count = 0; common_phonemes = NULL; match_type = 0; @@ -1787,7 +1800,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ letter = 0; distance_right= -6; /* used to reduce points for matches further away the current letter */ distance_left= -2; - count++; + check_atstart = 0; match.points = 1; match.end_type = 0; @@ -1827,17 +1840,24 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ rule--; // so we are still pointing at the 0 failed=2; // matched OK break; + + case RULE_PRE_ATSTART: // pre rule with implied 'start of word' + check_atstart = 1; + unpron_ignore = 0; + match_type = RULE_PRE; + break; + case RULE_PRE: match_type = RULE_PRE; if(word_flags & FLAG_UNPRON_TEST) { // checking the start of the word for unpronouncable character sequences, only // consider rules which explicitly match the start of a word - if(rule[0] != ' ') - failed = 1; - unpron_ignore = 0; + // Note: Those rules now use RULE_PRE_ATSTART + failed = 1; } break; + case RULE_POST: match_type = RULE_POST; break; @@ -2306,31 +2326,34 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ match.points += add_points; } - if((failed == 2) && (unpron_ignore == 0)) { - /* matched OK, is this better than the last best match ? */ - - if(match.points >= best.points) + // do we also need to check for 'start of word' ? + if((check_atstart==0) || (pre_ptr[-1] == ' ')) { - memcpy(&best,&match,sizeof(match)); - total_consumed = consumed; + if(check_atstart) + match.points += 4; + + /* matched OK, is this better than the last best match ? */ + if(match.points >= best.points) + { + memcpy(&best,&match,sizeof(match)); + total_consumed = consumed; + } + + if((option_phonemes == 2) && (match.points > 0) && ((word_flags & FLAG_NO_TRACE) == 0)) + { + // show each rule that matches, and it's points score + int pts; + char decoded_phonemes[80]; + + pts = match.points; + if(group_length > 1) + pts += 35; // to account for an extra letter matching + DecodePhonemes(match.phonemes,decoded_phonemes); + fprintf(f_trans,"%3d\t%s [%s]\n",pts,DecodeRule(group_chars, group_length, rule_start, word_flags), decoded_phonemes); + } } - - if((option_phonemes == 2) && (match.points > 0) && ((word_flags & FLAG_NO_TRACE) == 0)) - { - // show each rule that matches, and it's points score - int pts; - char decoded_phonemes[80]; - - // note: 'count' contains the rule number, if we want to include it - pts = match.points; - if(group_length > 1) - pts += 35; // to account for an extra letter matching - DecodePhonemes(match.phonemes,decoded_phonemes); - fprintf(f_trans,"%3d\t%s [%s]\n",pts,DecodeRule(group_chars, group_length, rule_start, word_flags), decoded_phonemes); - } - } /* skip phoneme string to reach start of next template */ @@ -3313,6 +3336,10 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f fprintf(f_trans,"Replace: %s %s\n",word,*wordptr); } } + else + { + flags[0] &= ~FLAG_SKIPWORDS; + } ph_out[0] = 0; return(0); diff --git a/src/espeakedit.cpp b/src/espeakedit.cpp index 172beea5..6f5a22e0 100644 --- a/src/espeakedit.cpp +++ b/src/espeakedit.cpp @@ -232,7 +232,6 @@ BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame) EVT_MENU(MENU_LEXICON_BG, MyFrame::OnTools) EVT_MENU(MENU_LEXICON_DE, MyFrame::OnTools) EVT_MENU(MENU_LEXICON_IT, MyFrame::OnTools) - EVT_MENU(MENU_LEXICON_IT2, MyFrame::OnTools) EVT_MENU(MENU_LEXICON_TEST, MyFrame::OnTools) EVT_MENU(MENU_TO_UTF8, MyFrame::OnTools) EVT_MENU(MENU_COUNT_WORDS, MyFrame::OnTools) @@ -610,7 +609,6 @@ void MyFrame::OnTools(wxCommandEvent& event) case MENU_LEXICON_BG: case MENU_LEXICON_DE: case MENU_LEXICON_IT: - case MENU_LEXICON_IT2: case MENU_LEXICON_TEST: CompareLexicon(event.GetId()); // Compare a lexicon with _rules translation break; @@ -699,6 +697,7 @@ void MyFrame::OnSpeak(wxCommandEvent& event) break; case MENU_SPEAK_FILE: + out_ptr = NULL; transldlg->SpeakFile(); break; @@ -707,11 +706,14 @@ void MyFrame::OnSpeak(wxCommandEvent& event) break; case MENU_SPEAK_PAUSE: + out_ptr = NULL; SpeakNextClause(NULL,NULL,3); if(SynthStatus() & 2) speak_menu->SetLabel(MENU_SPEAK_PAUSE,_T("&Resume")); else + { speak_menu->SetLabel(MENU_SPEAK_PAUSE,_T("&Pause")); + } break; case MENU_SPEAK_VOICE: diff --git a/src/extras.cpp b/src/extras.cpp index 0df0b04d..1ae3cf13 100644 --- a/src/extras.cpp +++ b/src/extras.cpp @@ -289,11 +289,14 @@ static void DecodePhonemes2(const char *inptr, char *outptr) void Lexicon_It(int pass) {//====================== +// Reads a lexicon of pairs of words: normal spelling and spelling with accents +// Creates file: dictsource/it_listx which includes corrections for stress position and [E]/[e] and [O]/[o] phonemes +// Words which are still in error are listed in file: it_compare (in the directory of the lexicon file). int count=0; int matched=0; int ix; int c; - char *p; + char *p, *p2; int len; int vowel_ix; int stress_posn1; @@ -305,8 +308,11 @@ void Lexicon_It(int pass) FILE *f_out; FILE *f_listx; FILE *f_list_in = NULL; + int listx_count; long int displ; const char *alt_string; + wxString str; + static wxString fname_lex; char buf[200]; char word[80]; char word1[80]; @@ -315,7 +321,10 @@ void Lexicon_It(int pass) char temp[80]; char phonemes[80]; char phonemes2[80]; - char buf_out[120]; + char phonemes3[80]; + char buf_out[200]; + char buf_error[200]; + char last_listx[200]; static const char *vowels1 = "aeiou"; static const char *vowels2 = "aeou"; @@ -333,31 +342,42 @@ void Lexicon_It(int pass) static const char *exceptions[] = {ex1, ex2, ex3, ex4, ex5, ex6, ex7, ex8, ex9, ex10, NULL}; - wxString fname = wxFileSelector(_T("Italian Lexicon"),path_dir1,_T(""),_T(""),_T("*"),wxOPEN); + if(pass == 1) + { + fname_lex = wxFileSelector(_T("Italian Lexicon"),path_dir1,_T(""),_T(""),_T("*"),wxOPEN); + } - strcpy(buf,fname.mb_str(wxConvLocal)); + strcpy(buf,fname_lex.mb_str(wxConvLocal)); if((f_in = fopen(buf,"r")) == NULL) { - wxLogError(_T("Can't read file ")+fname); + wxLogError(_T("Can't read file ")+fname_lex); return; } - path_dir1 = wxFileName(fname).GetPath(); + path_dir1 = wxFileName(fname_lex).GetPath(); + strcpy(buf_out, path_dir1.mb_str(wxConvLocal)); + sprintf(buf, "%s/IT_errors", buf_out); - if((f_out = fopen("compare_it","w")) == NULL) + if((f_out = fopen(buf,"w")) == NULL) { - wxLogError(_T("Can't write file: compare_it ")); + str = wxString(buf, wxConvLocal); + wxLogError(_T("Can't write file: ") + str); return; } + listx_count = 0; + last_listx[0] = 0; + if(pass == 1) { sprintf(buf,"%s/it_listx",path_dsource); remove(buf); CompileDictionary(path_dsource,"it",NULL,NULL,0); f_listx = fopen(buf,"w"); + wxLogStatus(_T("Pass 1")); } else { + CompileDictionary(path_dsource,"it",NULL,NULL,0); sprintf(buf,"%s/it_listx2",path_dsource); f_listx = fopen(buf,"w"); sprintf(buf,"%s/it_listx",path_dsource); @@ -390,9 +410,9 @@ void Lexicon_It(int pass) continue; if(strlen(word) < 8) - sprintf(buf_out,"%s\t\t%s\t",word,temp); + sprintf(buf_error,"%s\t\t%s\t",word,temp); else - sprintf(buf_out,"%s\t%s",word,temp); + sprintf(buf_error,"%s\t%s",word,temp); sprintf(word1," %s ",word); @@ -550,23 +570,38 @@ void Lexicon_It(int pass) sscanf(buf, "%s", word1); if(strcmp(word1, word_stem) < 0) { - fprintf(f_listx,"%s",buf); // copy it_listx from pass 1 until we reach the matching word - } - else - if(strcmp(word1, word_stem) == 0) - { - p = buf; - while((*p != '\n') && (*p != 0)) *p++; - *p = 0; - fprintf(f_listx,"%s %s\n",buf,alt_string); // add $alt or $alt2 to the entry - break; + sprintf(buf_out,"%s",buf); // copy it_listx from pass 1 until we reach the matching word } else { - fprintf(f_listx,"%s %s\n", word_stem, alt_string); // add a new word with $alt or $alt2 - fseek(f_list_in, displ, SEEK_SET); + if(strcmp(word1, word_stem) == 0) + { + p = buf; + while((*p != '\n') && (*p != 0)) *p++; + *p = 0; + sprintf(buf_out,"%s %s\n",buf,alt_string); // add $alt or $alt2 to the entry + } + else + { + sprintf(buf_out,"%s %s\n", word_stem, alt_string); // add a new word with $alt or $alt2 + fseek(f_list_in, displ, SEEK_SET); + } + + if(strcmp(buf_out, last_listx) != 0) + { + fprintf(f_listx, "%s", buf_out); + listx_count++; + strcpy(last_listx, buf_out); + } break; } + + if(strcmp(buf_out, last_listx) != 0) + { + fprintf(f_listx, "%s", buf_out); + listx_count++; + strcpy(last_listx, buf_out); + } } } } @@ -574,7 +609,26 @@ void Lexicon_It(int pass) } else { - fprintf(f_out,"%s\t%s\t%s\n",buf_out,phonemes,phonemes2); + // allow if the only difference is no primary stress + p2 = phonemes2; + p = phonemes3; + while(*p2 != 0) + { + *p = *p2++; + if((*p2 == ':') && (strchr("aeiouEO", *p) != NULL)) p2++; // change lone vowels to short by removing ':' + if(*p == '\'') *p = ','; // change primary to secondary stress + p++; + } + *p = 0; + if(strcmp(phonemes, phonemes3) == 0) + { + matched++; + } + else + { + // still doesn't match, report this word + fprintf(f_out,"%s\t%s\t%s\n",buf_error,phonemes,phonemes2); + } } } @@ -582,15 +636,32 @@ void Lexicon_It(int pass) { while(fgets(buf, sizeof(buf), f_list_in) != NULL) { - fprintf(f_listx, "%s", buf); // copy the remaining entries from pass 1 + if(strcmp(buf, last_listx) != 0) // check for duplicate entries + { + fprintf(f_listx, "%s", buf); // copy the remaining entries from pass 1 + listx_count++; + strcpy(last_listx, buf); + } } fclose(f_list_in); } fclose(f_in); fclose(f_out); fclose(f_listx); - wxLogStatus(_T("Completed, equal=%d different=%d"),matched,count-matched); -} + + if(pass == 2) + { + sprintf(buf,"%s/it_listx",path_dsource); + remove(buf); + sprintf(buf_out,"%s/it_listx2",path_dsource); + rename(buf_out, buf); + wxLogStatus(_T("Created file 'it_listx', entries=%d errors=%d total words=%d"),listx_count, count-matched, count); + } + else + { + wxLogStatus(_T("Pass 1, equal=%d different=%d"),matched,count-matched); + } +} // end of Lexicon_It void Lexicon_De() @@ -760,7 +831,7 @@ void Lexicon_De() fclose(f_in); fclose(f_out); wxLogStatus(_T("Completed, equal=%d different=%d"),matched,count-matched); -} +} // end of Lexicon_De extern int IsVowel(Translator *tr, int letter); @@ -1340,8 +1411,6 @@ void CompareLexicon(int id) break; case MENU_LEXICON_IT: Lexicon_It(1); - break; - case MENU_LEXICON_IT2: Lexicon_It(2); break; case MENU_LEXICON_TEST: diff --git a/src/main.h b/src/main.h index be1c9a87..80632ce7 100755 --- a/src/main.h +++ b/src/main.h @@ -160,7 +160,6 @@ enum { MENU_LEXICON_BG, MENU_LEXICON_DE, MENU_LEXICON_IT, - MENU_LEXICON_IT2, MENU_LEXICON_TEST, MENU_TO_UTF8, MENU_COUNT_WORDS, diff --git a/src/menus.cpp b/src/menus.cpp index 93c21575..6dd2c4cf 100644 --- a/src/menus.cpp +++ b/src/menus.cpp @@ -127,7 +127,6 @@ wxMenuBar *MakeMenu(int type, const char *dict_name) lexicon_menu->Append(MENU_LEXICON_BG, _("Bulgarian")); lexicon_menu->Append(MENU_LEXICON_DE, _("German")); lexicon_menu->Append(MENU_LEXICON_IT, _("Italian")); - lexicon_menu->Append(MENU_LEXICON_IT2, _("Italian, pass 2")); // lexicon_menu->Append(MENU_LEXICON_TEST, _("Test")); tools_menu = new wxMenu; diff --git a/src/numbers.cpp b/src/numbers.cpp index b15173b6..af663767 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -808,14 +808,18 @@ if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG } // end of CheckDotOrdinal -static int hu_number_e(const char *word) -{//===================================== +static int hu_number_e(const char *word, int thousandplex, int value) +{//================================================================== // lang-hu: variant form of numbers when followed by hyphen and a suffix starting with 'a' or 'e' (but not a, e, az, ez, azt, ezt, att. ett if((word[0] == 'a') || (word[0] == 'e')) { if((word[1] == ' ') || (word[1] == 'z') || ((word[1] == 't') && (word[2] == 't'))) return(0); + + if(((thousandplex==1) || ((value % 1000) == 0)) && (word[1] == 'l')) + return(0); // 1000-el + return(1); } return(0); @@ -927,7 +931,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) { if(!(wtab[0].flags & FLAG_ORDINAL)) { - if((wtab[0].flags & FLAG_HYPHEN_AFTER) && hu_number_e(word)) + if((wtab[0].flags & FLAG_HYPHEN_AFTER) && hu_number_e(word, 0, acc)) { // should use the 'e' form of the number num_control |= 1; @@ -1111,7 +1115,6 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) char ph_tens[50]; char ph_digits[50]; char ph_and[12]; - char ph_ord_suffix[20]; units = value % 10; tens = value / 10; @@ -1214,8 +1217,7 @@ static int LookupNum2(Translator *tr, int value, int control, char *ph_out) if((units != 0) && (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)) { // Use the ordinal form of tens as well as units. Add the ordinal ending - Lookup(tr, "_ord", ph_ord_suffix); - strcat(ph_tens, ph_ord_suffix); + strcat(ph_tens, ph_ordinal2); } } } @@ -1368,7 +1370,6 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null char ph_thousands[50]; char ph_hundred_and[12]; char ph_thousand_and[12]; - char ph_ord_suffix[20]; ordinal = control & 0x22; hundreds = value / 100; @@ -1447,8 +1448,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null { // Use ordinal form of hundreds, as well as for tens and units // Add ordinal suffix to the hundreds - Lookup(tr, "_ord", ph_ord_suffix); - strcat(ph_digits, ph_ord_suffix); + strcat(ph_digits, ph_ordinal2); } } @@ -1557,6 +1557,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int thousands_inc = 0; int prev_thousands = 0; int ordinal = 0; + int dot_ordinal; int this_value; int decimal_count; int max_decimal_count; @@ -1611,7 +1612,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if(prev_thousands || (word[0] != '0')) { // don't check for ordinal if the number has a leading zero - ordinal = CheckDotOrdinal(tr, word, &word[ix], wtab, 0); + if((ordinal = CheckDotOrdinal(tr, word, &word[ix], wtab, 0)) != 0) + dot_ordinal = 1; } if((word[ix] == '.') && !isdigit(word[ix+1]) && !isdigit(word[ix+2]) && !(wtab[1].flags & FLAG_NOSPACE)) @@ -1730,7 +1732,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if(tr->translator_name == L('h','u')) { // variant form of numbers when followed by hyphen and a suffix starting with 'a' or 'e' (but not a, e, az, ez, azt, ezt - if((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact==1) && hu_number_e(&word[suffix_ix])) + if((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact==1) && hu_number_e(&word[suffix_ix], thousandplex, value)) { number_control |= 1; // use _1e variant of number } @@ -1790,9 +1792,11 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned n_digit_lookup = 2; } } + +// if((buf_digit_lookup[0] == 0) && (*p != '0') && (dot_ordinal==0)) if((buf_digit_lookup[0] == 0) && (*p != '0')) { - // not found, lookup only the last digit + // not found, lookup only the last digit (?? but not if dot-ordinal has been found) if(LookupDictList(tr, &p, buf_digit_lookup, flags, FLAG_SUFX, wtab)) // don't match '0', or entries with $only { n_digit_lookup = 1; diff --git a/src/setlengths.cpp b/src/setlengths.cpp index 019750e7..a8dd5e25 100644 --- a/src/setlengths.cpp +++ b/src/setlengths.cpp @@ -140,7 +140,6 @@ void SetSpeed(int control) int s1; int wpm; int wpm2; - double wpm_inc; speed.loud_consonants = 0; speed.min_sample_len = 450; @@ -154,18 +153,17 @@ void SetSpeed(int control) // fast_settings[0] wpm where speedup starts // fast_settings[1] wpm for maximum espeak speed // fast_settings[2] maximum espeak speed + sonicSpeed = 1.0; if(wpm > speed.fast_settings[0]) { wpm2 = wpm; - wpm_inc = (double)(speed.fast_settings[2] - speed.fast_settings[0]) / (double)(speed.fast_settings[1] - speed.fast_settings[0]); - - wpm_inc = (wpm2 - speed.fast_settings[0]) * wpm_inc; - wpm = speed.fast_settings[0] + (int)wpm_inc; - - sonicSpeed = ((double)wpm2)/wpm; + wpm = speed.fast_settings[2]; + // Maybe we can do better than a 10 wpm fudge factor? + sonicSpeed = ((double)wpm2 + 10)/wpm; } + #ifdef TEST_SPEED if(wpm > 1000) { diff --git a/src/sonic.cpp b/src/sonic.cpp new file mode 100644 index 00000000..caea2a57 --- /dev/null +++ b/src/sonic.cpp @@ -0,0 +1,967 @@ +/* Sonic library + Copyright 2010 + Bill Cox + This file is part of the Sonic Library. + + The Sonic Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include "StdAfx.h" + +#include +#include +#include +#include +#include "sonic.h" + +struct sonicStreamStruct { + short *inputBuffer; + short *outputBuffer; + short *pitchBuffer; + short *downSampleBuffer; + float speed; + float volume; + float pitch; + int numChannels; + int inputBufferSize; + int pitchBufferSize; + int outputBufferSize; + int numInputSamples; + int numOutputSamples; + int numPitchSamples; + int minPeriod; + int maxPeriod; + int maxRequired; + int remainingInputToCopy; + int sampleRate; + int prevPeriod; + int prevMaxDiff; + int prevMinDiff; +}; + +/* Just used for debugging */ +void sonicMSG(char *format, ...) +{ + char buffer[4096]; + va_list ap; + FILE *file; + + va_start(ap, format); + vsprintf((char *)buffer, (char *)format, ap); + va_end(ap); + file=fopen("/tmp/sonic.log", "a"); + fprintf(file, "%s", buffer); + fclose(file); +} + +/* Scale the samples by the factor. */ +static void scaleSamples( + short *samples, + int numSamples, + float volume) +{ + int fixedPointVolume = volume*4096.0f; + int value; + + while(numSamples--) { + value = (*samples*fixedPointVolume) >> 12; + if(value > 32767) { + value = 32767; + } else if(value < -32767) { + value = -32767; + } + *samples++ = value; + } +} + +/* Get the speed of the stream. */ +float sonicGetSpeed( + sonicStream stream) +{ + return stream->speed; +} + +/* Set the speed of the stream. */ +void sonicSetSpeed( + sonicStream stream, + float speed) +{ + stream->speed = speed; +} + +/* Get the pitch of the stream. */ +float sonicGetPitch( + sonicStream stream) +{ + return stream->pitch; +} + +/* Set the pitch of the stream. */ +void sonicSetPitch( + sonicStream stream, + float pitch) +{ + stream->pitch = pitch; +} + +/* Get the scaling factor of the stream. */ +float sonicGetVolume( + sonicStream stream) +{ + return stream->volume; +} + +/* Set the scaling factor of the stream. */ +void sonicSetVolume( + sonicStream stream, + float volume) +{ + stream->volume = volume; +} + +/* Get the sample rate of the stream. */ +int sonicGetSampleRate( + sonicStream stream) +{ + return stream->sampleRate; +} + +/* Get the number of channels. */ +int sonicGetNumChannels( + sonicStream stream) +{ + return stream->numChannels; +} + +/* Destroy the sonic stream. */ +void sonicDestroyStream( + sonicStream stream) +{ + if(stream->inputBuffer != NULL) { + free(stream->inputBuffer); + } + if(stream->outputBuffer != NULL) { + free(stream->outputBuffer); + } + if(stream->pitchBuffer != NULL) { + free(stream->pitchBuffer); + } + if(stream->downSampleBuffer != NULL) { + free(stream->downSampleBuffer); + } + free(stream); +} + +/* Create a sonic stream. Return NULL only if we are out of memory and cannot + allocate the stream. */ +sonicStream sonicCreateStream( + int sampleRate, + int numChannels) +{ + sonicStream stream = (sonicStream)calloc(1, sizeof(struct sonicStreamStruct)); + int minPeriod = sampleRate/SONIC_MAX_PITCH; + int maxPeriod = sampleRate/SONIC_MIN_PITCH; + int maxRequired = 2*maxPeriod; + + if(stream == NULL) { + return NULL; + } + stream->inputBufferSize = maxRequired; + stream->inputBuffer = (short *)calloc(maxRequired, sizeof(short)*numChannels); + if(stream->inputBuffer == NULL) { + sonicDestroyStream(stream); + return NULL; + } + stream->outputBufferSize = maxRequired; + stream->outputBuffer = (short *)calloc(maxRequired, sizeof(short)*numChannels); + if(stream->outputBuffer == NULL) { + sonicDestroyStream(stream); + return NULL; + } + stream->pitchBufferSize = maxRequired; + stream->pitchBuffer = (short *)calloc(maxRequired, sizeof(short)*numChannels); + if(stream->pitchBuffer == NULL) { + sonicDestroyStream(stream); + return NULL; + } + stream->downSampleBuffer = (short *)calloc(maxRequired, sizeof(short)); + stream->speed = 1.0f; + stream->pitch = 1.0f; + stream->volume = 1.0f; + stream->sampleRate = sampleRate; + stream->numChannels = numChannels; + stream->minPeriod = minPeriod; + stream->maxPeriod = maxPeriod; + stream->maxRequired = maxRequired; + return stream; +} + +/* Enlarge the output buffer if needed. */ +static int enlargeOutputBufferIfNeeded( + sonicStream stream, + int numSamples) +{ + if(stream->numOutputSamples + numSamples > stream->outputBufferSize) { + stream->outputBufferSize += (stream->outputBufferSize >> 1) + numSamples; + stream->outputBuffer = (short *)realloc(stream->outputBuffer, + stream->outputBufferSize*sizeof(short)*stream->numChannels); + if(stream->outputBuffer == NULL) { + return 0; + } + } + return 1; +} + +/* Enlarge the input buffer if needed. */ +static int enlargeInputBufferIfNeeded( + sonicStream stream, + int numSamples) +{ + if(stream->numInputSamples + numSamples > stream->inputBufferSize) { + stream->inputBufferSize += (stream->inputBufferSize >> 1) + numSamples; + stream->inputBuffer = (short *)realloc(stream->inputBuffer, + stream->inputBufferSize*sizeof(short)*stream->numChannels); + if(stream->inputBuffer == NULL) { + return 0; + } + } + return 1; +} + +/* Add the input samples to the input buffer. */ +static int addFloatSamplesToInputBuffer( + sonicStream stream, + float *samples, + int numSamples) +{ + short *buffer; + int count = numSamples*stream->numChannels; + + if(numSamples == 0) { + return 1; + } + if(!enlargeInputBufferIfNeeded(stream, numSamples)) { + return 0; + } + buffer = stream->inputBuffer + stream->numInputSamples*stream->numChannels; + while(count--) { + *buffer++ = (*samples++)*32767.0f; + } + stream->numInputSamples += numSamples; + return 1; +} + +/* Add the input samples to the input buffer. */ +static int addShortSamplesToInputBuffer( + sonicStream stream, + short *samples, + int numSamples) +{ + if(numSamples == 0) { + return 1; + } + if(!enlargeInputBufferIfNeeded(stream, numSamples)) { + return 0; + } + memcpy(stream->inputBuffer + stream->numInputSamples*stream->numChannels, samples, + numSamples*sizeof(short)*stream->numChannels); + stream->numInputSamples += numSamples; + return 1; +} + +/* Add the input samples to the input buffer. */ +static int addUnsignedCharSamplesToInputBuffer( + sonicStream stream, + unsigned char *samples, + int numSamples) +{ + short *buffer; + int count = numSamples*stream->numChannels; + + if(numSamples == 0) { + return 1; + } + if(!enlargeInputBufferIfNeeded(stream, numSamples)) { + return 0; + } + buffer = stream->inputBuffer + stream->numInputSamples*stream->numChannels; + while(count--) { + *buffer++ = (*samples++ - 128) << 8; + } + stream->numInputSamples += numSamples; + return 1; +} + +/* Remove input samples that we have already processed. */ +static void removeInputSamples( + sonicStream stream, + int position) +{ + int remainingSamples = stream->numInputSamples - position; + + if(remainingSamples > 0) { + memmove(stream->inputBuffer, stream->inputBuffer + position*stream->numChannels, + remainingSamples*sizeof(short)*stream->numChannels); + } + stream->numInputSamples = remainingSamples; +} + +/* Just copy from the array to the output buffer */ +static int copyToOutput( + sonicStream stream, + short *samples, + int numSamples) +{ + if(!enlargeOutputBufferIfNeeded(stream, numSamples)) { + return 0; + } + memcpy(stream->outputBuffer + stream->numOutputSamples*stream->numChannels, + samples, numSamples*sizeof(short)*stream->numChannels); + stream->numOutputSamples += numSamples; + return numSamples; +} + +/* Just copy from the input buffer to the output buffer. Return 0 if we fail to + resize the output buffer. Otherwise, return numSamples */ +static int copyInputToOutput( + sonicStream stream, + int position) +{ + int numSamples = stream->remainingInputToCopy; + + if(numSamples > stream->maxRequired) { + numSamples = stream->maxRequired; + } + if(!copyToOutput(stream, stream->inputBuffer + position*stream->numChannels, + numSamples)) { + return 0; + } + stream->remainingInputToCopy -= numSamples; + return numSamples; +} + +/* Read data out of the stream. Sometimes no data will be available, and zero + is returned, which is not an error condition. */ +int sonicReadFloatFromStream( + sonicStream stream, + float *samples, + int maxSamples) +{ + int numSamples = stream->numOutputSamples; + int remainingSamples = 0; + short *buffer; + int count; + + if(numSamples == 0) { + return 0; + } + if(numSamples > maxSamples) { + remainingSamples = numSamples - maxSamples; + numSamples = maxSamples; + } + buffer = stream->outputBuffer; + count = numSamples*stream->numChannels; + while(count--) { + *samples++ = (*buffer++)/32767.0f; + } + if(remainingSamples > 0) { + memmove(stream->outputBuffer, stream->outputBuffer + numSamples*stream->numChannels, + remainingSamples*sizeof(short)*stream->numChannels); + } + stream->numOutputSamples = remainingSamples; + return numSamples; +} + +/* Read short data out of the stream. Sometimes no data will be available, and zero + is returned, which is not an error condition. */ +int sonicReadShortFromStream( + sonicStream stream, + short *samples, + int maxSamples) +{ + int numSamples = stream->numOutputSamples; + int remainingSamples = 0; + + if(numSamples == 0) { + return 0; + } + if(numSamples > maxSamples) { + remainingSamples = numSamples - maxSamples; + numSamples = maxSamples; + } + memcpy(samples, stream->outputBuffer, numSamples*sizeof(short)*stream->numChannels); + if(remainingSamples > 0) { + memmove(stream->outputBuffer, stream->outputBuffer + numSamples*stream->numChannels, + remainingSamples*sizeof(short)*stream->numChannels); + } + stream->numOutputSamples = remainingSamples; + return numSamples; +} + +/* Read unsigned char data out of the stream. Sometimes no data will be available, and zero + is returned, which is not an error condition. */ +int sonicReadUnsignedCharFromStream( + sonicStream stream, + unsigned char *samples, + int maxSamples) +{ + int numSamples = stream->numOutputSamples; + int remainingSamples = 0; + short *buffer; + int count; + + if(numSamples == 0) { + return 0; + } + if(numSamples > maxSamples) { + remainingSamples = numSamples - maxSamples; + numSamples = maxSamples; + } + buffer = stream->outputBuffer; + count = numSamples*stream->numChannels; + while(count--) { + *samples++ = (char)((*buffer++) >> 8) + 128; + } + if(remainingSamples > 0) { + memmove(stream->outputBuffer, stream->outputBuffer + numSamples*stream->numChannels, + remainingSamples*sizeof(short)*stream->numChannels); + } + stream->numOutputSamples = remainingSamples; + return numSamples; +} + +/* Force the sonic stream to generate output using whatever data it currently + has. No extra delay will be added to the output, but flushing in the middle of + words could introduce distortion. */ +int sonicFlushStream( + sonicStream stream) +{ + int maxRequired = stream->maxRequired; + int numSamples = stream->numInputSamples; + int remainingSpace, numOutputSamples, expectedSamples; + + if(numSamples == 0) { + return 1; + } + if(numSamples >= maxRequired && !sonicWriteShortToStream(stream, NULL, 0)) { + return 0; + } + numSamples = stream->numInputSamples; /* Now numSamples < maxRequired */ + if(numSamples == 0) { + return 1; + } + remainingSpace = maxRequired - numSamples; + memset(stream->inputBuffer + numSamples*stream->numChannels, 0, + remainingSpace*sizeof(short)*stream->numChannels); + stream->numInputSamples = maxRequired; + numOutputSamples = stream->numOutputSamples; + if(!sonicWriteShortToStream(stream, NULL, 0)) { + return 0; + } + /* Throw away any extra samples we generated due to the silence we added */ + expectedSamples = (int)(numSamples*stream->speed + 0.5); + if(stream->numOutputSamples > numOutputSamples + expectedSamples) { + stream->numOutputSamples = numOutputSamples + expectedSamples; + } + return 1; +} + +/* Return the number of samples in the output buffer */ +int sonicSamplesAvailable( + sonicStream stream) +{ + return stream->numOutputSamples; +} + +/* If skip is greater than one, average skip samples togther and write them to + the down-sample buffer. If numChannels is greater than one, mix the channels + together as we down sample. */ +static void downSampleInput( + sonicStream stream, + short *samples, + int skip) +{ + int numSamples = stream->maxRequired/skip; + int samplesPerValue = stream->numChannels*skip; + int i, j; + int value; + short *downSamples = stream->downSampleBuffer; + + for(i = 0; i < numSamples; i++) { + value = 0; + for(j = 0; j < samplesPerValue; j++) { + value += *samples++; + } + value /= samplesPerValue; + *downSamples++ = value; + } +} + +/* Find the best frequency match in the range, and given a sample skip multiple. + For now, just find the pitch of the first channel. */ +static int findPitchPeriodInRange( + short *samples, + int minPeriod, + int maxPeriod, + int *retMinDiff, + int *retMaxDiff) +{ + int period, bestPeriod = 0; + short *s, *p, sVal, pVal; + unsigned long diff, minDiff = 1, maxDiff = 0; + int i; + + for(period = minPeriod; period <= maxPeriod; period++) { + diff = 0; + s = samples; + p = samples + period; + for(i = 0; i < period; i++) { + sVal = *s++; + pVal = *p++; + diff += sVal >= pVal? (unsigned short)(sVal - pVal) : + (unsigned short)(pVal - sVal); + } + /* Note that the highest number of samples we add into diff will be less + than 256, since we skip samples. Thus, diff is a 24 bit number, and + we can safely multiply by numSamples without overflow */ + if(diff*bestPeriod < minDiff*period) { + minDiff = diff; + bestPeriod = period; + } + if(diff*bestPeriod > maxDiff*period) { + maxDiff = diff; + } + } + *retMinDiff = minDiff; + *retMaxDiff = maxDiff; + return bestPeriod; +} + +/* At abrupt ends of voiced words, we can have pitch periods that are better + aproximated by the previous pitch period estimate. Try to detect this case. */ +static int prevPeriodBetter( + sonicStream stream, + int period, + int minDiff, + int maxDiff) +{ + if(maxDiff*3/2 < stream->prevMaxDiff && (maxDiff*3.0f)*stream->prevMinDiff < + (float)stream->prevMaxDiff*minDiff*2) { + return 1; + } + return 0; +} + +/* Find the pitch period. This is a critical step, and we may have to try + multiple ways to get a good answer. This version uses AMDF. To improve + speed, we down sample by an integer factor get in the 11KHz range, and then + do it again with a narrower frequency range without down sampling */ +static int findPitchPeriod( + sonicStream stream, + short *samples) +{ + int minPeriod = stream->minPeriod; + int maxPeriod = stream->maxPeriod; + int sampleRate = stream->sampleRate; + int minDiff, maxDiff, retPeriod; + int skip = 1; + int period; + + if(sampleRate > SONIC_AMDF_FREQ) { + skip = sampleRate/SONIC_AMDF_FREQ; + } + if(stream->numChannels == 1 && skip == 1) { + period = findPitchPeriodInRange(samples, minPeriod, maxPeriod, &minDiff, &maxDiff); + } else { + downSampleInput(stream, samples, skip); + period = findPitchPeriodInRange(stream->downSampleBuffer, minPeriod/skip, + maxPeriod/skip, &minDiff, &maxDiff); + if(skip != 1) { + period *= skip; + minPeriod = period - (skip << 2); + maxPeriod = period + (skip << 2); + if(minPeriod < stream->minPeriod) { + minPeriod = stream->minPeriod; + } + if(maxPeriod > stream->maxPeriod) { + maxPeriod = stream->maxPeriod; + } + if(stream->numChannels == 1) { + period = findPitchPeriodInRange(samples, minPeriod, maxPeriod, + &minDiff, &maxDiff); + } else { + downSampleInput(stream, samples, 1); + period = findPitchPeriodInRange(stream->downSampleBuffer, minPeriod, + maxPeriod, &minDiff, &maxDiff); + } + } + } + if(prevPeriodBetter(stream, period, minDiff, maxDiff)) { + retPeriod = stream->prevPeriod; + } else { + retPeriod = period; + } + stream->prevMinDiff = minDiff; + stream->prevMaxDiff = maxDiff; + stream->prevPeriod = period; + return retPeriod; +} + +/* Overlap two sound segments, ramp the volume of one down, while ramping the + other one from zero up, and add them, storing the result at the output. */ +static void overlapAdd( + int numSamples, + int numChannels, + short *out, + short *rampDown, + short *rampUp) +{ + short *o, *u, *d; + int i, t; + + for(i = 0; i < numChannels; i++) { + o = out + i; + u = rampUp + i; + d = rampDown + i; + for(t = 0; t < numSamples; t++) { + *o = (*d*(numSamples - t) + *u*t)/numSamples; + o += numChannels; + d += numChannels; + u += numChannels; + } + } +} + +/* Overlap two sound segments, ramp the volume of one down, while ramping the + other one from zero up, and add them, storing the result at the output. */ +static void overlapAddWithSeparation( + int numSamples, + int numChannels, + int separation, + short *out, + short *rampDown, + short *rampUp) +{ + short *o, *u, *d; + int i, t; + + for(i = 0; i < numChannels; i++) { + o = out + i; + u = rampUp + i; + d = rampDown + i; + for(t = 0; t < numSamples + separation; t++) { + if(t < separation) { + *o = *d*(numSamples - t)/numSamples; + d += numChannels; + } else if(t < numSamples) { + *o = (*d*(numSamples - t) + *u*(t - separation))/numSamples; + d += numChannels; + u += numChannels; + } else { + *o = *u*(t - separation)/numSamples; + u += numChannels; + } + o += numChannels; + } + } +} + +/* Just move the new samples in the output buffer to the pitch bufer */ +static int moveNewSamplesToPitchBuffer( + sonicStream stream, + int originalNumOutputSamples) +{ + int numSamples = stream->numOutputSamples - originalNumOutputSamples; + int numChannels = stream->numChannels; + + if(stream->numPitchSamples + numSamples > stream->pitchBufferSize) { + stream->pitchBufferSize += (stream->pitchBufferSize >> 1) + numSamples; + stream->pitchBuffer = (short *)realloc(stream->pitchBuffer, + stream->pitchBufferSize*sizeof(short)*numChannels); + if(stream->pitchBuffer == NULL) { + return 0; + } + } + memcpy(stream->pitchBuffer + stream->numPitchSamples*numChannels, + stream->outputBuffer + originalNumOutputSamples*numChannels, + numSamples*sizeof(short)*numChannels); + stream->numOutputSamples = originalNumOutputSamples; + stream->numPitchSamples += numSamples; + return 1; +} + +/* Remove processed samples from the pitch buffer. */ +static void removePitchSamples( + sonicStream stream, + int numSamples) +{ + int numChannels = stream->numChannels; + short *source = stream->pitchBuffer + numSamples*numChannels; + + if(numSamples == 0) { + return; + } + if(numSamples != stream->numPitchSamples) { + memmove(stream->pitchBuffer, source, (stream->numPitchSamples - + numSamples)*sizeof(short)*numChannels); + } + stream->numPitchSamples -= numSamples; +} + +/* Change the pitch. The latency this introduces could be reduced by looking at + past samples to determine pitch, rather than future. */ +static int adjustPitch( + sonicStream stream, + int originalNumOutputSamples) +{ + float pitch = stream->pitch; + int numChannels = stream->numChannels; + int period, newPeriod, separation; + int position = 0; + short *out, *rampDown, *rampUp; + + if(stream->numOutputSamples == originalNumOutputSamples) { + return 1; + } + if(!moveNewSamplesToPitchBuffer(stream, originalNumOutputSamples)) { + return 0; + } + while(stream->numPitchSamples - position >= stream->maxRequired) { + period = findPitchPeriod(stream, stream->pitchBuffer + position*numChannels); + newPeriod = period/pitch; + if(!enlargeOutputBufferIfNeeded(stream, newPeriod)) { + return 0; + } + out = stream->outputBuffer + stream->numOutputSamples*numChannels; + if(pitch >= 1.0f) { + rampDown = stream->pitchBuffer + position*numChannels; + rampUp = stream->pitchBuffer + (position + period - newPeriod)*numChannels; + overlapAdd(newPeriod, numChannels, out, rampDown, rampUp); + } else { + rampDown = stream->pitchBuffer + position*numChannels; + rampUp = stream->pitchBuffer + position*numChannels; + separation = newPeriod - period; + overlapAddWithSeparation(period, numChannels, separation, out, rampDown, rampUp); + } + stream->numOutputSamples += newPeriod; + position += period; + } + removePitchSamples(stream, position); + return 1; +} + +/* Skip over a pitch period, and copy period/speed samples to the output */ +static int skipPitchPeriod( + sonicStream stream, + short *samples, + float speed, + int period) +{ + long newSamples; + int numChannels = stream->numChannels; + + if(speed >= 2.0f) { + newSamples = period/(speed - 1.0f); + } else if(speed > 1.0f) { + newSamples = period; + stream->remainingInputToCopy = period*(2.0f - speed)/(speed - 1.0f); + } + if(!enlargeOutputBufferIfNeeded(stream, newSamples)) { + return 0; + } + overlapAdd(newSamples, numChannels, stream->outputBuffer + + stream->numOutputSamples*numChannels, samples, samples + period*numChannels); + stream->numOutputSamples += newSamples; + return newSamples; +} + +/* Insert a pitch period, and determine how much input to copy directly. */ +static int insertPitchPeriod( + sonicStream stream, + short *samples, + float speed, + int period) +{ + long newSamples; + short *out; + int numChannels = stream->numChannels; + + if(speed < 0.5f) { + newSamples = period*speed/(1.0f - speed); + } else { + newSamples = period; + stream->remainingInputToCopy = period*(2.0f*speed - 1.0f)/(1.0f - speed); + } + if(!enlargeOutputBufferIfNeeded(stream, period + newSamples)) { + return 0; + } + out = stream->outputBuffer + stream->numOutputSamples*numChannels; + memcpy(out, samples, period*sizeof(short)*numChannels); + out = stream->outputBuffer + (stream->numOutputSamples + period)*numChannels; + overlapAdd(newSamples, numChannels, out, samples + period*numChannels, samples); + stream->numOutputSamples += period + newSamples; + return newSamples; +} + +/* Resample as many pitch periods as we have buffered on the input. Return 0 if + we fail to resize an input or output buffer. Also scale the output by the volume. */ +static int changeSpeed( + sonicStream stream, + float speed) +{ + short *samples; + int numSamples = stream->numInputSamples; + int position = 0, period, newSamples; + int maxRequired = stream->maxRequired; + + if(stream->numInputSamples < maxRequired) { + return 1; + } + do { + if(stream->remainingInputToCopy > 0) { + newSamples = copyInputToOutput(stream, position); + position += newSamples; + } else { + samples = stream->inputBuffer + position*stream->numChannels; + period = findPitchPeriod(stream, samples); + if(speed > 1.0) { + newSamples = skipPitchPeriod(stream, samples, speed, period); + position += period + newSamples; + } else { + newSamples = insertPitchPeriod(stream, samples, speed, period); + position += newSamples; + } + } + if(newSamples == 0) { + return 0; /* Failed to resize output buffer */ + } + } while(position + maxRequired <= numSamples); + removeInputSamples(stream, position); + return 1; +} + +/* Resample as many pitch periods as we have buffered on the input. Return 0 if + we fail to resize an input or output buffer. Also scale the output by the volume. */ +static int processStreamInput( + sonicStream stream) +{ + int originalNumOutputSamples = stream->numOutputSamples; + float speed = stream->speed/stream->pitch; + + if(speed > 1.00001 || speed < 0.99999) { + changeSpeed(stream, speed); + } else { + if(!copyToOutput(stream, stream->inputBuffer, stream->numInputSamples)) { + return 0; + } + stream->numInputSamples = 0; + } + if(stream->pitch != 1.0f) { + if(!adjustPitch(stream, originalNumOutputSamples)) { + return 0; + } + } + if(stream->volume != 1.0f) { + /* Adjust output volume. */ + scaleSamples(stream->outputBuffer + originalNumOutputSamples*stream->numChannels, + (stream->numOutputSamples - originalNumOutputSamples)*stream->numChannels, + stream->volume); + } + return 1; +} + +/* Write floating point data to the input buffer and process it. */ +int sonicWriteFloatToStream( + sonicStream stream, + float *samples, + int numSamples) +{ + if(!addFloatSamplesToInputBuffer(stream, samples, numSamples)) { + return 0; + } + return processStreamInput(stream); +} + +/* Simple wrapper around sonicWriteFloatToStream that does the short to float + conversion for you. */ +int sonicWriteShortToStream( + sonicStream stream, + short *samples, + int numSamples) +{ + if(!addShortSamplesToInputBuffer(stream, samples, numSamples)) { + return 0; + } + return processStreamInput(stream); +} + +/* Simple wrapper around sonicWriteFloatToStream that does the unsigned char to float + conversion for you. */ +int sonicWriteUnsignedCharToStream( + sonicStream stream, + unsigned char *samples, + int numSamples) +{ + if(!addUnsignedCharSamplesToInputBuffer(stream, samples, numSamples)) { + return 0; + } + return processStreamInput(stream); +} + +/* This is a non-stream oriented interface to just change the speed of a sound sample */ +int sonicChangeFloatSpeed( + float *samples, + int numSamples, + float speed, + float pitch, + float volume, + int sampleRate, + int numChannels) +{ + sonicStream stream = sonicCreateStream(sampleRate, numChannels); + + sonicSetSpeed(stream, speed); + sonicSetPitch(stream, pitch); + sonicSetVolume(stream, volume); + sonicWriteFloatToStream(stream, samples, numSamples); + sonicFlushStream(stream); + numSamples = sonicSamplesAvailable(stream); + sonicReadFloatFromStream(stream, samples, numSamples); + sonicDestroyStream(stream); + return numSamples; +} + +/* This is a non-stream oriented interface to just change the speed of a sound sample */ +int sonicChangeShortSpeed( + short *samples, + int numSamples, + float speed, + float pitch, + float volume, + int sampleRate, + int numChannels) +{ + sonicStream stream = sonicCreateStream(sampleRate, numChannels); + + sonicSetSpeed(stream, speed); + sonicSetPitch(stream, pitch); + sonicSetVolume(stream, volume); + sonicWriteShortToStream(stream, samples, numSamples); + sonicFlushStream(stream); + numSamples = sonicSamplesAvailable(stream); + sonicReadShortFromStream(stream, samples, numSamples); + sonicDestroyStream(stream); + return numSamples; +} diff --git a/src/sonic.h b/src/sonic.h new file mode 100644 index 00000000..0afe7f85 --- /dev/null +++ b/src/sonic.h @@ -0,0 +1,138 @@ +/* Sonic library + Copyright 2010 + Bill Cox + This file is part of the Sonic Library. + + The Sonic Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* +The Sonic Library implements Pitch Based Resampling, which is a new algorithm +invented by Bill Cox for the specific purpose of speeding up speech by high +factors at high quality. It generates smooth speech at speed up factors as high +as 6X, possibly more. It is also capable of slowing down speech, and generates +high quality results regardless of the speed up or slow down factor. For +speeding up speech by 2X or more, the following equation is used: + + newSamples = period/(speed - 1.0) + scale = 1.0/newSamples; + +where period is the current pitch period, determined using AMDF or any other +pitch estimator, and speed is the speedup factor. If the current position in +the input stream is pointed to by "samples", and the current output stream +position is pointed to by "out", then newSamples number of samples can be +generated with: + + out[t] = (samples[t]*(newSamples - t) + samples[t + period]*t)/newSamples; + +where t = 0 to newSamples - 1. + +For speed factors < 2X, an algorithm similar to PICOLA is used. The above +algorithm is first used to double the speed of one pitch period. Then, enough +input is directly copied from the input to the output to achieve the desired +speed up facter, where 1.0 < speed < 2.0. The amount of data copied is derived: + + speed = (2*period + length)/(period + length) + speed*length + speed*period = 2*period + length + length(speed - 1) = 2*period - speed*period + length = period*(2 - speed)/(speed - 1) + +For slowing down speech where 0.5 < speed < 1.0, a pitch period is inserted into +the output twice, and length of input is copied from the input to the output +until the output desired speed is reached. The length of data copied is: + + length = period*(speed - 0.5)/(1 - speed) + +For slow down factors between 0.5 and 0.5, no data is copied, and an algorithm +similar to high speed factors is used. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/* This specifies the range of voice pitches we try to match. + Note that if we go lower than 65, we could overflow in findPitchInRange */ +#define SONIC_MIN_PITCH 65 +#define SONIC_MAX_PITCH 400 + +/* These are used to down-sample some inputs to improve speed */ +#define SONIC_AMDF_FREQ 4000 + +struct sonicStreamStruct; +typedef struct sonicStreamStruct *sonicStream; + +/* For all of the following functions, numChannels is multiplied by numSamples + to determine the actual number of values read or returned. */ + +/* Create a sonic stream. Return NULL only if we are out of memory and cannot + allocate the stream. Set numChannels to 1 for mono, and 2 for stereo. */ +sonicStream sonicCreateStream(int sampleRate, int numChannels); +/* Destroy the sonic stream. */ +void sonicDestroyStream(sonicStream stream); +/* Use this to write floating point data to be speed up or down into the stream. + Values must be between -1 and 1. Return 0 if memory realloc failed, otherwise 1 */ +int sonicWriteFloatToStream(sonicStream stream, float *samples, int numSamples); +/* Use this to write 16-bit data to be speed up or down into the stream. + Return 0 if memory realloc failed, otherwise 1 */ +int sonicWriteShortToStream(sonicStream stream, short *samples, int numSamples); +/* Use this to write 8-bit unsigned data to be speed up or down into the stream. + Return 0 if memory realloc failed, otherwise 1 */ +int sonicWriteUnsignedCharToStream(sonicStream stream, unsigned char *samples, int numSamples); +/* Use this to read floating point data out of the stream. Sometimes no data + will be available, and zero is returned, which is not an error condition. */ +int sonicReadFloatFromStream(sonicStream stream, float *samples, int maxSamples); +/* Use this to read 16-bit data out of the stream. Sometimes no data will + be available, and zero is returned, which is not an error condition. */ +int sonicReadShortFromStream(sonicStream stream, short *samples, int maxSamples); +/* Use this to read 8-bit unsigned data out of the stream. Sometimes no data will + be available, and zero is returned, which is not an error condition. */ +int sonicReadUnsignedCharFromStream(sonicStream stream, unsigned char *samples, int maxSamples); +/* Force the sonic stream to generate output using whatever data it currently + has. No extra delay will be added to the output, but flushing in the middle of + words could introduce distortion. */ +int sonicFlushStream(sonicStream stream); +/* Return the number of samples in the output buffer */ +int sonicSamplesAvailable(sonicStream stream); +/* Get the speed of the stream. */ +float sonicGetSpeed(sonicStream stream); +/* Set the speed of the stream. */ +void sonicSetSpeed(sonicStream stream, float speed); +/* Get the pitch of the stream. */ +float sonicGetPitch(sonicStream stream); +/* Set the pitch of the stream. */ +void sonicSetPitch(sonicStream stream, float pitch); +/* Get the scaling factor of the stream. */ +float sonicGetVolume(sonicStream stream); +/* Set the scaling factor of the stream. */ +void sonicSetVolume(sonicStream stream, float volume); +/* Get the sample rate of the stream. */ +int sonicGetSampleRate(sonicStream stream); +/* Get the number of channels. */ +int sonicGetNumChannels(sonicStream stream); +/* This is a non-stream oriented interface to just change the speed of a sound + sample. It works in-place on the sample array, so there must be at least + speed*numSamples available space in the array. Returns the new number of samples. */ +int sonicChangeFloatSpeed(float *samples, int numSamples, float speed, float pitch, + float volume, int sampleRate, int numChannels); +/* This is a non-stream oriented interface to just change the speed of a sound + sample. It works in-place on the sample array, so there must be at least + speed*numSamples available space in the array. Returns the new number of samples. */ +int sonicChangeShortSpeed(short *samples, int numSamples, float speed, float pitch, + float volume, int sampleRate, int numChannels); + +#ifdef __cplusplus +} +#endif diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index be543ff4..7ff82a06 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -528,8 +528,8 @@ static espeak_ERROR Synthesize(unsigned int unique_identifier, const void *text, } } } - } - return(EE_OK); + } + return(EE_OK); } // end of Synthesize #ifdef DEBUG_ENABLED diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 2a82ea26..d9689d68 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,8 +35,8 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.44.13 17.Nov.10"; -const int version_phdata = 0x014404; +const char *version_string = "1.44.18 03.Dec.10"; +const int version_phdata = 0x014415; int option_device_number = -1; FILE *f_logespeak = NULL; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index fbcb25ff..346f9902 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -915,6 +915,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_OMIT_1_HUNDRED | NUM_ALLOW_SPACE | NUM_1900 | NUM_ORDINAL_DOT; tr->langopts.ordinal_indicator = "e"; + tr->langopts.stress_flags = S_FIRST_PRIMARY; memcpy(tr->stress_lengths,stress_lengths_nl,sizeof(tr->stress_lengths)); } break; @@ -1211,6 +1212,11 @@ SetLengthMods(tr,3); // all equal } break; + case L('w','o'): + tr->langopts.stress_rule = STRESSPOSN_1L; + tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_SINGLE_STRESS; + break; + case L('z','h'): case L_zhy: { diff --git a/src/translate.cpp b/src/translate.cpp index ad137e14..2edc246e 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -2779,8 +2779,8 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre // dot after a word, with space following, probably an abbreviation words[word_count-1].flags |= FLAG_HAS_DOT; - if(IsSpace(next_in)) - c = ' '; // remove the dot if it's followed by a space, so that it's not pronounced + if(IsSpace(next_in) || (next_in == '-')) + c = ' '; // remove the dot if it's followed by a space or hyphen, so that it's not pronounced } } else diff --git a/src/translate.h b/src/translate.h index 71fc6b4b..38eba700 100644 --- a/src/translate.h +++ b/src/translate.h @@ -145,10 +145,11 @@ #define RULE_CONDITION 5 // followed by condition number (byte) #define RULE_GROUP_START 6 #define RULE_GROUP_END 7 -#define RULE_LINENUM 8 // next 2 bytes give a line number, for debugging purposes +#define RULE_PRE_ATSTART 8 // as RULE_PRE but also match with 'start of word' +#define RULE_LINENUM 9 // next 2 bytes give a line number, for debugging purposes #define RULE_SPACE 32 // ascii space -#define RULE_SYLLABLE 9 // @ +#define RULE_SYLLABLE 21 // @ #define RULE_STRESSED 10 // & #define RULE_DOUBLE 11 // % #define RULE_INC_SCORE 12 // + @@ -342,6 +343,7 @@ typedef struct { #define S_FINAL_NO_2 0x10 #define S_NO_AUTO_2 0x20 #define S_2_TO_HEAVY 0x40 +#define S_FIRST_PRIMARY 0x80 #define S_2_SYL_2 0x1000 #define S_INITIAL_2 0x2000 #define S_NO_AUTO_DIM 0x10000 @@ -353,6 +355,7 @@ typedef struct { // bit4=don't allow secondary stress on last syllable // bit5-don't use automatic secondary stress // bit6=light syllable followed by heavy, move secondary stress to the heavy syllable. LANG=Finnish +// bit7=if more than one primary stress, make the subsequent primaries to secondary stress // bit8=stress last syllable if it doesn't end in a vowel // bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish // bit12= In a 2-syllable word, if one has primary stress then give the other secondary stress diff --git a/src/voices.cpp b/src/voices.cpp index 931d2c76..03298c33 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -411,9 +411,9 @@ void VoiceReset(int tone_only) voice->samplerate = 22050; memset(voice->klattv,0,sizeof(voice->klattv)); - speed.fast_settings[0] = 250; - speed.fast_settings[1] = 600; - speed.fast_settings[2] = 300; + speed.fast_settings[0] = 350; + speed.fast_settings[1] = 800; + speed.fast_settings[2] = 175; #ifdef PLATFORM_RISCOS voice->roughness = 1; @@ -512,6 +512,7 @@ static void PhonemeReplacement(int type, char *p) static int Read8Numbers(char *data_in,int *data) {//============================================= // Read 8 integer numbers + memset(data, 0, 8+sizeof(int)); return(sscanf(data_in,"%d %d %d %d %d %d %d %d", &data[0],&data[1],&data[2],&data[3],&data[4],&data[5],&data[6],&data[7])); } diff --git a/src/wavegen.cpp b/src/wavegen.cpp index 8494d55c..e728231a 100644 --- a/src/wavegen.cpp +++ b/src/wavegen.cpp @@ -286,6 +286,11 @@ void WcmdqStop() {//============= wcmdq_head = 0; wcmdq_tail = 0; + if(sonicSpeedupStream != NULL) + { + sonicDestroyStream(sonicSpeedupStream); + sonicSpeedupStream = NULL; + } #ifdef USE_PORTAUDIO Pa_AbortStream(pa_stream); #endif @@ -446,6 +451,10 @@ static int WaveCallback(const void *inputBuffer, void *outputBuffer, fprintf(stderr, "espeak: out of memory\n"); } outbuffer_size = ix; + out_ptr = NULL; + } + if(out_ptr == NULL) + { out_ptr = out_start = outbuffer; out_end = out_start + outbuffer_size; } @@ -1974,25 +1983,27 @@ int WavegenFill2(int fill_zeros) /* Speed up the audio samples with libsonic. */ -static int SpeedUp(short *outbuf, int length, int end_of_text) -{//=========================================================== - if(sonicSpeedupStream != NULL && sonicGetSpeed(sonicSpeedupStream) != sonicSpeed) +static int SpeedUp(short *outbuf, int length_in, int length_out, int end_of_text) +{//============================================================================== + if(length_in >0) { - sonicDestroyStream(sonicSpeedupStream); - sonicSpeedupStream = NULL; + if(sonicSpeedupStream == NULL) + { + sonicSpeedupStream = sonicCreateStream(22050, 1); + } + if(sonicGetSpeed(sonicSpeedupStream) != sonicSpeed) + { + sonicSetSpeed(sonicSpeedupStream, sonicSpeed); + } + + sonicWriteShortToStream(sonicSpeedupStream, outbuf, length_in); } - if(sonicSpeedupStream == NULL) - { - sonicSpeedupStream = sonicCreateStream(sonicSpeed, 22050); - } - - sonicWriteShortToStream(sonicSpeedupStream, outbuf, length); if(end_of_text) { sonicFlushStream(sonicSpeedupStream); } - return sonicReadShortFromStream(sonicSpeedupStream, outbuf, length); + return sonicReadShortFromStream(sonicSpeedupStream, outbuf, length_out); } // end of SpeedUp @@ -2001,15 +2012,23 @@ int WavegenFill(int fill_zeros) {//============================ int finished; unsigned char *p_start; + int length; + int max_length; p_start = out_ptr; - // fill_zeros is ignored. It is now done in the portaudio cakkback + // fill_zeros is ignored. It is now done in the portaudio callback finished = WavegenFill2(0); - if(sonicSpeed > 1.0 && out_ptr > p_start) + if(sonicSpeed > 1.0) { - out_ptr = p_start + 2*SpeedUp((short *)p_start, (out_ptr-p_start)/2, finished); + max_length = (out_end - p_start); + length = 2*SpeedUp((short *)p_start, (out_ptr-p_start)/2, max_length/2, finished); + out_ptr = p_start + length; + + if(length >= max_length) + finished = 0; // there may be more data to flush } return finished; } // end of WavegenFill +