Fix crash when embedded control codes are followed by numbers of 5 or more digits. Fix lang=hu, First character of an abbreviation is missed after an ordinal number (eg."2. cd") Fix XML tag not recognized after "..." when announce punctuation is enabled. Fix lang=zh-yue, 'p' 't' 'k' after a vowel give a long pause. Fix lang=ru, "o" missing in unstressed syllables. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@241 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -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 | |||
| @@ -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 | |||
| @@ -23,7 +23,7 @@ | |||
| // 2006-11-18 Gilles Casse <[email protected]> | |||
| // | |||
| // Updated: 2010-03-05 Michel Such <[email protected]> | |||
| // Updated: 2010-03-08 Michel Such <[email protected]> | |||
| // | |||
| // 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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -1,7 +1,7 @@ | |||
| //==================================================== | |||
| // French | |||
| //==================================================== | |||
| // Updated 2010-02-25 Michel Such <[email protected]> | |||
| // Updated 2010-03-12 Michel Such <[email protected]> | |||
| 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 | |||
| @@ -261,6 +261,7 @@ phoneme O | |||
| IF thisPh(isMaxStress) THEN | |||
| ChangePhoneme(o) | |||
| ENDIF | |||
| FMT(vwl_ru/oo) | |||
| endphoneme | |||
| @@ -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 | |||
| @@ -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) | |||
| { | |||
| @@ -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; | |||
| @@ -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 | |||
| @@ -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 | |||