From 04cdb409dba270c9771d94b35a59073997b4d643 Mon Sep 17 00:00:00 2001 From: jonsd Date: Thu, 31 Jul 2008 14:59:31 +0000 Subject: [PATCH] [1.37.09] Fixed pitch adjustments for mbrola voices (eg. -p option). Changes to languages: pt (mb-br4), fr, af git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@181 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/af_list | 15 +- dictsource/af_rules | 75 +++++++-- dictsource/dict_phonemes | 38 ++--- dictsource/en_list | 1 + dictsource/fr_list | 328 +++++++++++++++++++++------------------ dictsource/fr_rules | 109 +++++++------ dictsource/pt_list | 17 +- dictsource/pt_rules | 56 ++++--- docs/index.html | 2 +- phsource/compile_report | 14 +- phsource/mbrola/fr1 | 2 + phsource/mbrola/ptbr | 107 +++++++++++++ phsource/mbrola/ptbr4 | 106 +++++++++++++ phsource/ph_french | 13 +- phsource/ph_pt_brazil | 6 +- src/speak.cpp | 19 +-- src/spectseq.cpp | 2 - src/synth_mbrola.cpp | 11 +- src/synthdata.cpp | 2 +- src/wavegen.cpp | 56 ++++--- 20 files changed, 643 insertions(+), 336 deletions(-) create mode 100644 phsource/mbrola/ptbr create mode 100644 phsource/mbrola/ptbr4 diff --git a/dictsource/af_list b/dictsource/af_list index f28765c2..a4037953 100755 --- a/dictsource/af_list +++ b/dictsource/af_list @@ -110,7 +110,7 @@ _1 _'e@n _1a _'e@n _2 'twe@ _3 'dri -_4 'fir +_4 'fi:r _5 'feIf _6 'sEs _7 'se@v@ @@ -231,6 +231,7 @@ ulundi ul'undi upington apiNt@n vesuvius v@su:viWs viëtnam vj'Etnam +wallonië val'o@ni@ wellington wEliNt@n wolseley wulsli worcester v'ust@r @@ -323,6 +324,7 @@ gerhardus $2 gloria glO:ria grange x2rA:nsi gustav gustaf +guy _^_EN harry _^_EN havenga hA:f@Nx2a haydn hAId@n @@ -347,6 +349,7 @@ jordaan $2 josef jo@s@f juanita juan'ita kelvin _^_EN +kim _^_EN $capital krige krix2@ langenhoven laN@nho@f@n lasarus lA:s@r%Ws @@ -380,7 +383,7 @@ messias m@sijas michael _^_EN michelle miS'&l michiel $2 -mike _^_EN +mike _^_EN miriam mIri@m mohammed muh'am@t mostert m'Ost@rt @@ -637,6 +640,7 @@ bene be@n@ beswil bEsv@l bêre b&:r@ beskryf b@skr'eIf +besnedene b@sne@d@n@ bestes bEst@s beta be@ta bewe be@v@ @@ -764,9 +768,11 @@ kwansuis $2 libido l@bidu londense lOnd@ns@ +lord _^_EN macaroni makar'o@ni madame mad'A:m +madamoiselle _^_FR malles mal@s maskering mask'e@r@N $only massaal $2 @@ -785,6 +791,7 @@ misbruik $2 $verb misbruikte $2 miskien $2 misterie m@ste@ri +monsieur _^_FR motore mo@t'o@r@ motor mo@t@r motortjie mo@t@rki @@ -811,6 +818,7 @@ normale nOrm'A:l@ numeri nWm@ri oeuvre W:vr@ +omgeef $2 omrede $2 omtrent Omtr'Ent onbegrip $1 @@ -887,6 +895,7 @@ sektore $2 sinagoge s@n@x2o@x2@ senatore s@nat'o@r@ singenot sInx2@nOt +sir _^_EN skares skA:r@s skepsele skEps@l@ skuldelas skWld@las @@ -914,6 +923,7 @@ terug t@-rWx2 tesaam t@sA:m tevrede t@fre@d@ toegee tux2e@ +toereken ture@k@n totale tut'A:l@ totsiens $2 tragiek trax2'ik @@ -921,6 +931,7 @@ tragiek trax2'ik uitdaging YydA:x2@N uiteraard Yyt@r_'A:rt uitermate $3 +uniforme $3 vaarwel fA:rv'&l vakant f%ak'ant diff --git a/dictsource/af_rules b/dictsource/af_rules index 4bfb2723..e9150cb7 100755 --- a/dictsource/af_rules +++ b/dictsource/af_rules @@ -330,7 +330,7 @@ an (djie+ aIN anek (dot %an%Ek // fix stress and vowel sounds: anekdote/-doties ane (mo %an@ // fix stress and vowel sounds: anemoon/anemone - _) an (A an //short a at word start + _) an (A %an //short a at word start ange (lier %aN@ // angelier/-e and compounds an (gina %aN // move default stress, fix n/g sounds: angina _) angl (A %A~Nx2l% // anglikaans/anglisisme/anglofiel @@ -440,6 +440,7 @@ bibli (oC b@bl%i:% // biblioteek and compounds/biblioteke/bibliofiel/bibliografie... bidd bId // biddag/aanbidding bid bIt_ // biduur/aanbid + _) bi (ga b%i // bigamie/-s/-e bikini b@kini // move default stress: bikini and compounds bil (j b@l // move default stress: biljet/-te/biljart/biljoen and compounds binne bIn@ // binnekom/binnelandse @@ -569,7 +570,7 @@ bessie bEsi berg b&rx2 berge b&rg@ - berke b&rk@ // fix 2nd e in compoundslike: berketonnel + _) berke b&rk@ // fix 2nd e in compoundslike: berketonnel besem be@s@m besering =b@se@r@N // besering/s/kniebesering... bete (_ be@t@ // fix stress and e sound: (af)gebete/diabete @@ -938,6 +939,8 @@ gel) eer e@r // words containing geleer take default stress: regsgeleerde @k) eer e@r // words containing keer take default stress, except for: ik) eer 'e@r // abdikeer/kommunikeer, etc. + AAl) eer e@r // restore default stress: evange-/evolusie-/seekoeilieleer, etc. + Aol) eer 'e@r // fix stress: rioleer/gelanseoleer/-de/gepetioleer oriënt) eer e@r // default stress: beroepsgeoriënteerd and similar Cm) eer e@r // words containing meer preceded by consonant take default stress: bergmeer/strandmeer, etc. rm) eer 'e@r // but not words like: alarmeer/gereformeerd/transformeer @@ -1303,6 +1306,7 @@ _) fi (na@ f%i // finaal/finale/finansies mor) fine (@ fin@_ // fix e sound in compounds: morfineafhanklikheid/-beswyming/-dosis/-tablet fi (skA f@ // move default stress: fiskaal/fiskale/konfiskeer + _) fitz _^_EN // English pronunciation: Fitzgerald/-john/-patrick, etc. fla (mi fl%a // move default stress: flamink/-e and compounds fla (grant fl%a // shorten 1st a and move default stress: flagrant/-e flambo (jant fl%amb%u // move default stress: flambojant/-e/-heid @@ -1344,6 +1348,8 @@ gala (_ gA:l%a // fix g sound: gala/swemgala/gala-aand ga (lAC x2%a // galant/galery/galon/galop gal (joen x2%al // move default stress: galjoen/-e and compounds + gamie (_ x2am'i // bi-/mono-/poligamie, etc. + gamies x2'A:mis // bi-/mono-/poligamies/-e gar (n x2%ar // move default stress: garnaal/garnale/garneer/garnering and compounds garni (soen x2%arn%i // fix stress: garnisoen and compounds @C) garye x2%ar'eI@ // Fix stress: Bulgarye/Hongarye @@ -1610,7 +1616,7 @@ iber (i@ %ibe@r // Siberië/Siberiese/Iberiese @) ic (_ _^_EN // Words ending in -ic are English ie i - tr) ie (_ 'i //stress on trie at word end + tr) ie (_ 'i //stress on trie at word end ieë (K i:@ // knieë/vlieë/spieël/-tjie h) i (dro i //hidro in compounds _) i (ko %i // move default stress: ikoon/ikone @@ -1805,7 +1811,7 @@ C) iveer if'e@r // always takes stress C) iver (A if'e@r // always takes stress: aktiverende/motivering i (voor %i // move default stress: ivoor and compounds - ié 'i // pronounce dié/nié, etc. with stress + ié '!i // pronounce dié/nié, etc. with stress C) i (ësta %i // fiësta/siësta .group j @@ -1823,6 +1829,7 @@ januarie jany,A:ri japo (n j%apO // fix stress and shorten a sound: japon/-ne and compounds/japonika jas (myn j%as // move default stress: jasmyn and compounds + jazz dZ&:z // fix j and a sounds: jazz and compounds jean _^_EN jeep _^_EN // English pronunciation jellie dZ'Eli @@ -2044,7 +2051,7 @@ kommando k%umandu // move stress, fix o sounds: kommando and compounds kommer (si k%Om%&r // fix e sound: kommersieel/-ële kommissie k%umis%i //kommissie alone and in compounds - ko (pie@ k%u // kopiereg/kopie + _) ko (pie@ k%u // kopiereg/kopieë koe (rA k%u // koerier/koerasie/koerant and compounds ko (ra k%u // fix stress and o sound: koraal/korale and compounds korrek k%urEk //korrek and derivitives @@ -2277,7 +2284,7 @@ ma (tr m%a // matriek and many compounds with matriek/matras/matroos/matrose ma (trikK mA: // lengthen a sound: matriks/-e @) matig m'A:t@x2 // doelmatig/gelykmatig/regmatig; matig takes stress in compounds -// mc _^_EN //the mac names does not work +// mc _^_EN // The mac names does not work mme (C m@ mme (tjie mi // lemmetjie/stemmetjie and similar @@ -2394,6 +2401,7 @@ memo (rA m%Em%u // fix stress and vowel sounds: memorandum/memoranda and compounds/memoriseer/-sering meneer m@n'e@r // meneer/meneertjie menere m@n'e@r@ // menere/beroepsmenere + meng (sel mEN // fix e sound: sitronellamengsel and similar compounds mening m'e@n@N mening (itis mEn@Nx2 // see rule: mening m'e@n@N @@ -2577,6 +2585,7 @@ odiek ud'ik // periodiek/metodiek oggend (@ Ox2@nt_ // fix d sound: oggenduur/-reën, etc. oggende (_ Ox2@nd@ // but: oggende and compounds ending in -oggende + okapi %o@kA:p%i // fix stress: okapi/-'s and i in compounds: okapispoor,etc. _) oker o@k@r // fix e sound in compounds: okergeel/-kleur, etc. okker (neut %Ok@r // move default stress: okkerneut and compounds _) ok (tA %Ok // move default stress: Oktober and compounds: Oktobermaand, etc./oktaaf/oktawe @@ -2619,7 +2628,7 @@ k) oe (r u // short oe: (ge)koer t) oe (rA u // short oe: toe(rank/-reik/-rig/-rol...) w) oe (r u // short oe: (ge)woer - + oe (ë u: // long oe: kroeë/moeë/ploeë and similar oei uI oi OI oy OI @@ -2633,6 +2642,10 @@ odjie OIci otjie OIci offi (sier %Of@ // move default stress: offisier and compounds + ofiel uf'il // franko-/hemo-/nekro-/pedo-/russofiel, etc. + ofilie ufil'i // hemo-/nekro-/pedofilie, etc. + ofobie ufo@b'i // antropo/-xenofobie and many other -fobie words + ofobies uf'o@bis // antropofobies/-xenofobies/-e and many other -fobies words ofoon uf'o@n // mikrofoon/sakso(saxo)foon ofone uf'o@n@ // mikrofone/sakso(saxo)fone ograaf ux2r'A:f // biograaf/demograaf/fotograaf @@ -2755,6 +2768,7 @@ ovu %Ov%y // fix stress, o and v sounds: ovulasie/ovuleer ower (@ o@v@r // lowergroen/betowerend/dowerig/compounds of owerheid ower (spelig %o@v@r // move default stress: owerspelig/-e + _) o' (C _^_EN // names like O'Connor are English oë u:@ // .group on @@ -2941,7 +2955,7 @@ p p p (p _) paarl p&:r@L // Paarl/Paarlberg/Paarlvallei - _) padda p''ada // fix stress and 2nd a sound: paddavis/paddaman, etc. + _) padda (CA p''ada // fix stress and 2nd a sound: paddavis/paddaman, etc. pa (godA p%a // fix stress and a sound: pagoda/pagode/-s pajama p@dZ'A:ma //pajama and compounds pak (A pak? // pakesel/pakos/verpakafdeling @@ -2996,11 +3010,11 @@ paté p%ate@ // fix stress and vowel sounds: (lewer)paté, etc. pavil (joe p%av@l // fix stress and v sound: paviljoen and compounds pawil (joe p%av@l // fix stress: pawiljoen and compounds - _) pe (dA p@ //pedaal pedanties etc. - _) peda (g p%Ed%a //pedagogie etc. - _) pedi p%Ed%i //pediater etc. - _) pedo (C p%Ed%u //pedofiel pedometer etc. - + _) pe (dA p@ //pedaal pedanties etc. + _) peda (g p%Ed%a //pedagogie etc. + _) pedi p%Ed%i //pediater etc. + _) ped (of p%Ed //pedofiel pedofilie, etc. + _) pedo (m pEd%u // restore default stress: pedometer/-s polio po@li;u // polio and compounds pele (ton p%&l@ // fix stress and e sounds: (vuur)peleton and similar compounds _) peli (ka p%El%i // move default stress: pelikaan/pelikane @@ -3081,6 +3095,7 @@ polisie p%ulis%i poli (tAAC p%Ol@ // politiek/politoer and compounds polities p%ulit%is // fix stress and o sound: polities/-e + _) poli (C p%o@l%i // polifonie/-s/poligamie/-s and many poli- words pol (vy p%Ol // move default stress: polvy/-e and compounds pomelo p%ume@l%u // fix stress and o sounds: pomelo(sap/-drankie...) _) pon (dok p%On // move default stress: pondok/-ke/-kie @@ -3366,6 +3381,7 @@ _) sa (ff sa'' // move default stress: saffier and compounds/saffraan/-agtig/-peer saghebbe (n s%ax2hEb@ // fix stress and e sound: gesaghebbend/-e sag (moe s%ax2 // move default stress: sagmoedig/-e/-heid + sala (mander s%al%a // move default stress: salamander/-s and compounds salaris s@lA:r@s // salaris/aanvangsalaris/salarisskaal/-uitbetaling salvo (K salv%u // fix v sound: (geweer)salvo/-'s and similar sal (mander s%al // fix stress: salmander/-s/klipsalmander @@ -3442,6 +3458,7 @@ sipre (K s%iprE // fix stress and i sound: sipres/-se/bergsipres/sipresboom sirene s@re@n@ // move default stress and fix vowel sounds: sirene/-s/-lied/-sang si (troen s@ // move default stress: sitroen and compounds + sitronella s@tr%un&l%a // fix stress and vowel sounds: sitronella and compounds skade skA:d@ // elik suffix rule breaks a sound of (on)skadelik skadu skA:dy // skaduagtig/skadutjie skaker (ing sk%ake@r // skakering/-s/kleurskakering @@ -3585,6 +3602,7 @@ sweep swe@p // fix w sound: rubbersweep swepe swe@p@ // fix w sound: rubberswepe sw (erm sw // fix e sound: naderswerm + switser swIts@r // fix e sound: Switserland/Switserse .group st D_) ste st@ //ste after numbers 22ste etc. @@ -3653,6 +3671,7 @@ strukt (u str%Wkt // correct stress: strukture/bevelstruktuur/-ture studen (t st%ydEn // fix stress: student/regstudent/studentesentrum, etc. stu (de st%y // fix stress and e sound: bestuderend/bestudering + styfge (@P6 st'eIfx2@ // fix e sound: styfgewen/-de .group t @@ -3675,6 +3694,7 @@ tamele (tj t%am@lEi // fix stress and vowel sounds: tameletjie/-s _) tand (a tant_ // fix d sound and insert pause: tandarts/-e and compounds _) tande (C@ t''and@ // fix e sound: tandebeker/-pasta/-poeier/-trekker + tand (o tant_ // fix d, insert pause: afstandonderrig/langafstandoproep/tandoperasie/tweetandooi _) tant (e tA~nt // nasalise: tante/-tjie/-s tantes tA~nt@s // nasalise and fix e sound: tantes @@ -3740,6 +3760,7 @@ tok (tokk t%Ok // move default stress: toktokkie/-s/-spelery, etc. _) to (na t%o@ // fix stress and o sound: tonaal/tonale @) toris (_ t'o@r@s // fix stress: pectoris/klitoris + _) tos (ka t%Os // move default stress: Toskaanse/Toskane tradi (si tr%adi // shorten and unstress 1st slb: tradisie/tradisioneel/kunstradisie... trag (ed tr%ax2 // move default stress: tragedie and compounds tra (jek tr%a // move default stress and shorten a sound: trajek/-te @@ -3794,6 +3815,7 @@ teen (oorges t%e@n_ // move default stress: teenoorgestel/-d/-e @A) te (geC t@ // fix e sound: Hugenotegemeente/stategebou and similar compounds @C) te (gn t& //tegniek/iese and friends + teiken teIk@n // fix e sound, split ng: teikengroep/-skiet and similar compounds _) tekere t@ke@r@ // move default stress and correct e sounds teks (tiel t%Eks // move default stress: tekstiel and compounds _) teks (tu t%Eks // move default stress: tekstuur/teksture @@ -3817,6 +3839,7 @@ teks (+ tEks // compounds with teks tempel tEmp@l // fix e sounds: afgodtempel/Hindoetempel/kultuurtempel/tempelbewaarder/tempeldienaar tent (_ tEnt //suurstoftent and others + ten (takel t%En // move default stress: tentakel/-s tente (_ tEnt@ // (suurstof-/wa-)tente and similar ten (toon t%En // move default stress: tentoonstel/-ling te (oo t@ // geboorteoorskot/kosteoorweging/siekteoorsaak/terroristeoorlog @@ -4128,6 +4151,7 @@ _) vo (me f%u // fix stress and o sound: vomeer/-mering voren f'o@r@n // alvorens/vorentoe voog (dy f%o@x2 // fix stress: voogdy and compounds + voor (A fo@r_ // insert pause: vooraan(sig)/vooraf/voorin/voorop/vooroor voor (afgaan f%o@r_ // move default stress: voorafgaan/-de/-s voorbar fo@rb'A:r // move default stress: voorbarig and derivitives _) voorbe (@P6 f'o@rb@ @@ -4142,7 +4166,7 @@ voort (duren f%o@r_ // fix stress and drop t: voortdurend/-e voor (trek fo@r // voortrek/voortrekker and compounds voort (v@@ f%o@rt // voortvarend/voortvlugtige - _) vooruit fo@r'Yyt // vooruit/vooruitsig/vooruitbeplanning + _) vooruit fo@r_'Yyt // vooruit/vooruitsig/vooruitbeplanning vooruit (strew fo@rYyt' // change stress voorwaard (_ f%o@rvA:rd // stress: (on)voorwaardelik vor (_ _^_EN //words ending in vor is English @@ -4216,6 +4240,7 @@ Cut) w v // fix w sound: geskutwerf/stutwal/-le out) w v // houtwerk/soutwater and similar yd) w v // fix w sound: sluittydwerk/(wa)wydwakker + weder (va v%e@d@r // move default stress: wedervaar/wedervare/wedervaring/-e/-s wee (moedi v%e@ // move default stress: weemoedig/-e/-heid weer (barst v%e@r // move default stress: weerbarstig/-e/-heid C) w (eerder v // fix w sound: insek-/muskiet-/reuk-/sweetweerder and similar @@ -4289,7 +4314,7 @@ _) wen (aC vEn? // wenas/wenakker/opwenaksie ne) wens v@ns // newens/benewens/hierbenewens/daarbenewens @C) we (tK vE // krygswet/verdedigingswetgewing - + AC) w (aaier v // fix w sound: blaas-/bamboes-/dakwaaier and similar waardeer vard'e@r // waardeer/waardeerder waarder (@ vard'e@r // waarderend/e/waardering &) waardig v'A:rd@x2 // stress on -waardig: merkwaardig/besienswaardigheid, etc. @@ -4316,6 +4341,8 @@ _) wig vIx2 // fix stress: gewig/-tig/-e wiking vikiN // fix i sounds wilhel (mi v@lh%&l // move default stress: Wilhelmina/-straat + _) wind (a vInt_ // fix d sound, insert pause: windaf(dryfmiddel)/as + _) wind (o vInt_ // fix d sound, insert pause: windop/windorrel, etc. wispel (tu v@sp@l // move default stress: wispelturig/-e/-heid wn _^_EN // names containing town/Brackendowns/Brown @@ -4346,6 +4373,7 @@ .group x x ks x (x + xen (o z%En // xeno-/fiel/-filie/-fobie/-fobies/-e .group y y eI @@ -4359,8 +4387,14 @@ zebra ze@bra // fix vowel sounds: zebra/-strepe .group + @) 's (S2 s // plurals of wrds ending in vowels: crescendo's/innuendo's/okapi's, etc. @) 'tjie %ici // foto'tjie/ma'tjie, etc. + K) á (CK '!a // extra stress: kán/wás and similar + áá '!A: // extra stress: dáár/dáár and similar K) ék (_ '&k // fix e sound and stress: ék/gék + K) é (CK '!E // extra stress: hét/nét and similar + éé '!e@ // extra stress: één, etdc. + ék (_ '!&k // ekstra stress: ék/plék ə @ // char.replacement for 'n _C) è (_ E // dè/nè @@ -4380,8 +4414,16 @@ ï (nt @ // geïnteresseerd ï (nC 'I // beïndruk/beïnvloed ïsol %is%ul // geïsoleer/-d + K) ó (CK '!O // extra stress: óf/kón and similar + óé '!u // extra stress: móét/sóék and similar + óó '!o@ // extra stress: sóós/vóór and similar + óói '!oI // extra stress: (n)óóit + óú '!@U // extra stress: sóú/wóú ô O: + K) ú (CK '!W // extra stress: dús/júl(le) and similar ûe W@ // brûe/rû + ý '!eI // extra stress: jý/mý/sý and similar + ñ _^_ES // words containing ñ are Spanish: senñor/-a/-ita // punctuation ! _:eItrup_: @@ -4389,7 +4431,7 @@ $ dOl@r % p@rs'Ent & _|amp&rsant - £ p@Unt + £ pO:nt € Y@ru / stre@p @ beI_: @@ -4418,6 +4460,7 @@ . pWnt . (. _: \.) . + ~ tIld@ // extra symbols ¥ jEn diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 5880cc38..6589fecb 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -1,20 +1,6 @@ Phonemes which are used in the *_rules and *_list files -Dictionary af_dict - -& &: 3: @ @- @L @U a -A: aI AI aU A~ E e: e@ -eI e~ I i iu O O: o@ -OI oI o~ u uI W y Y@ -Yy - -- : ; ? b c d dZ -f g h j k l m n -N p r s S t tS v -w x2 z Z - - Dictionary cs_dict @- a a: aU e e: eI eU @@ -68,9 +54,9 @@ Dictionary en_dict 0 3 3: @ @- @2 @5 @L a a2 A: A@ aa aI aI@ aU -aU@ E e@ eI I I2 i: i@ -i@3 IR O O: o: O@ o@ OI -oU O~ U u: U@ V VR +aU@ E e@ eI I i I2 i: +i@ i@3 IR O O: o: O@ o@ +OI oU O~ U u: U@ V VR : ; ? b C d D dZ f g h j k l m n @@ -113,8 +99,8 @@ S s2 t v Z Dictionary fr_dict @ @- a A A~ e E E~ -i i: o O O2 O~ u w -W W2 w^i W~ y Y +i i: o O o- O2 O~ u +w W W2 w^i W~ y Y : ; b c d dZ f g h j k l m n N n2 @@ -261,6 +247,20 @@ l m n N p r s t tS v w z +Dictionary af_dict + +& &: 3: @ @- @L @U a +A: aI AI aU A~ E e: e@ +eI e~ I i iu O O: o@ +OI oI o~ u uI W y Y@ +Yy + +- : ; ? b c d dZ +f g h j k l m n +N p r s S t tS v +w x2 z Z + + Dictionary ta_dict a a: e E e: E: i I diff --git a/dictsource/en_list b/dictsource/en_list index 4cef780d..20151f61 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -2409,6 +2409,7 @@ Natalie nata2li Nathan neIT@n Neville nEvIl Nicholas nIk@l@s +Nicola nIk@l@ Nicosia nIk@s'i:@ Nigel naIdZ@L Nguyen nu:jEn diff --git a/dictsource/fr_list b/dictsource/fr_list index b51f8dbb..71235e91 100755 --- a/dictsource/fr_list +++ b/dictsource/fr_list @@ -3,7 +3,7 @@ // 2006-11-18 Gilles Casse // -// Updated 2008-07-16 Michel Such +// Updated 2008-07-26 Michel Such // // * Numbers, a few abbreviations and exceptions. // @@ -66,7 +66,7 @@ _brv br'Ev _ced sed'ij _cir aksA~siRkO~fl'Eks _dia tRem'a -_dot pw'E~syskr'i +_dot pwE~syskr'i _grv aksA~gR'av _hac kar'O~ _mcn makr'O~ @@ -93,10 +93,10 @@ _) f'ERm paRA~t'Ez _* astERisk: _, viRgyl _- tiRE -_. pwE~ +_. _pw%E~ _/ slaS _: d'Ypw'E~ -_; pw'E~viRg'yl +_; pwE~viRg'yl _< E~feRjWR _= egal _> sypeRjWR @@ -115,75 +115,81 @@ _} f'ERm_akOl'ad // numeric -_0 zeR'o +_0 zeRo _1 W~ -_2 d'Yz2 -_3 tRw'az2 -_4 k'atR -_5 s'E~c -_6 s'iz3 -_7 s'Et -_8 _|'w^it -_9 n'Wf -_10 d'iz3 +_2 dYz2 +_3 tRo-az2 +_4 katR +_5 sE~k +_6 siz3 +_7 sEt +_8 _|w^it +_9 nWf +_10 diz3 _11 O~z -_12 d'uz -_13 tR'Ez -_14 kat'ORz -_15 k'E~z -_16 s'Ez -_17 d'is:'Et -_18 d'iz'w^it -_19 d'izn'Wf -_20 v'E~ -_21 v'E~te:E~ -_22 v'E~td'Yz2 -_23 v'E~t:tRw'az2 -_24 v'E~tk'atR -_25 v'E~ts'E~c -_26 v'E~ts'iz3 -_27 v'E~ts'Et -_28 v'E~tw^it -_29 v'E~tn'Wf -_3X tR'A~t -_31 tR'A~te:E~ -_4X kaR'A~t -_41 kaR'A~te:E~ -_5X sE~k'A~t -_51 sE~k'A~te:E~ -_6X swas'A~t -_61 swas'A~te:E~ -_7X swas'A~t:d'iz3 -_71 swas'A~te:O~z -_72 swas'A~t:d'uz -_73 swas'A~t:tR'Ez -_74 swas'A~t:kat'ORz -_75 swas'A~t:k'E~z -_76 swas'A~t:s'Ez -_77 swas'A~t:d'is:'Et -_78 swas'A~t:d'iz'w^it -_79 swas'A~t:d'izn'Wf -_8X k'atR@v'E~ -_80 k'atR@v'E~z2 -_9X k'atR@v'E~d'iz3 -_91 k'atR@v'E~:'O~z -_92 k'atR@v'E~:d'uz -_93 k'atR@v'E~:tR'Ez -_94 k'atR@v'E~:kat'ORz -_95 k'atR@v'E~:k'E~z -_96 k'atR@v'E~:s'Ez -_97 k'atR@v'E~:d'is:'Et -_98 k'atR@v'E~:d'iz'w^it -_99 k'atR@v'E~:d'izn'Wf -_0C s'A~ -_1C0 s'A~t2 -_0M1 m'il -_1M1 m'il -_0M2 milj'O~ -_0M3 milj'aR +_12 duz +_13 tREz +_14 katORz +_15 kE~z +_16 sEz +_17 dis:Et +_18 dizw^it +_19 diznWf +_20 vE~ +_21 vE~te:W~ +_22 vE~tdYz2 +_23 vE~t:tRo-az2 +_24 vE~tkatR +_25 vE~tsE~k +_26 vE~tsiz3 +_27 vE~tsEt +_28 vE~tw^it +_29 vE~tnWf +_3X tRA~t +_31 tRA~te:W~ +_4X kaRA~t +_41 kaRA~te:W~ +_5X sE~kA~t +_51 sE~kA~te:W~ +_6X so-asA~t +_61 so-asA~te:W~ +_7X so-asA~t:diz3 +_71 so-asA~te:O~z +_72 so-asA~t:duz +_73 so-asA~t:tREz +_74 so-asA~t:katORz +_75 so-asA~t:kE~z +_76 so-asA~t:sEz +_77 so-asA~t:dis:Et +_78 so-asA~t:diz'w^it +_79 so-asA~t:diznWf +_8X katR@vE~ +_80 katR@vE~z2 +_9X katR@vE~diz3 +_91 katR@vE~:O~z +_92 katR@vE~:duz +_93 katR@vE~:tREz +_94 katR@vE~:katORz +_95 katR@vE~:kE~z +_96 katR@vE~:sEz +_97 katR@vE~:dis:Et +_98 katR@vE~:dizw^it +_99 katR@vE~:diznWf +_0C sA~ +_1C0 sA~t2 +_0M1 mil +_1M1 mil +_0M2 miljO~ +_0M3 miljaR _0and e -_dpt virg'yl +_dpt virgyl +(21 ème) vE~te:yniEm +(31 ème) trA~te:yniEm +(41 ème) karA~te:yniEm +(51 ème) sE~kA~te:yniEm +(61 ème) so-asA~te:yniEm +(81 ème) katr@vE~:yniEm // ABBREVIATIONS //************** @@ -210,7 +216,7 @@ jaws Z'owz kde $abbrev m. m@sjY mbrola Em'bRola -mlle mad@mwazEl +mlle mad@mo-azEl mme madam mr m@sjY nsi $abbrev @@ -225,7 +231,7 @@ ratp $abbrev scsi $abbrev s.t.p s'il:t'@:pl'E s.v.p s'il:v'u:pl'E -st s'E~ +st s'E~t2 ste s'E~t stp s'il:t'@:pl'E svp s'il:v'u:pl'E @@ -244,62 +250,63 @@ prof $dot // articles -le $u $nounf -le $u $verb $verbextend -la $u $nounf -la $u $verb $verbextend -les lez2 $u $nounf -les lez2 $u $verb $verbextend -un $u $nounf -une $u $nounf +le $u+ $nounf +le $u+ $verb $verbextend +la $u+ $nounf +la $u+ $verb $verbextend +les lez2 $u+ $nounf +les lez2 $u+ $verb $verbextend +un $u+ $nounf +une $u+ $nounf // conjonctions -mais $u +mais $u+ ou u $u $brk et e $u $brk or $u $brk ni $u $brk -car $u $brk -soit $u $verb +car $u+ $brk cependant $brk néanmoins $brk toutefois $brk -avant $brk -après $brk +avant $u+ $brk +après $u+ $brk +alors alOr $u+ dont dO~t2 $u lorsque $u parce pars@- $u -quand $u que $u $verbf -qui $u $verbf +qui $u+ $verbf quoique $u si $u +quant kA~t2 $u // pronouns je $u $verbf -tu $u $verbf -il $u $verbf -elle $u $verbf +tu $u+ $verbf +il $u+ $verbf +elle $u+ $verbf y $u $verbf -nous $u $verbf -vous $u $verbf -elles $u $verbf -ils $u $verbf -on O~n2 $u $verbf +nous $u+ $verbf +vous $u+ $verbf +elles $u+ $verbf +ils $u+ $verbf +eux Yz2 $u+ +on O~n2 $u+ $verbf me $u $verbf te $u $verbf se $u $verbf -lui $u $verbf -ça $u $verbf +lui $u+ $verbf +ça $u+ $verbf -ce $u $nounf +ce $u+ $nounf cette $u $nounf ces sez2 $u $nounf -ceci $verbf -cela $verbf +ceci $u+ $verbf +cela $u+ $verbf (celle ci) sEl||si $verbf (celle là) sEl||la $verbf (ceux ci) sY||si $verbf @@ -315,20 +322,20 @@ ta $u $nounf ton $u $nounf tes tez2 $u $nounf sa $u $nounf -son $u $nounf +son $u+ $nounf ses sez2 $u $nounf notre $u $nounf votre $u $nounf leur $u $nounf leur $u $verb $verbextend -(la leur) la||lWr $u $verbf -(le leur) l@||lWr $u $verbf +(la leur) la||lWr $u+ $verbf +(le leur) l@||lWr $u+ $verbf nos $u $nounf vos $u $nounf -leurs $u $nounf +leurs $u+ $nounf leurs $u $verb $verbextend -(les leur) le||lWr $u $verbf -(les leurs) le||lWr $u $verbf +(les leur) le||lWr $u+ $verbf +(les leurs) le||lWr $u+ $verbf // prepositions de $u @@ -336,60 +343,87 @@ du $u $nounf des dez2 $u $nounf -à $u a +à a $u au $u -dans $u -sur $u autour otur -par $u -pour $u -en $u -en $u $verb $verbextend +dans $u+ +en $u+ +en $u+ $verb $verbextend (en suspens) A~||sysp'A~ -(en tous) A~||tuz2 $u -(Tant mieux) tA~||mi;'Y +(en tous) A~||tuz2 $u+ +par $u+ +pour $u+ +tant tA~t2 $u+ +entre $u+ +contre $u+ -vers $u -avec $u $brk -sans $u -sous $u -entre $u $brk -contre $u - -durant $u $brk +durant $u+ // negative ne $u $verbf +pas $u+ +plus $u+ +guère $u+ // questions -où $brk +quand kA~t2 $u+ +quoi $u+ +où $brk $u+ // auxillary verbs (be, have, can, etc) -es Ez2 $verb -ès Es $u -est Et2 -ès Es -d'est d'Est +suis $u+ $verb +es Ez2 $u+ $verb +est Et2 $u+ +sommes $u+ $verb +êtes $u+ $verb +sont $u+ $verb -eu y $u -eue y $u -eues yz2 $u -eus yz2 $u -eut yt2 $u $verb -eux Yz2 $u +fus $u+ $verb +fut $u+ $verb +fûmes $u+ $verb +fûtes $u+ $verb +furent $u+ + +sois $u+ $verb +soit $u+ + +ai $u $verb +as as +as az2 $u+ $verb +a $u+ $verb +ont $u+ $verb + +eu y $u+ +eue y $u+ +eues yz2 $u+ +eus yz2 $u+ + +eut yt2 $u+ $verb +eûmes $u+ $verb +eûtes $u+ $verb +eurent $u+ + +aie $u+ $verb +aies $u+ $verb +ait $u+ $verb +aient $u+ + +d'est d'Est +ès Es $u // some common adjectives and adverbs -quelque $u -tout t'ut2 $u -rien riE~n2 - +quelque $u+ +tout t'ut2 $u+ +toute t'ut $u+ +toutes t'utz2 $u+ +rien riE~n2 $u+ // Letters which can be words //=========================== à $atend $accent -y igr'Ek $atend +y igr'Ek $atend $only ô $atend $accent @@ -429,8 +463,7 @@ absent absA~ admin admin airbus Erbys auvent ovA~ -bien biE~n2 -(bien sûr) biE~||s'yr +bien biE~n2 $u+ bis bis bissus bisys bus bys @@ -465,14 +498,7 @@ gens ZA~ mens mA~z2 sens sA~s sens sA~z2 $verb -c'est sEt2 qu'à ka -m'y mi $verbf -t'y ti $verbf -s'y si $verbf -n'y ni $verbf -l'y li $verbf -qu'y ki $verbf (sud est) sydEst (nord est) nOREst @@ -550,6 +576,7 @@ computer _^_en (cyber link) _^_en debian dEbjAn driver _^_en +edit _^_en emacs Emaks emacspeak Emakspi:k end _^_en @@ -585,6 +612,7 @@ open Op'Wn outlook autluk paint _^_en paper _^_en +people _^_en redhat REdat same _^_en sametime _^_en @@ -606,7 +634,7 @@ discutions diskytjO~z2 débutions debytjO~z2 désertions dezERtjO~z2 $verb détentions detA~tjO~z2 -exploitions EksplwatjO~z2 +exploitions Eksplo-atjO~z2 exportions EkspORtjO~z2 heurtions _!WRtjO~z2 limitions limitjO~z2 @@ -618,7 +646,7 @@ répétions RepetjO~z2 sortions sORtjO~z2 supportions sypORtjO~z2 tentions tA~tjO~z2 -votions votjO~z2 $u +votions votjO~z2 étions etjO~z2 évitions evitjO~z2 diff --git a/dictsource/fr_rules b/dictsource/fr_rules index bcb3c601..939a47b9 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -1,13 +1,30 @@ -// French translation rules +// French translation rules for Espeak + +// *************************************************************************** +// * Copyright (C) 2005 to 2007 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, see: * +// * . * +// ***************************************************************************/ // This file is UTF-8 encoded // 2006-11-18 Gilles Casse // -// Updated: 2008-07-17 Michel Such +// Updated: 2008-07-26 Michel Such // -// * The rules are based on Cicero TTS. -// Y // Letter classes: // A all vowels: a e i o u y â ä é ê è î ï ô ö ù û @@ -15,6 +32,7 @@ // Y front vowels: e i y é ê è î // K not a vowel (i.e. consonant, space, ) +.L01 e é ê ë è i î ï y .group a ae (_ e // reggae vitae @@ -87,7 +105,7 @@ .group c - c' s // s + _) c' (P2v s // s cch k // bacchanale cc (Y ks // accéder cc k // occuper @@ -111,7 +129,7 @@ cq k // pecq s) c (Y // x) c (Y - c (Y s // cède + c (L01 s // cède _) cyber (P5 sibEr ban) c (_ // banc blan) c (_ // blan @@ -144,7 +162,6 @@ _gran) d (_ t2 // grand ami, grand marchand Cen) d (_ t2 Con) d (_ t2 - quan) d (_ t2 quen) d (_ t2 r) d (_ _har) d (_ d @@ -176,6 +193,9 @@ elqu) e =@ uisqu) e =@ rsqu) e =@ + _C) e (_ @ // je te + -c) e (_ @- + -j) e (_ @- e (Ce_ E eau o // bateau cheveaux @@ -232,6 +252,8 @@ ol) en (t_ A~ // somnolent, violent Vol) en (t_ // somnolent, violent Xol) en (t_ // volent + ul) en (t_ A~ // turbulent + Vul) en (t_ imCoC) en (t_ A~ // impotent inCoC) en (t_ A~ // innocent, indolent @@ -382,8 +404,6 @@ d) esh (A ez // Deshormeaux - _r) es (A @s // resaisir resaluer - _r) e (ss @ // ressembler _r) e (ssu e // ressusciter _r) e (stra @ @@ -414,36 +434,25 @@ ey Ej // asseye ez (_ ez2 // nez mangez chez - _C) e (_ @ // je te - _CC) e (_ =@- - - -j) e (_ @- - g) e (A // mangeons _d) e (ch @ - _d) e (Cl @ - _d) e (Cr @ // degré - _d) e (rr E // derrière _r) e (ch @ // recherche - _r) e (Cl @ - _r) e (Cr @ // retracer + e (Cl @ _l) e (xA E _l) e (CA @ _l) e (ChA @ _l) e (ClA @ // Leclerc - _l) e (CrA @ // Lebrun tr) e (CA @ tr) e (ChA @ - tr) e (ClA @ - tr) e (CrA @ // entreprise e (CC E // infect pelle mettre + e (Cr @ _) e (ff e // effet, effectuer - _s) e (cr @ // secret e (C_ E + e (rC E es (_ z2 ll) e (m // actuellement guillemets @@ -458,6 +467,9 @@ Av) e (pA e @ // menue + _) e (CA e + _) e (xA E + // group e: English section eac _^_en @@ -469,11 +481,9 @@ eas _^_en // please eave _^_en // leave ed (_ _^_en - _) edit _^_en ee _^_en // meeting eing (_ _^_en // being, boeing eive _^_en // receive - ej _^_en eld (_ _^_en // field _) enter (_ _^_en // enter _) enhan _^_en @@ -481,7 +491,8 @@ ock) et (_ _^_en // rocket, pocket qu) est (_ _^_en // request qu) este (X_ _^_en // requested, requester - _) ev _^_en // even, ever, event + _) even _^_en // forever, however + _) ever _^_en // forever, however oC) ever _^_en // forever, however _) eye _^_en @@ -511,12 +522,12 @@ .group g g g + g (L01 Z su) gg (Y gZ // suggérer suggestif gg g // agglomérer ai) gni n^ // craignions châtaignier gn n^ // agneau - _quatre_vin) gts (_ z2 // quatre-vingts ans _quatrevin) gts (_ z2 vin) gt (_A t // liaison: vingt ans @@ -534,22 +545,18 @@ gt (_ // vingt doigts gt t // vingtaine doigté + gua gua // anguille + gui gi // anguille ai) gu (il gy // aiguillage in) gu (is gy // linguiste g (C g - g (a g // langage - g (u g - g (â g - g (ü g - g (o g - g (û g _ran) g (_ // rang _san) g (_ // sang _lon) g (_ // long + bour) g (_ // Strasbourg g (_ g // grog gag goulag - g Z // congé george // group g: English section _) game (X _^_en @@ -611,6 +618,11 @@ _) half _^_en i i // cri i (A i // rien + _f) i (a i: + l) i (a i: + Cr) i (a i: + Cr) i (é i: + Cr) i (er_ i: i (o j ie (ment i // remerciement balbutiement C) ien (t_ i @@ -627,7 +639,6 @@ _) half _^_en i (es_ i // parties i (e_ i - i (A j // fermier portier patio renier _) ill ill // illégal aigu) ill ij // aiguille anqu) ill ill // tranquille @@ -658,6 +669,7 @@ _) half _^_en C) is (_ i // group i: English section + ibuter (X _^_en iev _^_en ife (_ _^_en igh _^_en @@ -686,6 +698,7 @@ _) half _^_en .group j j Z // adjoint joujoux + _) j' (P2v Z .group k @@ -711,7 +724,7 @@ _) half _^_en .group m m m // film mm m // pomme - _) m' (P2 m + _) m' (P2v m // group m: English section _) mail (_ _^_en // mailer @@ -724,7 +737,7 @@ _) half _^_en nn n ng (_ N - _) n' (P2 n + _) n' (P2v n A) ng (_ N // parking meeting nn n // panne @@ -742,13 +755,13 @@ _) half _^_en _) os (_ Os s_) os (_ o x_) os (_ o - o (se_ o + o (seX o o (CCement_ O2 o (Cement_ O2 o (t_ o o (tre_ O2 - oe (ll wa // moelleux + oe (ll o-a // moelleux _) oe (C Y // oesophage _ph) oe (C e // phoetus oeu W // soeur coeur @@ -757,10 +770,10 @@ _) half _^_en _) oi (gnon o // oignons oin (C wE~ oin (_ wE~ // coin - oi wa // poil - oie (m wa // d‚ploiement - oê (l wa // poêle - oî wa // boîte + oi o-a // poil + oie (m o-a // d‚ploiement + oê (l o-a // poêle + oî o-a // boîte om (C O~ // bombe om (m O // nommer _) om (n O2m // omnibus @@ -794,9 +807,9 @@ _) half _^_en ou u // hibou brouillard où u // où oû u // coûter - oyes (_ wa // troyes - oy (A waj // noyer voyelles - oy wa // roy + oyes (_ o-a // troyes + oy (A o-aj // noyer voyelles + oy o-a // roy o (_ o // zorro allégro o (z_ o // berlioz o O @@ -900,7 +913,7 @@ mou) rr RR // mourrai s (_S1 z2 - _) s' (P2 s // s'amène + _) s' (P2v s // s'amène sç s // immisça sch (ie sk // schierzo sch (iz sk // schizophrène @@ -985,7 +998,7 @@ mou) rr RR // mourrai .group t t t // bataille _) t (_ te - _) t' (P2 t + _) t' (P2v t -) t (- t V) t (_ t2 // silent at end of verb unless next word starts with a vowel u) t (- t2 // silent at end of verb unless next word starts with a vowel diff --git a/dictsource/pt_list b/dictsource/pt_list index 39ef4a58..d2af740a 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -74,8 +74,8 @@ _% pors'eINtU _& 'e ?1 _' ap'Ostr,ofy ?2 _' ap'OstR,ofU -_( ,abRipa*'eINtezi -_) f,ES&pa*'eINtezi +_( ,abRipa*'eINtezy +_) f,ES&pa*'eINtezy _* ,aste*'iskU _+ m'aIs# @@ -122,10 +122,9 @@ _" 'abRi;'asp&||d'upl&s# _5 s'iNku _6 s'eIs# ?1 _7 s'Ety -?2 _7 s'EtSi +?2 _7 s'EtSy _8 'oItu -?1 _9 n'Ovy -?2 _9 n'Ovi + _9 n'Ovy _10 d'Es# _11 'oNzy @@ -133,18 +132,18 @@ _12 d'ozy ?1_13 tr'ezy ?2_13 tR'ezi ?1_14 k&t'orzy -?2_14 kat'orzi +?2_14 kat'orzy _15 k'iNzy ?1_16 dyz&s'eis# ?2_16 d,ezes'eIs# ?1_17 dyz&s'Ety -?2_17 d,ezes'EtSi +?2_17 d,ezes'EtSy ?1_18 dyz'Oitu ?2_18 dez'oItu ?1_19 dyz&n'Ovy -?2_19 dezen'Ovi +?2_19 dezen'Ovy ?1_2X v'iNty -?2_2X v'iNtSi +?2_2X v'iNtSy _3X tR'iNt& ?1_4X kw&*'eNt& diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 2c18fdab..00b41479 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -4,6 +4,7 @@ // Options // ?1 European Portuguese // ?2 Brazilian Portuguese +// ?3 Epenthetic [I] between consonants // ?4 Brazil mbrola voice // Letter groups @@ -43,7 +44,7 @@ am (C &~m ?4 am (C &~N an (K+ &~N - a (nhA &~ + a (nhA+ & am (_ =&U~ ?1 a (z_ 'a //eg: paz, rapaz, capaz, etc... ?1 C) acç 'a's // eg: selecção, etc... @@ -100,14 +101,16 @@ _) b (_ be b b b (b -?2 b (B bI +?3 b (B bI +?3 b (_C b_ .group c _) c (_ se c k c (Y s // ce ci -?2 c (B kI +?3 c (B kI +?3 c (_C k_ ch S ck k c (c //drop “c” in European Portuguese (eg: seleccionar) @@ -120,8 +123,8 @@ _) d (_ de d d d (d -?2 d (B dZI -?2 d (_C d_ +?3 d (B dZI +?3 d (_C d_ ?2 d (i dZ ?2 d (í dZ ?2 d (e_ dZ @@ -130,13 +133,11 @@ .group e _) e (_ E e e - e (_ =i - e (s_ =i + e (_ =y + e (s_ =y ?2 e (_AN =i/ // ?? elide to [j] if next word starts with a vowel ?2 &l) e (_AN =i // but not after l or r ?2 &r) e (_AN =i -?1 e (_ =y -?1 e (s_ =y ?1 e (_iN =i/ // drop final [i] is next word starts with another i ?1 e (e i //eg: candeeiro @@ -324,7 +325,8 @@ _) f (_ 'Efe f f f (f -?2 f (B fI +?3 f (B fI +?3 f (_C f_ .group g @@ -333,8 +335,8 @@ _) g (_ Ze g g g (g -?2 g (B ZI -?2 g (_C g_ +?3 g (B ZI +?3 g (_C g_ g (Y Z // ge gi gu (Y g ?1 guen (C gw'eIN // aguenta, etc. @@ -410,7 +412,8 @@ .group j _) j (_ Z'Ot& j Z -?2 j (B ZI +?3 j (B ZI +?3 j (_C Z_ .group k @@ -418,8 +421,8 @@ ?2 _) k (_ ka k k k (k -?2 k (B kI -?2 k (_C k_ +?3 k (B kI +?3 k (_C k_ .group l @@ -439,7 +442,8 @@ _) m (_ 'eme m m m (m -?2 m (B mI +?3 m (B mI +?3 m (_C m_ .group n @@ -448,7 +452,8 @@ _) n (_ 'ene n n n (n -?2 n (B nI +?3 n (B nI +?3 n (_C n_ nh n^ ?1 A) nn n //drop “n” (eg: connosco). @@ -568,7 +573,8 @@ _) p (_ pe p p p (p -?2 p (B pI +?3 p (B pI +?3 p (_C p_ ?1 ph f //Didn’t use in European Portuguese (eg: English) ?1 ple (_ _^_EN @@ -576,7 +582,7 @@ .group q _) q (_ ke q k -?2 q (B kI +?3 q (B kI qu kw qü kw qu (Y k @@ -646,8 +652,8 @@ _) t (_ te t t t (t -?2 t (B tSI -?2 t (_C t_ +?3 t (B tSI +?3 t (_C t_ ?2 t (i tS ?2 t (í tS ?2 t (e_ tS @@ -690,7 +696,8 @@ .group v v v v (v -?2 v (B vI +?3 v (B vI +?3 v (_C v_ .group w @@ -704,7 +711,7 @@ .group x x (A S A) x (A ks -?4 A) x (A z +?4 A) x (A S _e) x (A z e) x (A ks ?1 e) x (CA S @@ -735,7 +742,8 @@ _) z (_ ze z z z (z -?2 z (B zI +?3 z (B zI +?3 z (_C z_ ?1 @) z (_ S ?2 @) z (_ s @) z (_A z diff --git a/docs/index.html b/docs/index.html index 20c517c9..eca3b873 100644 --- a/docs/index.html +++ b/docs/index.html @@ -55,7 +55,7 @@ It can run as a command line program to speak text from a file or from stdin. A
  • Written in C++.

    -It works well as a "Talker" with the KDE text to speech system (KTTS), as an alternative to Festival for example. As such, it can speak text which has been selected into the clipboard, or directly from the Konquerer browser or the Kate editor. A Gnome Speech driver is now available. +It works well as a "Talker" with the KDE text to speech system (KTTS), as an alternative to Festival for example. As such, it can speak text which has been selected into the clipboard, or directly from the Konqueror browser or the Kate editor. A Gnome Speech driver is now available.

    I regularly use it to listen to blogs and news sites. I prefer the sound through a domestic stereo system rather than my small computer speakers.


    diff --git a/phsource/compile_report b/phsource/compile_report index a7cea1ae..c28d28f0 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -15,8 +15,8 @@ eo 13 110 jbo 4 111 fi 40 129 - fr 49 127 - fr_ca 11 127 + fr 50 128 + fr_ca 11 128 hi 51 135 ta 17 138 hu 23 114 @@ -1431,9 +1431,6 @@ vowel/i [i] base2 [i:] hu [i] pl [i] it - [I] pt - [y] pt - [i/] pt [i] pt_pt [i/] ro [i] el @@ -1454,6 +1451,7 @@ vowel/i_2 [i:] en_rp [i:] sv vowel/i_3 [i] af [i] fr + [i:] fr [i:] sk vowel/i_4 [i] fi [i] hu @@ -1473,7 +1471,6 @@ vowel/i#_6 [i.] zh vowel/i#_7 [i[] zh vowel/i_en [i:] en [i:] en_us - [i:] fr [i] vi vowel/i_fnt [i:] en_wi [i] hi @@ -1514,6 +1511,9 @@ vowel/ii_5 [I] en_wi vowel/ii_6 [I] en_wm [I2] en_wm [I] sr + [I] pt + [y] pt + [i/] pt vowel/ii_en [i] en vowel/@_low [3] en_rp [@] en_rp @@ -1553,6 +1553,7 @@ vowel/o-_2 [V] en_n [V] en_wm vowel/o_3 [oU] en_sc [o] fr + [o-] fr vowel/o-_3 [U] en_rp vowel/o_4 [oU] en_n vowel/o-_4 [o] ro @@ -1892,7 +1893,6 @@ w/w2 [w2] base2 [w] sk [w] pt_pt w/wa [(a)] base - [w] fr w/we [(e)] base w/wi [(i)] base [i] vi diff --git a/phsource/mbrola/fr1 b/phsource/mbrola/fr1 index 02383302..92a8bf26 100644 --- a/phsource/mbrola/fr1 +++ b/phsource/mbrola/fr1 @@ -14,6 +14,7 @@ volume 15 0 Y NULL 0 2 0 W NULL 0 9 +0 W2 NULL 0 9 0 A~ NULL 0 a~ 0 E~ NULL 0 e~ 0 O~ NULL 0 o~ @@ -40,6 +41,7 @@ volume 15 0 eI NULL 60 E j 0 aU NULL 60 a w 0 oU NULL 0 o +0 o- NULL 0 o 0 @L NULL 40 @ l 0 @2 NULL 0 @ 0 @5 NULL 0 @ diff --git a/phsource/mbrola/ptbr b/phsource/mbrola/ptbr new file mode 100644 index 00000000..82557914 --- /dev/null +++ b/phsource/mbrola/ptbr @@ -0,0 +1,107 @@ +0 l/ NULL 0 w +0 l/2 w 0 l +0 l/2 j 0 l +0 l/2 NULL 0 w +0 r/ NULL 0 r2 +0 r- NULL 0 r +0 w/ NULL 0 w +0 j/ NULL 0 y +0 ; NULL 0 NULL +0 g- NULL 0 NULL +0 @- NULL 0 NULL +8 * j 0 r +0 * VWL 0 r +0 * NULL 0 r2 +0 : NULL 0 NULL + + +0 S NULL 0 x +0 Z NULL 0 j +0 tS NULL 0 t +0 dZ NULL 0 d +0 l^ NULL 0 h +0 n^ NULL 0 nh +0 N NULL 0 n +0 x NULL 0 rr +0 z _ 0 s2 +0 s VWL 0 s +0 s w 0 s +0 s j 0 s +0 s NULL 0 s2 +8 s# VWL 0 s +0 s# NULL 0 s2 +8 r VWL 0 r +0 r NULL 0 r2 +0 R NULL 0 r +0 j NULL 0 y + +0 a/ NULL 0 a +0 A NULL 0 a +0 & NULL 0 a +0 &/ NULL 0 a +9 &~ N 0 am +0 &~ NULL 0 am +0 E NULL 0 ee +9 eI m 0 em +9 eI N 0 em + +0 i/ NULL 0 i +9 i N 0 im +9 i~ N 0 im +0 i~ NULL 0 im +9 o N 0 om +9 o~ j/ 60 om i +9 o~ N 0 om +0 o~ NULL 0 om +0 O NULL 0 oo +9 u~ j/ 60 um i +9 u~ N 0 um +0 u~ NULL 0 um +0 U NULL 0 o +0 y NULL 0 i + +0 aI NULL 60 a y +0 eI NULL 60 e y +0 EI NULL 60 ee y +0 oI NULL 60 o y +0 OI NULL 60 oo y +0 uI NULL 60 u y +0 aU NULL 55 a w +0 &U~ NULL 60 @ w +0 eU NULL 55 e w +0 EU NULL 55 ee w +0 iU NULL 55 i w + + +// English phonemes +0 @ NULL 0 @ +0 T NULL 0 t +0 D NULL 0 z +0 0 NULL 0 o +0 V NULL 0 a +0 I NULL 0 i +0 I2 NULL 0 i +0 A: NULL 0 a +0 A@ NULL 60 a r +0 o: NULL 0 o +0 O: NULL 0 o +0 O@ NULL 60 o r +0 o@ NULL 60 o r +0 i: NULL 0 i +0 i@ NULL 60 i a +0 i@3 NULL 60 i r +0 u: NULL 0 u +0 U@ NULL 60 u r +0 3 NULL 60 e r +0 3: NULL 60 e r +0 @L NULL 40 e l +0 a2 NULL 0 a +0 aa NULL 0 a +0 e@ NULL 0 e r +0 oU NULL 0 o +0 OI NULL 60 o i +0 aI@ NULL 60 a e +0 aU@ NULL 0 a +0 t2 NULL 0 t +0 h NULL 0 NULL + diff --git a/phsource/mbrola/ptbr4 b/phsource/mbrola/ptbr4 new file mode 100644 index 00000000..7edfddd0 --- /dev/null +++ b/phsource/mbrola/ptbr4 @@ -0,0 +1,106 @@ +0 l/ NULL 0 w +0 l/2 w 0 l +0 l/2 j 0 l +0 l/2 NULL 0 w +0 r/ NULL 0 r2 +0 r- NULL 0 r +0 w/ NULL 0 w +0 j/ NULL 0 y +0 ; NULL 0 NULL +0 g- NULL 0 NULL +0 @- NULL 0 NULL +8 * j 0 r +0 * VWL 0 r +0 * NULL 0 r2 +0 : NULL 0 NULL + + +0 S NULL 0 x +0 Z NULL 0 j +0 tS NULL 0 t +0 dZ NULL 0 d +0 l^ NULL 0 lh +0 n^ NULL 0 nh +0 N NULL 0 n +0 x NULL 0 rr +0 z _ 0 s2 +0 s VWL 0 s +0 s w 0 s +0 s j 0 s +0 s NULL 0 s2 +8 s# VWL 0 s +0 s# NULL 0 s2 +8 r VWL 0 r +0 r NULL 0 r2 +0 R NULL 0 r +0 j NULL 0 y + +0 a/ NULL 0 a +0 A NULL 0 a +0 & NULL 0 a +0 &/ NULL 0 a +9 &~ N 0 an +0 &~ NULL 0 an +0 E NULL 0 ee +9 eI m 0 en +9 eI N 0 en + +0 i/ NULL 0 i +9 i N 0 in +9 i~ N 0 in +0 i~ NULL 0 in +9 o N 0 on +9 o~ j/ 60 on i +9 o~ N 0 on +0 o~ NULL 0 on +0 O NULL 0 oo +9 u~ j/ 60 un i +9 u~ N 0 un +0 u~ NULL 0 un +0 U NULL 0 w +0 y NULL 0 y +0 I NULL 0 y + +0 aI NULL 60 a y +0 eI NULL 60 e y +0 EI NULL 60 ee y +0 oI NULL 60 o y +0 OI NULL 60 oo y +0 uI NULL 60 u y +0 aU NULL 55 a w +0 &U~ NULL 0 @ +0 eU NULL 55 e w +0 EU NULL 55 ee w +0 iU NULL 55 i w + + +// English phonemes +0 @ NULL 0 @ +0 T NULL 0 t +0 D NULL 0 z +0 0 NULL 0 o +0 V NULL 0 a +0 I2 NULL 0 y +0 A: NULL 0 a +0 A@ NULL 60 a r +0 o: NULL 0 o +0 O: NULL 0 o +0 O@ NULL 60 o r +0 o@ NULL 60 o r +0 i: NULL 0 i +0 i@ NULL 60 i a +0 i@3 NULL 60 i r +0 u: NULL 0 u +0 U@ NULL 60 u r +0 3 NULL 60 e r +0 3: NULL 60 e r +0 @L NULL 40 e l +0 a2 NULL 0 a +0 aa NULL 0 a +0 e@ NULL 0 e r +0 oU NULL 0 o +0 OI NULL 60 o i +0 aI@ NULL 60 a e +0 aU@ NULL 0 a +0 t2 NULL 0 t + diff --git a/phsource/ph_french b/phsource/ph_french index 53732637..da228a3a 100644 --- a/phsource/ph_french +++ b/phsource/ph_french @@ -49,7 +49,7 @@ endphoneme phoneme i: // Slitely longer than i vowel starttype (i) endtype (i) length 212 - formants vowel/i_en + formants vowel/i_3 linkout ; endphoneme @@ -74,6 +74,13 @@ phoneme o endphoneme +phoneme o- + vowel starttype (o) endtype (o) + length 100 + formants vowel/o_3 +endphoneme + + phoneme O vowel starttype (o) endtype (o) length 170 @@ -112,13 +119,12 @@ endphoneme phoneme w - vowel + vowel starttype (o) endtype w length 120 beforenotvowel w/ lengthmod 7 formants w/w after _ w/_w - before (a) w/wa endphoneme @@ -387,6 +393,7 @@ phoneme r/ // variant of [r] when not preceding a vowel lengthmod 2 formants NULL before j vwl_fr/@R + before l vwl_fr/@R endphoneme diff --git a/phsource/ph_pt_brazil b/phsource/ph_pt_brazil index a257e967..9fd6690c 100644 --- a/phsource/ph_pt_brazil +++ b/phsource/ph_pt_brazil @@ -6,7 +6,7 @@ phoneme I // epenthetic i vowel starttype (i) endtype (i) length 90 - formants vowel/i + formants vowel/ii_6 unstressed endphoneme @@ -95,7 +95,7 @@ endphoneme phoneme y // this is the same as [i] for Brazil vowel starttype (i) endtype (i) length 150 - formants vowel/i + formants vowel/ii_6 linkout ; endphoneme @@ -104,7 +104,7 @@ phoneme i/ // changes to [j] before a vowel vowel starttype (i) endtype (i) beforevowel j length 150 - formants vowel/i + formants vowel/ii_6 linkout ; endphoneme diff --git a/src/speak.cpp b/src/speak.cpp index f8645e2f..866e2726 100755 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -212,23 +212,6 @@ void DisplayVoices(FILE *f_out, char *language) -static void PitchAdjust(int pitch_adjustment) -{//========================================== - int ix, factor; - - 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 - - - - static int OpenWaveFile(const char *path, int rate) //================================================= { @@ -734,7 +717,7 @@ int main (int argc, char **argv) if(pitch_adjustment != 50) { - PitchAdjust(pitch_adjustment); + SetParameter(espeakPITCH,pitch_adjustment,0); } DoVoiceChange(voice); diff --git a/src/spectseq.cpp b/src/spectseq.cpp index 20c5bb5c..f92b4b8e 100755 --- a/src/spectseq.cpp +++ b/src/spectseq.cpp @@ -987,7 +987,6 @@ void SpectSeq::MakeWave(int start, int end, PitchEnvelope &pitch) // } len_samples = int(((total_length * lfactor + 50) * samplerate) / 1000); -// SetPitch(len_samples,pitch.env,pitch.pitch1-pbase,pitch.pitch2-pbase); SetPitch(len_samples,pitch.env,9,44); fname_speech = WavFileName(); @@ -1064,7 +1063,6 @@ void SpectFrame::MakeWave(int control, PitchEnvelope &pitche, int amplitude, int len_samples = (length * samplerate) / 1000; pbase = voice->pitch_base >> 12; -// SetPitch(len_samples + 50,pitche.env,pitche.pitch1-pbase,pitche.pitch2-pbase); SetPitch(len_samples + 50,pitche.env,9,44); fname_speech = WavFileName(); diff --git a/src/synth_mbrola.cpp b/src/synth_mbrola.cpp index 21cf287f..c438d3b9 100755 --- a/src/synth_mbrola.cpp +++ b/src/synth_mbrola.cpp @@ -34,6 +34,7 @@ #include "voice.h" extern int Read4Bytes(FILE *f); +extern void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pitch_range); #ifdef USE_MBROLA_LIB @@ -285,15 +286,9 @@ static char *WritePitch(int env, int pitch1, int pitch2, int split, int final) output[0] = 0; pitch_env = envelope_data[env]; - if(pitch1 > pitch2) - { - x = pitch1; // swap values - pitch1 = pitch2; - pitch2 = x; - } - pitch_base = voice->pitch_base + (pitch1 * voice->pitch_range); - pitch_range = voice->pitch_base + (pitch2 * voice->pitch_range) - pitch_base; + SetPitch2(voice, pitch1, pitch2, &pitch_base, &pitch_range); + env_split = (split * 128)/100; if(env_split < 0) diff --git a/src/synthdata.cpp b/src/synthdata.cpp index f588b0d1..7ac1a544 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.37.07 19.Jul.08"; +const char *version_string = "1.37.09 31.Jul.08"; const int version_phdata = 0x013400; int option_device_number = -1; diff --git a/src/wavegen.cpp b/src/wavegen.cpp index 3c51efd0..751b406f 100755 --- a/src/wavegen.cpp +++ b/src/wavegen.cpp @@ -1594,14 +1594,41 @@ static void SetAmplitude(int length, unsigned char *amp_env, int value) } -void SetPitch(int length, unsigned char *env, int pitch1, int pitch2) -{//================================================================== -// length in samples +void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pitch_range) +{//====================================================================================== int x; int base; int range; int pitch_value; + if(pitch1 > pitch2) + { + x = pitch1; // swap values + pitch1 = pitch2; + pitch2 = x; + } + + if((pitch_value = embedded_value[EMBED_P]) > MAX_PITCH_VALUE) + pitch_value = MAX_PITCH_VALUE; + pitch_value -= embedded_value[EMBED_T]; // adjust tone for announcing punctuation + if(pitch_value < 0) + pitch_value = 0; + + base = (voice->pitch_base * pitch_adjust_tab[pitch_value])/128; + range = (voice->pitch_range * embedded_value[EMBED_R])/50; + + // compensate for change in pitch when the range is narrowed or widened + base -= (range - voice->pitch_range)*18; + + *pitch_base = base + (pitch1 * range); + *pitch_range = base + (pitch2 * range) - *pitch_base; +} + + +void SetPitch(int length, unsigned char *env, int pitch1, int pitch2) +{//================================================================== +// length in samples + #ifdef LOG_FRAMES if(option_log_frames) { @@ -1623,28 +1650,7 @@ if(option_log_frames) else pitch_inc = (256 * ENV_LEN * STEPSIZE)/length; - if(pitch1 > pitch2) - { - x = pitch1; // swap values - pitch1 = pitch2; - pitch2 = x; - } - - if((pitch_value = embedded_value[EMBED_P]) > MAX_PITCH_VALUE) - pitch_value = MAX_PITCH_VALUE; - pitch_value -= embedded_value[EMBED_T]; // adjust tone for announcing punctuation - if(pitch_value < 0) - pitch_value = 0; - - base = (wvoice->pitch_base * pitch_adjust_tab[pitch_value])/128; - range = (wvoice->pitch_range * embedded_value[EMBED_R])/50; - - // compensate for change in pitch when the range is narrowed or widened - base -= (range - wvoice->pitch_range)*18; - - pitch_base = base + (pitch1 * range); - pitch_range = base + (pitch2 * range) - pitch_base; - + SetPitch2(wvoice, pitch1, pitch2, &pitch_base, &pitch_range); // set initial pitch pitch = ((pitch_env[0]*pitch_range)>>8) + pitch_base; // Hz << 12