From 4634aa43a55c5fbeb98e58960d6365bc2cb5ae23 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 03:13:22 +0000 Subject: [PATCH] [1.47.01] git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@320 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/an_list | 311 ++++++++++- dictsource/an_rules | 39 +- dictsource/dict_phonemes | 575 ++++++--------------- dictsource/nl_rules | 4 + dictsource/pt_list | 13 +- dictsource/pt_rules | 20 +- phsource/compile_report | 2 +- phsource/ph_portugal | 5 - phsource/r/V_ | Bin 5632 -> 0 bytes phsource/r/V_2_ | Bin 5634 -> 0 bytes phsource/vdiph/eei_5 | Bin 0 -> 9899 bytes phsource/vdiph2/i@_3 | Bin 0 -> 9041 bytes phsource/vietnam/_c.wav | Bin 0 -> 954 bytes phsource/vietnam/a | Bin 0 -> 5631 bytes phsource/vietnam/ch.wav | Bin 0 -> 2774 bytes phsource/vietnam/dd.wav | Bin 0 -> 2924 bytes phsource/vietnam/ie_2 | Bin 0 -> 6756 bytes phsource/vietnam/oe | Bin 0 -> 1986 bytes phsource/vietnam/th.wav | Bin 0 -> 3076 bytes phsource/vietnam/tr.wav | Bin 0 -> 1534 bytes phsource/vowel/a | Bin 1625 -> 1625 bytes platforms/big_endian/README | 6 +- platforms/windows/make_espeak.iss | 35 +- platforms/windows/make_espeakedit.iss | 3 +- platforms/windows/windows_cmd/src/speech.h | 2 +- src/Makefile | 2 +- src/numbers.cpp | 14 +- src/synthdata.cpp | 4 +- src/translate.cpp | 2 +- src/voices.cpp | 9 +- 30 files changed, 572 insertions(+), 474 deletions(-) delete mode 100644 phsource/r/V_ delete mode 100644 phsource/r/V_2_ create mode 100755 phsource/vdiph/eei_5 create mode 100755 phsource/vdiph2/i@_3 create mode 100755 phsource/vietnam/_c.wav create mode 100755 phsource/vietnam/a create mode 100755 phsource/vietnam/ch.wav create mode 100755 phsource/vietnam/dd.wav create mode 100755 phsource/vietnam/ie_2 create mode 100755 phsource/vietnam/oe create mode 100755 phsource/vietnam/th.wav create mode 100755 phsource/vietnam/tr.wav diff --git a/dictsource/an_list b/dictsource/an_list index 1274823f..b0bcabde 100755 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -14,7 +14,7 @@ _acu akT'ento aQ'uDo _ac2 d'Ople||aQ'uDo _brv br'eu _ced TeD'il^a -_cir Tirkumfl'ekso +_cir Tirkumfl'eSo _dia djEr'esi _dac d'Ople||aQ'uDo _dot p'unto @@ -30,6 +30,7 @@ _tld t'il^a // letter names b be c Te +ç Te||TetjEl^a d de f Efe g ge @@ -59,7 +60,7 @@ ll 'El^e á 'a||akTEntw'aDa é 'e||akTEntw'aDa í 'i||akTEntw'aDa -_ó 'o||akTEntw'aDa +ó 'o||akTEntw'aDa ú 'u||akTEntw'aDa ü ,uDjEr'Esi @@ -169,16 +170,39 @@ _1M1 mil'en _0M2o mil^on'en _1M2o mil^on'en +// characters +$ d'olar +€ eUros +£ liBras +* asterisko +& ampers'an +@ aRRoBa +# sin^'alDenum'ero +% porTj'En ++ mas += iQwal +/ baRRa +\ kontraBaRRa +| b'aRRaBertik'al + +_- gj'on +! TaRR'ar||eksklamaTj'on +_¡ uBr'ir||eksklamaTj'on +_? TaRR'ar||interroQaTj'on +_¿ uBr'ir||interroQaTj'on +_[ uBr'ir||Qaf'et +_] TaRR'ar||Qaf'et +_( uBr'ir||parent'esi +_) TaRR'ar||parent'esi +_{ uBr'ir||kl'aU +_} TaRR'ar||kl'aU + // unstressed words -o $u -o $atend -a $u -a $atend -os $u -os $atend -as $u -as $atend +o $u+ +a $u+ +os $u+ +as $u+ lo $u la $u @@ -199,7 +223,270 @@ os $u les $u lis $u +con $u +de $u +en $u $brk +mi $u +pa $u +por $u $brk +pues $u +pos $u +ta $u $brk +tu $u +sin $u +su $u +ye $u +ro $u +ra $u +ros $u +ras $u +el $u +es $u +els $u +mis $u +tus $u +sus $u +bell $u +bel $u +bella $u +bells $u +bellas $u +bellos $u +que $u +qui $u +quien $u +como $u +quan $u +quando $u +on $u +aon $u +porque $u +dende $u +entre $u +contra $u +enta $u +sinde $u +per $u +pus $u +dica $u +sino $u +ni $u +pero $u +bi $u +i $u+ +ie $u +hu $u +sant $u +donya $u +don $u +he $u +has $u +ha $u +han $u +heba $u +hebas $u +heban $u +se'n sen $u + + +//abbreviations +abs $abbrev +ac $abbrev +acb $abbrev +acm $abbrev +acs $abbrev +acup $abbrev +adn $abbrev +adsl $abbrev +aea $abbrev +aeci $abbrev +aek $abbrev +aepd $abbrev +afp $abbrev +ai $abbrev +akp $abbrev +amd $abbrev +anb $abbrev +anp $abbrev +anv $abbrev +ap $abbrev +apec $abbrev +aqu $abbrev +atp $abbrev +ats $abbrev +avl $abbrev +avs $abbrev +avt $abbrev +avv $abbrev +bbva $abbrev +bce $abbrev +bme $abbrev +bop $abbrev +bopv $abbrev +ca $abbrev +cav $abbrev +cbuc $abbrev +ccaa $abbrev +ccoo $abbrev +ccuc $abbrev +cee $abbrev +ceoe $abbrev +cepyme $abbrev +cesid $abbrev +cicr $abbrev +cidui $abbrev +ciemat $abbrev +cis $abbrev +cne $abbrev +cni $abbrev +csic $abbrev +csif $abbrev +dgaia $abbrev +dlsi $abbrev +dni $abbrev +dogc $abbrev +dogv $abbrev +dya $abbrev +eads $abbrev +eaed $abbrev +eb $abbrev +ebb $abbrev +eees $abbrev +eei $abbrev +egb $abbrev +eln $abbrev +emt $abbrev +eoc $abbrev +epsv $abbrev +erc $abbrev +ets $abbrev +euia $abbrev +facua $abbrev +fao $abbrev +fapae $abbrev +fbi $abbrev +fci $abbrev +feb $abbrev +fed $abbrev +fib $abbrev +finul $abbrev +fmi $abbrev +fuoc $abbrev +gatt $abbrev +iaaf $abbrev +ibm $abbrev +icaa $abbrev +icde $abbrev +icv $abbrev +iec $abbrev +iee $abbrev +ieo $abbrev +imc $abbrev +ims $abbrev +in3 $abbrev +inc $abbrev +inem $abbrev +ing $abbrev +inm $abbrev +ip $abbrev +ipc $abbrev +ipca $abbrev +iqua $abbrev +isaf $abbrev +itcat $abbrev +itv $abbrev +iu $abbrev +iun $abbrev +ko $abbrev +lotc $abbrev +mibor $abbrev +mit $abbrev +mnac $abbrev +nba $abbrev +nyse $abbrev +ocde $abbrev +ocu $abbrev +oea $abbrev +oiea $abbrev +olp $abbrev +omc $abbrev +omg $abbrev +oms $abbrev +ong $abbrev +op $abbrev +pce $abbrev +pda $abbrev +pde $abbrev +pdi $abbrev +pec $abbrev +pga $abbrev +pge $abbrev +pgou $abbrev +pib $abbrev +pid $abbrev +pse $abbrev +psoe $abbrev +psuc $abbrev +racc $abbrev +raf $abbrev +rba $abbrev +ree $abbrev +rfec $abbrev +rne $abbrev +rsa $abbrev +rtve $abbrev +samu $abbrev +sdat $abbrev +sec $abbrev +smi $abbrev +sod $abbrev +sos $abbrev +summa $abbrev +tor $abbrev +tpi $abbrev +tse $abbrev +tsja $abbrev +tve $abbrev +ua $abbrev +uab $abbrev +uaw $abbrev +udc $abbrev +udg $abbrev +udl $abbrev +ue $abbrev +uem $abbrev +ugt $abbrev +uhf $abbrev +uib $abbrev +uicn $abbrev +uimp $abbrev +uji $abbrev +um $abbrev +umd $abbrev +ump $abbrev +upc $abbrev +upd $abbrev +upf $abbrev +upn $abbrev +ups $abbrev +upv $abbrev +url $abbrev +urss $abbrev +urv $abbrev +usb $abbrev +usfp $abbrev +uss $abbrev +uv $abbrev +uveg $abbrev +uz $abbrev +vih $abbrev +vpo $abbrev +wap $abbrev +witsa $abbrev + + // exceptions +barça b'arsa holio x'olio jazz dZ'as @@ -220,6 +507,7 @@ iphone 'aIfon (i pod) 'aIpod ipod 'aIpod hardware x'ardwer +linux $1 live l'aIB messenger m'esendZer mozilla moT'ila @@ -229,5 +517,8 @@ skype esk'aIp software s'oftwer thunderbird Tanderb'ird twitter tw'iter +unix j'uniks whatsapp was'app windows w'indows + +mobile _^_EN diff --git a/dictsource/an_rules b/dictsource/an_rules index 7f0e1ecb..22c0b893 100755 --- a/dictsource/an_rules +++ b/dictsource/an_rules @@ -17,6 +17,8 @@ au aU au (X 'aU + _) a' %a + .group b b b @@ -38,6 +40,10 @@ ch tS + +.group ç + ç T + .group d d d _) d d // phoneme definition may change it to [D] @@ -52,6 +58,9 @@ n) d (_ = // silent, but stress on last vowel + _) d' (AP2 d + _) de' d%e + .group e e e @@ -66,6 +75,9 @@ u) e E y) e E + _) ent' (AP4 ent + _) enta' ,ent%a + .group f f f @@ -92,11 +104,12 @@ .group h h // silent - + hu (e gw + hu (i gw .group i i i - i (u i + i (u_ i i (A j @@ -116,6 +129,9 @@ .group m m m + _) m' (AP2 m + _) mo' m%o + .group n n n @@ -141,10 +157,15 @@ u) o O y) o O + .group p p p _) ps s + _) p' (AP2 p + _) pa' p%a + _) pe' p%e + .group q qu (A kw @@ -174,6 +195,8 @@ s s &) s (_S1 s + _) s' (AP2 s + .group t t t @@ -186,15 +209,20 @@ ui) t (_ t# s) t (_ = // silent, but stress on last vowel + _) t' (AP2 t + _) ta' t%a + _) to' t%o + .group u u u + uix uS u (u u u (i u + r) uix uS + r) u (A u u (A w _) u (A gw - uix uS - .group v // same as 'b' @@ -234,3 +262,6 @@ ó ''o ú ''u + __) - (_D m'enos + D_) - (_D m'enos + diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index fcd950a4..df9afd37 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -15,6 +15,42 @@ n N n^ p r s S t T tS v w x x2 z Z +Dictionary an_dict 2013-03-17 + +a aI aU e E eI eU i +o O oI u U + +b B d D dZ f g j +J^ k l l^ m n n^ p +Q r R R2 s S t T +t# tS w x + + +Dictionary bg_dict 2013-03-16 + +@ a e i o u + +: ; b C d d; dZ dz +f g g; h j k l L +l^ m n n^ p r s S +s; t t; tS ts v x z +Z z; + + +Dictionary bn_dict 2013-03-09 + +@ a a: aI a~ e E e: +E: E~ i I i: i~ o O +o: O: O~ o~ r- u U u: +u~ V + +#X1 #X2 : b b# c c# d +d# d. d.# g g# h H j +J J# k k# l m n N +n. n^ p p# r r. s S +s. t t# t. t.# v w z + + Dictionary ca_dict 2010-07-27 @ a a# aI e E E2 i @@ -68,18 +104,6 @@ r R R3 s S t T tS v w x z Z -Dictionary hu_dict 2013-03-13 - -a A a: e E e: i i: -o o: u u: Y y y: Y: - -- : b c C d dZ dz -f g h j J k l l^ -m n n^ p r R R2 s -S s2 t t2 tS ts v w -z Z - - Dictionary de_dict 2013-03-10 3 @ @- a A A: aI aU @@ -144,6 +168,29 @@ s S t T tS ts w x z +Dictionary et_dict 2012-06-12 + +& &: &i 8 8: a A1 a: +e E1 e: i I1 i1 i: o +O1 o: u U1 u: Y y Y: +y: Yi yi + +: b d d^ f g h j +k l l. l^ m n N n^ +p r R s S s2 s^ t +t^ tS v w z Z + + +Dictionary fa_dict 2013-03-12 + +a A e i o u + +- : ? b d dZ f g +h j k l m n p q +r R s S t tS v w +x z Z + + Dictionary fi_dict 2011-10-14 & &i &y a ai au e ei @@ -168,6 +215,19 @@ p2 r r2 s S t t2 t3 tS v z Z z2 z3 +Dictionary ga_dict 2013-03-11 + +0 0# @ a a# A: aI aI# +aU aU# e E E# e: i I +i: i@ o O O# o: u U +U# u1 u: u@ + +: ; b c C d d[ dZ +f g h j k l m n +p Q Q" r R s S t +t[ tS v w x X z Z + + Dictionary grc_dict 2008-03-03 a aI aU e E EI eU EU @@ -206,17 +266,16 @@ q r r. s S s. t T t# t. t.# v w x z -Dictionary ta_dict 2013-03-16 +Dictionary hu_dict 2013-03-13 -a a: aI aU e E e: i -I i: o o: u U u2 u: -U: V V# +a A a: e E e: i i: +o o: u u: Y y y: Y: -# #X1 #X2 : ; b C d -d. dZ f g h H j k -l l. m n N n. n^ p -Q r R s S s. t T -t# t. tS v w z z. +- : b c C d dZ dz +f g h j J k l l^ +m n n^ p r R R2 s +S s2 t t2 tS ts v w +z Z Dictionary hy_dict 2008-12-22 @@ -276,6 +335,30 @@ l m n N p R s S t tS v w x z Z +Dictionary ka_dict 2013-03-08 + +@ @- a e i o u + +: ? b c d dZ dz f +g h j k k# l m n +p p# Q q r s S t +t# tS ts ts# v w x z +Z + + +Dictionary kn_dict 2013-03-16 + +a a: aI aU e E e: i +I i: o o: r- u u: + +#X1 #X2 : b b# c c# d +d# d. d.# dZ f g g# h +j J J# k k# l l. m +n N n. n^ p p# r s +S s. S; t t# t. t.# tS +v w z + + Dictionary ku_dict 2008-04-14 8 a e E E# eI eU i @@ -298,6 +381,20 @@ g h j k l m n N p r R s t w z +Dictionary lt_dict 2012-08-18 + +a A a: ai au aU e E +eA ee ei i I i: ie l +o O o: u U u: ui uo +w + +; b d d; dZ dZ; f g +h j k l; m n N n; +p r s S s; S; t t; +tS ts tS; v x z Z z; +Z; + + Dictionary lv_dict 2010-03-12 a a: ai au e e: ei i @@ -322,16 +419,37 @@ N n^ p r R s S t tS ts tS; v x z Z -Dictionary nci_dict 2010-01-20 +Dictionary ml_dict 2013-03-16 -a e i o O +@ a a# a: aI aU e E +e: i I i: o o: r- u +u: V y -: ? b c d f g j -k l m n p R s S -t tS v w x +#X1 #X2 : ; b b# c c# +d d# d. d.# d2 dZ f g +g# h j J J# k k# l +l. m n N n. n^ p p# +r R r. R2 s s. S; t +t# t. t.# tS v w z -Dictionary nl_dict 2013-03-11 +Dictionary ne_dict 2013-03-09 + +@ @/ @2 @3 a a: aI aU +a~ e E e: E: eI e~ E~ +i I i: i~ o O o: O: +O~ o~ u U u: u~ V VI +VU V~ + +- : ; b b# c c# d +d# d. d.# f g g# h H +j J J# k k# l l. m +n N n. n^ p p# Q q +r r. s S s. t t# t. +t.# v w x z + + +Dictionary nl_dict 2013-03-17 8 @ @- a A a: A~ e E e# E2 e: EI eU i I @@ -356,15 +474,18 @@ k l m n N p r R s S s; t v w x z -Dictionary pap_dict 2010-07-27 +Dictionary pa_dict 2013-03-17 -a a/ aI e E eI i o -O u y Y +@ a a~ e E e~ E~ i +I i~ I~ o O o: O~ o~ +r- u U U~ u~ V V~ -: ? b d dZ f g h -j k l m n N n^ p -R s S t tS v w x -z Z +: ; b b# c c# d d# +d. d.# f g g# h H j +J J# k k# l l. m n +N n. n^ p p# Q R r. +R2 s S t t# t. t.# v +x z Dictionary pl_dict 2012-06-09 @@ -379,7 +500,7 @@ S s; S; t t; tS ts tS; ts; v w x z Z Z; -Dictionary pt_dict 2013-03-16 +Dictionary pt_dict 2013-03-17 & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU @@ -469,15 +590,17 @@ p Q R s S t T tS v w x z -Dictionary sl_dict 2013-01-30 +Dictionary ta_dict 2013-03-16 -@ @- a a: e E e: i -i: o O o: u u: y +a a: aI aU e E e: i +I i: o o: u U u2 u: +U: V V# -: b d dZ dz f g h -j k l l^ m n N n^ -p R R^ s S t tS ts -v v# w x z Z +# #X1 #X2 : ; b C d +d. dZ f g h H j k +l l. m n N n. n^ p +Q r R s S s. t T +t# t. tS v w z z. Dictionary tr_dict 2011-09-16 @@ -528,371 +651,3 @@ oi ong ou u ui yu b c d f g h j k l m n N p r s t tS v w z - - -Dictionary am_dict 2011-11-22 - -@ a e i o u y - -: ? b B d dZ f g -h j k k` l m n N -n^ p p` r s S t t` -tS tS` v w x z Z - - -Dictionary ml_dict 2013-03-16 - -@ a a# a: aI aU e E -e: i I i: o o: r- u -u: V y - -#X1 #X2 : ; b b# c c# -d d# d. d.# d2 dZ f g -g# h j J J# k k# l -l. m n N n. n^ p p# -r R r. R2 s s. S; t -t# t. t.# tS v w z - - -Dictionary ne_dict 2013-03-09 - -@ @/ @2 @3 a a: aI aU -a~ e E e: E: eI e~ E~ -i I i: i~ o O o: O: -O~ o~ u U u: u~ V VI -VU V~ - -- : ; b b# c c# d -d# d. d.# f g g# h H -j J J# k k# l l. m -n N n. n^ p p# Q q -r r. s S s. t t# t. -t.# v w x z - - -Dictionary pa_dict 2013-03-09 - -@ a a~ e E e~ E~ i -I i~ I~ o O O~ o~ r- -u U U~ u~ V V~ - -: ; b b# c c# d d# -d. d.# f g g# h H j -J J# k k# l l. m n -N n. n^ p p# Q R R2 -s S t t# t. t.# v x -z - - -Dictionary prs_dict 2009-12-01 - -@ A E eI i o u - -: b d dZ f g h j -k l m n p r R s -S t tS v w X z Z - - -Dictionary rw_dict 2008-03-27 - -a e i o u - -* : b B c d dZ f -g h j J k l m n -N n^ p q R s S S; -t tS v w x z - - -Dictionary ur_dict 2013-03-13 - -@ a a: aI aU e E e: -i I i: O o: U u: V - -: ; b b# c c# d D -d# d. d.# f g g# h H -j J J# k k# l m n -N p p# Q q r R r. -s S s. t T t# t. t.# -v w x z Z z. - - -Dictionary bg_dict 2013-03-16 - -@ a e i o u - -: ; b C d d; dZ dz -f g g; h j k l L -l^ m n n^ p r s S -s; t t; tS ts v x z -Z z; - - -Dictionary nso_dict 2010-08-27 - -@ a e E i m- n- N- -o u U - -- : ; b B d D dZ -f h j J k K l l# -m n N n^ p Q R3 s -S t tS v w x X x2 -z - - -Dictionary ht_dict 2010-06-29 - -a A~ e E E~ i o O -O~ u w y - -; b d f g j k l -m n N p r s S t -tS v z Z - - -Dictionary ak_dict 2010-08-11 - -a e E i o O u - -: b C d dZ dZ; f g -h j k l m n N n^ -p R s t tS; v w z -z; - - -Dictionary az_dict 2010-07-27 - -& @ a e E i o u -W y - -* b c C d dZ f g -h j J k l m n p -Q R s S t tS v w -x z Z - - -Dictionary wo_dict 2010-11-30 - -@ @: a a: e E e: E: -i i: m- n- N- o O O: -o: u u: - -: b c d f g h j -J k l m n N n^ p -q R R2 s s2 t v w -x z - - -Dictionary dv_dict 2013-03-09 - -@ @2 a a: aI e e: E: -E~ i I i: o O o: O: -O~ u U u: V - -: ? b c c# d D d. -dZ f g h j k k# l -l. m n N n. n^ p Q -q r R s S s. t T -t# t. t.# tS v w x z -Z - - -Dictionary kn_dict 2013-03-16 - -a a: aI aU e E e: i -I i: o o: r- u u: - -#X1 #X2 : b b# c c# d -d# d. d.# dZ f g g# h -j J J# k k# l l. m -n N n. n^ p p# r s -S s. S; t t# t. t.# tS -v w z - - -Dictionary tn_dict 2011-02-17 - -@- a e i m- n- N- o -u - -* - : b B d D dZ -f g h j J k K l -l# m n N n^ p Q r -R R3 s S t T tS ts -v w x X z - - -Dictionary te_dict 2013-03-16 - -a a: aI aU e E e: i -i: l- o o: r- u u: V - -#X1 #X2 : ; b b# c c# -d d# d. d.# dZ f g g# -h j J J# k k# l l. -m n N n. n^ p p# r -s s. S; t t# t. t.# tS -v w z - - -Dictionary ka_dict 2013-03-08 - -@ @- a e i o u - -: ? b c d dZ dz f -g h j k k# l m n -p p# Q q r s S t -t# tS ts ts# v w x z -Z - - -Dictionary si_dict 2013-01-18 - -& &: @ a a: aI aU e -e: i i: o o: u u: - -b d d. dZ f g h j -k l l. m m# n N n# -N# n. n.# n^ n^# p r s -S s. t t. tS v w - - -Dictionary et_dict 2012-06-12 - -& &: &i 8 8: a A1 a: -e E1 e: i I1 i1 i: o -O1 o: u U1 u: Y y Y: -y: Yi yi - -: b d d^ f g h j -k l l. l^ m n N n^ -p r R s S s2 s^ t -t^ tS v w z Z - - -Dictionary mt_dict 2011-07-29 - -@ a ai au e ei eu i -I ie iu l- o u U ui -y yi yY - -* : b c C d dZ f -g h j k l m n p -q r s S t tS v w -x z Z - - -Dictionary bo_dict 2013-03-09 - -a a: e e: i i: l- o -o: r- u u: - -: ? b b# c c# d d# -d. d.# dz dz# g g# H j -J k k# l m n N n. -n^ p p# r s S s. t -t# t. t.# ts ts# w z Z - - -Dictionary kk_dict 2011-12-07 - -& 8 a A e E i I -o u U u# Y - -; b d f g G h j -k l m n N p q r -s S t tS v w X z -Z - - -Dictionary lt_dict 2012-08-18 - -a A a: ai au aU e E -eA ee ei i I i: ie l -o O o: u U u: ui uo -w - -; b d d; dZ dZ; f g -h j k l; m n N n; -p r s S s; S; t t; -tS ts tS; v x z Z z; -Z; - - -Dictionary tt_dict 2012-09-14 - -& a A e e2 e: i I -o u u2 V W y - -: ? b d f g h j -k l m n N p q r -R s S S; t w x z -Z Z; - - -Dictionary kl_dict 2012-11-15 - -& 3 @ @- a aI e E -i o O u V W y - -* : b d D f g h -j k l l# m n N p -Q q r R s t tl# ts -v w X z - - -Dictionary ko_dict 2012-09-17 - -@ a e E i o u u- - -* - ; b d dZ; g h -j k k- kh l m n N -p p- ph q r R s t -t- tS tS; w - - -Dictionary fa_dict 2013-03-12 - -a A e i o u - -- : ? b d dZ f g -h j k l m n p q -r R s S t tS v w -x z Z - - -Dictionary an_dict 2013-03-16 - -a aI aU e E eI eU i -o O oI u U - -b B d D dZ f g j -J^ k l l^ m n n^ p -Q r R R2 s S t T -t# tS w x - - -Dictionary bn_dict 2013-03-09 - -@ a a: aI a~ e E e: -E: E~ i I i: i~ o O -o: O: O~ o~ r- u U u: -u~ V - -#X1 #X2 : b b# c c# d -d# d. d.# g g# h H j -J J# k k# l m n N -n. n^ p p# r r. s S -s. t t# t. t.# v w z - - -Dictionary ga_dict 2013-03-11 - -0 0# @ a a# A: aI aI# -aU aU# e E E# e: i I -i: i@ o O O# o: u U -U# u1 u: u@ - -: ; b c C d d[ dZ -f g h j k l m n -p Q Q" r R s S t -t[ tS v w x X z Z diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 288abacc..075bff33 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -254,6 +254,10 @@ @) es (_S2qd 'Es // double the previous vowel @) es (_$w_alt2S1 s // just remove 's' KAC) es (_S2e @s + mb) es (_S1 s + nd) es (_S1 s + rd) es (_S1 s + gt) es (_S1 s es (ie_ e:z @) essen (_S5qd 'Es@n @) eres (_S4qd @r'Es diff --git a/dictsource/pt_list b/dictsource/pt_list index a625c789..54790b97 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -369,7 +369,7 @@ sua $u+ $nounf ?2 nossas $u+ $nounf n'Os&s dele dely $u1+ dela $u+ -deles $u+ +deles delys $u1+ delas $u+ nele nely $u1+ @@ -654,7 +654,7 @@ apego $alt2 $noun apelo $alt $verb aposto $alt $verb aperto $alt2 $noun -apoio $alt $verb +apoio $alt2 $noun aprovo $alt arredores $alt arremesso $alt2 $noun @@ -717,7 +717,6 @@ chovesse $alt2 chupeta $alt2 clamores $alt2 clero $alt -crepe $alt coco $alt2 cofre $alt cogumelo $alt @@ -732,6 +731,7 @@ colore $alt começo $alt2 $noun comodo $alt2 concerto $alt2 $noun +concertos $alt2 concordo $alt conforto $alt $verb congelo $alt @@ -739,6 +739,7 @@ consolo $alt2 $noun controle $alt2 $noun controlo $alt2 $noun coreia $alt +coreto $alt2 corneta $alt2 cornos $alt corpos $alt @@ -748,6 +749,7 @@ corvos $alt coto $alt2 cratera $alt crede $alt2 +crepe $alt decore $alt desapego $alt2 $noun descabelo $alt @@ -775,6 +777,7 @@ dueto $alt2 elixir eliSir elo $alt emprego $alt2 $noun +empregos $alt2 encosto $alt $verb endereço $alt2 endereço $alt $verb @@ -793,6 +796,7 @@ erros $alt2 esboço $alt $verb escopeta $alt2 escova $alt2 $noun +escovas $alt2 escovo $alt escroto $alt2 esforço $alt $verb @@ -834,9 +838,7 @@ forca $alt2 força $alt2 $noun forças $alt2 forço $alt -fossem $alt2 forro $alt $verb -fosse $alt2 frevo $alt2 galera $alt galileia $alt @@ -1019,6 +1021,7 @@ topo $alt $verb torno $alt $verb torre $alt2 $noun torres $alt2 +torro $alt tortos $alt traqueia $alt travesso $alt2 diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 58442a4c..58166adc 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -353,20 +353,22 @@ tiv) e (L05_ E // es- _com) e (L05_ e _pud) e (L05_ E + _tem) e (L05_ e _coub) e (L05_ E _exag) e (L05_ E _houv) e (L05_ E _perd) e (L05_ e _quis) e (L05_ E _soub) e (L05_ E + _trem) e (L05_ e diss) e (L06_ E // contra- + fend) e (L06_ e // de- o- tend) e (L06_ e // a- con- en- es- vend) e (L06_ e // re- _mord) e (L06_ e _rend) e (L06_ e prend) e (L06_ e // a- rea- des- desa- _arrepend) e (L06_ e -_defend) e (L06_ e _depend) e (L06_ e _escond) e (L06_ e preend) e (L06_ e // com- a- re- sur- @@ -383,6 +385,7 @@ respond) e (L06_ e // cor- colh) e (L07_ e // & es- corr) e (L07_ e // per- con- in- so- dis- ench) e (L07_ e // pre- + fend) e (L07_ e // de- o- nasc) e (L07_ e // re- tend) e (L07_ e // en- con- a- es- torc) e (L07_ e // con- @@ -396,6 +399,7 @@ respond) e (L06_ e // cor- _morr) e (L07_ e _perd) e (L07_ e _sofr) e (L07_ e + _trem) e (L07_ e merec) e (L07_ e // des- padec) e (L07_ e // com- parec) e (L07_ e // a- rea- com- desa- @@ -410,8 +414,8 @@ _amanhec) e (L07_ e _amolec) e (L07_ e _anoitec) e (L07_ e _arrepend) e (L07_ e +_atrev) e (L07_ e _cresc) e (L07_ e -_defend) e (L07_ e _depend) e (L07_ e _desguarnec) e (L07_ e _emagrec) e (L07_ e @@ -442,6 +446,7 @@ preend) e (L07_ e // sur- com- proteg) e (L07_ e // des- respond) e (L07_ e // cor- qu) e (brL04_ E + _cel) e (brL04_ E _hosp) e (dL03_ E _gr) e (gL03_ e _gal) e (gL03_ e @@ -837,7 +842,8 @@ estabel) e (çL03_ e // re- ?1 v) o (lt O //sort - _f) o (L06_ o + _f) o (L05_ o + _f) o (L07_ o _engl) o (bL01_ O _s) o (bL02_ O _esn) o (bL04_ O @@ -849,7 +855,7 @@ _desabr) o (chL04_ O _af) o (gL04_ O _adv) o (gL04_ O _ref) o (gL04_ O - _ap) oi (L01_ OI + _ap) oi (L04_ OI _t) o (lL03_ o c) o (lhL02_ O // es- en- re- _t) o (lhL02_ O @@ -869,14 +875,19 @@ _inson) o (rL03_ O _comem) o (rL04 O _remem) o (rL04_ O _enf) o (rquL02_ O + _ext) o (rquL02_ O c) o (rrL01_ o // escorra, incorra, corra, recorra _m) o (rrL01_ o p) o (rtL03_ O // im- trans- de- re- com- a- ex- + t) o (rçL01_ O // con- _r) o (snL04_ O _c) o (spL02_ O p) ostos (_ Ost=Us# // dispostos etc. _gar) o (tL03_ o _g) o (zL04_ O + _esb) o (çL01_ O + _r) o (çL03_ O + tr) o (çL03_ O // des- _ad) o (çL03_ O _end) o (çL03_ O //endsort @@ -1162,5 +1173,6 @@ _remem) o (rL04_ O __) - (_D m'enUs + D_) - (_D m'enUs A_) - (_D _ C_) - (_D _ diff --git a/phsource/compile_report b/phsource/compile_report index 899bd374..6977c187 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -49,7 +49,7 @@ consonants 11 119 ca 11 127 an 4 125 pt 29 140 - pt-pt 19 140 + pt-pt 18 140 ro 36 148 el 10 125 grc 12 129 diff --git a/phsource/ph_portugal b/phsource/ph_portugal index a31660c4..df714512 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -134,11 +134,6 @@ endphoneme -phoneme R // for Portugal this is same the as [r] - import_phoneme pt/r -endphoneme - - phoneme s# // This is [s] for Brazil, [S] for Portugal CALL base/S ipa ʃ diff --git a/phsource/r/V_ b/phsource/r/V_ deleted file mode 100644 index 349d2b7892f022eaa5b5b5d7bacb348e7f45183d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 V$p3?5VUNtn_oZK?d(uzR{{nh-y8QqE diff --git a/phsource/vdiph/eei_5 b/phsource/vdiph/eei_5 new file mode 100755 index 0000000000000000000000000000000000000000..50214664c19e828117aee8c988375f4e25eea77c GIT binary patch literal 9899 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 literal 0 HcmV?d00001 diff --git a/phsource/vdiph2/i@_3 b/phsource/vdiph2/i@_3 new file mode 100755 index 0000000000000000000000000000000000000000..32266d60d1ec5c15ee3dad7e4fac937a409ee6a6 GIT binary patch literal 9041 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

WbHCIQ4`I$DUfKN}tHr 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 TA|p&8F+9m+*5uX293}n_5c@dh literal 0 HcmV?d00001 diff --git a/phsource/vietnam/dd.wav b/phsource/vietnam/dd.wav new file mode 100755 index 0000000000000000000000000000000000000000..b139bce6fd1a8f55e3f22a3c45d5bfbf443c47e8 GIT binary patch literal 2924 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 D5x30G literal 0 HcmV?d00001 diff --git a/phsource/vietnam/ie_2 b/phsource/vietnam/ie_2 new file mode 100755 index 0000000000000000000000000000000000000000..c58f7d6059559d343a698ee3c05fb00ca73922d0 GIT binary patch literal 6756 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

PI`m;bcMf12hma>C z)Y7pL1+o`JjO!Tr^g=}wO@oJw`?&Vdyl}!r)XAB^Lex1YBXm$tp{R(Kq7pHwP#mQn zw|AS8Uqk&=krT3izdGS;1rzn~?{z5tp+iyo+d7mnjkmZ;ju)uJ82Rp!9Et1}Ec&TP z8?`B5FJ`F2862c4S;=0KI;@vDALJe{hl6apX&Uu#$@5}u=UnI@a1k>|wna^488ydf zNnSIxk`_Fs^!8|sIpD*cAzYjr{$R3x_x%SdDdQls3Dv)O#6yz+<(@8$HRraP1V!r{5CH2?< literal 0 HcmV?d00001 diff --git a/phsource/vietnam/th.wav b/phsource/vietnam/th.wav new file mode 100755 index 0000000000000000000000000000000000000000..95c89f5ba5abb39db99646b8baacc2f07f092df9 GIT binary patch literal 3076 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 diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index 938d61a4..439e913b 100755 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -1,8 +1,8 @@ -; This is the script for "Inno Setup 5" to create the setup_espeak.exe installer for Windows +; This is the script for "Inno Setup 5" to create the setup_espeak.exe installer for Windows [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.46.47 +AppVerName=eSpeak version 1.47.01 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes @@ -48,18 +48,24 @@ Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; F [Languages] Name: "en"; MessagesFile: "compiler:Default.isl" Name: "af"; MessagesFile: "compiler:Languages\Afrikaans.isl" +Name: "bg"; MessagesFile: "compiler:Languages\Bulgarian.isl" Name: "bs"; MessagesFile: "compiler:Languages\Bosnian.isl" Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "da"; MessagesFile: "compiler:Languages\Danish.isl" Name: "de"; MessagesFile: "compiler:Languages\German.isl" Name: "el"; MessagesFile: "compiler:Languages\Greek.isl" Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "fa"; MessagesFile: "compiler:Languages\Farsi.isl" Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl" Name: "fr"; MessagesFile: "compiler:Languages\French.isl" +Name: "hi"; MessagesFile: "compiler:Languages\Hindi.islu" Name: "hr"; MessagesFile: "compiler:Languages\Croatian.isl" Name: "hu"; MessagesFile: "compiler:Languages\Hungarian.isl" Name: "id"; MessagesFile: "compiler:Languages\Indonesian-5.1.11.isl" Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" -Name: "lv"; MessagesFile: "compiler:Languages\Latvian-1-5.1.11.isl" +Name: "ka"; MessagesFile: "compiler:Languages\Georgian.islu" +Name: "lv"; MessagesFile: "compiler:Languages\Latvian.isl" +Name: "ne"; MessagesFile: "compiler:Languages\Nepali.islu" Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" Name: "no"; MessagesFile: "compiler:Languages\Norwegian.isl" Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" @@ -67,9 +73,9 @@ Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl" Name: "ro"; MessagesFile: "compiler:Languages\Romanian.isl" Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl" -Name: "sq"; MessagesFile: "compiler:Languages\Albanian-2-5.1.11.isl" Name: "sr"; MessagesFile: "compiler:Languages\Serbian.isl" Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl" +Name: "vi"; MessagesFile: "compiler:Languages\Vietnamese.isl" Name: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl" [CustomMessages] @@ -77,26 +83,29 @@ v1=Select which voices to install v2=or press Enter to accept defaults v3=Enter voice names, eg: (for Portuguese) pt, or with a variant, eg: pt+f3 -bs.v1=Odaberite jezik kojeg želite instalirati +bs.v1=Odaberite jezik kojeg želite instalirati bs.v2=ili pritisnite Enter za prihvat zadanih. -bs.v3=Upišite, npr. bs (za Bosanski) ili s varjantom: bs+f3 +bs.v3=Upišite, npr. bs (za Bosanski) ili s varjantom: bs+f3 -fr.v1=Sélectionnez les voix à installer -fr.v2=ou appuyez sur Entrée pour accepter les valeurs par défaut. -fr.v3=Entrez le nom des voix, ex : (pour le Français) fr, ou avec une variante ex : fr+f3 +fr.v1=Sélectionnez les voix à installer +fr.v2=ou appuyez sur Entrée pour accepter les valeurs par défaut. +fr.v3=Entrez le nom des voix, ex : (pour le Français) fr, ou avec une variante ex : fr+f3 -hr.v1=Odaberite jezik kojeg želite instalirati +hr.v1=Odaberite jezik kojeg želite instalirati hr.v2=ili pritisnite Enter za prihvat zadanih. -hr.v3=Upišite, npr. hr (za Hrvatski) ili s varjantom: hr+f3 +hr.v3=Upišite, npr. hr (za Hrvatski) ili s varjantom: hr+f3 pt.v1=Seleccione as vozes que pretende instalar pt.v2=ou precione enter para aceitar as predefinidas. pt.v3=Introduza os nomes das vozes, ex: (Brazil) pt (ou Portugal) pt-pt, ou com outras caracter?sticas, ex: pt+f3 -sr.v1=Molimo vas da odaberete glasove, koje želite da instalirate +sr.v1=Molimo vas da odaberete glasove, koje želite da instalirate sr.v2=ili pritisnite Enter za instalaciju podrazumevanih glasova. -sr.v3=Da odaberete glas, unesite ime glasa kojeg želite instalirati, na primer sr, ili sr+f3 +sr.v3=Da odaberete glas, unesite ime glasa kojeg želite instalirati, na primer sr, ili sr+f3 +ne.v1=भित्र्याउन चाहेको आवाजको चयन गर्नु होस् । +ne.v2=अथवा यसमा निर्धारण गरिएको आवाजलाई नै चयन गर्ने हो भने ईन्टर कुञ्जीलाई दबाउनु होस् । +ne.v3=आवाजको नाम प्रविष्टी गर्नु होस् , जस्तै: नेपालीका लागि ne, अथवा स्वरको पनि चयन गर्ने हो भने ne+f3 [Code] var diff --git a/platforms/windows/make_espeakedit.iss b/platforms/windows/make_espeakedit.iss index de906cce..ffbebf1c 100755 --- a/platforms/windows/make_espeakedit.iss +++ b/platforms/windows/make_espeakedit.iss @@ -1,7 +1,7 @@ [Setup] AppName=eSpeakEdit -AppVerName=eSpeakEdit version 1.46.02 +AppVerName=eSpeakEdit version 1.47.01 DefaultDirName={pf}\eSpeak DefaultGroupName=eSpeak OutputBaseFilename=setup_espeakedit @@ -16,6 +16,7 @@ Name: "{group}\Uninstall espeakedit"; Filename: "{uninstallexe}" [InstallDelete] Type: filesandordirs; Name: "{app}\phsource\vowelcharts" +Type: filesandordirs; Name: "{app}\espeakedit" [Files] diff --git a/platforms/windows/windows_cmd/src/speech.h b/platforms/windows/windows_cmd/src/speech.h index 7a389b4c..a5e7d7a0 100755 --- a/platforms/windows/windows_cmd/src/speech.h +++ b/platforms/windows/windows_cmd/src/speech.h @@ -30,6 +30,7 @@ #define __WIN32__ #define NEED_WCSTOF #define NEED_GETOPT +#define USE_MBROLA_LIB #define PATHSEP '\\' #define USE_PORTAUDIO @@ -38,7 +39,6 @@ #define INCLUDE_MBROLA #define INCLUDE_SONIC - // will look for espeak_data directory here, and also in user's home directory #define PATH_ESPEAK_DATA "/usr/share/espeak-data" diff --git a/src/Makefile b/src/Makefile index cc3e105e..f04b4c45 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,7 +7,7 @@ BINDIR=$(PREFIX)/bin INCDIR=$(PREFIX)/include/espeak LIBDIR=$(PREFIX)/lib -RELEASE = 1.45 +RELEASE = 1.47 BIN_NAME = speak BIN2_NAME = espeak LIB_NAME = libespeak.so diff --git a/src/numbers.cpp b/src/numbers.cpp index f13eb747..d9708805 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -1603,9 +1603,9 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null } if(tr->langopts.numbers2 & 0x200) - sprintf(ph_thousands,"%s%s",ph_10T,ph_digits); // say "thousands" before its number, not after + sprintf(ph_thousands,"%s%c%s%c",ph_10T,phonEND_WORD,ph_digits,phonEND_WORD); // say "thousands" before its number, not after else - sprintf(ph_thousands,"%s%s",ph_digits,ph_10T); + sprintf(ph_thousands,"%s%c%s%c",ph_digits,phonEND_WORD,ph_10T,phonEND_WORD); hundreds %= 10; if((hundreds == 0) && (say_zero_hundred == 0)) @@ -1738,7 +1738,7 @@ static int LookupNum3(Translator *tr, int value, char *ph_out, int suppress_null } } - sprintf(ph_out,"%s%s%s",buf1,ph_hundred_and,buf2); + sprintf(ph_out,"%s%s%c%s",buf1,ph_hundred_and,phonEND_WORD,buf2); return(0); } // end of LookupNum3 @@ -1786,6 +1786,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned int suffix_ix; int skipwords = 0; int group_len; + int len; char *p; char string[32]; // for looking up entries in **_list char buf1[100]; @@ -2062,9 +2063,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned LookupNum3(tr, value, ph_buf, suppress_null, thousandplex, prev_thousands | ordinal | decimal_point); if((thousandplex > 0) && (tr->langopts.numbers2 & 0x200)) - sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_append,ph_buf2,ph_buf); // say "thousands" before its number + sprintf(ph_out,"%s%s%c%s%s",ph_zeros,ph_append,phonEND_WORD,ph_buf2,ph_buf); // say "thousands" before its number else - sprintf(ph_out,"%s%s%s%s",ph_zeros,ph_buf2,ph_buf,ph_append); + sprintf(ph_out,"%s%s%s%c%s",ph_zeros,ph_buf2,ph_buf,phonEND_WORD,ph_append); while(decimal_point) @@ -2147,7 +2148,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned // speak any remaining decimal fraction digits individually value = word[n_digits++] - '0'; LookupNum2(tr, value, 2, buf1); - strcat(ph_out,buf1); + len = strlen(ph_out); + sprintf(&ph_out[len],"%c%s", phonEND_WORD, buf1); } // something after the decimal part ? diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 1b843f84..2a11b7ab 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,8 +35,8 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.53 16.Mar.13"; -const int version_phdata = 0x014640; +const char *version_string = "1.47.01 18.Mar.13"; +const int version_phdata = 0x014701; int option_device_number = -1; FILE *f_logespeak = NULL; diff --git a/src/translate.cpp b/src/translate.cpp index 3773a0a5..cc8977c1 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -967,7 +967,7 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt } } } - else if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS)) + else if((found==0) && (dictionary_flags[0] & FLAG_SKIPWORDS) && !(dictionary_flags[0] & FLAG_ABBREV)) { // grouped words, but no translation. Join the words with hyphens. wordx = word1; diff --git a/src/voices.cpp b/src/voices.cpp index be300d2d..26eb44c5 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -395,10 +395,10 @@ void VoiceReset(int tone_only) // Set voice to the default values int pk; -// static unsigned char default_heights[N_PEAKS] = {140,128,120,110,90,90,128,128,128}; // changed for v.1.47 -// static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; - static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; // previous version + static unsigned char default_heights[N_PEAKS] = {130,128,120,116,100,100,128,128,128}; // changed for v.1.47 static unsigned char default_widths[N_PEAKS] = {140,128,128,160,171,171,128,128,128}; +// static unsigned char default_heights[N_PEAKS] = {128,128,120,120,110,110,128,128,128}; // previous version +// static unsigned char default_widths[N_PEAKS] = {128,128,128,160,171,171,128,128,128}; static int breath_widths[N_PEAKS] = {0,200,200,400,400,400,600,600,600}; @@ -419,7 +419,7 @@ void VoiceReset(int tone_only) voice->n_harmonic_peaks = 5; voice->peak_shape = 0; voice->voicing = 64; - voice->consonant_amp = 85; // change to 85 for v.1.47 was 100 + voice->consonant_amp = 90; // change to 85 for v.1.47 was 100 voice->consonant_ampv = 100; voice->samplerate = samplerate_native; memset(voice->klattv,0,sizeof(voice->klattv)); @@ -447,7 +447,6 @@ void VoiceReset(int tone_only) // adjust formant smoothing depending on sample rate formant_rate[pk] = (formant_rate_22050[pk] * 22050)/samplerate; } - voice->height[2] = 240; // reduce F2 slightly // This table provides the opportunity for tone control. // Adjustment of harmonic amplitudes, steps of 8Hz