From eeb49d1d5fa3c879fcd1930d35fdf3e58853c5ff Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 15 Apr 2013 22:03:02 +0000 Subject: [PATCH] [1.47.06] Language changes: da, en. nl, pt. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@343 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/da_rules | 1933 ++++++++++++++----------- dictsource/dict_phonemes | 84 +- dictsource/en_list | 30 +- dictsource/en_rules | 28 +- dictsource/hu_rules | 34 +- dictsource/nl_list | 3 + dictsource/nl_rules | 26 +- dictsource/pt_list | 85 +- dictsource/pt_rules | 304 ++-- espeak-data/voices/europe/ga | 2 +- espeak-data/voices/pt | 1 + phsource/ph_danish | 358 +++-- platforms/riscos/Makefile | 92 +- platforms/riscos/copysource | 28 +- platforms/riscos/cpp/speak_riscos | 1437 ------------------ platforms/windows/make_espeak.iss | 2 +- platforms/windows/make_espeakedit.iss | 2 +- src/dictionary.cpp | 2 +- src/synthdata.cpp | 2 +- src/synthesize.h | 10 +- src/translate.h | 2 +- 21 files changed, 1708 insertions(+), 2757 deletions(-) delete mode 100644 platforms/riscos/cpp/speak_riscos diff --git a/dictsource/da_rules b/dictsource/da_rules index 3f891bf8..3d4b593c 100755 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -37,10 +37,14 @@ .group a a & // changed from [a?] + _) at (_ & h) al (fback A aaron ArVn // name zol) a '& // name m) ary &ri // name + _t) ate Ejt // name +shangh) ai Aj + bl) a (zer E vin) ai (gre 'E // stressed _gymn) a (st '& // stressed _gymn) a (sti & // avoid secondary stress in gymnastik @@ -51,15 +55,16 @@ // Short vowel before double consonant r) a (C%++ ?A // trappe a (C%+ ?& // pladder, basser, masser - a (ld+ &# // kalde, falde - ld => l double consonant + a (dt+ ?& // uskadte - dt => d + a (ld+ ?& // kalde, falde - ld => l double consonant C) a (L06% ?A // tapper, tappen, lapper, lappen v) a (cc ?A // vaccinere a (ffald+ A s) a (bbat ?& grim) a (sse '?& // stressed _c) annes &:n: // French city - a (cc+ A // accent - b) accarat AkAr'A + a (cc+ ?A // accent + b) accarat ?Ak?Ar'?A st) a (ccato & // Short followed by 2 consonants = 1 phoneme: lg=>[l], ds=>[s] @@ -74,20 +79,34 @@ pl) a (n ?& // plan pl) a (ner ?& // planer pl) a (nen ?& // planen + bef) a (l ?& // befale // long & before de(n) - made long in ph_danish a (de & // gade a (den & //gaden +// combinations with "lade = l& + l) ade (_være & + l) ader (_være A + l) ade (_dig & + l) ade (_sig & + // Have = "oceans" vs. the verb have - _vi_h) ave & // hvad skal vi have? - _du_h) ave & // hvad skal du have? - _de_h) ave & // hvad skal de have? - _i_h) ave & // hvad skal I have? - vil_h) ave & - må_h) ave & -kunne_h) ave & // kunne have sagt -burde_h) ave & // burde have sagt + _vi_h) ave (_ & // hvad skal vi have? + _du_h) ave (_ & // hvad skal du have? + _de_h) ave (_ & // hvad skal de have? + _i_h) ave (_ & // hvad skal I have? +_jeg_h) ave (_ & // hvad skal jeg have? +_vil_h) ave (_ & + _må_h) ave (_ & +_kunne_h) ave (_ & // kunne have sagt +_kan_h) ave (_ & // kunne have sagt +_burde_h) ave (_ & // burde have sagt +_også_h) ave (_ & +_nok_h) ave (_ & +_nødig_h) ave (_ & +_ikke_h) ave (_ & +_stadig_h) ave (_ & t) abernak abVn'ak // tabernakel, tabernakler mil) a (no '&: // stressed @@ -95,11 +114,12 @@ burde_h) ave & // burde have sagt past) a & // tandpastareklame - r) a (CK+ A // drab, Rasmus, rask + r) a (CK+ ?A // drab, Rasmus, rask r) a (CA+ A // drabelig, brase, gratis + r) a (Ci+ ?A // tradition, radio r) a (len+ ?A // gralen TEST r) a (le+ A // morale, prale - r) a (dio++ A: // shortend too much by ph_danish + r) a (dio++ A // shortend too much by ph_danish br) ady Ejdi // name br) adbury &db@-re // name a (dress+ & // afsenderadresse @@ -150,9 +170,9 @@ burde_h) ave & // burde have sagt _br) ando &ndOw // Marlon Brando r) a (n A // ran, ransage _r) anda (l &ndO // Randall - name - tr) a (C A // straf, traf, trav + tr) a (L02 ?A // straf, traf, trav r) a (nd+ ?A // strand - short A - str) a A // ekstra +// str) a A // ekstra r) a (L06 A // trappe r) a (CL04 A // generation vibr) a (to 'A // stressed @@ -180,11 +200,11 @@ burde_h) ave & // burde have sagt r) a (nsigt & // pokeransigt // a followed by t + a or o: &: - a (ta &: // data TEST - a (to &: // dato TEST + d) a (ta &: // data TEST + d) a (to &: // dato TEST -// general rule: [&:] after m/n before L02 followed by e - L09) a (L02e+ &: // mave +// general rule: [&] after m/n before L02 followed by e + L09) a (L02e+ & // mave can) averal '&v3r3l // Cape Canaveral gn) av (pot Aw // gnavpotte torn) ad (o '&d // stressed @@ -192,7 +212,7 @@ burde_h) ave & // burde have sagt kan) ape &p'e // kanape kan) apé &p'e // kanapé n) a (palm & // - d) a (vid &: // name + d) a (vid & // name // General rule &: followed by -tus a (tus &: // status TEST @@ -249,8 +269,8 @@ burde_h) ave & // burde have sagt // general rule: consonant + a + labial + front vowel C) a (mi+ & // vitamin, dynamit, kamin, familie - gest) a (po 'A // - kad) a (ver '& // stressed + gest) a (po '?A // + kad) av (er '?Aw // stressed r) a (L02L04+ A // bravo f) a (vo+ & // favorit willi) a (m A // name @@ -263,22 +283,25 @@ burde_h) ave & // burde have sagt f) a (mle+ A // // general rule: [&] after k - k) a (+ & // kage, kaste - k) a (jak &' // kajak + k) a (+ & // kage + k) a (CC ?& // kaste + k) a (jak ?&' // kajak mik) ad (o '&:d // stressed - k) a (kao+ & // kakao + k) a (kao+ ?& // kakao _chik) a (ne '& // stressed - sk) a (k A // skak - k) abaret abar'E // - _b) are (t ar'&# // stressed - _mak) a (b '& // makaber - stressed + sk) a (k ?A // skak + k) abaret AbAr'E // + _b) are (t Ar'&# // stressed + _mak) a (b '?& // makaber - stressed + _stak) a (ter '?& // stressed _alk) a (li '& // alkalisk stressed k) atie Ejti // name -narkotik) a & // narkotikaproblemer - k) athy &Te // name +narkotik) a ?& // narkotikaproblemer + k) athy ?&Te // name // general rule: [&:] after consonant before "ne" - C) a (ne &: // "mane" opposed to "mande" + C) a (ne & + C) a (nd ?& // "mane" opposed to "mande" C) a (nen & // banen - too long with &: + n@-n form) a (ne & // formane C) a (ner & // glaner @@ -390,16 +413,19 @@ gammeld) a (gs & // // general rule: [A] before r ar (K++ A: // skar, barsk - ar (Ce++ A // farten + ar (CA++ A // farten, kartofler ar (Ci++ A // farlig + C) ar (A+ Ar // karikere ar (k+ A: // marken - ar (A+ AR // tarif TEST + t) ar (L04+ AR // tarif TEST + C) are (+ AA // klare, bare + C) arer (_ AA // klarer _) ar (i+ A: // arier, arisk - are (++ A?A // skare, sparepenge + L08) are (++ AA // skare, sparepenge aret (+ A?A@-D // advaret ar (ne+ A // barnet - ar (e+ AR // reparere, parere TEST - f) are (++ A:A // fare + p) ar (e+ AR // reparere, parere TEST + f) are (++ AA // fare f) ar (et++ A3- // faret f) arer (++ A:V // farer, søfarer f) arere (++ A:VR@- // søfareren @@ -430,16 +456,18 @@ _longob) a (rd 'A // stressed _mon) a (rki A' // stressed _bulg) a (r 'A // bulgarer - stressed -// general rule: [a] before velars - a (L01++ A // planke, slanke, anke, flanke, gang, hank, aksel, maj, blanko +// general rule: [A] before velars + a (L01++ ?A // planke, slanke, anke, flanke, gang, hank, aksel, maj, blanko a (L01%++ ?A // bakken + a (L01L04++ ?& // Patagonien TEST +// v) a (Cu++ ?& // evakuere TEST a (x A // Axel _ig) a (ng@ 'A // igangværende es) aj (as 'aI // name pizz) a & // pizzakæde b) a (jonet & // l) a (gune & // - C) a (L10L04++ A // pakistan + C) a (kL04++ A // pakistan afrik) a (+ & // Afrikakorpset f) a (cL04++ & // facon, facilitet kap) a (cit & // kapacitet @@ -468,7 +496,7 @@ _longob) a (rd 'A // stressed r) a (L01++ A // tragisk boomer) a (ng 'A // stressed r) angoon &ng'u:n // - a (kadem++ & // militærakademi + aka (dem++ ?&k?& // militærakademi a (ggres++ & // aggression spr) ag (let Aw // _) a (gA++ & // agere @@ -524,7 +552,7 @@ snakkes) ag (lig '& // tax) a & // taxachauffør f) a (cL11 & // facade att) ache &S'e // - C) a (L10L04 & // pacifist - maybe not a valid rule c = s here + C) a (L10L04 ?& // pacifist - maybe not a valid rule c = s here k) atakomb &t&k'omb // C) a (L10e A // race sperm) a & // spermacethval @@ -573,30 +601,30 @@ bloody_m) ary &ri // r) a (cerbane E // r) a (cervogn E // r) a (cerkør E // - _okt) a (v '& // stressed - _konk) a (v '& // stressed + _okt) a (v '?& // stressed + _konk) a (v '?& // stressed _det) a (lje '& // stressed nev) ad (a '&d // - _pol) a (k 'A // stressed polak - _kos) a (k 'A // stressed - kosak -_milli) a (r 'A // stressed - milliard -_trilli) a (r 'A // stressed - trilliard - _sejl) ad (s '& // stressed - silent d - sejl) ad (s & // unstressed - silent d + _pol) a (k '?A // stressed polak + _kos) a (k '?A // stressed - kosak +_milli) ar '?A // stressed - milliard +_trilli) a 'AA // stressed - trilliard + _sejl) ad (s '?& // stressed - silent d + sejl) ad (s ?& // unstressed - silent d _sah) a (ra 'A // stressed metast) a (se '& // stressed - pic) a (sso '& // stressed -supped) a (s '& // stressed + pic) a (sso '?& // stressed +supped) a (s '?& // stressed _o) a (se '& // stressed - salam) a (nder '& // stressed -_propag) a (nd '& // stressed - propaganda - bals) a (mi '& // stressed - balsamico - _fas) a (n '& // stressed + salam) a (nder '?& // stressed +_propag) a (nd '?& // stressed - propaganda + bals) a (mi '?& // stressed - balsamico + _fas) a (n '?& // stressed _entusi) a (s '& // stressed - entusiast bah) a (ma '& // stressed L08) av (C A?u // stavn - st) av (nin &v // stavning - bogst) av &v // bogstavrim - not [Au] + st) av (nin ?&v // stavning + bogst) av ?&v // bogstavrim - not [Au] h) av (_ & // hav - problem with the noun "hav" [hAu] iske_h) av (_ A?u // Kaspiske hav, Karibiske Hav @h) av (_ A?u // flammehav @@ -662,10 +690,10 @@ ginger_) ale Ejl // _d) ave _^_en // name _w) aco Ejkow // US city r) aw (+ O // OB Rawlins - l) awrence 0r@ns // name + l) awrence ?0r@ns // name b) ach Ax // name - _) ahab Ejh&b // name - _) allie (_ &li // name + _) ahab Ejh?&b // name + _) allie (_ ?&li // name C) ayes Ejs // name Hayes en_l) a (ser Ej // l) a (serst Ej // laserstråle @@ -683,29 +711,30 @@ ginger_) ale Ejl // r) al ($p_alt++ '?Al // [?A] after "r" - general, neutral, koral &) al (ism$p_alt+ &l' // socialisme // exception - no stress because of stressed -ion - r) a (l@@+ A // centralisation NEEDS MORE WORK + r) a (l@@+ ?A // centralisation NEEDS MORE WORK an) al (fabet =&l // - an) al (y+ &l' // analytiker - form) aldehyd &ld@-h'yD // + an) al (y+ ?&l' // analytiker + form) aldehyd ?&ld@-h'yD // // words in da_list with final -ance - stressed a - &) ance ($p_alt 'ANs@ // balance, romance - &) ance (r$p_alt 'ANsV // nuancer + &) ance ($p_alt '?ANs@ // balance, romance + &) ance (r$p_alt '?ANsV // nuancer voy) ance ($p_alt ''ANs // clairvoyance - &) anche ($p_alt 'ANs@ // revanche - &) ance (+ ANs@ // unstressed after a syllable - ferieromance - &) ance (re+ ANse // afbalancere - &) ance (re$p_alt ANs'e // avancere + &) anche ($p_alt '?ANs@ // revanche + &) ance (+ ?ANs@ // unstressed after a syllable - ferieromance + &) ance (re+ ?ANse // afbalancere + &) ance (re$p_alt ?ANs'e // avancere // stressed "a" in words with -ant in da_list - &) ant ($p_alt ''&nt // interessant - &r) ant ($p_alt 'Ant // [A] after "r" - kurant - &r) ans ($p_alt 'Ans // tolerans - &) ans ($p_alt '&ns // varians + &) ant ($p_alt ''?&nt // interessant + &r) ant ($p_alt '?Ant // [A] after "r" - kurant + &r) ans ($p_alt '?Ans // tolerans + &) ans ($p_alt '?&ns // varians // stressed a in final -at - words in da_list - &) at ($p_alt '?&d // attentat + &) at (_$p_alt '?&d // attentat + &) at (e$p_alt '?&d // attentater &) at (t$p_alt ''?& // fregatter - only one t &) ation ($p_alt &S''?on // delegation - 2*'' because of ventil-ventilation &r) ation ($p_alt AS'?on // koncentration @@ -723,20 +752,20 @@ _oblig) atio (n &S'o // clash with "obligat" in da_list // nouns with final -ade in da_list - stressed a &) ade ($p_alt '&:D@ // hystade &) ade (r$p_alt '&:DV // hystader - &) ader (e$p_alt &d'er // barrikaderede - er(e) words in da_list + &) ader (e$p_alt ?&d'er // barrikaderede - er(e) words in da_list &r) ade ($p_alt 'A:D@ // parade &r) ade (r$p_alt 'A:DV // parader - &r) ader (e$p_alt Ad'er // paraderede - er(e) words in da_list - &) adent ($p_alt &d'ent // don't spoil the -ent rule - dekad'ent + &r) ader (e$p_alt ?Ad'er // paraderede - er(e) words in da_list + &) adent ($p_alt ?&d'?ent // don't spoil the -ent rule - dekad'ent // nouns with final -an in da_list - stressed a // alt2 is used in order not to stress -ner words in da_list // where "er" has been removed eg. J'apan which becomes jap'ansk, jap'aner - &) an ($p_alt2+ '&n // leguan, velan - &) an (i$p_alt2+ &n' // pyromani, nymfomani - &r) an ($p_alt2+ 'An // varan - &r) an (i$p_alt2+ An' // tyrani - &r) an (ne$p_alt2+ 'A // tyrannen - one n + &) an ($p_alt2+ '?&n // leguan, velan + &) an (i$p_alt2+ ?&n' // pyromani, nymfomani + &r) an ($p_alt2+ '?An // varan + &r) an (i$p_alt2+ ?An' // tyrani + &r) an (ne$p_alt2+ '?A // tyrannen - one n // final -abel in da_list - stressed a &) ab (el$p_alt '?&b // aimabel @@ -835,7 +864,7 @@ _chimp) a (n '& // stressed - chimpanse tj) a (_ &: // j) avert A?uVd // javert l) ave (ment Aw // lavement - also [l&v@-mAN] - l) ave (_ &v@ // lave + l) ave (_ &v@- // lave l) aver (_ &vV // laver sl) ave &v@- // slavearbejde sl) aver &vV // @@ -973,6 +1002,7 @@ restaur) ant '?AN // added stress kålr) a (bi 'A // kålrabi - stressed a au (++ Aw // auto, autoritet aubergin oberS'i:n // + auggie O:gI // name vagin) a ?& // vaginaudvider l) aurie Ori // name astron) au (t 'Aw // stressed @@ -984,7 +1014,7 @@ astron) au (t 'Aw // stressed m) aureen OR'i:n // name _dinos) aur 'A?uV // stressed _dinos) aurer 'A?urV // stressed - ch) au (vin o // chauvinist + ch) au (vin ?o // chauvinist _p) au (l O // name p) au (lus Aw // name _biss) au 'A:w // Guinea-Bissau @@ -994,7 +1024,8 @@ _dinos) aurer 'A?urV // stressed s) au (terne o // wine @h) av_ A?u // ildhav -[Au] = [&v] followed by syllable: ['ilh&:v@D] en_k) ar (l ?& // "sikke en karl" - @k) ar (l ?& // bøssekarl, forkarl + @k) ar (l+ ?& // bøssekarl, forkarl + @k) ar (le+ & // bøssekarle, forkarle k) ar (lene & // afrik) aa (n A: // afrikaaner action &kSj@n // actionfilm @@ -1113,14 +1144,14 @@ hjemmeb) ag (_ &j // l) ag (re+ &j // PO overskudslagre pell) ag (ra &g // sl) agg (e ?Ak // slagger - C) ag (t+ Ag // venskabspagt, smagte, sagt + C) ag (t+ ?Ag // venskabspagt, smagte, sagt b) ag (tal Aw // bagtalt - sl) ag (ne &j // rædselsslagne - l) ag (_ &j // lag - forl) ag %&j // forlagsvirksomhed - opsl) ag &j // + sl) ag (ne ?&j // rædselsslagne + l) ag (_ ?&j // lag + forl) ag %?&j // forlagsvirksomhed + opsl) ag ?&j // f) ag (@ A?u // fagsnak, ufaglært, fagarbejde - f) ag (ter Ag // + f) ag (ter ?Ag // l) ag (C A?u // flagstang, lagkage fl) ag (afbrænd A?u // flagafbrænding gall) agh 3g // name @@ -1128,18 +1159,18 @@ hjemmeb) ag (_ &j // _sl) ag (sen ?Ag // slagsen gennemsl) ag (+ &j // gennemslagskraft sl) ag (sværd A?u // - pl) ag &j // plagsom - pl) ag (i &g // plagiere, plagiat - fl) ag (rant &g // flagrante delicto - l) ag (re &j // oplagres + pl) ag ?&j // plagsom + pl) ag (i ?&g // plagiere, plagiat + fl) ag (rant ?&g // flagrante delicto + l) ag (re ?&j // oplagres fl) ag (re+ A?u // esl) ag (lA A?u // beslaglægge - sl) ag (te+ Ag // slagter - sl) ag (tn+ Ag // slagtning - sv) ag (t &j // svagt, åndssvagt -sikkerhedsv) ag (t Ag // -åndssv) ag &j // -evnesv) ag &j // + sl) ag (te+ ?Ag // slagter + sl) ag (tn+ ?Ag // slagtning + sv) ag (t ?&j // svagt, åndssvagt +sikkerhedsv) ag (t ?Ag // +åndssv) ag ?&j // +evnesv) ag ?&j // parkeringsv) ag (t Ag // æresv) ag (t Ag // butiksv) ag (t Ag // @@ -1153,27 +1184,42 @@ hospitalsv) ag (t Ag // r) ag (e+ A?u // drage, rage C) age (++ &j@- // bage, kage fl) age (ne ?&j@- // flagene - C) age (nK++ ?&j@- // sagen, kagen + C) age (nK++ &j-@- // sagen, kagen _t) age (_+ &j@- // tage _t) age (_sig & _t) age (_imod & - du_t) age (_ & + _du_t) age (_ & +_det_t) age (_ & + _vi_t) age (_ & + _i_t) age (_ & +_jeg_t) age (_ & +_vil_t) age (_ & +_ville_t) age (_ & +_kunne_t) age (_ & +_skulle_t) age (_ & +_måtte_t) age (_ & +_ikke_t) age (_ & + _at_t) age (_ & + _må_t) age (_ & +_godt_t) age (_ & + _t) age (_på_ & + _t) age (_mig_ & voldt) age (_ & - voldt) ager (_ Ar - cart) age (na &g'e: // name - b) ag (efter++ &j // + voldt) ager (_ ?Ar + cart) age (na ?&g'e: // name + b) ag (efter++ ?&j // age (lig '&j@- // uindtagelig, behagelig - stressed - arm) aged &g'Ed // Armageddon - arm) agedd &g'Ed // Harmagedon + arm) aged ?&g'Ed // Armageddon + arm) agedd ?&g'Ed // Harmagedon mut) age (n &g'e // stressed affut) age &:S@- // missilaffutage _b) ag (el+ Ejg // - age (rn &jV // "acorn" - _) age (_ &j@- // "age med heste" - _) ager (_ &jV // "field" - ager (høn &jV // agerhøne/høns - l) ag (n &j // lagner - sl) ag (ni+ &j // rådslagning + age (rn ?&jV // "acorn" + _) age (_ ?&j@- // "age med heste" + _) ager (_ ?&jV // "field" + ager (høn ?&jV // agerhøne/høns + l) ag (n ?&j // lagner + sl) ag (ni+ ?&j // rådslagning ass) age &S@- // rygmassage plant) age &S@- // citronplantage on) age &S@- // kontraspionage @@ -1324,7 +1370,7 @@ _trienn) al (e '&l _) be (@ b%?e // besta'and // exceptions to the "be" rule - _) be (dste b?E // bedstefar, bedstemor + _) be (dste bE // bedstefar, bedstemor _) be (dring bE _) be (nmel be _) be (gge b?E @@ -1335,6 +1381,8 @@ _trienn) al (e '&l _) be (nchmark bE _) be (nedder be _) be (nende be + _) be (nene b?e + _) be (ner be _) be (net be _) be (nfisk be _) be (nfedt be @@ -1406,7 +1454,7 @@ diskvalifi) cer ser // c (y s // s followed by y - cykel cyper kypV // Cypern - curler kWlV // + curler kWlV _) clarence kl&R@-ns // name _) capone k&p'Own // name A) c (e s // race, procent @@ -1416,28 +1464,28 @@ cadilla) c k // Cadilacen ce (rt s'E // koncert corn (f kV:n // cornflakes c (i s -frederi) c (ia =ks // +frederi) c (ia =ks _pa) c (ino tS' // name scor) c (ese tS' // name c (embalo tS // music instrument ch (loe k // Chloe c (k - c (ølibat s // + c (ølibat s ch (+ S // check, chokolade ch (i tS // chili ch (eese tS // cheeseburger _ma) ch (_ k // sound barrier chaplin tS&plin // name - challenge tS&lendZ // - chelsea tSElsi // - cheyenne SaI'En // + challenge tS&lendZ + chelsea tSElsi + cheyenne SaI'En maso) ch (is k // sadomasochisme, masochist wi) ch tS // sandwich chicago Sik'AgOw // child tSaIld // Fairchild chopin SopEN // name ch (ip tSj // mikrochip - te) ch (no k // + te) ch (no k mi) ch (a k S ch (r k c (ha S @@ -1447,82 +1495,83 @@ frederi) c (ia =ks // cigaret sig3r'&#t cigarett sig3r'&#t cc ks // accent + be) cca %k?& // Rebecca yu) cc (a k ro) cc (o k // name pu) ccini S'ini // name rebe) cc (a =k // name so) cc (er k // European football - sta) cc (ato k' // + sta) cc (ato k' pi) cc (o k // piccolo - cappu) cc (ino tSj' // + cappu) cc (ino tSj' fa) c (ad s fa) c (on s - ceylon saIl/2Vn // - cornichon kVrniS'VN // - charlie tSAli // - charles tSA:ls // + ceylon saIl/2Vn + cornichon kVrniS'VN + charlie tSAli + charles tSA:ls cynthia senTi& // name - c (æsar s // - cordelia kVd'ili-& // + c (æsar s + cordelia kVd'ili-& ni) ch (ol k // Nicholas - computer kVmpj'utV // + computer kVmpj'utV cha (t tj& // chatte - ch (ateau S // - chianti kj'&nti // - chokeren (_ SOwkVr@n // - callgirl kVlgW:l // + ch (ateau S + chianti kj'&nti + chokeren (_ SOwkVr@n + callgirl kVlgW:l cowboy kaubOj _) custer kVstV // name - _) ciao (_ tSjAw // + _) ciao (_ tSjAw claude klO:d // name claudette klOd'et // name - churchill tSW:Sil // - cambridge kejmbRidZ // - canterbury k&ntVbri // - connecticut kVn'etikVd // - carlisle kAlaIl // - china tjaIn& // + churchill tSW:Sil + cambridge kejmbRidZ + canterbury k&ntVbri + connecticut kVn'etikVd + carlisle kAlaIl + china tjaIn& _) cape (_town kEjp // name _) chuck tSVk // name - cleveland kli:vl&n // - croissant kroas'AN // - _) cartier kArtj'e // + cleveland kli:vl&n + croissant kroas'AN + _) cartier kArtj'e clair (voy klEr // clairvoyance co (nrad kV // name country kVntri // chagall S&g'&l // name - _ali) ce s // - connie kVni // - chablis S&bl'i // - creme kr?Em // - creme (n kr?Em@ // - catering kEit@riN // -piccadilly_) circus sWk@s // - coleridge kOwlridZ // - colada kol'AD& // - creek kri:k // - camembert kAmANb'Er // + _ali) ce s + connie kVni + chablis S&bl'i + creme kr?Em + creme (n kr?Em@ + catering kEit@riN +piccadilly_) circus sWk@s + coleridge kOwlridZ + colada kol'AD& + creek kri:k + camembert kAmANb'Er crazy kREjsi // Crazy Horse - cincinnati sensin'&ti // - chihuahua tSiw'awa // + cincinnati sensin'&ti + chihuahua tSiw'awa connor kVnV // name creasy krisi // name - c (ello Sj // - c (ellofan s // + c (ello Sj + c (ellofan s cutler kVtlV // name cajun kEdZ3n // English pronunciation - courtney kO:tni // -north_) carolina k&rol'aIn& // + courtney kO:tni +north_) carolina k&rol'aIn& _) cathy k&Ti // name _) cagney k&gni // name - cottage kVtidZ // + cottage kVtidZ cheryl SErel/2 cohen kOu@-n // name cieux sj'W // Bonacieux _) cardin kArd'&N // name cézanne ses'&n // Cézanne cézannen ses'&n@-n // Cézannen - cockney kVkni // + cockney kVknI clerk klA:k // Clerkenwell carmine kA:maIn // name @@ -1531,10 +1580,10 @@ north_) carolina k&rol'aIn& // d d A) de (_ D@-_! // hade, lade - a) de (@ D@- // hadefuld + ha) de (@ D@- // hadefuld a) der (@ DV // skaderne ski) de (@ D@- // skidefuld - ski) der DV // skideren + ski) der (@ DV // skideren ski) der (ik DVR // skiderik ba) de (@ D@- // badeforhæng ga) de (@ D@- // gadebetjent @@ -1553,7 +1602,7 @@ north_) carolina k&rol'aIn& // vene) d (ig d d (øm+ d // idømme i) d (ol d - u) d (i D // + u) d (i D hou) di (ni d'i // name _pro) du (kt d'O // produkt _pro) du (ktiv du // produktiv @@ -1590,6 +1639,7 @@ tourne) dos d'o // stressed d (om d // PN trældom d (ronning d // Snedronningen d (ufte d // lavendelduftende + d (amp d // keddeldamp el) dorado dor'Ado // stressed vel) d (rej d // veldrejede _hil) d (a d // name @@ -1616,7 +1666,8 @@ turtel) d (ue d sal) d (o d C) d (etA d // metaldetektor ol) d (ing d // holdingfirma, olding - d (ag d // gammeldags + d (ag+ d // gammeldags, junidag + ul) d // uldagtig - silent al) d (rig d // aldrig il) d (ring d // skildring kil) d (re d // skildre @@ -1655,17 +1706,17 @@ stikor) d // exception - silent d in 'stikord' // exceptions fe) dt (@ t // fedtet, fedtsyl - ski) dt t // + ski) dt t tu) ds (e s // silent d bi) d (sk // silent d _ma) d (sen // silent d spre) dt t // spredtes sta) ds (_ s // flitterstads - stru) ds s // + stru) ds s i) d (ti+ D // hidtil - bu) d (apest d // + bu) d (apest d d (rama d // melodramatisk - æ) d (ru d // + æ) d (ru d pe) d (ro d // name e) d (gar d // name be) d (ford d // name @@ -1680,7 +1731,7 @@ stikor) d // exception - silent d in 'stikord' _u) d (++ D // udse A) ds (el s // fødsel, brændsel, bidsel A) ds (le s // gidsler, fødsler - ræ) d (sel D // + ræ) d (sel D ned) d (s D // nedsmelte ø) d (s++ D // dødscelle, nødspor, ødsel, nødstilfælde fø) d (s++ // fødsel @@ -1690,10 +1741,10 @@ stikor) d // exception - silent d in 'stikord' svær) d // silent d - sværdfisk vær) d (i d // bemærkelsesværdigt hi) ds (e s // ophidse - pla) ds s // + pla) ds s pu) ds s // pudse stu) ds s // studs, studse - smu) ds s // + smu) ds s dø) d (+ D // dødtræt lfre) ds s // tilfreds fjer) di (ng e // silent d - forfjerding (1/4 of an animal ) @@ -1701,7 +1752,7 @@ stikor) d // exception - silent d in 'stikord' // general rule: silent d before st d (st++ // silent d - sidste, mindst mo) d (st+ D // modstand, modstå - u) d (styr+ D // + u) d (styr+ D bu) d (s++ D // forbudstiden gla) dstone dst0wn // name y) d (stat+ D // sydstaterne @@ -1710,25 +1761,27 @@ stikor) d // exception - silent d in 'stikord' // general rule: [D] after a vowel A) d (A D ste) d D // sted - aci) d (ose d // + aci) d (ose d fi) d (us d ø) d (em_ d // ødem ø) d (emer_ d // ødemer ø) d (emet_ d // ødemet A) dd D // skuddene - _i) d (e d // - _i) d (é d // + d (åd+ d // heltedåd + melo) d (i d // nationalmelodi + _i) d (e d + _i) d (é d ra) di (o dj evi) d (en d // evident bi) d (e D // bider - ri) de D@- // rideskole + ri) de (@ D@- // rideskole ri) der DV - si) de D@- // sidemand + si) de (@ D@- // sidemand vi) d (er D // videre ti) d (e D // tider ti) de (@ D@- // tidevand salva) dor d'O: // El Salvador - via) du (kt d'O // + via) du (kt d'O bermu) d (a d // name ju) dæ (a d'E: // name ju) d (as d // name @@ -1816,7 +1869,7 @@ stikor) d // exception - silent d in 'stikord' _) dean di:n // name dubois dybw'A // name dorothy _^_en // name - debbie dEbi // name + debbie d?Ebi // name download dAwnlowd // down dAwn // Downs syndrom detroit detr'Vjt // US city @@ -1857,6 +1910,9 @@ stikor) d // exception - silent d in 'stikord' // Short e - various words sk) e (d ?e // besked + C) e (en '?e // armeen, alleen - stressed + ch) e (C ?E // chef + p) e (ter ?e // name // Short e followed by st, st, sk - made short in ph_danish C) e (L08 E // fest, fester, hest, heste @@ -1864,15 +1920,20 @@ stikor) d // exception - silent d in 'stikord' m) e (st e m) e (ster E // politimester nærm) e @- // nærmeste + kort) e @- // korteste ån) e (C @- // månestråle rav) e (@ @- // travesko + ilk) e (@ @- // silkestrømper skad) e (@ @- // skadestue hyld) e (s @- // hyldest + lamp) e (@ @- // lampeskærm arv) e (@ @- // farvestof ugl) e (@ @- // fugleskræmsel ønn) e (st @- // kønneste rn) e (ste @- // fjerneste av) e (@ @- // pavestolt + sen) e (st @- + flott) e (st @- // exceptions cyk) e (lløb @- @@ -1896,7 +1957,7 @@ stikor) d // exception - silent d in 'stikord' t) eur 'W:r // agent provocateur // E after r - r) e E // reaktion - VERY BROAD + r) e ?E // reaktion, regiment - VERY BROAD @r) es (_ Vs // koncentreres TEST // E before n - VERY BROAD @@ -1929,44 +1990,45 @@ stikor) d // exception - silent d in 'stikord' // stress on second syllable after initial "be" in .group be // Secondary stress after a syllable - &b) e (s@ e, // hv'alrosbest,and + &b) e (s@ ?e, // hv'alrosbest,and &Ab) er V // fibersprængning - b) e (ret+ e // stemmeberettiget - ib) er (ia+ 'er // Iberia, Liberia + b) e (ret+ ?e // stemmeberettiget + ib) er (ia+ '?er // Iberia, Liberia rob) er (ta 'Er // name - forb) e e // forberede - b) e (rig e // våbenberiget - b) e (rg+ E // herberg + forb) e ?e // forberede + b) e (rig ?e // våbenberiget + b) e (rg+ ?E // herberg fab) ergé ErS'e // name bomb) e (r@ @- // bomberydder + snobb) e @- // snobbeskole dobb) e (l // silent e - reb) e (kka 'E // name + reb) e (kka '?E // name - e (fter E // efter, efterse + e (fter ?E // efter, efterse leg) e @- // legeværelse leg) e (nd E // legende (myth, not playing) dag) e @- // dagevis op) e (r @- // operere, opera _halvf) e (ms 'E // stressed - d) e (pr e // depressiv + d) e (pr ?e // depressiv _emfys) e (m 'e // stressed - kn) e (b e - kn) eb (re Eu // "knebre med næbbet" + kn) e (b ?e + kn) eb (re ?Eu // "knebre med næbbet" C) e (L02a e // tema jert) e (@ @- // hjertebarn ød) e (+ @- // ødemark // herr) e @- // herremand bed) e @- // bedemand _still) e (ben ='e - fr) e (m &# // fremad - _eks) e (mpel 'E // stressed + fr) e (m ?&# // fremad + _eks) e (mpel '?E // stressed entr) e (pr V // entreprise ordr) e @- // ordrebog - r) e (L02s &# // revse, krebs - TEST + r) e (L02s ?&# // revse, krebs - TEST br) ev (+ Ew // brevstemt br) eve Ev@- // breve Cr) evet ?Ev@-D_! // brevet, skrevet - L03) e (L02i e // akademiker + L03) e (L02i ?e // akademiker åd) e (++ @- // gådefuld åd) er (++ V // gåder nd) e @- // yndefuld @@ -1978,7 +2040,7 @@ _still) e (ben ='e kol) e (C @- // skolebog pol) e (re+ e // finpolere kol) e (st E // kolesterol - t) e (d E // sted - TEST + st) e (d E // sted - TEST st) ed (fa e // stedfar st) ed (mo e // stedmor st) ed (sø e // stedsøm @@ -1992,7 +2054,7 @@ _still) e (ben ='e kass) e (tte '?E // stresed h) e (dd ?e // hedde m) e (dalje e // medalje - v) e (de @- // helvedes + lv) e (de @- // helvedes hv) ede eD@- // hvedebrød tol) ed (o 'ed // toledostål val) e (ncia 'E // name @@ -2033,11 +2095,14 @@ banglad) esh 'ES // stressed udsl) e (t++ E // familieudslettelse, udslet (not [uDsl@D]) varsl) et @-D // ål) e (C @- // strålekrans - el) e (@ @- // seletøj + sel) e (@ @- // seletøj l) e (der e // apacheleder + simp) e (l @- // simpelthen // general rule: E before l e (lC E // heldig, held og lykke, helvede + kedd) e (l @- + sjof) e (l @- // sjofelhed // general rule: E before m e (m E // slem, slemt, hjem - short in ph_danish @@ -2045,6 +2110,7 @@ banglad) esh 'ES // stressed k) e (mo e: // kemo, kemoterapi nal) e (@ @- // Personalemøde old) e (@ @- // oldemor + bedst) e (@ @- // bedstemor d) e (ment e // E before r + consonant @@ -2056,9 +2122,12 @@ banglad) esh 'ES // stressed @C) er (C@ V // hypermoderne - TEST hj) er (t+ Er // hjerte b) er (l+++ Er // Berlin + s) er (gent Er // chefsergent + eks) er (c Er // kampeksercits // general rule: [E] after r before consonant - r) e (d E // rede, fred + r) e (d E // rede + r) e (dC ?E // redning r) e (ds ?E // tilfreds ds => s r) e (C% ?E // short e before double consonant - redde adr) e (sse ?&# // afsenderadresse @@ -2107,9 +2176,10 @@ himstr) eg (ims Vg // avoid aI // general rule: [&#] after pr followed by double consonant TEST pr) e (C%+ ?&# // presse - pr) e (s+ ?&# // - pr) e (sserende E' // - pr) estige (_ Est'iS // + pr) e (s+ ?&# +_ekspr) e (s '?&# // stressed + pr) e (sserende E' // stressed + pr) estige (_ Est'iS // stressed depr) e (ss E // depressiv // general rule: [&#] after r before ns/ms @@ -2158,19 +2228,19 @@ kriminalr) e (t &# // fr) e (l &# // frelse r) e (nse &# // nyrenset r) e (h @- // general rule: [@-] after r before h - fårehyrde, varehus - _tr) e (+ e // treholdsskift - r) e (habil e // rehabilitering + _tr) e (+ ?E // treholdsskift + r) e (habil ?E // rehabilitering r) e (nd_ &# // r) e (nde &# // -stikir) e (nddreng '&# // - @n) e (d @- // general rule: [3] after @+n before d - måned - men) e (d e // - n) e (dslag e // lynnedslag - n) e (dgang e // - n) e (dsæt e // nedsætte - n) e (dstig e // nedstigning - m) e (di+ e // medicin - rn) e (d+ ,e // derned +stikir) e (nddreng '?&# // + @n) e (d @- // general rule: [@-] after @+n before d - måned + men) e (d ?e // + n) e (dslag ?e // lynnedslag + n) e (dgang ?e // + n) e (dsæt ?e // nedsætte + n) e (dstig ?e // nedstigning + m) e (di+ ?e // medicin + rn) e (d+ ,?e // derned forn) eden 'eD@-n // an) er (@ V // anerkende L09) e (de e // nede, nederlag @@ -2178,27 +2248,28 @@ stikir) e (nddreng '&# // arkim) e (des 'e // name mus) e (um 'E // stressed mus) e (et 'E // stressed - L09) e (ta e // metal - n) etop Ed\,Vb // -heavy_m) etal Et@-l // - L09) e (l E // mellem + L09) e (ta ?e // metal + n) etop ?Ed\,Vb // +heavy_m) etal ?Et@-l // + L09) e (l ?E // mellem + m) e (CL04 ?e // melodi TEST mell) e (m @- // mellem - L06) e (rl E // perle + L06) e (rl ?E // perle rob) e (rto 'E // name - r) e (re E // operere + r) e (re ?E // operere sup) er V // superagenten - sup) er (lativ 'Er // stressed + sup) er (lativ '?Er // stressed _arl) es _^_fr // French town - _m) e (l_ e // + _m) e (l_ E // ed) er V // nederlag - tr) e (ma E' // trema + tr) e (ma ?E' // trema s) e (dd ?E // seddel s) ek (sten aI // seksten, sekstende ell) er V // ellers fr) edag Ed& // fredag - not [d&j) - nov) e (mber 'e // - dec) e (mber 'e // - sept) e (mber 'e // + nov) e (mber 'E + dec) e (mber 'E + sept) e (mber 'E eus Wws // for Greek names - Zeus, Achilleus m) euse W:z // French river st) ew ju // Stewart @@ -2383,11 +2454,20 @@ stoneh) enge EndZ // kk) e (@ @- // vækkeur TEST studi) e (@ @- // studiegruppe apach) e (@ @- // apacheleder -handsk) e @- // handskerum + kæmp) e (@ @- // kæmpestor + ys) e (@ @- // lysekrone + øs) e (@ @- // løsepenge + alk) e (@ @- // malkeko + rupp) e (@ @- // gruppemodel + ban) e (@ @- //jernbanefolk +handsk) e (@ @- // handskerum bøvs) e @- // bøvsesen + fisk) e (@ @- // fiskeforhold studi) er V // Catt) e (@ @- // skatteår + ro) e (@ @- // roesukker ell) e @- // cellevæg + _lill) e @_! ytt) e (@ @- // skytteforbundet klog) e @- // klogeste vi) e (@ @- // vievand @@ -2395,21 +2475,24 @@ handsk) e @- // handskerum næs) e (@ @- // næseblod øv) e (@ @- // prøveperiode al) e (@ @- // malebog + eng) e (@ @- // sengetid dans) e (@ @- // dansebal + rus) e (@ @- // brusetablet ås) e @- // dåse, gåsehud, Åse ån) e (@+ @- // låneansøgning, månestråle _lev) e (@++ @- // levevis arn) e (@ @- // barnebarn - kam) e (ra @- // + kam) e (ra @- ørv) e (@ @- // tørvetriller ull) e (@ @- // rullebræt od) e (@ @- // modetøj hest) e (@ @- // hestehår + els) e (@ @- // vielsesattest + knogl) e (@ @- // knoglepark ant) e (@ @- // plantesaft ørn) e (@ @- // børnebog mm) e (@ @- // dømmekraft ab) e (@ @- // abekat - e (dere @- // torpedere øl) e (@+ @- // køleskab aff) e (@ @- // straffeattest @@ -2563,8 +2646,11 @@ _sakram) e (nte 'e // words with final -ende &) ende (_++ @-n@- // troende + @r) ende (_++ ?Vn@- // glimrende // exceptions to the -ende rule - k) end (e_+++ E-n // genkende, kende, anerkende + genk) end (e_+++ E-n // genkende + anerk) end (e_+++ E-n // anerkende + _k) end (e_+++ E-n // kende søsk) end (e++ @-n _erk) end (e_++ 'En // erkende k) ender (_ E-nV // genkender, kender, anerkender @@ -2580,7 +2666,7 @@ _sakram) e (nte 'e omv) ende (+ E-n@- // omvende omv) ender (+ E-nV // omvender v) ende (tta End'E // stressed - lav) ende (l 'En@- // satressed + lav) ende (l 'En@- // stressed fj) ende e-n@- // dødsfjende fj) ender e-nV // dødsfjender @@ -2643,6 +2729,8 @@ selskabsl) eg aI // engag (e aNg&S // engagere _) en (tre aN en (tré aN // + _at_) entre (_ EntrV // entre et skib + entre (hag EntrV // entrehage c) en (t En // koncentrere c) en (tA En p) en (sion aN @@ -2675,15 +2763,16 @@ selskabsl) eg aI // lus) e (++ @- // væggelusejæger lus) er (+ ?V // bluser syg) e (++ @- // sygejournal - avoid [s'yaj,urn&:l] - v) ej (r_+ E // gråvejr - v) ej (ret_+ E // gråvejret - _v) ej (rC+ E // vejrsituationen + v) ej (r_+ ?E // gråvejr + v) ej (ret_+ ?E // gråvejret + _v) ej (rC+ ?E // vejrsituationen + _v) ej (rud+ ?E // vejrudsigt v) ejr (e_ aIR // vejre v) ejr (er_ aIR // vejrer _offic) e (_ // office (officepakke) - st) edet (_ ED@-t // værkstedet + st) edet (_ ?ED@-t // værkstedet Ad) en (@ @-n // udenlandsk, udenad - Ad) en (ti en // identificere + Ad) en (ti ?En // identificere sir) ene (+ '?En@- // gr) ene (+ En@- // grene rr) ed @-D // lærred, ørred @@ -2706,6 +2795,7 @@ _parent) e (s '?e // stressed _kat) e (der '?e // stressed ekst) e (rn '?E // stressed int) e (rn+ '?E // stressed +splint) er V // splinterny bod) e (ga '?e // stressed halvfj) e (rds '?& // stressed _konc) e (rn '?E // @@ -2723,6 +2813,7 @@ vietnam) e (ser '?e // stressed id) ee (l e'?E // ideelle, ideelt havann) e (ser '?e // stressed _malt) e (s '?e // malteser + sudan) e (ser '?e // a few words with final -es - stressed e abc) e (s '?E @@ -2768,7 +2859,7 @@ stript) ease i:s // eau (to @Au // hæveautomat empire (_state EmpaI3 // _t) e (_ e // te - kin) e (s 'e // kineser + kin) e (s '?e // kineser d) e (s_ @- // mødes _d) e (s_ e // des = desto, jo var) e @- // vareprøve, varevogn TEST @@ -2899,22 +2990,23 @@ marksk) el el evang) el el // evangelie d) el (t+ el // tildelt @f) el (t El // oliefelt - lob) el (ia 'el // + lob) el (ia '?el // d) el (e+ el // dele særd) el (es 'el // særdeleshed - stressed bind) ele (d @-le // bindeledder kvind) el (A @-l // kvindelejr djæv) el @-l // Djævelen + sjof) el @-l d) eler (+ elV // deler -bestandd) el el // - halvd) el el // -landsd) el el // - medd) el el // meddelsom, meddele -nederd) el el // +bestandd) el ?el // + halvd) el ?el // +landsd) el ?el // + medd) el ?el // meddelsom, meddele +nederd) el ?el // d) el (ing el // -_offici) el (+ 'el // officiel - verbi) el 'El // adverbiel - mod) el El // fotomodel +_offici) el (+ '?el // officiel + verbi) el '?El // adverbiel + mod) el ?El // fotomodel u) el (_+ 'El // aktuel, seksuel, visuel u) el (t_++ ''el // aktuelt, seksuelt, visuelt _samu) el El // name @@ -2924,97 +3016,96 @@ gennemsku) el (ig =el and) el (se @-l // forbandelse hand) el @-l // handel spani) el @-l // cockerspaniel - dani) el El // Daniel - ford) el el // fordel - h) el (t@+ El // tøffelhelt + dani) el ?El // Daniel + ford) el ?el // fordel + h) el (t@+ ?El // tøffelhelt _h) el (t_ el // problem with helt = hero - h) el (st El // allerhelst - r) el (at el // relateret + h) el (st ?El // allerhelst + r) el (at ?el // relateret public_r) elation il'EjS@-n t) el (ef el // telefon - ed) el (+ el // femtedel - words where "del" means 'part of' + ed) el (+ ?el // femtedel - words where "del" means 'part of' led) el (se @-l // ledelse ked) el (+ @-l // grukedel - doesn't mean 'part of' - benm) el el // benmel - uform) el El // uformel - gabri) el El // name -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 - jav) el 'el // stressed e in 'javel' + benm) el ?el // benmel + uform) el ?El // uformel + gabri) el ?El // name +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 + jav) el '?el // stressed e in 'javel' _v) el ?El // velkommen icha) el l // Michael ika) el l // Mikael - brøkd) el el - bagd) el el // - byd) el el - _for) el '&#l // forel - fish + brøkd) el ?el + bagd) el ?el // + byd) el ?el + _for) el '?&#l // forel - fish _for) el (ig @-l // foreligge _for) el (æg @-l // forelægge - for) el (s 'El // forelsket - citad) el 'el - ejend) el el - ent) el El // eksperimentel - fid) el 'el - ded) el el // tiendedel, niendedel - farv) el 'El - s) el (ska El // selskab - juv) el 'el - kam) el 'el + for) el (s '?El // forelsket + citad) el '?el + ejend) el ?el + ent) el ?El // eksperimentel + fid) el '?el + ded) el ?el // tiendedel, niendedel + farv) el '?El + s) el (ska ?El // selskab + juv) el '?el + kam) el '?el kap) el '?El -// kap) ell '?El -legemsd) el el - løsd) el el - _makr) el (+ '&#l -materi) el 'El -medikament) el 'El -mortad) el 'El - mot) el 'El - nuv) el 'El - ovend) el el -parall) el 'El - parc) el 'El // parcelhus - past) el 'El - ped) el (+ 'El -procentd) el el -programm) el 'el - prop) el 'el - reb) el 'el - re) el 'el -reserved) el el - rism) el el - rond) el 'El - rugm) el el - rundd) el el - sagom) el el - sard) el 'El +legemsd) el ?el + løsd) el ?el + _makr) el (+ '?&#l +materi) el '?El +medikament) el '?El +mortad) el '?El + mot) el '?El + nuv) el '?El + ovend) el ?el +parall) el '?El + parc) el '?El // parcelhus + past) el '?El + ped) el (+ '?El +procentd) el ?el +programm) el '?El + prop) el '?El + reb) el '?El + re) el '?El +reserved) el ?el + rism) el ?el + rond) el '?El + rugm) el ?el + rundd) el ?el + sagom) el ?el + sard) el '?El s) el (e_ el // sikkerhedssele s) el (er_ el // sikkerhedsseler s) el (ers_ el // sikkerhedsselers -sigtem) el el -_skalp) el 'El - sport) el 'el +sigtem) el ?el +_skalp) el '?El + sport) el '?el stikked) el el - såv) el 'El - _tab) el 'El - tab) el El + såv) el '?El + _tab) el '?El + tab) el ?El respektab) el @-l // irritab) el @-l // -tarant) el 'el -univers) el 'el -_frikad) el (l 'El // stressed - frikadelle -frikad) el (l El // -verdensd) el el +tarant) el '?El +univers) el '?El +_frikad) el (l '?El // stressed - frikadelle +frikad) el (l ?El // +verdensd) el ?el @) el (øs+++ @-l // mageløs, kasteløs jul) eleg @-laI // juleleg dr) el (+ Vl // ældre, forældreløs - alleh) elg (ens 'Elj // stressed - allehelgensdag - elliot EljVt // name + alleh) elg (ens '?Elj // stressed - allehelgensdag + elliot ?Elj?Vt // name .group en // noun suffix -en (perlen - the pearl), -ens (perlens - the pearl's) @@ -3095,7 +3186,7 @@ galdest) en ?en grundst) en ?en gråst) en ?en hinkest) en ?en -hjørnest) en ?en +hjørnest) en (+ ?en holst) en ?en kalkst) en ?en kampest) en ?en @@ -3164,33 +3255,34 @@ _en_syr) en '?en // problem with "syren" = "the acid" rev) en (che AN // not stressed after a syllable // $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) &cc) ent ($p_alt+ 'AN // accent - &r) ent ($p_alt+ ''&#nt // omtrent - &) ent (ur$p_alt+ ent' // agentur - stressed u - &) ent (alsk$p_alt+ Ent' // + "alsk" - stressed a - orientalsk + &r) ent ($p_alt+ ''?&#nt // omtrent + &) ent (ur$p_alt+ ?ent' // agentur - stressed u + &) ent (alsk$p_alt+ ?Ent' // + "alsk" - stressed a - orientalsk // exceptions acc) ent (+ AN // - ev) ent (A++ @-nt // eventyr, eventuel - v) enti (on+ enSj // konvention + _ev) ent (A++ @-nt // eventyr, eventuel + v) enti (on+ ?EnSj // konvention engros ANgr'o // engroshandler // $alt words with final -enser in da_list - stressed e - &) enser ($p_alt ''EnsV // palæstinenser - &p) enser (_$p_alt Ens'er // kompenser - &) enser (e$p_alt Ens'er // kondensere - &g) ense ($p_alt g''EnsV // ålborgenser + &) enser ($p_alt ''?EnsV // palæstinenser + &p) enser (_$p_alt ?Ens'er // kompenser + &) enser (e$p_alt ?Ens'er // kondensere + &g) ense ($p_alt g''?EnsV // ålborgenser - // $alt words with final -ent in da_list - stressed e - @) ens ($p_alt+ 'ens // frekvens - @r) ens ($p_alt+ '&#ns // kohærens - kv) ens ens // inkonsekvens + // $alt words with final -ens in da_list - stressed e + @) ens (_$p_alt+ '?Ens // frekvens + @) ens (e$p_alt+ ?'Ens // frekvenser + @r) ens ($p_alt+ '?&#ns // kohærens + kv) ens ?Ens // inkonsekvens // $alt words with final -ence in da_list - stressed e &) ence ($p_alt ''ANs-@ // kadence &) ence (r$p_alt ''ANsV // referencer - emin) ence ($p_alt 'Ens-@ // exception -excell) ence ($p_alt 'Ens-@ // exception + emin) ence ($p_alt '?Ens-@ // exception +excell) ence ($p_alt '?Ens-@ // exception // common affix -ender &) ender (_ En?V // anliggender, foretagender @@ -3237,10 +3329,12 @@ infant) eri ($p_alt @-r''i // infanteri @) ers (tat Ers // skadeserstatning wien) er V // wienerbrød + spejd) er V // spejderuniform od) er V // moderinstinkt hyp) er (@ V // hyperaktiv æd) er (@ V // læderindtræk sortep) er er // + rødl) er er vigtigp) er er // beh) er (sk Er // beherske _t) er (_ er // "de ter sig underligt" @@ -3382,41 +3476,41 @@ toplant) erne (++ Ern@- // Exceptions to the suffix rules // Words ending with -ere - stressed e - around 1.600 words in list file - @) ere (_$p_alt+++ ''e:V // stressed - manipulere, protestere (not parfum'ereklame) - @) ere (r$p_alt++ ''e:V // stressed - generer, kasserer - @) ere (re$p_alt+++ ''e:V // stressed - polerere - @) ere (ren$p_alt++ ''e:V // stressed - kassereren - @) ere (t$p_alt++ ''e:V // motiveret + @) ere (_$p_alt+++ ''?eV // stressed - manipulere, protestere (not parfum'ereklame) + @) ere (r$p_alt++ ''?eV // stressed - generer, kasserer + @) ere (re$p_alt+++ ''?eV // stressed - polerere + @) ere (ren$p_alt++ ''eV // stressed - kassereren + @) ere (t$p_alt++ ''?eV // motiveret @n) ere (re$p_alt+++ @-r'e // stressed - generere - @) ere (de$p_alt++ ''e:V // stressed - appellerede - @) ere (s_$p_alt++ ''e:V // stressed - pensioneres - @i) ere (n_$p_alt++ ''e:V // stressed - karrieren - @) er ($p_alt+++ ''er // stressed - repeter, kurer - @) er (er$p_alt+++ ''e // stressed - adopterer - @) er (e_$p_alt+++ ''e // stressed - acceptere - @r) er (e_$p_alt+++ ''E3- // stressed - reparere - @r) er (er_$p_alt+++ ''E3- // stressed - reparerer - @) er (_$p_alt++ ''er // stressed - repeter - ion) er (_$p_alt++ V // unstressed - missioner, kommissioner - @) er (et$p_alt++++ ''er // stressed - orienteret - &ik) er (_$p_alt++ =V // stressed - politiker - &ik) er (s_$p_alt++ =V // stressed - politikers + @) ere (de$p_alt++ ''?eV // stressed - appellerede + @) ere (s_$p_alt++ ''?eV // stressed - pensioneres + @i) ere (n_$p_alt++ ''?EV // stressed - karrieren + @) er ($p_alt+++ ''?er // stressed - repeter, kurer + @) er (er$p_alt+++ ''?e // stressed - adopterer + @) er (e_$p_alt+++ ''?e // stressed - acceptere + @r) er (e_$p_alt+++ ''?E3- // stressed - reparere + @r) er (er_$p_alt+++ ''?E3- // stressed - reparerer + @) er (_$p_alt++ ''?er // stressed - repeter + ion) er (_$p_alt++ ?V // unstressed - missioner, kommissioner + @) er (et$p_alt++++ ''?e // stressed - orienteret + &ik) er (_$p_alt++ =?V // stressed - politiker + &ik) er (s_$p_alt++ =?V // stressed - politikers // exceptions - fing) er (en VR // fingeren - clsashes with 'fing'ere' + fing) er (en ?VR // fingeren - clsashes with 'fing'ere' _barb) er (+ '?er // barber _barb) er (e+ 'er // barberen lev) er (eg+ @-r // leveregel fabrik) ere (+++++++'?eV - brod) er (en Vr // - lev) er (en+ Vr // the liver - _not) er (_det 'er // - _not) er (_den 'er // + brod) er (en ?Vr // + lev) er (en+ ?Vr // the liver + _not) er (_det '?er // + _not) er (_den '?er // report) er (en+ @-r // clash with "reportere" = "rapportere" report) er (e+ @-r // clash with "reportere" = "rapportere" - @cit) er (e er // fejlcitere -orient) eret er@-D // venstreorienteret - _kap) er (s++ V // + @cit) er (e ?er // fejlcitere +orient) eret ?er@-D // venstreorienteret + _kap) er (s++ ?V // // stressed e in words with -ering (1.100) in da_ list - likvidering &) ering ($p_alt++ ''e3-eN @@ -3447,7 +3541,7 @@ reserv) ert 'e3-t alt) er (nativ 'ER // stressed LOOK FOR MORE ff) er (At V // probably way too broad - offeret - c) er (e+ er // velkvalificeret + c) ere eV // velkvalificeret, ceremoni v) er (et er // kultiverret bl) er (e er // genetablere desp) er (at 3R // desperat @@ -3458,6 +3552,7 @@ reserv) ert 'e3-t _v) er (s_ Er v) er (@++ Er // verden, kontroversiel v) er (anda+ er // veranda + v) ermont ?W:m'Vnt salv) er (++ V // kvaksalverbutik snæv) er (++ V // snæversynet ov) er (++++ V // overbevisende, sover, ovenover, overfald @@ -3562,20 +3657,21 @@ der_man) er (_ V // der er intet land, der maner ... // verb suffix - ede (elskede - lovede) // not treated as a suffix any more - too many exceptions @) ede (_ @-D@- // elskede - &r) ede (_ VD@- // pikerede, spekulerede - &r) ede (s_ VD@- // placeredes + &r) ede (_ ?VD@- // pikerede, spekulerede + &r) ede (s_ ?VD@- // placeredes - hov) ed @-'D // hoved + hov) ed @-D // hoved mark) ed @-D // supermarked mm) ed @-D // fremmed - afst) ed (kom 'eD // afstedkomme + afst) ed (kom '?eD // afstedkomme opf) ede (++ eD@- // opfede f) eder (_+ eDV // feder gf) ed (e+ eD // blegfede h) ede (+ eD@- // glohede sm) ede eD@- // guldsmede -velocip) ed (e 'eD // stressed - h) eder (+ eDV // muligheder + sandh) ed ?eD // sandheden +velocip) ed (e '?eD // stressed + h) eder (+ ?eDV // muligheder vildr) ede (_+ ED@- // vildrede ørner) ede ED@- // err) ede (+ ED@- // forbryderrede, røverrede @@ -3632,6 +3728,7 @@ rotter) ede (_+ ED@- // rotterede // not treated as a suffix any more @) et (_+ @-D // elsket @r) et (_+ VD // placeret + ord) et (_ VD // bordet @) ets (_+ @-Ds // målets - noun ending int) et @-D // tilintetgøre @@ -3678,6 +3775,7 @@ gennems) et et // spl) et (+ Et // skønhedsplet guldpl) et Et // sølvpl) et Et // +rustpl) et Et Apl) et (+ Et // kaffeplet pl) ett (+ Et // kaffepletter _geb) et (+ 'et // @@ -3828,6 +3926,7 @@ _nicol) ette 'Et@- // Nicolette a) ff (initet f // affinitet a) ff (ære f // affære a) ff (age f // staffage + bla) ff (e f a) ff (utage f // ra) ff (e f // straffe ra) f (le f // rafle @@ -3926,6 +4025,7 @@ _nicol) ette 'Et@- // Nicolette l) g (s // udsalgsfeber - silent g øl) g (e j // bølge, selvfølgelig A) g (n j // tegn, regne + si) gn (A nj // signatur, signere - only n according to DDO pa) gn (on Nj // kompagnon kampa) gn Nj // valgkampagnen pa) gn (er Nj // akkompagnerer @@ -3933,7 +4033,7 @@ _nicol) ette 'Et@- // Nicolette mu) g (n g // mugne hu) g (ning g // halshugning ty) g (ning g // - si) gn (er N // signere + // si) gn (er N // signere velsi) gn jn // velsigner a) g (nos g // diagnose sky) g (ni g // afskygning @@ -4286,13 +4386,13 @@ proktolo) ge (n @- // ge (nom ge' ge (ntil ge' ge (nuin ge' - ge (pard ge' + _) ge (pard ge' ge (ranie ge' ge (ranium ge' ge (råde ge' ge (sandt ge' ge (sims ge' - ge (sjæft ge' + _) ge (sjæft ge' ge (skæftig ge' ge (spenst ge' ge (stagen ge' @@ -4304,7 +4404,7 @@ proktolo) ge (n @- // ge (valt ge' ge (vandt ge' ge (vind ge' - ge (vinst ge' + _) ge (vinst ge' ge (vir ge' føl) ge j@- // følgevirkning ge (vækst ge' @@ -4364,18 +4464,12 @@ proktolo) ge (n @- // // Short i followed by double consonant i (C% ?i // svirret, fisse i (dt ?i // skridt, skridtet - short i before dt - br) i (te ?i // person from GB i (ds ?i // gidsel - short before 2 consonants ild ?il // ilden, vildlede b) ild (ør ild // bildør v) ild (ig ild // uvildig math) ild 'ild // name - - d) i (kt+ i // diktere - t) i (l+ e // tilknytte, stille -dansk_st) i (l+ i // -engelsk_st) i (l+ i // - indst) i (l e // indstille + d) i (kt+ ?i // diktere // short i - general rules? h) i (ls ?i // hils, hilsen - short i @@ -4391,22 +4485,39 @@ engelsk_st) i (l+ i // b) i (son ?i skr) i (ver ?i fr) i ?i // befrielseshær + br) i (te ?i // person from GB + br) i (tis ?i // britisk, britiske + t) i (l+ ?e // tilknytte, stille +dansk_st) i (l+ ?i // +engelsk_st) i (l+ ?i // + indst) i (l ?e // indstille // exceptions - dr) i (nk e // - + dr) i (nk ?e // + _p) ie (_ Aj // "lide" - "like" versus "suffer" l) ide (_dig i l) ide (_mig i l) ide (_jer i l) ide (_dem i + l) ide (_det i l) ide (_os i l) ide (_andre i l) ide (_deres i l) ide (_jeres i l) ide (_vores i + l) ide (_ham i + l) ide (_hende i _godt_l) ide i +_ikke_l) ide i +_kan_l) ide i +_kunne_l) ide i +_kunnet_l) ide i +_kan_du_l) ide i +_kan_i_l) ide i +_kan_vi_l) ide i +_kan_jeg_l) ide i // general rule: initial in- : [e] _) i (n+ ?e // instinkt, ineffektiv @@ -4427,14 +4538,15 @@ _godt_l) ide i // general rule: [e] before double consonant L03) i (L01%+ ?e // ligge, dikke - i (ggør++ i // legemliggøre - i (ggjo++ i // legemliggjort/gjorde - r) i (L01% e // drikke, prikke + i (ggør++ ?i // legemliggøre + i (ggjo++ ?i // legemliggjort/gjorde + led) i (g++ ?i // lediggang + r) i (L01% ?e // drikke, prikke L08) i (ll++ ?e // skille, stille, spille - st) illads il'&s // + st) illads il'?&s // bast) ille 'ilj3 // - sp) i (l e // lotterispil - sp) ilop il'Vp // stressed + sp) i (l ?e // lotterispil + sp) ilop ?il'?Vp // stressed L09) i (L03%a+ ?e // middag L02) i (pp ?e // svippe, vippe L09) i (pp ?e // nippe, knippe, knippel, snippe @@ -4443,6 +4555,7 @@ mississ) i (ppi 'i // stressed musl) i (n_ 'i // stressed v) i (ss ?e // visse + v) i (sselulle ?i vr) i (ss ?e // vrisse v) i (sh ?e // uvished n) i (sse ?e // @@ -4464,10 +4577,11 @@ mississ) i (ppi 'i // stressed but) i (k ?i // videobutikken // general rule: [i] after k, [e] followed by n/m + k) i (L09++ ?e // kind, skinke, skimme, skimte k) i (k ?i // kik, kikkert k) i (Ce++ i // skide + k) i (derik++ ?i // skiderik - short i sk) i (bet++ ?i // skibet - k) i (L09++ ?e // kind, skinke, skimme, skimte k) i (L09L11++ i // kime k) i (mning+ i // bik) i (ni ?i // @@ -4486,73 +4600,73 @@ mississ) i (ppi 'i // stressed h) imalaya ?em&l'aI& // stressed // general rule: [e] before mp - i (mp e // imperium, impuls - impromptu _^_fr // + i (mp ?e // imperium, impuls + impromptu _^_fr - fr) i (g i // frigav, frigid, frigøre - l) i (nk e // flink, link, blink - hell) ig ij // helligånd - r) ig (C i // rigdom - silent g - r) ig (ning eg // - r) igg eg // boreriggen - ig (ruppe ig // smuglerigruppe - fr) ig (jo ig // frigjorde - f) i (kCL04 i // fiktiv - f) i (ks e // fikse, fiks - f) i (kserbad i' // - f) i (kservæske i' // - f) i (kserbilled i' // - f) i (ksering i' // - f) i (ksere i' // - _f) i (k_ e // - s) i (nk++ e // sinke, sinkadus - L07) i (fte e // stifte, stifter, vifte TEST - _v) i (ft_ e // - kv) i (L07++ i // kvit, kvittere, kvik, kvikt + fr) i (g ?i // frigav, frigid, frigøre + l) i (nk ?e // flink, link, blink + hell) ig ?ij // helligånd + r) ig (C ?i // rigdom - silent g + r) ig (ning ?eg + r) igg ?eg // boreriggen + ig (ruppe ?ig // smuglerigruppe + fr) ig (jo ?ig // frigjorde + f) i (kCL04 ?i // fiktiv + f) i (ks ?e // fikse, fiks + f) i (kserbad ?i' + f) i (kservæske ?i' + f) i (kserbilled ?i' + f) i (ksering ?i' + f) i (ksere ?i' + _f) i (k_ ?e + s) i (nk++ ?e // sinke, sinkadus + L07) i (fte ?e // stifte, stifter, vifte TEST + _v) i (ft_ ?e // + kv) i (L07++ ?i // kvit, kvittere, kvik, kvikt v) i (ste+ i // afviste, viste - sk) i (Ct i // skift, beskidt - k) i (ste+ i // - v) i (L01C++ e // vikle, forvikle, afvikle, svigt - v) i (nglas++ i // - v) i (nstok i // - t) i (ka+ i // distika, Vatikanet - v) i (L01a i // vikar - v) i (L10i i // viking - v) i (ck i // Vicki, Vicky - v) i (ktL04++ i // Viktor, viktualiehandel - t) ig (+ i // stig, stige, artig + sk) i (Ct ?i // skift, beskidt + k) i (ste+ i: // long i in spite of st + v) i (L01C++ ?e // vikle, forvikle, afvikle, svigt + v) i (nglas++ ?i + v) i (nstok ?e + t) i (ka+ ?i // distika, Vatikanet + v) i (L01a ?i // vikar + v) i (L10i ?i // viking + v) i (ck ?i // Vicki, Vicky + v) i (ktL04++ ?i // Viktor, viktualiehandel + t) ig (+ ?i // stig, stige, artig _t) ight aIt // tight (English) - st) ig (ma ig // - _t) i (g_+ e // - t) i (gg+ e // tigge, tigger - pl) i (gt+ e // pligt - pl) i (L01L11+ i // komplikation + st) ig (ma ig + _t) i (g_+ e + t) i (gg+ ?e // tigge, tigger + pl) i (gt+ ?e // pligt + pl) i (L01L11+ ?i // komplikation s) i (L01L07 ?e // sigte, sigt, udsigt - l) ig (C ij // lighus - fil) ig (ran ig // - l) igi igj // relegiøs, religion - _n) i (L10 e // nikke, nik, Nick - n) i (kL04 i // nikotin - n) i (che i // + _l) ig (C ij // lighus + fil) ig (ran ?ig + l) igi ?igj // relegiøs, religion + _n) i (L10 ?e // nikke, nik, Nick + n) i (kL04 ?i // nikotin + n) i (che ?i k) ikset (_ egs@-D // f) i (nkul i // finkulturel // miscellaneous sv) i (L09C ?e // svimle, svimmel, svindle, svind, sving - sv) i (ns i // svins, svinsk (not [svensk]) + sv) i (ns ?i // svins, svinsk (not [svensk]) L02) i (p ?e // vip, svip, fipskæg -spirrev) i (p 'i // stressed +spirrev) i (p '?i // stressed sylf) i (de 'i // stressed L02) i (L06e i // pibe L02) i (L06re i // fibre - b) i (bel ?i // - C) i (mL06 e // simpel, vimpel - sl) i (m i // slimprøve - p) ibe (tøj iw // + b) i (bel ?i + C) i (mL06 ?e // simpel, vimpel + sl) i (m ?i // slimprøve + p) ibe (tøj iw p) i (p+ ?i // pipfugl b) i (p+ ?i // bipper, biperson - v) i (b+ i // vibrere + v) i (b+ ?i // vibrere C) i (mC ?e // fims, gesims, vimse, bims, dims, bimle l) i (mni+ i // limning himstreg) i (ms '?e // stressed @@ -4565,31 +4679,31 @@ himstreg) i (ms '?e // stressed kor) i (nt ?e // korinterne str) i (nt ?e // strinte s) i (dde ?e // sidde - s) i (dning e // eftersidning -læbest) i (ft e // -tegnest) i (ft e // - limst) i (ft e // -blyantsst) i (ft e // -blyantst) i (ft e // -slagst) i (ft e // -blækst) i (ft e // + s) i (dning ?e // eftersidning +læbest) i (ft ?e +tegnest) i (ft ?e + limst) i (ft ?e +blyantsst) i (ft ?e +blyantst) i (ft ?e +slagst) i (ft ?e +blækst) i (ft ?e bes) i (dde ?i // våbenbesiddelse Cr) i (ll ?e // drille, brille tr) i (ll ?i // trille -eskadr) ille 'ilj@- // -espadr) ille 'ilj@- // - kvadr) ille 'ilj@- // - _dr) i (l e // dril, drilagtig +eskadr) ille '?ilj@- // +espadr) ille '?ilj@- // + kvadr) ille '?ilj@- // + _dr) i (l ?e // dril, drilagtig L01r) i (ll ?i // kriller, grill jun) i (or j // b) i (tter ?e // b) i (tre e // m) iav jaw // miav - _rad) i (se 'i // stressed + _rad) i (se '?i // stressed tils) i (de 'i // tilsidesætte - stressed _kal) i (ber 'i // tob) i (as '?i // name - stressed - ros) i (ta 'i // name + ros) i (ta '?i // name // [e] after gr - exception gr) i (m e // grimrian @@ -4671,13 +4785,13 @@ _ventr) i (k 'i // ventrikel, ventrikler r) i (L08++ ?e // riste, frisk, brist, vrist, Kristus, dristig r) i (skage+ ?i // riskager r) i (L08L04++ ?i // aristokrat, periskop - dr) i (stig ?e // + dr) i (stig+ ?e // dumdristig r) i (stik+ ?i // karakteristik fr) i (stad ?i // fr) i (spark ?i // kr) i (sti_ ?e // Kristi genkomst - kr) i (stus ?e // - L10r) i (stin i' // Christine, Kristine + kr) i (stus+ ?e + L10r) i (stin+ ?i' // Christine, Kristine tr) i (L08++ ?i // trist pr) i (s ?i // fr) i (sted ?i // @@ -4776,9 +4890,9 @@ austral) ier =jV &) ik (k$p_alt+ ''?i // antikke, trafikken - only one k &r) ik (k$p_alt ''e // fabrikker - only one k @) ik (ant$p_alt+ ik' // praktikant, musikant - C) ik (er+ ik // mimiker, spastiker, musiker - C) ik (aner++ ik // republikaner - mus) i (k i // folkemusik + C) ik (er+ ?ik // mimiker, spastiker, musiker + C) ik (aner++ ?ik // republikaner + mus) i (k ?i // folkemusik // words with final -ti in da_list - stressed i &t) i ($p_alt+ 'i // politi, parti, profeti @@ -4789,8 +4903,8 @@ austral) ier =jV &) isme (r$p_alt 'ismV // organismer // words with final -inde in da_list - stressed i - &) inde ($p_alt 'en@- // malerinde - &) inde (r$p_alt 'enV // malerinder + &) inde ($p_alt++ '?en@- // malerinde + &) inde (r$p_alt++ '?enV // malerinder // put stress on the syllable before final 'ium' - words in da_list &) ium ($p_alt =iOm // territorium @@ -4808,7 +4922,9 @@ austral) ier =jV kalor) i (us =i // // stressed i in words with final -mi in da_list - &m) i ($p_alt 'i // økonomi, kemi - only one stress-marker because of 'kemikalier' + &m) i (_$p_alt 'i // økonomi, kemi - only one stress-marker because of 'kemikalier' + &m) i (er$p_alt 'i // økonomier + &m) i (en$p_alt 'i // økonomien &k) i ($p_alt 'i // anarki &m) i (sk$p_alt =i // stress on the previous syllable - økonomisk @@ -4847,57 +4963,58 @@ particul) ier j'e // various exceptions _) idel (_ i:D@-l // idel - israel isrA:l // Israel - israeler isrA'elV // israelsk - israelsk isrA'elsk // + israel ?isrA:l // Israel + israeler ?isrA'?elV // israelsk + israelsk ?isrA'?elsk // _d) israel (i isrA'el // name irving WveN // name - smok) i (ng e // + smok) i (ng ?e // sen) ior jV // iew j'u - _t) i (n e // tinfolie + _t) i (n ?e // tinfolie t) i (nL11 i // Tina, Tine - b) ingo engo // + b) ingo ?engo // _m) id (t ?e // midt - silent d - i (mpo e // imponerende -special) i (st i // stålspecialist - gev) i (nst e // - f) i (nte_ e // + i (mpo ?e // imponerende +special) i (st ?i // stålspecialist + gev) i (nst ?e // + f) i (nte ?e r) idge idZ // Coleridge, bridge br) idget idZit // name r) isik (e esik // risikere r) isiko isiko // risiko - gl) i (m e // glimt, glimrende - l) i (nned e // - klin) i (k i // fødeklinik - unstressed after syllable - @t) i (k_++ i // ferieromantik, finanspolitik - best) i (k++ e // bestikke - bist) i (k++ e // -knivst) i (k e // -spadest) i (k e // -myggest) i (k e // -nålest) i (k+ e // - plast) i (L10 i // plastik/c -tændst) i (k+ e // + gl) i (m ?e // glimt, glimrende + l) i (nned ?e // + klin) i (k ?i // fødeklinik - unstressed after syllable + @t) i (k_++ ?i // ferieromantik, finanspolitik + best) i (k++ ?e // bestikke + bist) i (k++ ?e + solst) i (k++ ?e +knivst) i (k ?e // +spadest) i (k ?e // +myggest) i (k ?e // +nålest) i (k+ ?e // + plast) i (L10 ?i // plastik/c +tændst) i (k+ ?e // gudhjælpem) ig =Aj // i (owa aI // US state t) i (ming aI // - n) i (tten e // the number 19 - problem with noun "nitte" - kl) i (k_ e // museklik - f) i (x e // fixe - L09) i (ks e // mikse, niks - L09) i (x e // Nixon - m) i (kstur i // - m) i (kler e // skvatmikler - p) i (lr e // pilrådden - l) i (ns e // linse - l) i (lla e // + n) i (tten ?e // the number 19 - problem with noun "nitte" + kl) i (k_ ?e // museklik + f) i (x ?e // fixe + L09) i (ks ?e // mikse, niks + L09) i (x ?e // Nixon + m) i (kstur ?i // + m) i (kler ?e // skvatmikler + p) i (lr ?e // pilrådden + l) i (ns ?e // linse + l) i (lla ?e // t) ime (out aIm // r) i (ley aI // name - s) i (d_ e // sid + s) i (d_ ?e // sid s) i (den_ ?i // siden - s) i (lk e // silke - sl) i (k e // slik + s) i (lk ?e // silke + sl) i (k ?e // slik impoten empotEn // impotens _en_st) i (l_ i // stil - noun _st) i (l_over_hende i // "der er stil over hende" @@ -5116,112 +5233,112 @@ offentl) ig i // // stressed i mussol) i (ni 'i // - _præc) i (s 'i // stressed - _konc) i (s 'i // stressed - _av) i (s 'i // stressed -_krucif) i (ks 'i // stressed - _grav) i (d 'i // stressed + _præc) i (s '?i // stressed + _konc) i (s '?i // stressed + _av) i (s '?i // stressed +_krucif) i (ks '?i // stressed + _grav) i (d '?i // stressed _test) i (kel 'i // PM stressed - _test) i (kl 'i // PM plur. stressed -_molev) i (t 'i // stressed - molevitten -_marskand) i (s 'i // stressed - marskandiser -_princ) i (p 'i // stressed - _cyl) i (nd 'e // cylinder - stressed - fil) i (st 'i // filister + _test) i (kl '?i // PM plur. stressed +_molev) i (t '?i // stressed - molevitten +_marskand) i (s '?i // stressed - marskandiser +_princ) i (p '?i // stressed + _cyl) i (nd '?e // cylinder - stressed + fil) i (st '?i // filister _el) i (te ''i // stressed - elitesoldat _salv) ie 'i: // stressed - sort) ie (_ 'i // stressed, silent e - sort) i (e 'i // stressed sortien + sort) ie (_ '?i // stressed, silent e + sort) i (e '?i // stressed sortien _ol) i (ven 'i // stressed _ol) i (via 'i // name - stressed - _int) i (m 'i // -_legit) i (m 'i // stressed -_algor) i (tme 'i // stressed - _utop) i 'i // stressed -brintover) i (lte 'i // stressed - kam) i (lle 'i // stressed - mar) i (a 'i // stressed - dom) ing (o 'eng // stressed Santa Domingo - _rem) i (s 'i // stressed - remis, remise + _int) i (m '?i // +_legit) i (m '?i // stressed +_algor) i (tme '?i // stressed + _utop) i '?i // stressed +brintover) i (lte '?i // stressed + kam) i (lle '?i // stressed + mar) i (a ?'i // stressed + dom) ing (o '?eng // stressed Santa Domingo + _rem) i (s '?i // stressed - remis, remise kampan) i (le 'i // stressed _ekspert) i (se ''i // _entrepr) i (se 'i // _mark) i (se 'i // -_muffed) i (se 'i // +_muffed) i (se '?i // _repr) i (se 'i // _astero) i (de 'i // - rem) is (_ 'i // silent s (chess) + rem) is (_ '?i // silent s (chess) _mess) i (as 'i // _mart) i (ni 'i // cocktail _alb) i (no 'i // stressed - nuskr) i (pt 'E // stressed - manuskript - L10am) i (lla 'i // Camilla, Kamilla - _alib) i 'i // alibi - _fob) i 'i // fobi -_konfl) i (kt 'i // stressed - _pap) i (r 'i // stressed - _tap) i (r 'i // stressed - _vels) i (gn 'i // stressed - _part) i (sk 'i // stressed - tah) i (ti 'i // - _just) i (ts 'i // - im) i (dlertid 'i // - _kul) i (ss 'i // kulisse - _abs) i (nt 'e // stressed - _musl) i (m 'i // stressed - _mag) i (_ 'i // magi - stressed i - _mag) i (en_ 'i // magien - stressed i -_polit) i 'i // politi, politik - stressed i - _civ) i (l 'i // stressed - civil + nuskr) i (pt '?E // stressed - manuskript + L10am) i (lla '?i // Camilla, Kamilla + _alib) i '?i // alibi + _fob) i '?i // fobi +_konfl) i (kt '?i // stressed + _pap) i (r '?i // stressed + _tap) i (r '?i // stressed + _vels) i (gn '?i // stressed + _part) i (sk '?i // stressed + tah) i (ti '?i // + _just) i (ts '?i // + im) i (dlertid '?i // + _kul) i (ss '?i // kulisse + _abs) i (nt '?e // stressed + _musl) i (m '?i // stressed + _mag) i (_ '?i // magi - stressed i + _mag) i (en_ '?i // magien - stressed i +_polit) i '?i // politi, politik - stressed i + _civ) i (l '?i // stressed - civil all) igevel 'i@-vEl // stressed i - alligevel - _band) i (t 'i // bandit + _band) i (t '?i // bandit _vedl) ige 'i@- // vedligeholde -dispon) i (bel 'i // stressed - eksig) i (bel 'i // stressed - fleks) i (bel 'i // stressed - fung) i (bel 'i // stressed - horr) i (bel 'i // stressed -irrevers) i (bel 'i // stressed -kompat) i (bel 'i // stressed - _inst) i (nkt 'e // -konvert) i (bel 'i // stressed - pen) i (bel 'i // stressed -perfekt) i (bel 'i // stressed - plaus) i (bel 'i // stressed -revers) i (bel 'i // stressed - sens) i (bel 'i // stressed -suggest) i (bel 'i // stressed - vis) i (bel 'i // stressed +dispon) i (bel '?i // stressed + eksig) i (bel '?i // stressed + fleks) i (bel '?i // stressed + fung) i (bel '?i // stressed + horr) i (bel '?i // stressed +irrevers) i (bel '?i // stressed +kompat) i (bel '?i // stressed + _inst) i (nkt '?e // +konvert) i (bel '?i // stressed + pen) i (bel '?i // stressed +perfekt) i (bel '?i // stressed + plaus) i (bel '?i // stressed +revers) i (bel '?i // stressed + sens) i (bel '?i // stressed +suggest) i (bel '?i // stressed + vis) i (bel '?i // stressed _pyram) i (d 'i // pyramide - _medl) i (denhed 'i // medlidenhed - stressed - _omkr) i (ng ''e // stressed e in 'omkring' -_tyver) i 'i // stressed - kn) i (v i // kniv - _min) i (ster 'i // minister - stressed i - _mag) i (ster 'i // magister- stressed - _re) i (ster 'i // register - stressed ii -_distr) i (kt 'e // stressed + _medl) i (denhed '?i // medlidenhed - stressed + _omkr) i (ng++ ''?e // stressed e in 'omkring' +_tyver) i '?i // stressed + kn) i (v ?i // kniv + _min) i (ster '?i // minister - stressed i + _mag) i (ster '?i // magister- stressed + _reg) i (ster '?i // register - stressed ii +_distr) i (kt '?e // stressed am) i (go 'i // amigo - magas) i 'i // magasin - _kap) i (tel 'i // stressed - _kap) i (tl 'i // kapitlet - stressed - _mask) i (n 'i // stressed - maskinskrive - asp) i (c 'i // aspic - only this word -_krokod) i (ll 'i // stressed - _sol) i (d 'i // solid - labyr) i (nt 'e // stressed - par) i (s 'i // - wal) i (s 'i // waliser -portug) i (s 'i // portugiser - kirg) i (s 'i // kirgiser - ryk) i (nd 'e // stressed - _art) i (k 'i // stressed - artikkel -_franc) i (sco 'i // -benzedr) i (n 'i // -_ekserc) i (ts 'i // - madr) i (d 'i // stressed - aspir) i (n 'i // stressed -ampicill) i (n 'i // stressed + magas) i '?i // magasin + _kap) i (tel '?i // stressed + _kap) i (tl '?i // kapitlet - stressed + _mask) i (n+ '?i // stressed - maskinskrive + asp) i (c '?i // aspic - only this word +_krokod) i (ll '?i // stressed + _sol) i (d '?i // solid + labyr) i (nt '?e // stressed + par) i (s '?i // + wal) i (s '?i // waliser +portug) i (s '?i // portugiser + kirg) i (s '?i // kirgiser + ryk) i (nd '?e // stressed + _art) i (k '?i // stressed - artikkel +_franc) i (sco '?i // +benzedr) i (n '?i // +_ekserc) i (ts '?i // + madr) i (d '?i // stressed + aspir) i (n '?i // stressed +ampicill) i (n '?i // stressed valent) i (no ''i // name _sus) ie i // name michel) in EN // Michelinguide @@ -5233,6 +5350,8 @@ michel) in EN // Michelinguide // general rule: final -ig [i] - silent g ig (_ i // dejlig, rig @) igt (_ it // dejligt + @l) ig i // tydeligvis + // exceptions ops) ig (t+ eg // opsigt pl) ig (t+ eg // tavshedspligt @@ -5243,6 +5362,7 @@ michel) in EN // Michelinguide hids) ig i smuds) ig i stad) ig i // stadigvæk +naturl) ig i // naturligvis ns) ig (t+ eg // ansigt døgen) igt ikt // puds) ig (t i // pudsigt @@ -5268,12 +5388,12 @@ skæmted) ig (t eg // l) ight aIt // m) ighty aIti // fr) igea (r igi // frigear - ig (hed+ i // vittighed, evighed - _k) ig (_ ig // kig + ig (hed+ ?i // vittighed, evighed + _k) ig (_ ?ig // kig l) ig (ram ig // milligram l) ig (a++ ig // liga, obligat - ig (s i // silent g -rigsret - n) igger egV // nigger + ig (s ?i // silent g -rigsret + n) igger ?egV // nigger // stress on previous syllable - around 400 words in da_list // -ig words with the prefix be- are handled by group b - the be- rule. @@ -5338,10 +5458,10 @@ intell) ige (n ig'?E // intelligent // words ending with "in" in da_list with $alt - stressed i @) in ($p_alt+ '?in // baldakin, bekkasin, appelsin - @) in (a$p_alt+ 'i:n // marina - &) in (ar$p_alt in' // disciplinarmiddel - &ass) in ($p_alt 'EN // bassin - &at) in ($p_alt 'EN // satin + @) in (a$p_alt+ 'in // marina + &) in (ar$p_alt ?in' // disciplinarmiddel + &ass) in ($p_alt '?EN // bassin + &at) in ($p_alt '?EN // satin &lat) in ($p_alt '?in // latin byzant) in '?in // byzantinsk vel) in (formeret en // @@ -5361,12 +5481,12 @@ byzant) in '?in // byzantinsk &) it (t$p_alt '?i // avoid double t - bakelitten [ b,ak@l'it@-n] .group iv - // stressed final -iv +// stressed final -iv _abort) iv 'iv -_adapt) iv 'iv +_adapt) iv 'iw _adhæs) iv 'iv - _ark) iv 'iv -_assert) iv 'iv // stressed s'er ? + _ark) iv 'iw +_assert) iv 'iv _decis) iv 'iv _detekt) iv 'iv _digest) iv 'iv @@ -5380,7 +5500,7 @@ _kontrast) iv 'iv _kurs) iv 'iv _lasc) iv 'iv _lokomot) iv 'iv - _mass) iv 'iv + _mass) iv 'iw _mot) iv 'iv _na) iv 'iv _perspekt) iv 'iv @@ -5396,39 +5516,39 @@ _adopt) iv 'iw fi) j (i dZ // ja (ck dZ& _) jarvis dZA:ves // name - jitterbug dZidVbVg // - jingle dZeng3l // + jitterbug dZ?id?Vb?Vg // + jingle dZ?eng3l // jewel dZu:l // - jihad dZih'&t // + jihad dZ?ih'?&t // j (ennifer dZ // name - jenny dZEni // name + jenny dZ?Eni // name janey dZEjni // name - jennie dZEni // name + jennie dZ?Eni // name joy dZVj // joystick - _) josh dZVS // name - ja (mal dZ& // name - jerry dZeri // - jekyll dZek@-l // name dr. Jekyll + _) josh dZ?VS // name + ja (mal dZ?& // name + jerry dZ?eri // + jekyll dZ?Ek@-l // name dr. Jekyll junction dZVnkS@n // jamie dZEjmi // name jerome Ser'om // name - French version jacques Zak // name - French version _) jolene dZOwl'i:n // name joule dZu:l // - jambalaya dZAmb&l'aI& // + jambalaya dZ?Amb?&l'aI& // _) jake dZEjk // name - _) jakel j&k@l // PM mester Jakel + _) jakel j?&k@l // PM mester Jakel _) jill dZIl // name j (ob dZ john dZVn - johnny dZVni // name + johnny dZ?Vni // name joe dZ0w - jackie dZ&ki // + jackie dZ?&ki // jones dZ0wns // - junkie dZVnki // + junkie dZ?Vnki // j (unk dZ // junkaktie j (unkt j // junktur, konjunktion - jo (ckey dZV // + jo (ckey dZ?V // _) ji (m_ dZI // _) ji (ms_ dZI // jimmy dZImi // @@ -5471,6 +5591,7 @@ _adopt) iv 'iw jamaica S&m'aIk& // joint dZVjnt // _) james dZEjms // + _) jameson dZEjm@-s3n jay dZEj // name jess dZEs // Jess jessie dZEsi // Jessie @@ -5605,9 +5726,9 @@ forgle) mmigej m||mAj_!Aj // forglemmigejer _gour) mand m''AN // gourment _) mannequin m&n@-k'EN // mannequin m&n@-kEN // - _) mere (_ mer // mere + _) mere (_ mer // mere - DDO: [ˈmeːʌ] matine m&tin'e // - _) meget (_ mAj@-D // meget + _) meget (_ mA:@-D // meget _) megen (_ mAj@-n // megen _) medea med'E:& // Medea montgomery mVndg'Vmri // @@ -5621,7 +5742,7 @@ forgle) mmigej m||mAj_!Aj // forglemmigejer montre mO:ntrV mayday mEjdE:j // miami maI'&mi // - milwaukee melw'Oki // + milwaukee mIlw'Oki // machete m&S'Ed // miguel _^_ES // madero _^_ES // @@ -5741,19 +5862,19 @@ _bombarde) ment m'AN // bombardement n n // words with final -ni in da_list - stressed i - &) ni ($p_alt+ 'ni // ironi - &n) ni ($p_alt+ ''i // tyranni - only one n - &) ni (sk$p_alt+ =ni // ironisk - stress on pervious syllable before sk -_harmo) nika =nik& // stressed o - biki) ni =ni // - ma) ni (o+ =ni // maniodepressiv + &) ni ($p_alt+++ 'n?i // ironi + &n) ni ($p_alt++ '?i // tyranni - only one n + &) ni (sk$p_alt+ =n?i // ironisk - stress on pervious syllable before sk +_harmo) nika =n?ik?& // stressed o + biki) ni =n?i // + ma) ni (o+ =n?i // maniodepressiv // nouns with final -ner ("er" has been removed) in da_list // stressed previous syllable &) n (er$p_alt+ =n // italiener, amerikaner &) n (sk$p_alt =n // italiensk, amerikansk &) n (istan$p_alt =n // Afghanistan -ceremo) n (i n /// not a -ner word +//ceremo) n (i n // not a -ner word // General rule: N after ko before k ko) n (k N // konkurrence, konkret @@ -5767,6 +5888,7 @@ ceremo) n (i n /// not a -ner word gra) n n // grannål 2 * n @) nien =nj@-n // Albanien, Rumænien - stress on previous syllable @) nier =njV // armenier - stress on previous syllable + @mo) nien ni@-n // kærlighedsceramonien newton nj'u:t@-n nylon naIlVn neglige negliS'e @@ -5806,6 +5928,7 @@ james_bo) nd nd // James Bond gwe) nd (a nd // name pa) nd (ora nd' // name ama) nd (a =nd // name + arla) nd (a nd // airport // hacie) nd (a nd spa) ndex ndEgs a) nd (esbj nd // Andesbjergene @@ -5887,7 +6010,7 @@ salama) nd nd // salamander ferna) nd (o =nd // name ve) ndig ndi // udvendig å) nd (eli n // åndelig - nd (ig nd // behændig + nd (ig+++ nd // behændig, bestandigt nd (yr nd // dovendyr ha) nd (el n // y) ndig ndi // @@ -6068,8 +6191,11 @@ _noget_r) o (s_ ?V // b) oogie ugi // boogie-woogie w) oogie ugi // w) oo u // Hollywood + fl) owerpower AwVpAwV + g) oethe Wt@- // name oonagh un& // name c) ochise OwS'i:s // name + h) owie ?Awi // name kl) oro (form oo shamp) oo ?o // nark) o o // narkoopgør @@ -6129,6 +6255,7 @@ _elektr) o (de 'o C) o (rr ?V // korrekt gon) o (rr o // gonnorré L06) o (t ?V // pot + L06) o (tL04 ?o // botulisme TEST sab) o (t o // sabotør tr) o (ssætning o // tr) o (ts V // trotskist @@ -6197,6 +6324,8 @@ _elektr) o (de 'o // general rule consonant + o + velars: V C) o (L01+ V // fjong, knokle C) o (L01%+ ?V // sokker jogger + gong) o (ng 'V // stressed + _kr) oket (_ ?Vk@-t // game C) o (g+ O // bogmærke, bedrog, krog, tog (verb "took", noun "train") C) o (gA+ O // toge @@ -6277,65 +6406,67 @@ melank) o (lsk 'o // wimp) ole Owl // name st) o (d_ o // L09) o (d+ o // mod - m) o (de+ o: // modefænomen + m) o (de+ o // modefænomen m) oder or // pronounced like "mor" m) oderen o3-Vn // pronounced like "moren" m) oder (@ o:DV // compunds - moderkage m) oder (ne od'Er - l) o (L03+ o // forlod, blod, efterlod + anm) oder oDV + l) o (L03+ ?o // forlod, blod, efterlod fl) o (d_ ?o // short o fl) o (den ?o // short o fl) o (der o // long o - j) o (d+ o // - j) odle Vdl@- // - jordl) o (d V // - l) o (dtræk V // lodtrækning -trukket_l) o (d V // -træk_l) o (d V // -trække_l) o (d V // -trækker_l) o (d V // -trækkes_l) o (d V // + j) o (d+ ?o // + j) odle ?Vdl@- // + jordl) o (d ?V // + l) o (dtræk ?V // lodtrækning +trukket_l) o (d ?V // +træk_l) o (d ?V // +trække_l) o (d ?V // +trækker_l) o (d ?V // +trækkes_l) o (d ?V // trak_l) o (d // - r) o (d+ o // - br) o (d+ V // + r) o (d+ ?o // + br) o (d+ ?V // _br) o (dy 0w // name br) o (der o // - forl) o (ds V // PP + forl) o (ds ?V // PP g) o (d+ o // - g) o (dt+ V // - sk) o (t V // Skotland + g) o (dt+ ?V // + g) o (tte ?V + sk) o (t ?V // Skotland sk) o (tøj ?o // g) odfather VdfADV // - b) o (d+ o // isbod + b) o (d+ ?o // isbod camb) o (dj 'o // Cambodja - b) ody Vdi // bodystocking + b) ody ?Vdi // bodystocking b) odybuilder VdibildV // bodybuilder _k) o (d+ o // kodning - sk) o (d+ V // + sk) o (d+ ?V // k) o (de++ o // sikkerhedskode, tidskode l) odret (+ VDr&#t // // general rule o + velar + front vovel: [o] - o (L01L04 o // okular - C) o (kL04+ o // kokosnød, dokument + o (L01L04 ?o // okular + C) o (kL04+ ?o // kokosnød, dokument rok) o (ko 'V // stressed - Cr) o (L01L04 O // frokost - ch) o (k+ V // - ch) o (ko+ o // chokolade - k) okon ok'VN // stressed + Cr) o (L01L04+ ?0 // frokost + ch) o (k+ ?V // + ch) o (ko+ ?o // chokolade + k) okon ok'?VN // stressed // general rule o + p/b/d + front vowel: [o] - o (L06L04+ o // topografi, utopi, opinion - o (pofre+ V // opofrelse - o (pildne+ V // + o (L06L04+ ?o // topografi, utopi, opinion + o (pofre+ ?V // opofrelse + o (pildne+ ?V // // general rule o + p/b: [V] - o (L06+ V // op, opdrage, obstruere + o (L06+ ?V // op, opdrage, obstruere o (L06%+ ?V // oppe - short -kommand) o o // kommandobroen - s) ophia of'i& // name +kommand) o ?o // kommandobroen + s) ophia ?of'i& // name o (pposit ?o // opposition - o (L06L11+ o // oktober, global, Robert, oberst + o (L06L11+ ?o // oktober, global, Robert, oberst psyk) o (+ ?o // psykogen o (pefter+ ?V // o (parbejde+ ?V // @@ -6381,6 +6512,7 @@ kommand) o o // kommandobroen Ca) o (s V // kaos Laos L08) o (f V // stof + sk) o (fab o // skofabrik kask) o o // kaskoforsikring tr) o (CL04 o // antropolog, tropisk, troperne fortr) o (lig ?o // @@ -6435,6 +6567,7 @@ rekogn) o (scere o // C) o (m V // tomhændet, kedsomhed, tomt, udenoms C) o (mL04 V // bomuld salt) o (mor o // saltomortale + r) o (mulus o // name at) o (m o // iltatom C) o (mL11 o // tomat ar) o (ma 'o // stressed @@ -6471,47 +6604,47 @@ rekogn) o (scere o // gn) o (m o // kr) o (m o // krom _l) o (s V // los - _p) o (t_ V // - fall) o (s V // - _kol) o (s 'V // kolos - stressed - kol) o (st o // kolostomi - st) o (mL04 o // stomi - kol) o (ssa o // kolossal - k) o (ntor o // - h) o (spice V // hospice - v) od (ka Vd // - o (ttawa V // - term) o (sta o // termostat + _p) o (t_ ?V // + fall) o (s ?V // + _kol) o (s '?V // kolos - stressed + kol) o (st ?o // kolostomi + st) o (mL04 ?o // stomi + kol) o (ssa ?o // kolossal + k) o (ntor ?o // + h) o (spice ?V // hospice + v) od (ka ?Vd // + o (ttawa ?V // + term) o (sta ?o // termostat r) o (st++ o // rost, skamrost, prostitueret, roste f) oged o:@-D // silent g - bank) o (sp o // bankospil - k) o (sko o // bronkoskop - kok) o (s o // kokosnød - k) o (st_ o // kost (broom) Problem with kost = food -skrap_k) o (st V // - k) o (stskole V // - k) o (stplan V // - k) o (stråd V // - k) o (stvane V // - k) o (stpris V // - k) o (sttilskud V // -hverdagsk) o (st V // -sundhedsk) o (st V // - k) o (st_og_logi V // board and lodging - k) o (stbar V // -helsek) o (st V // - frok) o (st V // - omko (st VmkV // omkostninger, leveomkostninger + bank) o (sp ?o // bankospil + k) o (sko ?o // bronkoskop + kok) o (s ?o // kokosnød + k) o (st_ ?o // kost (broom) Problem with kost = food +skrap_k) o (st ?V // + k) o (stskole ?V // + k) o (stplan ?V // + k) o (stråd ?V // + k) o (stvane ?V // + k) o (stpris ?V // + k) o (sttilskud ?V // +hverdagsk) o (st ?V // +sundhedsk) o (st ?V // + k) o (st_og_logi ?V // board and lodging + k) o (stbar ?V // +helsek) o (st ?V // + frok) o (st ?V // + omko (st ?Vmk?V // omkostninger, leveomkostninger k) otele (t Vt@-l'E // svinekotelet - boyk) o (t V // boycotte + boyk) o (t ?V V // boycotte h) o (st++ ?o // host h) o (ste++ o // hoste - fC) o (t V // flot, fjot - fC) o (tL04 o // flotille + fC) o (t ?V // flot, fjot + fC) o (tL04 ?o // flotille - o (x V // oxyd - t) o (mas_ V // - th) o (mas_ V // + o (x ?V // oxyd + t) o (mas_ ?V // + th) o (mas_ ?V // t) ow (er Au // Tower Bridge mikr) oovn oVwn // _) o' ou' // for Irish names - O'Grady @@ -6570,11 +6703,11 @@ katastr) ofer 'ofV // katastrofer lit) o (te 'o: // stressed en) or (m+ 'O: // stressed abn) or (m 'O: // stressed - def) or (m 'O: // stressed + _def) or (m 'O: // stressed klorof) or (m 'O: // stressed - konf) or (m 'O: // stressed - ref) or (m 'O: // stressed - unif) or (m 'O: // stressed + _konf) or (m 'O: // stressed + _ref) or (m 'O: // stressed + _unif) or (m 'O: // stressed _rev) o (lv '?V // stressed - revolver _kart) o (f '?V // stressed - kartofler am) o (k '?V // amok @@ -6591,13 +6724,13 @@ _horis) o (n '?V // horisont er) o (b 'o // erobre - stressed o _er) o (t 'o // erot - stressed o _pil) o (t '?o // stressed - pilot - _idi) o (t 'o: // stressed -_patri) o (t 'o: // stressed -_cypri) o (t 'o: // stressed - _matr) o (s 'o: // stressed -_metad) o (n 'o: // stressed -_batalj) o (n 'o: // stressed - ang) o (la 'o: // stressed + _idi) o (t 'o // stressed +_patri) o (t 'o // stressed +_cypri) o (t 'o // stressed + _matr) o (s 'o // stressed +_metad) o (n 'o // stressed +_batalj) o (n 'o // stressed + ang) o (la 'o // stressed pepper) o (ni 'o: // stressed _pr) ovi (ns ov'e // provins - stressed i filos) o (f_ 'V // @@ -6620,7 +6753,8 @@ _paran) oia 'Vj& // stressed c) o (ck V // cockerspaniel // terr) or Vr // terror b) or (nholm Vr // - o (tto V // + o (tto V // name + ris) o (tto '?V // stressed o (ttende V // r) o (ck V // jackp) o (t V // @@ -6632,19 +6766,22 @@ _paran) oia 'Vj& // stressed hvalr) o (s V // _) obo ob'o // org (+ O:w // sorg, morgen, Norge + org (er Ow // borger org (el Ow // orgelet org (i V:g // georgisk org (ie Vg // ge) org (ine og // - o (rga+ V // organ + or (ga+ O // organ r) or (g oR // rorgænger ov (e+ Ow // over, oven, sove s) ove (@ Ow@- // soveværelse - h) o (vere o // - ren) ov (er ov // renovering - ov (n Ow // brændeovn - ov (re Ou // derovre - C) ov (+ Ow // sjov, lov, skov, plov, provst + h) o (vere ?o // + ren) ov (er ?ov // renovering + ov (n ?Ow // brændeovn + ov (re ?Ou // derovre + C) ov (+ ?Vw // sjov, lov, skov, plov - doesn't sound right with [Ow] + C) ov (L08 ?0w // provst + C) ov (er ?Ow // sover - short o C) ov (en+ ?Ow // skoven - short O j) ov (ist ov' // jovist t) ov (ør ov // tatovør @@ -6654,6 +6791,7 @@ _paran) oia 'Vj& // stressed s) ovjet Vwj'Et // kr) o (væ o // krovært ov (erhead Ouv // overhead + over (hoved+ ?OwV // overhoved at) ov (er ov // tatovere k) ov (end ov // kovending ov (ærn+ ov // autoværn @@ -6699,7 +6837,7 @@ artisk) o (k 'V // stressed g) od (tAg oD // godtage, godtog d) o (g_+ V // dog bulld) og V:g // - v) o (g V // vogn, vogte + v) o (gt V // vogte sv) o (ger O // _v) og (_ ow // "han vog den kullede greve" C) ogn Vwn // sogn, vogn @@ -6707,51 +6845,51 @@ artisk) o (k 'V // stressed bast) ogne 'VNj@- // French gasc) ogne 'VNj@- // French rek) og (noscere V // - pr) ogn (o ogn // prognose + pr) ogn (o ?ogn // prognose col) ogn (e l'VNj // boul) ogn (e ''VNj // Bois de Boulogne - s) or =V // professor + s) or =?V // professor s) orer ''o:V // professorer, processorer - _l) o (g_ V // log - l) o (gfil V // - l) o (gbog Vg // + _l) o (g_ ?V // log + l) o (gfil ?V // + l) o (gbog ?V // l) ov (e+ o?u // love, forlover l) ov (en++ Ov // lovende ov (ers++ Ow // tilovers, overstå - kontr) ov (ers ov // kontroversiel - pl) ov (++ Vw // sneplove - l) ondon VndVn // London - bl) ond Vnd // Keep the d - blondine, blonde - bl) ond (e Vn // den blonde pige - problem with noun [blVnd3] - bl) ond (en_ Vnd // PN noun with d -_en_bl) ond (e_ Vnd // noun with d - bl) ond (er Vnd // noun with d, plur. - k) ors O:s // kors, korsage - k) or (stol o3- // + kontr) ov (ers ?ov // kontroversiel + // pl) ov (++ Vw // sneplove + l) ondon ?Vnd?Vn // London + bl) ond ?Vnd // Keep the d - blondine, blonde + bl) ond (e ?Vn // den blonde pige - problem with noun [blVnd3] + bl) ond (en_ ?Vnd // PN noun with d +_en_bl) ond (e_ ?Vnd // noun with d + bl) ond (er ?Vnd // noun with d, plur. + k) ors ?O:s // kors, korsage + k) or (stol ?o3- // et_k) orset Os'Et // k) orsett Os'Et // korsettet, korsetter c) o (rs O // corsage - k) o (gl+ O // kogle, kogleri - _d) o (n_ V // don juan - pr) o (vA+ o // provokere + k) o (gl+ ?O // kogle, kogleri + _d) o (n_ ?V // don juan + pr) o (vA+ ?o // provokere, proviant h) oved o:@-D // hoved - kn) o (tn V // knotne - tr) od (s V // silent d - trods - kl) od (s V // silent d - klods - g) od (s O // silent d - gods - tr) o (j+ V // trojka, Troja -perestr) o (jka 'V // stressed - tr) o (jan o // trojanerne - p) olish VliS // møbelpolish - tr) o (kl V // trokle - t) or (_ V // faktor, rotor - st) or (+ o3- // kæmpestor, historie + kn) o (tn ?V // knotne + tr) od (s ?V // silent d - trods + kl) od (s ?V // silent d - klods + g) od (s ?O // silent d - gods + tr) o (j+ ?V // trojka, Troja +perestr) o (jka '?V // stressed + tr) o (jan ?o // trojanerne + p) olish ?VliS // møbelpolish + tr) o (kl ?V // trokle + t) or (_ ?V // faktor, rotor + st) or (+ ?o3- // kæmpestor, historie t) or (en V // faktoren or (k++ O: // orke, morkel, stork or (kester+ O k) or (kåbe or // - _st) o (r_ o // stor - past) or V // + _st) o (r_ ?o // stor + past) or ?V // mot) or V // startmotor t) or (s O: // torsdag, torsk - long to compensate for silent r t) or (ny V // tornyster @@ -6765,10 +6903,10 @@ perestr) o (jka 'V // stressed p) or (n O: // porno p) orce Os@- // porcelæn m) oskva Vskv'& // - _im) o (d 'o // stressed + _im) o (d '?o // stressed m) ontana Vnt'&n& // - m) o (nitor V // - _C) o (_ o // jo, ko, lo, so + m) o (nitor ?V // + _C) o (_ ?o // jo, ko, lo, so f) o (d+ ?o // fodre C) oe (de o // boede, troede betr) oe (de o@- // betroede midler @@ -6777,7 +6915,7 @@ perestr) o (jka 'V // stressed t) o (gt+ V // togt t) og (tur ow // kl) og (+ Ow // klog, klogt - kn) og Vu // knogle + kn) og ?Ow // knogle t) oi (l o& // toilet repert) oire 'wA: // f) o (rL04+ o // aforisme, eufori @@ -6917,11 +7055,11 @@ noblesse_) oblige _^_fr // noblesse oblige &if) on ($p_alt '?VN // sifon &lef) on ($p_alt '?on // telefon &of) on ($p_alt '?on // grammofon - &l) on ($p_alt '?VN // bouillon, talon + &l) on ($p_alt++ '?VN // bouillon, talon, salon &æs) on ($p_alt++ '?VN // sæson bet) on ($p_alt++ '?VN // beton &j) on ($p_alt++ '?VN // medaljon - &el) on ($p_alt '?on // melon + &el) on ($p_alt++ '?on // melon &) on (el$p_alt++ on // rationel // exceptions to the -on rule (and other -on exception) @@ -7004,7 +7142,7 @@ helsingf) or (s 'V // stressed k) or (tA ?O: // korte t) or (L06 O: // torpedere or (to O: // ortodoks, ortopæd - m) orge OO@- // morgen + m) orge O?O@- // morgen dek) or (_ 'V:r // dekor rapp) or (t 'O: // rapport f) or (t_ O: // fort @@ -7022,7 +7160,7 @@ helsingf) or (s 'V // stressed st) or (t or // stort sv) or (e+ or // svoret _) or (i O // orientere, original - orien (ter Oi3n // venstreorienterede + orien (ter Oj@n // venstreorienterede _) or (a or // orange orm orm // f) or (m_ O: // form @@ -7031,8 +7169,11 @@ helsingf) or (s 'V // stressed f) or (mere V // formere _h) ormon Om'on // n) or (m O // normal - st) or (m O: // + st) or (m O // b) or (t O: // bortforklare + p) or (t Or // port + imp) or (te O: // importere + imp) or (t_ 'O // import - stressed _ab) or 'O:d // stressed or (al oR // oral _esk) or (te 'V: // eskorte @@ -7050,13 +7191,13 @@ _transp) or (t_ 'O: // stressed - transport rekt) or V // rektorforening // when "ord" means 'word', the d isn't pronunced - ord (++ or // ord , forord + ord (++ ?or // ord , forord orde (_ o:V // komme til orde // Exceptions to the or rule - "ord" doesn't mean "word" k) ord (el Vrd // kordel v) ord (e Vrd // helliget vorde dit navn h) ord (e O:d // - b) ordeaux oRd'o // + b) ordeaux ORd'o // conc) ord (e 'V:d // Concorde g) ord (on V:d // name n) ordisk ordisg // @@ -7073,7 +7214,7 @@ _transp) or (t_ 'O: // stressed - transport ord (en+ Od // orden, ordensmagt n) orden OVn // Norden - silent d b) orde (nde orE // - ord (ene+ oR // ordene + orde (ne+ ?oV // ordene, bordene ord (enen+ O:d // ordenen t) ord (enen+ ord // tordenen _t) ord (++ ord // torden, tordne @@ -7118,7 +7259,7 @@ _transp) or (t_ 'O: // stressed - transport // _f) or (mL11++ %V // formane, formaning, formene f) or (køl ?V, // s'ommerfork,ølet f) or (bund O: // skytteforbundet - _f) ore (@++ O:O // foregå, foregive, foretage + _f) ore (@++ O?O // foregå, foregive, foretage misf) or (stå ?V // exceptions to initial 'for' below - 'for' means "front/fore" @@ -7364,7 +7505,7 @@ _transp) or (t_ 'O: // stressed - transport _f) or (trins+ 'O: // fortrinsret _f) or (trop+ 'O: // fortrop _f) or (tryk+ 'O: // fortryk - _f) ort (sætte+ 'O:d // fortsætte + _f) ort (sætte+ 'Od // fortsætte _f) or (tunge+ 'O: // fortunge _f) or (tæppe+ 'O: // fortæppe _f) or (ud++ 'O: // ud, forud, forudsætte @@ -7397,7 +7538,7 @@ _transp) or (t_ 'O: // stressed - transport sym) p (tom // silent p cam) pb (el b // silent p - Campbell pipeline paIplaIn // - pitchpine peTSpA:jn // pb + pitchpine peTSpA:jn // praline pRAlin'e // punchline pVnSlaIn // parfait pAf'E // @@ -7417,19 +7558,20 @@ _transp) or (t_ 'O: // stressed - transport _) pearl (_ pW:l // Pearl Harbor pierre pjE:r // French name perkins pWkens // name - pissoir pesw'A: // + pissoir p?esw'A: // peace pi:s // Greenpeace - paille (t p&j'E // stressed - peru per'u // stressed - pasadena p&s&d'in& // + paille (t p&j'?E // stressed + peru p?er'?u // stressed + pasadena p?&s?&d'in?& // perth pW:T // pincenez pa:Nsn'e // ra) phael f&'El // name ral) ph f // name - picku (p pik'V // - peignoir pEnjw'A: // + mem) ph (is f + picku (p p?ik'?V // + peignoir p?Enjw'A: // palm (_beach pA:m // - paintball pEjntbO:l // + paintball p?EjntbO:l // jose) ph f // percy pWsi // name _) piggy pigi // Miss Piggy @@ -7470,7 +7612,7 @@ _transp) or (t_ 'O: // stressed - transport rre (_ 3-V // tørre, herre rrer (_ 3-V // tørrer, herrer rrer (ne_ 3-V // tørrerne, herrerne - A) re (_++ V // hore, store - silent r + A) re (_++ V_! // hore, store - silent r A) re (n_ 3-V // frisøren, fyren A) re (ns_ 3-V // frisørens, fyrens C) re (_ R?V // after consonant: ad the r - sejre, venstre, ældre @@ -7479,6 +7621,7 @@ _transp) or (t_ 'O: // stressed - transport C) re (ste_ R?V // tapreste æld) re RV // forældreløs dy) re RV // dyrefoder + mind) re (@ RV // mindreværdig y) re (@+ V // myretue, dyrehold A) res (_ Vs C) rer (_++ rV // beundrer @@ -7495,10 +7638,10 @@ _transp) or (t_ 'O: // stressed - transport A) rene (_ Vn@- // hærene A) rene (s_ Vn@- // hærenes æ) re (+ V // ærefrygt, kæreste - æ) re (C+ 3-V // væremåde, værelse +// æ) re (C+ 3-V // væremåde, værelse myld) re (@ V // myldretid stue) re (n RE - ad) re (@ rV // sladrehank + lad) re (@ rV // sladrehank re (tion++++ R@- // diskretion høj) re (@ rV // højresving @@ -7524,7 +7667,7 @@ sædvane) ret (++ r&#t // tale) ret (++ r&#t // veto) ret (++ r&#t // borger) ret r&#t // - ind) ret (++ r&#t // + _ind) ret (++ r&#t // regel) ret (++ r&#t // hen) ret (_ r&#t // _ord) ret (++ r&#t // ordret oversættelse @@ -7569,6 +7712,7 @@ gøre_u) ret (++ r&#t // gøre uret en_u) ret (++ r&#t // begå en uret _u) ret (_mod_++ r&#t // begå uret mod dig_u) ret (++ r&#t // har alle andre end dig uret +_ret_eller_u) ret (_++ r&#t _) rhode RWwd // Rhodes rheu (ma RVj // rheumatoid @@ -7955,7 +8099,7 @@ kompromi) s ' // stress added twostep tu:stEp // dance toastmaster tOwstm,A:stV // toastmaster _) très (_ trE // French (very) - terry teri // + _) terry teri // name e) tt (id t|t // ettiden e) tt (al t|t // ettal tt (øj t|t // ballettøjet @@ -8008,14 +8152,16 @@ world_) trade trEjd // _ar) t (_deco // silent t // final -te: D@- - te (_ d@- // smerte, hjerte + te (_ d@-_! // smerte, hjerte lyg) te (@ t@- // lygtepæl sor) te (@ d@- // sorteper + hel) te (@ d@- // heltedåd tor) t (ere t // tortere - nes) te (@ d@- // tjenestepige + enes) te (@ d@- // tjenestepige _) te (_ te // tea por) tefø (lje t@-f'?W // stressed ø + _is) te (_ te // ice tea // final -tek - stressed e _apo) tek t'ek @@ -8054,7 +8200,7 @@ _video) tek t'ek til (ligemed tel' til (lykke tel' til (overs tel' - til (pas tel' + til (pas_ tel' til (rettelægge tel' til (rettevise tel' til (rettevisning tel' @@ -8099,21 +8245,29 @@ meningi) ti (s =ti // short u followed by double consonant u (C%+ ?u // blusse L03) u (ff+ ?O // bluffe - sk) u (L02% ?O // skuffe, skubbe + sk) u (L02% ?0 // skuffe, skubbe f) u (L06% ?O // fuppede r) u (L06% ?O // siruppen - C) u (kk+ ?O // sukker, lukker - C) u (gg ?O // hugge - b) ug (gjord u: + C) u (kk+ ?0 // sukker, lukker, stukket + k) u (kk+ ?u // kukke + C) u (gg ?0 // hugge + visel) u (lle '?u + l) u (der ?u // also spelled "ludder" + +// Short u. General rules? r) u (mmy ?V // card game u (ds ?u // pludselig + br) u (d ?u // brud, bruden - short + br) u (de_ u // brude - long + + b) ug (gjord u: h) utton ?Vt@n // name b) unny ?Vni // name // General rule: l/d + u + f: O L03) u (f ?O // luft, duft - u (se u: // muse, huse + u (se u // muse, huse u (set ?u // huset - "hus" made short by ph_danish ur (gt o3- // spurgt @@ -8125,7 +8279,8 @@ meningi) ti (s =ti j) u (L01L04 u // Jugoslavien gl) u (kose y // C) u (L01L11 u // halleluja - tr) u (ktL04 u // struktur +// tr) u (ktL04 u // struktur + C) u (ktL04 u // konduktør, struktur C) u (L01e+ O // lunge t) ucker VkV // name h) u (je+ u // @@ -8164,6 +8319,7 @@ meningi) ti (s =ti f) unk (tion 0N // funktionsfejl _p) u (nk V // punker L06) u (nkt O // punkt + h) un (ge++ ?un // hunged, hungepard // general rule: [O] followed by nd u (nd+ ?O // grund, rund, underligt, undtage @@ -8198,16 +8354,18 @@ meningi) ti (s =ti // 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_! // _" = no link with next vowel + _) u (@@+P1 u_! // _" = no link with next vowel + _) ube (+ 'ube // uberørt - "be" gives the next vowel stress _) ufor '?ufV: // uforskyldt, uforfalsket, uforandret _) uud '?u|'?uD // uudforsket - _) u (lækker '?u - + _) u (lækker '?u + // exceptions - u isn't a prefix uppercut VpVkVt // _) u (nd+ ?O // underfuld, undtage _) u (ng+ ?O // ungdommelig u (gle+ u // ugle + u (ld+ u // uld u (lv+ ?u // ulvene _) ubeset (_ ubesed // _p) u (b_ ?V // @@ -8217,30 +8375,29 @@ meningi) ti (s =ti uformel ufOm'el // u (ltima ?u // ultimatum u (ltra ?u // ultraviolet - u (denfor+ u // - u (dgrundelig+ u // - u (imodståelig u // - u (surp u // usurpator - u (ni++ u // uniform, universitet + u (defra+ ?u // + u (dgrundelig+ ?u // + u (imodståelig ?u // + u (surp ?u // usurpator + u (ni++ ?u // uniform, universitet t) u (ning+ ju // t) u (ne ju // prod) u (ceren ju // _st) u (art ju // name g) u (den+ ?u // u is shorter in "guden" than in "gud" (glottal stop) u (ge++ u // ugerne, sluge - uger (+ u:V // sluger, slugere + uger (+ uV // sluger, slugere s) uge (rør u3 // silent g - _) u (r++ u // ur, urrem, uret + _) u (r++ ?u // ur, urrem, uret _) u (retfæ++P1 u: // uretfærdig - prefix - _) u (ds+ u // udsætte + _) u (ds+ ?u // udsætte et) u (de+ 'y // stressed - u (topi u // - uskyldig usg'yldi // + u (topi ?u // + uskyldig ?usg'yldi // d) u (blin V // city - st) u (kket O // - ukulele ukul'el@- // + ukulele ?uk?ul'el@- // acap) u (lco 'u // stressed - m) u (pperne V // + m) u (pperne ?V // // nouns with final -um in da_list - stress on previous syllable &) um ($p_alt =Om // jubilæum @@ -8381,6 +8538,7 @@ stand_) u (p V // stand-up-komiker vind) uer uV // vind) uet u@-D // ue (_ u:u // due, statue + d) ue (lig u@- skr) ue (C u: // skruenøgle TEST fond) ue 'y // ostefondue infl) ue (nza u'E // stressed @@ -8516,8 +8674,8 @@ mudderh) u (l O // val) u (ta 'u // stressed _der) u (d 'u // stressed - derud _instr) u (ks 'u // stressed - valp) u (rgis 'u // stressed valpurgisnat - gr) u (p u // gruppe + valp) u (rgis 'u // stressed - valpurgisnat + gr) u (pp ?u // gruppe r) u (m ?O tr) u (man u // name _st) urgis WdZis // name @@ -8580,6 +8738,7 @@ proven) u 'y v v vv v A) v (_ w // væv + A) v (s w // snøvsen TEST i) v (_ w // stativ i) v (t_ w // effektivt ra) v (C w // gravkammer @@ -8604,7 +8763,7 @@ proven) u 'y &A) v (_A v // gav ordre ti) v (A v // fiktive v (n w // jævn, levne - tvi) v (l u // + tvi) v (l w // &r) v v al) v (e v // halve el) v (C @@ -8705,6 +8864,7 @@ udeble) v w // pl) y (ss ?y // plysset h) y (ld ?y // hyldest C) y (ll ?y // gylle + L08) y (rr ?y /forstyrrelsen // short y Cl) y ?y // fly, bly TEST @@ -8713,6 +8873,9 @@ udeble) v w // l) y (d ?y l) y (de_ y l) y (den_ ?y + bet) y (d ?y // betyde + y (der ?y // skyder - short y + geb) y (r ?y // general rule: [W] before (some) velars y (nk+ W // ynk, ynkelig, klynke @@ -8722,7 +8885,7 @@ udeble) v w // l) y (kø ?W // lykønske l) y (ksalig W // l) y (n_ ?y // lyn, kuglelyn - _l) y (n ?y // lynkarriere + _l) y (n+ ?y // lynkarriere, lynkursus l) yng (limt yng // l) yng WN // sm) y (kn W // udsmykning @@ -8743,7 +8906,7 @@ udeble) v w // // general rule: consonant + y + sp/st/sk: [?y] - glottal C) y (L08+ ?y // kysk C) y (se+ y // kyse - l) y (set+ ?y // + l) y (seC+ ?y // lyset, lysekrone c) y (kel ?y // short y l) y (stgård ?W // kr) y (bb+ ?y // krybbe @@ -8831,7 +8994,7 @@ virkel) y (st W // fl) y (tn W // flytning m) y (nte 'W // mynte, pebermynte (stressed) afl) y (tt ?y // aflytning - L08) y (tt+ ?W // spyt, skyts, beskytte + L08) y (t+ ?W // spyt, skyts, beskytte sk) y (ti y // Skytien, skytisk sk) y (ter y // skyter s) yv yw // @@ -8984,9 +9147,10 @@ _stereot) y (p 'y // stressed æ E -// glottal æ followed by double consonant +// short æ followed by double consonant æ (C%+ ?E // læsse æ (CC ?E // hænder - nd=>n + æ (ble E // long E æv (de ?Ew // hævde æ (gypt E' // ærre ?E3-V // spærreballon @@ -9006,31 +9170,32 @@ _hun_l) æ (ste E: // general rule &# after r r) æ (+ &# // frækt - very broad + r) æ (CC ?&# // brænd suver) æ (n 'E // stressed - kr) æ (_ E? // - r) æ (t+ &# // åndedræt - spr) æ (C+ &# // sprængt + kr) æ (_ ?E // + r) æ (t+ ?&# // åndedræt + spr) æ (C+ ?&# // sprængt pr) æ (C+ ?E // prætendere, præsentere, prækvalificere - rør) æg Eg // - pr) æ (gn E // prægnans, prægnant + rør) æg ?Eg // + pr) æ (gn ?E // prægnans, prægnant for) æ (dle ?E // æ (ld+ ?E // forældet, ældre, forældre æ (lpe+ ?E // hjælpe - lp = double consonant? r) æ (s E // kræsen, ræsson r) æ (CL04 E // prærie, præcis - L08r) æ (C &# // skræk, skrælle, sprælle - gr) æ (s &# // græsplæne - pr) æ (st_ &# // - pr) æ (ster &# // - pr) æ (sten &# // - pr) æ (sterne &# // - pr) æ (stin &# // præstinde - pr) æ (sta E // præstation + L08r) æ (C ?&# // skræk, skrælle, sprælle + gr) æ (s ?&# // græsplæne + pr) æ (st_ ?&# // + pr) æ (ster ?&# // + pr) æ (sten ?&# // + pr) æ (sterne ?&# // + pr) æ (stin ?&# // præstinde + pr) æ (sta ?E // præstation // general rule E after tr tr) æ (+ ?E // juletræ - tr) æ (e E // træet + tr) æ (e ?E // træet tr) æg (_ Ej // tr) æg (e_ Ej // @@ -9043,14 +9208,14 @@ _hun_l) æ (ste E: r) æ (L02% ?&# // TEST r + æ + double labial - skræppe r) æ (L02t+ ?&# // TEST r + æ + labial + t - dræbt, kræft r) æ (m ?&# // fugleskræmsel - tr) æ (C+ ?&# // træværk + tr) æ (C+++ ?&# // træværk, træhest tr) æg (hed Ej // r) æ (d+ ?&# // fortræd, ræd _portr) æ (t '?&# // stressed // general rule r + æ + consonant + e: E tr) æ (Ce++ E // træne, træde - rr) æ (Cer+ &# // forræderi + rr) æ (Cer+ ?&# // forræderi dr) æ (ber E // _mor) æ (ne+ 'E // stressed _tr) æ (ben++ ?&# // træben @@ -9059,54 +9224,54 @@ _portr) æ (t '?&# // stressed r) æ (de++ &# // græde // 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 + _aram) æ (er '?E +_athen) æ (er '?E +_epikur) æ (er '?E +_europ) æ (er '?E +_faris) æ (er '?E +_galil) æ (er '?E + _hebr) æ (er '?E +_kanaan) æ (er '?E +_nasir) æ (er '?E +_nazar) æ (er '?E +_propyl) æ (er '?E +_pythagor) æ (er '?E - æld (r+ Eld // forældre, ældre - k) æld (r El // kældre + æld (r+ ?Eld // forældre, ældre + k) æld (r ?El // kældre pr) æ (k E // præke pr) ædi ED // silent i - prædiken - pr) ædi (kant Edi // - pr) æ (stere E // - spr) æ (kk &# // sprække + pr) ædi (kant ?Edi // + pr) æ (stere ?E // + spr) æ (kk ?&# // sprække sp) æ (ne E: // opposed to "spænde" with a short æ _migr) æ (ne 'E // stressed _dom) æ (ne 'E // stressed f) æ (re 'E: // affære, atmosfære, sfære - gev) ær 'E3- // gevær, geværet - besv) ær (_ 'E3- // besvær + gev) ær '?E3- // gevær, geværet + besv) ær (_ '?E3- // besvær afh) æ (ngig 'E: // stressed - _omst) æ (nd ''E // stressed - omstændighed - _pal) æ 'E // stressed -_porcel) æ (n 'E // stressed - _pygm) æ 'E // stressed - trof) æ 'E // stressed + _omst) æ (nd ''?E // stressed - omstændighed + _pal) æ '?E // stressed +_porcel) æ (n '?E // stressed + _pygm) æ '?E // stressed + trof) æ '?E // stressed _fad) æ (se 'E // stressed refr) æn '&N // stressed _font) æ (ne 'E // stressed - ortop) æ (d 'E // stressed - _iv) æ (rksæt 'E // stressed - iværksætter + ortop) æ (d '?E // stressed + _iv) æ (rksæt '?E // stressed - iværksætter _karant) æ (ne 'E // stressed _jubil) æ 'E // jubilæet galil) æ 'E // Galilæa, galilæerne t) æge E:j@- // tæge - t) æer E3- // tæer + t) æer ?E3- // tæer C) ærge E:r?u@- // sværge, færge, værge v) ærger E:r?uV // sværger ævl Eul // majest) æ (t 'E // stressed æ - ærinde ERn@- // + ærinde -n@- // svinkeærinde + ærinder -nV sj) æ (l ?E // sjæl sj) æ (leC E // sjælefred sj) æ (len ?E // sjælen, sjælens @@ -9122,42 +9287,47 @@ majest) æ (t 'E // stressed æ ø (ds ?W // ødsel, fødsel - short before 2 consonants b) ø (n ?W // bønder ø (dt ?W // mødtes + ø (ns ?W // ønske // words with short ø bel) ø (b ?W -// ø (rn ?W // ørne, børn + s) ø ?W // søfolk -_chauff) ø (r 'W // stressed in 'chauffør' - _milj) ø 'W // stressed - miljø +_chauff) ø (r '?W // stressed in 'chauffør' + _milj) ø '?W // stressed - miljø obsk) ø (n 'W: // stressed - _nev) ø 'W // stressed + _nev) ø '?W // stressed _am) ø (be 'W // stressed - h) ø (j V - ø (je W# // øje + h) ø (j ?V + ø (je V // øje øre W?V // snørebånd, gøren ører (n W?V // ørerne ører (_ W?V // kører i) øre (faldende 'WV // stressed s) øre (dni WrE // søredningstjeneste - øjer W#jV // bøjer - ø (jn W# // øjne - l) øg 'Vj // løgn, løg + øjer Vj?V // bøjer + ø (jn ?V // øjne + l) øg '?Vj // løgn, løg kl) øg (t ?Wg // kløgtig - gl) øgg Wg // gløgg - g) øg (l Vj // gøgler - l) ø (s W - C) ø (j+ V // søjle, bøjle, sprøjte - _hall) ø (j 'W# // stressed - burg) ø (js 'W# // burgøjser, burgøjsisk - stressed -oberstl) ø (jtnant 'W# // stressed + kl) ø (e_ W: + gl) øgg ?Wg // gløgg + g) øg (l ?Vj // gøgler + l) ø (s ?W + C) ø (j ?V // fløj TEST +// C) ø (jC+ ?V // søjle, bøjle, sprøjte +// t) ø (j ?V +// fl) ø (j ?V + _hall) ø (j '?V // stressed + burg) ø (js '?V // burgøjser, burgøjsisk - stressed +oberstl) ø (jtnant '?V // stressed L09) ø (g+ V // m => L09 (m + n) - møg, smøg, nøgen - n) øg (tern Wg // + n) øg (tern ?Wg // sm) øg (_sig Wj // "katten smøg sig om benet" _n) ø (d@ 'W // nød- stressed - nødsituation - _n) ødt (_ Wd // nødt - r) ø (d+ W // brød + _n) ødt (_ ?WD // nødt + r) ø (d+ ?W // brød fr) ø (+ ?W // frø, frøer - short even if followed by [V] - r) ø (L09 W# // grøn, strøm + r) ø (L09 ?W# // grøn, strøm r) ø (L09e W // skrøne dr) ø (n ?W // drøn dr) ø (ne W // drøne @@ -9166,14 +9336,15 @@ oberstl) ø (jtnant 'W# // stressed d) ø (den ?W // døden r) ø (mer ?W // strømere L08) ø (ge W // skøge - sp) øg (en Vj // - sp) øg (_ Vj // spøg = joke + sp) øg (en ?Vj // + sp) øg (_ ?Vj // spøg = joke s) ø (g ?W // søgte - sp) ørg Wr // spørg + s) øg (_ ?Wj // forsøg + sp) ørg ?Wr // spørg sp) ørge W3-V sp) ørger (_ W3- // sp) ør (gs Wr // spørgsmål - r) ø (g+ ?W# // røg + r) øg ?W#j // røg, strøg r) ø (gte W // misrøgte r) ø (gelse W // for) ø (g W // forøge @@ -9184,13 +9355,15 @@ oberstl) ø (jtnant 'W# // stressed bedr) ø (v W // bedrøvede r) ø (ver W: // røver r) ø (veri W // røveri - narr) ø (v W# // narrøve -bonder) ø (v W# // bonderøve + narr) ø (v ?W# // narrøve +bonder) ø (v ?W# // bonderøve +hænger) ø (v ?W# pr) ø (v ?W // short pr) ø (vA W // _r) ø (ven ?W# // dr) ø (vet W // bedrøvet k) ød ?WD // skød, kød + sk) ø (de W _) øg (_ ?Wj // 'øg' noun and verb d) øg (n Vj øj+ V:j // changet from [Oj] @@ -9202,14 +9375,14 @@ bonder) ø (v W# // bonderøve .group øs // (mostley French -eux/-euse) adjectives ending with -øs in da_list - stressed ø - &) øs ($p_alt 'W:s // dubiøs + &) øs ($p_alt 'Ws // dubiøs .group ør // (mostley French -eur) nouns ending with -ør - stressed ø - around 150 words &) ør ($p_alt ''?W3- // hønnør, frisør &) ør (er$p_alt ''?W3- // sympatisører &g) ør ($p_alt ''W:3- // vigør - &) ør (en$p_alt ''?WV // hønnøren, frisøren + &) ør (en$p_alt ''?W // hønnøren, frisøren .group å å O // changed from O:? @@ -9219,14 +9392,14 @@ bonder) ø (v W# // bonderøve å (Ce O // måned år (@ O: // dårlig, årsag @) år (_ ?O: // skatteår - _) år (_ O: // år + _) år (_ O // år C) år (_ ?O: // sår, kår, skår, får år (s O: // årstid s) år (C O: // sårbar - åre O:?O // Pb åre, årelang, båre, båren - året O:?OD // året, håret + åre O:?O // åre, årelang, båre, båren + året O?OD // året, håret n) å (et ?O // short glottal o - @n) å (et O // opnået + @n) å (et ?O // opnået // Short o v) å (gn ?0 // vågne diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 309996bf..d6e9d2e9 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -36,33 +36,6 @@ Q r R R2 s S t T t# tS w x -Dictionary te_dict 2013-03-31 - -a a: aI aU e E e: i -i: l- o o: r- u u: - -#X1 #X2 : ; b b# c c# -d d# d. d.# dZ f g g# -h j J J# k k# l l. -m n N n. n^ p p# r -s s. S; t t# t. t.# tS -v v# w z - - -Dictionary pt_dict 2013-04-10 - -& &/ &U~ &~ @ @- a A -aI aU e E eI EI eU EU -i I i/ iU i~ o O oI -OI o~ u U uI u~ y - -* : ; b c C d dZ -f g h j k l l^ m -n N n^ p Q r R r- -s S s# s; t T tS ts -v w x z Z - - Dictionary bg_dict 2013-03-16 @ a e i o u @@ -125,7 +98,7 @@ p r s S t T v w x z -Dictionary da_dict 2013-03-31 +Dictionary da_dict 2013-04-12 & &# 0 3 ?& ?&# ?0 ?A ?e ?E ?i ?o ?O ?u ?V ?W @@ -164,7 +137,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-04-10 +Dictionary en_dict 2013-04-15 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -303,7 +276,7 @@ q r r. s S s. t T t# t. t.# v w x z -Dictionary hu_dict 2013-04-10 +Dictionary hu_dict 2013-04-15 a A a: e E e: i i: o o: u u: Y y y: Y: @@ -491,6 +464,17 @@ r R r. R2 s s. S; t t# t. t.# tS v w z +Dictionary ms_dict 2010-10-14 + +@ a aI aU e E E2 eI +i o O u + +* : ? b c d dZ f +g h j k l m n N +n^ p r R R2 s S t +tS v w x z + + Dictionary nci_dict 2010-01-20 a e i o O @@ -516,7 +500,7 @@ r r. s S s. t t# t. t.# v w x z -Dictionary nl_dict 2013-03-29 +Dictionary nl_dict 2013-04-12 8 @ @- a A a: A~ e E e# E2 e: EI eU i I @@ -578,6 +562,20 @@ S s; S; t t; tS ts tS; ts; v w x z Z Z; +Dictionary pt_dict 2013-04-15 + +& &/ &U~ &~ @ @- a A +aI aU e E eI EI eU EU +i I i/ iU i~ o O oI +OI o~ u U uI u~ y + +* : ; b C d dZ f +g h j k l l^ m n +N n^ p Q r R r- s +S s# s; t T tS ts v +w x z Z + + Dictionary ro_dict 2013-03-04 @ @- @I @U a aI aU e @@ -690,6 +688,19 @@ Q r R s S s. t T t# t. tS v w z z. +Dictionary te_dict 2013-03-31 + +a a: aI aU e E e: i +i: l- o o: r- u u: + +#X1 #X2 : ; b b# c c# +d d# d. d.# dZ f g g# +h j J J# k k# l l. +m n N n. n^ p p# r +s s. S; t t# t. t.# tS +v v# w z + + Dictionary tr_dict 2011-09-16 @ a e E i I o O @@ -752,14 +763,3 @@ oi ong ou u ui yu b c d f g h j k l m n N p r s t tS v w z - - -Dictionary ms_dict 2010-10-14 - -@ a aI aU e E E2 eI -i o O u - -* : ? b c d dZ f -g h j k l m n N -n^ p r R R2 s S t -tS v w x z diff --git a/dictsource/en_list b/dictsource/en_list index cbfa271f..90ceeac7 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -16,9 +16,10 @@ // ?7 Scottish // ?8 Use full vowel, not schwa in some word endings -// $alt1 use strong ending (-table, -inal, -ier) -// $alt2 use weak ending +// $alt1 use strong ending (-an, -table, -inal, -ier) +// $alt2 use weak ending (ate, ery, ess, ile, men) // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] +// $alt4 separate 'h', not 'th' // $alt6 'to' @@ -570,6 +571,7 @@ inlb $abbrev ios $abbrev irc $abbrev irs $abbrev +isbn $abbrev itx $abbrev (km ²) skw,e@kIl'0mIt3z lapd $abbrev @@ -731,7 +733,7 @@ agog a#g0g agressive a#grEsIv // misspell aground a#graUnd ague eIgju: -aha A:hA: +aha A:h'A: ahem a#h'Em ahoy a#hOI airbus e@bVs @@ -793,7 +795,6 @@ anemometer anIm'0mI2t3 anew a#nju: ?3 anew a#nu: anime anImeI -anion aneI@n anise anIs anniversary anIv'3:s@ri anon a#n0n @@ -1156,6 +1157,7 @@ closely kloUslI $verbf // not kloUzlI closet kl0zI2t cloth kloUD $verb c'mon k@m0n +coathanger $alt4 coauthor koU'O:T3 coaxial koU'aksI@l cobol koUb0l @@ -1610,6 +1612,7 @@ fricassee frIka#seI frigate frIg@t fringer frIndZ3 // infringer fringing frIndZIN +frisson fri:s'O~ frontend fr'Vnt,End frontier frVnti@3 ?3 frontier frVnt'i@3 @@ -1659,6 +1662,7 @@ gimme gImi giraffe dZI2raaf github gIthVb glacier gleIS3 +?3 goddess $alt2 goin ,goUI2n $only // for goin' gonna g,@n@ goodbye $2 @@ -1680,6 +1684,7 @@ griffon grIf@n grosvenor groUv@n3 groupie gru:pi guacamole gwA:ka#m'oUli: +guarantee $3 gucci gu:tSi gui gu:i $onlys guinea gIni @@ -2083,7 +2088,7 @@ mixer mIks3 moccasin m0k@sI#n mocha moUk@ modem moUdEm -?3 modem moUd@m +?3 modem moUd@m moderate m0d@reIt $verb mogul moUg@L moi mwA: @@ -2166,10 +2171,11 @@ nothing nVTIN notwithstanding $3 noway noUweI nowhere noUwe@ -?3 nuance nu:0ns +?3 nuance nu:0ns oases oU'eIsi:z oasis oU'eIsI2s +obdurate $alt2 obelisk 0b@lI2sk obesity oUb'i:s@ti obey oUb'eI @@ -2392,6 +2398,7 @@ pretext pri:t2Ekst pretrial pri:tr'aI|@L pretty prIti pretzel prEts@L +?3 priestess $alt2 primeval praIm'i:v@L pristine $2 ?3 privacy praIv@si @@ -2457,6 +2464,7 @@ radish radIS ragged ragI#d raiment reIm@nt rainforest r'eInf,0rI2st +(raison d'être) reIz0n||d'Etr@- rajah rA:dZA: rapier reIpi@3 rapport rap'o@ @@ -2534,6 +2542,7 @@ rendevous r0ndI2vu: rendezvous r0ndI2vu: renegade rEn@geId reo ri:oU +repartee rEpA@t'eI repel rI2pEl replay ri:pleI reply rI2plaI // for replied @@ -2843,9 +2852,7 @@ telephon tElI2foUn // for telephoning temperature tEmprI2tS3 ?!3 temporary tEmpr@rI ?3 template tEmpl@t -thereof ,De@'0v -thereon ,De@'0n -thereto ,De@'tu: +therefore $1 thermos T3:m@s thermostable $alt1 thesis Ti:sIs @@ -3247,6 +3254,7 @@ Hawaiian h@w'aI@n Hebrew hi:bru: Hebrides hEbr@di:z Honduras h0nd'jU@r@s +Honolulu $3 Houston hju:st@n Idaho $1 Illinois Il@n'OI @@ -3545,6 +3553,7 @@ Duane dweIn Duncan dVnk@n Dvina d@vi:n@ Dylan dIl@n +Ebenezar Eb@n'i:z3 Edith i:dIT Eduardo Edw'A@doU Elijah I2laIdZ@ @@ -3725,6 +3734,7 @@ Samantha sa#manT@ (Santa claus) s'ant@||kl'O:z Saoirse si@S@ Sarah se@r@ +Sarisa $alt3 Seamus SeIm@s Sean SO:n Sebastian $alt3 @@ -3794,6 +3804,7 @@ Folger foUldZ3 Genghis dZENgIs Gibson gIbs@n Guinness gInIs +Gutierrez gu:tj'ErEz Hades heIdi:z Hamilton ham@Lt@n Hoosier hu:Z3 @@ -4244,6 +4255,7 @@ that Dat $u $nounf $strend2 $verbsf these Di:z $u $nounf $strend2 $only those DoUz $u $nounf $strend2 $only there De@ $u $strend2 $only +there've De@v $u (there are) D%e@,A@ $strend (there be) De@b'i: (there were) D%e@,w3: $strend diff --git a/dictsource/en_rules b/dictsource/en_rules index 7a925456..e1a25add 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -247,7 +247,7 @@ b) ab (y eIb b) ab (yl ab &) able (_S4iev @b@L // suffix - &) able (_$w_alt eIb@L + &) able (_$w_alt1 eIb@L &c) able (_ @b@L @ct) able (_ =@b@L &) ability (S7iev @b'IlI2t%i // suffix @@ -526,6 +526,7 @@ k) alei (d @laI _v) alen (t al@n aleph alEf + _op) al (es @l _) alexan alIgz'aan _) alfa alf@ _) al (g al @@ -757,8 +758,8 @@ hum) an (_ @n &) an (ty_ @n &) an (t_ @n - &) an (t_$w_alt an -?3 &) an (t_$w_alt A:n + &) an (t_$w_alt1 an +?3 &) an (t_$w_alt1 A:n ?8 &) an (t_ a#n _f) an (at a#n pl) an (t_ an @@ -785,6 +786,8 @@ &) an (ese @n _) ane (s anI an (gul 'an + _) ani anI + _) ani (on anaI &) ani (_ 'A:nI an (ia 'eIn ania (c_ 'eInIa @@ -1019,6 +1022,7 @@ _w) ar (d O@ sw) ar (d O@ chw) ar (d O@ + &) arye (_ 3ri .group as _) as (@ a#s @@ -1227,11 +1231,10 @@ av (eng a#v _) av (erC a#v av (oA a#v - d) av (en av d) av (id eIv j) av (a A:v j) av (el av - l) av (en av + _B) av (en av al) av (er 'A:v sc) av (en av _) avi (A eIvI @@ -2487,6 +2490,7 @@ err (_N e@ .group es + ess (_$w_alt2 @s &) es (_S1i z &es) es (_ i:z ese (_ i:z @@ -2653,6 +2657,8 @@ ex (erc Eks _) ex (A %Egz _) exh %Egz + _) ex (hal %Eks + _) exh (ibiti %Eks ?3 _) exhu %Egzu: _) ex (it Egz exor (c Eks3 @@ -3044,7 +3050,7 @@ &n) iel (_ j@L &r) iel (_ =i:@L ie (n i@ - &) ie (n_ =i@n + &) ie (n_ =i@ d) iene (_ 'aIi:n ie (ntal I'E g) ie (n i: @@ -3328,7 +3334,7 @@ adm) ini InI m) iniatur InItS3 m) inera (l In@r@ - in (al_$w_alt 'aIn + in (al_$w_alt1 'aIn &m) in (al_ =In f) in (a aIn @g) in (a_ aIn @@ -4176,6 +4182,7 @@ olt oUlt w) olv Ulv N_p) oly ,0lI + _) ol (ym @l .group om &) om (_ @m @@ -5105,6 +5112,7 @@ m) s (i z a) s (el_ z m) s (y z + n) s (y_ z a) s (e s pha) s (e z la) s (e z @@ -5280,6 +5288,7 @@ _) t (sY t _) t (wY t _) tz (ar ts + t (h$w_alt4 t tch tS _) tele tElI2 @@ -5308,6 +5317,7 @@ tse (_ tsi _) tsk t'@sk _) tsu tsu: + tt (i_ =t _) two tu: ttu (r t@ tz ts @@ -5361,6 +5371,7 @@ ear) th (y T _) there De@ _) them D%Em + _) there (@ D%e@ _) the (mA Ti: .group ti @@ -5382,7 +5393,8 @@ &s) tion tS@n ?8 &) tion S=Vn ?8 &s) tion tSVn - tion (al S=@-n + tion (al_ S=@-n + tion (al S@-n &) tious S=@s AC) tive (_ =tIv diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 570ce58b..7aca3046 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -609,7 +609,7 @@ arcüre) g (gyulladás g orszá) g (gyarapod g anya) g (gyár g anya) g (gyűjt g - végi) g (gya g + végi) g (gy g me) ggy (mag J me) ggy (íz J: bádo) g (gy g @@ -624,7 +624,7 @@ imádsá) g (gyűjt g ro) ggyj (ék J: rá) g (gyűjt g //for example virággyűjtés, virággyűjteményt words _lo) g (gyűjt g //for example loggyűjtemény word - dro) g (gyanú g + dro) g (gy g le) gg (roteszk g: _agya) g (gy g anya) g (győz g @@ -649,6 +649,9 @@ csilla) g (gy g hazugsá) g (gy g tőze) g (gy g doppin) g (gy g +baromsá) g (gy g +tehetsé) g (gy g + bete) g (gy g .group gy gy J @@ -828,6 +831,7 @@ progressz) í (ve i: sz) í (veré i: sz) í (verő i: sz) í (vevő i: +expressz) í (v i: .group j j j @@ -1041,6 +1045,7 @@ teljesítmé) ny (j n^ nem-lts n'Em||_!'Ellt,e:,ES //without this rule Espeak spokening the nem LTS text with one word, because general in hu_list have a $combine attribute the nem word. n'Em _!'Ellt,e:,ES +porcelá) n (ny n .group o o o @@ -1203,7 +1208,7 @@ juventu) ss s: juventu) ssz s: //a radio station name farka) ssz (em Ss villamo) ssz (ék Ss - titko) ssz (olgál Ss + titko) ssz (olg Ss karo) ssz (ék Ss hú) ssz (elet Ss vörö) ssz (em Ss @@ -1722,6 +1727,29 @@ visszaélé) ssz Ss esé) ssz (erű Ss webe) ssz Ss beleve) ssz (en s: +tengeré) ssz (ürk s: +hirdeté) ssz S|s + _ki) ssz (éri S|s + _ki) ssz (ersz S|s + _fűté) ssz S|s +_kontaktu) ssz S|s + _dió) ssz (ilá S|s +_konszenzu) ssz S|s + forgá) ssz (er S|s +mérkőzé) ssz S|s +művelődé) ssz S|s +_nyomá) ssz (in S|s + _oko) ssz S|s +oktatá) ssz (er S|s +pszichózi) ssz S|s +realitá) ssz S|s +szerződé) ssz S|s +születé) ssz (ám S|s + tölté) ssz (ak S|s + utazá) ssz (er S|s +zsarolá) ssz (er S|s + dőlé) ssz (ab S|s + .group sz diff --git a/dictsource/nl_list b/dictsource/nl_list index 1a0f4cea..bc53e93a 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -687,6 +687,7 @@ wapper $alt water $alt wedijver $alt wegwijzer $alt +weiger $alt wester $alt wijder $alt wilder $alt @@ -1484,6 +1485,7 @@ informatie $3 invasie $2 januari $3 kadaster $2 +leesregel le:sre:Q@l mangat $alt3 materie ma:t'e:ri maatregel ma:tre:Q@l $alt2 @@ -1548,6 +1550,7 @@ spektakel $2 tegennatuur $4 travestie $3 verderop $3 +vergezicht vErQ@zIxt verre vEr@ verrekijker vEr@kEIk@r verste vErst@ diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 4035a054..76eb12bb 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -29,6 +29,7 @@ @) abel (_ 'a:b@l @) abele (_ 'a:b@l@ m) ach (in %a:S + _) actie (@P5 'Aksi _) af (C@P2 'Af _) affich %AfiS age (_ 'a:Z@ @@ -64,11 +65,16 @@ baan ba:n &) baar (_S4 =ba:r &) bare (_S4 =ba:r@ + _) bedrijfs (@P8 b@dr'EIfs + _) belasting (@P9 b@l'AstIN + _) beleids (@P7 b@l'EIts _) bij (C@P3 b'EI bij (zond b%i _) bijeen bEI'e:n _) binnen (P6 b'In@n + _) boek (@P4 b'uk _) boven (P5 b'o:v@n + _) braille (@P7 br'Aj@ _) brand br'And _) buiten (P6 b'Wyt@n _) buurt (@@P5 b'yrt // buurtbewoner @@ -116,6 +122,7 @@ ck k coach ko:tS + _) computer (@P8 kOmpj'ut@r _) congres kOnQr'Es co (ncert k%O @@ -345,6 +352,8 @@ _) gelijk Q@lEIk _) ge (lC QE _) ge (rC QE + _) ge (lenL02 Qe: + _) ge (tenL02 Qe: _) geu QY: _) ge (ven Qe: _) ge (ver Qe: @@ -365,6 +374,7 @@ _) herinn h%ErIn // herinneren _) hersen h'Ers@n &) heid (_S4 hEIt + _) honden (@P6 h'Ond@n _) hulp (@@P4 h'8lp @@ -451,6 +461,9 @@ _) inn (@P2 'I // ?? inneren k) k _) kale (nde ka:l'E + _) kantoor (@P7 kAnt'o:r + _) keuze (@P5 k'Y:z@ + _) kinder (@P6 k'Ind@r kokkerel kOk@r'El _) koning k'o:nIN // in compounds _) koningin ko:nIQ'In @@ -467,8 +480,10 @@ _) inn (@P2 'I // ?? inneren &) lijkheid (_S8 l@khEIt &) lijkst (_S6 l@kst &) lijkste (_S7 l@kst@ + &) laan (_S4 la:n _) lange (@P5 laN@ + _) liefdes (@P7 l'ifd@s @) loog (_ lo:x @) loos (_S4 lo:s @) loze (_S4 lo:z@ @@ -571,6 +586,7 @@ _) inn (@P2 'I // ?? inneren tr) ou (vail u ouve (rtu uvE _) over (@P4 ,o:v@r + _) overheid 'o:v@rhEIt t) ou (r u: @@ -641,6 +657,7 @@ _) inn (@P2 'I // ?? inneren _) re (clam r@ _) re (serve_ r@ _) re (cord re' + _) regering r@Q'I:rIN repre (saill re:pre: @@ -677,7 +694,9 @@ _) inn (@P2 'I // ?? inneren @) ssi (o S CAr) sie (_ =zi + _) stads (@P5 st'Ats _) standaard (@P9 st'Anda:rt + _) start (@P5 st'Art @) straat (_S6 stra:t _vre) s (e s @@ -767,8 +786,9 @@ _) inn (@P2 'I // ?? inneren _) ver (@P3 v@r _) ver (sie_ vEr _) verder vErd@r - _) verge (@P5 vErg@ - _) verge (le v@rQ'e: + _) verkeers (@P8 v@rk'I:rs +// _) verge (@P5 vErg@ +// _) verge (le v@rQ'e: _) voort (@P5 v'O:rt @@ -788,6 +808,8 @@ _) inn (@P2 'I // ?? inneren _) wanstaltig v#Anst'Alt@Q _) wantrouwig v#Antr'VU@Q _) wanvoeglijk v#Anv'uxl@k + _) water (@P5 v#'a:t@r + _) weers (@P5 v#'I:rs _) weg (@P3 v#'EQ _) weg (en v#e:Q _) weg (e_ v#e:Q // bewegelijk diff --git a/dictsource/pt_list b/dictsource/pt_list index bd51150c..f7eb1cd7 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -23,8 +23,8 @@ // accent names _lig ligad'u*& -_acu &g'udU -_ac2 &g'udUd'uplU +_acu ag'udU +_ac2 ag'udUd'uplU _brv bR'Evi _ced sedZ'ilj& ?1 _ced syd'il^& @@ -301,6 +301,9 @@ mrs $dot prof pR'Of $dot profº pR,ofes'or profª pR,ofes'o*& +engº eInZen^'eI*U +engª eInZen^'eI*& +nº n'u~me*U sr $dot ?1 sra ,Es;'Errj'a $dot ?2 sra $dot @@ -639,6 +642,7 @@ abordo $alt aborto $alt $verb acerto $alt2 $noun acertos $alt2 +acocho $alt2 $noun acordo $alt $verb acervo $alt2 adepto $alt @@ -665,13 +669,13 @@ apneia $alt apoio $alt $verb arredores $alt arremesso $alt2 $noun +arrocho $alt2 $noun arroto $alt2 $noun arroz $alt2 assembleia $alt ateia $alt aterro $alt2 aterro $alt $verb -atmosfera $alt autora $alt2 avesso $alt2 axé aSE @@ -707,6 +711,7 @@ caderneta $alt2 cadete $alt2 cãibra k'&~IbR& caibro k'aIbRU +caixeta $alt2 camelha $alt camelo $alt2 camiseta $alt2 @@ -731,7 +736,8 @@ cerca $alt2 $noun cerco $alt $verb cerda $alt cetro $alt -chamego $alt2 +chamego $alt2 $verb +chaveta $alt2 chefe $alt checam $alt choro $alt2 $noun @@ -739,10 +745,10 @@ chovesse $alt2 chupeta $alt2 clamores $alt2 clero $alt +coche $alt2 coco $alt2 cofre $alt coice $alt2 -colabore $alt colete $alt2 colchete $alt2 colher $alt $noun @@ -765,6 +771,8 @@ coreia $alt coreto $alt2 corneta $alt2 cornos $alt +coro $alt2 +coro $alt $verb corpos $alt corto $alt corveta $alt2 @@ -773,8 +781,10 @@ coto $alt2 cotovelo $alt2 cratera $alt crede $alt2 +credo $alt crepe $alt decore $alt +decoro $alt2 $noun degelo $alt2 desapego $alt2 $noun descordo $alt @@ -815,6 +825,8 @@ engordo $alt enredo $alt $verb enrosco $alt $verb enterro $alt2 $noun +entorto $alt +entroso $alt envelope $alt envolto $alt2 enxaqueca $alt2 @@ -825,10 +837,10 @@ erro $alt2 erro $alt $verb esboço $alt $verb escopeta $alt2 +escore $alt escova $alt2 escova $alt $verb escovo $alt -escroto $alt2 esforço $alt $verb esforços $alt esgoto $alt2 @@ -840,17 +852,19 @@ espoleta $alt2 esposa $alt2 esqueleto $alt2 estilete $alt2 -estrela $alt2 -estrofe $alt estorno $alt $verb estorvo $alt $verb +estrela $alt2 +estrofe $alt +estrogonofe $alt +eta $alt2 etiqueta $alt2 europa $alt europeia $alt exagero $alt $verb explore $alt faceta $alt2 -fantoche $alt +falangeta $alt2 farofa $alt farolete $alt2 febre $alt @@ -860,6 +874,7 @@ fezes $alt filete $alt2 ?1 fixe fiSy foda $alt2 $verb +fodo $alt2 fogos $alt foguete $alt2 foice $alt2 @@ -875,6 +890,8 @@ forro $alt $verb frevo $alt2 fulgores $alt2 galera $alt +galeto $alt2 +galhofa $alt galileia $alt gangorra $alt2 geleia $alt @@ -882,20 +899,22 @@ gelo $alt2 gelo $alt $verb genebra $alt gesso $alt2 -golpe $alt +gloso $alt gonorreia $alt +gol gow +golpe $alt gorda $alt2 gorjeta $alt2 gosto $alt $verb gota $alt2 -governo $alt2 +governo $alt2 governo $alt $verb gozo $alt2 $noun graveto $alt2 grelha $alt groselha $alt grosso $alt2 -grozo $alt $verb +groso $alt gueto $alt2 hemorroida $alt hoje $alt2 @@ -905,6 +924,8 @@ ideia $alt imberbe $alt interesse $alt2 interesse $alt $verb +iodo $alt2 +ioga $alt jogo $alt2 jogo $alt $verb jogos $alt @@ -916,13 +937,16 @@ leitora $alt2 lembrete $alt2 lepra $alt leste $alt2 $verb -?2 lhe ly +?2 lhe l^y lingueta $alt2 +lodo $alt2 +logro $alt lopes $alt macete $alt2 maior $alt maleta $alt2 maniçoba $alt +marieta $alt2 marreta $alt2 megera $alt melhor $alt @@ -958,7 +982,6 @@ nervo $alt2 nojo $alt2 novelo $alt2 novos $alt -obstetra $alt odisseia $alt onu $1 olho $alt2 $noun @@ -997,6 +1020,7 @@ plebeia $alt polca $alt pompeia $alt porcos $alt +porque $alt2 porra $alt2 porrete $alt2 porto $alt2 @@ -1006,11 +1030,13 @@ povos $alt poxa p'oS& primavera $alt primores $alt2 +proso $alt prosopopeia $alt quarteto $alt2 queda $alt quede $alt2 quinteto $alt2 +ramalhete $alt2 raposa $alt2 recomeço $alt $verb recordo $alt @@ -1024,21 +1050,22 @@ refresco $alt $verb rego $alt2 $noun reitora $alt2 relevo $alt2 $noun -remoem $alt +remoem $alt remorso $alt renovo $alt $verb retorno $alt $verb reuva x'EUv& rigores $alt2 -rocha $alt rock $alt roem $alt rola $alt2 $noun rolo $alt2 $noun rota $alt2 rota $alt $noun +rubores $alt2 rumores $alt2 -sabonete $alt2 +sabonete $alt2 +sabores $alt2 saibro s'aIbRU saleta $alt2 sarjeta $alt2 @@ -1067,14 +1094,13 @@ sufocos $alt2 super s'Uper suporto $alt suor swOr +sutiã sutSi'&~N tapete $alt2 temores $alt2 tempero $alt2 $noun tenores $alt2 terrores $alt2 teta $alt2 -tetra $alt -tocha $alt toga $alt topo $alt $verb torno $alt $verb @@ -1083,6 +1109,8 @@ torre $alt2 $noun torres $alt2 torro $alt tortos $alt +toso $alt +transtorno $alt $verb traqueia $alt travesso $alt2 tremores $alt2 @@ -1100,6 +1128,7 @@ violeta $alt2 violoncelo $alt voga $alt xarope $alt +xereta $alt2 zelo $alt2 $noun zorra $alt2 @@ -1110,6 +1139,8 @@ zorra $alt2 ?1 back b'Ek ?2 backup bEk'&p ?2 backups bEk'&ps +beatle b'itow +beatles b'itows blind bl'aind book buk ?1 braille b:r'aily @@ -1157,11 +1188,11 @@ drivers dR'aIveRs laptop lEptOp ?1 line l'ain layout l'eI,aUt -?2 logo l'OgU +?2 logo l'OgU ?1 lock l'Ok mail m'eIl - mails m'eIls -?2 mouse m'aUzi + mails m'eIls +?2 mouse m'aUzi ?1 menu menu ?1 next n'Ekst ok Ok'eI @@ -1181,6 +1212,7 @@ shake S'eIk ?1 scroll sk:r'ol ?1 site s'aIt ?2 site s'aItSi +?2 shampoo S&mpu ?1 software s'Oft,w'Er- símbolo s'imbolU ?4 símbolo s'iNbolU @@ -1231,7 +1263,11 @@ mac mEk ?2 microsoft m'aIkRows'Oft ?1 movie m'uvi ?1 nero n'Eru -/1 office 'Of,is +?2 netbook nEtbUk +?2 netbooks nEtbUks +?2 notebook nowtbUk +?2 notebooks nowtbUks +?1 office 'Of,is ?2 office 'Ofsy openoffice 'opeIN|'Ofis ?1 outlook 'autl'uk @@ -1316,7 +1352,6 @@ klein kl'aIn // Very common on southern Brazil. krueger kR'iZer krüger kR'iZer kühl k'il -milton m'Iwton mueler m'iler mueller m'iler müler m'iler @@ -1328,6 +1363,4 @@ vogel f'o:g@l volkmann f'Olkman washington w'OSinton wellington w'Elynton -wilton w'Iwton - diff --git a/dictsource/pt_rules b/dictsource/pt_rules index da438960..069d76a3 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -31,6 +31,7 @@ &) a (_ =& // in final unstressed syllable &) a (s_ =& &) a (_a =&/ // ?? elide final a before a + A_l) a (_ & &) a (_à =&/ ?1 a (_ =& // in final unstressed syllable ?1 a (s_ =& @@ -73,6 +74,22 @@ au aU au (s aU a (uCK a + âB) a (CA_ & + âBC) a (CA_ & + êC) a (CA_ & + êCC) a (CA_ & + ôB) a (CA_ & + ôBC) a (CA_ & + áC) a (CA_ & + áCC) a (CA_ & + éC) a (CA_ & + í) a (CA_ & + íC) a (CA_ & + íCC) a (CA_ & + óC) a (CA_ & + óCC) a (CA_ & + óC) a (CCA_ & + úC) a (CA_ & .group â @@ -131,6 +148,7 @@ ?3 c (t k ?3 c (_C k_ ch S + chr kR ck k ?1 c (c //drop “c” in European Portuguese (eg: seleccionar) ?1 A) ct t //drop “c” in European Portuguese (eg: exacto) @@ -165,128 +183,87 @@ e (lh+ e v) e (lhA_ E - e (be_ E - e (bem_ E + e (bL02_ E - e (ca_ E - e (ce_ E - e (cem_ E + e (cL04_ E + + e (chL04_ E - e (chA_ E - e (chAm_ E r) e (cho_ e - e (clA_ E - e (clAm_ E - e (co_ E - e (ctA_ E - e (ctAm_ E + e (clL04_ E - e (de_ E - e (dem_ E + e (ctL04_ E + + e (dL02_ E e (fa_ E - e (gA_ E - e (gAm_ E + e (gL04_ E - e (grA_ E - e (grAm_ E + e (grL04_ E - h) e (gA_ e - h) e (gAm_ e + h) e (gL04_ e - e (gue_ E - e (guem_ E + e (guL02_ E - e (lA_ E - e (lo_ E - e (lAm_ E + e (lL04_ E i) e (r_ E @s) e (r_ E u) e (r_ E - ib) e (rA_ E - d) e (rA_ E - ed) e (rAm_ e - m) e (rA_ E - iv) e (rAm_ E + ib) e (rL04_ E + d) e (rL04_ E + ed) e (rL04_ e + m) e (rL04_ E + iv) e (rL04_ E pod) e (rA_ e - d) e (rAm_ E - ib) e (rAm_ E - @s) e (rA_ E - @s) e (rAm_ E - sp) e (rA_ E - sp) e (rAm_ E - f) e (re_ E - f) e (rem_ E - e (que_ E - e (quem_ E + @s) e (rL04_ E - e (rgA_ E - e (rgAm_ E + sp) e (rL04_ E - e (rgue_ E - e (rguem_ E + f) e (rL02_ E - e (rsA_ E - e (rsAm_ E + e (quL02_ E - e (se_ E - e (sem_ E + e (rgL04_ E - e (ssA_ E - e (ssAm_ E + e (rsL04_ E - e (stA_ E - e (stAm_ E - e (strA_ E + e (sL02_ E + + e (ssL04_ E + + e (stL04_ E + + e (strL04_ E e (rme_ E - e (rnA_ E - e (rnAm_ E + e (rnL04_ E - e (rtA_ E - e (rtAm_ E + e (rtL04_ E - e (rrA_ E - e (rrAm_ E + e (rrL04_ E - e (rvA_ E - e (rvAm_ E + e (rvL04_ E - e (tA_ E - m) e (ta_ e - m) e (tam_ e - m) e (to_ e + e (tL04_ E + m) e (tL04_ e An) e (tA_ e on) e (te_ E gaz) e (ta_ e - e (tAm_ E - e (gi_ e - e (gri_ e - e (li_ e - e (rgi_ e - e (sti_ e - e (ti_ e - e (rti_ e - e (rvi_ e - e (xi_ e - e (vA_ E + e (vL04_ E t) e (ve_ e - e (vi_ e - e (vê_ e - e (vAm_ E e (rrAs_ E e (x_ E - e (xA_ E - e (xAm_ E + e (xL04_ E + ?2 _n) e (t E em (C eIm en (K eIN @@ -317,8 +294,6 @@ ?1 d) e (CCACCA y ?1 d) e (nCACCA ,e - j) e (tA_ E - j) e (tAm_ E _r) eex (A eez ?1 _) es (C@@ S // drop initial "e". @@ -332,6 +307,7 @@ ?1 C) e (o 'i // eg: geologia, etc... ?1 C) e (ú i // conteúdo, etc. ?1 Cã) e j // cães, mãe, etc... +?2 ã) e (z y // mãezinha, etc. ?1 c) e (rea y // cereais ?1 d) e (fici y // deficiênte, deficiência, etc... ?1 _d) e (fini y //definições. @@ -363,8 +339,20 @@ ?1 v) e (l_ ,E // eg: possível, amovível, disponível, etc... ?1 l) e (ta 'E // eg: bicicleta, atleta. - sf) e (ra_ E // esfera, biosfera + t) e (tra E + + âC) e (CA_ e + êC) e (CA_ e + êCC) e (CA_ e + ôC) e (CA_ e + áC) e (CA_ e + áCC) e (CA_ e + íC) e (CA_ e + íCC) e (CA_ e + óC) e (Ca_ e + óCC) e (CA_ e + úC) e (CA_ e //sort _d) e (L05_ E @@ -375,7 +363,9 @@ fiz) e (L05_ E pus) e (L05_ E // com- im- de- tiv) e (L05_ E // es- + viv) e (L05_ e _com) e (L05_ e + _cos) e (L05_ e _pud) e (L05_ E _coub) e (L05_ E _exag) e (L05_ E @@ -392,6 +382,7 @@ respond) e (L05_ e eb) e (L07_ e // recebeste, etc. ec) e (L07_ e // pareceram, etc. eg) e (L07_ e // elegeste, etc. + _cr) e (L07_ e _do) e (L07_ e _mo) e (L07_ e _ro) e (L07_ e @@ -407,6 +398,8 @@ respond) e (L05_ e orr) e (L07_ e // correste, etc. viv) e (L07_ e // re- _ard) e (L07_ e + _cos) e (L07_ e + _coz) e (L07_ e colh) e (L07_ e // & es- ench) e (L07_ e // pre- nasc) e (L07_ e // re- @@ -416,15 +409,18 @@ respond) e (L05_ e _ergu) e (L07_ e _mord) e (L07_ e _perd) e (L07_ e + _remo) e (L07_ e _sofr) e (L07_ e screv) e (L07_ e // e- in- ree- pre- de- _atrev) e (L07_ e +_corro) e (L07_ e _interromp) e (L07_ e _troux) e (L07_ E qu) e (brL04_ E _cel) e (brL04_ E _ex) e (crL04_ E _enr) e (dL01_ E + _v) e (dL03_ E _arr) e (dL03_ E _depr) e (dL03_ E _hosp) e (dL03_ E @@ -451,15 +447,19 @@ _troux) e (L07_ E gen) e (rL04_ E // de- re- _alt) e (rL04_ E _enc) e (rL04_ E + _min) e (rL04_ E _sug) e (rL04_ E _sup) e (rL04_ E _tol) e (rL04_ E _ven) e (rL04_ E acel) e (rL04_ E // des- + eson) e (rL04_ E _apod) e (rL04_ E _coop) e (rL04_ E - _enum) e (rL04_ E + _exub) e (rL04_ E _temp) e (rL04_ E +_adult) e (rL04_ E +_persev) e (rL04_ E _recup) e (rL04_ E _refrig) e (rL04_ E _v) e (rbL03_ E @@ -468,8 +468,10 @@ _refrig) e (rL04_ E _p) e (rdL02_ E _l) e (rdL03_ E _h) e (rdL04_ E + _) e (rgL03_ e + _re) e (rgL03_ e _bez) e (rrL03_ e - _inv) e (rtL03_ e + v) e (rtL03_ e // con- re- in- _f) e (rvL03_ e _alic) e (rçL03_ E _p) e (sL01_ E @@ -486,6 +488,7 @@ _refrig) e (rL04_ E _esp) e (ssL03_ e _c) e (stL03_ e _pr) e (tL03_ e + _bol) e (tL03_ e _rem) e (tL03_ e _derr) e (tL03_ e _obsol) e (tL03_ e @@ -498,6 +501,7 @@ _obsol) e (tL03_ e _r) e (zL04_ E _pr) e (zL04_ E spr) e (zL04_ E + _enf) e (zL04_ E _rev) e (zL04_ E _embel) e (zL04_ E com) e (çL01_ E @@ -628,6 +632,7 @@ _entorp) e (çL03_ e ?1 _) i (ntern 'i //inter ?1 @) ing (_ _^_EN ?1 @) ings (_ _^_EN + ilton 'iUtoN .group í @@ -667,6 +672,7 @@ _entorp) e (çL03_ e l) l ?1 lh l^ ?2 lh lj + ?4 A) lh l^ @@ -693,7 +699,8 @@ _entorp) e (çL03_ e .group ñ - _) ñ (_ 'En^e + _) ñ (_ 'enjE +?1 _) ñ (_ enetil ñ n^ @@ -702,11 +709,15 @@ _entorp) e (çL03_ e o o @) o (_ =U o (s_ =U + _) o (_C U + _) o (_A u + _d) o (_C U + _d) o (_A u ou ow oi oI oi ($w_alt OI oi ($w_alt2++ oI - oi (a_ OI // ?? + oi (a_ OI oi (cA_ OI oi (de_ OI oi (s oI @@ -714,58 +725,43 @@ _entorp) e (çL03_ e ?1 C) oo (_ ow // eg: voo, enjoo, etc... oy OI - o (cA_ O - o (cAm_ O + o (cL04_ O - o (que_ O - o (quem_ O + o (chL04_ O - p) o (dA_ O - p) o (dAm_ O + o (quL02_ O + + A_l) o (_ U + p) o (dL04_ O o (g_ O o (gs_ O - o (ge_ O - o (gem_ O + o (gL02_ O - o (jA_ O - o (jAm_ O + o (jL04_ O - o (ldA_ O - o (ldAm_ O + o (ldL04_ O - o (lA_ O - o (lAm_ O + o (lL04_ O - o (lhe_ O - o (lhem_ O + o (lhL02_ O - o (ltA_ O - o (ltAm_ O + o (ltL04_ O - o (lve_ O - o (lvem_ O + o (lvL02_ O - o (bri_ o - o (di_ o - o (li_ o - o (rci_ o - o (rdi_ o - o (rri_ o - o (rvi_ o o (sA_ O o (so_N o // not for osos_ o (sAm_ O - o (ssA_ O - o (ssAm_ O + o (ssL04_ O o (va_ O o (vAm_ O o (ve_ O - m) o (va_ o - m) o (vam_ o + m) o (vL01_ o + o (veCs_ O o (l_ 'O @@ -778,43 +774,40 @@ _entorp) e (çL03_ e ?4 om (C oN on (K oN @s) on (_ %oN // words ending in -son - o (na_ o + onh on^ - o (brA_ O - o (brAm_ O - o (dA_ O - o (dAm_ O + o (brL04_ O + + o (dL04_ O + t) o (dA_ o - o (rCA_ O + o (rCL04_ O + o (rCo_ o - o (rCAm_ O - o (stA_ O + o (stL04_ O + o (sto_ o - o (stAm_ O - o (strA_ O - o (strAm_ O - o (tA_ O - o (tAm_ O + o (strL04_ O + + o (tL04_ O ?2 o (x_ O ?1 oz (_ Os# -?2 oz (_ Oz +?2 o (z_ O o (ze_ O - o (rA_ O - b) o (re_ o + o (rL04_ O c) o (re_ o d) o (re_ o l) o (re_ o t) o (re_ o v) o (re_ o - o (rAm_ O - b) o (rA_ O - @@) o (rA_ o + @@) o (rA_ o + b) o (rL04_ O o (p_ O ?1 _) o (C O // eg: olá, orla, opção, etc... ?1 _C) o (CACAC u // Documento, documentação, localizar, etc. @@ -826,6 +819,23 @@ _entorp) e (çL03_ e ?1 f) o (rmulá u // eg: formulário, formulários. ?1 v) o (lt O + êC) o (CA_ o + êCC) o (CA_ o + ôC) o (CA_ o + áC) o (CA_ o + C) o (Cá_ o + C) o (CCá_ o + C) o (CCCá_ o + éC) o (CA_ o + éCC) o (CA_ o + í) o (CA_ U + íC) o (CA_ o + íCC) o (CA_ o + óC) o (CA_ o + óCC) o (CA_ o + úC) o (CA_ o + úCC) o (CA_ o + //sort _f) o (L05_ o _pormen) o (L05_ O @@ -836,14 +846,12 @@ _pormen) o (L05_ O _engl) o (bL04_ O _sal) o (brL03_ o _) o (cL03_ o - br) o (chL04_ O - _deb) o (chL04_ O _m) o (fL01_ O _m) o (fL02_ O _s) o (frL02_ O r) o (gL04_ O // inter- _j) o (gL04_ O - _af) o (gL04_ O + af) o (gL04_ O // des- _adv) o (gL04_ O _ref) o (gL04_ O _ap) oi (L01_ OI @@ -870,9 +878,7 @@ _comem) o (rL04 O _aprim) o (rL04_ O _remem) o (rL04_ O f) o (rmL03_ O - _enf) o (rquL02_ O - _ext) o (rquL02_ O - c) o (rrL01_ o // escorra, incorra, corra, recorra + c) o (rrL01_ o // incorra, corra, etc. _m) o (rrL01_ o p) o (rtL03_ O // im- trans- de- re- com- a- ex- t) o (rçL01_ O // con- @@ -882,6 +888,7 @@ _remem) o (rL04_ O p) ostos (_ Ost=Us# // dispostos etc. _gar) o (tL03_ o _mar) o (tL03_ O + _escr) o (tL03_ o _ch) o (vL01_ o pr) o (vL03_ O _g) o (zL04_ O @@ -942,15 +949,15 @@ _remem) o (rL04_ O A) quên kw'eN // frequência, etc. C) quên kw'eN // quinquênio, etc. ade) qu (e kw - _a) qu (idade_ kw + A) qu (idade_ kw _a) qu (ífero_ kw e) qu (estr kw ese) qu (ív kw _e) qu (in kw fre) qu (ent kw - _ini) qu (idade_ kw li) qu (id kw lí) qu (id kw + lo) qu (en kw n) qu (en kw _) qu (inqu kw se) qu (en kw @@ -979,7 +986,7 @@ _remem) o (rL04_ O C) r (A R rr x _) r x - l) r x + l) r (A x n) r (+ x s) r x ?1 A) r (_ r- // [r-] is English linking-r @@ -1066,6 +1073,7 @@ _remem) o (rL04_ O ú ''u úm (_ ''u~N úm (C ''u~m + úm (A ''u~m ?4 úm (C ''u~N ún (K ''u~N únh ''u~n^ @@ -1118,6 +1126,7 @@ _remem) o (rL04_ O _ca) x (A S _co) x (A S _coe) x (A z + _e) x (u_ S _fa) x (i S _fle) x (a S gra) x (A S @@ -1143,6 +1152,7 @@ _remem) o (rL04_ O rela) x (A S _ro) x (A S _ta) x (e S + _te) x (ugo_ S _trou) x (e s _ve) x (A S _xi) x (A S diff --git a/espeak-data/voices/europe/ga b/espeak-data/voices/europe/ga index 27e5f8b9..30d32e07 100755 --- a/espeak-data/voices/europe/ga +++ b/espeak-data/voices/europe/ga @@ -1,4 +1,4 @@ -name Irish Gaeilge +name irish-gaeilge language ga dictrules 1 // fix for eclipsis diff --git a/espeak-data/voices/pt b/espeak-data/voices/pt index 64a073d6..10d62711 100755 --- a/espeak-data/voices/pt +++ b/espeak-data/voices/pt @@ -4,4 +4,5 @@ language pt gender male dictrules 2 +stressLength 200 115 230 230 0 0 250 270 diff --git a/phsource/ph_danish b/phsource/ph_danish index bd92210e..16791eb1 100644 --- a/phsource/ph_danish +++ b/phsource/ph_danish @@ -8,113 +8,213 @@ // AC + @- OR V: Long "pile" [pi:l@-] // AC[i]: Long "smidig" [smi:Di] -// Change the length of short vowels (?+vowel) +// Change the length of SHORT vowels (?+vowel) procedure ShortVowelLength -// "endelig" - Short initial vowel sounds too short -IF thisPh(isWordStart) THEN - length 160 - RETURN -ENDIF -// "slutte" t/d + @- makes the u too long -IF next2PhW(@-) THEN - IF nextPhW(t) OR nextPhW(d) THEN - //length 100 - LengthAdd -50 +// "endelig", "ånder" - Short initial vowel sounds too short TEST + IF thisPh(isWordStart) AND nextPhW(n) THEN + IF next2PhW(@-) OR next2PhW(V) THEN + length 160 + RETURN + ENDIF + ENDIF +// "slutte" t/d + @- makes the vowel too long +// Problem with compounds like "spildedamp" + IF next2PhW(@-) OR next2PhW(V) THEN + IF nextPhW(t) OR nextPhW(d) THEN +// length 100 + LengthAdd -45 // Don't shorten it further if it comes after an "r" sound // Exit the procedure - RETURN - ENDIF -ENDIF -// "bygget" - consonant + [@-D] makes the vowel too long -IF next2PhW(@-) THEN - IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN - LengthAdd -50 - // Don't shorten it further if it comes after an "r" sound ("brygget") - // Exit the procedure - RETURN - ENDIF -ENDIF + RETURN + ENDIF + ENDIF +// "bygget", "byggede" - consonant + [@-D] makes the vowel too long + IF next2PhW(@-) THEN + IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN + IF thisPh(isFirstVowel) THEN // NOT "cellof'anet" + IF NOT thisPh(?V) THEN // NOT "fjollet" + LengthAdd -40 + // Don't shorten it further if it comes after an "r" sound ("brygget") + // Exit the procedure + RETURN + ENDIF + ENDIF + ENDIF + ENDIF // "bygger" - consonant + [V] makes the vowel too long -IF nextPhW(isNotVowel) AND next2PhW(V) THEN - LengthAdd -50 + IF nextPhW(isNotVowel) AND next2PhW(V) THEN + IF NOT thisPh(isWordStart) THEN // NOT "eller" +// LengthAdd -45 // Don't shorten it further if it comes after an "r" sound ("brygger") // Exit the procedure - RETURN -ENDIF + RETURN + ENDIF + ENDIF // "rigtigt", "fred", "frem", "centralen" - R makes the vowel too long - IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN // length 100 - LengthAdd -50 - ENDIF -// "ring", "ringe", "fængsel" - IF nextPhW(N) THEN + LengthAdd -40 + RETURN + ENDIF +// "ring", "ringe", "fængsel", "spinkel", "vindspejl" + IF nextPhW(isNasal) THEN // length 100 - LengthAdd -10 - ENDIF -// "sigte" t/d + @- makes the vowel too long - IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN - IF next3PhW(@-) THEN + LengthAdd -30 + RETURN + ENDIF +// "sigte", "bælte", "henter" t/d + @-/V makes the vowel too long + IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN + IF next3PhW(@-) OR next3PhW(V) THEN + IF thisPh(isFirstVowel) THEN // NOT [i] in "forsp'ildte" // length 100 - LengthAdd -50 - ENDIF - ENDIF + LengthAdd -30 + ENDIF + ENDIF + ENDIF +// "forbandelse" [n@-] makes the vowel too long? +// nasal eg: m, n, N + IF nextPhW(isNasal) AND next2PhW(@-) THEN + IF NOT thisPh(isFirstVowel) AND thisPh(isStressed) THEN + // NOT LengthAdd since [R] might have shortend the vowel above + length 100 + ENDIF + ENDIF +// "himlen" l/3 makes the vowel too long + IF nextPhW(isNotVowel) AND next2PhW(l/3) AND next3PhW(@-) OR next3PhW(V) THEN + length 100 + ENDIF +// "lænkerne" l/3 makes the vowel too long + IF prevPh(l/3) AND nextPhW(isNotVowel) AND next3PhW(V) THEN + length 120 + ENDIF +//"musikken" consonant + [@-n] makes the vowel too long +// Probably wrong. Only k? + IF nextPhW(k) AND next2PhW(@-) AND next3PhW(n) THEN + length 100 + ENDIF +//"svælge" [svElj@-] vowel + 2 consonants but length 100 is too short + IF nextPhW(isNotVowel) AND next2PhW(j) THEN + length 140 + ENDIF endprocedure -// Change the length of normal vowels (without ? in front of them) +// Change the length of NORMAL vowels (without ? in front of them) procedure LongVowelLength -// "alene" - Short initial vowel sounds too short at length 140 -IF thisPh(isWordStart) THEN - length 160 - RETURN -ENDIF -// "forlade" - [D@-] makes the vowel too long -IF nextPhW(D) AND next2PhW(@-) THEN - length 180 - RETURN -ENDIF -// PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n] - IF nextPhW(@-) OR nextPhW(V) THEN - length 225 - ENDIF -// PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i] - IF nextPhW(isNotVowel) AND next2PhW(i) THEN - length 225 - ENDIF -// "ræve", "dele", "mene", "røve", "møve" -IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN - length 225 -ENDIF -// "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants - IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN - // Don't make "møve" [m'Ww_!@-_!] short - IF NOT next2PhW(_!) THEN - length 140 - ENDIF - ENDIF -// "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long - IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN - IF next2PhW(@-) OR next2PhW(V) THEN -// length 180 - LengthAdd -70 +// "guldmine" [ul/3] makes the vowel extremely short + IF prevVowel(u) AND prev2PhW(l/3) THEN + length 350 + RETURN ENDIF - ENDIF - // "syste", "sylte" t/d/D + @- makes the vowel too long - // "international", - added [V] TEST - IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) OR next2PhW(D) THEN - IF next3PhW(@-) OR next3PhW(V) THEN +// "guldur" [ul/3] makes the vowel extremely short + IF prevVowel(u) AND prevPhW(l/3) THEN + IF NOT thisPh(isWordEnd) THEN // NOT "umulig" + length 325 + RETURN + ENDIF + ENDIF +// "alene" - Short initial vowel sounds too short at length 140 + IF thisPh(isWordStart) THEN + length 160 +// "ønske" The vowel should have been made short becauce og 2 x consonant. +// Take care of it here + IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND next3PhW(isNotVowel) THEN + length 140 + ENDIF +// "ære" + IF nextPhW(V) AND nextPhW(isFinalVowel) THEN + length 240 + ENDIF + RETURN + ENDIF +// "huske" - hACC@- vowel too long + IF prevPhW(h) AND nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND next3PhW(@-) THEN length 110 - ENDIF - ENDIF -// "glimrende" [l/3] makes the following vowel too long + RETURN + ENDIF +// PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n] + IF nextPhW(@-) OR nextPhW(V) THEN + length 225 + ENDIF +// PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i] + IF nextPhW(isNotVowel) AND next2PhW(i) THEN + length 225 + ENDIF +// "dele", "mene", "møve" + IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN + length 225 + ENDIF +// "sveder", "deler" + IF nextPhW(isNotVowel) AND next2PhW(V) THEN + length 225 + ENDIF +// "maskinen" consonant + [@-n]: vowel too long + IF nextPhW(isNotVowel) AND next2PhW(@-) AND next3PhW(n) THEN + length 160 + ENDIF +// "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants + IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + // Don't make "møve" [m'Ww_!@-_!] short + IF NOT next2PhW(_!) THEN + length 140 + ENDIF + ENDIF +// "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long + IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN + IF NOT thisPh(V) AND next2PhW(@-) OR next2PhW(V) THEN + length 140 + ENDIF + ENDIF +// "føden" + IF nextPhW(D) AND next2PhW(@-) AND next3PhW(n) THEN + length 180 + ENDIF +// "glimrende", "glemte" [l/3] makes the following vowel too long // LengthAdd doesn't work here. The length could be 225 or 140 - 30 - IF prevPhW(l/3) THEN -// LengthAdd -30 - length 110 - ENDIF + IF prev2PhW(g) AND prevPhW(l/3) AND nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + length 110 + RETURN + ENDIF +// l/3 makes the vowel too long (+ voiced?) +// isVoiced = b, d, g, v, z + IF prevPhW(l/3) AND nextPhW(isVoiced) THEN + // "klub", "klud" + // The vowel should have been short but we fix it here + IF NOT next2PhW(@-) AND NOT next2PhW(V) THEN + length 100 + ELSE + // "slæde", "lader" + length 160 + ENDIF + ENDIF // "længe" - short - 2 consonants => 1 consonant (ng => [N]) -IF nextPhW(N) THEN - length 140 -ENDIF + IF nextPhW(isNasal) THEN + IF NOT prevPhW(R) AND NOT prevPhW(r) AND NOT prevPhW(3-) THEN + length 140 + // "omkring", "ring" - both prev. N and next R + ELIF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) THEN + length 110 + ENDIF + ENDIF +// "buskene", "krøbling" The vowel should have been made short becauce og 2 x consonant. +// Take care of it here + IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN + IF NOT nextPhW(l/3) THEN + IF NOT nextPhW(r) AND NOT prevPhW(R) AND NOT prevPhW(3-) THEN // NOT "Maria" + length 110 + ENDIF + ENDIF + ENDIF +// "barnet" - consonant + [@-D]: too long vowel + IF nextPhW(isNotVowel) AND next2PhW(@-) AND next3PhW(D) THEN + length 160 + ENDIF +// "trin", "trit", "ring" - vowel too long +// IF prevPhW(isRhotic) THEN + IF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) THEN + IF nextPhW(isNotVowel) AND nextPhW(isWordEnd) THEN + length 110 + ENDIF + ENDIF endprocedure // A bit longer than [@-] @@ -167,22 +267,6 @@ endphoneme phoneme i vowel starttype #i endtype #i length 140 -// Long vowel followed by consonant and @- "gide", "pile" -IF nextPhW(isNotVowel) AND next2PhW(@-) THEN -// length 225 -ENDIF -// "gider", vrider" -IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN - length 140 -ENDIF -//"skider" short -IF nextPhW(D) AND next2PhW(V) THEN - length 140 -ENDIF -//"skideren" long -IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN - length 225 -ENDIF CALL LongVowelLength FMT(vowel/i_4) endphoneme @@ -209,7 +293,7 @@ phoneme e vowel starttype #e endtype #e length 140 CALL LongVowelLength - CALL ShortVowelLength +// CALL ShortVowelLength FMT(vowel/e) endphoneme @@ -257,7 +341,7 @@ endphoneme phoneme & vowel starttype #e endtype #e - ipa æ + ipa a length 140 // "same", "sale", "bade" - consonant + @-: long // but NOT "hinanden" @@ -279,8 +363,10 @@ endphoneme // e.g. the last a in "staldkarl" // "sale" vs. "sal" phoneme ?& +ipa a vowel starttype #e endtype #e length 140 + CALL ShortVowelLength FMT(vowel/ee_2) endphoneme @@ -298,6 +384,7 @@ endphoneme // "revl" vs. "tremme" phoneme ?&# vowel starttype #e endtype #e + ipa ?a length 140 CALL ShortVowelLength FMT(vowel/&) @@ -372,11 +459,11 @@ phoneme O ipa ɒ // changed from ɔ - Den Danske Ordbog: ɒ // "sove", "sover" - consonant + @ or V: long IF next2PhW(@-) OR next2PhW(V) THEN - length 225 +// length 225 ENDIF // PB "gået" - ThisPh + V or @- IF nextPhW(V) OR nextPhW(@-) THEN - length 225 +// length 225 ENDIF // "såre", "sårede" [s'O:?OD@-] IF nextPhW(O) OR nextPhW(?O) THEN @@ -391,6 +478,7 @@ endphoneme phoneme ?O vowel starttype #o endtype #o length 140 + CALL ShortVowelLength FMT(vowel/o_5) endphoneme @@ -406,6 +494,7 @@ endphoneme phoneme ?V vowel starttype #@ endtype #@ length 140 + CALL ShortVowelLength FMT(vowel/V_4) endphoneme @@ -416,34 +505,19 @@ phoneme 0 FMT(vowel/oo_2) endphoneme -// Short 0 "sukker" +// Short 0 "sukker", "provst" phoneme ?0 vowel starttype #o endtype #o length 140 ipa ɔ + CALL ShortVowelLength FMT(vowel/oo_2) endphoneme phoneme y vowel starttype #i endtype #i length 140 -// PB long vowel followed by consonant and certain vowels -// "gyde", "gyder" -IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN - // not "gebyret" TEST - IF NOT nextPhW(3-) AND NOT nextPhW(R) AND NOT nextPhW(r) THEN - length 225 - ENDIF -ENDIF -// "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD] -IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN - length 225 -ENDIF -// "tyve" -IF nextPhW(w) AND next2PhW(@-) THEN - length 225 -ENDIF -CALL LongVowelLength + CALL LongVowelLength FMT(vowel/y) endphoneme @@ -468,15 +542,7 @@ endphoneme phoneme W vowel starttype #@ endtype #@ length 140 -// "røveri" but NOT "surfer" [sWfV] TEST -IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN - length 140 -ENDIF -// "børnebog" - short -IF nextPhW(r) AND next2PhW(n) AND next3PhW(@-) THEN - length 140 -ENDIF -CALL LongVowelLength + CALL LongVowelLength FMT(vowel/oe) endphoneme @@ -492,11 +558,8 @@ endphoneme // Added for the ø in "røv", "røg", "øje" instead of [V3] phoneme W# vowel starttype #@ endtype #@ - length 140 //225 -// PB long vowel followed by consonant and certain vowels -IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN - length 225 -ENDIF + length 140 +CALL LongVowelLength FMT(vowel/V) endphoneme @@ -540,7 +603,7 @@ phoneme l lengthmod 7 // [ll] => [-l] - avoid double l IF nextPhW(l) THEN -// ChangePhoneme(-) +// ChangePhoneme(NULL) ENDIF ChangePhoneme(l/3) // CALL base/l @@ -565,6 +628,10 @@ phoneme r // used for 'r' after a vowel (to create a diphthong) IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) AND NOT nextPhW(@-) THEN ChangePhoneme(R) ENDIF +// "generer" [Sen'e:Vr], "mysterier" - delete the r + IF prevPhW(V) AND thisPh(isWordEnd) THEN + ChangePhoneme(NULL) + ENDIF FMT(r/a_) endphoneme @@ -637,7 +704,7 @@ IF thisPh(isWordEnd) THEN ENDIF IF nextPhW(isVowel) THEN NextVowelStarts - VowelStart(j/j@) + VowelStart(j/j@,-45) // jøderne VowelStart(j/ja) VowelStart(j/je,-35) VowelStart(j/ji) @@ -655,4 +722,5 @@ Vowelout len=70 Vowelout len=70 FMT(j/j_) ENDIF -endphoneme \ No newline at end of file +endphoneme + diff --git a/platforms/riscos/Makefile b/platforms/riscos/Makefile index 3522e043..7a98ce18 100644 --- a/platforms/riscos/Makefile +++ b/platforms/riscos/Makefile @@ -2,8 +2,8 @@ # Toolflags: -CCflags = -c -C90 -depend !Depend -IC: -throwback -memaccess -zM -L22-S22-L41 -C++flags = -c -depend !Depend -IC: -throwback -zM -L22-S22-L41 +CCflags = -c -C90 -depend !Depend -IC: -throwback -zM -memaccess -L22-S22-L41 +C++flags = -c -depend !Depend -IC: -throwback -zM -memaccess -L22-S22-L41 Linkflags = -rmf -c++ -o $@ ObjAsmflags = -throwback -NoCache -depend !Depend CMHGflags = @@ -27,38 +27,64 @@ Squeezeflags = -o $@ # User-editable dependencies: # Static dependencies: -@.o.speak_riscos: @.cpp.speak_riscos - c++ $(c++flags) -o @.o.speak_riscos @.cpp.speak_riscos -@.o.compiledict: @.cpp.compiledict - c++ $(c++flags) -o @.o.compiledict @.cpp.compiledict -@.o.dictionary: @.CPP.dictionary - c++ $(c++flags) -o @.o.dictionary @.CPP.dictionary -@.o.intonation: @.CPP.intonation - c++ $(c++flags) -o @.o.intonation @.CPP.intonation -@.o.numbers: @.CPP.numbers - c++ $(c++flags) -o @.o.numbers @.CPP.numbers -@.o.phonemelist: @.CPP.phonemelist - c++ $(c++flags) -o @.o.phonemelist @.CPP.phonemelist -@.o.readclause: @.CPP.readclause - c++ $(c++flags) -o @.o.readclause @.CPP.readclause -@.o.setlengths: @.CPP.setlengths - c++ $(c++flags) -o @.o.setlengths @.CPP.setlengths -@.o.synthdata: @.CPP.synthdata - c++ $(c++flags) -o @.o.synthdata @.CPP.synthdata -@.o.synth_mbrola: @.CPP.synth_mbrola - c++ $(c++flags) -o @.o.synth_mbrola @.CPP.synth_mbrola -@.o.synthesize: @.CPP.synthesize - c++ $(c++flags) -o @.o.synthesize @.CPP.synthesize -@.o.translate: @.CPP.translate - c++ $(c++flags) -o @.o.translate @.CPP.translate -@.o.tr_languages: @.CPP.tr_languages - c++ $(c++flags) -o @.o.tr_languages @.CPP.tr_languages -@.o.voices: @.CPP.voices - c++ $(c++flags) -o @.o.voices @.CPP.voices -@.o.wavegen: @.CPP.wavegen - c++ $(c++flags) -o @.o.wavegen @.CPP.wavegen +@.o.speak_riscos: @.c.speak_riscos + cc $(ccflags) -o @.o.speak_riscos @.c.speak_riscos +@.o.compiledict: @.c.compiledict + cc $(ccflags) -o @.o.compiledict @.c.compiledict +@.o.dictionary: @.c.dictionary + cc $(ccflags) -o @.o.dictionary @.c.dictionary +@.o.intonation: @.c.intonation + cc $(ccflags) -o @.o.intonation @.c.intonation +@.o.numbers: @.c.numbers + cc $(ccflags) -o @.o.numbers @.c.numbers +@.o.phonemelist: @.c.phonemelist + cc $(ccflags) -o @.o.phonemelist @.c.phonemelist +@.o.readclause: @.c.readclause + cc $(ccflags) -o @.o.readclause @.c.readclause +@.o.setlengths: @.c.setlengths + cc $(ccflags) -o @.o.setlengths @.c.setlengths +@.o.synthdata: @.c.synthdata + cc $(ccflags) -o @.o.synthdata @.c.synthdata +@.o.synth_mbrola: @.c.synth_mbrola + cc $(ccflags) -o @.o.synth_mbrola @.c.synth_mbrola +@.o.synthesize: @.c.synthesize + cc $(ccflags) -o @.o.synthesize @.c.synthesize +@.o.translate: @.c.translate + cc $(ccflags) -o @.o.translate @.c.translate +@.o.tr_languages: @.c.tr_languages + cc $(ccflags) -o @.o.tr_languages @.c.tr_languages +@.o.voices: @.c.voices + cc $(ccflags) -o @.o.voices @.c.voices +@.o.wavegen: @.c.wavegen + cc $(ccflags) -o @.o.wavegen @.c.wavegen @.o.assemb: @.s.assemb objasm $(objasmflags) -from @.s.assemb -to @.o.assemb # Dynamic dependencies: - +o.wavegen: c.wavegen +o.wavegen: h.StdAfx +o.wavegen: h.speak_lib +o.wavegen: h.speech +o.wavegen: h.phoneme +o.wavegen: h.synthesize +o.wavegen: h.voice +o.wavegen: h.sintab +o.speak_riscos: c.speak_riscos +o.speak_riscos: C:h.kernel +o.speak_riscos: h.speech +o.speak_riscos: h.speak_lib +o.speak_riscos: h.phoneme +o.speak_riscos: h.synthesize +o.speak_riscos: h.voice +o.speak_riscos: h.translate +o.synthdata: c.synthdata +o.synthdata: h.StdAfx +o.synthdata: h.wctype +o.synthdata: h.speak_lib +o.synthdata: h.speech +o.synthdata: h.phoneme +o.synthdata: h.synthesize +o.synthdata: h.voice +o.synthdata: h.translate +o.synthdata: h.wave +o.synthdata: C:h.stdint diff --git a/platforms/riscos/copysource b/platforms/riscos/copysource index b63ca50e..d887bf32 100644 --- a/platforms/riscos/copysource +++ b/platforms/riscos/copysource @@ -1,17 +1,17 @@ -copy .^.src.compiledict/cpp .cpp.compiledict fq~c -copy .^.src.dictionary/cpp .cpp.dictionary fq~c -copy .^.src.intonation/cpp .cpp.intonation fq~c -copy .^.src.numbers/cpp .cpp.numbers fq~c -copy .^.src.phonemelist/cpp .cpp.phonemelist fq~c -copy .^.src.readclause/cpp .cpp.readclause fq~c -copy .^.src.setlengths/cpp .cpp.setlengths fq~c -copy .^.src.synthdata/cpp .cpp.synthdata fq~c -copy .^.src.synth_mbrola/cpp .cpp.synth_mbrola fq~c -copy .^.src.synthesize/cpp .cpp.synthesize fq~c -copy .^.src.translate/cpp .cpp.translate fq~c -copy .^.src.tr_languages/cpp .cpp.tr_languages fq~c -copy .^.src.voices/cpp .cpp.voices fq~c -copy .^.src.wavegen/cpp .cpp.wavegen fq~c +copy .^.src.compiledict/cpp .c.compiledict fq~c +copy .^.src.dictionary/cpp .c.dictionary fq~c +copy .^.src.intonation/cpp .c.intonation fq~c +copy .^.src.numbers/cpp .c.numbers fq~c +copy .^.src.phonemelist/cpp .c.phonemelist fq~c +copy .^.src.readclause/cpp .c.readclause fq~c +copy .^.src.setlengths/cpp .c.setlengths fq~c +copy .^.src.synthdata/cpp .c.synthdata fq~c +copy .^.src.synth_mbrola/cpp .c.synth_mbrola fq~c +copy .^.src.synthesize/cpp .c.synthesize fq~c +copy .^.src.translate/cpp .c.translate fq~c +copy .^.src.tr_languages/cpp .c.tr_languages fq~c +copy .^.src.voices/cpp .c.voices fq~c +copy .^.src.wavegen/cpp .c.wavegen fq~c copy .^.src.phoneme/h .h.phoneme fq~c copy .^.src.sintab/h .h.sintab fq~c diff --git a/platforms/riscos/cpp/speak_riscos b/platforms/riscos/cpp/speak_riscos deleted file mode 100644 index 1b34c320..00000000 --- a/platforms/riscos/cpp/speak_riscos +++ /dev/null @@ -1,1437 +0,0 @@ - -/*************************************************************************** - * Copyright (C) 2005 to 2013 by Jonathan Duddington * - * email: jonsd@users.sourceforge.net * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program 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 General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write see: * - * . * - ***************************************************************************/ - -#define USE_MODULE - -#include -#include -#include -#include -#include -#include "kernel.h" -#include - -#include "speech.h" -#include "speak_lib.h" -#include "phoneme.h" -#include "synthesize.h" -#include "voice.h" -#include "translate.h" - -#define os_X 0x20000 - -// interface to the assembler section -extern "C" { -extern void DMA_Handler(void); - - -// used from the cmhgfile -extern _kernel_oserror *user_init(char *cmd_fail, int podule_base, void *pw); -extern _kernel_oserror *swi_handler(int swi_no, int *r, void *pw); -extern _kernel_oserror *command_handler(char *arg_string, int argc, int cmd_no, void *pw); -extern int callback_handler(_kernel_swi_regs *r, void *pw); -extern int callback_entry(_kernel_swi_regs *r, void *pw); -extern int sound_handler(_kernel_swi_regs *r, void *pw); -extern int sound_entry(_kernel_swi_regs *r, void *pw); - -} - -extern int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); -extern void RiscosOpenSound(); -extern int WcmdqUsed(); -extern void FreePhData(); -extern void FreeDictionary(); -extern void Write4Bytes(FILE *f, int value); - -extern int wcmdq_head; -extern int wcmdq_tail; -extern int current_source_index; - -FILE *f_text; -FILE *f_wave = NULL; -int (* uri_callback)(int, const char *, const char *) = NULL; -int (* phoneme_callback)(const char *) = NULL; - -int amp = 8; // default - -char path_home[N_PATH_HOME] = ""; -char wavefile[120]; -char textbuffile[L_tmpnam]; -int sample_rate_index; // current value -char current_voice_name[40] = {0}; -int n_voice_files = 0; -int n_voice_variant_files = 0; - -// output sound buffer, 2 bytes per sample -static unsigned short SoundBuf[4096]; -static void *module_data; -static int callback_inhibit = 0; -static int more_text=0; - -#define N_VOICE_NAMES 60 -#define N_VOICE_VARIANT_NAMES 30 -static char *voice_names[N_VOICE_NAMES]; -static char *voice_variant_names[N_VOICE_VARIANT_NAMES]; - -#define N_STATIC_BUF 8000 -static char static_buf[N_STATIC_BUF]; -static _kernel_oserror errblk; - - - -USHORT voice_pcnt[N_PEAKS+1][3]; - -static const char *help_text = -"\nspeak [options] [\"\"]\n\n" -"-f Text file to speak\n" -//"--stdin Read text input from stdin instead of a file\n\n" -"If neither -f nor --stdin, are spoken, or if none then text is\n" -"spoken from stdin, each line separately.\n\n" -"-a \n" -"\t Amplitude, 0 to 200, default is 100\n" -"-g \n" -"\t Word gap. Pause between words, units of 10mS at the default speed\n" -"-l \n" -"\t Line length. If not zero (which is the default), consider\n" -"\t lines less than this length as end-of-clause\n" -"-p \n" -"\t Pitch adjustment, 0 to 99, default is 50\n" -"-s \n" -"\t Speed in words per minute 80 to 390, default is 170\n" -"-v \n" -"\t Use voice file of this name from espeak-data/voices\n" -"-w \n" -"\t Write output to this WAV file, rather than speaking it directly\n" -"-b\t Input text is 8-bit encoding\n" -"-m\t Interpret SSML markup, and ignore other < > tags\n" -"-q\t Quiet, don't produce any speech (may be useful with -x)\n" -"-x\t Write phoneme mnemonics to stdout\n" -"-X\t Write phonemes mnemonics and translation trace to stdout\n" -//"--stdout Write speech output to stdout\n" -"--compile=\n" -"\t Compile the pronunciation rules and dictionary in the current\n" -"\t directory. = is optional and specifies which language\n" -"--punct=\"\"\n" -"\t Speak the names of punctuation characters during speaking. If\n" -"\t = is omitted, all punctuation is spoken.\n" -"--voices=\n" -"\t List the available voices for the specified language.\n" -"\t If is omitted, then list all voices.\n" -"-k \n" -"\t Indicate capital letters with: 1=sound, 2=the word \"capitals\",\n" -"\t higher values = a pitch increase (try -k20).\n"; - - -int GetFileLength(const char *filename) -{//==================================== - int length=0; - int type; - _kernel_swi_regs regs; - _kernel_oserror *error; - - regs.r[0] = 5; - regs.r[1] = (int)filename; - regs.r[2] = 0; - regs.r[3] = 0; - regs.r[4] = 0; - regs.r[5] = 0; - - error = _kernel_swi(0x20008,®s,®s); - if(error) - return(0); - - type = regs.r[0]; - length = regs.r[4]; - - if(type==2) - return(-2); // a directory - if((type!=1) && (type!=3)) - return(0); /* not a file */ - - return(length); -} /* end of GetFileLength */ - - -void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr) -{ -} - -void ReadVoiceNames2(char *directory) -{//================================== - int len; - int path_len; - int *type; - char *p; - _kernel_swi_regs regs; - _kernel_oserror *error; - char buf[80]; - char directory2[sizeof(path_home)+100]; - - regs.r[0] = 10; - regs.r[1] = (int)directory; - regs.r[2] = (int)buf; - regs.r[3] = 1; - regs.r[4] = 0; - regs.r[5] = sizeof(buf); - regs.r[6] = 0; - - path_len = strlen(directory); - - voice_variant_names[0] = "(none)"; - n_voice_variant_files = 1; - - while(regs.r[3] > 0) - { - error = _kernel_swi(0x0c+os_X,®s,®s); /* OS_GBPB 10, read directory entries */ - if((error != NULL) || (regs.r[3] == 0)) - { - break; - } - type = (int *)(&buf[16]); - len = strlen(&buf[20]); - - if(*type == 2) - { - // a sub-directory - sprintf(directory2,"%s.%s",directory,&buf[20]); - ReadVoiceNames2(directory2); - } - else - { - p = (char *)malloc(len+1); - strcpy(p,&buf[20]); - - if(strcmp(&directory[path_len-3],".!v")==0) - { - if(n_voice_variant_files >= (N_VOICE_VARIANT_NAMES-1)) - continue; - voice_variant_names[n_voice_variant_files++] = p; - } - else - if(strcmp(p, "default") != 0) - { - if(n_voice_files >= (N_VOICE_NAMES-1)) - continue; - voice_names[n_voice_files++] = p; - } - } - } -} - - -void ReadVoiceNames() -{//=================== - char directory[sizeof(path_home)+20]; - - n_voice_files = 0; - n_voice_variant_files = 0; - - sprintf(directory,"%s.voices.default", path_home); - if(GetFileLength(directory) > 0) - { - // put the 'default' voice at the start of the list - voice_names[n_voice_files++] = "default"; - } - sprintf(directory,"%s.voices",path_home); - - ReadVoiceNames2(directory); - - voice_names[n_voice_files] = NULL; - voice_variant_names[n_voice_variant_files] = NULL; -} - - -#ifdef USE_MODULE -char *Alloc(int size) -/*******************/ -{ // version of malloc() for use in RISC_OS module -_kernel_swi_regs regs; - - regs.r[0] = 6; - regs.r[3] = size; - _kernel_swi(0x1e, ®s, ®s); /* OS_Module 6 claim memory */ - - return(char *)regs.r[2]; -} /* end of module_malloc */ - - - -void Free(void *ptr) -/*******************/ -{ // version of free() for use in RISC_OS module -_kernel_swi_regs regs; - - if(ptr == NULL) - return; - - regs.r[0] = 7; - regs.r[2] = (int)(ptr); - _kernel_swi(0x1e, ®s, ®s); /* OS_Module 7 free memory */ -} /* end of Free */ - -#else - -char *Alloc(int size) -{//================== - char *p; - if((p = (char *)malloc(size)) == NULL) - fprintf(stderr,"Can't allocate memory\n"); - return(p); -} - -void Free(void **ptr) -{//================= - if(ptr != NULL) - { - free(ptr); - } -} -#endif - - - - -static int OpenWaveFile(const char *path, int rate) -//================================================= -{ - // Set the length of 0x7fffffff for --stdout - // This will be changed to the correct length for -w (write to file) - static unsigned char wave_hdr[44] = { - 'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ', - 0x10,0,0,0,1,0,1,0, 9,0x3d,0,0,0x12,0x7a,0,0, - 2,0,0x10,0,'d','a','t','a', 0xff,0xff,0xff,0x7f}; - - if(path == NULL) - return(2); - - if(strcmp(path,"stdout")==0) - f_wave = stdout; - else - f_wave = fopen(path,"wb"); - - if(f_wave != NULL) - { - fwrite(wave_hdr,1,24,f_wave); - Write4Bytes(f_wave,rate); - Write4Bytes(f_wave,rate * 2); - fwrite(&wave_hdr[32],1,12,f_wave); - return(0); - } - return(1); -} // end of OpenWaveFile - - - - -static void CloseWaveFile(int rate) -//================================= -{ - unsigned int pos; - - if((f_wave == NULL) || (f_wave == stdout)) - return; - - fflush(f_wave); - pos = ftell(f_wave); - - fseek(f_wave,4,SEEK_SET); - Write4Bytes(f_wave,pos - 8); - - fseek(f_wave,40,SEEK_SET); - Write4Bytes(f_wave,pos - 44); - - - fclose(f_wave); - f_wave = NULL; - -} // end of CloseWaveFile - - - - -void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) -{//====================================================================================== -// Do nothing in the command-line version. -} // end of MarkerEvent - - -static int WavegenFile(void) -{//========================= - int finished; - unsigned char wav_outbuf[1024]; - - out_ptr = out_start = wav_outbuf; - out_end = wav_outbuf + sizeof(wav_outbuf); - - finished = WavegenFill(0); - - if(f_wave != NULL) - { - fwrite(wav_outbuf, 1, out_ptr - wav_outbuf, f_wave); - } - return(finished); -} // end of WavegenFile - - - - -void FillSoundBuf(int size) -{//======================== -// Fill the buffer with output sound - -// size is number of samples*4 - - size = size; - if(size > sizeof(SoundBuf)) - size = sizeof(SoundBuf); - - out_ptr = (unsigned char *)(&SoundBuf[0]); - out_end = (unsigned char *)(&SoundBuf[size]); - WavegenFill(1); -} - - - -int initialise(void) -{//================= - char buf[N_PATH_HOME]; - - _kernel_swi_regs regs; - _kernel_oserror *error; - - buf[0] = 0; - regs.r[0] = (int)"eSpeak$Dir"; - regs.r[1] = (int)buf; - regs.r[2] = sizeof(buf); - regs.r[3] = 0; - regs.r[4] = 0; - regs.r[5] = 0; - - error = _kernel_swi(0x20023,®s,®s); // OS_ReadVarVal - buf[regs.r[2]] = 0; - - sprintf(path_home,"%s.espeak-data",buf); - if(GetFileLength(path_home) != -2) - { - // not found, try the 10 character version of the directory name - sprintf(path_home,"%s.espeak-dat",buf); - } - if(GetFileLength(path_home) != -2) - { - // still can't find data directory - sprintf(errblk.errmess,"Speak: Can't find data directory: '%s'\n",path_home); - return(-1); - } - - WavegenInit(22050,0); - LoadPhData(NULL); - SetVoiceStack(NULL, ""); - SynthesizeInit(); - return(0); -} - - - -void speak_text_string(char *data, int terminator, int len, int wait, int voice_num) -/**********************************************************************************/ -/* 'wait' indictes wait until speaking is finished before returning */ -{ - int c; - int ix; - char *vname; - static static_length=0; - static int user_token=0; /* increment for each call of translate() */ - _kernel_swi_regs regs; - - regs.r[0] = (int)callback_entry; - regs.r[1] = (int)module_data; - _kernel_swi(0x5f, ®s, ®s); - - option_endpause = 1; - - vname = voice_names[voice_num]; - if((voice_num >= 0) && (strcmp(vname, current_voice_name) != 0) && (voice_num < N_VOICE_NAMES)) - { - SetVoiceByName(voice_names[voice_num]); - WavegenSetVoice(voice); - } - strcmp(current_voice_name, vname); - - /* don't count CR as terminator if length is specified */ - if(len > 0) terminator = 0; - - ix = 0; - if(more_text == 0) - static_length = 0; - else - { - strcat(&static_buf[static_length]," \n "); - static_length+=3; - } - - if(terminator == 0) - { - while(((c = data[ix++]) != 0) && (static_length < N_STATIC_BUF-4)) - { - static_buf[static_length++] = c; - if(ix == len) - break; - } - } - else - { - while(((c = data[ix++]) != '\r') && (c != '\n') && (c != 0) && (static_length < N_STATIC_BUF-3)) - { - static_buf[static_length++] = c; - if(ix == len) - break; - } - } - static_buf[static_length] = 0; - - if(option_waveout==0) - { - if(more_text == 0) - { - InitText(0); - RiscosOpenSound(); - more_text = SpeakNextClause(NULL,(void *)static_buf,0); - } - - while(wait) - { - if((more_text==0) && (wcmdq_head == wcmdq_tail)) - break; - - //we need to block to allow the callback handler to run - regs.r[0] = 129; // wait for key press - regs.r[1] = 10; - regs.r[2] = 0; - _kernel_swi(0x06, ®s, ®s); // OS_Byte - } - } - else - { - more_text = 0; - SpeakNextClause(NULL,(void *)static_buf,0); - - for(;;) - { - if(WavegenFile() != 0) - break; // finished, wavegen command queue is empty - - if(Generate(phoneme_list,&n_phoneme_list,1)==0) - SpeakNextClause(NULL,NULL,1); - } - - CloseWaveFile(samplerate); - } - -} /* end of speak_text_string */ - - - - -void speak_file(char *fname) -{//========================= - FILE *f_in; - char buf[120]; - - f_in = fopen(fname,"r"); - if(f_in == NULL) - { - fprintf(stderr,"Can't read file: '%s'",fname); - return; - } - more_text = 1; - - if(option_waveout == 0) - { - RiscosOpenSound(); - SpeakNextClause(f_in,NULL,0); - } - else - { - more_text = 0; - SpeakNextClause(f_in,NULL,0); - - for(;;) - { - if(WavegenFile() != 0) - break; // finished, wavegen command queue is empty - - if(Generate(phoneme_list,&n_phoneme_list,1)==0) - SpeakNextClause(NULL,NULL,1); - } - - CloseWaveFile(samplerate); - } -} - - - -void set_say_options(int reg2, int reg3) -/**************************************/ -/* Sets options from information in 'say' SWI */ -/* R3 bits 0-7 stress indicator character - bit 8 inhibit unpronouncable check */ -{ - option_linelength = 0; - option_phonemes = 0; - option_waveout = 0; - option_multibyte = 0; // auto - option_capitals = 0; - if(reg2 >= 0) - { - // not using SWI_SPEAK+14 to set voice and punctiation option - option_punctuation = 0; - option_punctlist[0] = 0; - } - else - { - SetParameter(espeakPUNCTUATION,option_punctuation,0); - } -} /* end of set_say_options */ - - - -void jsd_swi_functions(int *r) -/****************************/ -{ - int use_ipa; - espeak_VOICE voice_select; - - switch(r[0]) - { - case 0: /* major version */ - r[0] = 4; - r[1] = 347; - break; - - case 1: /* register user */ - break; - - case 2: /* deregister user */ - break; - - case 3: - // translate into phonemes - use_ipa = 0; - if((r[2] >= 1) && (r[2] <= 5)) - use_ipa = r[2]; - TranslateClause(translator,NULL,(char *)r[1],NULL,NULL); - GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); - r[0] = (int)translator->phon_out; - break; - - case 4: -// r[0] = reload_word_dict(NULL); - break; - - case 5: /* get table of voice names */ - r[0] = (int)voice_names; - r[1] = (int)voice_variant_names; - break; - - case 6: /* update voice data, r1 = voice_number */ - if(r[1] < N_VOICE_NAMES) - { - SetVoiceByName(voice_names[r[1]]); - strcmp(current_voice_name, voice_names[r[1]]); - WavegenSetVoice(voice); - } - break; - - case 7: /* load voice data */ -// init_voice((char *)r[1]); - break; - - case 8: - // list voices, r[1] contains optional language name (or "variant") - voice_select.languages = (char *)r[1]; - voice_select.age = 0; - voice_select.gender = 0; - voice_select.name = NULL; - r[0] = (int)espeak_ListVoices(&voice_select); - break; - - default: - r[0] = 0; - r[1] = 0; - break; - } -} /* end of jsd_swi_functions */ - - - - -_kernel_oserror *swi_handler(int swi_no, int *r, void *pw) -/*********************************************************/ -{ - int value; - int value2; - int q_length; - char *p; - int ix; - value = r[0]; - - switch(swi_no) - { - - case 0: // ready ? - // returns the index into the source text of the currently speaking word - ix = current_source_index & 0x7ff; - if(ix > 0) - r[1] = ix-1; - else - r[1] = ix; /* source index */ - r[2] = 0; /* source tag */ - r[3] = 0; /* for future expansion */ - r[4] = 0; - r[5] = 0; - - if((WcmdqUsed() < 5) && (more_text == 0)) - { - r[0] = -1; /* ready, or nearly */ - } - else - { - r[0] = 0; - } - break; - - case 1: /* restore old sound channel. DO NOTHING */ - break; - - case 2: /* miscellaneous functions */ - jsd_swi_functions(r); - break; - - case 3: /* speak text */ -// _kernel_irqs_on(); - set_say_options(r[2],r[3]); - speak_text_string((char *)r[0],'\r',r[1],0,r[2]); - break; - - case 4: /* speak text and wait */ -// _kernel_irqs_on(); /* enable interrupts */ - set_say_options(r[2],r[3]); - speak_text_string((char *)r[0],'\r',r[1],1,r[2]); - break; - - case 5: /* stop speaking */ - SpeakNextClause(NULL,NULL,2); - more_text = 0; - break; - - case 7: /* pitch */ - value = (value * 50)/128; - SetParameter(espeakPITCH, value, 0); - break; - - case 8: // speed, convert to range 80 to 400, mid-value=180 - if(value < 128) - value2 = 80 + (value*100)/128; // linear range for 0-127 -> 80-179 - else - value2 = 80 + pow((float)value/128.0, 1.75)*100; - - SetParameter(espeakRATE,value2,0); - break; - - case 9: /* word_gap */ - if(value >= 128) - value = value - 128; - - if(value > 1) - value = (value-1) * 5; - - SetParameter(espeakWORDGAP,value,0); - break; - - case 10: /* pitch_range */ - value = (value * 50)/128; - SetParameter(espeakRANGE, value, 0); - break; - - case 12: /* reset */ - // not implemented - break; - - case 13: /* volume */ - // convert to range 6-255 to 10-400, mid-value=100 - if(value < 6) - value2 = value + 4; - else - if(value < 128) - { - value2 = pow((float)(value+40)/168.0, 1.75)*100; - } - else - value2 = pow((float)value/128.0, 2.0)*100; - SetParameter(espeakVOLUME,value2,0); - WavegenSetVoice(voice); - break; - - case 14: // set voice by name - p = (char *)r[0]; - if(strcmp(p, current_voice_name) != 0) - { - SetVoiceByName(p); - WavegenSetVoice(voice); - strcpy(current_voice_name, p); - } - option_punctuation = 0; - if(r[1] != 0) - { - p = (char *)r[1]; - if(p[0] == 0) - option_punctuation = 1; - else - { - for(ix=0; ix < N_PUNCTLIST; ix++) - { - if((option_punctlist[ix] = p[ix]) == 0) - break; - } - option_punctlist[N_PUNCTLIST-1] = 0; - option_punctuation = 2; - } - } - break; - } - return(NULL); -} /* end of swi_handler */ - - - -void PitchAdjust(int pitch_adjustment) -{//=================================== - int ix, factor; - - extern unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1]; - - voice->pitch_base = (voice->pitch_base * pitch_adjust_tab[pitch_adjustment])/128; - - // adjust formants to give better results for a different voice pitch - factor = 256 + (25 * (pitch_adjustment - 50))/50; - for(ix=0; ix<=5; ix++) - { - voice->freq[ix] = (voice->freq2[ix] * factor)/256; - } -} // end of PitchAdjustment - - - -void DisplayVoices(FILE *f_out, char *language) -{//============================================ - int ix; - const char *p; - int len; - int count; - int scores = 0; - const espeak_VOICE *v; - const char *lang_name; - char age_buf[12]; - const espeak_VOICE **voices; - espeak_VOICE voice_select; - - static char genders[4] = {' ','M','F',' '}; - - if(language[0] == '=') - { - // display only voices for the specified language, in order of priority - voice_select.languages = &language[1]; - voice_select.age = 0; - voice_select.gender = 0; - voice_select.name = NULL; - voices = espeak_ListVoices(&voice_select); - scores = 1; - } - else - { - voices = espeak_ListVoices(NULL); - } - - fprintf(f_out,"Pty Language Age/Gender VoiceName File Other Langs\n"); - - for(ix=0; (v = voices[ix]) != NULL; ix++) - { - count = 0; - p = v->languages; - while(*p != 0) - { - len = strlen(p+1); - lang_name = p+1; - - if(v->age == 0) - strcpy(age_buf," "); - else - sprintf(age_buf,"%3d",v->age); - - if(count==0) - { - fprintf(f_out,"%2d %-12s%s%c %-17s %-11s ", - p[0],lang_name,age_buf,genders[v->gender],v->name,v->identifier); - } - else - { - fprintf(f_out,"(%s %d)",lang_name,p[0]); - } - count++; - p += len+2; - } -// if(scores) -// fprintf(f_out,"%3d ",v->score); - fputc('\n',f_out); - } -} // end of DisplayVoices - - - -char *param_string(char **argp) -{//============================ - char *p; - int ix=0; - static char buf[80]; - - p = *argp; - while(*p == ' ') p++; - while(!isspace(*p)) - buf[ix++] = *p++; - buf[ix]=0; - - *argp = p; - return(buf); -} - -int param_number(char **argp) -{//========================== - int value; - char *p; - - p = *argp; - while(*p == ' ') p++; - - value = atoi(p); - while(!isspace(*p)) p++; - *argp = p; - return(value); -} - -void PrintVersion() -{//================ - char buf[120]; - printf("\nspeak text-to-speech: %s Data at: %s\n", version_string, path_home); -} - - -void command_line(char *arg_string, int wait) -{//========================================== - - int option_index = 0; - int c; - int value; - int speed; - int amp; - int wordgap; - int speaking = 0; - int flag_stdin = 0; - int flag_compile = 0; - int error; - int pitch_adjustment = 50; - char filename[80]; - char voicename[40]; - char command[80]; - char *p; - int ix; - int quiet; - - voicename[0] = 0; - wavefile[0] = 0; - filename[0] = 0; - option_linelength = 0; - option_phonemes = 0; - option_waveout = 0; - quiet = 0; - option_multibyte = 0; // auto - option_capitals = 0; - option_punctuation = 0; - option_punctlist[0] = 0; - - f_trans = stdout; - - p = arg_string; - - for(;;) - { - while(*p==' ') p++; // skip spaces - if(*p == '\r') break; // end of line - - if(*p == '-') - { - // a command line argument - p++; - switch(*p++) - { - case 'b': - option_multibyte = espeakCHARS_8BIT; - break; - - case 'h': - PrintVersion(); - printf("\n%s",help_text); - return; - - case 'k': - option_capitals = param_number(&p); - SetParameter(espeakCAPITALS,option_capitals,0); - break; - - case 'x': - option_phonemes = 1; - break; - - case 'X': - option_phonemes = 2; - break; - - case 'm': - option_ssml = 1; - break; - - case 'p': - pitch_adjustment = param_number(&p); - break; - - case 'q': - quiet = 1; - break; - - case 'f': - strncpy0(filename,param_string(&p),sizeof(filename)); - break; - - case 'l': - option_linelength = param_number(&p); - break; - - case 'a': - amp = param_number(&p); - SetParameter(espeakVOLUME,amp,0); - break; - - case 's': - speed = param_number(&p); - SetParameter(espeakRATE,speed,0); - break; - - case 'g': - wordgap = param_number(&p); - SetParameter(espeakWORDGAP,wordgap,0); - break; - - case 'v': - strncpy0(voicename,param_string(&p),sizeof(voicename)); - break; - - case 'w': - option_waveout=1; - strncpy0(wavefile,param_string(&p),sizeof(wavefile)); - break; - - case '-': - strncpy0(command,param_string(&p),sizeof(command)); - if(memcmp(command,"compile=",8)==0) - { - CompileDictionary(NULL,&command[8],NULL,NULL,0); - return; - } - else - if(memcmp(command,"voices",6)==0) - { - DisplayVoices(stdout,&command[6]); - return; - } - else - if(strcmp(command,"help")==0) - { - PrintVersion(); - printf("\n%s",help_text); - return; - } - else - if(memcmp(command,"punct",5)==0) - { - option_punctuation = 1; - if((command[5]=='=') && (command[6]=='"')) - { - ix = 0; - while((ix < N_PUNCTLIST) && ((option_punctlist[ix] = command[ix+7]) != 0)) ix++; - option_punctlist[N_PUNCTLIST-1] = 0; - option_punctuation = 2; - } - SetParameter(espeakPUNCTUATION,option_punctuation,0); - } - else - if(memcmp(command,"version",7)==0) - { - PrintVersion(); - return; - } - else - if(memcmp(command,"ipa",3)==0) - { - option_phonemes = 3; - } - else - { - printf("Command not recognised\n"); - } - break; - - default: - printf("Command not recognised\n"); - break; - } - - } - else - { - break; - } - } - - if((option_phonemes > 1) && !option_waveout) - quiet = 1; // can't call sprintf() during callback - - SetVoiceByName(voicename); - - if((filename[0]==0) && (p[0]=='\r')) - { - // nothing to speak - if(quiet) - { - SpeakNextClause(NULL,NULL,2); // stop speaking - more_text = 0; - } - } - - if(option_waveout || quiet) - { - // write speech to a WAV file - if(quiet) - { - OpenWaveFile(NULL,samplerate); - option_waveout = 2; - } - else - { - if(OpenWaveFile(wavefile,samplerate) != 0) - { - fprintf(stderr,"Can't write to output file '%s'\n'",wavefile); - return; - } - } - } - - if(pitch_adjustment != 50) - { - PitchAdjust(pitch_adjustment); - } - WavegenSetVoice(voice); - - if(filename[0]==0) - speak_text_string(p,'\r',0,wait,-1); - else - speak_file(filename); -} - - - -_kernel_oserror *command_handler(char *arg_string, int argc, int cmd_no, void *pw) -/********************************************************************************/ -{ - switch(cmd_no) - { - case 0: /* Say */ - command_line(arg_string,0); // for compatibility with speak V2 - break; - - case 1: /* Sayw ] */ - command_line(arg_string,0); - break; - - } - return(NULL); -} /* end of cmd_handler */ - - -// sound handler data -int current_sound_handler=0; -int prev_sound_handler=0; -int prev_sound_data=0; -int prev_sound_rate=13; -int sound_handler_changed=0; - - -void RiscosCloseSound() -{//==================== -_kernel_swi_regs regs; - if((sound_handler_changed) && (prev_sound_handler != (int)DMA_Handler)) - { - // check whether current handler is ours - regs.r[0]=0; - _kernel_swi(0x40145,®s,®s); - if(regs.r[1] == (int)DMA_Handler) - { - regs.r[0]=1; - regs.r[1]=prev_sound_handler; - regs.r[2]=prev_sound_data; - _kernel_swi(0x40145,®s,®s); // Sound LinearHandler 1 - - // reset to the previous sample rate - regs.r[0]=3; - regs.r[1]=prev_sound_rate; - _kernel_swi(0x40146,®s,®s); // Sound_SampleRate 3 - - current_sound_handler = prev_sound_handler; - sound_handler_changed = 0; - } - } -} // end of RiscosCloseSound - - - -void RiscosOpenSound() -{//=================== - _kernel_swi_regs regs; - - if(current_sound_handler != (int)DMA_Handler) - { - // register the sound handler - regs.r[0]=1; - regs.r[1]=(int)DMA_Handler; - regs.r[2]=(int)module_data; - _kernel_swi(0x40145,®s,®s); // Sound_LinearHandler 1 - prev_sound_handler = regs.r[1]; - prev_sound_data = regs.r[2]; - - // set the sample rate - regs.r[0]=3; - regs.r[1]=sample_rate_index; - regs.r[2]=0; - _kernel_swi(0x40146,®s,®s); // Sound_SampleRate - prev_sound_rate = regs.r[1]; - - current_sound_handler = (int)DMA_Handler; - sound_handler_changed = 1; - } -} // end of RiscosOpenSound - - - - - -int callback_handler(_kernel_swi_regs *r, void *pw) -/*************************************************/ -{ - if(Generate(phoneme_list,&n_phoneme_list,1)==0) - { - more_text = SpeakNextClause(NULL,NULL,1); - } - - if((WcmdqUsed() == 0) && (more_text == 0)) - { - RiscosCloseSound(); - } - callback_inhibit = 0; - - return(1); -} /* end of callback_handler */ - - - -int sound_handler(_kernel_swi_regs *r, void *pw) -/**********************************************/ -{ - int n_queue; - int size; - int *dma_buf; - int x; - int ix; - - module_data = (int *)pw; - dma_buf = (int *)r->r[1]; - size = (r->r[2] - r->r[1])/4; - FillSoundBuf(size); - - for(ix=0; ixr[0] = 0; - if(callback_inhibit == 0) - { - // set a callback either: - // - queue is low and there is more text to be processed - // - queue is empty and no more text, so callback handler will remove the sound handler - if(((n_queue < 20) && (more_text != 0)) || - ((n_queue==0) && (more_text == 0))) - { - callback_inhibit = 1; - r->r[0] = 1; - r->r[1] = (int)pw; - } - } - return(1); -} - - - - -int InitSound16(int sample_rate) -/******************************/ -/* Find sample rate index */ -{ - int current_rate_index; // current value - - int sound_mode; - int sound_config; - int srate; - int n_srix; - int ix; - _kernel_swi_regs regs; - _kernel_oserror *error; - - sound_mode = 0; - regs.r[0] = 0; - error = _kernel_swi(0x40144+os_X,®s,®s); - sound_mode = regs.r[0]; - sound_config = regs.r[1]; - - if((error == NULL) && (sound_mode == 1)) - { - /* 16 bit sound, find sample rate index */ - regs.r[0] = 0; - regs.r[1] = 0; - _kernel_swi(0x40146,®s,®s); - n_srix = regs.r[1]; - - regs.r[0] = 1; - regs.r[1] = 0; - _kernel_swi(0x40146,®s,®s); - current_rate_index = regs.r[1]; // current sample rate index - srate = regs.r[2]; - for(ix=1; ix<=n_srix; ix++) - { - regs.r[0] = 2; - regs.r[1] = ix; - _kernel_swi(0x40146,®s,®s); - srate = regs.r[2]; - if(srate >= (sample_rate*1024)) - { - return(ix); - } - } - } - return(14); // this was the index for 22050 -} // end of InitSound16 - - - -void RemoveCallback() -/*******************/ -{ - _kernel_swi_regs regs; - - regs.r[0] = (int)callback_entry; - regs.r[1] = (int)module_data; - _kernel_swi(0x5f, ®s, ®s); -} - - -void terminate_module(void) -/*************************/ -{ - RiscosCloseSound(); - RemoveCallback(); - DeleteTranslator(translator); - FreePhData(); -} /* end of terminate_module */ - - -void kill_module(void) -/********************/ -{ - _kernel_swi_regs regs; - regs.r[0]=4; - regs.r[1]=(int)"Speak"; - _kernel_swi(0x1e,®s,®s); /* RMKill */ -} - - -_kernel_oserror *user_init(char *cmd_fail, int podule_base, void *pw) -/*******************************************************************/ -{ - _kernel_swi_regs regs; - _kernel_oserror *error; - int param; - - // It seems that the wctype functions don't work until the locale has been set - // to something other than the default "C". Then, not only Latin1 but also the - // other characters give the correct results with iswalpha() etc. - - static char *locale = "ISO8859-1"; - setlocale(LC_CTYPE,locale); - - module_data = pw; - - sample_rate_index = InitSound16(22050); - - if(initialise() < 0) - { - // exit module, errblk.errmess is set by initialise() - errblk.errnum = 0x101; - return(&errblk); - } - - ReadVoiceNames(); - SetVoiceByName("default"); - - for(param=0; param