diff --git a/dictsource/da_list b/dictsource/da_list index e9bf20d1..ce69a84e 100755 --- a/dictsource/da_list +++ b/dictsource/da_list @@ -261,7 +261,8 @@ square _^_EN appeal _^_EN apple _^_EN bbc _^_EN -beat _^_EN +beachbuggy _^_EN +beachvolley _^_EN browser _^_EN byte _^_EN camcorder _^_EN @@ -361,6 +362,7 @@ warrior _^_EN austin _^_EN bailey _^_EN bronx _^_EN +clarence _^_EN cyrus _^_EN fox _^_EN jean _^_EN @@ -2299,6 +2301,7 @@ billie bile // PB the name Billie (union station) junj3n||steisj@n // PB chevrolet sjEvrol'e saigon sajg3-n // PB Saigon +managua m&n'&:gw& // Abbreviations pga pOgR'O?n'a? $hasdot // PB short for 'på grund af' @@ -2333,3 +2336,8 @@ phil fil/3 $hasdot // PB fx cand. phil. (sig til) si||tel // PB sig til ham, at han skal ... (gav sig til) g&||saj||tel // PB han gav sig til at ... sig si $capital PB Sig = si with capital S - Sig det med blomster +// avoid [staj] as in "flæskesteg" +(han steg) h&n||st'e +(hun steg) hOn||st'e +(vi steg) vi||st'e +(de steg) di||st'e diff --git a/dictsource/da_rules b/dictsource/da_rules index 3e798455..84def846 100755 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -1,4 +1,4 @@ - + // This file is UTF8 encoded // Spelling-to-phoneme rules for Danish @@ -40,11 +40,13 @@ agglomer) a (t 'A // PB stressed a in 'agglomerat' a (nt '& // PB stressed a in words with -ant - interessant Ah) a (nd '& // PB stressed a in words with -hand - behendling ok) a (l '& // PB stressed a in 'vokal, lokal, bifokal' + v) a (nlig '& // PB usædvanlig - stressed a bl) a a // PB blad fr) a A // PB fra, fratage gr) a A // PB gratis a (L03K &: // PB alle, anden h) a (CK & // PB han +hvabeh) ar 'A // PB hvabehar a (L03 &: // PB foran halvvokal a (v+ A // PB tavs L08) a (v & // PB stav @@ -271,7 +273,7 @@ stikor) d // PB exception - no d in 'stikord' ri) d (e D si) d (e D ti) d (e D - ur) d (e d +// ur) d (e d vi) d (e D æl) d (e Coe) d (e // PB boede without d @@ -279,7 +281,7 @@ stikor) d // PB exception - no d in 'stikord' ral) d (e sag) d (e snu) d (e D - A) de (N_ D@ // PB change to D? + A) de (_ D@ // PB change to D? in) d (eks d mo) d (el 'd or) d (el d @@ -369,6 +371,7 @@ tilfre) d (s afl) e 3 // PB aflevere ov) e (r 3 // PB over l) e (r 3 // PB forhandlere + fl) e (r e // PB flere e (lse @ // PB fornøjelse sk) e (t_ e // PB sket r) eau o // PB bureaukratiske @@ -382,7 +385,10 @@ tilfre) d (s nt) e @ // PB tante, hente nt) e (r V // PB tanter, henter mont) e (r e // PB montere - e (r_++ V // PB changed from [e (rK] - 'vers' mispronounced + v) e (r+ e // PB vers, verden + e (rK+ V // PB efter + k) e (r+ e // PB forkert + er (ne V // PB kammeraterne _) e (r_++ er // PB er h) e (r++ e // PB her, herhen _sk) er (_ er // PB sker @@ -391,14 +397,15 @@ tilfre) d (s fr) e (L03 a // PB fremme, frende, frelse fr) e (d e // PB fred fredag l) e (t e // PB toilet - _l) e (r_ e // PB ler + _l) er (_++ er // PB ler hv) e (r e // PB hver el) e (r V // PB hellere mm) e (l @ // PB gammel s) e (_ @ // PB rose, skose _s) e (_ e? // PB se L06) er (_ &r // PB per -L06L06) (er V // PB klipper +L06L06) er V // PB klipper +L03L06) er (_ V // PB bomber _) er (_ &r // PB er _a) e (_ 3 // PB ae pl) e (men 3 // PB supplement @@ -479,12 +486,16 @@ softic) e // PB softice e (gn a // PB tegne , hegn bl) e (m 3 // PB møblement probl) e (m 'e // PB stressed e + C) e (ring 'e // PB stressed e in words with -ering (1.000) - likvidering + e (ndig 'e // PB stressed e in words with -endig - elendig, nødvendig ni) e (n e ani) e (l e lini) e @ // PB changed from [e] to [@] r) e (_N 3_: // PB mere +// r) e (_T e // PB for words in the list file with -ere r) e (nd a // PB rend n) e (r V // PM klovner + hvab) e (har_ 3 // PB hvabehar _r) e e // r) e ( r) e (l e @@ -509,7 +520,8 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet gourm) e 'e // PB gourmet @) e (kt 'e: // PB stressed e in words with -ekt - konfekt L06) eg (e aj // PB p) changed to L06 to include b - L08) eg aj // PB steg, spegepølse + L08) eg aj // PB steg, spegepølse - problem with the verb stige/steg + best) eg (_ 'e // PB besteg jav) e (l 'e // PB stressed e in 'javel' m) eg (a eg eg (et a:j @@ -552,11 +564,13 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet Ad) en (@ '@-n // udenlandsk, udenad &) ene (_ @-n@ &) ende (_ @-nn@ + &) ere (_T 'e:3 // PB can't get 'vurdere' to work with -ere words in list file &) eren (_ 3r3n - &) ere (_T 'er3 // PB stressed - manipulere, protestere - words in list file + &) ere (NT_ 'e:3 // PB stressed - manipulere, protestere - words in list file &) erede (NS2_ =D3 // PB stressed - manipulerede, protesterede - words in list file - &) eres (TNS1_ =s // PB stressed - manipuleres, protesteres - words in list file - &) eret (TNS1_ =3D // PB stressed - manipuleret, protestet 1.810 words in list file + &) eres (NS1_ =s // PB stressed - manipuleres, protesteres - words in list file + &) erer (NS1_ =V // PB stressed - manipuleres, protesteres - words in list file + &) eret (S1_ =3D // PB stressed - manipuleret, protestet 1.810 words in list file _sen) ere er3 // PB senere &) eren (s_ 3r3n &) es (_ @s @@ -568,7 +582,9 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet ir) e (n 'e yr) e (n 'e ork) e (ster 'e // PB stressed e in 'orkester' + forur) e (ne 'e // PB stressed - forurene st) e (ret // PB orkesteret + b) ea (t i: // PB beat, beatorkester ompet) en (ce aN ress) en (timent aN // PB ressentiment bl) e (g aj // PB bleg @@ -630,6 +646,7 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet g) g (e g (ent g g (entl j // PB egentlig + ami) g (o g // PB amigo &) g (r g g (ård g g (ment g @@ -640,7 +657,7 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet ser) gent 'sjant // PB sergent gjorde gjo:3 // PB gjorde ki) g k // PB kig, udkig - a) g (C ?w +// a) g (C ?w a) g (e a) g (en g a) g (i g @@ -648,7 +665,6 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet a) g (urk 'g g) g //e) g (e - ste) g j // PB steg, stegefedt e) g (o g i) g (t g i) g (t_ @@ -782,6 +798,7 @@ trikota) g (e =S // PB trikotage bor) g u bud) g (et S gti) g + gti) g (ere // PB vigtigere hol) g (er g jer) g (A w jer) g (C w @@ -855,32 +872,39 @@ foreta) g (e ige (_ i;@ iew j'u i (nK i + r) i (nK e // PB ring + am) i (go 'i // PB amigo i (nn e i (mK e i (k e // PB ikke, pik + l) i (k i // PB likvid pr) i (+ i // PB privat i (kk+ e // PB skiderikker i (r+ i // PB Irland, irrationel - L02) i (L03 e // PB foran halvvokal - til +// L02) i (L03 e // PB foran halvvokal - til + t) i (me i: // PB time s) i (dA+ i: // PB siden -// s) i (d_ e // PB sid + s) i (d_ e // PB sid s) i (dd+ e: // PB sidde s) i (gA+ i // PB siger s) i (n e // PB tusind t) i (d+ i // PB tiden - t) i (l e // PB til + t) i (n e // PB tin, ting l) i (p e // PB slippe //L03) i (L03K i // PB mellem to halvvokaler midt, vil, til SHOULD BE e FIND A RULE FOR Camilla with i L03) i (L03L03 e // PB middag L03) i (L03 i //PB vide + L03) i (g+ i // PB ligne + L03) i (gt+ e // vigtig L03) i (L03L02 e // PB spille v) i (l+ e // PB vil - ) i (l e // PB til + t) i (l e // PB til to) i (l // PB toilet ju) i (ce // juice - skip the i soft) i (ce aj // PB softice - fr) i e // PB fri + fr) i i // PB fri + fr) i (L08 e // PB friste s) i (kC e // PB sikker, sikre p) is es // PB pis p) i (L08+ i // PB pisk, pistol @@ -914,10 +938,11 @@ prosod) i 'i // PB prosodi, prosodien perfid) i 'i // PB perfidi rapsod) i 'i // PB rapsodi ortopæd) i 'i // PB ortopædi - v) i (sk e // PB viskelæder + v) i (L08 e // PB viskelæder l) i (e j n) i (e i r) i (g i + r) i (gt e // PB rigtigt s) i (e j t) i (e j t) i (on // i ommitted because of sj @@ -946,7 +971,7 @@ ortopæd) i 'i // PB ortopædi k k kk k - k) (oordinat oVdi'nat + k (oordinat oVdi'nat s) k g pun) k (t N run) k (en N @@ -1032,7 +1057,7 @@ bombarde) ment m'AN // PB bombardement n n // nn n - band) (er n? // PB takes away the d in 'bander' = 'gangs' - n => n? + ba) nd (er n? // PB takes away the d in 'bander' = 'gangs' - n => n? ka) n_ // no n - kan nd (K n nd (ow nd @@ -1105,14 +1130,16 @@ bombarde) ment m'AN // PB bombardement o (sse V // PB tosse, nosse j) o (b V // PB job o (vA+ Vu // PB over, oven - o (v++ V // PB sjov, lov, skov + o (v+ V // PB sjov, lov, skov + l) o (ve+ Vu // PB love h) o (v+ o // hov, sove telef) o (n 'o // PB telefon L08j) o (l V // PB skjold tr) o o // PB tro bistr) o 'o // PB stressed o in 'bistro' + pist) o (l 'o // PB stressed o - pistol _m) o (C o // PB m + o + 2 consonants: mor, mord, - L08) o (L03 o: // PB exception from the rule above - skole, spole + L08) o (l o: // PB skole, spole o (L03A o // PB - romantisk, hoved // L02) o (L03_ V // PB consonant + o + semivowel + end of word - kom, som _C) o (_ o // PB jo, ko, lo, so @@ -1125,6 +1152,7 @@ bombarde) ment m'AN // PB bombardement o (f V // PB ofte l) o (f V r) o (f o // PB profil + r) o (tt V // PB rotte spr) o (g o // PB sprog k) ors V:s // PB kors, korsage c) o (rs V // PB corsage @@ -1178,6 +1206,8 @@ transp) o (rt 'V: // PB transport ou 'u // PB poussin, toupe ough Vf // PB tough, rough - only 2 words oun aVn // PB discount + nark) o (tik 'o // PB narkotika, narkotisk + ul) o (v 'V // PB stressed o - ulovlig .group or @@ -1267,7 +1297,7 @@ transp) o (rt 'V: // PB transport _f) or (kammer 'V // PB forkammer _f) or (kant 'o // PB forkant _f) or (karl 'o // PB forkarl - _f) orka) (rl+ a // PB forkarl + _f) orka (rl+ a // PB forkarl _f) or (klog 'o // PB forklog, forklogskab _f) or (kontor 'o // PB forkontor _f) or (krop 'o // PB forkrop @@ -1444,18 +1474,21 @@ transp) o (rt 'V: // PB transport suppo) r //PB support [s@p'@t] r (K r // not followed by a vowel e) r (_ // PB end of word: no r - lager [l&:V] + ve) r (+ r // PB over, overrasket + r (e_ // PB end of word before e: no r + r (e_T+ r _se) r (_ r // PB ser he) r (_ r // PB her e) r (es 3 // PB jeres, deres bu) rd (eK rd -// &) rd (eKK r + &) rd (eNKK r ve) rd (eKK rd &) rd (e_ r o) rd (el++ rd o) rd (en++ d // PB exception - pronounce d in 'orden, ordentlig' o) rd (rin d - A) r (eT // PB bære without r - A) r (e_T // PB hellere +// A) r (eN // PB bære without r + A) r (eN_ // PB hellere transpo) r (t //PB transport @@ -1467,7 +1500,7 @@ transpo) r (t //PB transport s (C s s (A s s (ie s - s (ion S + s (ion S' // PB stress added s (j s sch S // PB changed from [s(ch] - casch al) s (ace 's // PB Alsace (French region) @@ -1481,6 +1514,7 @@ kompromi) s p) t t // PB toptitel s) t d // PB stor A) t (er d // PB Peter, efter, alter + A) t (ere t // PB invitere teress tr@s // PB interessant L03) t t // PB garanteret r) t d // PB kuffert @@ -1506,7 +1540,7 @@ simpel) th (en th t (ie t t (ion+ sj' t (iøs+ sj' - &) tt t +// &) tt t .group u u u: // PB u => u: - u couldn't be heard in 'umuligt' @@ -1563,7 +1597,7 @@ proven) u y le) v (et // PB blevet, levet la) v (A // PB no v - laver la) v (ement @ // PB lavement - ve (lse @ // PB øvelse + ve (lse v3 // PB øvelse &A) v v &r) v v al) v (A v @@ -1616,7 +1650,8 @@ proven) u y y (nK W // PB changed from Y to W - synge, ynde l) y (n y // PB lyn whisk) y i // PB whisky - y (nde 'W // PB begynde - stressed + y (nd 'W // PB begynde - stressed + best) y (r 'y // PB bestyre - stressed y (mK Y d) y (_ i b) y (A y @@ -1632,7 +1667,7 @@ proven) u y .group æ æ E - æ (CK E + æ (CK E: æ (bK E // PB dræb, slæb æ (bt ae? // PB dræbt - FIND A BETTER VOWEL f) æ (re 'E: // PB affære, atmosfære, sfære @@ -1665,6 +1700,7 @@ proven) u y g) ø (r @: h) ø (j V ø (je V3 // PB øje + ø (jn V3 // PB øjne h) ø (r W: //k) ø (r W: l) øg (n 'Vj diff --git a/dictsource/fr_rules b/dictsource/fr_rules index c85ab86b..d03fe8c0 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -23,7 +23,7 @@ // 2006-11-18 Gilles Casse // -// Updated: 2010-03-05 Michel Such +// Updated: 2010-03-08 Michel Such // // Letter classes: @@ -61,7 +61,7 @@ a (ils_ a a (il_ a aie (me E2 // paiement - ai E2 // aile + ai E // aile ai (L06 E // aile ai (CAX E // aile am (b A~ // jambon @@ -650,7 +650,7 @@ dia) g (no g vin) gt (_neuvi t gt (_ // vingt doigts - gt t // vingtaine doigté +vin) gt (A t // vingtaine doigté gu (i g // anguille ai) gui (l gw^i // aiguillage @@ -768,6 +768,7 @@ C) i (es_ i C) ill ij // famille a) il (_ j // bail e) il (_ j + gt) i (m aj u) il (_ j // deuil L01_f) ils (_ is // fils (enfant) @@ -782,7 +783,7 @@ C) i (es_ i in (C E~ // vingt in (_ W~ // vin ing (_ iN - _) infra (_P5 E~fra + _) infra (sP5 E~fra _) inter (@@P5 E~tEr _) interr (A E~tEr _) inter (_ E~t'Er @@ -989,6 +990,8 @@ C) i (es_ i oû u // coûter oyes (_ ua // troyes oy (A uaj // noyer voyelles +_b) oy (co oi- // boycott +_c) oy (o oi // coyote _y) o (y o oy ua // roy o (_ o // zorro allégro diff --git a/dictsource/hu_list b/dictsource/hu_list index e5236a56..92709e08 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -141,6 +141,8 @@ _#-áig a:ig $alt2 _#-étől e:tY:l $alt2 _#-ét e:t $alt2 _#-át a:t $alt2 +_#-ének e:nEk +_#-ának a:nAk (1-e) elseje $text $alt2 (1-én) elsején $text $alt2 @@ -163,6 +165,7 @@ _#-át a:t $alt2 (1-jére) elsejére $text $alt2 (1-jétől) elsejétől $text $alt2 (1-jéig) elsejéig $text $alt2 +(1-ének) elsejének $text $alt2 (2-i) másodikai $text $alt2 (2-ig) másodikáig $text $alt2 (3-i) hAR2_mAdikAi $alt2 diff --git a/dictsource/hu_rules b/dictsource/hu_rules index cd91a7f1..b9efe015 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -70,7 +70,7 @@ kavi) cs (zátony tS har) c (cselek ts külön) c (sé ts - mala) c (sül ts +mala) c (sül ts .group ch @@ -165,10 +165,10 @@ menetren) dsz (erű d|s ötö) dsz (ör ts: ezre) d (szin d ha) d (szin d - hor) d (szí d - ezre) d (szá d - kó) d (sor d - máso) d (szin d +hor) d (szí d +ezre) d (szá d +kó) d (sor d +máso) d (szin d .group dz @@ -270,7 +270,7 @@ ritkasá) g (gyűjt g é) gh (ajla kh se) gg (fe g se) gg (be g - pro) g (gyak g +pro) g (gyak g .group gy gy J @@ -336,8 +336,8 @@ tizene) gy (edik J: e) gy (aránt J: e) gy (enrang J: e) gy (előre J: - e) gy (enként J: -félmege) gy (ez J: +e) gy (enként J: +félmege) gy (ez J: .group h @@ -389,7 +389,7 @@ félmege) gy (ez J: kossutht koSu:t: készségg ke:SSe:g: _a) kk (reditál k - _) köztük kYstyk + _) köztük kYstyk .group l l l @@ -436,7 +436,7 @@ keresztü) l (j l me) ll (kas l inte) ll (ige l e) ll (ipsz l - _) e) lj (ár lj +_) e) lj (ár lj @@ -501,6 +501,7 @@ tulajdo) n (jog n egye) n (jogú n beto) n (járda n verse) ny (jog n^ +irá) ny (jel n^ .group o o o @@ -740,7 +741,7 @@ gyalogo) ssz Ss rádió) ssz (ob Ss jelzé) ssz (erű Ss kitöré) ssz (erű Ss - hatá) ssz (üne Ss +hatá) ssz (üne Ss .group sz sz s @@ -941,7 +942,7 @@ terüle) t (cél t néme) t (juhá t pó) t (je t halo) tt (ba t - éle) t (jel t +éle) t (jel t .group ts ts (_S2 tS //general rule with word end of ts letters @@ -1138,7 +1139,7 @@ találko) z (t s zsz z|s //general exception. Need difference first z and second sz phoneme. For example, rajzszög, rajzszeg, mézszín words. pén) z (t s rende) z (ked s - kocká) z (ta s + kocká) z (ta s hibá) z (tat s különbö) z (tet s válto) z (tat s @@ -1156,10 +1157,10 @@ tájéko) z (tass s búcsú) z (ko s nyújtó) z (ko s ő) z (sörét z -szedelő) z (kö s -alkalma) z (ko s - egye) z (ke s - egye) z (te s +szedelő) z (kö s +alkalma) z (ko s +egye) z (ke s +egye) z (te s .group diff --git a/dictsource/ru_list b/dictsource/ru_list index 08e71fe1..4e65beae 100644 --- a/dictsource/ru_list +++ b/dictsource/ru_list @@ -28,7 +28,7 @@ _10 d;'es;It; _11 Od;'innVttsVt; _12 dv;In'AttsVt; _13 tR;In'AttsVt; -_14 ts;It'y@-*nVttsVt; +_14 tS;It'y@-*nVttsVt; _15 p;Itn'AttsVt; _16 SE#stn'AttsVt; _17 s;Imn'AttsVt; @@ -45,15 +45,15 @@ _9X d;E2v;In'ostO _0C st'o _2C dv;'es;t;I _3C tr;'ista -_4C ts;It'yr;E2sta +_4C tS;It'yr;E2sta _5C p;,It;s'ot _6C S,E#s;t;s'ot _7C s;,Ims'ot _8C vOs;Ims'ot _9C dev;Vn'ostO -_1MA1 t'ys;Its;V // no '1' before thousand -_0MA1 t'ys;Its;i -_0M1 t'ys;Vts; +_1MA1 t'ys;ItS;V // no '1' before thousand +_0MA1 t'ys;ItS;i +_0M1 t'ys;VtS; _1MA2 m;,IlI;'on _0MA2 m;,IlI;'ona _0M2 m;,IlI;'onof diff --git a/phsource/compile_report b/phsource/compile_report index 18aa928d..dc35b0f6 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -320,8 +320,8 @@ l/l_@ [l/3] base [W] fr [Y] fr [l/] fr -l/l@ [L] base - [¼ÈÔ] base +l/l@ [] base + [L] base [W] fr [Y] fr [l] fr @@ -347,14 +347,14 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [L] base - [¼ÈÔ] base +l/la [] base + [L] base [a] fr [l] fr l/l_a [l/3] base [l/] fr -l/le [L] base - [¼ÈÔ] base +l/le [] base + [L] base [l] fr l/l_e [l/3] base [l/] fr @@ -362,8 +362,8 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [L] base - [¼ÈÔ] base +l/li [] base + [L] base [l] fr [l] zh l/l_i [l/3] base @@ -371,15 +371,15 @@ l/l_i [l/3] base [i] sq l/l_long [l] base [l] fr -l/lo [L] base - [¼ÈÔ] base +l/lo [] base + [L] base [l] fr l/l_o [l/3] base [l/] fr [o2] fr l^/l_rfx [l.] base -l/lu [L] base - [¼ÈÔ] base +l/lu [] base + [L] base [l] fr [w^i] fr l/l_u [l/3] base @@ -1868,23 +1868,23 @@ vwl_fr/r [r] fr vwl_fr/_r [r] fr vwl_fr/r_ [r/2] fr vwl_fr/r_@ [r/2] fr -vwl_fr/r@ [‰g] fr +vwl_fr/r@ [Ég] fr vwl_fr/@R [x] pt_pt vwl_fr/_r2 [r] fr vwl_fr/@R2 [R] fr_ca -vwl_fr/ra [‰g] fr +vwl_fr/ra [Ég] fr vwl_fr/r_a [r/2] fr vwl_fr/raa [A~] fr vwl_fr/r_an [A~] fr -vwl_fr/re [‰g] fr +vwl_fr/re [Ég] fr vwl_fr/r_e [r/2] fr -vwl_fr/ri [‰g] fr +vwl_fr/ri [Ég] fr vwl_fr/r_i [r/2] fr -vwl_fr/ro [‰g] fr +vwl_fr/ro [Ég] fr vwl_fr/r_o [o] fr [o2] fr [r/2] fr -vwl_fr/ru [‰g] fr +vwl_fr/ru [Ég] fr vwl_fr/r_u [r/2] fr vwl_fr/ry [y] fr [w^i] fr @@ -1926,6 +1926,7 @@ vwl_ru/ii# [I#] ru vwl_ru/ja [ja] ru vwl_ru/ju [ju] ru vwl_ru/o [o] ru +vwl_ru/oo [O] ru vwl_ru/u [u] ru vwl_ru/u# [u#] ru vwl_ru/u#u [u"] ru diff --git a/phsource/ph_french b/phsource/ph_french index 72bd878e..c5ea0f9b 100644 --- a/phsource/ph_french +++ b/phsource/ph_french @@ -1,7 +1,7 @@ //==================================================== // French //==================================================== -// Updated 2010-02-25 Michel Such +// Updated 2010-03-12 Michel Such phoneme #l virtual // Used for l and l/ @@ -39,7 +39,7 @@ phoneme r ENDIF IF nextPh(isStressed) THEN - length 45 + length 40 ENDIF VowelEnding(vwl_fr/xr) @@ -48,13 +48,21 @@ phoneme r IF prevPh(isPause) OR prevPhW(r/2) THEN FMT(vwl_fr/_r) ELIF prevPhW(p) OR prevPhW(k) THEN - length 50 + IF nextPh(isNotStressed) THEN + length 50 + ENDIF FMT(vwl_fr/tr) ELIF prevPhW(t) THEN - length 45 + IF nextPh(isNotStressed) THEN + length 60 + ENDIF FMT(vwl_fr/tr) addWav(r3/rx,30) - ELIF prevPhW(f) OR prevPhW(g) OR prevPhW(v) THEN + ELIF prevPhW(f) OR prevPhW(v) THEN length 40 + ELIF prevPhW(g) OR prevPh(b) THEN + IF nextPh(isNotStressed) THEN + length 60 + ENDIF ENDIF IF thisPh(isWordStart) THEN @@ -101,12 +109,19 @@ phoneme r/2 // variant of [r] when not preceding a vowel VowelEnding(vwl_fr/r_u) EndSwitch - IF prevPh(t) OR prevPh(p) OR prevPh(k) OR prevPh(d) THEN + IF prevPh(t) OR prevPh(p) OR prevPh(k) THEN FMT(vwl_fr/trr) ENDIF IF thisPh(isWordEnd) THEN - FMT(vwl_fr/r_) addWav(r3/rx, 20) + IF prevPhW(v) THEN + length 40 + ELIF prevPhW(f) THEN + length 60 + ELIF prevPhW(d) THEN + length 80 + ENDIF + FMT(vwl_fr/r_) addWav(r3/rx, 15) ENDIF IF prevPh(isVowel) THEN @@ -531,7 +546,7 @@ phoneme d IF nextPh(isPause2) OR nextPh(isPause) THEN FMT(d/d_) addWav(x/d_, 50) // ELIF nextPh(#r) THEN -// FMT(d/dr) addWav(x/d, 50) +// FMT(d/dr) addWav(x/d, 30) ELIF prevPh(isPause) THEN FMT(d/d) addWav(x/d, 50) ENDIF @@ -605,8 +620,7 @@ phoneme p ELIF nextPh(#l) THEN WAV(ustop/pl, 30) ELIF nextPh(#r) THEN - length 50 - WAV(ustop/pr, 30) + WAV(ustop/pr, 25) ENDIF WAV(ustop/p_unasp_, 90) endphoneme @@ -705,6 +719,7 @@ phoneme v vcd lbd frc voicingswitch f lengthmod 6 + length 90 Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 diff --git a/phsource/ph_russian b/phsource/ph_russian index b5ea8768..4b40df71 100755 --- a/phsource/ph_russian +++ b/phsource/ph_russian @@ -261,6 +261,7 @@ phoneme O IF thisPh(isMaxStress) THEN ChangePhoneme(o) ENDIF + FMT(vwl_ru/oo) endphoneme diff --git a/phsource/ph_zh_yue b/phsource/ph_zh_yue index ae3851be..961a2cd7 100644 --- a/phsource/ph_zh_yue +++ b/phsource/ph_zh_yue @@ -75,7 +75,7 @@ phoneme k vls vel stop lengthmod 2 Vowelin f1=0 f2=2300 200 300 f3=-200 80 - Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 + Vowelout f1=1 f2=2300 300 400 f3=-200 80 rms=20 IF nextPh(isPause2) THEN WAV(NULL) @@ -101,7 +101,7 @@ phoneme p vls blb stop lengthmod 2 Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 rms=30 - Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 + Vowelout f1=1 f2=1000 -500 -350 f3=-300 80 rms=22 IF nextPh(isPause2) THEN WAV(NULL) ENDIF @@ -112,7 +112,7 @@ phoneme t vls alv stop lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=100 80 - Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + Vowelout f1=1 f2=1700 -300 250 f3=-100 80 rms=20 IF nextPh(isPause2) THEN WAV(NULL) ENDIF diff --git a/phsource/vwl_fr/_r b/phsource/vwl_fr/_r index 47ae49d9..95771725 100755 Binary files a/phsource/vwl_fr/_r and b/phsource/vwl_fr/_r differ diff --git a/phsource/vwl_fr/_r2 b/phsource/vwl_fr/_r2 index 661310ba..50235a1a 100755 Binary files a/phsource/vwl_fr/_r2 and b/phsource/vwl_fr/_r2 differ diff --git a/phsource/vwl_fr/r b/phsource/vwl_fr/r index 7c2f8038..91732513 100755 Binary files a/phsource/vwl_fr/r and b/phsource/vwl_fr/r differ diff --git a/phsource/vwl_fr/r@ b/phsource/vwl_fr/r@ index 836dceda..41ece149 100755 Binary files a/phsource/vwl_fr/r@ and b/phsource/vwl_fr/r@ differ diff --git a/phsource/vwl_fr/ra b/phsource/vwl_fr/ra index 8058dbb6..26ecde29 100755 Binary files a/phsource/vwl_fr/ra and b/phsource/vwl_fr/ra differ diff --git a/phsource/vwl_fr/raa b/phsource/vwl_fr/raa index 9fa64262..4ac54632 100755 Binary files a/phsource/vwl_fr/raa and b/phsource/vwl_fr/raa differ diff --git a/phsource/vwl_fr/re b/phsource/vwl_fr/re index 23d59a7c..8bc8849a 100755 Binary files a/phsource/vwl_fr/re and b/phsource/vwl_fr/re differ diff --git a/phsource/vwl_fr/ri b/phsource/vwl_fr/ri index 0a83cbc2..e0f835f8 100755 Binary files a/phsource/vwl_fr/ri and b/phsource/vwl_fr/ri differ diff --git a/phsource/vwl_fr/ro b/phsource/vwl_fr/ro index 51547277..52d85237 100755 Binary files a/phsource/vwl_fr/ro and b/phsource/vwl_fr/ro differ diff --git a/phsource/vwl_fr/ru b/phsource/vwl_fr/ru index 9ae0e92d..630a9b20 100755 Binary files a/phsource/vwl_fr/ru and b/phsource/vwl_fr/ru differ diff --git a/phsource/vwl_fr/ry b/phsource/vwl_fr/ry index 3676d35a..a5a12797 100755 Binary files a/phsource/vwl_fr/ry and b/phsource/vwl_fr/ry differ diff --git a/phsource/vwl_fr/tr b/phsource/vwl_fr/tr index a09c559a..c6efab02 100755 Binary files a/phsource/vwl_fr/tr and b/phsource/vwl_fr/tr differ diff --git a/phsource/vwl_fr/xr b/phsource/vwl_fr/xr index ea57da36..b98b3606 100755 Binary files a/phsource/vwl_fr/xr and b/phsource/vwl_fr/xr differ diff --git a/src/readclause.cpp b/src/readclause.cpp index 118135e1..7a4760e2 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -2454,9 +2454,12 @@ if(option_ssml) parag=1; c1 = 0x2026; c2 = ' '; } - UngetC(c_next); + if(c1 == 0x2026) + c2 = c_next; + else + UngetC(c_next); } - + punct_data = 0; if((punct = lookupwchar(punct_chars,c1)) != 0) { diff --git a/src/synthdata.cpp b/src/synthdata.cpp index f062ea81..09a893a1 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.43.10 12.Mar.10"; +const char *version_string = "1.43.12 13.Mar.10"; const int version_phdata = 0x014300; int option_device_number = -1; diff --git a/src/synthesize.cpp b/src/synthesize.cpp index 3abeb75b..54908298 100755 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -411,8 +411,16 @@ int DoSample3(PHONEME_DATA *phdata, int length_mod, int amp) amp2 = (amp2 * 32)/100; } -seq_len_adjust=0; - len = DoSample2(phdata->sound_addr[pd_WAV], 2, phdata->pd_param[pd_LENGTHMOD]*2, phdata->pd_control, length_mod, amp2); + seq_len_adjust=0; + + if(phdata->sound_addr[pd_WAV] == 0) + { + len = 0; + } + else + { + len = DoSample2(phdata->sound_addr[pd_WAV], 2, phdata->pd_param[pd_LENGTHMOD]*2, phdata->pd_control, length_mod, amp2); + } last_frame = NULL; return(len); } // end of DoSample3 diff --git a/src/translate.cpp b/src/translate.cpp index c1375a72..ff690a51 100755 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -840,14 +840,18 @@ if((wmark > 0) && (wmark < 8)) length=0; while(wordx[length] != ' ') length++; - if(length > 0) - wordx[-1] = ' '; // prevent this affecting the pronunciation of the pronuncable part } SetSpellingStress(tr,unpron_phonemes,0,posn); // anything left ? if(*wordx != ' ') { + if(unpron_phonemes[0] != 0) + { + // letters which have been spoken individually from affecting the pronunciation of the pronuncable part + wordx[-1] = ' '; + } + // Translate the stem end_type = TranslateRules(tr, wordx, phonemes, N_WORD_PHONEMES, end_phonemes, wflags, dictionary_flags); @@ -2802,7 +2806,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre for(j=1; j<=nw; j++) { - num_wtab[j].flags &= ~FLAG_MULTIPLE_SPACES; // don't use this flag for subsequent parts when splitting a number + num_wtab[j].flags &= ~(FLAG_MULTIPLE_SPACES | FLAG_EMBEDDED); // don't use these flags for subsequent parts when splitting a number } // include the next few characters, in case there are an ordinal indicator or other suffix