From 9ffdc46fa0d50d3d4daffba1ff5d943cbc252dc8 Mon Sep 17 00:00:00 2001 From: jonsd Date: Fri, 12 Mar 2010 12:11:45 +0000 Subject: [PATCH] [1.43.10] Fix --compile-debug option. Add more syntax checks for --compile option. Detect empty pre-rule. Detech missing match-rule. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@240 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/da_list | 52 +++-- dictsource/da_rules | 409 +++++++++++++++++++++++++-------------- dictsource/dict_phonemes | 6 +- dictsource/en_rules | 4 +- dictsource/hu_list | 28 +-- dictsource/hu_rules | 20 +- dictsource/lv_rules | 2 +- dictsource/ro_rules | 2 +- dictsource/sk_list | 6 + phsource/compile_report | 24 +-- src/Makefile | 12 +- src/compiledict.cpp | 7 + src/dictionary.cpp | 2 + src/synthdata.cpp | 2 +- 14 files changed, 373 insertions(+), 203 deletions(-) diff --git a/dictsource/da_list b/dictsource/da_list index e95b37b8..e9bf20d1 100755 --- a/dictsource/da_list +++ b/dictsource/da_list @@ -1,4 +1,4 @@ -// PB = Peter Bjarkov - pbj1234@hotmail.com +// PB = Peter Bjarkov - pbj1234@hotmail.com // This file is UTF8 encoded // Spelling-to-phoneme words for Danish @@ -42,7 +42,7 @@ _smc sm'O:lk,ap _rev riv'3:sd _tur t'3:nd _bar _b'A@ -_rfx rEtroflEks +_rfx rtroflEks _crl k'3:l _hok h'uk @@ -50,7 +50,7 @@ _hok h'uk // character names _cap stoVt||boustaw _?A boustaw -_?? symbol +_?? symboL _#9 tab _#32 blank @@ -62,7 +62,7 @@ _#32 blank _, k'oma: _; se:mi:ko:lVn _: k'o:lVn -_. puNtum +_. pONtOm // PN u => O _? spWrgsmVlstajn _! udRVbstejn _- binnesdrai @@ -141,7 +141,7 @@ men $pause // but eller $u+ $pause $only // or mens $pause // while for fV -fordi fVd'i $pause // because - PB: changed stress +fordi fVd'i $pause // because - PB: changed stress når nVr $pause // while som $u+ $pause // who (relative) der d&r $u+ $pause // PB changed from [d]A @@ -164,11 +164,11 @@ som sVm // which / that - PB: removed [$u+] // pronouns jeg jai // I - PB: removed [$u] -du $u +du $u+ de di $u han $u hun $u -det de $u +det de $u+ vi $u i _i: $u+ mig maj // me @@ -246,9 +246,7 @@ z sEt ø W // Englich words -bailey _^_EN bondage _^_EN -bronx _^_EN baseball _^_EN volleyball _^_EN dj _^_EN @@ -259,7 +257,6 @@ skinhead _^_EN skinheads _^_EN street _^_EN boy _^_EN -fox _^_EN square _^_EN appeal _^_EN apple _^_EN @@ -271,13 +268,13 @@ camcorder _^_EN chart _^_EN chat _^_EN coach _^_EN +cia _^_EN coke _^_EN computer _^_EN cool _^_EN couch _^_EN cursor _^_EN cowboy _^_EN -cyrus _^_EN debugger _^_EN email _^_EN ensemble _^_FR @@ -291,7 +288,6 @@ homepage _^_EN hooligan _^_EN interface _^_EN image _^_EN -jean _^_EN jet _^_EN joint _^_EN joke _^_EN @@ -305,11 +301,11 @@ lord _^_EN macho _^_EN mail _^_EN management _^_EN -mansfield _^_EN message _^_EN (new age) _^_EN nigger _^_EN offline _^_EN +okay _^_EN online _^_EN out _^_EN pair _^_EN @@ -319,6 +315,7 @@ pickup _^_EN pidgin _^_EN plot _^_EN producer _^_EN +ranger _^_EN receiver _^_EN research _^_EN remake _^_EN @@ -327,7 +324,6 @@ roastbeef _^_EN quiz _^_EN run _^_EN scanner _^_EN -sally _^_EN science _^_EN server _^_EN settlement _^_EN @@ -355,13 +351,33 @@ trip _^_EN tuner _^_EN unix _^_EN venture _^_EN -washington _^_EN western _^_EN whipcord _^_EN window _^_EN word _^_EN warrior _^_EN +// English names +austin _^_EN +bailey _^_EN +bronx _^_EN +cyrus _^_EN +fox _^_EN +jean _^_EN +jones _^_EN +larry _^_EN +mansfield _^_EN +mahoney _^_EN +montreal _^_EN +oregon _^_EN +paul _^_EN +purvis _^_EN +sally _^_EN +washington _^_EN +new _^_EN +york _^_EN +chicago _^_EN + // French words croissant _^_FR croquis _^_FR @@ -409,7 +425,6 @@ afinstallere $alt afkolonisere $alt afkontrollere $alt afkriminalisere $alt -aflevere $alt afmagnetisere $alt afmarchere $alt afmilitarisere $alt @@ -662,7 +677,7 @@ demobilisere $alt demokratisere $alt demolere $alt demonstrere $alt -demontere $alt +//demontere $alt demoralisere $alt demotivere $alt denationalisere $alt @@ -2304,9 +2319,10 @@ phil fil/3 $hasdot // PB fx cand. phil. (mit kvarter) met||kvA'ter // PB (vores kvarter) vV:s||kvA'ter // PB (deres kvarter) de@s||kvA'ter // PB +(det kvarter) de||kvA'ter // PB (i kvarter) i||kv'A:dV (at have) &||h&: // PB the verb 'have', not the noun 'have' = garden -(vil have) vel||h&: // PB +(vil have) vel||h'&: // PB (du have) du||h&: // PB (må have) m'O:||h&: // PB (ikke have) ege||h& // PB diff --git a/dictsource/da_rules b/dictsource/da_rules index 90d858e4..3e798455 100755 --- a/dictsource/da_rules +++ b/dictsource/da_rules @@ -19,102 +19,128 @@ oo u //PB English words like 'pool' .L06 p b // pande, bande - pege, bege - passe, basse .L07 t k // time, kime - tone, kone - tage, bage - tanke, banke .L08 sp st sk +.L09 m n // ens før vokal: naller, maller - ikke efter: nam, nan .group a -amerik) a (ne '&: // PB amerikanere - kr) a (ti 'A // PB bureaukratiske - a &: // PB changed from a? - a (L03 &: // PB foran halvvokal - L03) a (L03 & // PB after semivowel - a (L03L03A a // PB anderledes - C) a (k a // PB tak - C) a (g+ a // PB magt, sagt - d) a (g+ & // PB dag - a (ge++ &: // PB tage - r) a (ge+ A // PB andrage, rage - r) a (v A // PB ravage - L06) a (n & // PB tand, tante, band, bande, spand, spade - L06) a (nC A // PB bank - L06) a (g+ &: // PB bag - L06) a (nd & // PB pande - C) a (gde+ &: // PB sagde - av) a (n 'V // PB avance - h) a (v &: // PB have - a (m++ a // PB ham, gamle - m) a (n+ & // PB man, mand - a (ng+ a // PB mangle, sang - a (ndre A // PB andre - a (ld a // PB aldrig, alder - m) a (l &: // PB male - a (tion a - a (CK &: // PB alle, anden - h) a (CK & // PB han - h) a (nk a // PB hank - s) a (m a // PB sammen - a (p+ a // PB slap - a (b+ a // PB lab - L06) a (ne a // PB bane, banke - g) a (n+ a // PB gang // a (g a_ // PB change to [a@?] ? - tage +// r) a (CK A + a &: // PB changed from a? + r) a A // PB kamera +// inser) a (t 'A // PB stressed a in 'inserat' +//konglomer) a (t 'A // PB stressed a in 'konglomerat' +//litter) a (t 'A // PB stressed a in 'litterat' +//kammer) a (t 'A // PB stressed a in 'kammerat' +//desper) a (t 'A // PB stressed a in 'desperat' +// moder) a (t 'A // PB stressed a in 'moderat' +// refer) a (t 'A // PB stressed a in 'referat' + r) a (t 'A // PB direktorat + priv) a (t '&: // PB privat +agglomer) a (t 'A // PB stressed a in 'agglomerat' + r) a (l 'A // PB stressed a before -ral - general, neutral + 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' + bl) a a // PB blad fr) a A // PB fra, fratage gr) a A // PB gratis - j) a (m+ a // PB fjams - j) a (men a // PB exception jamen = ja men - j) a (g+ &: // PB jage - k) a (n '&: // PB stressed a in 'orkan, pelikan' - b) a (lkan &: // PB Balkan - pl) a (m+ & // PB plamage CHECK THIS ONE - a (r+ A: - r) a A // PB kamera -// r) a (CK A - kvadr) a (t 'A // PB stressed a in 'kvadrat' - au aw // PB auto, autoritet - ai (K aj - k) ai (n a'i // PB kokain - a (fC a // PB af = au and exceptions in the f group - C) a (ft A // PB haft, saft - e) au 'o // PB bureau, niveau - _biss) au 'a:w // PB Guinea-Bissau - s) au (ce O: // PB sauce, bearnaisesauce -interf) a (ce ei // PB interface - p) a (ce ei // PB motorpace, pacemaker - pacem) a (ker ei // PB pacemaker - Am) a (n_ '&: // PB stressed - narkoman - isl) a (m 'a: // PB islam, islamisk - _) a (e_ &: // PB ae - bl) a a // PB blad - L08) a (d &: // PB stadig - rom) a (n '&: // PB roman - _rom) a (ns '&: // PB romans, romansk - _rom) a (nerne '&: // PB romanerne - _rom) a (ner_ '&: // PB romaner - _rom) a (ners '&: // PB romaners - _rom) a (nens '&: // PB romanens - _rom) a (nernes '&: // PB romanernes - mir) a (k 'a // PB mirakel - stressed a - d) a (t '&: // PB stressed 'dat' in mandat, soldat, kandidat - d) a (me+ &: // PB dame - t) a (t 'a // PB stressed 'tat' in etat, østat, resultat - t) ager (_ Ar // PB tager + a (L03K &: // PB alle, anden + h) a (CK & // PB han + a (L03 &: // PB foran halvvokal + a (v+ A // PB tavs + L08) a (v & // PB stav + L03) a (L03 & // PB after semivowel + b) a (b+ A // PB babser + a (L03L03A a // PB anderledes +// aa O: +// r) aa O: + r) a (n a // PB garanteret t) a (b a // PB tabte - t) a (l &: // PB tale - f) a (n & // PB fanden - hvord) a (n '& // PB stressed a in 'hvordan' - @g) a (ng 'a // PB stressed a in words ending with -gang - engang, enegang - ch) a (n a // PB chance - a (bel+ '& // PB exception - ræssonabel, stabel + a (b+ a // PB lab + L08) a (b &: // PB skabe r) a (bel 'A // PB vulnerabel, kurabel mir) abel ab'El // PB mirabel(le) + a (bel+ '& // PB exception - ræssonabel, stabel + p) a (ce ei // PB motorpace, pacemaker +interf) a (ce ei // PB interface + L08) a (d &: // PB stadig + _) a (e_ &: // PB ae + a (fC a // PB af = au and exceptions in the f group + C) a (ft A // PB haft, saft + C) a (g+ a // PB magt, sagt + s) a (g+ & // PB sag + s) a (gt+ a // PB sagt + d) a (g+ & // PB dag + j) a (g+ &: // PB jage + L06) a (g+ &: // PB bag b) a (gC++ A // PB baghold - ch) au (f o - nive) au o + C) a (gde+ &: // PB sagde + r) a (ge+ A // PB andrage, rage + a (ge++ &: // PB tage + t) ager (_ Ar // PB tager + ai (K aj + k) ai (n a'i // PB kokain + C) a (k a // PB tak + mir) a (k 'a // PB mirakel - stressed a + pacem) a (ker ei // PB pacemaker + t) a (l &: // PB tale + L09) a (l &: // PB male + _) a (ld a // PB aldrig, alder + b) a (lkan &: // PB Balkan + over) a (lt '& // PB stressed a in 'overalt' + s) a (m a // PB sammen + isl) a (m 'a: // PB islam, islamisk + j) a (m+ a // PB fjams + pl) a (m+ & // PB plamage CHECK THIS ONE + a (m++ a // PB ham, gamle + d) a (me+ &: // PB dame + j) a (men a // PB exception jamen = ja men + f) a (n & // PB fanden + k) a (n '&: // PB stressed a in 'orkan, pelikan' + av) a (n 'V // PB avance + ch) a (n a // PB chance + L06) a (n & // PB tand, tante, band, bande, spand, spade + rom) a (n '&: // PB roman + hvord) a (n '& // PB stressed a in 'hvordan' + g) a (n+ a // PB gang + L09) a (n+ & // PB man, mand + L06) a (nC A // PB bank + Am) a (n_ '&: // PB stressed - narkoman an (cienn aN + L06) a (nd & // PB pande + a (ndre A // PB andre + L06) a (ne a // PB bane, banke +amerik) a (ne '&: // PB amerikanere + _rom) a (nens '&: // PB romanens + _rom) a (ner_ '&: // PB romaner + _rom) a (nerne '&: // PB romanerne + _rom) a (nernes '&: // PB romanernes + _rom) a (ners '&: // PB romaners + @g) a (ng 'a // PB stressed a in words ending with -gang - engang, enegang + m) a (t '&: // PB stressed a in words with - mat - diplomat, format + a (ng++ a // PB mangle, sang + h) a (nk a // PB hank + _rom) a (ns '&: // PB romans, romansk restaur) ant aN + a (p+ a // PB slap + tilb) a (ge '&: // PB stressed a in 'tilbage' + a (r+ A: + d) a (t '&: // PB stressed 'dat' in mandat, soldat, kandidat + t) a (t '&: // PB stressed 'tat' in etat, østat, resultat + kvadr) a (t 'A // PB stressed a in 'kvadrat' + kr) a (ti 'A // PB bureaukratiske + a (tion a + au aw // PB auto, autoritet + e) au 'o // PB bureau, niveau + nive) au o + _biss) au 'a:w // PB Guinea-Bissau + s) au (ce O: // PB sauce, bearnaisesauce + ch) au (f o rest) au (r o + h) a (v &: // PB have + r) a (v A // PB ravage + @k) ar (l & // PB bøssekarl aw (K aw ay (K aj - aa O: - r) aa O: .group af @@ -128,7 +154,7 @@ restaur) ant aN b b bb b - _) be (@P2 be +// _) be (@P2 be _) be (d bE b (il 'b @@ -190,7 +216,8 @@ restaur) ant aN æ) d D ø) d D // PB rød, grød in) d - mo) d D // PB mod' + mo) d D // PB mod + o) dds ds // PB odds ve) d D bol) d d bol) d d @@ -209,12 +236,13 @@ stikor) d // PB exception - no d in 'stikord' be) d (A d ud) d (A d A) d (C D + A) dd (AC D // PB redder u) d (C D Co) d (C D in) d (C mo) d (C D ne) d (C D - d (CA d +// d (CA d r) d (K ar) d (K d aar) d (K @@ -237,7 +265,8 @@ stikor) d // PB exception - no d in 'stikord' dd (et D bu) dd (ing D i) d (e d - an) d (e // PB mand, anden - skip the d + an) d (e // PB manden, anden - skip the d + _fan) de (me // PB fandeme - skip de, only this word li) d (e D ri) d (e D si) d (e D @@ -250,7 +279,7 @@ stikor) d // PB exception - no d in 'stikord' ral) d (e sag) d (e snu) d (e D - A) de (_ D@ // PB change to D? + A) de (N_ D@ // PB change to D? in) d (eks d mo) d (el 'd or) d (el d @@ -290,8 +319,11 @@ stikor) d // PB exception - no d in 'stikord' æl) d (re d æn) d (re d æn) d (re d + a) d D // PB ad, udenad - dangerously broad + i) d D // PB tid _a) d (res d //PB a) => _a) - didn't work for 'smadres' - probably for 'adresse' - or) d (ret + hon) d (ura d // PB Honduras +// or) d (ret Aor) d (ret d æn) d (ri d a) d (s @@ -331,15 +363,30 @@ tilfre) d (s .group e e e: - l) e 3 // PB forhandlere + kas) e (rne 'e // PB stressed e in 'kaserne' + ml) e 3 // PB gamle + hot) e (l 'e // PB hotel + afl) e 3 // PB aflevere + ov) e (r 3 // PB over + l) e (r 3 // PB forhandlere + e (lse @ // PB fornøjelse sk) e (t_ e // PB sket r) eau o // PB bureaukratiske ee 'e: // PB ideer, cafeer am) e (rika_ 'e // PB Amerika am) e (rikan e // amerikanere et (_ 3D // PB forsket, formet + s) e (t e // PB set L03) e (_ 3 // PB have - @t) e @ // PB tante, hente + L07Ag) e (_+ // no final e after g - kage, tage + 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 + _) e (r_++ er // PB er + h) e (r++ e // PB her, herhen + _sk) er (_ er // PB sker + e (ri V // PB røveri sn) e (K e? // PB sne, snebold fr) e (L03 a // PB fremme, frende, frelse fr) e (d e // PB fred fredag @@ -347,30 +394,40 @@ tilfre) d (s _l) e (r_ e // 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 - p) er (_ &r // PB per + L06) er (_ &r // PB per +L06L06) (er V // PB klipper _) er (_ &r // PB er _a) e (_ 3 // PB ae pl) e (men 3 // PB supplement L06) e (l 3 // PB bibel, krumsabel _tab) e (l 'e // PM tabel + nd) e (r V // PB under r) e (j a - e (r_ V // PB changed from [e (rK] - 'vers' mispronounced + L09) er (ne_ V // PB kameraerne + L08) e (r_ e // PB sker t) e (rr e // PB territorium - Ct) e (r V // PB alter, helikop*ter*styrt - h) e (r e // PB her + Ct) erN V // PB alter, helikop*ter*styrt - NOT words from da_list th) e (r_ V // Luther j) e (r e // PB jer - _s) e (r_ e // PB ser + hj) e (r E // PB hjerne + _s) e (r_+ e // PB ser + s) e (r V // PB vitser t) erræn &r'E:N // PB terræn g) e (rne V // PB sangerne + g) e (rne_ E // PB gerne kuff) e (rt V // PB kuffert Am) e (r V // PB strømere + Amm) e (r 3 // PB kammerater e (mball A // PB emballere, emballage L06) e (rC E // PB person CHECK THIS ONE f) e (rni E // PB fernis d) e (re V // PB mordere CHECK THIS ONE + invad) e (re 'e // PB invadere + d) e (rn V // PB gaderne CHECK THIS ONE + ød) e 3 // PB øde b) e (ds E d) e (_ @ ed) e (- @ @@ -421,14 +478,17 @@ softic) e // PB softice kass) e (rer 'e // PB kasserer e (gn a // PB tegne , hegn bl) e (m 3 // PB møblement + probl) e (m 'e // PB stressed e ni) e (n e ani) e (l e lini) e @ // PB changed from [e] to [@] r) e (_N 3_: // PB mere + r) e (nd a // PB rend + n) e (r V // PM klovner _r) e e // r) e ( r) e (l e - r) e (kt aj +// r) e (kt aj r) e (t+ a //PB ret r) e (st & // PB resten @st) e (n e: // øjesten @@ -450,13 +510,14 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet @) 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 + jav) e (l 'e // PB stressed e in 'javel' m) eg (a eg eg (et a:j r) eg (er eg r) eg (n aj p) eg (n aj // PB pegning t) eg (n aj - // eg (e 'e: // spoils 'regent' + eg (e_ 'e: // PB added _ - ege //r) eg (n A:j // PB //m) eg aj // PB covered by [eg(et] above r) ej (s aj @@ -469,6 +530,7 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet p) en (sion aN r) en (ce aN r) e (d e + r) e (dd E // PB redder r) e (v e tr) e e tr) e (A e @@ -479,21 +541,22 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet ffic) e (r e &) ede (_ @D3 // PB changed from [@D@] to [@D3] &) edet (_ @D3d // PB hovedet - &r) ede (_ 3D@ + &r) ede (N_ 3D@ &r) en (_ 3n &r) en (ing 'en // for) en (ing 'en &r) en (s_ 3n &r) et (_ 3D //&) er (_ V // PB doesn't work with 'dedikeret' should be @, not V - &) en (_ '@-n + &) en (_ '@-n // uden + Ad) en (@ '@-n // udenlandsk, udenad &) ene (_ @-n@ &) ende (_ @-nn@ &) eren (_ 3r3n - &) ere (_TN 'er3 // PB stressed - manipulere, protestere - words in list file - &) erede (S2_ =D3 // PB stressed - manipulerede, protesterede - words in list file - &) eres (S1_ =s // PB stressed - manipuleres, protesteres - words in list file - &) eret (S1_ =3D // PB stressed - manipuleret, protestet 1.810 words in list file + &) ere (_T 'er3 // 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 _sen) ere er3 // PB senere &) eren (s_ 3r3n &) es (_ @s @@ -504,11 +567,13 @@ absorb) e (r 'e // PB absorber, absorberer, absorbere, absorberet ika) e (l ir) e (n 'e yr) e (n 'e -orkest) e (r 'e // PB stressed e in 'orkester' + ork) e (ster 'e // PB stressed e in 'orkester' + st) e (ret // PB orkesteret ompet) en (ce aN ress) en (timent aN // PB ressentiment bl) e (g aj // PB bleg m) edie 'edj3 // medie, kommedie + best) e (mme 'e // PB stressed e - bestemme .group f f f @@ -527,7 +592,7 @@ orkest) e (r 'e // PB stressed e in 'orkester' a) f (atisk f // PB afatisk a) f (oris f // PB aforisme, aforistisk - a) f (C u + a) f (C w // PB exceptions to the 'a)f (C' rule below a) ff (ine f // PB raffineret, raffinement a) ff (abel f // PB affabel @@ -564,6 +629,7 @@ orkest) e (r 'e // PB stressed e in 'orkester' g) g g) g (e g (ent g + g (entl j // PB egentlig &) g (r g g (ård g g (ment g @@ -602,22 +668,23 @@ orkest) e (r 'e // PB stressed e in 'orkester' n) gæ gE //o) g (A g Co) g w // PB sprog, tog, toge - //to) g w //PB tog, toge to) g (a g // PB exception toga to) g (o g // PB exception Togo to) g (t g // PB exception togt o) g (r g - o) g (n g + o) g (n u // PB g => u - vogn, sogn o) g (s u r) g (_ w - r) g (e w +// r) g (e w + or) g // PB morgen, sorg u) g g u) g (e u) g (l ? u) g (t g y) g (e j y) g (A g - ø) g (e +// ø) g (e + ø) ge @ // PB bøgetræ ø) g (n æ) g (e j g (iv+ g // avoid letter "g" pronounced with phoneme S @@ -699,6 +766,7 @@ spiona) g (e =S // PB spionage staffa) g (e =S // PB staffage takkela) g (e =S // PB takkelage trikota) g (e =S // PB trikotage + ami) g (os g // PB amigos la) g (e li) g (t re) g (A g @@ -734,7 +802,7 @@ foreta) g (e nø) g j re) g (i g bo) g (st k - ø) g (_ j + ø) g j // PB deleted (_ ø) g (t g sal) g j val) g j @@ -753,9 +821,9 @@ foreta) g (e blo) g (s =g _lo) g (_ g _lo) g (g g - ør) g w + ør) g // PB changed from w - spørge a) g (K // PB ? changed to " " after a vowel - _) ge (@P2 ge +// _) ge (@P2 ge // PB puts stress after ge _) ge (nere Se _) ge (nert Se _) ge (nerel ge @@ -763,11 +831,11 @@ foreta) g (e ge (nerer ge ni) gger gV // PB nigger ble) g // PB omit g because of e = aj - bleg + g (ene_ S // PB gene ta) g (e te) g (ori g - .group h h h @@ -775,6 +843,7 @@ foreta) g (e hv v A) h (K t) h (en h + w) h (isky // PB whisky @@ -789,10 +858,12 @@ foreta) g (e i (nn e i (mK e i (k e // PB ikke, pik + pr) i (+ i // PB privat i (kk+ e // PB skiderikker i (r+ i // PB Irland, irrationel L02) i (L03 e // PB foran halvvokal - til - s) i (d+ i: // PB siden + s) i (dA+ i: // PB siden +// s) i (d_ e // PB sid s) i (dd+ e: // PB sidde s) i (gA+ i // PB siger s) i (n e // PB tusind @@ -811,21 +882,26 @@ i soft) i (ce aj // PB softice fr) i e // PB fri s) i (kC e // PB sikker, sikre - p) i (s e // PB pis + p) is es // PB pis + p) i (L08+ i // PB pisk, pistol mag) i (_ 'i // PB magi - stressed i polit) i 'i // PB politi, politik - stressed i + mus) i (k 'i // PB stressed i k) i (C_ 'i k) i (CC_ 'i kr) i (C %e // PB kritisere + omkr) i (ng 'e- // PB stressed e in 'omkring' kn) i e? // PB knippel @t) i (k 'i // PB stressed i in words with -tik - butik, politik i (st 'i // PB folklorist, mejerist, terrorist, minister + r) i (st e // PB brist, rist @r) i (um =i // PB put stress on syllable before 'rium' - territ'orium @r) i (e =i // PB put stress on syllable before 'rie' - territ'orie @s) i (um =i // PB put stress on syllable before 'sium' - gym'nasium @s) i (e =i // PB put stress on syllable before 'sie' - gym'nasie @r) i 'i // PB words ending with ri - stressed i - maleri amer) i (k i // Amerika + r) i (sA e // PB risikere tor) i i // PB not stressed i in 'autoritet' @r) i (er 'i // PB stressed i - malerier lat) i (n 'i // PB stressed i in 'latin' @@ -838,6 +914,7 @@ 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 l) i (e j n) i (e i r) i (g i @@ -857,9 +934,11 @@ ortopæd) i 'i // PB ortopædi j (ack dZ j (ob dZ j (ohn dZ + derh) j (emme 'j // PB stressed j en) j (ambe S // PB enjambement o) j (e S a) j (o S + ma) j (or j // PB major j (uice dz //PB juice @@ -901,7 +980,8 @@ ortopæd) i 'i // PB ortopædi no) ld l //so) ld (aC d so) ld (at ld - + lege laj3 // PB lege + leger lajV // PB leger @@ -951,7 +1031,7 @@ bombarde) ment m'AN // PB bombardement .group n n n - nn n +// nn n band) (er n? // PB takes away the d in 'bander' = 'gangs' - n => n? ka) n_ // no n - kan nd (K n @@ -1013,19 +1093,28 @@ bombarde) ment m'AN // PB bombardement o o: h) o 'o // PB horn + or (g+ o: // PB sorg, morgen + or (l O: // PB orlov + liban) o (n V // PB Libanon + kan) o (n 'o // PB kanon + h) o (ndu V // PN Honduras + o (dds V: // PB odds k) o (n V // PB konge At) o (de 'o // PB stressed o - metode, katode + tr) o (n+ 'o // PB stressed o - patron o (sse V // PB tosse, nosse j) o (b V // PB job - o (v+ V3 // PB over + o (vA+ Vu // PB over, oven + o (v++ V // PB sjov, lov, skov + 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' _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 (L03 o: // PB exception from the rule above - skole, spole o (L03A o // PB - romantisk, hoved - L02) o (L03_ V // PB consonant + o + semivowel + end of word - kom, som +// L02) o (L03_ V // PB consonant + o + semivowel + end of word - kom, som _C) o (_ o // PB jo, ko, lo, so er) o (b 'o // PB erobre - stressed o f) o (d+ o // PB fodre @@ -1037,14 +1126,20 @@ bombarde) ment m'AN // PB bombardement l) o (f V r) o (f o // PB profil spr) o (g o // PB sprog - k) o (rs V // PB kors, korsage + k) ors V:s // PB kors, korsage c) o (rs V // PB corsage o (gK o + v) o (g V // PB vogn, vogte + s) o (g V // PB sogn t) o (i wa // PB toilet - o (k V // PB okker - C) o (kN 'V // PB beginning with 1 consonant followed by o and k: sok, nok, kok + o (k V // PB okker, lok + l) o (kA o // PB lokal + o (rk V // PB orke orkester + k) o (kA o // PB kokasse, kokain + C) o (kNT 'V // PB beginning with 1 consonant followed by o and k: sok, nok, kok C) o (kT+ o // PB only for words in list file s) o (l o // PB sol, soldat + s) o (lgt V // PB solgt h) o (ld 'V L06) o (ld V // PB bold f) o (lk V // PB folk @@ -1090,6 +1185,7 @@ transp) o (rt 'V: // PB transport or (dre V: // PB ordre v) or 'o // PB alvor f) or V // PB derfor + k) or (t V // PB kort // PB no stress on 'for' 1.550 words. Some should have stress if 'for' means "front/fore" _f) or (@ %Vr // exceptions for initial 'for' below @@ -1344,9 +1440,13 @@ transp) o (rt 'V: // PB transport .group r r R - ge) r // PB sanger + ge) rT // PB sanger 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] + _se) r (_ r // PB ser + he) r (_ r // PB her + e) r (es 3 // PB jeres, deres bu) rd (eK rd // &) rd (eKK r ve) rd (eKK rd @@ -1354,22 +1454,22 @@ transp) o (rt 'V: // PB transport o) rd (el++ rd o) rd (en++ d // PB exception - pronounce d in 'orden, ordentlig' o) rd (rin d - A) r (e // PB bære without r - A) r (e_ // PB hellere + A) r (eT // PB bære without r + A) r (e_T // PB hellere transpo) r (t //PB transport .group s s s - &) s (_S1 s // PB/JD words ending with -ere in da_list + &) s (T_S1 s // PB/JD words ending with -ere in da_list s (p s s (C s s (A s s (ie s s (ion S s (j s - s (ch S + sch S // PB changed from [s(ch] - casch al) s (ace 's // PB Alsace (French region) s) s kompromi) s @@ -1377,9 +1477,13 @@ kompromi) s .group t t t + tt t p) t t // PB toptitel s) t d // PB stor + A) t (er d // PB Peter, efter, alter + teress tr@s // PB interessant L03) t t // PB garanteret + r) t d // PB kuffert emen) t poin) t cemen) t t @@ -1397,6 +1501,7 @@ glemen) t (al t &) th d simpel) th (en th i) t (i t // PB politi + e) t (_ d // PB udvisket lek) t (i S t (ie t t (ion+ sj' @@ -1413,13 +1518,17 @@ simpel) th (en th d) ue (s u: // PB vinduesstørrelse _C) u (nK O // PB k) u (nne o //PB kunne + d) u (k o // PB duk l) u (n_ u // PB lun l) u (ne u // PB lune + l) u (f O // PB luft s) u (pport @ // PB support j) u (ice u: // PB juice br) u (gt O // PB brugt tr) u (L02 O // PB truffet um) u (lig 'u // PB stressed u in 'umulig' + sn) u (L06 O // PB snup + hond) u (ra 'u: // PB Honduras k) u (ffert O a) u (g u b) u (dget y @@ -1451,7 +1560,7 @@ proven) u y A) v (K w a) v (l u a) v (n w: // PB [u] changed to [w:] navn, navnebroder - le) v (A // PB blevet, levet + le) v (et // PB blevet, levet la) v (A // PB no v - laver la) v (ement @ // PB lavement ve (lse @ // PB øvelse @@ -1490,17 +1599,24 @@ proven) u y .group y - y y: + y y r) y Y: r) y (s+ W: // PB ryste r) y (gt W? // PB rygte + l) y (gt W? // PB lygte, flygte + l) y (k W // PB ulykke + sk) y (t 'W // PB beskytte r) y (CK Y + r) y (k+ W? // PB ryk //y (CK Y- // PB doesn' work with 'knyt' n) y (t Y // PB nyt n) y (k W: // PB nyk kn) y (t W: // PB tilknytte 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 (mK Y d) y (_ i b) y (A y @@ -1517,16 +1633,20 @@ proven) u y .group æ æ E æ (CK E - æ (bK ae? // PB dræbt - FIND A BETTER VOWEL + æ (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 + v) æ (bne 'E: // PB bevæbne + @) æ (r 'E // PB gevær, besvær gr) æ (n a // PB grænse l) æ E: skr) æ (dd a // PB skrædder br) æ (dd a // PB brædder + tr) æ ae // PB træt r) æ E r) æ (kk aj r) æ (v e - r) æ (L01 Ae // PB changed from [Aj] + r) æ (L01 Ae? // PB changed from [Aj] afh) æ (ngig 'E: // PB stgressed e r) æ (k Aj t) æ (C E: @@ -1538,38 +1658,41 @@ proven) u y .group ø - ø W: - // ø (CK W: - b) ø (g W - d) ø (r W - f) ø (r W - ff) ø (r 'W: // PB stressed in 'chauffør' +// røveren [V] faldt på røven [V3] og skød [W] + ø W + ø (d W: //PB øde + ff) ø (r 'W // PB stressed in 'chauffør' g) ø (r @: h) ø (j V - ø (je V // PB øje + ø (je V3 // PB øje h) ø (r W: //k) ø (r W: l) øg (n 'Vj l) ø (s W: - m) ø W: - r) ø W + L09) ø W: // PB m => L09 (m + n) + r) ø V3 // PB [W] => [V3] + r) ø (m W: // PB strømere s) ø_ W: t) ø (r W ø (r W + sp) ør (g W: // PB spørge //r) ø (CK W: -// r) ø (v W // PB røv, røver + r) ø (v V3 // PB røv + r) ø (ver V // PB røver k) ø (d W // PB skød, kød _) øg (_ Wj // PB 'øg' noun and verb d) øg (n Vj øj+ V:j // PB changet from [Oj] + velg) ø (renhed '@ // PB stressed ø .group å å O: // PB changed from O:? å (CK V å (d+ O: // PB råd - å (r+ O: + å (r+ O h) å (r V // PB hår, hård l) å (r V + s) å O // PB så .group $ dVlV // PB changed from [dVlar] diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 052a429c..24a9be86 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -60,9 +60,9 @@ E i o O u V W y Y * - : ; ? b d D -dZ f g h j k l l/3 -m n N p r R s S -t tS v w z +dZ f g h j k l L +l/3 m n N p r R s +S t tS v w z Dictionary hu_dict diff --git a/dictsource/en_rules b/dictsource/en_rules index 81503f7f..d5f3916b 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -3120,7 +3120,7 @@ is (er+_ aIz iser (_ aIz3 &) ish (_ I2S - is (ive aI + is (ive aIs _) is (lan aI is (land aI _) is (le aI @@ -5421,8 +5421,6 @@ ' ! _:Ekskl@meIS@n_: ! (\! - ? (? kwEstS@nmA@ks - ?) ? : koUl@n D_) : (_DD_ // omit colon in time, eg: 2:30 $ d0l3 diff --git a/dictsource/hu_list b/dictsource/hu_list index 7bb790b4..e5236a56 100755 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -206,6 +206,7 @@ _#-át a:t $alt2 // entries with a single digit such as (2-i) also apply to 22, 32, etc, unless $only (30-cal) hAR2mints:Al +(3-al) ha:R2om:Al //4 number suffixes (4-el) ne:J:El //Nneed J: phoneme, not J phoneme contains one suffix) @@ -226,6 +227,8 @@ _#-át a:t $alt2 (7-tel) he:t:El (7-el) he:t:El (8-cal) n^olts:Al +(8-al) n^olts:Al +(9-el) kilEnts:El _10e tiz _20e hus (10-szer) ti:s:ER2 @@ -338,6 +341,7 @@ GDP dZi:di:pi: $allcaps ?2 GDP $abbrev $allcaps HSDPA $abbrev $allcaps kb kYR2ylbElyl $hasdot +MLSZ EmElEs $allcaps ORTT $abbrev $allcaps ORFK oEREfka: $abbrev $allcaps MÁV ma:v $allcaps @@ -445,7 +449,7 @@ is $u // also elöl $unstressend // in front of elől $unstressend elé $unstressend -előtt $alt3 $unstressend +előtt $alt $alt3 $unstressend este $alt3 estéjén $alt3 mögül $unstressend // behind @@ -530,7 +534,13 @@ vel $unstressend ellen $unstressend // against //elé $u // before -óta $alt3 // since +óta $alt $alt3 // since. Not a bug both $alt $alt3 attribute, +//because if only a year is present, need spokening normal number, not +//ordinal number. For example: +//2004. óta meaning since 2004 and need spokening normal number. +//But június 26. óta need spokening $alt3 style date ordinal number. This +//attribute combine fix this problem. + hétfőig $alt3 keddig $alt3 szerdáig $alt3 @@ -924,6 +934,8 @@ rést $unstressend brit $unstressend természetes $u $1 front $unstressend +szerezni $unstressend + // word pairs @@ -1155,16 +1167,8 @@ egyezség eggyesség (DVD-d) dévédéd (USA-éval) usáéval (ubuntu-n) ubuntun - - - - - - - - - - +(hu-n) hun +(USA-ban) usában diff --git a/dictsource/hu_rules b/dictsource/hu_rules index e64cae94..cd91a7f1 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 .group ch @@ -166,6 +166,9 @@ menetren) dsz (erű d|s 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 .group dz @@ -333,7 +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: .group h @@ -385,6 +389,7 @@ tizene) gy (edik J: kossutht koSu:t: készségg ke:SSe:g: _a) kk (reditál k + _) köztük kYstyk .group l l l @@ -431,6 +436,8 @@ keresztü) l (j l me) ll (kas l inte) ll (ige l e) ll (ipsz l + _) e) lj (ár lj + .group m @@ -733,6 +740,7 @@ gyalogo) ssz Ss rádió) ssz (ob Ss jelzé) ssz (erű Ss kitöré) ssz (erű Ss + hatá) ssz (üne Ss .group sz sz s @@ -933,6 +941,7 @@ terüle) t (cél t néme) t (juhá t pó) t (je t halo) tt (ba t + éle) t (jel t .group ts ts (_S2 tS //general rule with word end of ts letters @@ -1129,7 +1138,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 (tat s + kocká) z (ta s hibá) z (tat s különbö) z (tet s válto) z (tat s @@ -1147,6 +1156,11 @@ 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 + .group diff --git a/dictsource/lv_rules b/dictsource/lv_rules index 71384637..990be12e 100755 --- a/dictsource/lv_rules +++ b/dictsource/lv_rules @@ -161,7 +161,7 @@ uš) o (_ uo o (s_ uo oš) o (_ uo - o) (šs_ uo + o (šs_ uo o (ties_+ uo o (t_++ uo oto (_ uotuo diff --git a/dictsource/ro_rules b/dictsource/ro_rules index 92b3f79d..3fa5532d 100644 --- a/dictsource/ro_rules +++ b/dictsource/ro_rules @@ -461,7 +461,7 @@ e) x (a gz e) x (e gz e) x (i gz - ) x (e_ ks + x (e_ ks _ale) x ks me) x (ic ks e) x (iA_ ks diff --git a/dictsource/sk_list b/dictsource/sk_list index 725bbec5..649ed292 100644 --- a/dictsource/sk_list +++ b/dictsource/sk_list @@ -256,6 +256,12 @@ z zet $atend // Exceptions +// syllabic l +dlh dl-h +stĺp stl:p +plch pl-x +čln tSl-n + // don't soften (d,n,t) before e,i aktívni $alt definitívne $alt diff --git a/phsource/compile_report b/phsource/compile_report index 639e38f4..18aa928d 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -321,7 +321,7 @@ l/l_@ [l/3] base [Y] fr [l/] fr l/l@ [L] base - [¼øÞ] base + [¼ÈÔ] base [W] fr [Y] fr [l] fr @@ -348,13 +348,13 @@ l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq l/la [L] base - [¼øÞ] base + [¼ÈÔ] base [a] fr [l] fr l/l_a [l/3] base [l/] fr l/le [L] base - [¼øÞ] base + [¼ÈÔ] base [l] fr l/l_e [l/3] base [l/] fr @@ -363,7 +363,7 @@ l/L_eL_af [&] af l/l_front [L] sq l/l_front_ [l/4] sq l/li [L] base - [¼øÞ] base + [¼ÈÔ] base [l] fr [l] zh l/l_i [l/3] base @@ -372,14 +372,14 @@ l/l_i [l/3] base l/l_long [l] base [l] fr l/lo [L] base - [¼øÞ] base + [¼ÈÔ] base [l] fr l/l_o [l/3] base [l/] fr [o2] fr l^/l_rfx [l.] base l/lu [L] base - [¼øÞ] base + [¼ÈÔ] 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 diff --git a/src/Makefile b/src/Makefile index ab79ca05..dfaaa6f9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -6,7 +6,7 @@ INCDIR=$(PREFIX)/include/espeak LIBDIR=$(PREFIX)/lib DATADIR=$(PREFIX)/share/espeak-data -RELEASE = 1.39 +RELEASE = 1.43 BIN_NAME = speak BIN2_NAME = espeak LIB_NAME = libespeak.so @@ -49,14 +49,14 @@ endif speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \ readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ - synthdata.cpp synthesize.cpp translate.cpp tr_english.cpp \ - tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp + synthdata.cpp synthesize.cpp translate.cpp \ + tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \ readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ - synthdata.cpp synthesize.cpp translate.cpp tr_english.cpp \ + synthdata.cpp synthesize.cpp translate.cpp \ tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \ - espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp + espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp SRCS1=$(speak_SOURCES) OBJS1=$(patsubst %.cpp,%.o,$(SRCS1)) @@ -88,7 +88,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME) x_%.o: %.cpp - $(CXX) $(CXXFLAGS) $(USE_AUDIO) -Wall -fpic -pedantic \ + $(CXX) $(CXXFLAGS) $(USE_AUDIO) -Wall -fpic -fvisibility=hidden -pedantic \ -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o $(LIB_NAME): $(OBJS2) diff --git a/src/compiledict.cpp b/src/compiledict.cpp index 770db439..5a89cb93 100755 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -1046,7 +1046,14 @@ static char *compile_rule(char *input) strcpy(rule_match,group_name); if(rule_match[0]==0) + { + if(rule_post[0] != 0) + { + fprintf(f_log,"%5d: Syntax error\n",linenum); + error_count++; + } return(NULL); + } EncodePhonemes(rule_phonemes,buf,bad_phoneme); for(ix=0;; ix++) diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 659799ca..993f24af 100755 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1940,6 +1940,8 @@ static void MatchRule(Translator *tr, char *word[], int group_length, char *rule { if(rb == RULE_CONDITION) match.phonemes++; // skip over condition number + if(rb == RULE_LINENUM) + match.phonemes += 2; // skip over line number } } else diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 595a7c11..f062ea81 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.02 08.Mar.10"; +const char *version_string = "1.43.10 12.Mar.10"; const int version_phdata = 0x014300; int option_device_number = -1;