From d07bc6bfa551e85b3cdb1afea4eca9533b79ee12 Mon Sep 17 00:00:00 2001 From: jonsd Date: Thu, 14 Feb 2013 09:04:31 +0000 Subject: [PATCH] [1.46.34] Changes to languages: pt, en, vi git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@300 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/dict_phonemes | 17 ++-- dictsource/en_list | 94 +++++++++++------- dictsource/en_rules | 54 ++++++---- dictsource/pt_list | 21 +++- dictsource/pt_rules | 23 ++++- dictsource/vi_rules | 70 ++++++++----- phsource/compile_report | 42 +++++--- phsource/ph_english_us | 11 +-- phsource/ph_pt_brazil | 8 +- phsource/{ph_vi => ph_vietnam} | 174 +++++++++++++++++++++++++++------ phsource/phonemes | 2 +- src/compiledata.cpp | 14 +-- src/dictionary.cpp | 6 +- src/synthdata.cpp | 4 +- src/vowelchart.cpp | 8 +- 15 files changed, 379 insertions(+), 169 deletions(-) rename phsource/{ph_vi => ph_vietnam} (56%) mode change 100644 => 100755 diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 06d3281c..32e2dd66 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -103,7 +103,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-02-08 +Dictionary en_dict 2013-02-12 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -377,7 +377,7 @@ S s; S; t t; tS ts tS; ts; v w x z Z Z; -Dictionary pt_dict 2013-02-08 +Dictionary pt_dict 2013-02-11 & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU @@ -489,16 +489,17 @@ p Q r R s S t tS v w z Z -Dictionary vi_dict 2010-05-11 +Dictionary vi_dict 2013-02-10 @ @: @:I @:U @I @U a a: a:I a:U aI aU e E eU EU -i i@ iU o O OI oI u -u@ uI y y@ yI +i i@ iU o O o# O# o& +o@ OI oI u u@ uI y y@ +yI -b c d D f g h j -J k kh l m n N n^ -p Q r s s. t t[ tS; +b c cr d D f g h +j J J^ k kh l m n +N n^ p Q s s. t t[ v w x z Z z. diff --git a/dictsource/en_list b/dictsource/en_list index 8925a438..3d09e013 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -345,6 +345,7 @@ _90o n'aInti@ abc $abbrev ac $abbrev adf $abbrev +afk $abbrev (a . k . a .) aka#_! agpl $abbrev agm $abbrev @@ -405,6 +406,7 @@ nypd $abbrev nypsd $abbrev nyse $abbrev nyt $abbrev +ocr $abbrev oecd $abbrev oem $abbrev ok $abbrev @@ -510,6 +512,7 @@ adieus a#dju:z adieux a#dju:z adios aDj'o:s admirable adm@r@b@L +admirably adm@r@bli admonition adm@n'IS@n ado a#du: adobe a#doUbi @@ -585,6 +588,7 @@ amass a#mas ambassador a#mbas@d3 ambidextrous $3 amen ,A:m'En $onlys +?3 amen ,eIm'En amok a#m0k amoral eIm'0r@L amount a#maUnt @@ -612,6 +616,7 @@ anonymous a#n0n@m@s another a#nVD3 ante anti: antecedent antIs'i:d@nt +?3 anti antaI antibody $1 antichrist $1 anticline $1 @@ -720,7 +725,8 @@ ballot bal@t baloney b@loUni bagel beIg@L banal beIn@L -banana b@nA:n@ +banana $alt3 +?3 banana ba#nan@ banged baNgd banquet baNkwI2t barbeque bA@b@kju: @@ -748,6 +754,7 @@ basal beIs@L best bEst bestest bEst@st beta bi:t@ +?3 beta beIt@ betake bI2teIk beverage bEv@rI2dZ bias baI@s @@ -829,6 +836,7 @@ cadet $alt3 cadre kA:d3 caesar si:z3 cafe kafeI +?3 caffeine $2 cahoot $alt3 cajole $alt3 cajun keIdZ@n @@ -839,6 +847,7 @@ calv kA:v // for calved, calving ?3 calv kav // for calved, calving calve kA:v ?3 calve kav +camaraderie kam@r'A:d@ri cameo kamIoU camouflage kam@flA:Z campus kamp@s // campuses @@ -986,6 +995,8 @@ commence k@mEns commend k@mEnd comment k0mEnt commentary k0m@ntrI +?3 commentary k0m@ntEri +commi k0mI commie k0mI committee k@mIti communique k@mju:nI2keI @@ -996,6 +1007,7 @@ competing k@mp'i:tIN competition k0mp@t'IS@n compromise k0mpr@maIz compound $2 $verb +?3 comrade k0mrad con k0n concert $1 $onlys concert $verb @@ -1074,6 +1086,7 @@ crooked krUkId cuckoo kUku: cupboard kVb@d curate kjU@reIt +?3 current k'3:@nt curse k3:s ?5 curse kVRs customer k'Vst@m3 @@ -1125,6 +1138,7 @@ denier dI2naI3 denouement deIn'u:mO~ deny dI2naI depot dEpoU +?3 depot di:poU derange dI2reIndZ descry dI2skreI desert dI2z3:t @@ -1132,6 +1146,7 @@ desert dEs3t $only desert dI2z3:t $verb desolate dEs@l@t desperate dEsp@r@t +?3 detail $2 detente deIt'0nt détente deIt'0nt detritus dI2traIt@s @@ -1142,6 +1157,7 @@ devotee dEvoUt'i: di d,I $only diabetes daI@b'i:ti:z diagnose $3 +?3 dialog daI|@lO:g diameter daI'amI2t3 diaper daIp3 diaphanous daI'af@n@s @@ -1244,6 +1260,8 @@ entrance Entr'aans $verb entree 0ntreI envelope Env@loUp $only envelopes Env@loUps +?3 envelope A:nv@loUp +?3 envelopes A:nv@loUps envelope $verb epaulet Ep@l'Et epiphany I2pIf@nI @@ -1260,6 +1278,7 @@ eraser I2reIz3 ere e@ $only eros i@r0s err 3: +?3 err e@ errand Er@nd escallop Esk'A:l@p escapism Esk'eIpI2z@m @@ -1367,6 +1386,7 @@ formid fO@m'Id // formidable formica fO@m'aIk@ fortunate fO@tS@n@t fortune fO@tSu:n +?3 fortune fO@tS@n foyer fOIeI freelance fri:laans freon fri:0n @@ -1393,6 +1413,7 @@ gala gA:l@ galaxy gala#ksi galileo galI2l'eIoU galore $alt3 +?3 garage ga#rA:Z garish ge@rIS gases gasI#z gauche goUS @@ -1466,6 +1487,7 @@ helium hi:li@m helix hi:lIks hello h@loU henceforth hEnsfo@T +?3 herb 3:b hercules h3:kjUli:z heretical hI2rEtI2k@L hereto hi@3'tu: @@ -1509,6 +1531,7 @@ hunger hVNg3 hurrah h@r'A: hurrah hVr'eI hurricane hVrI2keIn +?3 hurricane h3:@keIn hussar hVz'A@ huzza h@z'A: huzzah h@z'A: @@ -1560,6 +1583,7 @@ inherit Inh'ErIt // inherited innard In3d inner In3 innovative In@veItIv +?3 inquiry Inkw@ri insect $1 insert Ins3:t $onlys insert Ins'3:t $verb @@ -1591,6 +1615,7 @@ interval Int3v@L interven Int3v'i:n // for intervening intray IntreI intro $1 +?3 investigative Inv,EstI2g'eItIv irate aIr'eIt iris aIrIs iron aI3n @@ -1632,6 +1657,7 @@ kowtow kaUt2aU la ,la $only laboratory la#b'0r@trI +?3 laboratory labr@tO:ri labor leIb3 labored leIb@d laborer leIb@r3 @@ -1649,6 +1675,7 @@ lasso las'u: ?3 lasso lasoU latrine $alt3 latte lA:t2eI +?3 launch lA:ntS lawyer lOI3 lava lA:v@ le l@_| $only @@ -1705,6 +1732,7 @@ looser lu:z3 lorenz l0r@nts los ,l0s $only losing lu:zIN // misspell +?3 lost lOst lukewarm lu:kwO@m lullaby lVl@baI lunatic lu:n@tIk @@ -1734,6 +1762,7 @@ mall mal ?3 mall mO:l mama mA:ma# mammoth mam@T +manageress manI2dZ@r'Es mandate $2 $verb manganese $1 manger meIndZ3 @@ -1843,6 +1872,7 @@ moustache m@st'aaS mouths maUDz $only movies mu:vIz mozilla m@zIl@ +?3 multi mVltaI multitude $1 multiplexer $1 mundane $2 @@ -2003,10 +2033,12 @@ parole $alt3 passenger pasI2ndZ3 passerby pas3b'aI passersby pas3zb'aI +?3 pasta pA:st@ pasted peIstI#d pasting peIstIN pastry peIstri pate pat2eI +?3 patent pat@nt pathetic $alt3 pathos peIT0s patio patIoU @@ -2115,6 +2147,8 @@ pretrial pri:tr'aI|@L pretty prIti pretzel prEts@L primeval praIm'i:v@L +pristine $2 +?3 privacy praIv@si privation praIv'eIS@n privilege prIvI2lI2dZ privy prIvi @@ -2159,6 +2193,7 @@ pythagoras paIT'ag@r@s python paIT@n pyramidal pI2r'amId@L +quadrilateral $3 quash kw0S quaternary kw@t3:n@rI qubit kju:bIt @@ -2263,6 +2298,7 @@ requiem rEkwI2Em reservation rEz3v'eIS@n reservoir rEz3vwA@ resin rEzIn +?3 respite rEspI2t restive rEstIv respiration rEspI#r'eIS@n respiratory rI2spIr@t@rI @@ -2293,6 +2329,7 @@ robust roUb'Vst romance roUm'ans rotate $2 rotund roUt'Vnd +roundtable $alt1 rouse raUz rout raUt // for routed routine $2 @@ -2360,6 +2397,7 @@ segue sEgweI separate sEp@-r@t separate sEp3reIt $verb semen si:m@n +?3 semi sEmaI semibreve $1 semicircle $1 semicolon sEmIk'oUl@n @@ -2548,6 +2586,7 @@ testes tEsti:z telephon tElI2foUn // for telephoning temperature tEmprI2tS3 ?!3 temporary tEmpr@rI +?3 template tEmpl@t thereof ,De@'0v thereon ,De@'0n thereto ,De@'tu: @@ -2572,6 +2611,7 @@ tis tIz $only toboggan t@b0g@n today t@deI todo t@du: +?3 tomato t@meItoU ton tVn $onlys tonage tVnIdZ tone toUn @@ -2595,7 +2635,7 @@ travesty trav@sti treatise tri:tIz triage tri:A:Z tribunal traIb'ju:n@L -triceratops $2 +triceratops traIs'Er@t0ps tricycle traIsIk@L trilogy trIl@dZi trio tri:oU @@ -2777,6 +2817,7 @@ yoghurt j0g3t yoyo joUjoU zavala $alt3 +?3 zebra zi:br@ zulus zu:lu:z @@ -2925,8 +2966,11 @@ Euphrates ju:fr'eIti:z Eyjafjalla eIja#fjatla# Folkestone foUkstoUn Fuego fweIgoU +Gabon gab0n +?3 Gabon ga#boUn Geneva dZ@ni:v@ Gdansk g@-dansk +Gibraltar $2 Gomera goUm'e@r@ Harare ha#rA:ri Hanoi han'OI @@ -2948,6 +2992,7 @@ Ipanema Ipa#n'i:m@ Israeli Izr'eIli Istanbul ,Ist,anb'Ul Italia It'alI2@ // Italian(s) +Ithaca IT@k@ Jakarta $alt3 Jerusalem dZ@ru:s@l@m Johannesburg $2 @@ -3018,6 +3063,7 @@ Noumea nu:m'eI@ Oahu oU'A:hu: Oklahoma oUkla#h'oUm@ Ohio oUh'aIoU +Omagh oUmA: Omaha oUma#hA: Oman oUm'an Oregon 0rI2g@n @@ -3074,7 +3120,6 @@ Tehran te@r'A:n (tel aviv) t,El||a#v'i:v Tenerife tEn3r'i:f Tennessee tEn@s'i: -Texas tEks@s Tijuana ti@w'A:n@ Tikal tI2kA:l Timor ti:mo@ @@ -3161,6 +3206,7 @@ Betsy bEtsi Betsey bEtsi Bjarne bjA@n@ Boris b0rIs +Bremen brEm@n Brianna brI'an@ Brien braI@n Caiseal kaS@L @@ -3448,6 +3494,7 @@ Dante dA:nt2eI Deslauriers dI2lo@rIeI Deveraux dEv3roU Disney dIzni +?3 Dolby doUlbi Dolce d0ltSeI Dvorak d@-vo@Zak Emory Em3ri @@ -3461,6 +3508,7 @@ Jacobi dZa#koUbi Kendell kEnd@L Kyocera kaI|@s'i@r@ Lamaze la#mA:z +Laurell $2 Mackenna m@kEn@ Mackenzie m@kEnzi Medusa m@du:s@ @@ -3476,6 +3524,7 @@ Rameses ram@si:z Ramirez ra#mi@3rEz Reagan reIg@n Reid ri:d +Remi r@ni: Reuter rOIt3 Rivera rI2ve@r@ Rizzoli rI2zoUli @@ -3537,8 +3586,8 @@ of 0v $u $only ?6 (of which) VvwItS $2 $pause for fO@ $u -(for a) f@@ $nounf -(for an) f@@n $nounf +(for a) f3@ $nounf +(for an) f3@n $nounf (for the) f3D@2 $nounf (for a while) f@@||w'aIl (for one) fO@w0n $2 $atend @@ -3818,8 +3867,8 @@ his hIz $u $nounf $only $strend2 her h3: $u $nounf $only hers h3:z $u $strend2 its Its $u $nounf -our aU@ $u $nounf $only -?3 our aU3 $u $nounf $only +our aU@ $u $nounf $onlys +?3 our aU3 $u $nounf $onlys your jO@ $u $nounf $only ?6 your jU@ $u $nounf $only their De@ $u $nounf $only @@ -3962,35 +4011,4 @@ like laIk $strend2 ?3 virile vIr@L ?3 volatile v0la#t@L -?3 amen ,eIm'En -?3 anti antaI -?3 banana ba#nan@ -?3 beta beIt@ -?3 caffeine $2 -?3 comrade k0mrad -?3 commentary k0m@ntEri -?3 current k'3@nt -?3 depot di:poU -?3 detail $2 -?3 dialog daI|@lO:g -?3 envelope A:nv@loUp -?3 err e@ -?3 fortune fO@tS@n -?3 garage ga#rA:Z -?3 herb 3:b -?3 hurricane h3:@keIn -?3 inquiry Inkw@ri -?3 investigative Inv,EstI2g'eItIv -?3 laboratory labr@tO:ri -?3 launch lA:ntS -?3 lost lOst -?3 multi mVltaI -?3 pasta pA:st@ -?3 patent pat@nt -?3 privacy praIv@si -?3 respite rEspI2t -?3 semi sEmaI -?3 template tEmpl@t -?3 tomato t@meItoU -?3 zebra zi:br@ diff --git a/dictsource/en_rules b/dictsource/en_rules index 38237195..fc0bc044 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -60,6 +60,7 @@ a (Cee+ a a (BeCo_ a a (BerA a + a (BeroA# eI a (BerC a a (Bet a @) a (Bia 'eI @@ -448,7 +449,7 @@ @) age (ment I2dZ g) age (ment 'eIdZ m) ag (enta @dZ - agh (_ @ + agh (_ A:g agio (_ 'A:dZIoU t) agi (o eIdZ _) ag (l@ a#g @@ -575,7 +576,6 @@ _) al (y al alz alt|s &) al (_ @L - &) ally (_ @li ?8 &) al (_ a#l @) ally (_S2 %i @@c) ally (_S4 l%i @@ -678,6 +678,7 @@ _n) ame eIm &) am (ent @m amer (ic a#mEr + c) am (ero am c) am (el am am (i_ 'A:m ami (g a#mi: @@ -1265,6 +1266,7 @@ _) be (f bI2 _) beg (AnK b%Ig _) be (gg bE + _) belarus bEl@r'u:s _) be (lC bE _) be (lli bI2 _) be (sC bI2 @@ -1914,6 +1916,7 @@ discr) e (tion E eu ju: ?3 n) eu u: +?3 n) eu (r U@ r) eu (d OI eu (m_ 'i:@ s) eu (m_ 'i@ @@ -2463,6 +2466,7 @@ er (ve 3: s) er (van 3: ery (_ @r%i +?3 @@AC) ery (_ e@ri ery (A 3j _v) ery ErI2 qu) ery i@rI @@ -2731,6 +2735,7 @@ @) guay (_ gwaI gue (_ g gu (e g + _) gu (i g _) g (yn g o) g (y_ g g (ynous_ =dZ @@ -2954,7 +2959,8 @@ &) iary =j@r%I &l) iary =i@r%I _) ian i@n - &) ia (_ =i|@ + &) ia (_N =i|@ + &) ia (_ =i@ @@) ia (_ =i@ @) ian (cy I|@n l) iais I|eIz @@ -3108,7 +3114,7 @@ l) im Im _pr) im (a aIm sh) im (a_ 'i:m - im (age Im + image ImI2dZ l) ime aIm d) ime (ns aImE im (ent+ Im @@ -3378,7 +3384,7 @@ ir (able 'aI3 m) ir (ac Ir sp) iral aI3r@L - @) ir (ation I#r + @) ir (ation @r ir (ate =i@r consp) ira (t Ir@ ire aI3 @@ -3423,6 +3429,8 @@ prAm) is Is b) is (_ Is c) is (_ Is + @@m) is (_ Is + am) is (_S1 z @Cs) is (_ =Is &) is (abl aIz isa (tion aIzeI @@ -3839,6 +3847,7 @@ .group o o 0 + _) o 0 X) o 0# X) o ($w_alt3 %0# _) o'(P2 %oU // prefix @@ -3881,18 +3890,18 @@ o (bic_ 'oU n) o (bil oU _m) o (bil oU - o (bje %0# + o (bje %0 _) o (bl %0# n) o (bl oU o (bliga 0 o (bligato %0# o (blo 0 _r) o (bo oU - _) o (bs %0# - _) obs (er %0#bz + _) o (bs %0 + _) obs (er %0bz obso (l 0bs@ o (bstin 0 - _) o (bt %0# + _) o (bt %0 o (by_ oU f) o (cA oU _l) o (cA oU @@ -3920,7 +3929,6 @@ k) o (dA oU meth) o (d_ @ peri) o (d_ @ - o (da_ oU d) o (dec %oU m) o (del 0 m) o (der 0 @@ -4128,6 +4136,7 @@ @) ome (tre '0mI @) ome (try '0m@ &) omer (_ @m3 + c) omer (_ Vm3 gl) om (er 0m _p) om (e 0m _s) ome Vm @@ -4463,7 +4472,7 @@ c) ou (pl V &) our (_ 3 np) our (_ o@ - &) oured @d + &) oured 3d ev) our (ed aU@ our (n 3: ?5 our (n VR @@ -4680,7 +4689,11 @@ per (cus p3 _) peregrin pEr@grIn per (fec p3 + _) per (iC@@ p,Er + _) perini pErIn'i: per (iph p3r + _) per (isc pEr + _) per (ish pEr perme (a p3:mI per (miss p3 per (mit p3 @@ -5096,7 +5109,6 @@ ?8 ssion (_ =SVn 1_) st (_ _) st (_ s@nt - _) state (@ steIt stein staIn ti) ssue Su: _) s (u s @@ -5253,9 +5265,9 @@ tu (ous tSu: @) tur (A tS@r @) tur (al_ tS=@r - @) tur (y tS@r - @) tur (_ tS3 - ture (_ tS3 + &) tur (y tS@r + &) tur (_ tS3 + &) ture (_ tS3 tz ts tze (_ tsi @@ -5368,7 +5380,7 @@ ?3 n) uclear u:kli@3 ucul VkjUl @) u (da_ 'ju: -?3 @) u (da_ 'u: +?3 @L08) u (da_ 'u: b) u (ddh U u (esq ju: u (ga_ 'u: @@ -5418,7 +5430,7 @@ u (ly u: d) u (ly ju: z) u (l_ 'u: - um (_ @m + &) um (_ @m vol) u (m ju: u (ma_ 'u: h) u (man ju: @@ -5604,7 +5616,7 @@ @) ur (ation jUr ure (_ jU@ ur (ed_ jU@ - g) ured (_ @d + g) ured (_ 3d b) ur (e jU@r g) ure (_ 3 ?3 g) ure (_ j3 @@ -5678,7 +5690,9 @@ _) x (Y z xio (n kS@ xious =kS@s + xas (_ =ks@s xis (_ =ksIs + xus (_ =ks@s xu (a =kSu: lu) x (ur gZ ?3 lu) xu (r gZU@ @@ -5880,6 +5894,7 @@ Eri (A 'i@rI2 Er (ie_ @r Er (ic_ Er + Er (ous_ @r Er (_ 3 ad) Er (_S1 3 ad) Ers (_S2 3z @@ -5987,8 +6002,11 @@ // non-ascii characters with specified pronunciations // List the accented characters in en_list with the $accent attribute + á (X 'A: à a é eI + é (X 'eI + é (CA_ 'eI _) é %I ée i: ê E: diff --git a/dictsource/pt_list b/dictsource/pt_list index 7f079d00..1f39dd99 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -493,10 +493,10 @@ era E*& $u1 // .. imperfect eram E*&U~ $u1 fui $u // .. preterite -foste $u +foste fostSy $u1 // & fostes foi $u fomos $u -fostes $u + fora $u // .. pluperfect fômamos $u @@ -723,17 +723,20 @@ cefaleia $alt cerca $alt $verb cerco $alt $verb cesta $alt2 +cesto $alt2 chamego $alt2 chefe $alt chinelo $alt choro $alt2 $noun chupeta $alt2 +clamores $alt2 coco $alt2 cofre $alt coice $alt2 colabore $alt colheste $alt2 colmeia $alt +colore $alt começo $alt2 $noun comodo $alt2 comera $alt2 @@ -784,7 +787,7 @@ discordo $alt dissermos $alt dobro $alt2 $noun doce $alt2 -doutoras $alt2 +doutora $alt2 droga $alt duelo $alt dueto $alt2 @@ -823,6 +826,7 @@ estiverdes $alt estiveres $alt estivermos $alt estrela $alt2 +estremeceste $alt2 estrofe $alt estorno $alt $verb estorvo $alt $verb @@ -854,7 +858,6 @@ fores $alt2 forro $alt $verb fosse $alt2 fossem $alt2 -foste $alt2 frevo $alt2 galera $alt gameta $alt2 @@ -867,6 +870,7 @@ gonorreia $alt gorda $alt2 gota $alt2 gozo $alt $verb +graveto $alt2 grego $alt2 grelha $alt grega $alt2 @@ -914,6 +918,7 @@ morcego $alt2 morda $alt2 moreia $alt mortos $alt +motora $alt2 ?2 mulher mulj'Er ?4 mulher mul^'Er mui mwi @@ -962,6 +967,7 @@ pesquem $alt peso $alt peso $alt2 $noun piloto $alt2 +pintora $alt2 pirueta $alt2 plateia $alt plebeia $alt @@ -1005,6 +1011,8 @@ rocha $alt rock $alt rogas $alt rolo $alt2 $noun +rosna $alt +rumores $alt2 saleta $alt2 sarjeta $alt severa $alt @@ -1016,7 +1024,7 @@ selo $alt $verb selvagem seUv'aZeIN sexteto $alt2 ?1 senhora $alt2 -sesta $alt2 +senhores $alt2 sincera $alt sincero $alt sinopse $alt @@ -1031,12 +1039,14 @@ sogra $alt sopre $alt soprem $alt sopro $alt $verb +soro $alt2 sorvete $alt2 sossego $alt2 $noun souberdes $alt soubermos $alt suborno $alt $verb sufoco $alt2 $noun +sufocos $alt2 sugere $alt sugerem $alt suporto $alt @@ -1059,6 +1069,7 @@ torres $alt2 tortos $alt traqueia $alt travesso $alt2 +tremores $alt2 trevo $alt2 troco $alt2 $noun tropa $alt diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 77d410ca..6cece1b7 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -21,6 +21,7 @@ .L04 a am e em o ue uem .L05 r ra ram re rem rdes .L06 ra ram ste re rem +.L07 se sem te .group a @@ -366,7 +367,7 @@ _comprom) e (tL03_ e _sol) e (trL03_ E _atr) e (vL03_ e - _escr) e (vL03_ e + scr) e (vL03_ e // e- in- pre- ree- _descr) e (vL03_ e _embel) e (zL04_ E _pr) e (zL04_ E @@ -405,6 +406,26 @@ _reconh) e (çL03_ e _arref) e (çL01_ e _beb) e (ssL02_ e com) e (ssL02_ e + _corr) e (ssL02_ e + _morr) e (sL07_ e + _adoec) e (sL07_ e + _torc) e (sL07_ e + _viv) e (sL07_ e + _eleg) e (sL07_ e + respond) e (sL07_ e // & corres- + entend) e (sL07_ e +compreend) e (sL07_ e +interromp) e (sL07_ e +intromet) e (sL07_ e +_escond) e (sL07_ e + _bat) e (sL07_ e + _sofr) e (sL07_ e + l) e (que_ E + _p) e (quL02_ E + _s) e (quL02_ E + _) e (rguL02_ E + _enx) e (rguL02_ E + _alb) e (rguL02_ E //endsort _exag) e (L05_ E diff --git a/dictsource/vi_rules b/dictsource/vi_rules index bb58847a..6e8db88f 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -83,12 +83,12 @@ ỵ ỵ _) b _b .group c - c k + c g //k c (_ kh ch c // try [tS;] [tS] [c] .group d - d J // try [z] [J] [dZ] [dZ;] [J^] + d J^ // try [z] [J] [dZ] [dZ;] [J^] .group đ đ d @@ -101,13 +101,13 @@ ỵ ỵ .group g g Q // try [g] [Q] gh Q // or [g] [Q] - g (i D // try [D] [z] [j] [J^] [z;] [J] [dZ] - g (ì D - g (í D - g (ỉ D - g (ĩ D - g (ị D - gi D + g (i J^ // try [D] [z] [j] [J^] [z;] [J] [dZ] + g (ì J^ + g (í J^ + g (ỉ J^ + g (ĩ J^ + g (ị J^ + gi J^ .group h h h @@ -133,7 +133,7 @@ ỵ ỵ ng N ngh N nh n^ - + .group ñ ñ n^ @@ -144,7 +144,7 @@ ỵ ỵ .group q q k q (_ kh - qu kw + qu w //kw .group r r z. // try [z] [z.] [r] [z;] @@ -183,11 +183,11 @@ ỵ ỵ aĩ a:I5 aị a:I6 ay aI - aỳ aI2 + aỳ aI2 aý aI3 aỷ aI4 - aỹ aI5 - aỵ aI6 + aỹ aI5 + aỵ aI6 ao a:U aò a:U2 aó a:U3 @@ -402,64 +402,81 @@ ỵ ỵ //========================= .group o o O - o (A w + oa o@ // modify oa sound example: hoa,khoa // o (A w oi OI oì OI2 oí OI3 oỉ OI4 oĩ OI5 oị OI6 - + ong O# + oe o& // Adding oe sound example: lóe sáng,toét mắt .group ò ò O2 òi OI2 - ò (A w2 + òa o@2 //ò (A w2 + òng O#2 + òe o&2 .group ó ó O3 ói OI3 - ó (A w3 + óa o@3 //ó (A w3 + óng O#3 + óe o&3 .group ỏ ỏ O4 ỏi OI4 - ỏ (A w4 + ỏa o@4 //ỏ (A w4 + ỏng O#4 + ỏe o&4 .group õ õ O5 õi OI5 - õ (A w5 + õa o@5 //õ (A w5 + õng O#5 + õe o&5 .group ọ ọ O6 ọi OI6 - ọ (A w6 + ọa o@6 //ọ (A w6 + ọng O#6 + ọe o&6 //============================= .group ô ô o ôi oI + ông o# // ông sound .group ồ ồ o2 ồi oI2 + ồng o#2 .group ố ố o3 ối oI3 + ống o#3 .group ổ ổ o4 ổi oI4 + ổng o#4 .group ỗ ỗ o5 ỗi oI5 + ỗng o#5 .group ộ ộ o6 ội oI6 + ộng o#6 @@ -525,36 +542,41 @@ ỵ ỵ uổi u@j4 uỗi u@j5 uội u@j6 - + //ung u# .group ù ù u2 ù (A w2 ùi uI2 ùa u@2 + //ùng u#2 .group ú ú u3 ú (A w3 úi uI3 úa u@3 + //úng u#3 .group ủ ủ u4 ủ (A w4 ủi uI4 ủa u@4 + //ủng u#4 .group ũ ũ u5 ũ (A w5 ũi uI5 ũa u@5 + //ũng u#5 .group ụ ụ u6 ụ (A w6 ụi uI6 ụa u@6 + //ụng u#6 //============================= .group ư @@ -696,13 +718,13 @@ ỵ ỵ .group - % f'@2n||tS;'am + % f'@2n||cr'am ! _:c'@3m_|t'a:7n_: ! (\! // : koUl@n D_) h (_DD_ D'@:2 // omit colon in time, eg: 2:30 $ d'o||l'a - != x,o1N_|_b'a2N_ + != x'o#_|_b'a2N_ >= l'@:3n_|h'@:1n_|hw,a6kh_b'a2N <= n^'O4_|h'@:1n_|hw,a6kh_b'a2N diff --git a/phsource/compile_report b/phsource/compile_report index 9f1e957c..91a83d40 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -5,7 +5,7 @@ consonants 10 118 base2 26 125 en 54 156 en-n 33 156 - en-us 41 157 + en-us 40 157 en-sc 40 158 en-rp 34 156 en-wm 31 156 @@ -43,15 +43,15 @@ consonants 10 118 es-la 1 125 ca 11 127 an 4 125 - pt 29 140 - pt-pt 20 140 + pt 30 141 + pt-pt 20 141 ro 36 148 el 10 125 grc 12 129 sv 22 129 no 28 134 is 42 141 - vi 41 141 + vi 52 146 zhy 41 138 zh 64 155 sw 9 110 @@ -555,6 +555,7 @@ n/n@ [n] base [n#] is [n] zh n/n#_ [n#] is + [n] vi n^/n^a [n^] base [n;] lt [n#] ru @@ -817,7 +818,6 @@ ufric/tl# [tl#] is ufric/tlh [K] nso [K] tn ufric/x [x] base - [kh] vi ufric/x2 [x2] af [x] ku [X] kk @@ -927,6 +927,7 @@ ustop/p_unasp_ [p-] consonants [p] base2 [p] fr [p] lv + [p] vi [p] sq ustop/q [q] base ustop/q2 [q] ka @@ -962,6 +963,7 @@ ustop/t_dnt2 [t] base2 ustop/t_hi [t[] base [t] et [t^] et + [t[] vi [t`] am ustop/t_pzd [c] base [t^] et @@ -1028,6 +1030,7 @@ ustop/ts_sr [tS;] sr ustop/ts_unasp [ts] zh ustop/t_unasp [t-] ko ustop/t_unasp2 [t] el + [t[] vi [t] zh vdiph/0i [OI] pt [OI] grc @@ -1045,8 +1048,7 @@ vdiph2/ee@ [e@] en-n vdiph2/ee@_2 [e@] en-rp vdiph2/ei_2 [eI] en-rp vdiph2/ei_3 [i:] en-wm -vdiph2/ei_4 [eI] en-us - [ei] zh +vdiph2/ei_4 [ei] zh [eI] sq vdiph2/eo [eo] ro vdiph2/e_u [e[u] ro @@ -1080,6 +1082,7 @@ vdiph2/iy [iy] fi vdiph2/o@ [o@] af [u@] zh vdiph2/oa [Oa] ro + [o@] vi [ua] zh vdiph2/o_oo [o@] en-wi [O:] is @@ -1207,6 +1210,7 @@ vdiph/eei_2 [eI] eo vdiph/eei_3 [eI] lt [eI] sk [eI] ku +vdiph/eei_5 [eI] en-us vdiph/eeu [EU] pt [EU] grc [EU] vi @@ -1254,7 +1258,6 @@ vdiph/i@_2 [e@] af vdiph/@i_3 [eI] en-wm [@I] ro [ai] zhy -vdiph/&i_3 [aI] vi vdiph/ii [iI] ro vdiph/i#i [yI] ro vdiph/oi [oI] base2 @@ -1296,10 +1299,10 @@ vdiph/ou_3 [oU] is [oU:] is vdiph/ou_4 [o:] nl vdiph/@u [u:] en-wm - [@U] vi [@:U] vi vdiph/@u_2 [oU] en-rp vdiph/@u_3 [@U] ro + [@U] vi [@U] ga vdiph/@u_en [oU] en [@U] id @@ -1322,6 +1325,7 @@ vdiph/Vu [@U] af vdiph/Vu_2 [oU] en-wm vdiph/&y [&y] fi [Wy] nl + [aI] vi vdiph/yi [yi] fi [yi] et [yI] grc @@ -1337,6 +1341,13 @@ vdiph/y#y [Yy] fi vdiph/y#y_2 [Yy] af [eoi] zhy vdiph/y#y_3 [Y:] nl +vietnam/a [a:] vi +vietnam/_c [kh] vi +vietnam/ch [c] vi +vietnam/dd [d] vi +vietnam/oe [o&] vi +vietnam/th [t] vi +vietnam/tr [cr] vi vnasal/aa_n [a~] hi vnasal/aa_n2 [A~] en vnasal/aa_n3 [A~] af @@ -1346,6 +1357,7 @@ vnasal/aa_n4 [A~] de vnasal/a#_n [&~] pt vnasal/a#u_n [&U~] pt [&U~] pt-pt + [o#] vi vnasal/ee_n [E~] fr-ca vnasal/ee_n2 [a] en-us [E~] hi @@ -1368,13 +1380,16 @@ vnasal/oo_n2 [O~] en [O~] nl [o] zh vnasal/oo_n3 [O~] pl +vnasal/&u_n [O#] vi vnasal/u_n [U~] hi [u~] hi [u~] pt + [u] vi [u] zh vnasal/V_n [V~] hi vnasal/W_n [E~] fr [W~] fr + [&2~] pt [E~] ht voc/bh [B] base voc/dh [D] base @@ -1496,8 +1511,7 @@ vowel/0_3 [O:] en-us [A] hu [A] fa [0] tt -vowel/@_2 [@] vi - [@:] vi +vowel/@_2 [@:] vi [@] sq [V] sq [@/] sq @@ -1634,7 +1648,6 @@ vowel/a#_3 [a#] en [a#] ga vowel/a_4 [a] es [a] el - [a] vi [a] ga vowel/a#_4 [a:] nl [a] bg @@ -1650,7 +1663,7 @@ vowel/a_5 [a:] ta [a] tn [a] kk vowel/a_6 [a] ca - [a:] vi + [a] vi [a] am [a:] wo vowel/a_7 [a] fr @@ -2279,7 +2292,6 @@ vowel/u_6 [u] ta [u:] te [u] si [u:] si -vowel/u_7 [u] vi vowel/u#_7 [@] tr [@] az vowel/u_bck [u] base2 @@ -2355,6 +2367,7 @@ vowel/uu_bck [U] en-wi [U] pa vowel/V [3] en-sc [@] bg + [@] vi [W#] da vowel/V_2 [V] en [a] af @@ -2441,7 +2454,6 @@ vwl_en/aU@ [aU@] en [aU@] en-sc [aU@] en-wm vwl_en/@L [@L] en - [@L] en-us [@L] af vwl_en/@L_2 [@L] en-sc vwl_en_n/O@ [O@] en-n diff --git a/phsource/ph_english_us b/phsource/ph_english_us index 540afc0e..c15b7ddd 100644 --- a/phsource/ph_english_us +++ b/phsource/ph_english_us @@ -41,14 +41,6 @@ phoneme @2 // Schwa, changes to I before a vowel FMT(vowel/@_low2) endphoneme -phoneme @L - vowel starttype #@ endtype l - ipa əl - unstressed - length 160 - FMT(vwl_en/@L) -endphoneme - phoneme a vowel starttype #e endtype #@ @@ -176,6 +168,7 @@ phoneme 3: vowel starttype #@ endtype #@ length 240 IfNextVowelAppend(r-) + ChangeIfDiminished(3) FMT(vwl_en_us/3_us2) endphoneme @@ -265,7 +258,7 @@ endphoneme phoneme eI vowel starttype #e endtype #i length 230 - FMT(vdiph2/ei_4) + FMT(vdiph/eei_5) endphoneme diff --git a/phsource/ph_pt_brazil b/phsource/ph_pt_brazil index 432b6abe..a6bba543 100644 --- a/phsource/ph_pt_brazil +++ b/phsource/ph_pt_brazil @@ -39,7 +39,6 @@ phoneme &~ vowel starttype #@ endtype #@ ipa ɐU+0303 length 180 -// ChangeIfNotStressed(&) FMT(vnasal/a#_n) endphoneme @@ -225,3 +224,10 @@ phoneme * endphoneme +// TESTING +phoneme &2~ + vowel starttype #@ endtype #@ + ipa ɐU+0303 + length 200 + FMT(vnasal/W_n) +endphoneme diff --git a/phsource/ph_vi b/phsource/ph_vietnam old mode 100644 new mode 100755 similarity index 56% rename from phsource/ph_vi rename to phsource/ph_vietnam index cf6b6570..eef7563f --- a/phsource/ph_vi +++ b/phsource/ph_vietnam @@ -12,13 +12,13 @@ endphoneme phoneme 2 // huyền tone: low falling stress - Tone(20, 8, envelope/p_fall, NULL) + Tone(20, 8, envelope/p_fall, NULL) //20 endphoneme phoneme 3 // sắc Tone(rising stress - Tone(25, 50, envelope/p_rise, NULL) + Tone(25, 50, envelope/p_rise, NULL) // 25 endphoneme @@ -30,13 +30,13 @@ endphoneme phoneme 5 // ngã tone: broken (creaking rising) stress - Tone(28, 58, envelope/p_214, envelope/vi_5amp) + Tone(28,58, envelope/p_214, envelope/vi_5amp) // 28,58 endphoneme phoneme 6 // nặng Tone(drop (constricted) stress - length 75 // reduce the length of the vowel + //length 150 // ignore because it make too short sound 75 // reduce the length of the vowel Tone(40, 20, envelope/p_512, envelope/vi_6amp) endphoneme @@ -54,14 +54,14 @@ endphoneme phoneme a vowel starttype #@ endtype #@ - length 130 - FMT(vowel/a_4) + length 120 + FMT(vowel/a_6) //a_4) endphoneme phoneme a: vowel starttype #a endtype #a - length 280 - FMT(vowel/a_6) + length 200 //280 + FMT(vietnam/a) //FMT(vowel/a_6) endphoneme @@ -91,26 +91,42 @@ endphoneme phoneme O vowel starttype #o endtype #o - length 200 - FMT(vowel/aa_4) + IF nextPh(kh) THEN + length 95 + ELSE + length 200 + ENDIF + FMT(vowel/aa_4) endphoneme phoneme o vowel starttype #o endtype #o - length 200 + IF nextPh(kh) THEN + length 95 + ELSE + length 200 + ENDIF FMT(vowel/o_2) endphoneme phoneme u vowel starttype #u endtype #u - length 200 - FMT(vowel/u_7) + IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound + length 120 + ELSE + length 200 + ENDIF + FMT(vnasal/u_n) //vowel/u_7) endphoneme phoneme y vowel starttype #u endtype #u - length 200 + IF nextPh(kh) OR nextPh(N) THEN + length 120 + ELSE + length 200 + ENDIF FMT(vowel/u#_5) endphoneme @@ -118,8 +134,12 @@ endphoneme phoneme @ vowel starttype #@ endtype #a - length 130 - FMT(vowel/@_2) + IF nextPh(kh) OR nextPh(N) THEN + length 120 + ELSE + length 170 + ENDIF + FMT(vowel/V) //vowel/@_2) endphoneme @@ -136,28 +156,28 @@ endphoneme phoneme aI vowel starttype #a endtype #i - length 250 - FMT(vdiph/&i_3) + length 200 //250 + FMT(vdiph/&y) endphoneme phoneme a:I vowel starttype #a endtype #i - length 250 + length 200 //250 FMT(vdiph/ai) endphoneme phoneme @I vowel starttype #@ endtype #i - length 250 + length 200 //250 FMT(vdiph/@i) endphoneme phoneme @:I vowel starttype #@ endtype #i - length 250 + length 200 //250 FMT(vdiph/@i) endphoneme @@ -214,7 +234,7 @@ endphoneme phoneme a:U vowel starttype #a endtype #u - length 270 + length 230 //270 FMT(vdiph/au) endphoneme @@ -241,7 +261,7 @@ endphoneme phoneme @U vowel starttype #@ endtype #u length 200 - FMT(vdiph/@u) + FMT(vdiph/@u_3) endphoneme phoneme @:U @@ -270,27 +290,123 @@ phoneme u@ FMT(vdiph2/uu@) endphoneme +// Addition Dipthongs +phoneme o# // ông + vowel starttype #o endtype #o + length 200 + FMT(vnasal/a#u_n) +endphoneme + +phoneme O# // ong + vowel starttype #o endtype #o + length 200 + FMT(vnasal/&u_n) +endphoneme + + +phoneme o@ + vowel starttype #o endtype #o + length 160 + FMT(vdiph2/oa) +endphoneme + +phoneme o& + vowel starttype #o endtype #o + length 160 + FMT(vietnam/oe) +endphoneme phoneme kh vls vel frc lengthmod 3 Vowelin f1=0 f2=2300 200 400 f3=200 80 Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 - WAV(ufric/x, 50) + WAV(vietnam/_c,5) //ufric/x, 50) endphoneme phoneme l liquid lengthmod 7 + //IF nextPh(isNotVowel) THEN + // ChangePhoneme(l/2) + //ENDIF - IF nextPh(isNotVowel) THEN - ChangePhoneme(l/2) - ENDIF - - CALL vowelstart_l + //CALL vowelstart_l FMT(l/l_vi) endphoneme +phoneme t + vls alv stop + //voicingswitch d + lengthmod 2 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + + WAV(vietnam/th, 50) +endphoneme + +phoneme cr + vls pla afr sibilant + //voicingswitch dZ + lengthmod 2 + Vowelin f1=0 f2=2300 200 400 f3=-100 80 + + + WAV(vietnam/tr,10) +endphoneme + +phoneme d + vcd alv stop + lengthmod 5 + + Vowelin f1=1 f2=1700 -300 300 f3=-100 80 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk +WAV(vietnam/dd) + endphoneme + + phoneme c + vls pal stop palatal + //voicingswitch J + lengthmod 2 + length 75 + Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 + Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1 + + + WAV(vietnam/ch,5) +endphoneme + + +phoneme p + vls blb stop + lengthmod 2 + Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 + Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 + + WAV(ustop/p_unasp_,10) + +endphoneme + +phoneme n + vcd alv nasal + Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 + Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk + lengthmod 4 +FMT(n/n#_) +endphoneme + +phoneme t[ // dental variant of /t/ + vls dnt stop + voicingswitch d[ + lengthmod 2 + Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 + Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 + + IF nextPh(isPause2) THEN + WAV(ustop/t_unasp2, 5) + ENDIF + WAV(ustop/t_hi, 70) +endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 10c1ae5c..b83cf47b 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1812,7 +1812,7 @@ phonemetable is base include ph_icelandic phonemetable vi base -include ph_vi +include ph_vietnam phonemetable zhy base include ph_zh_yue diff --git a/src/compiledata.cpp b/src/compiledata.cpp index b8d94e03..41340e88 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2011 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -661,9 +661,9 @@ static REF_HASH_TAB *ref_hash_tab[256]; #define N_ENVELOPES 30 -static int n_envelopes = 0; -static char envelope_paths[N_ENVELOPES][80]; -static unsigned char envelope_dat[N_ENVELOPES][ENV_LEN]; +int n_envelopes = 0; +char envelope_paths[N_ENVELOPES][80]; +unsigned char envelope_dat[N_ENVELOPES][ENV_LEN]; typedef struct { @@ -3408,13 +3408,9 @@ static void CompilePhonemeData2(const char *source) wxString report; wxString report_dict; -#ifdef MAKE_ENVELOPES -make_envs(); -#endif - n_envelopes = 0; error_count = 0; -memset(markers_used,0,sizeof(markers_used)); + memset(markers_used,0,sizeof(markers_used)); f_errors = stderr; diff --git a/src/dictionary.cpp b/src/dictionary.cpp index be3b8c3b..8a525070 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2011 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -296,10 +296,6 @@ int LoadDictionary(Translator *tr, const char *name, int no_error) // set up indices into data_dictrules InitGroups(tr); - if(tr->groups1[0] == NULL) - { - fprintf(stderr,"Error in %s_rules, no default rule group\n",name); - } // set up hash table for data_dictlist p = &(tr->data_dictlist[8]); diff --git a/src/synthdata.cpp b/src/synthdata.cpp index f3dd6871..39e6d67d 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2011 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.33 08.Feb.13"; +const char *version_string = "1.46.34 12.Feb.13"; const int version_phdata = 0x014631; int option_device_number = -1; diff --git a/src/vowelchart.cpp b/src/vowelchart.cpp index b555afb9..aab1f2ce 100644 --- a/src/vowelchart.cpp +++ b/src/vowelchart.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * * email: jonsd@users.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify * @@ -670,9 +670,9 @@ void MakeVowelLists(void) #define N_ENVELOPES 30 -int n_envelopes = 0; -char envelope_paths[N_ENVELOPES][80]; -unsigned char envelope_dat[N_ENVELOPES][ENV_LEN]; +extern int n_envelopes; +extern char envelope_paths[N_ENVELOPES][80]; +extern unsigned char envelope_dat[N_ENVELOPES][ENV_LEN]; #define HT_ENV 140 #define WD_ENV 128*2