From 2ae90a25482d12b7d1defd2e9f899cc1ef83a47f Mon Sep 17 00:00:00 2001 From: jonsd Date: Sat, 26 May 2007 11:34:31 +0000 Subject: [PATCH] [1.25.09] Say "dot" not "point" for 2. when not followed by another number. lang=hu, vowel_pause=0x20, fix [A] [a:] endtypes lang=pt, "r" phonemes git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@25 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/dict_phonemes | 4 +- dictsource/en_list | 8 ++- dictsource/en_rules | 2 +- dictsource/hu_rules | 16 +++-- dictsource/pt_list | 134 ++++++++++++++++++++------------------- dictsource/pt_rules | 68 +++++++++++++------- phsource/compile_report | 40 ++++++------ phsource/n^/n^a | Bin 11591 -> 11591 bytes phsource/ph_af | 10 +++ phsource/ph_hungarian | 6 +- phsource/ph_pt_brazil | 41 ++++++++---- phsource/phonemes | 9 +-- phsource/r3/r_trill3.wav | Bin 7048 -> 5366 bytes phsource/vnasal/a#_n | Bin 0 -> 1292 bytes phsource/vnasal/a#u_n | Bin 0 -> 1980 bytes phsource/vowel/aa# | Bin 2153 -> 2155 bytes phsource/vowel/aa_7 | Bin 12453 -> 12456 bytes phsource/vowel/u_6 | Bin 6239 -> 6239 bytes src/numbers.cpp | 2 +- src/synthdata.cpp | 2 +- src/tr_languages.cpp | 12 ++-- src/translate.cpp | 20 +++--- 22 files changed, 220 insertions(+), 154 deletions(-) create mode 100644 phsource/vnasal/a#_n create mode 100644 phsource/vnasal/a#u_n diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index c0c16c0d..75db70fc 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -218,8 +218,8 @@ o~ U u uI u~ y * : ; b C d dZ f g h j k l l^ m n N n^ p Q r R s S -s; t tS ts v w x z -Z +s# s; t tS ts v w x +z Z Dictionary ro_dict diff --git a/dictsource/en_list b/dictsource/en_list index abeb93e5..89e34cd5 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -70,7 +70,7 @@ _* ast@rIsk: _+ plVs _, k0m@ _- h,aIf@n -_. st0p +_. d0t _/ stroUk _: koUl@n _; sEmIk'oUl0n @@ -962,6 +962,7 @@ hominem h0mInEm horizontal $3 hospitable h0sp'It@b@L hostage h0stIdZ +hostess hoUstEs hotel hoUt'El house haUz $verb however $2 @@ -1405,6 +1406,7 @@ pros proUz proceed proUsi:d $onlys proceed $verb proceed $only +progeny pr0dZ@nI2 progress proUgrEs $only progress $verb project pr0dZEkt $onlys @@ -1420,6 +1422,7 @@ psst psst psyche saIki: psyched saIkd psychiatrist saIk'aI@trIst +psychiatry saIk'aI@trI2 psychosis saIk'oUsIs psychotic saIk'0tIk pud pUd // and pudding @@ -1581,6 +1584,7 @@ sclera skli@r@ seabed si:bEd sealion si:laI@n seance seI0ns +seconded sEk'0ndId secrecy si:kr@sI2 secret si:kr@t secretive si:kr@tI2v @@ -1625,6 +1629,7 @@ site saIt // for sited ski ski: skies skaIz skied ski:d +skua sku:@ snooker snu:k3 society s@saI@tI2 sofa soUf@ @@ -2101,6 +2106,7 @@ Totonto t@r0ntoU Timor ti:mo@ Tokyo toUkIoU Toulouse tu:l'u:z +Tripoli trIp@lI2 Ukraine ju:kr'eIn Ural ju:@r@L Utah ju:tA: diff --git a/dictsource/en_rules b/dictsource/en_rules index 230b1cb3..76312fba 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -2069,6 +2069,7 @@ &) er 3 @@@) er (_$2de 3 // suffix %C) er (_$3 3 + ll) er (_$2 3 %C) ers (_$4 3z ss) er (_$2 3 all) er (_ 3 @@ -4556,7 +4557,6 @@ _sol) u (C ju: u (a ju: r) u (aC+ u: - ua (_ wA: @g) ua (ge wI uary (_ ju:@rI2 r) uary (_ u:rI2 diff --git a/dictsource/hu_rules b/dictsource/hu_rules index c44e953e..e2f0e081 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -18,6 +18,13 @@ cs tS ccs tS: + me) ch (a C + te) ch (n C + pszi) ch C + pszy) ch C + mün) ch (en C + + .group d d d dd d: @@ -61,8 +68,8 @@ gys tS A) gys (A tS: - gysz ts - A) gysz (A ts: + gysz Js + A) gysz (A Js: gyz dz A) gyz (A d:z C) gyzs dZ @@ -105,11 +112,12 @@ n (b m ny n^ nny n^n^ + nj n^ + nyj n^ + ny (k N ny (g N - nj n^ - nyj n^ .group o diff --git a/dictsource/pt_list b/dictsource/pt_list index c8f1df22..e455e310 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -14,40 +14,40 @@ // character names -_á ,a&g'udu -_à ,ag@-*'avi -_â ,asirkuNfl'Eksu +_á ,a&g'udU +_à ,agR'avi +_â ,asirkuNfl'EksU _ã ,atS'iU _ç s,esed'elj& -_é ,e&g'udu -_ê ,asirkuNfl'Eksu -_í ,i&g'udu -_ó ,o&g'udu -_ô ,osirkuNfl'Eksu +_é ,e&g'udU +_ê ,asirkuNfl'EksU +_í ,i&g'udU +_ó ,o&g'udU +_ô ,osirkuNfl'EksU _õ ,otS'iU -_ú ,u&g'udu -_ü ,ut@-*'em& +_ú ,u&g'udU +_ü ,utR'em& -_cap maI'uskulu -_?A l'et@-*& -_?? s'imbolu +_cap maI'uskulU +_?A l'etR& +_?? s'imbolU -_. p'oNtu +_. p'oNtU _! ,eskl&mas'&U~ -?1 _" 'asp&S -?2 _" 'asp&s +_" 'asp&s# + ?1 _# k,ardin'al ?2 _# k,ardZin'aU -_$ s,if@-*'&U~ -_% pors'eINtu +_$ s,ifR'&U~ +_% pors'eINtU _& 'e ?1 _' ap'Ost@-*,ofy -?2 _' ap'Ost@-*,ofu +?2 _' ap'Ost@-*,ofU _( ,ab@-*ipa*'eINtezi _) f,ES&pa*'eINtezi _* ,aste*'isku -?1 _+ m'aIS -?2 _+ m'aIs +_+ m'aIs# + _, v'irgul& _- 'ifeIN _/ b'aQ& @@ -59,13 +59,13 @@ _< men'Or _> maI'Or _? ,iNtex,ogas'&U~ _@ ax'ob& -_[ ,ab@-*ikowS'etSi +_[ ,abRikowS'etSi _\ b,ax&,iNvertS'id& _] f,ES&kowS'etSi _^ s,irkuNfl'Eksu __ s,ublin^'adu -_` g@-*'avi -_{ ,ab@-*iS'avi +_` gR'avi +_{ ,abRiS'avi ?1 _| b,ax&v,ertSik'al ?2 _| b,ax&v,ertSik'aU _} f,ES&S'avi @@ -73,45 +73,41 @@ _} f,ES&S'avi ?2 _~ tS'iU _¡ ,eskl&mas,&U~,iNvertS'id& _¿ ,iNtex,ogas,&U~,iNvertS'id& -?1 _" 'ab@-*i;'asp&||Sd'upl&S -?2 _" 'ab@-*i;'asp&||d'upl&s + +_" 'abRi;'asp&||d'upl&s# // numeric //******** ?1_0 z'Eru -?2_0 z'Exu +?2_0 z'E*u ?1_1 'um ?2_1 'uN -?1_2 d'oIS -?2_2 d'oIs -?1_3 tr'eS -?2_3 t@-*'es -?1_4 kw'atru -?2_4 kw'at@-*u +_2 d'oIs# +_3 tR'es# +_4 kw'atRu _5 s'iNku -?1_6 s'eIS -?2_6 s'eIs +_6 s'eIs# ?1_7 s'Ety ?2_7 s'EtSi _8 'oItu ?1_9 n'Ovy ?2_9 n'Ovi -?1_10 d'ES -?2_10 d'Ez +10 d'Es# + ?1_11 'oNzy ?2_11 'oNzi ?1_12 d'ozy ?2_12 d'ozi -?1_13 tr'ezy -?2_13 t@-*'ezi +?1_13 tR'ezy +?2_13 tR'ezi ?1_14 k&t'orzy ?2_14 kat'Orzi ?1_15 k'iNzy ?2_15 k'iNzi -?1_16 dyz&s'eiS -?2_16 d,ezes'eIs +?1_16 dyz&s'eis# +?2_16 d,ezes'eIs# ?1_17 dyz&s'Ety ?2_17 d,ezes'EtSi ?1_18 dyz'Oitu @@ -120,8 +116,8 @@ _8 'oItu ?2_19 dezen'Ovi ?1_2X v'iNty ?2_2X v'iNtSi -?1_3X tr'iNt& -?2_3X t@-*'iNt& +_3X tR'iNt& + ?1_4X kw&r'eNt& ?2_4X kwa*'eINt& _5X siNkw'eINt& @@ -133,27 +129,27 @@ _8X oIt'eINt& ?1 _9X nuv'eINt& ?2 _9X nov'eINt& _1C0 s'eIN -?1_0C s'eINtuS -?2_0C s'eINtuz +?1_0C s'eINtus# +?2_0C s'eINtUs# _1C s'eINtu -?1_2C duz'eINtuS -?2_2C duz'eINtuz -?1_3C t:ryz'eNtuS -?2_3C t@-*ez'eNtuz -?1_5C kin^'eINtuS -?2_5C kin^'eINtuz +?1_2C duz'eINtus# +?2_2C duz'eINtUs# +?1_3C tRyz'eNtus# +?2_3C tRez'eNtUs# +?1_5C kin^'eINtus# +?2_5C kin^'eINtUs# ?1_0M1 m'il_ ?2_0M1 m'iU_ ?1_1M1 m'il_ ?2_1M1 m'iU_ -?1_0M2 milj'o~jS +?1_0M2 milj'o~js# ?2_0M2 milj'o~jz _1M2 'u~milj'&U~ -?1_0M3 bilj'o~jS +?1_0M3 bilj'o~js# ?2_0M3 bilj'o~jz _1M3 'u~mbilj'&U~ -?1_0M4 trilj'o~jS +?1_0M4 trilj'o~js# ?2_0M4 trilj'o~jz _1M4 'u~ntrilj'&U~ _0and _i @@ -286,8 +282,7 @@ dumas $u em $u $brk // in,on,at no nu $u $brk na $u $brk -nos nus $u $brk -?1 nos nuS $u $brk +nos nus# $u $brk nas $u $brk num $u $brk numa $u $brk @@ -570,7 +565,7 @@ axé aSE elixir eliSir ?1 fixe f'iSy lixo l'iSu -roxo x'oSu +roxo x'oSU // foreign words ?1 alt 'alt @@ -597,10 +592,11 @@ roxo x'oSu ?1 gmail g,em'eIl ?1 google g'u:g&l ?1 hardware 'ard,w'E@ -?2 hardware h'ardwe@ +?2 hardware x'ardwe@- ?1 home 'omy ?1 hotmail 'Otm'eIl ?1 install ,inst'al +?2 internet iNtern'Et ?1 kernel k'Ern,El ?2 kernel k'ErnEU ?1 line l'ain @@ -622,17 +618,19 @@ layout l'eI,aUt ?1 scanner sk'En&r ?1 shift S'ift ?1 scroll sk:r'ol - site s'aIt - software s'Oftwe@ +?1 site s'aIt +?2 site s'aItSi + software s'Oftwe@- ?1 space sp'eIsy ?1 sporting sp'Ort,ing ?1 tab t'ab ?1 telemóvel t,El,Em'OvEl -?1 telemóveis t,El,Em'OveIS +?1 telemóveis t,El,Em'OveIs# ?1 up &p ?1 upload &pl'oud ?1 window w'iNd'ou ?1 yahoo 'i,a'u +?2 yahoo iax'u ?1 yes j'Es @@ -650,16 +648,17 @@ louis _^_FR espeak isp'i:k ?1 espeakedit isp'i:k,Ed,it ?1 fedora _^_EN - firefox f'ai@foks + firefox f'ai@fOks ?1 front f:r'ont ?1 jaws dZ'au:z ?1 linux l,in'uks -?2 linux l'inuks +?2 linux l'inUks ?1 live l'aiv ?1 maker m'eIk&@ ?1 media m'Ed,i& ?1 messenger m'Es&ndZ&@ ?1 microsoft m,ik:r'os,Oft +?2 microsoft m'aIkRows'Oft ?1 movie m'uvi ?1 nero n'E:ru ?1 office 'Of,is @@ -683,8 +682,10 @@ louis _^_FR ?1 time t'aImy // nero show time ubuntu ub'untu ?1 unix ,u:n'iks -?2 unix j'u:niks +?2 unix j'uniks ?1 windows w'iNd'ou:z +?2 windows w'iNdows +?2 window w'iNdow // historical/famous person names @@ -724,12 +725,13 @@ von f'On // foreign common names/surnames ?1 alison &l'is&N ?1 cleverson kl'Evyrs&N +?2 cleverson kl'EversoN ?1 elton 'Elt&N ?1 halison &l'is&N klein kl'aIn // Very common on southern Brazil. ?1 kleverson kl'Evers&N -krueger k@-*'iZer -krüger k@-*'iZer +krueger kR'iZer +krüger kR'iZer kühl k'il ?1 nelson n'Els&N mueler m'iler diff --git a/dictsource/pt_rules b/dictsource/pt_rules index d005b9ca..b1c81657 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -28,8 +28,8 @@ a (r_ 'a ?1 p) a (d_ =E a (CC_ & -?1 al (_ 'al // eg: Portugal, capital, etc. -?1 _) a (lC ,a // Algarve, alto, etc... +?1 al (_ 'Al // eg: Portugal, capital, etc. +?1 a (lK ,A // Algarve, alto, etc... ?2 al (K aU ?2 alh alj @@ -81,6 +81,7 @@ áy ''aI áu ''aU áu (s ''aU + ál ''Al á (uCK ''a @@ -130,14 +131,32 @@ ?1 e (e i //eg: candeeiro ?2 ee i - e (be_ E - e (bes_ E - e (ce_ E - e (ces_ E ?2 el (K EU ?2 elh elj -?1 e (rtA_ 'E // Eg: Alberto, aberta, etc... + e (be_ E + e (bem_ E + e (bes_ E + e (ce_ E + e (cem_ E + e (ces_ E + e (stA_ E + e (stAm_ E + e (stAs_ E + + e (rnA_ E + e (rnAm_ E + e (rnAs_ E + e (rtA_ E + e (rtAm_ E + e (rtAs_ E + + e (x_ E + e (xA_ E + e (xAm_ E + e (xAs_ E + + em (C eIm en (K eIN enh en^ @@ -339,10 +358,8 @@ .group o o o - @) o (_ =u - o (s_ =u -?1 @) o (_ =U -?1 o (s_ =U + @) o (_ =U + o (s_ =U ou ow oi oI oi (s oI @@ -363,10 +380,15 @@ on (K oN o (na_ o onh on^ - o (rmA_ O - o (rmAC O + o (rCA_ O + o (rCAm_ O + o (rCAs_ O + o (stA_ O + o (stAm_ O + o (stAs_ O -?1 oz (_ OS +?2 ox (_ Oks +?1 oz (_ Os# ?2 oz (_ Oz o (zes_ O o (ra_ O @@ -447,7 +469,7 @@ ?2 A) r (_A * rr x ?1 C) r (A r -?2 C) r (A R // was [@-*] +?2 C) r (A R _) r x l) r x n) r x @@ -463,9 +485,10 @@ ss s sc (Y s sç s + sh S A) s (A z -?1 @) s (_ S -?2 s (_ s +?1 @) s (_ s# +?2 s (_ s# @) s (_A z // next word starts with vowel @) s (_G z // next word starts with voiced consonant @@ -473,10 +496,10 @@ A) s (_AS1 z // next word starts with vowel A) s (_GS1 z // next word starts with voiced consonant -?1 A) s (C S +?1 A) s (C s# ?1 A) ss s ?1 A) s (G+ Z -?1 A) s (_KS1 S +?1 A) s (_KS1 s# ?1 A) s (_G+S1 Z @@ -535,12 +558,11 @@ .group x -?1 _) x (_ SiS -?2 _) x (_ Sis + _) x (_ Sis# x (A S A) x (A ks - e) x (A z - e) x (o_ ks + _e) x (A z + e) x (A ks ai) x (A S ei) x (A S au) x s diff --git a/phsource/compile_report b/phsource/compile_report index b836c7e7..40138c01 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -7,7 +7,7 @@ en_sc 39 143 en_rp 34 141 en_wm 30 141 - af 37 125 + af 38 125 cy 30 120 de 28 117 eo 13 106 @@ -24,8 +24,8 @@ ru 36 122 it 28 115 es 6 115 - pt 27 131 - pt_pt 17 131 + pt 28 132 + pt_pt 20 132 ro 36 139 el 8 115 sv 25 116 @@ -185,19 +185,19 @@ 1 r3/r_i base 5 r3/r_n base cy fr pl ru 1 r3/r_o base - 4 r3/r_trill base sk it + 8 r3/r_trill base af sk it pt 2 r3/r_trill2 base hr 2 r3/r_trill2.wav base hr - 1 r3/r_trill3.wav base - 3 r3/r_trill.wav base sk it + 4 r3/r_trill3.wav base af + 4 r3/r_trill.wav base sk it pt 1 r3/r_u base 26 r3/rx base af cy fr fr_ca pl ru pt_pt ro is 2 r3/rz_cs sk 2 r3/@tap base 2 r3/@tap_i base - 7 r/r base en_sc de fr hu it - 5 r/_r base en_sc fr hu it - 16 r/r_ base en_sc af cy de fi fr hu nl pl ru it ++ + 8 r/r base en_sc de fr hu it pt_pt + 6 r/_r base en_sc fr hu it pt_pt + 17 r/r_ base en_sc af cy de fi fr hu nl pl ru it ++ 1 r/r@ base 1 r/ra base 1 r/re base @@ -205,7 +205,7 @@ 1 r/ro base 26 r/rr base af cy de fi nl pl ru it ro no sw 1 r/ru base - 15 r/tr base en_sc fr hu it + 18 r/tr base en_sc fr hu it pt_pt 51 r/trr base af cy de fi nl pl ru it ro sv no ++ 11 r/xr base 1 ufric/ch base @@ -220,12 +220,12 @@ 3 ufric/hu base hi 2 ufric/hu_fi fi 2 ufric/ll base is - 2 ufric/s base es - 10 ufric/s_ base fi fr hu es ro - 12 ufric/s! base fi hu es + 3 ufric/s base es pt + 11 ufric/s_ base fi fr hu es pt ro + 15 ufric/s! base fi hu es pt 2 ufric/s_continue fi hu - 1 ufric/sh base - 1 ufric/sh_ base + 2 ufric/sh base pt_pt + 2 ufric/sh_ base pt_pt 2 ufric/sh_pzd base ro 3 ufric/sh_pzd_ base 2 ufric/sh_rfx base @@ -365,10 +365,11 @@ 1 vdiph/y#y_3 nl 1 vnasal/aa_n en 2 vnasal/aa_n3 af fr + 1 vnasal/a#_n pt + 2 vnasal/a#u_n pt pt_pt 2 vnasal/ee_n en fr_ca 3 vnasal/ee_n2 hi pl pt_pt 2 vnasal/e_n af pt - 1 vnasal/e#_n pt 1 vnasal/i_n pt 1 vnasal/m- sw 1 vnasal/n- sw @@ -379,7 +380,6 @@ 1 vnasal/o_n3 fr 1 vnasal/oo_n en 2 vnasal/oo_n2 hi pl - 1 vnasal/&u_n pt 1 vnasal/u_n pt 3 vnasal/W_n en fr 1 voc/bh base @@ -423,7 +423,7 @@ 5 vowel/a_2 eo it pt_pt ro vi 4 vowel/a#_2 hr sv is sw 6 vowel/a_3 en_sc cs is - 13 vowel/a#_3 en en_n en_us en_wm de hi ru pt pt_pt vi zh_yue + 12 vowel/a#_3 en en_n en_us en_wm de hi ru pt_pt vi zh_yue 4 vowel/a_4 en_wm el vi 2 vowel/a_5 sv sw 7 vowel/aa en_us fi fr_ca no zh_yue @@ -613,10 +613,10 @@ 14 x/d_ base fi fr hi pl hr ru it ro el is sw 23 x/d_dnt base fi fr hi hu pl ru it ro sw 6 x/d_pzd pl ru - 3 x/dzh base hi + 4 x/dzh base hi 5 x/dzh_ base hi ru 4 x/dz_pzd base hi ru - 2 x/dz_pzd_ base hi + 1 x/dz_pzd_ hi 4 x/g_ base cy es is 5 x/g2 base cy hi es is 3 x/g2_ base hi diff --git a/phsource/n^/n^a b/phsource/n^/n^a index 09f3d9cd8d72adc59394b5c9e37303a152d234fc..540a570070a1969178d0a738b440257db0fe9080 100644 GIT binary patch delta 237 zcmX>ebv$ZA1veAxg2`3f(mq=l7?>U~ZecKI6k(8Mtl(L~D8nSr!OeJp;}q)y#s`f1 zxo$CJaPx73*v7n57}oGIaDmvL`5GA(@ULS7u^B)>_8sG7Sq_=af4S|LCm$9Qt7l<| z2TS}0l3SP}m@F9u7`&Jm7}hX70ot&bp@f}*p^S-%c@Eb{1_5pchHFe!%vQWx8K&?u zFt9P7Vtxj+!Hu7RVG0uuGXsMmN4z8hLkiO#pb3T?OXU#kg-Q_ic_}6tJ^4yyV~tNb Nb%vWZU*Ip71puEYIye9T delta 236 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 IrLd150Nsl~KmY&$ diff --git a/phsource/vowel/u_6 b/phsource/vowel/u_6 index 0dd7a2ff948b923d1730987f2b13c66b15502503..b763f9694c9f4d92acc6258a98685572c35f6abd 100644 GIT binary patch delta 43 rcmca_aNl5qD+l9(&2AjrEaE2^Ai#lnjcp;Axs#EBA$oHL&v$MB{uBy_ delta 43 rcmca_aNl5qD+goGW;YIQ7V!@Z5a7VP#langopts.replace_chars = replace_chars_hu; tr->langopts.replacement_chars = replacement_chars_hu; - tr->langopts.vowel_pause = 0x10; + tr->langopts.vowel_pause = 0x20; tr->langopts.stress_rule = 0; tr->langopts.stress_flags = 0x36; tr->langopts.unstressed_wd1 = 2; - tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x4; // don't propagate over word boundaries + tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x2; // don't propagate over v tr->langopts.param[LOPT_IT_DOUBLING] = 1; tr->langopts.long_stop = 130; tr->langopts.numbers = 0x1809; SetLetterVowel(tr,'y'); tr->langopts.spelling_stress = 1; +//SetLengthMods(tr,3); // all equal } break; @@ -440,7 +442,7 @@ Translator *SelectTranslator(const char *name) case L('p','t'): // Portuguese { - static int stress_lengths_pt[8] = {170, 120, 210, 210, 0, 0, 270, 295}; + static int stress_lengths_pt[8] = {180, 125, 210, 210, 0, 0, 270, 295}; static int stress_amps_pt[8] = {16,13, 19,19, 20,24, 24,22 }; // 'diminished' is used to mark a quieter, final unstressed syllable tr = new Translator(); SetupTranslator(tr,stress_lengths_pt,stress_amps_pt); diff --git a/src/translate.cpp b/src/translate.cpp index 030ae748..25edc12c 100755 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -314,16 +314,16 @@ static unsigned char length_mods_en0[100] = { static unsigned char length_mods_equal[100] = { /* a , t s n d z r N <- next */ - 100,100,100,100,100,100,100,100,100, 100, /* a <- next2 */ - 100,100,100,100,100,100,100,100,100, 100, /* , */ - 100,100,100,100,100,100,100,100,100, 100, /* t */ - 100,100,100,100,100,100,100,100,100, 100, /* s */ - 100,100,100,100,100,100,100,100,100, 100, /* n */ - 100,100,100,100,100,100,100,100,100, 100, /* d */ - 100,100,100,100,100,100,100,100,100, 100, /* z */ - 100,100,100,100,100,100,100,100,100, 100, /* r */ - 100,100,100,100,100,100,100,100,100, 100, /* N */ - 100,100,100,100,100,100,100,100,100, 100 }; // SPARE + 110,110,110,110,110,110,110,110,110, 110, /* a <- next2 */ + 110,110,110,110,110,110,110,110,110, 110, /* , */ + 110,110,110,110,110,110,110,110,110, 110, /* t */ + 110,110,110,110,110,110,110,110,110, 110, /* s */ + 110,110,110,110,110,110,110,110,110, 110, /* n */ + 110,110,110,110,110,110,110,110,110, 110, /* d */ + 110,110,110,110,110,110,110,110,110, 110, /* z */ + 110,110,110,110,110,110,110,110,110, 110, /* r */ + 110,110,110,110,110,110,110,110,110, 110, /* N */ + 110,110,110,110,110,110,110,110,110, 110 }; // SPARE unsigned char *length_mod_tabs[6] = {