From 4634aa43a55c5fbeb98e58960d6365bc2cb5ae23 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 03:13:22 +0000 Subject: [PATCH 01/23] [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 From daee46b6e9f866b2603a6d991e3717977c27b945 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 03:29:13 +0000 Subject: [PATCH 02/23] Change layout of esoeak-data/voices git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@321 d46cf337-b52f-0410-862d-fd96e6ae7743 --- espeak-data/voices/asia/fa | 3 +++ espeak-data/voices/asia/fa-pin | 6 ++++++ espeak-data/voices/{ => asia}/hi | 0 espeak-data/voices/{ => asia}/hy | 0 espeak-data/voices/{ => asia}/hy-west | 0 espeak-data/voices/{ => asia}/id | 2 +- espeak-data/voices/asia/ka | 2 ++ espeak-data/voices/{ => asia}/kn | 0 espeak-data/voices/{ => asia}/ku | 0 espeak-data/voices/{ => asia}/ml | 0 espeak-data/voices/asia/ne | 5 +++++ espeak-data/voices/asia/pa | 2 ++ espeak-data/voices/{ => asia}/ta | 0 espeak-data/voices/{ => asia}/tr | 0 espeak-data/voices/{ => asia}/vi | 0 espeak-data/voices/asia/vi-hue | 12 ++++++++++++ espeak-data/voices/{ => asia}/zh | 2 ++ espeak-data/voices/{ => asia}/zh-yue | 1 + espeak-data/voices/europe/an | 3 +++ espeak-data/voices/europe/bg | 5 +++++ espeak-data/voices/{ => europe}/bs | 0 espeak-data/voices/{ => europe}/ca | 0 espeak-data/voices/{ => europe}/cs | 0 espeak-data/voices/{ => europe}/cy | 2 +- espeak-data/voices/{ => europe}/da | 0 espeak-data/voices/{ => europe}/el | 0 espeak-data/voices/{ => europe}/es | 0 espeak-data/voices/europe/et | 3 +++ espeak-data/voices/{ => europe}/fi | 0 espeak-data/voices/{ => europe}/fr-be | 0 espeak-data/voices/europe/ga | 4 ++++ espeak-data/voices/{ => europe}/hr | 0 espeak-data/voices/{ => europe}/hu | 0 espeak-data/voices/{ => europe}/is | 2 +- espeak-data/voices/{ => europe}/it | 0 espeak-data/voices/europe/lt | 5 +++++ espeak-data/voices/{ => europe}/lv | 0 espeak-data/voices/{ => europe}/mk | 2 +- espeak-data/voices/{ => europe}/nl | 0 espeak-data/voices/{ => europe}/no | 0 espeak-data/voices/{ => europe}/pl | 0 espeak-data/voices/{ => europe}/pt-pt | 0 espeak-data/voices/{ => europe}/ro | 0 espeak-data/voices/{ => europe}/ru | 3 ++- espeak-data/voices/{ => europe}/sk | 0 espeak-data/voices/{ => europe}/sq | 0 espeak-data/voices/{ => europe}/sr | 0 espeak-data/voices/{ => europe}/sv | 0 espeak-data/voices/ka | 2 -- espeak-data/voices/{ => other}/af | 0 espeak-data/voices/other/en-n | 15 +++++++++++++++ espeak-data/voices/other/en-rp | 13 +++++++++++++ espeak-data/voices/other/en-sc | 16 ++++++++++++++++ espeak-data/voices/other/en-wi | 20 ++++++++++++++++++++ espeak-data/voices/other/en-wm | 14 ++++++++++++++ espeak-data/voices/{ => other}/eo | 2 ++ espeak-data/voices/{test => other}/grc | 0 espeak-data/voices/{test => other}/jbo | 0 espeak-data/voices/{ => other}/la | 0 espeak-data/voices/{ => other}/sw | 0 espeak-data/voices/pt | 7 ------- espeak-data/voices/test/nci | 7 ------- espeak-data/voices/test/pap | 5 ----- 63 files changed, 139 insertions(+), 26 deletions(-) create mode 100755 espeak-data/voices/asia/fa create mode 100755 espeak-data/voices/asia/fa-pin rename espeak-data/voices/{ => asia}/hi (100%) rename espeak-data/voices/{ => asia}/hy (100%) mode change 100644 => 100755 rename espeak-data/voices/{ => asia}/hy-west (100%) mode change 100644 => 100755 rename espeak-data/voices/{ => asia}/id (86%) create mode 100755 espeak-data/voices/asia/ka rename espeak-data/voices/{ => asia}/kn (100%) rename espeak-data/voices/{ => asia}/ku (100%) rename espeak-data/voices/{ => asia}/ml (100%) create mode 100755 espeak-data/voices/asia/ne create mode 100755 espeak-data/voices/asia/pa rename espeak-data/voices/{ => asia}/ta (100%) rename espeak-data/voices/{ => asia}/tr (100%) rename espeak-data/voices/{ => asia}/vi (100%) create mode 100755 espeak-data/voices/asia/vi-hue rename espeak-data/voices/{ => asia}/zh (97%) mode change 100644 => 100755 rename espeak-data/voices/{ => asia}/zh-yue (92%) create mode 100755 espeak-data/voices/europe/an create mode 100755 espeak-data/voices/europe/bg rename espeak-data/voices/{ => europe}/bs (100%) rename espeak-data/voices/{ => europe}/ca (100%) mode change 100644 => 100755 rename espeak-data/voices/{ => europe}/cs (100%) rename espeak-data/voices/{ => europe}/cy (70%) rename espeak-data/voices/{ => europe}/da (100%) rename espeak-data/voices/{ => europe}/el (100%) rename espeak-data/voices/{ => europe}/es (100%) create mode 100755 espeak-data/voices/europe/et rename espeak-data/voices/{ => europe}/fi (100%) rename espeak-data/voices/{ => europe}/fr-be (100%) create mode 100755 espeak-data/voices/europe/ga rename espeak-data/voices/{ => europe}/hr (100%) rename espeak-data/voices/{ => europe}/hu (100%) rename espeak-data/voices/{ => europe}/is (55%) rename espeak-data/voices/{ => europe}/it (100%) create mode 100755 espeak-data/voices/europe/lt rename espeak-data/voices/{ => europe}/lv (100%) rename espeak-data/voices/{ => europe}/mk (54%) rename espeak-data/voices/{ => europe}/nl (100%) rename espeak-data/voices/{ => europe}/no (100%) rename espeak-data/voices/{ => europe}/pl (100%) rename espeak-data/voices/{ => europe}/pt-pt (100%) rename espeak-data/voices/{ => europe}/ro (100%) rename espeak-data/voices/{ => europe}/ru (59%) rename espeak-data/voices/{ => europe}/sk (100%) rename espeak-data/voices/{ => europe}/sq (100%) mode change 100644 => 100755 rename espeak-data/voices/{ => europe}/sr (100%) mode change 100644 => 100755 rename espeak-data/voices/{ => europe}/sv (100%) delete mode 100644 espeak-data/voices/ka rename espeak-data/voices/{ => other}/af (100%) create mode 100755 espeak-data/voices/other/en-n create mode 100755 espeak-data/voices/other/en-rp create mode 100755 espeak-data/voices/other/en-sc create mode 100755 espeak-data/voices/other/en-wi create mode 100755 espeak-data/voices/other/en-wm rename espeak-data/voices/{ => other}/eo (73%) rename espeak-data/voices/{test => other}/grc (100%) rename espeak-data/voices/{test => other}/jbo (100%) mode change 100644 => 100755 rename espeak-data/voices/{ => other}/la (100%) mode change 100644 => 100755 rename espeak-data/voices/{ => other}/sw (100%) delete mode 100755 espeak-data/voices/pt delete mode 100644 espeak-data/voices/test/nci delete mode 100644 espeak-data/voices/test/pap diff --git a/espeak-data/voices/asia/fa b/espeak-data/voices/asia/fa new file mode 100755 index 00000000..39be0fa2 --- /dev/null +++ b/espeak-data/voices/asia/fa @@ -0,0 +1,3 @@ +name Farsi +language fa + diff --git a/espeak-data/voices/asia/fa-pin b/espeak-data/voices/asia/fa-pin new file mode 100755 index 00000000..0e183b82 --- /dev/null +++ b/espeak-data/voices/asia/fa-pin @@ -0,0 +1,6 @@ +name Farsi-Pinglish +// Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat and SMS (texte messages).), called Pinglish +language fa-pin +dictrules 1 +phonemes fa + diff --git a/espeak-data/voices/hi b/espeak-data/voices/asia/hi similarity index 100% rename from espeak-data/voices/hi rename to espeak-data/voices/asia/hi diff --git a/espeak-data/voices/hy b/espeak-data/voices/asia/hy old mode 100644 new mode 100755 similarity index 100% rename from espeak-data/voices/hy rename to espeak-data/voices/asia/hy diff --git a/espeak-data/voices/hy-west b/espeak-data/voices/asia/hy-west old mode 100644 new mode 100755 similarity index 100% rename from espeak-data/voices/hy-west rename to espeak-data/voices/asia/hy-west diff --git a/espeak-data/voices/id b/espeak-data/voices/asia/id similarity index 86% rename from espeak-data/voices/id rename to espeak-data/voices/asia/id index ce800f70..f35b116a 100755 --- a/espeak-data/voices/id +++ b/espeak-data/voices/asia/id @@ -1,4 +1,4 @@ -name indonesian-test +name indonesian language id gender male diff --git a/espeak-data/voices/asia/ka b/espeak-data/voices/asia/ka new file mode 100755 index 00000000..6f748b7f --- /dev/null +++ b/espeak-data/voices/asia/ka @@ -0,0 +1,2 @@ +name georgian +language ka diff --git a/espeak-data/voices/kn b/espeak-data/voices/asia/kn similarity index 100% rename from espeak-data/voices/kn rename to espeak-data/voices/asia/kn diff --git a/espeak-data/voices/ku b/espeak-data/voices/asia/ku similarity index 100% rename from espeak-data/voices/ku rename to espeak-data/voices/asia/ku diff --git a/espeak-data/voices/ml b/espeak-data/voices/asia/ml similarity index 100% rename from espeak-data/voices/ml rename to espeak-data/voices/asia/ml diff --git a/espeak-data/voices/asia/ne b/espeak-data/voices/asia/ne new file mode 100755 index 00000000..fc829532 --- /dev/null +++ b/espeak-data/voices/asia/ne @@ -0,0 +1,5 @@ +name nepali +language ne +gender male + +dictrules 1 diff --git a/espeak-data/voices/asia/pa b/espeak-data/voices/asia/pa new file mode 100755 index 00000000..2ce846b7 --- /dev/null +++ b/espeak-data/voices/asia/pa @@ -0,0 +1,2 @@ +name punjabi-test +language pa diff --git a/espeak-data/voices/ta b/espeak-data/voices/asia/ta similarity index 100% rename from espeak-data/voices/ta rename to espeak-data/voices/asia/ta diff --git a/espeak-data/voices/tr b/espeak-data/voices/asia/tr similarity index 100% rename from espeak-data/voices/tr rename to espeak-data/voices/asia/tr diff --git a/espeak-data/voices/vi b/espeak-data/voices/asia/vi similarity index 100% rename from espeak-data/voices/vi rename to espeak-data/voices/asia/vi diff --git a/espeak-data/voices/asia/vi-hue b/espeak-data/voices/asia/vi-hue new file mode 100755 index 00000000..83849f89 --- /dev/null +++ b/espeak-data/voices/asia/vi-hue @@ -0,0 +1,12 @@ +name vietnam_hue +language vi-hue +phonemes vi-hue +dictrules 1 +gender male + +words 1 +pitch 82 118 //80 118 +//breath 75 75 60 40 15 10 + //breathw 150 150 200 200 400 400 + voicing 90 //18 + flutter 20 diff --git a/espeak-data/voices/zh b/espeak-data/voices/asia/zh old mode 100644 new mode 100755 similarity index 97% rename from espeak-data/voices/zh rename to espeak-data/voices/asia/zh index 03edde41..559a6403 --- a/espeak-data/voices/zh +++ b/espeak-data/voices/asia/zh @@ -4,6 +4,8 @@ gender male words 1 pitch 80 118 +dict_min 100000 + //for some dialects //[en]: replace ng with n diff --git a/espeak-data/voices/zh-yue b/espeak-data/voices/asia/zh-yue similarity index 92% rename from espeak-data/voices/zh-yue rename to espeak-data/voices/asia/zh-yue index 0269a98a..8e2b8a7e 100755 --- a/espeak-data/voices/zh-yue +++ b/espeak-data/voices/asia/zh-yue @@ -12,3 +12,4 @@ gender male dictrules 1 words 1 +dict_min 10000 diff --git a/espeak-data/voices/europe/an b/espeak-data/voices/europe/an new file mode 100755 index 00000000..7bf245e0 --- /dev/null +++ b/espeak-data/voices/europe/an @@ -0,0 +1,3 @@ +name aragonese +language an +gender male diff --git a/espeak-data/voices/europe/bg b/espeak-data/voices/europe/bg new file mode 100755 index 00000000..c3842ca7 --- /dev/null +++ b/espeak-data/voices/europe/bg @@ -0,0 +1,5 @@ +name bulgarian +language bg + +stressAmp 13 12 17 17 20 22 22 21 +stressLength 180 170 200 200 200 200 210 220 \ No newline at end of file diff --git a/espeak-data/voices/bs b/espeak-data/voices/europe/bs similarity index 100% rename from espeak-data/voices/bs rename to espeak-data/voices/europe/bs diff --git a/espeak-data/voices/ca b/espeak-data/voices/europe/ca old mode 100644 new mode 100755 similarity index 100% rename from espeak-data/voices/ca rename to espeak-data/voices/europe/ca diff --git a/espeak-data/voices/cs b/espeak-data/voices/europe/cs similarity index 100% rename from espeak-data/voices/cs rename to espeak-data/voices/europe/cs diff --git a/espeak-data/voices/cy b/espeak-data/voices/europe/cy similarity index 70% rename from espeak-data/voices/cy rename to espeak-data/voices/europe/cy index 2991e99d..30abd943 100755 --- a/espeak-data/voices/cy +++ b/espeak-data/voices/europe/cy @@ -1,5 +1,5 @@ language cy -name welsh-test +name welsh gender male intonation 4 diff --git a/espeak-data/voices/da b/espeak-data/voices/europe/da similarity index 100% rename from espeak-data/voices/da rename to espeak-data/voices/europe/da diff --git a/espeak-data/voices/el b/espeak-data/voices/europe/el similarity index 100% rename from espeak-data/voices/el rename to espeak-data/voices/europe/el diff --git a/espeak-data/voices/es b/espeak-data/voices/europe/es similarity index 100% rename from espeak-data/voices/es rename to espeak-data/voices/europe/es diff --git a/espeak-data/voices/europe/et b/espeak-data/voices/europe/et new file mode 100755 index 00000000..6caf78ce --- /dev/null +++ b/espeak-data/voices/europe/et @@ -0,0 +1,3 @@ +name estonian +language et + diff --git a/espeak-data/voices/fi b/espeak-data/voices/europe/fi similarity index 100% rename from espeak-data/voices/fi rename to espeak-data/voices/europe/fi diff --git a/espeak-data/voices/fr-be b/espeak-data/voices/europe/fr-be similarity index 100% rename from espeak-data/voices/fr-be rename to espeak-data/voices/europe/fr-be diff --git a/espeak-data/voices/europe/ga b/espeak-data/voices/europe/ga new file mode 100755 index 00000000..27e5f8b9 --- /dev/null +++ b/espeak-data/voices/europe/ga @@ -0,0 +1,4 @@ +name Irish Gaeilge +language ga + +dictrules 1 // fix for eclipsis diff --git a/espeak-data/voices/hr b/espeak-data/voices/europe/hr similarity index 100% rename from espeak-data/voices/hr rename to espeak-data/voices/europe/hr diff --git a/espeak-data/voices/hu b/espeak-data/voices/europe/hu similarity index 100% rename from espeak-data/voices/hu rename to espeak-data/voices/europe/hu diff --git a/espeak-data/voices/is b/espeak-data/voices/europe/is similarity index 55% rename from espeak-data/voices/is rename to espeak-data/voices/europe/is index 9e9c4e74..b8f23834 100755 --- a/espeak-data/voices/is +++ b/espeak-data/voices/europe/is @@ -1,4 +1,4 @@ -name icelandic-test +name icelandic language is gender male diff --git a/espeak-data/voices/it b/espeak-data/voices/europe/it similarity index 100% rename from espeak-data/voices/it rename to espeak-data/voices/europe/it diff --git a/espeak-data/voices/europe/lt b/espeak-data/voices/europe/lt new file mode 100755 index 00000000..8295f6b2 --- /dev/null +++ b/espeak-data/voices/europe/lt @@ -0,0 +1,5 @@ + +name lithuanian +language lt +gender male + diff --git a/espeak-data/voices/lv b/espeak-data/voices/europe/lv similarity index 100% rename from espeak-data/voices/lv rename to espeak-data/voices/europe/lv diff --git a/espeak-data/voices/mk b/espeak-data/voices/europe/mk similarity index 54% rename from espeak-data/voices/mk rename to espeak-data/voices/europe/mk index 4607dd07..47a8398c 100755 --- a/espeak-data/voices/mk +++ b/espeak-data/voices/europe/mk @@ -1,4 +1,4 @@ -name macedonian-test +name macedonian language mk gender male diff --git a/espeak-data/voices/nl b/espeak-data/voices/europe/nl similarity index 100% rename from espeak-data/voices/nl rename to espeak-data/voices/europe/nl diff --git a/espeak-data/voices/no b/espeak-data/voices/europe/no similarity index 100% rename from espeak-data/voices/no rename to espeak-data/voices/europe/no diff --git a/espeak-data/voices/pl b/espeak-data/voices/europe/pl similarity index 100% rename from espeak-data/voices/pl rename to espeak-data/voices/europe/pl diff --git a/espeak-data/voices/pt-pt b/espeak-data/voices/europe/pt-pt similarity index 100% rename from espeak-data/voices/pt-pt rename to espeak-data/voices/europe/pt-pt diff --git a/espeak-data/voices/ro b/espeak-data/voices/europe/ro similarity index 100% rename from espeak-data/voices/ro rename to espeak-data/voices/europe/ro diff --git a/espeak-data/voices/ru b/espeak-data/voices/europe/ru similarity index 59% rename from espeak-data/voices/ru rename to espeak-data/voices/europe/ru index 238c6912..4136ab21 100755 --- a/espeak-data/voices/ru +++ b/espeak-data/voices/europe/ru @@ -1,6 +1,7 @@ -name russian_test +name russian language ru gender male replace 03 a a# +dict_min 20000 diff --git a/espeak-data/voices/sk b/espeak-data/voices/europe/sk similarity index 100% rename from espeak-data/voices/sk rename to espeak-data/voices/europe/sk diff --git a/espeak-data/voices/sq b/espeak-data/voices/europe/sq old mode 100644 new mode 100755 similarity index 100% rename from espeak-data/voices/sq rename to espeak-data/voices/europe/sq diff --git a/espeak-data/voices/sr b/espeak-data/voices/europe/sr old mode 100644 new mode 100755 similarity index 100% rename from espeak-data/voices/sr rename to espeak-data/voices/europe/sr diff --git a/espeak-data/voices/sv b/espeak-data/voices/europe/sv similarity index 100% rename from espeak-data/voices/sv rename to espeak-data/voices/europe/sv diff --git a/espeak-data/voices/ka b/espeak-data/voices/ka deleted file mode 100644 index bc2def28..00000000 --- a/espeak-data/voices/ka +++ /dev/null @@ -1,2 +0,0 @@ -name georgian-test -language ka diff --git a/espeak-data/voices/af b/espeak-data/voices/other/af similarity index 100% rename from espeak-data/voices/af rename to espeak-data/voices/other/af diff --git a/espeak-data/voices/other/en-n b/espeak-data/voices/other/en-n new file mode 100755 index 00000000..7f8ef32a --- /dev/null +++ b/espeak-data/voices/other/en-n @@ -0,0 +1,15 @@ +name lancashire +language en-uk-north +language en-uk 3 +language en 5 +gender male + +phonemes en-n + +stressLength 160 150 180 180 220 220 290 290 + +replace 00 i@3 i@ +replace 03 N n +//replace 03 I i +//replace 03 I2 i + diff --git a/espeak-data/voices/other/en-rp b/espeak-data/voices/other/en-rp new file mode 100755 index 00000000..abc1dbcb --- /dev/null +++ b/espeak-data/voices/other/en-rp @@ -0,0 +1,13 @@ +name english_rp +language en-uk-rp +language en-uk 4 +language en 5 +gender male + +phonemes en-rp +replace 00 o@ O@ +replace 00 i@3 i@ +replace 03 I i +replace 03 I2 i +replace 03 @ a# +replace 03 3 a# diff --git a/espeak-data/voices/other/en-sc b/espeak-data/voices/other/en-sc new file mode 100755 index 00000000..e0783ec3 --- /dev/null +++ b/espeak-data/voices/other/en-sc @@ -0,0 +1,16 @@ +name en-scottish +language en-sc +language en 4 +gender male + +phonemes en-sc +dictrules 5 6 7 +stressLength 180 130 200 200 0 0 250 270 + +replace 03 @ V +replace 03 I i +replace 03 I2 i +replace 01 aI aI2 +replace 02 a a/ +replace 02 u: U +replace 02 3: VR diff --git a/espeak-data/voices/other/en-wi b/espeak-data/voices/other/en-wi new file mode 100755 index 00000000..302538de --- /dev/null +++ b/espeak-data/voices/other/en-wi @@ -0,0 +1,20 @@ +name en-westindies +language en-wi +language en-uk 4 +language en 10 +gender male + +phonemes en-wi +dictrules 8 +stressLength 175 175 175 175 220 220 250 290 + +replace 00 D d +replace 00 T t[ +replace 00 U@ o@ +replace 00 i@3 i@ +replace 03 @ a# +replace 03 3 a# +replace 03 N n + +formant 1 98 100 100 +formant 2 98 100 100 diff --git a/espeak-data/voices/other/en-wm b/espeak-data/voices/other/en-wm new file mode 100755 index 00000000..33ff4fe4 --- /dev/null +++ b/espeak-data/voices/other/en-wm @@ -0,0 +1,14 @@ +name english_wmids +language en-uk-wmids +language en-uk 9 +language en 9 +gender male + +phonemes en-wm + +replace 00 h NULL +replace 00 o@ O@ +replace 00 i@3 i@ +dictrules 6 +intonation 4 +stressAdd 0 0 0 0 0 0 0 20 diff --git a/espeak-data/voices/eo b/espeak-data/voices/other/eo similarity index 73% rename from espeak-data/voices/eo rename to espeak-data/voices/other/eo index 36a4bff6..be18c0a7 100755 --- a/espeak-data/voices/eo +++ b/espeak-data/voices/other/eo @@ -1,3 +1,5 @@ name esperanto language eo gender male + +apostrophe 2 diff --git a/espeak-data/voices/test/grc b/espeak-data/voices/other/grc similarity index 100% rename from espeak-data/voices/test/grc rename to espeak-data/voices/other/grc diff --git a/espeak-data/voices/test/jbo b/espeak-data/voices/other/jbo old mode 100644 new mode 100755 similarity index 100% rename from espeak-data/voices/test/jbo rename to espeak-data/voices/other/jbo diff --git a/espeak-data/voices/la b/espeak-data/voices/other/la old mode 100644 new mode 100755 similarity index 100% rename from espeak-data/voices/la rename to espeak-data/voices/other/la diff --git a/espeak-data/voices/sw b/espeak-data/voices/other/sw similarity index 100% rename from espeak-data/voices/sw rename to espeak-data/voices/other/sw diff --git a/espeak-data/voices/pt b/espeak-data/voices/pt deleted file mode 100755 index 64a073d6..00000000 --- a/espeak-data/voices/pt +++ /dev/null @@ -1,7 +0,0 @@ -name brazil -language pt-br -language pt -gender male - -dictrules 2 - diff --git a/espeak-data/voices/test/nci b/espeak-data/voices/test/nci deleted file mode 100644 index d0864f3d..00000000 --- a/espeak-data/voices/test/nci +++ /dev/null @@ -1,7 +0,0 @@ -name nahuatl - classical -language nci -gender male - -intonation 3 -stressrule 2 -stressLength 190 190 200 200 0 0 220 240 diff --git a/espeak-data/voices/test/pap b/espeak-data/voices/test/pap deleted file mode 100644 index 3b105a7f..00000000 --- a/espeak-data/voices/test/pap +++ /dev/null @@ -1,5 +0,0 @@ -name papiamento-test -language pap - -phonemes base2 - From 658c53c73ac6889a350ef3acfb25087cc0c6aa54 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 03:31:34 +0000 Subject: [PATCH 03/23] Change layout of espeak-data/voices git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@322 d46cf337-b52f-0410-862d-fd96e6ae7743 --- espeak-data/voices/en/en | 12 ------------ espeak-data/voices/en/en-n | 15 --------------- espeak-data/voices/en/en-rp | 13 ------------- espeak-data/voices/en/en-sc | 16 ---------------- espeak-data/voices/en/en-us | 17 ----------------- espeak-data/voices/en/en-wi | 20 -------------------- espeak-data/voices/en/en-wm | 14 -------------- 7 files changed, 107 deletions(-) delete mode 100755 espeak-data/voices/en/en delete mode 100755 espeak-data/voices/en/en-n delete mode 100755 espeak-data/voices/en/en-rp delete mode 100755 espeak-data/voices/en/en-sc delete mode 100755 espeak-data/voices/en/en-us delete mode 100755 espeak-data/voices/en/en-wi delete mode 100755 espeak-data/voices/en/en-wm diff --git a/espeak-data/voices/en/en b/espeak-data/voices/en/en deleted file mode 100755 index c96248f6..00000000 --- a/espeak-data/voices/en/en +++ /dev/null @@ -1,12 +0,0 @@ -name english -language en-uk 2 -language en-gb 2 -language en 2 -gender male - -replace 03 I i -replace 03 I2 i - -//pitch 80 118 - -tunes s1 c1 q1 e1 diff --git a/espeak-data/voices/en/en-n b/espeak-data/voices/en/en-n deleted file mode 100755 index 7f8ef32a..00000000 --- a/espeak-data/voices/en/en-n +++ /dev/null @@ -1,15 +0,0 @@ -name lancashire -language en-uk-north -language en-uk 3 -language en 5 -gender male - -phonemes en-n - -stressLength 160 150 180 180 220 220 290 290 - -replace 00 i@3 i@ -replace 03 N n -//replace 03 I i -//replace 03 I2 i - diff --git a/espeak-data/voices/en/en-rp b/espeak-data/voices/en/en-rp deleted file mode 100755 index abc1dbcb..00000000 --- a/espeak-data/voices/en/en-rp +++ /dev/null @@ -1,13 +0,0 @@ -name english_rp -language en-uk-rp -language en-uk 4 -language en 5 -gender male - -phonemes en-rp -replace 00 o@ O@ -replace 00 i@3 i@ -replace 03 I i -replace 03 I2 i -replace 03 @ a# -replace 03 3 a# diff --git a/espeak-data/voices/en/en-sc b/espeak-data/voices/en/en-sc deleted file mode 100755 index e0783ec3..00000000 --- a/espeak-data/voices/en/en-sc +++ /dev/null @@ -1,16 +0,0 @@ -name en-scottish -language en-sc -language en 4 -gender male - -phonemes en-sc -dictrules 5 6 7 -stressLength 180 130 200 200 0 0 250 270 - -replace 03 @ V -replace 03 I i -replace 03 I2 i -replace 01 aI aI2 -replace 02 a a/ -replace 02 u: U -replace 02 3: VR diff --git a/espeak-data/voices/en/en-us b/espeak-data/voices/en/en-us deleted file mode 100755 index fd86703c..00000000 --- a/espeak-data/voices/en/en-us +++ /dev/null @@ -1,17 +0,0 @@ -// moving towards US English -name english-us -language en-us 2 -language en-r -language en 3 -gender male - -phonemes en-us -dictrules 3 6 -option reduce_t 1 - -stressLength 145 125 190 170 0 0 260 300 -stressAmp 17 16 19 19 19 19 21 19 - -replace 03 I i -replace 03 I2 i - diff --git a/espeak-data/voices/en/en-wi b/espeak-data/voices/en/en-wi deleted file mode 100755 index 302538de..00000000 --- a/espeak-data/voices/en/en-wi +++ /dev/null @@ -1,20 +0,0 @@ -name en-westindies -language en-wi -language en-uk 4 -language en 10 -gender male - -phonemes en-wi -dictrules 8 -stressLength 175 175 175 175 220 220 250 290 - -replace 00 D d -replace 00 T t[ -replace 00 U@ o@ -replace 00 i@3 i@ -replace 03 @ a# -replace 03 3 a# -replace 03 N n - -formant 1 98 100 100 -formant 2 98 100 100 diff --git a/espeak-data/voices/en/en-wm b/espeak-data/voices/en/en-wm deleted file mode 100755 index 33ff4fe4..00000000 --- a/espeak-data/voices/en/en-wm +++ /dev/null @@ -1,14 +0,0 @@ -name english_wmids -language en-uk-wmids -language en-uk 9 -language en 9 -gender male - -phonemes en-wm - -replace 00 h NULL -replace 00 o@ O@ -replace 00 i@3 i@ -dictrules 6 -intonation 4 -stressAdd 0 0 0 0 0 0 0 20 From a82ac534610a29ea792e756061a7c17d94e105c8 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 03:33:42 +0000 Subject: [PATCH 04/23] Change layout of espeak-data/voices git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@323 d46cf337-b52f-0410-862d-fd96e6ae7743 --- espeak-data/voices/en-us | 17 +++++++++++++++++ espeak-data/voices/pt | 7 +++++++ 2 files changed, 24 insertions(+) create mode 100755 espeak-data/voices/en-us create mode 100755 espeak-data/voices/pt diff --git a/espeak-data/voices/en-us b/espeak-data/voices/en-us new file mode 100755 index 00000000..fd86703c --- /dev/null +++ b/espeak-data/voices/en-us @@ -0,0 +1,17 @@ +// moving towards US English +name english-us +language en-us 2 +language en-r +language en 3 +gender male + +phonemes en-us +dictrules 3 6 +option reduce_t 1 + +stressLength 145 125 190 170 0 0 260 300 +stressAmp 17 16 19 19 19 19 21 19 + +replace 03 I i +replace 03 I2 i + diff --git a/espeak-data/voices/pt b/espeak-data/voices/pt new file mode 100755 index 00000000..64a073d6 --- /dev/null +++ b/espeak-data/voices/pt @@ -0,0 +1,7 @@ +name brazil +language pt-br +language pt +gender male + +dictrules 2 + From ab7a009649a11feb9e4081edd1a92bfd6d105df4 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 03:38:12 +0000 Subject: [PATCH 05/23] Change layout of espeak-data/voices git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@324 d46cf337-b52f-0410-862d-fd96e6ae7743 From 9c2d44a074100738667f78376a26a17270886f8f Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 03:38:38 +0000 Subject: [PATCH 06/23] Change layout of espeak-data/voices git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@325 d46cf337-b52f-0410-862d-fd96e6ae7743 From ad5f5cb6eaf40916f44603ebf240fb879b1d64a1 Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 04:03:21 +0000 Subject: [PATCH 07/23] Change layout of espeak-data/voices git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@326 d46cf337-b52f-0410-862d-fd96e6ae7743 --- espeak-data/voices/default | 4 ---- espeak-data/voices/es-la | 12 ------------ 2 files changed, 16 deletions(-) delete mode 100755 espeak-data/voices/default delete mode 100755 espeak-data/voices/es-la diff --git a/espeak-data/voices/default b/espeak-data/voices/default deleted file mode 100755 index b2fd9d08..00000000 --- a/espeak-data/voices/default +++ /dev/null @@ -1,4 +0,0 @@ -name default -language en -gender male - diff --git a/espeak-data/voices/es-la b/espeak-data/voices/es-la deleted file mode 100755 index 262d0687..00000000 --- a/espeak-data/voices/es-la +++ /dev/null @@ -1,12 +0,0 @@ -name spanish-latin-american -language es-la -language es-mx 6 -language es 6 -gender male - -phonemes es-la -dictrules 2 -intonation 2 -stressLength 170 200 230 180 0 0 250 280 - -replace 00 T s From 87604521971d0bcb012843752a5e8d34fde66a7f Mon Sep 17 00:00:00 2001 From: jonsd Date: Mon, 18 Mar 2013 04:11:25 +0000 Subject: [PATCH 08/23] Change layout of espeak-data/voices git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@327 d46cf337-b52f-0410-862d-fd96e6ae7743 --- espeak-data/voices/default | 4 ++++ espeak-data/voices/en | 9 +++++++++ espeak-data/voices/es-la | 12 ++++++++++++ 3 files changed, 25 insertions(+) create mode 100755 espeak-data/voices/default create mode 100755 espeak-data/voices/en create mode 100755 espeak-data/voices/es-la diff --git a/espeak-data/voices/default b/espeak-data/voices/default new file mode 100755 index 00000000..b2fd9d08 --- /dev/null +++ b/espeak-data/voices/default @@ -0,0 +1,4 @@ +name default +language en +gender male + diff --git a/espeak-data/voices/en b/espeak-data/voices/en new file mode 100755 index 00000000..59ed2ce2 --- /dev/null +++ b/espeak-data/voices/en @@ -0,0 +1,9 @@ +name english +language en-uk 2 +language en-gb 2 +language en 2 +gender male + +//pitch 80 118 + +tunes s1 c1 q1 e1 diff --git a/espeak-data/voices/es-la b/espeak-data/voices/es-la new file mode 100755 index 00000000..262d0687 --- /dev/null +++ b/espeak-data/voices/es-la @@ -0,0 +1,12 @@ +name spanish-latin-american +language es-la +language es-mx 6 +language es 6 +gender male + +phonemes es-la +dictrules 2 +intonation 2 +stressLength 170 200 230 180 0 0 250 280 + +replace 00 T s From ab693678efbb03069c96dc83625972dcd474f81c Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Mon, 18 Mar 2013 11:53:23 +0000 Subject: [PATCH 09/23] 1.47.01 (from http://espeak.sourceforge.net/test/latest.html) --- dictsource/pa_list | 9 +++++++-- dictsource/pa_rules | 6 +++--- espeak-data/voices/europe/an | 5 ++--- phsource/r/V_ | Bin 0 -> 5632 bytes phsource/r/V_2_ | Bin 0 -> 5634 bytes 5 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 phsource/r/V_ create mode 100644 phsource/r/V_2_ diff --git a/dictsource/pa_list b/dictsource/pa_list index 4c5e41f6..538d31b4 100644 --- a/dictsource/pa_list +++ b/dictsource/pa_list @@ -110,7 +110,7 @@ _0M3 k'VRoR // 10,000,000 _0M4 'VR@b // 1,000,000,000 _0M5 k#'VR@b // 100,000,000,000 -_dpt _dOt# // ?? +_dpt _d@s@ml'o: // character names @@ -144,9 +144,14 @@ _ਔ 'ERV||kVnOR'a ੌ kVn'ORa - // Punctuation +_?? 'Vk#:@R । d.'Vnd.i ++ J'Vuma += b@R'ab@R +% pR'VtIS@t +* t'aRa + // Pronouns // ਪੁਰਖਵਾਚੀ ਪੜਨਾਂਵ diff --git a/dictsource/pa_rules b/dictsource/pa_rules index 04b7cc58..5a160b57 100644 --- a/dictsource/pa_rules +++ b/dictsource/pa_rules @@ -436,9 +436,9 @@ @) ਜ਼ (_ z .group ੜ - ੜ R2V - ੜ (B R2 - @) ੜ (_ R2 + ੜ r.V + ੜ (B r. + @) ੜ (_ r. .group ਫ਼ ਫ਼ fV diff --git a/espeak-data/voices/europe/an b/espeak-data/voices/europe/an index 248a9710..7bf245e0 100644 --- a/espeak-data/voices/europe/an +++ b/espeak-data/voices/europe/an @@ -1,4 +1,3 @@ -name aragon +name aragonese language an - - +gender male diff --git a/phsource/r/V_ b/phsource/r/V_ new file mode 100644 index 0000000000000000000000000000000000000000..349d2b7892f022eaa5b5b5d7bacb348e7f45183d GIT binary patch literal 5632 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 V$p3?5VUNtn_oZK?d(uzR{{nh-y8QqE literal 0 HcmV?d00001 From 753df1df40256a75c643f4fbfde408949785f415 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Mon, 18 Mar 2013 12:22:05 +0000 Subject: [PATCH 10/23] mkdictlist: only generate rules for building dictionaries that have corresponding voices --- Makefile.am | 33 --------------------------------- mkdictlist | 27 ++++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/Makefile.am b/Makefile.am index cfc97d0c..23907a47 100644 --- a/Makefile.am +++ b/Makefile.am @@ -148,7 +148,6 @@ dictionaries: \ espeak-data/fr_dict \ espeak-data/ga_dict \ espeak-data/grc_dict \ - espeak-data/hbs_dict \ espeak-data/hi_dict \ espeak-data/ht_dict \ espeak-data/hu_dict \ @@ -169,13 +168,11 @@ dictionaries: \ espeak-data/mk_dict \ espeak-data/ml_dict \ espeak-data/mt_dict \ - espeak-data/nci_dict \ espeak-data/ne_dict \ espeak-data/nl_dict \ espeak-data/no_dict \ espeak-data/nso_dict \ espeak-data/pa_dict \ - espeak-data/pap_dict \ espeak-data/pl_dict \ espeak-data/prs_dict \ espeak-data/pt_dict \ @@ -235,18 +232,6 @@ dictsource/bg_extra: espeak-data/bg_dict: src/espeak espeak-data/phontab dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra cd dictsource && ../src/espeak --compile=bg && cd .. -bn: espeak-data/bn_dict -dictsource/bn_extra: - touch dictsource/bn_extra -espeak-data/bn_dict: src/espeak espeak-data/phontab dictsource/bn_list dictsource/bn_rules dictsource/bn_extra - cd dictsource && ../src/espeak --compile=bn && cd .. - -bo: espeak-data/bo_dict -dictsource/bo_extra: - touch dictsource/bo_extra -espeak-data/bo_dict: src/espeak espeak-data/phontab dictsource/bo_rules dictsource/bo_extra - cd dictsource && ../src/espeak --compile=bo && cd .. - ca: espeak-data/ca_dict dictsource/ca_extra: touch dictsource/ca_extra @@ -343,12 +328,6 @@ dictsource/grc_extra: espeak-data/grc_dict: src/espeak espeak-data/phontab dictsource/grc_list dictsource/grc_rules dictsource/grc_extra cd dictsource && ../src/espeak --compile=grc && cd .. -hbs: espeak-data/hbs_dict -dictsource/hbs_extra: - touch dictsource/hbs_extra -espeak-data/hbs_dict: src/espeak espeak-data/phontab dictsource/hbs_list dictsource/hbs_rules dictsource/hbs_extra - cd dictsource && ../src/espeak --compile=hbs && cd .. - hi: espeak-data/hi_dict dictsource/hi_extra: touch dictsource/hi_extra @@ -469,12 +448,6 @@ dictsource/mt_extra: espeak-data/mt_dict: src/espeak espeak-data/phontab dictsource/mt_list dictsource/mt_rules dictsource/mt_extra cd dictsource && ../src/espeak --compile=mt && cd .. -nci: espeak-data/nci_dict -dictsource/nci_extra: - touch dictsource/nci_extra -espeak-data/nci_dict: src/espeak espeak-data/phontab dictsource/nci_list dictsource/nci_rules dictsource/nci_extra - cd dictsource && ../src/espeak --compile=nci && cd .. - ne: espeak-data/ne_dict dictsource/ne_extra: touch dictsource/ne_extra @@ -505,12 +478,6 @@ dictsource/pa_extra: espeak-data/pa_dict: src/espeak espeak-data/phontab dictsource/pa_list dictsource/pa_rules dictsource/pa_extra cd dictsource && ../src/espeak --compile=pa && cd .. -pap: espeak-data/pap_dict -dictsource/pap_extra: - touch dictsource/pap_extra -espeak-data/pap_dict: src/espeak espeak-data/phontab dictsource/pap_list dictsource/pap_rules dictsource/pap_extra - cd dictsource && ../src/espeak --compile=pap && cd .. - pl: espeak-data/pl_dict dictsource/pl_extra: touch dictsource/pl_extra diff --git a/mkdictlist b/mkdictlist index 2b7a1403..57ecdac3 100755 --- a/mkdictlist +++ b/mkdictlist @@ -8,14 +8,35 @@ import sys import os +voices = set() dictionaries = {} +# Map voice names to dictionaries when these do not match. +special_voices = { + 'zh-yue': 'zhy', +} + +def find_voices(path): + for filename in os.listdir(path): + voice_path = os.path.join(path, filename) + if os.path.isdir(voice_path): + if not filename in ['!v', 'mb']: + find_voices(voice_path) + else: + if filename in special_voices.keys(): + voices.add(special_voices[filename]) + else: + voices.add(filename) + +find_voices('espeak-data/voices') + for filename in os.listdir('dictsource'): if filename.endswith('_rules') or filename.endswith('_list') or filename.endswith('_listx'): dic, cat = filename.split('_') - if not dic in dictionaries.keys(): - dictionaries[dic] = [] - dictionaries[dic].append('dictsource/%s' % filename) + if dic in voices: + if not dic in dictionaries.keys(): + dictionaries[dic] = [] + dictionaries[dic].append('dictsource/%s' % filename) print '##### dictionaries:' print From 8cba4d3b9659e95936c76679024bf66195e11ad2 Mon Sep 17 00:00:00 2001 From: jonsd Date: Tue, 19 Mar 2013 08:44:12 +0000 Subject: [PATCH 11/23] [1.47.02] Fixed crash in Russian voice. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@328 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/an_list | 4 +- dictsource/an_rules | 1 + dictsource/dict_phonemes | 251 ++++++++++++++++++++++++++++++++++++++- dictsource/en_list | 12 ++ dictsource/en_rules | 5 + dictsource/hu_rules | 9 ++ dictsource/ko_rules | 2 +- src/dictionary.cpp | 4 +- src/phonemelist.cpp | 11 +- src/synthdata.cpp | 2 +- src/tr_languages.cpp | 1 + 11 files changed, 288 insertions(+), 14 deletions(-) diff --git a/dictsource/an_list b/dictsource/an_list index b0bcabde..7ee670d3 100755 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -102,7 +102,6 @@ _7C sjEteTj'Entos _8C gwitoTj'Entos _9C nowTj'Entos _0M1 m'il -_1M1 m'il _0M2 mil^'ons _1M2 un||mil^'on _0M4 bil^'ons @@ -115,7 +114,7 @@ _dpt kon // ordinal numbers _#º o _#ª a -//_ord eno + _1ox prim'Er _2ox seQ'und @@ -166,7 +165,6 @@ _8Co gw,eItoTEnt'en _9Co nweUTEnt'en _0M1o mil'en -_1M1 mil'en _0M2o mil^on'en _1M2o mil^on'en diff --git a/dictsource/an_rules b/dictsource/an_rules index 22c0b893..731e9acc 100755 --- a/dictsource/an_rules +++ b/dictsource/an_rules @@ -256,6 +256,7 @@ .group + ' á ''a é ''e í ''i diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index df9afd37..c3d6035e 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -15,7 +15,27 @@ n N n^ p r s S t T tS v w x x2 z Z -Dictionary an_dict 2013-03-17 +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 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 an_dict 2013-03-19 a aI aU e E eI eU i o O oI u U @@ -26,6 +46,17 @@ Q r R R2 s S t T t# tS w x +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 bg_dict 2013-03-16 @ a e i o u @@ -51,6 +82,18 @@ n. n^ p p# r r. s S s. t t# t. t.# v w 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 ca_dict 2010-07-27 @ a a# aI e E E2 i @@ -118,6 +161,20 @@ S t tS ts v w x z 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 el_dict 2011-05-19 a aI e i o oI u @@ -128,7 +185,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-03-16 +Dictionary en_dict 2013-03-19 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -266,7 +323,17 @@ q r r. s S s. t T t# t. t.# v w x z -Dictionary hu_dict 2013-03-13 +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 hu_dict 2013-03-18 a A a: e E e: i i: o o: u u: Y y y: Y: @@ -346,6 +413,28 @@ t# tS ts ts# v w x 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 kl_dict 2013-03-18 + +& 3 @ @- a aI e E +i o O u V W y + +* : b C d D f g +h j k l l# m n N +p Q q r R s t tl# +ts tS; v w x X z + + Dictionary kn_dict 2013-03-16 a a: aI aU e E e: i @@ -359,6 +448,16 @@ S s. S; t t# t. t.# tS v w z +Dictionary ko_dict 2013-03-19 + +@ a e E i o u u- + +* - ; b d dZ; g h +j k k- kh l L m n +N p p- ph q r R s +t t- tS tS; w + + Dictionary ku_dict 2008-04-14 8 a e E E# eI eU i @@ -433,6 +532,27 @@ r R r. R2 s s. S; t t# t. t.# tS v w 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 nci_dict 2010-01-20 + +a e i o O + +: ? b c d f g j +k l m n p R s S +t tS v w x + + Dictionary ne_dict 2013-03-09 @ @/ @2 @3 a a: aI aU @@ -474,6 +594,29 @@ k l m n N p r R s S s; t v w x 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 pap_dict 2010-07-27 + +a a/ aI e E eI i o +O u y Y + +: ? b d dZ f g h +j k l m n N n^ p +R s S t tS v w x +z Z + + Dictionary pa_dict 2013-03-17 @ a a~ e E e~ E~ i @@ -500,6 +643,15 @@ S s; S; t t; tS ts tS; ts; v w x z Z 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 pt_dict 2013-03-17 & &/ &U~ &~ @ @- a A @@ -542,6 +694,27 @@ t; ts tS; v x z Z 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 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 sk_dict 2011-08-08 & @- a a: e e: i i: @@ -555,6 +728,17 @@ S t t; tS ts v w x z Z +Dictionary sl_dict 2013-01-30 + +@ @- a a: e E e: i +i: o O o: u u: y + +: 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 + + Dictionary sq_dict 2008-12-22 @ @/ a A a/ aI e E @@ -603,6 +787,31 @@ Q r R s S s. t T t# t. tS v w z 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 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 tr_dict 2011-09-16 @ a e E i I o O @@ -614,6 +823,30 @@ p Q r R s S t tS v w 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 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 vi_dict 2013-03-16 @ @: @:I @:U @I @U a a: @@ -628,6 +861,18 @@ N n^ p Q s s. t t[ v w x z 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 zh_dict 2013-01-25 @ @r a A ai Au E ei diff --git a/dictsource/en_list b/dictsource/en_list index bc412af6..32f992d6 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -510,6 +510,7 @@ agm $abbrev ai $abbrev amd $abbrev aol $abbrev +aph $abbrev api $abbrev apr apr@ asap $abbrev @@ -1051,6 +1052,7 @@ caterer keIt3r3 cathedral $alt3 catholic kaTlIk carotid $alt3 +cartel kA@t'El cavalier $3 caveat kavIat ?3 caveat kavIA:t @@ -1156,6 +1158,7 @@ colonel k3:n@L colosseum k0l@s'i@m comanche k@mantSi combat k0mbat // combating +?3 combative k@mbatIv combo k0mboU comely kVmlI // comeliness comer kVm3 @@ -1625,6 +1628,7 @@ goodday $2 goodnight $2 gorilla g3rIl@ gospel g0sp@L +gossamer g0s@m3 goto goUtu: gourmand gU@mA:nd gourmet gU@meI @@ -1780,6 +1784,7 @@ interim $1 intermediate Int3m'i:di@t intern Int3:n $noun interrogatory $3 +intestine I2ntEstI#n inventory Inv@ntri ?3 inventory Inv@nto:ri interface $1 @@ -1843,6 +1848,7 @@ laboratory la#b'0r@trI labor leIb3 labored leIb@d laborer leIb@r3 +laborious $alt3 labyrinth lab3rInT lager lA:g3 laity leI@ti @@ -1875,6 +1881,7 @@ lemonade $3 leo li:oU leona li:'oUn@ leopard lEp3d +leprechaun lEpr@kO:n lesion li:Z@n lethal li:T@L liaison li:'eIz0n @@ -1970,6 +1977,7 @@ mausoleum mO:s@'li:@m mayhem meIhEm meant mEnt meadow mEdoU +medallion $alt3 mediaeval mEdI'i:v@L medicine mEds@n ?3 medicine mEd@s@n @@ -2380,6 +2388,7 @@ pythagoras paIT'ag@r@s python paIT@n pyramidal pI2r'amId@L +qaeda kaId@ quadrilateral $3 quash kw0S quaternary kw@t3:n@rI @@ -2825,6 +2834,7 @@ trajectory tr@dZEkt@rI traverse $alt3 travesty trav@sti treatise tri:tIz +tremendous $alt3 triage tri:A:Z tribunal traIb'ju:n@L triceratops traIs'Er@t0ps @@ -3007,6 +3017,7 @@ yessir jEss3: yoghurt j0g3t ?3 yoghurt joUg3t ?3 yogurt joUg3t +?3 youtube ju:t2u:b yoyo joUjoU zavala $alt3 @@ -3203,6 +3214,7 @@ Korean kOr'i:@n Kosovo k0s@voU Kuala kwA:la# Lagos leIg0s +Lebanon lEba#n@n Leipzig laIpsIg Leone li:'oUn Lesotho l@s'u:tu: diff --git a/dictsource/en_rules b/dictsource/en_rules index a55f7b09..715b4b11 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -1190,6 +1190,9 @@ au (_ aU _) auch %O:x aud (_ 'O:d + audio O:dI2oU + _) aud (iolo O:d + _) aud (iom O:d augh O: l) augh aaf sl) augh O: @@ -5403,6 +5406,8 @@ s) uag weIdZ @g) ua (ge wI u (al_ ju: + g) u (al_ w + n) u (al_ ju: g) ua (rA a g) uar (d A@ uary (_ ju:@ri diff --git a/dictsource/hu_rules b/dictsource/hu_rules index d99e1978..3641678c 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -820,6 +820,12 @@ _megsz) í (vatta i szabad) ítsz its: sz) í (vemészt i: vesz) ítsz i:ts: +progressz) í (ve i: +sz) í (vemel i: +sz) í (vere i: +sz) í (veré i: +sz) í (verő i: +sz) í (vevő i: .group j j j @@ -1171,6 +1177,7 @@ _tetszé) s S kolbászo) s S feldolgozá) s S _ki) s (szín S +kérdé) s S .group ss ssz ss2 @@ -1706,6 +1713,8 @@ szállodá) ssz Ss visszaélé) ssz Ss esé) ssz (erű Ss webe) ssz Ss +beleve) ssz (en s: + .group sz sz s diff --git a/dictsource/ko_rules b/dictsource/ko_rules index 6190cbe0..2ca039a5 100644 --- a/dictsource/ko_rules +++ b/dictsource/ko_rules @@ -260,7 +260,7 @@ ᇂ (A .group ᆯ // ㄹ - ᆯ rr + ᆯ L ᆯᄅ l ᆯ (A * diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 9eef55d2..1af05357 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1495,8 +1495,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, else { // no long vowels or consonant clusters - if(vowel_count > 4) - stressed_syllable = vowel_count - 3; + if(vowel_count > 5) + stressed_syllable = vowel_count - 3; // more than 4 syllables else stressed_syllable = vowel_count - 1; } diff --git a/src/phonemelist.cpp b/src/phonemelist.cpp index cd7e478c..3905865f 100644 --- a/src/phonemelist.cpp +++ b/src/phonemelist.cpp @@ -124,6 +124,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) int alternative; int delete_count; int word_start; + int inserted; PHONEME_DATA phdata; int n_ph_list3; @@ -341,9 +342,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) { plist3 = &ph_list3[j]; - if(plist3->sourceix != 0) - word_start = j; - + inserted = 0; if(insert_ph != 0) { // we have a (linking) phoneme which we need to insert here @@ -374,10 +373,14 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) ph = phoneme_tab[insert_ph]; plist3->ph = ph; insert_ph = 0; + inserted = 1; // don't insert the same phoneme repeatedly } else { // otherwise get the next phoneme from the list + if(plist3->sourceix != 0) + word_start = j; + ph = phoneme_tab[plist3->phcode]; plist3[0].ph = ph; @@ -394,7 +397,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata); - if((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0) + if(((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0) && (inserted == 0)) { // PROBLEM: if we insert a phoneme before a vowel then we loose the stress. PHONEME_TAB *ph2; diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 2a11b7ab..77bf2eca 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.01 18.Mar.13"; +const char *version_string = "1.47.02 19.Mar.13"; const int version_phdata = 0x014701; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 07c86abe..2f29bdc7 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -1084,6 +1084,7 @@ SetLengthMods(tr,3); // all equal case L('k','l'): // Greenlandic { + SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); tr->langopts.stress_rule = 12; tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL; From 8d6fac1c28b119a1e95e4db558491ceccb0df596 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 19 Mar 2013 10:32:22 +0000 Subject: [PATCH 12/23] 1.47.02 (from http://espeak.sourceforge.net/test/latest.html) --- dictsource/kl_rules | 22 ++++++++++++---------- espeak-data/voices/test/nci | 7 +++++++ espeak-data/voices/test/pap | 5 +++++ 3 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 espeak-data/voices/test/nci create mode 100644 espeak-data/voices/test/pap diff --git a/dictsource/kl_rules b/dictsource/kl_rules index 52210281..59c2a441 100644 --- a/dictsource/kl_rules +++ b/dictsource/kl_rules @@ -52,8 +52,9 @@ .group g - g j - gg j: + g Q + gg x: + gg (i C: .group h @@ -74,8 +75,8 @@ .group k - k g - kk g: + k k + kk k: .group l @@ -91,6 +92,7 @@ .group n n n na na + naa na: nn n: ng N nng N: @@ -104,8 +106,8 @@ .group p - p b - p b: + p p + pp p: .group q @@ -124,10 +126,10 @@ .group t - t d - ti ti - te te - tt d + t t + t (i ts + i) t (_ tS; + tt t: tl tl# ts ts diff --git a/espeak-data/voices/test/nci b/espeak-data/voices/test/nci new file mode 100644 index 00000000..d0864f3d --- /dev/null +++ b/espeak-data/voices/test/nci @@ -0,0 +1,7 @@ +name nahuatl - classical +language nci +gender male + +intonation 3 +stressrule 2 +stressLength 190 190 200 200 0 0 220 240 diff --git a/espeak-data/voices/test/pap b/espeak-data/voices/test/pap new file mode 100644 index 00000000..3b105a7f --- /dev/null +++ b/espeak-data/voices/test/pap @@ -0,0 +1,5 @@ +name papiamento-test +language pap + +phonemes base2 + From 2f2eee48a2d1436b8ec0f27df4d5c8a763e4396a Mon Sep 17 00:00:00 2001 From: jonsd Date: Thu, 21 Mar 2013 13:47:36 +0000 Subject: [PATCH 13/23] [1.47.03] git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@329 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/dict_phonemes | 16 +++---- dictsource/en_list | 35 +++++++------- dictsource/en_rules | 6 ++- dictsource/es_list | 1 + dictsource/ga_list | 3 +- dictsource/hu_rules | 18 ++++---- dictsource/nl_list | 4 ++ dictsource/nl_rules | 6 ++- docs/commands.html | 28 +++++------ docs/dictionary.html | 4 ++ docs/docindex.html | 2 +- docs/voices.html | 28 ++++++++++- phsource/compile_report | 11 ++--- phsource/ph_english | 7 +-- phsource/ph_english_sc | 4 +- phsource/ph_german | 6 +-- phsource/ph_irish | 64 ++++++++++++++------------ phsource/vdiph2/i@_3 | Bin 9041 -> 5288 bytes platforms/windows/make_espeak.iss | 2 +- platforms/windows/make_espeakedit.iss | 12 +++-- src/dictionary.cpp | 13 ++++-- src/numbers.cpp | 5 +- src/speak.cpp | 29 ++++++------ src/synthdata.cpp | 2 +- src/tr_languages.cpp | 18 +++++++- src/translate.h | 6 ++- src/voices.cpp | 52 ++++++++++++++++++--- 27 files changed, 240 insertions(+), 142 deletions(-) diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index c3d6035e..984799ae 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -185,7 +185,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-03-19 +Dictionary en_dict 2013-03-20 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -213,7 +213,7 @@ s S t T tS ts v w x z Z -Dictionary es_dict 2012-09-11 +Dictionary es_dict 2013-03-19 @ a aI aU e E eI eU i o O oI u @@ -272,12 +272,12 @@ p2 r r2 s S t t2 t3 tS v z Z z2 z3 -Dictionary ga_dict 2013-03-11 +Dictionary ga_dict 2013-03-20 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@ +aU aU# e E E# e: eI 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 @@ -333,7 +333,7 @@ m n N p r s S t tS v z Z -Dictionary hu_dict 2013-03-18 +Dictionary hu_dict 2013-03-21 a A a: e E e: i i: o o: u u: Y y y: Y: @@ -569,7 +569,7 @@ r r. s S s. t t# t. t.# v w x z -Dictionary nl_dict 2013-03-17 +Dictionary nl_dict 2013-03-21 8 @ @- a A a: A~ e E e# E2 e: EI eU i I diff --git a/dictsource/en_list b/dictsource/en_list index 32f992d6..c3f21695 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -61,6 +61,7 @@ a eI $atend // use the $accent attribute here to force the use of the // accent table when speaking the name of the character. à $accent $atend // this can be a word +á $accent $atend ç $accent é $accent ê $accent @@ -3214,7 +3215,7 @@ Korean kOr'i:@n Kosovo k0s@voU Kuala kwA:la# Lagos leIg0s -Lebanon lEba#n@n +Lebanon lEb@n0n Leipzig laIpsIg Leone li:'oUn Lesotho l@s'u:tu: @@ -3908,8 +3909,8 @@ would $u+ $verbf $only $strend2 (would have) w%Udh%a#v $pastf (would have) wUdhav $pastf $atend (would have to) wUdhavt@5 $u2 $verbf $strend2 -(wouldn't have) wUdnt@v $u1 $pastf $strend2 -(wouldn't have to) ,wUdntavt@5 $verbf $strend2 +(wouldn't have) wUd@-nt@v $u1 $pastf $strend2 +(wouldn't have to) ,wUd@-ntavt@5 $verbf $strend2 won't woUnt $u+ $verbf $strend2 $only wouldst $u+ (won't have) woUnta#v $pastf $u1 @@ -3920,18 +3921,18 @@ must $verbf (must have) mVsta#v $pastf $1 (must have) mVsthav $pastf $atend (must have to) m,Vstavt@5 $pastf -mustn't mVsnt $verbf -(mustn't have) mVsntha#v $pastf $u1+ -(mustn't have to) m'Vsnthavt@5 $pastf +mustn't mVs@-nt $verbf +(mustn't have) mVs@-ntha#v $pastf $u1+ +(mustn't have to) m'Vs@-nthavt@5 $pastf shall ,Sal $verbf $only $strend2 shalt ,Salt $verbf $only should ,SUd $verbf $only $strend2 (should have) SUd@v $pastf $u1+ (should have to) SUdhavt@5 $u2 $verbf $strend2 -shouldn't ,SUdnt $verbf $strend2 $only -(shouldn't have) SUdnth@v $pastf $u1+ -(shouldn't have to) 'SUdntavt@5 $verbf $strend2 +shouldn't ,SUd@-nt $verbf $strend2 $only +(shouldn't have) SUd@-nth@v $pastf $u1+ +(shouldn't have to) 'SUd@-ntavt@5 $verbf $strend2 shalln't ,SA:nt $verbf $strend2 shan't ,SA:nt $verbf $strend2 @@ -3947,9 +3948,9 @@ could %kUd $verbf $strend2 $only (could have) ,kUda#v $pastf (could have) kUdhav $pastf $atend (could have to) kUdhavt@5 $u2 $verbf $strend2 -couldn't ,kUd@nt $verbf $strend2 -(couldn't have) kUd@nt@v $pastf $u1+ -(couldn't have to) 'kUd@ntavt@5 $verbf $strend2 +couldn't ,kUd@-nt $verbf $strend2 +(couldn't have) kUd@-nt@v $pastf $u1+ +(couldn't have to) 'kUd@-ntavt@5 $verbf $strend2 may meI $verbf $strend2 (may have) meIha#v $pastf $u1+ @@ -3980,9 +3981,9 @@ had ,had $atend (had it) h,adI2t (had them) h,adDEm having ,havIN $strend2 $pastf $only -haven't hav@nt $pastf -hadn't had@nt $pastf -hasn't haz@nt $pastf +haven't hav@-nt $pastf +hadn't had@-nt $pastf +hasn't haz@-nt $pastf get %gEt $strend2 $pastf $only getting ,gEtIN $strend2 $pastf $only @@ -4088,8 +4089,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 $onlys -?3 our aU3 $u $nounf $onlys +our aU@ $u $nounf $only +?3 our aU3 $u $nounf $only your jO@ $u $nounf $only ?6 your jU@ $u $nounf $only their De@ $u $nounf $only diff --git a/dictsource/en_rules b/dictsource/en_rules index 715b4b11..ae1aae23 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -3827,7 +3827,8 @@ nk Nk ?7 nk nk // ?? Scottish n (kn n - n't nt + n't @-nt + A) n't nt E) n (_ @n B) n (_ @n g) n (ing+ n @@ -4847,7 +4848,7 @@ pro (vid pr@ pro (viden pr0 pro (vis pr@ - pro (voc pr@ + pro (voc pr%0# pro (vok pr@ pro (sec pr0 pro (fil proU @@ -6042,6 +6043,7 @@ χ tS'aI_ ψ ps'aI_ ω 'oUmIg@_ +?3 ω oUm'eIg@_ ώ 'oUmIg@_ ό 'oUmIkr0n_ diff --git a/dictsource/es_list b/dictsource/es_list index b7b3063d..9fc6458e 100644 --- a/dictsource/es_list +++ b/dictsource/es_list @@ -338,6 +338,7 @@ ll 'El^e é 'e||aTEntw'aDa í 'i||aTEntw'aDa _ó 'o||aTEntw'aDa +ó 'o||aTEntw'aDa $atend ú 'u||aTEntw'aDa ü ,uDj'ErEsis diff --git a/dictsource/ga_list b/dictsource/ga_list index c1e3da64..e67f39c9 100755 --- a/dictsource/ga_list +++ b/dictsource/ga_list @@ -37,11 +37,12 @@ y waI z zEd _á eI||f0d[@ _é i:||f0d[@ +_í aI||f0d[@ _ó o:||f0d[@ _ú ju:||f0d[@ _#32 spA:s - +_cap m'o:r // accent names diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 3641678c..22e2c8b8 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -462,6 +462,7 @@ shetlan) d (szige d vé) d (jeggy d své) d (zseb d csalá) d (szer d + szaba) d (sajt d .group dz fogó) dz (kod ts @@ -820,12 +821,12 @@ _megsz) í (vatta i szabad) ítsz its: sz) í (vemészt i: vesz) ítsz i:ts: -progressz) í (ve i: -sz) í (vemel i: -sz) í (vere i: -sz) í (veré i: -sz) í (verő i: -sz) í (vevő i: +progressz) í (ve i: + sz) í (vemel i: + sz) í (vere i: + sz) í (veré i: + sz) í (verő i: + sz) í (vevő i: .group j j j @@ -1177,7 +1178,8 @@ _tetszé) s S kolbászo) s S feldolgozá) s S _ki) s (szín S -kérdé) s S + kérdé) s S + végzé) s S .group ss ssz ss2 @@ -1713,7 +1715,7 @@ szállodá) ssz Ss visszaélé) ssz Ss esé) ssz (erű Ss webe) ssz Ss -beleve) ssz (en s: +beleve) ssz (en s: .group sz diff --git a/dictsource/nl_list b/dictsource/nl_list index 26c5dfa1..9c2428dd 100644 --- a/dictsource/nl_list +++ b/dictsource/nl_list @@ -1544,6 +1544,10 @@ spektakel $2 tegennatuur $4 travestie $3 verderop $3 +verre vEr@ +verrekijker vEr@kEIk@r +verste vErst@ +verte vErt@ volledig $2 vrouwengek $alt3 waarschijnlijk $2 diff --git a/dictsource/nl_rules b/dictsource/nl_rules index 075bff33..917b7373 100644 --- a/dictsource/nl_rules +++ b/dictsource/nl_rules @@ -258,6 +258,7 @@ nd) es (_S1 s rd) es (_S1 s gt) es (_S1 s + wt) es (_S1 s es (ie_ e:z @) essen (_S5qd 'Es@n @) eres (_S4qd @r'Es @@ -738,8 +739,8 @@ _) inn (@P2 'I // ?? inneren u (x 8 uu y ui Wy - uw yU - uw (_ yU + uw (A yw + uw (K yU _) uit (@P3 'Wyt uul (_ 'yl // from -ule @@ -759,6 +760,7 @@ _) inn (@P2 'I // ?? inneren _) ver (@P3 v@r _) ver (sie_ vEr _) verder vErd@r + _) verge (@P5 vErg@ _) verge (le v@rQ'e: _) voort (@P5 v'O:rt diff --git a/docs/commands.html b/docs/commands.html index 92eaab00..fcf46181 100644 --- a/docs/commands.html +++ b/docs/commands.html @@ -29,22 +29,12 @@ Some Linux distrubitions (eg. SuSe 10) have version 19 of PortAudio which has a The speak program may be compiled without using PortAudio, by removing the line

   #define USE_PORTAUDIO
 
in the file speech.h.

 


-

2.1.2 Use with KDE Text-to-Speech (KTTS)

-To add to KDE-Text-to-Speech Manager (KTTSMgr), use it as a "Command" talker -with "command for speaking texts" set to:
- cat %f | espeak --stdin -w %w -v en -s190 -

-In this example, "en" is the voice name, "190" is the speed. -

-Note: -

    -
  • When used by the KTTS system, I noticed a slight background hiss with the speech, which is not present when I use espeak directly from the command line. This was because KDE sound default was set to "8 bits" rather than 16 bits.

    -

  • KTTSMgr breaks the text into sentences to pass to the speech engine, but it mistakenly assumes sentence breaks when dots follow abbreviations and therefore pauses after the dots in "eg. Mr. John B. Smith etc." Speaking a text file directly with espeak gives better results in this respect. -
-

 


-

2.1.3 Windows

-The installer: setup_espeak.exe installs the SAPI5 version of eSpeak. It also installs a command line program espeak in the espeak directory. +

2.1.2 Windows

+The installer: setup_espeak.exe installs the SAPI5 version of eSpeak. +During installation you need to specify which voices you want to appear in SAPI5 voice menus. +

+It also installs a command line program espeak in the espeak program directory.

 


2.2 COMMAND OPTIONS

@@ -176,7 +166,13 @@ The same as --compile, but source line numbers from the *_rules

--ipa
-Writes phonemes to stdout, using the International Phonetic Alphabet (IPA). +Writes phonemes to stdout, using the International Phonetic Alphabet (IPA).
+If a phoneme name contains more than one letter (eg. [tS]) an optional parameter can be used to distinguish +this from separate phonemes. +
+--pho=1 Use a tie character (U+0361) before subsequence letters. +
+--pho=2 Use a zero-width-joiner (U+200D) before subsequent letters.

--path [="<directory path>"]
diff --git a/docs/dictionary.html b/docs/dictionary.html index c3a58521..0ef87afe 100644 --- a/docs/dictionary.html +++ b/docs/dictionary.html @@ -311,6 +311,10 @@ S<number> may be followed by additonal letters (eg. S2ei ). Some of these f the suffix means the next word is likely to be a verb. + + m + after this suffix has been removed, additional suffixes may be removed. + diff --git a/docs/docindex.html b/docs/docindex.html index f0180864..5ec6713c 100644 --- a/docs/docindex.html +++ b/docs/docindex.html @@ -46,7 +46,7 @@ The list of phoneme mnemonics for English, for use in the Pronunciation Dictiona The tables of the phonemes used by each language, with their properties and sound production.

Intonation

Different intonation "tunes" may be defined for different languages for clauses which end in full-stop, comma, question-mark, and exclamation-mark. -

eSpeak Libary API

+

eSpeak Library API

API definition and header file for a shared library version of eSpeak.

Markup tags

SSML (Speech Synthesis Markup Language) and HTML tags recognized by eSpeak. diff --git a/docs/voices.html b/docs/voices.html index b4d166d7..3bcd8c0f 100644 --- a/docs/voices.html +++ b/docs/voices.html @@ -17,6 +17,11 @@ The available voice files can be listed by:
    espeak --voices
 or
    espeak --voices=<language>
+also +
   espeak --voices=<variant>
+Lists voice variants which can be applied to eSpeak voices. +
   espeak --voices=<mbrola>
+Lists the Mbrola voices.

5.2 Contents of Voice Files

The language attribute is mandatory. All the other attributes are optional. @@ -141,6 +146,11 @@ don't have their own tone statement.
These values give bandwidths of the noise peaks of the breath attribute. If breathw values are not given, then suitable default values will be used.

+

+speed  <value>
+
Default value 100.
+ Adjusts the speaking speed by a percentage of the default rate. This can be used if a language voice seems faster or slower compared to other voices. +

Language Attributes

@@ -229,6 +239,22 @@ See dictionary.html. The ISO 8859 character set number. (not all are implemented).

+

+dictmin  <value>
+
+ Used for some languages to detect if additional language data is installed. + If the size of the compiled dictionary data for the language (the file espeak-data/*_dict) is less than + this size then a warning is given. +

+

+alphabet2  <alphabet> <language>
+
+Used to specify a language to be used to speak words which are written in a non-native alphabet. eg: +
 alphabet2 cyr ru
+
+Alphabets names include: latin, cyr (cyrillic), ar (arabic). The default language for latin alphabet is English. +
+

Additional attributes are available to set various internal options which control how language is processed. These would normally be set in the program code rather than in a voice file.


@@ -240,7 +266,7 @@ speak command.
default
-
This voice is used if none is specified in the speak command. Copy your preferred voice to "default" so you can use the speak command without the need to specify a voice.
+
This voice is used if none is specified in the speak command. You can copy your preferred voice to "default" so you can use the speak command without the need to specify a voice.
For a list of voices provided for English and other languages see Languages. diff --git a/phsource/compile_report b/phsource/compile_report index 6977c187..497ff9de 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -13,7 +13,7 @@ consonants 11 119 en-wi 30 156 af 39 138 cy 29 134 - ga 29 133 + ga 30 134 de 40 140 eo 13 116 jbo 2 116 @@ -1090,7 +1090,7 @@ vdiph2/i@ [i@] en-n [i@] ga [i@] hy vdiph2/i@_2 [i@] en-wm - [iR] de +vdiph2/i@_3 [iR] de vdiph2/ie [i@] en-wi [ie] fi [ie] mt @@ -1506,8 +1506,6 @@ voc/z_pzd_ [Z;] base [z;] base vowel/@ [@] base [@] en - [@2] en - [@5] en [@] en-rp [V] cy [@/] ga @@ -1558,8 +1556,6 @@ vowel/@_2 [@:] vi vowel/@_3 [@#] en [@] en-sc [I] en-sc - [@2] en-sc - [@5] en-sc [@3] hi [@3] ne [@3] ur @@ -2072,8 +2068,7 @@ vowel/ii_3 [I] cy [I] no [i] sl vowel/ii#_3 [I2] en-us -vowel/ii_4 [@2] en - [I2] en +vowel/ii_4 [I2] en [I] en-us [I2] tn vowel/ii_5 [i] ta diff --git a/phsource/ph_english b/phsource/ph_english index d6f0ccd5..f0e54f71 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -145,10 +145,7 @@ phoneme @2 // Schwa, changes to I before a vowel IF nextPh(isVowel) THEN ChangePhoneme(I2) ENDIF - IF nextPh(isVowel) THEN - FMT(vowel/ii_4) - ENDIF - FMT(vowel/@) + ChangePhoneme(@) endphoneme @@ -159,7 +156,7 @@ phoneme @5 // Schwa, changes to U before a vowel IF nextPh(isVowel) OR nextPh(isPause) THEN ChangePhoneme(U) ENDIF - FMT(vowel/@) + ChangePhoneme(@) endphoneme diff --git a/phsource/ph_english_sc b/phsource/ph_english_sc index a4637e41..c3d04e8c 100644 --- a/phsource/ph_english_sc +++ b/phsource/ph_english_sc @@ -36,7 +36,7 @@ phoneme @2 // Schwa, changes to I before a vowel IF nextPh(isVowel) THEN ChangePhoneme(I2) ENDIF - FMT(vowel/@_3) + ChangePhoneme(@) endphoneme @@ -47,7 +47,7 @@ phoneme @5 // Schwa, changes to U before a vowel IF nextPh(isVowel) OR nextPh(isPause) THEN ChangePhoneme(U) ENDIF - FMT(vowel/@_3) + ChangePhoneme(@) endphoneme diff --git a/phsource/ph_german b/phsource/ph_german index 1e1e1b73..8699b23e 100755 --- a/phsource/ph_german +++ b/phsource/ph_german @@ -342,12 +342,12 @@ endphoneme -phoneme iR +phoneme iR // TEST "vier" = [f'iR] not successful vowel starttype #i endtype #@ ipa iɐ flag1 - length 180 - FMT(vdiph2/i@_2) + length 230 + FMT(vdiph2/i@_3) endphoneme diff --git a/phsource/ph_irish b/phsource/ph_irish index f1fcca86..a7d0eb3c 100755 --- a/phsource/ph_irish +++ b/phsource/ph_irish @@ -6,17 +6,17 @@ phoneme @ // Schwa, but always unstressed vowel starttype #@ endtype #@ unstressed - length 100 + length 110 IF nextPh(i:) THEN - Length 70 + Length 80 FMT(vwl_af/r@) ENDIF IF nextPh(I) THEN - Length 70 + Length 80 FMT(vwl_af/r@) ENDIF IF nextPh(e:) THEN - Length 70 + Length 80 FMT(vwl_af/r@) ENDIF FMT(vwl_af/@) @@ -25,14 +25,14 @@ endphoneme phoneme @/ vowel starttype #@ endtype #@ - length 120 + length 130 FMT(vowel/@) endphoneme phoneme a vowel starttype #a endtype #a - length 150 + length 165 FMT(vowel/a_4) endphoneme @@ -40,7 +40,7 @@ endphoneme phoneme a# vowel starttype #@ endtype #@ ipa ɐ - length 120 + length 130 ChangeIfStressed(a) FMT(vowel/a#_3) endphoneme @@ -48,13 +48,13 @@ endphoneme phoneme E vowel starttype #e endtype #e - length 140 + length 155 FMT(vowel/e_mid) endphoneme phoneme E# vowel starttype #@ endtype #@ - length 120 + length 130 ChangeIfStressed(E) ChangePhoneme(@/) endphoneme @@ -62,27 +62,27 @@ endphoneme phoneme I vowel starttype #i endtype #i - length 120 + length 130 FMT(vowel/ii_2) endphoneme phoneme i // non syllabic i for end of words vowel starttype #i endtype #i ipa iU+032F - length 40 + length 45 FMT(vowel/ii_7) endphoneme phoneme O vowel starttype #a endtype #@ - length 140 + length 155 FMT(vowel/V_4) endphoneme phoneme O# vowel starttype #@ endtype #@ - length 120 + length 130 ChangeIfStressed(O) ChangePhoneme(a#) endphoneme @@ -90,13 +90,13 @@ endphoneme phoneme U vowel starttype #u endtype #u - length 140 + length 155 FMT(vowel/uu) endphoneme phoneme U# vowel starttype #@ endtype #@ - length 120 + length 130 ChangeIfStressed(U) ChangePhoneme(@/) endphoneme @@ -104,20 +104,20 @@ endphoneme phoneme u1 vowel starttype #u endtype #u ipa uU+0306 - length 50 + length 55 FMT(vowel/u) endphoneme phoneme 0 vowel starttype #a endtype #a - length 180 + length 195 ipa A FMT(vowel/aa_8) endphoneme phoneme 0# vowel starttype #@ endtype #@ - length 120 + length 130 ChangeIfStressed(0) ChangePhoneme(a#) endphoneme @@ -125,7 +125,7 @@ endphoneme phoneme o: vowel starttype #o endtype #o - length 190 + length 210 FMT(vowel/o) endphoneme @@ -134,21 +134,21 @@ endphoneme phoneme A: vowel starttype #a endtype #a - length 200 + length 220 FMT(vowel/aa_2) endphoneme phoneme e: vowel starttype #e endtype #e - length 210 + length 230 FMT(vowel/e) endphoneme phoneme i: vowel starttype #i endtype #i - length 210 + length 230 FMT(vowel/i) endphoneme @@ -157,7 +157,7 @@ endphoneme phoneme u: vowel starttype #u endtype #u - length 210 + length 230 FMT(vowel/u_bck) endphoneme @@ -167,44 +167,44 @@ endphoneme phoneme @U vowel starttype #@ endtype #u - length 240 + length 260 FMT(vdiph/@u_3) endphoneme phoneme i@ vowel starttype #i endtype #@ - length 240 + length 260 FMT(vdiph2/i@) endphoneme phoneme u@ vowel starttype #u endtype #@ - length 240 + length 260 FMT(vdiph2/u@) endphoneme phoneme aI vowel starttype #a endtype #i - length 250 + length 275 FMT(vdiph/ai) endphoneme phoneme aI# vowel starttype #@ endtype #@ - length 120 + length 130 ChangeIfStressed(aI) ChangePhoneme(a#) endphoneme phoneme aU vowel starttype #a endtype #u - length 270 + length 300 FMT(vdiph/au_4) endphoneme phoneme aU# vowel starttype #@ endtype #@ - length 120 + length 130 ChangeIfStressed(aU) FMT(vdiph/au_4) endphoneme @@ -237,3 +237,7 @@ phoneme ; // linking j, used between (i) vowels and a following vowel ENDIF endphoneme + +phoneme eI + import_phoneme en/eI +endphoneme diff --git a/phsource/vdiph2/i@_3 b/phsource/vdiph2/i@_3 index 32266d60d1ec5c15ee3dad7e4fac937a409ee6a6..f2b7531ad0d0dfebe8db0d07b936082f9e2902b0 100755 GIT binary patch literal 5288 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 WIPL_0xd}$U&nB}sSUT$rYvDg)Ptb<| literal 9041 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.alt_alphabet == alphabet->offset) { - sprintf(phonemes,"%c%s",phonSWITCH, tr->langopts.alt_alphabet_lang); + sprintf(phonemes,"%c%s",phonSWITCH, WordToString2(tr->langopts.alt_alphabet_lang)); return(0); } if(alphabet->flags & AL_WORDS) @@ -2984,6 +2984,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor const char *word_end; const char *word1; int wflags = 0; + int lookup_symbol; char word_buf[N_WORD_BYTES+1]; char dict_flags_buf[80]; @@ -2992,6 +2993,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor wflags = wtab->flags; } + lookup_symbol = flags[1] & FLAG_LOOKUP_SYMBOL; word1 = word; if(tr->transpose_min > 0) { @@ -3178,9 +3180,9 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor continue; } - if((dictionary_flags2 & FLAG_ATEND) && (word_end < translator->clause_end)) + if((dictionary_flags2 & FLAG_ATEND) && (word_end < translator->clause_end) && (lookup_symbol==0)) { - // only use this pronunciation if it's the last word of the clause + // only use this pronunciation if it's the last word of the clause, or called from Lookup() continue; } @@ -3192,7 +3194,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor if((dictionary_flags2 & FLAG_SENTENCE) && !(translator->clause_terminator & CLAUSE_BIT_SENTENCE)) { - // only uis this clause is a sentence , i.e. terminator is {. ? !} not {, : :} + // only if this clause is a sentence , i.e. terminator is {. ? !} not {, : :} continue; } @@ -3471,7 +3473,8 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f int Lookup(Translator *tr, const char *word, char *ph_out) {//=================================================== unsigned int flags[2]; - flags[0] = flags[1] = 0; + flags[0] = 0; + flags[1] = FLAG_LOOKUP_SYMBOL; char *word1 = (char *)word; return(LookupDictList(tr, &word1, ph_out, flags, 0, NULL)); } diff --git a/src/numbers.cpp b/src/numbers.cpp index d9708805..0ecff92f 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -691,6 +691,9 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) if(ph_buf[0] == 0) { + if(al_offset == translator->langopts.alt_alphabet) + language = translator->langopts.alt_alphabet_lang; + else if((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS)) language = alphabet->language; else @@ -793,7 +796,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) len = strlen(phonemes); - if(tr->langopts.accents & 2) + if(tr->langopts.accents & 2) // 'capital' before or after the word ? sprintf(ph_buf2,"%c%s%s%s",0xff,ph_alphabet,ph_buf,capital); else sprintf(ph_buf2,"%c%s%s%s",0xff,ph_alphabet,capital,ph_buf); // the 0xff marker will be removed or replaced in SetSpellingStress() diff --git a/src/speak.cpp b/src/speak.cpp index 7ce8e70a..559d7d18 100644 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -750,11 +750,22 @@ int main (int argc, char **argv) init_path(argv[0],data_path); initialise(); + if(voicename[0] == 0) + strcpy(voicename,"default"); + + if(SetVoiceByName(voicename) != EE_OK) + { + memset(&voice_select,0,sizeof(voice_select)); + voice_select.languages = voicename; + if(SetVoiceByProperties(&voice_select) != EE_OK) + { + fprintf(stderr,"%svoice '%s'\n",err_load,voicename); + exit(2); + } + } if(flag_compile) { - LoadVoice(voicename,5); - #ifdef PLATFORM_DOS char path_dsource[sizeof(path_home)+20]; strcpy(path_dsource,path_home); @@ -776,20 +787,6 @@ int main (int argc, char **argv) } - if(voicename[0] == 0) - strcpy(voicename,"default"); - - if(SetVoiceByName(voicename) != EE_OK) - { - memset(&voice_select,0,sizeof(voice_select)); - voice_select.languages = voicename; - if(SetVoiceByProperties(&voice_select) != EE_OK) - { - fprintf(stderr,"%svoice '%s'\n",err_load,voicename); - exit(2); - } - } - SetParameter(espeakRATE,speed,0); SetParameter(espeakVOLUME,amp,0); SetParameter(espeakCAPITALS,option_capitals,0); diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 77bf2eca..99f02651 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.02 19.Mar.13"; +const char *version_string = "1.47.03 21.Mar.13"; const int version_phdata = 0x014701; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 2f29bdc7..8cea390e 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -103,6 +103,19 @@ ALPHABET alphabets [] = { }; +ALPHABET *AlphabetFromName(const char *name) +{//========================================== + ALPHABET *alphabet; + + for(alphabet=alphabets; alphabet->name != NULL; alphabet++) + { + if(strcmp(name, &alphabet->name[1]) == 0) + return(alphabet); + } + return(NULL); +} + + ALPHABET *AlphabetFromChar(int c) {//=============================== // Find the alphabet from a character. @@ -276,7 +289,7 @@ static const char transpose_map_latin[] = { tr->langopts.param2[LOPT_BRACKET_PAUSE] = 2; // pauses when announcing bracket names tr->langopts.max_initial_consonants = 3; tr->langopts.replace_chars = NULL; - tr->langopts.ascii_language = ""; // Non-Latin alphabet languages, use this language to speak Latin words, default is English + tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English SetLengthMods(tr,201); @@ -828,6 +841,7 @@ Translator *SelectTranslator(const char *name) { tr->langopts.stress_rule = STRESSPOSN_1L; tr->langopts.numbers = 1; + tr->langopts.accents = 2; // 'capital' after letter name } break; @@ -1054,7 +1068,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.numbers = NUM_VIGESIMAL | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED |NUM_OMIT_1_THOUSAND | NUM_DFRACTION_5 | NUM_ROMAN; tr->langopts.alt_alphabet = OFFSET_CYRILLIC; - tr->langopts.alt_alphabet_lang = "ru"; + tr->langopts.alt_alphabet_lang = L('r','u'); } break; diff --git a/src/translate.h b/src/translate.h index e7460443..98228d30 100644 --- a/src/translate.h +++ b/src/translate.h @@ -83,6 +83,7 @@ #define FLAG_STEM 0x10000 // must have a suffix #define FLAG_ATEND 0x20000 /* use this pronunciation if at end of clause */ #define FLAG_ATSTART 0x40000 // use this pronunciation if at start of clause +#define FLAG_LOOKUP_SYMBOL 0x40000000 // to indicate called from Lookup() #define BITNUM_FLAG_ALLCAPS 0x2a #define BITNUM_FLAG_HYPHENATED 0x2c @@ -542,9 +543,9 @@ typedef struct { int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" int listx; // compile *_listx after *list const unsigned int *replace_chars; // characters to be substitutes - const char *ascii_language; // switch to this language for Latin characters + char ascii_language[8]; // switch to this language for Latin characters int alt_alphabet; // offset for another language to recognize - const char *alt_alphabet_lang; // language for the alt_alphabet + int alt_alphabet_lang; // language for the alt_alphabet int max_lengthmod; int lengthen_tonic; // lengthen the tonic syllable int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character @@ -713,6 +714,7 @@ int towlower2(unsigned int c); void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa); const char *WordToString2(unsigned int word); ALPHABET *AlphabetFromChar(int c); +ALPHABET *AlphabetFromName(const char *name); Translator *SelectTranslator(const char *name); int SetTranslator2(const char *name); diff --git a/src/voices.cpp b/src/voices.cpp index 26eb44c5..8fa66944 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -109,6 +109,7 @@ enum { V_FAST, V_SPEED, V_DICTMIN, + V_ALPHABET2, // these need a phoneme table to have been specified V_REPLACE, @@ -160,6 +161,7 @@ static MNEM_TAB keyword_tab[] = { {"fast_test2", V_FAST}, {"speed", V_SPEED}, {"dict_min", V_DICTMIN}, + {"alphabet2", V_ALPHABET2}, // these just set a value in langopts.param[] {"l_dieresis", 0x100+LOPT_DIERESES}, @@ -530,6 +532,21 @@ static int Read8Numbers(char *data_in,int *data) } +static unsigned int StringToWord2(const char *string) +{//====================================================== +// Convert a language name string to a word such as L('e','n') + int ix; + int c; + unsigned int value = 0; + + for(ix=0; (ix<4) & ((c = string[ix]) != 0); ix++) + { + value = (value << 8) | (c & 0xff); + } + return(value); +} + + voice_t *LoadVoice(const char *vname, int control) {//=============================================== // control, bit 0 1= no_default @@ -571,6 +588,7 @@ voice_t *LoadVoice(const char *vname, int control) int stress_lengths[8]; int stress_add[8]; char names[8][40]; + char name1[40]; char name2[80]; const char *voice_dir; @@ -581,11 +599,11 @@ voice_t *LoadVoice(const char *vname, int control) static char voice_name[40]; // voice name for current_voice_selected static char voice_languages[100]; // list of languages and priorities for current_voice_selected - // which directory to look for a named voice + // which directory to look for a named voice. List of voice names, must end in a space. static const char *voices_asia = "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; static const char *voices_europe = - "an bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; + "an bg bs ca cs cy da el es et fi fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; strncpy0(voicename, vname, sizeof(voicename)); @@ -960,12 +978,10 @@ voice_t *LoadVoice(const char *vname, int control) case V_MBROLA: { int srate = 16000; - char name[40]; - char phtrans[40]; - phtrans[0] = 0; - sscanf(p,"%s %s %d",name,phtrans,&srate); - if(LoadMbrolaTable(name,phtrans,srate) != EE_OK) + name2[0] = 0; + sscanf(p,"%s %s %d",name1,name2,&srate); + if(LoadMbrolaTable(name1,name2,srate) != EE_OK) { fprintf(stderr,"mbrola voice not found\n"); } @@ -988,6 +1004,28 @@ voice_t *LoadVoice(const char *vname, int control) sscanf(p,"%d",&dict_min); break; + case V_ALPHABET2: + { + ALPHABET *alphabet; + name1[0] = name2[0] = 0; + sscanf(p, "%s %s", name1, name2); + + if(strcmp(name1, "latin") == 0) + { + strncpy0(langopts->ascii_language,name2,sizeof(langopts->ascii_language)); + } + else if((alphabet = AlphabetFromName(name1)) != 0) + { + langopts->alt_alphabet = alphabet->offset; + langopts->alt_alphabet_lang = StringToWord2(name2); + } + else + { + fprintf(stderr,"alphabet name '%s' not found\n", name1); + } + } + break; + default: if((key & 0xff00) == 0x100) { From 3384bf4fd2982f9b7c28da3d4c2c612c42ea6514 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Thu, 21 Mar 2013 14:49:38 +0000 Subject: [PATCH 14/23] 1.47.03 (from http://espeak.sourceforge.net/test/latest.html) --- dictsource/an_list | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/dictsource/an_list b/dictsource/an_list index 7ee670d3..3151fcc2 100644 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -115,7 +115,6 @@ _dpt kon _#º o _#ª a - _1ox prim'Er _2ox seQ'und _3ox tErT'Er @@ -167,6 +166,9 @@ _9Co nweUTEnt'en _0M1o mil'en _0M2o mil^on'en _1M2o mil^on'en +_0M4o bil^on'en +_1M4o bil^on'en + // characters $ d'olar @@ -277,13 +279,6 @@ 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 @@ -519,4 +514,4 @@ unix j'uniks whatsapp was'app windows w'indows -mobile _^_EN +//mobile _^_EN From be3933d1d353241826c80b665eaa8ebae487c8b5 Mon Sep 17 00:00:00 2001 From: jonsd Date: Thu, 21 Mar 2013 18:02:06 +0000 Subject: [PATCH 15/23] [1.47.03a] Change sound of Portugal 'rr' and initial 'r'. Fixed for Aragonese ordinal numbers. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@330 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/an_list | 13 ++++--------- dictsource/dict_phonemes | 2 +- dictsource/hu_rules | 8 ++++++++ phsource/compile_report | 4 +++- phsource/ph_portugal | 17 +++++++++++++++++ src/numbers.cpp | 19 +++++++++++++------ src/synthdata.cpp | 2 +- src/tr_languages.cpp | 10 +++++----- src/translate.h | 2 ++ 9 files changed, 54 insertions(+), 23 deletions(-) diff --git a/dictsource/an_list b/dictsource/an_list index 7ee670d3..3151fcc2 100755 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -115,7 +115,6 @@ _dpt kon _#º o _#ª a - _1ox prim'Er _2ox seQ'und _3ox tErT'Er @@ -167,6 +166,9 @@ _9Co nweUTEnt'en _0M1o mil'en _0M2o mil^on'en _1M2o mil^on'en +_0M4o bil^on'en +_1M4o bil^on'en + // characters $ d'olar @@ -277,13 +279,6 @@ 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 @@ -519,4 +514,4 @@ unix j'uniks whatsapp was'app windows w'indows -mobile _^_EN +//mobile _^_EN diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 984799ae..aa23f7d3 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -35,7 +35,7 @@ n^ p p` r s S t t` tS tS` v w x z Z -Dictionary an_dict 2013-03-19 +Dictionary an_dict 2013-03-21 a aI aU e E eI eU i o O oI u U diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 22e2c8b8..299801b1 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -1035,6 +1035,9 @@ szivárvá) ny (játsz n^ haszo) n (jár n boszorká) ny (jelet n^ káno) n (jog n + legé) ny (jár n^ + szé) n (jelek n +teljesítmé) ny (j n^ .group o o o @@ -2013,6 +2016,8 @@ _tisztele) tj (el tj szen) tj (akab tj közérze) tj (aví tj ké) tj (átszm tj +szavaza) tj (og tj +szavaza) tj (eg tj .group ts ts (_S2 tS //general rule with word end of ts letters @@ -2230,6 +2235,9 @@ felira) ts (áv t|S _cha) tsz (ob t|s robo) ts (of t|S merényle) ts (or t|S +szavaza) ts (o t|S + szige) ts (ej t|S + szige) ts (o t|S .group tt diff --git a/phsource/compile_report b/phsource/compile_report index 497ff9de..a2e4e298 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 18 140 + pt-pt 20 140 ro 36 148 el 10 125 grc 12 129 @@ -721,6 +721,7 @@ r3/rx [*] base [r] et [r/] fr [R] fr-ca + [x] pt-pt [*;] ro [r#] is [r/] tn @@ -2548,6 +2549,7 @@ vwl_fr/r [r] fr vwl_fr/r_ [r/] fr vwl_fr/r_@ [r/] fr vwl_fr/r@ fr post_r +vwl_fr/@R [x] pt-pt vwl_fr/r@2 fr post_r vwl_fr/@R2 [R] fr-ca vwl_fr/ra fr post_r diff --git a/phsource/ph_portugal b/phsource/ph_portugal index df714512..37f51ed7 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -133,6 +133,23 @@ phoneme w endphoneme +phoneme x // [r] for Portugal + liquid + trill + ipa ʁ + lengthmod 7 + Vowelin f1=0 f2=1500 -400 400 f3=-400 80 + IF nextPh(isNotVowel) THEN + ChangePhoneme(r/) + ENDIF + FMT(vwl_fr/@R) addWav(r3/rx, 120) +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 diff --git a/src/numbers.cpp b/src/numbers.cpp index 0ecff92f..44d11b98 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -691,7 +691,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) if(ph_buf[0] == 0) { - if(al_offset == translator->langopts.alt_alphabet) + if((al_offset != 0) && (al_offset == translator->langopts.alt_alphabet)) language = translator->langopts.alt_alphabet_lang; else if((alphabet != NULL) && (alphabet->language != 0) && !(al_flags & AL_NOT_LETTERS)) @@ -876,6 +876,7 @@ void SetSpellingStress(Translator *tr, char *phonemes, int control, int n_chars) // Numbers static char ph_ordinal2[12]; +static char ph_ordinal2x[12]; static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB *wtab, int roman) @@ -1302,7 +1303,11 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out if(control & 4) { sprintf(string,"_%d%cx",value,ord_type); // LANG=hu, special word for 1. 2. when there are no higher digits - found = Lookup(tr, string, ph_digits); + if((found = Lookup(tr, string, ph_digits)) != 0) + { + if(ph_ordinal2x[0] != 0) + strcpy(ph_ordinal, ph_ordinal2x); // alternate pronunciation (lang=an) + } } if(found == 0) { @@ -1362,8 +1367,7 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out else { - if((is_ordinal) && - ((units == 0) || (tr->langopts.numbers & NUM_SWAP_TENS) || (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL))) + if(is_ordinal) { sprintf(string,"_%dX%c", tens, ord_type); if(Lookup(tr, string, ph_tens) != 0) @@ -1457,7 +1461,7 @@ static int LookupNum2(Translator *tr, int value, const int control, char *ph_out { Lookup(tr, "_0and", ph_and); - if((is_ordinal) && (tr->langopts.numbers2 & NUM2_MULTIPLE_ORDINAL)) + if((is_ordinal) && (tr->langopts.numbers2 & NUM2_ORDINAL_NO_AND)) ph_and[0] = 0; if(tr->langopts.numbers & NUM_SWAP_TENS) @@ -1884,6 +1888,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned ordinal = 2; flags[0] |= FLAG_SKIPWORDS; skipwords = 1; + sprintf(string,"_x#%s",suffix); + Lookup(tr, string, ph_ordinal2x); // is there an alternate pronunciation? } } } @@ -2179,7 +2185,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) utf8_in(&next_char,p); - if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) + if(!iswalpha(next_char) && (thousands_exact==0)) +// if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 99f02651..7eda9693 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.03 21.Mar.13"; +const char *version_string = "1.47.03a 21.Mar.13"; const int version_phdata = 0x014701; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 8cea390e..aeea1a93 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -290,7 +290,7 @@ static const char transpose_map_latin[] = { tr->langopts.max_initial_consonants = 3; tr->langopts.replace_chars = NULL; tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English - + tr->langopts.alt_alphabet_lang = L('e','n'); SetLengthMods(tr,201); // tr->langopts.length_mods = length_mods_en; @@ -679,7 +679,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA; - tr->langopts.numbers2 = 0x2 | NUM2_MULTIPLE_ORDINAL; // variant form of numbers before thousands + tr->langopts.numbers2 = 0x2 | NUM2_MULTIPLE_ORDINAL | NUM2_ORDINAL_NO_AND; // variant form of numbers before thousands if(name2 == L_grc) { @@ -733,7 +733,7 @@ Translator *SelectTranslator(const char *name) tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_AFTER; - tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL; + tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_ORDINAL_NO_AND; if(name2 == L('c','a')) { @@ -745,7 +745,7 @@ Translator *SelectTranslator(const char *name) if(name2 == L('a','n')) { tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; - tr->langopts.numbers2 = 0; + tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND; } else if(name2 == L_pap) @@ -1278,7 +1278,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_INITIAL_2 | S_PRIORITY_STRESS; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_DFRACTION_2 | NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_ROMAN; - tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS; + tr->langopts.numbers2 = NUM2_MULTIPLE_ORDINAL | NUM2_NO_TEEN_ORDINALS | NUM2_ORDINAL_NO_AND; SetLetterVowel(tr,'y'); ResetLetterBits(tr,0x2); SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y diff --git a/src/translate.h b/src/translate.h index 98228d30..6ce17c3d 100644 --- a/src/translate.h +++ b/src/translate.h @@ -503,6 +503,7 @@ typedef struct { #define NUM2_THOUSANDS_VAR4 0x100 #define NUM2_THOUSANDS_VAR5 0x140 +#define NUM2_ORDINAL_NO_AND 0x800 #define NUM2_MULTIPLE_ORDINAL 0x1000 #define NUM2_NO_TEEN_ORDINALS 0x2000 #define NUM2_MYRIADS 0x4000 @@ -511,6 +512,7 @@ typedef struct { // bits 1-4 use variant form of numbers before thousands,millions,etc. // bits 6-8 use different forms of thousand, million, etc (M MA MB) // bit9=(LANG=rw) say "thousand" and "million" before its number, not after + // bit11=(LANG=es,an) don't say 'and' between tens and units for ordinal numbers // bit12=(LANG=el,es) use ordinal form of hundreds and tens as well as units // bit13=(LANG=pt) don't use 11-19 numbers to make ordinals // bit14=(LANG=ko) use myriads (groups of 4 digits) not thousands (groups of 3) From 180f3819367e1a8f52665b7420d455fc46cf515b Mon Sep 17 00:00:00 2001 From: jonsd Date: Sat, 23 Mar 2013 00:15:42 +0000 Subject: [PATCH 16/23] [1.47.03b] Command line option --voices: Replace spaces in voice name by underscores. Show hyphen if no gender is specified. --voices= shows the voices in the specified subdirectory. Language changes: bn (Bengali), an. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@331 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/an_list | 106 ++++----- dictsource/bn_list | 263 +++++++++++++++++++++ dictsource/bn_rules | 402 ++++++++++++++++++++++++++++++++ dictsource/dict_phonemes | 22 +- dictsource/en_list | 1 + dictsource/en_rules | 2 +- dictsource/hu_rules | 6 +- espeak-data/voices/asia/pa | 2 +- espeak-data/voices/europe/fr-be | 2 +- espeak-data/voices/europe/nl | 2 +- phsource/compile_report | 15 +- phsource/ph_bengali | 90 +++++++ phsource/ph_punjabi | 96 ++++++++ phsource/vowel/oo_5 | Bin 4020 -> 4536 bytes src/espeak.cpp | 19 +- src/speak.cpp | 19 +- src/synthdata.cpp | 2 +- src/tr_languages.cpp | 3 +- src/voices.cpp | 34 ++- 19 files changed, 988 insertions(+), 98 deletions(-) create mode 100755 dictsource/bn_list create mode 100755 dictsource/bn_rules create mode 100755 phsource/ph_bengali create mode 100644 phsource/ph_punjabi diff --git a/dictsource/an_list b/dictsource/an_list index 3151fcc2..43df719e 100755 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -83,8 +83,8 @@ _12 d'oTe _13 tr'eTe _14 kat'orTe _15 k'inTe -_20 B'inte -_2X B,int +_20 b'inte +_2X b,int _3X tr'enta _4X kwar'anta _5X Tinkw'anta @@ -112,40 +112,40 @@ _dpt kon // ordinal numbers -_#º o -_#ª a +_#º %'eno +_#ª %'ena +_x#º %o // for 1º 2º 3º +_x#ª %a +º orDin'al||maskul'in +ª orDin'al||femen'in _1ox prim'Er _2ox seQ'und _3ox tErT'Er -_1o un'en -_2o dos'en -_3o tres'en -_4o kwatr'en -_5o Tink'en -_6o seIs'en -_7o sEt'en -_8o gwit'en -_9o nU'en -_11o onT'en -_12o DoT'en -_13o tReT'en -_14o katorT'en -_15o kinT'en -_16o sET'en -_10o DET'en -_20o Bint'en -_30o trent'en -_40o kwarant'en -_50o Tinkwant'en -_60o siSant'en -_70o sEtant'en -_80o gwitant'en -_90o noBant'en +_4o kwatr +_5o Tink +_7o sEt +_8o gwit +_9o nU +_11o onT +_12o doT +_13o tReT +_14o katorT +_15o kinT +_16o sET +_10o dET +_20o bint +_30o trent +_40o kwarant +_50o Tinkwant +_60o siSant +_70o sEtant +_80o gwitant +_90o noBant -_1Xo DeTi -_2Xo Binti +_1Xo deTi +_2Xo binti _3Xo trentaI _4Xo kwarantaI _5Xo TinkwantaI @@ -153,21 +153,16 @@ _6Xo siSantaI _7Xo sEtantaI _8Xo gwitantaI _9Xo noBantaI -_1Co TEnt'en -_2Co dosTEnt'en -_3Co tresTEnt'en -_4Co kw,atroTEnt'en -_5Co T,inkoTEnt'en -_6Co seIsTEnt'en -_7Co sjEtTEnt'en -_8Co gw,eItoTEnt'en -_9Co nweUTEnt'en +_0Co Tent +_1Co TEnt +_2Co dosTEnt +_3Co tresTEnt +_6Co seIsTEnt +_7Co sjEtTEnt +_8Co gw,eItoTEnt +_9Co nweUTEnt -_0M1o mil'en -_0M2o mil^on'en -_1M2o mil^on'en -_0M4o bil^on'en -_1M4o bil^on'en +_0M1o mil // characters @@ -208,8 +203,13 @@ lo $u la $u los $u las $u +ro $u +ra $u +ros $u +ras $u ne $u nes $u + me $u te $u se $u @@ -236,13 +236,10 @@ tu $u sin $u su $u ye $u -ro $u -ra $u -ros $u -ras $u el $u es $u els $u +ers $u mis $u tus $u sus $u @@ -250,6 +247,7 @@ bell $u bel $u bella $u bells $u +bels $u bellas $u bellos $u que $u @@ -261,25 +259,15 @@ 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 +ibi $u bi $u i $u+ ie $u hu $u sant $u -donya $u -don $u -se'n sen $u //abbreviations diff --git a/dictsource/bn_list b/dictsource/bn_list new file mode 100755 index 00000000..25132df2 --- /dev/null +++ b/dictsource/bn_list @@ -0,0 +1,263 @@ +// Translation rules for Bengali +// This file is UTF8 encoded + +// Numbers + devanagari numbers are changed to latin characters before translation +_0 S'unjO +_1 '&k +_2 duj +_3 t'in +_4 tS'ar +_5 p'a~tS +_6 tS#'Oj +_7 S'at +_8 'at.# +_9 n'Oj + +_10 d'OS +_11 '&garo +_12 b'aro +_13 t'ero +_14 tS'owddo +_15 p'Onero +_16 S'olo +_17 S'Otero +_18 'at.#aro +_19 'uniS + +_20 b'iS // ?? +_21 'ekuS +_22 b'ajS +_23 t'ejS +_24 tS'ObbiS +_25 p'O~tSiS +_26 tS#'ObbiS +_27 S'ataS +_28 'at.#aS +_29 'untriS + +_30 t'iriS +_31 'ektriS +_32 b'OtriS +_33 t'etriS +_34 tSowtriS +_35 pO~jtriS +_36 tS#'OtriS +_37 S'a~itriS +_38 'at.riS +_39 'unOtSOlliS + +_40 tS'OlliS +_41 'ektSOlliS +_42 b'ialliS +_43 t'etalliS +_44 tS'oalliS +_45 p'O~jtalliS +_46 tS'etSOlliS +_47 S'atSOllis +_48 'atSOlliS +_49 'unOpO~tSaS + +// numbers above 50 need to be corrected +_50 p'O~tSaS +_5X p'O~tSaS +_59 'unOsat. + +_60 s'at. +_6X s'at. +_69 'unOS'OttOr + +_70 S'OttOr +_7X S'OttOr +_79 'unOaSi + +_80 'aSi +_8X 'aSi +_89 'unOnObbOj + +_90 n'ObbOj +_9X n'ObbOj + +_0C S'o +_0M1 h'ajar +_0M2 l'ak# +_0M3 k'ot.i +_0M4 'Orbud +_dpt dOsomik + + +// Single consonants +ক kO +খ k#O +গ gO +ঘ g#O +ঙ 'uNO +চ tSO +ছ tShO // [h] to distinguish from [tS] +জ JO +ঝ J#O +ঞ 'iNO +ট t.O +ঠ t.#O +ড d.O +ঢ d.#O +ণ m'odd#ennO +ত tO +থ t#O +দ dO +ধ d#O +ন d'ontennO +প pO +ফ p#O +ব bO +ভ b#O +ম mO +য় Oj +য ontostedZ'O +র rO +ঢ় hrO +ল lO +শ taleboS:O +ষ mud#en:oS:O +স d'onteS:O +হ hO +ৎ kh'Ond.otO + +// full vowels +অ SOro'O +আ SOro'a +ই hrOS:o'i +ঈ dirg#o'i +উ hrOS:o'u +ঊ dirg#o'u +ঋ ri +এ e +ঐ oj +ও o +ঔ ow + +// combining vowel signs +া 'akar +ি r'oS:ikar +ী d'irg#ikar +ূ r'oS:ukar +ু d'irg#ukar +ৃ r'ikar +ে 'ekar +ৈ 'ojkar +ো 'okar +ৌ 'owkar + +// signs +্ h'OSonto +ং 'OnuSSOr +ঃ b'iSOrgo +ঁ tS'Ondrobindu +় b'indu + + +// Punctuation +। dVn.d.V + + +// Pronouns +আমি $u // main: I +আমায় $u +আমার $u + +আমরা $u // we +আমাদের $u + +আপনি $u // you(formal) +আপনাকে $u +আপনার $u + +তুমি $u // you (informal) +তোমায় $u +তোমার $u +তোমাদের $u + +তুই $u // you (informal) +তোকে $u +তোর $u + +এ $u // he/she/it +আপনি $u +এটার $u +এর $u + +ইনি $u // they +এনাকে $u +এনার $u + +ও $u // he/she/it +সে $u +ওর $u +তার $u + +ওরা $u // they +তারা $u +ওদের $u // unheṃ: them +তাদের $u + +এই $u // e:I this/it +এটা $u // e:ta: this/it +এটার $u // e:ta:'r this/it +এর $u // e:r this/it + +ওটা $u // o:ta: that +ওটাকে $u // o:ta:ke: to that +ওটার $u // o:ta:'r of that + +ওগুলো $u // o:gu:lo: those +ওগুলোকে $u // o:gu:lo:ke: to those +ওগুলোর $u // o:gu:lo:'r of those + + + +// Prepositions/Postpositions +মধ্যে $u // moddhe in +উপর $u // upor on, above +নীচে $u // niche below + +পূর্ব্বে $u // purbe before, prior +পর্য্যন্ত $u // parjonto till +অব্দি $u // abdi till +বিনা $u // bina without + + + +// Questions +কেন $u $pause // kano why interrogative particle +কি $u $pause // ki what +কোথায় $u $pause // kothaay where +কখন $u $pause // kakhon when +কে $u $pause // ke who + +// Conjunctions + +এবং $u $pause // ebong: and +আর $u $pause // aar: and +অথবা $u $pause // athoba: or +কিন্তু $u $pause // kintu: but +যদি $pause // jodi: if +তবু $pause // tobu: still, yet +তবে $pause // tabe: if...then +অথচ $u // athacho: yet + + +// Verbs + +হয় $u + + +ছিল $u // chilo: past aux +ছিলেন $u // chilen + + +করছি $u // korchi: continuous +করছিলাম $u // korchilam: past indefinite +করেছি $u // korechi: past + + +// Exceptions diff --git a/dictsource/bn_rules b/dictsource/bn_rules new file mode 100755 index 00000000..bd8dd554 --- /dev/null +++ b/dictsource/bn_rules @@ -0,0 +1,402 @@ + +// This file is UTF8 encoded + +// letter groups: +// A vowel letters and vowel signs +// B vowel signs and virama ् +// C consonants +// Y vowel letters and vowel signs + + + +.replace + ০ 0 + ১ 1 + ২ 2 + ৩ 3 + ৪ 4 + ৫ 5 + ৬ 6 + ৭ 7 + ৮ 8 + ৯ 9 + + +// Vowels + + +.group অ + অ V + অঁ O~ + + +.group আ + আ a + আঁ a~ + +.group ই + ই i + ইঁ i~ + + +.group ঈ + ঈ i + ঈঁ i~ + + +.group উ + উ u + উঁ u~ + + +.group ঊ + ঊ u + ঊঁ u~ + +.group ঋ + ঋ ri + ঋঁ ri~ + +.group ঌ + ঌ l- + + +.group এ + এ & + এঁ &~ + + +.group ঐ + ঐ oj + ঐঁ o~j + + +.group এ + এ e + এঁ e~ + + +.group ও + ও o + ওঁ o~ + + +.group ঔ + ঔ ow + ঔঁ o~w + +.group ও //?? + ও o: + + + + +// Vowel Signs + +.group া + া a + াঁ a~ + +.group ি + ি i + িঁ i~ + +.group ী + ী i + ীঁ i~ + +.group ূ + ূ u + ূঁ u~ + +.group ু + ু u + ুঁ u~ + +.group ৃ + ৃ ri + ৃঁ ri~ + + +.group ে + ে e + েঁ e~ + েউ ew + + +.group ৈ + ৈ oj + ৈঁ o~j + +.group ো + ো o + োঁ o~ + +.group ৌ + ৌ ow + ৌঁ o~w + + + + +// Consonants + +.group ক + ক kV + ক (B k + ক (_ k + + +.group খ + খ k#V + খ (B k# + খ (_ k# + + +.group গ + গ gV + গ (B g + গ (_ g + + +.group ঘ + ঘ g#V + ঘ (B g# + ঘ (_ g# + + +.group ঙ + ঙ NV + ঙ্ (B N + ঙ্ (_ N + + +.group চ + চ tSV + চ (B tS + চ (_ tS + + +.group ছ + ছ tS#V + ছ (B tS# + ছ (_ tS# + + +.group জ + জ JV + জ (B J + জ (_ J + + জ্ব JV + জ্ব (B J + জ্ঞ ggo~ + জ্ঞ (B gg + + +.group ঝ + ঝ J#V + ঝ (B J# + ঝ (_ J# + + +.group ঞ + ঞ nV + ঞ্ (B n + ঞ্ (_ n + + +.group ট + ট t.V + ট (B t. + ট (_ t. + + +.group ঠ + ঠ t.#V + ঠ (B t.# + ঠ (_ t.# + + +.group ড + ড d.V + ড (B d. + ড (_ d. + + ড় r.V // nukta + ড় (B r. + +.group ঢ + ঢ d.#V + ঢ (B d.# + ঢ (_ d.# + + +.group ণ + ণ nV // should be [n.] if adjacent to t. or d. ? + ণ (B n + ণ (_ n + + + +.group ত + ত tV + ত (B t + ত (_ t + + +.group থ + থ t#V + থ (B t# + থ (_ t# + + +.group দ + দ dV + দ (B d + দ (_ d + + +.group ধ + ধ d#V + ধ (B d# + ধ (_ d# + + +.group ন + ন nV + ন (B n + ন (_ n + + +.group প + প pV + প (B p + প (_ p + + +.group ফ + ফ fV // or [p#] ? + ফ (B f + ফ (_ f + + +.group ব + ব bV + ব (B b + ব (_ b + + +.group ভ + ভ b#V + ভ (B b# + ভ (_ b# + + +.group ম + ম mV + ম (B m + ম (_ m + + +.group য় + য় jV + য় (B j + য় (_ j + + +.group য + য dZV + য (B dZ + য (_ dZ + + য় jV // nukta + য় (B j + @) য় (_ j + + +.group র + র rV + র (B r + র (_ r + ্) র (_ rV + + +.group ল + ল lV + ল (B l + ল (_ l + + + +.group শ + শ SV // or [s] ? + শ (B S + শ (_ S + + + শ (্ল s + + +.group ষ + ষ SV + ষ (B S + ষ (_ S + + +.group স + স SV // or [s] ?? + স (B S + + স (্থ s + স (্ত s + + _) স্ব SV // shb + _) স্ব (B S + + +.group হ + হ hV + হ (B h + হ (_ h + + +.group হ্ব + হ্ব vV + হ্ব (B v + হ্ব (_ v + + +.group ৎ + ৎ t + + +.group ড় + ড় r.V + ড় (B r. + +.group ঢ় + ঢ় r.V + ঢ় (B r. + + + +.group ঁ + ঁ O~ // candrabindu, nasalize the previous vowel + +.group ং + ং N // anusvara/onushshor + +.group ঃ // visarga/bishorgo + ঃ // doubles the following consonant + ঃ (_ H + +.group ্ // virama/hoshonto + ্ + +.group ় + ় // nukta, modifies a consonant + + + + diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index aa23f7d3..a8676a90 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -68,18 +68,16 @@ s; t t; tS ts v x z Z z; -Dictionary bn_dict 2013-03-09 +Dictionary bn_dict 2013-03-22 -@ 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 +& a a~ e e~ i i~ l- +o O o: O~ o~ 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 +: b b# d d# d. d.# dZ +f g g# h H j J J# +k k# l m n N n. p +p# r r. s S t t# t. +t.# tS tS# v w ~ Dictionary bo_dict 2013-03-09 @@ -185,7 +183,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-03-20 +Dictionary en_dict 2013-03-22 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -333,7 +331,7 @@ m n N p r s S t tS v z Z -Dictionary hu_dict 2013-03-21 +Dictionary hu_dict 2013-03-22 a A a: e E e: i i: o o: u u: Y y y: Y: diff --git a/dictsource/en_list b/dictsource/en_list index c3f21695..b6927dbc 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -3032,6 +3032,7 @@ Altrincham O:ltrIN@m Anglesey aNg@Lsi Argyle A@g'aIl Argyll A@g;aIl +Armagh A@m'A: Bacup beIk@p Berwick bErIk Betws bEtUs diff --git a/dictsource/en_rules b/dictsource/en_rules index ae1aae23..ec9a1374 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -5252,7 +5252,7 @@ te (rrest t2@ r) tga (g gI @) t (ia S - s) t (l ? + s) t (l to (morr t@ _) to (nn tV t (ooth t2 diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 299801b1..86932af1 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -955,7 +955,6 @@ bagate) ll (iz l szí) n (ját n szí) n (józan n nyj n^n^ - _) nem (- nEm // has $combine attribute in hu_list, combine with the next word me) nny (ország n^ pihe) nj (_S2 n^ @@ -1038,6 +1037,9 @@ boszorká) ny (jelet n^ legé) ny (jár n^ szé) n (jelek n teljesítmé) ny (j n^ + nem-lts n'Em||_!'Ellt,e:,ES //without this rule Espeak spokening the nem LTS text with one word, because general in hu_list have a $combine attribute the nem word. + + n'Em _!'Ellt,e:,ES .group o o o @@ -1928,6 +1930,7 @@ szögle) t (szob t _robo) t (szoftve t diva) t (cirk t álla) t (cirk t + szen) t (szob t .group tj C) tj c @@ -2515,3 +2518,4 @@ csatlako) z (tok s ç tS ñ n^ ø Y + diff --git a/espeak-data/voices/asia/pa b/espeak-data/voices/asia/pa index 2ce846b7..4cd585d1 100755 --- a/espeak-data/voices/asia/pa +++ b/espeak-data/voices/asia/pa @@ -1,2 +1,2 @@ -name punjabi-test +name punjabi language pa diff --git a/espeak-data/voices/europe/fr-be b/espeak-data/voices/europe/fr-be index c2bb5357..4a741820 100755 --- a/espeak-data/voices/europe/fr-be +++ b/espeak-data/voices/europe/fr-be @@ -1,4 +1,4 @@ -name french (Belgium) +name french-Belgium language fr-be language fr 8 gender male diff --git a/espeak-data/voices/europe/nl b/espeak-data/voices/europe/nl index 6a8d5efd..beef33fa 100755 --- a/espeak-data/voices/europe/nl +++ b/espeak-data/voices/europe/nl @@ -1,3 +1,3 @@ language nl -name dutch-test +name dutch gender male diff --git a/phsource/compile_report b/phsource/compile_report index a2e4e298..9c2abf10 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -24,7 +24,7 @@ consonants 11 119 fr-ca 11 146 nl 35 130 hi 57 149 - bn 5 149 + bn 12 152 ne 18 157 ur 6 149 pa 15 151 @@ -1554,6 +1554,7 @@ vowel/@_2 [@:] vi [V] sq [@/] sq [V] tt +vowel/&_2 [&] bn vowel/@_3 [@#] en [@] en-sc [I] en-sc @@ -1748,14 +1749,13 @@ vowel/aa_8 [0] en-us vowel/aa_9 [a] fi [a] et [a:] hi - [a:] bn + [a] bn [a] ne [a] pa [a] ak [a] mt [A] kk vowel/@_bck [@] hi - [@] bn [V] ne [@/] ne [@] ur @@ -1772,6 +1772,7 @@ vowel/e [e] base [e:] af [e:] cy [e:] ga + [e] bn [e] ne [e] ta [e:] ta @@ -1998,6 +1999,7 @@ vowel/i#_5 [y] pt-pt [i/] pt-pt [y] ro vowel/i_6 [i] hi + [i] bn [i] ta [i] kn [i] ml @@ -2102,7 +2104,6 @@ vowel/@_low [@] en-rp [@] hi [V] hi [@2] hi - [@] bn [V] ne [@/] ne [@] ur @@ -2125,6 +2126,7 @@ vowel/o [o] base2 [o:] et [o] fr [o] hi + [o] bn [o:] pa [o] ta [o:] ta @@ -2152,7 +2154,6 @@ vowel/o [o] base2 [o] kl vowel/o_2 [o:] cy [o:] hi - [o:] bn [o:] hu [o:] la [o:] no @@ -2257,7 +2258,8 @@ vowel/oo_4 [O] base2 [O] pa [O] it [O] an -vowel/oo_5 [O] pl +vowel/oo_5 [O] bn + [O] pl [O] is [O] sq vowel/oo_en [O] en @@ -2286,6 +2288,7 @@ vowel/u [u] base [u1] ga [u:] de [u] eo + [u] bn [u] ml [u:] ml [U] lt diff --git a/phsource/ph_bengali b/phsource/ph_bengali new file mode 100755 index 00000000..efb46a97 --- /dev/null +++ b/phsource/ph_bengali @@ -0,0 +1,90 @@ + +//==================================================== +// Bengali, inherits from Hindi +//==================================================== + + +phoneme V // inherent vowel, can be [O] or [o] + vowel flag1 starttype #o endtype #o + length 200 + + IF thisPh(isFirstVowel) THEN + IF nextVowel(i) OR nextVowel(u) THEN + ChangePhoneme(o) + ENDIF + + IF prevPhW(r) THEN + ChangePhoneme(o) + ENDIF + ENDIF + + ChangePhoneme(O) +endphoneme + + +phoneme a + vowel starttype #a endtype #a + length 225 + FMT(vowel/aa_9) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 200 + FMT(vowel/i_6) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 200 + FMT(vowel/u) +endphoneme + + +phoneme e + vowel starttype #e endtype #e + length 200 + FMT(vowel/e) +endphoneme + + +phoneme & + vowel starttype #a endtype #a + length 200 + FMT(vowel/&_2) +endphoneme + + +phoneme o + vowel starttype #o endtype #o + length 200 + IF nextPhW(w) THEN + length 160 + ENDIF + FMT(vowel/o) +endphoneme + + +phoneme O + vowel starttype #o endtype #o + length 200 + FMT(vowel/oo_5) +endphoneme + + +phoneme tS + import_phoneme base/tS +endphoneme + + +phoneme tS# + import_phoneme base/tS +endphoneme + + +phoneme ~ + virtual +endphoneme + diff --git a/phsource/ph_punjabi b/phsource/ph_punjabi new file mode 100644 index 00000000..26ceaf84 --- /dev/null +++ b/phsource/ph_punjabi @@ -0,0 +1,96 @@ + +phoneme + // high tone, use after a vowel + stress + Tone (5, 30, envelope/p_512, NULL) +endphoneme + +phoneme @ + vowel starttype #@ endtype #@ + length 130 + IF nextPh(H) THEN + FMT(vowel/@_low) + ENDIF + FMT(vowel/@_bck) +endphoneme + +phoneme V + vowel starttype #@ endtype #@ + length 130 + ChangeIfNotStressed(@) + IF nextPh(H) THEN + FMT(vowel/@_low) + ENDIF + FMT(vowel/V_3) +endphoneme + + +phoneme i + vowel long starttype #i endtype #i + length 220 + IfNextVowelAppend(;) + FMT(vowel/i_fnt) +endphoneme + +phoneme I + vowel starttype #i endtype #i + length 150 + IfNextVowelAppend(;) + FMT(vowel/ii_3) +endphoneme + +phoneme e + vowel long starttype #e endtype #e + length 220 + FMT(vowel/e_2) +endphoneme + +phoneme E + vowel long starttype #e endtype #e + length 200 + FMT(vowel/ee_2) +endphoneme + +phoneme a + vowel long starttype #a endtype #a + length 220 + FMT(vowel/aa_9) +endphoneme + +phoneme O + vowel long starttype #o endtype #o + length 200 + FMT(vowel/oo_4) +endphoneme + +phoneme o: + vowel long starttype #o endtype #o + length 220 + FMT(vowel/o) +endphoneme + + +phoneme U + vowel starttype #u endtype #u + length 150 + FMT(vowel/uu_bck) +endphoneme + + +phoneme u + vowel long starttype #u endtype #u + length 220 + FMT(vowel/u_bck) +endphoneme + + +phoneme eI // for English words + import_phoneme en/eI +endphoneme + + +// Consonants + +phoneme v // Try English [v] + import_phoneme base/v +endphoneme + diff --git a/phsource/vowel/oo_5 b/phsource/vowel/oo_5 index ad18bde57f1758ffce88f91276ba18a32182cad7..98b4651acf161458928c1b2104abc0f74480eb91 100644 GIT binary patch delta 1208 zcmb7@%}X0W7{;G@H_}<%EDQZWOlk{(5Tu9V)q_;KRiV%iZHf5ozo((i)e~6HxP+PR9LBC#d*RF6sbsStgKuRtg?>mkhiv@*px$DTbGZUlaJC1C+Hp;c^ zGYh5Re`S=0;fM&fa?p;1daw`#JXeMzLC^=viX7L2r69Uv^+`OpAll9g%a59SV)>EF zHZ6!9|9g)g?Yo8_A_<4-$JKuP7#T{&DwJl%Ydlu9_@OQ`Ue8oe&!jV6b-$r%Wc<{7 hN2f-{TmC9qR>nhVWL%{q$Yx!gMGy}{hxq3x0}q)X zSn5f=c(ESTt01X$!k8P(QkWGKVK8*g(@@J0?Zty&OPVhMZx8R`dwx9MZ#Gm4vJ{qDCeu#64!%1@W3f?Dd_X5TArK z7X*L<0pLIY*bvG6w<0H_WqDD#tjx;2%FnnsP&EH;?Ly;1YfG>}mPw`svZJ-eV`hYc z6gdZEw{MDqEC}yiAjI#0`27xu-*1E5l!l^S`L}XJEvswlnAUH8&xU4t*e^^N9DTs!zNxiNU-&@1x`-*iG} zZ8Zzc?!BK6j$47R)suNshT?LsHr!d_+QPqgender],v->name,v->identifier); + for(j=0; j < sizeof(buf); j++) + { + // replace spaces in the name + if((c = v->name[j]) == ' ') + c = '_'; + if((buf[j] = c) == 0) + break; + } + fprintf(f_out,"%2d %-12s%s%c %-20s %-13s ", + p[0],lang_name,age_buf,genders[v->gender],buf,v->identifier); } else { diff --git a/src/speak.cpp b/src/speak.cpp index 559d7d18..e1fa4b55 100644 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -160,13 +160,16 @@ void DisplayVoices(FILE *f_out, char *language) const char *p; int len; int count; + int c; + int j; const espeak_VOICE *v; const char *lang_name; char age_buf[12]; + char buf[80]; const espeak_VOICE **voices; espeak_VOICE voice_select; - static char genders[4] = {' ','M','F',' '}; + static char genders[4] = {'-','M','F','-'}; if((language != NULL) && (language[0] != 0)) { @@ -182,7 +185,7 @@ void DisplayVoices(FILE *f_out, char *language) voices = espeak_ListVoices(NULL); } - fprintf(f_out,"Pty Language Age/Gender VoiceName File Other Langs\n"); + fprintf(f_out,"Pty Language Age/Gender VoiceName File Other Languages\n"); for(ix=0; (v = voices[ix]) != NULL; ix++) { @@ -200,8 +203,16 @@ void DisplayVoices(FILE *f_out, char *language) if(count==0) { - fprintf(f_out,"%2d %-12s%s%c %-17s %-11s ", - p[0],lang_name,age_buf,genders[v->gender],v->name,v->identifier); + for(j=0; j < sizeof(buf); j++) + { + // replace spaces in the name + if((c = v->name[j]) == ' ') + c = '_'; + if((buf[j] = c) == 0) + break; + } + fprintf(f_out,"%2d %-12s%s%c %-20s %-13s ", + p[0],lang_name,age_buf,genders[v->gender],buf,v->identifier); } else { diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 7eda9693..f9c2c8f7 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.03a 21.Mar.13"; +const char *version_string = "1.47.03b 22.Mar.13"; const int version_phdata = 0x014701; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index aeea1a93..fe5b5867 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -539,9 +539,10 @@ Translator *SelectTranslator(const char *name) tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable tr->letter_bits_offset = OFFSET_BENGALI; SetIndicLetters(tr); // call this after setting OFFSET_BENGALI + SetLetterBitsRange(tr,LETTERGP_B,0x01,0x01); // candranindu SetLetterBitsRange(tr,LETTERGP_F,0x3e,0x4c); // vowel signs, but not virama - tr->langopts.numbers = 0x1; + tr->langopts.numbers = NUM_SWAP_TENS; tr->langopts.break_numbers = 0x24924aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi } break; diff --git a/src/voices.cpp b/src/voices.cpp index 8fa66944..be7da4f4 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -603,7 +603,7 @@ voice_t *LoadVoice(const char *vname, int control) static const char *voices_asia = "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; static const char *voices_europe = - "an bg bs ca cs cy da el es et fi fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; + "an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; strncpy0(voicename, vname, sizeof(voicename)); @@ -1227,10 +1227,10 @@ static int ScoreVoice(espeak_VOICE *voice_spec, const char *spec_language, int s p = voice->languages; // list of languages+dialects for which this voice is suitable - if(strcmp(spec_language,"mbrola")==0) + if(spec_n_parts < 0) { - // only list mbrola voices - if(memcmp(voice->identifier,"mb/",3) == 0) + // match on the subdirectory + if(memcmp(voice->identifier, spec_language, spec_lang_len) == 0) return(100); return(0); } @@ -1363,6 +1363,7 @@ static int SetVoiceScores(espeak_VOICE *voice_select, espeak_VOICE **voices, int int lang_len=0; espeak_VOICE *vp; char language[80]; + char buf[sizeof(path_home)+80]; // count number of parts in the specified language if((voice_select->languages != NULL) && (voice_select->languages[0] != 0)) @@ -1375,6 +1376,26 @@ static int SetVoiceScores(espeak_VOICE *voice_select, espeak_VOICE **voices, int n_parts++; } } + + if((n_parts == 1) && (control & 1)) + { + if(strcmp(language, "mbrola") == 0) + { + language[2] = 0; // truncate to "mb" + lang_len = 2; + } + + sprintf(buf, "%s/voices/%s", path_home, language); + if(GetFileLength(buf) == -2) + { + // A subdirectory name has been specified. List all the voices in that subdirectory + language[lang_len++] = PATHSEP; + language[lang_len] = 0; + n_parts = -1; + } + + } + // select those voices which match the specified language nv = 0; for(ix=0; ixlanguages[0] != 0) && (strcmp(&v->languages[1],"variant") != 0) && (memcmp(v->identifier,"mb/",3) != 0)) + if((v->languages[0] != 0) && (strcmp(&v->languages[1],"variant") != 0) + && (memcmp(v->identifier,"mb/",3) != 0) && (memcmp(v->identifier,"test/",5) != 0)) { voices[j++] = v; } From 9ce297b0cb9e0f5849a0f4dba1da3f7c63d01dd4 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sat, 23 Mar 2013 11:39:53 +0000 Subject: [PATCH 17/23] 1.47.03b (from http://espeak.sourceforge.net/test/latest.html) --- espeak-data/voices/test/nci | 2 +- phsource/ph_portugal | 17 ----------------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/espeak-data/voices/test/nci b/espeak-data/voices/test/nci index d0864f3d..6ce7eee4 100644 --- a/espeak-data/voices/test/nci +++ b/espeak-data/voices/test/nci @@ -1,4 +1,4 @@ -name nahuatl - classical +name nahuatl-classical language nci gender male diff --git a/phsource/ph_portugal b/phsource/ph_portugal index 37f51ed7..df714512 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -133,23 +133,6 @@ phoneme w endphoneme -phoneme x // [r] for Portugal - liquid - trill - ipa ʁ - lengthmod 7 - Vowelin f1=0 f2=1500 -400 400 f3=-400 80 - IF nextPh(isNotVowel) THEN - ChangePhoneme(r/) - ENDIF - FMT(vwl_fr/@R) addWav(r3/rx, 120) -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 From 61edd2d38fc2967559cf7ea0b3d5c5dd9fd76fcd Mon Sep 17 00:00:00 2001 From: jonsd Date: Tue, 26 Mar 2013 00:00:23 +0000 Subject: [PATCH 18/23] [1.47.03c] Phoneme definition files: added prev2PhW() and next3PhW(). Added language: ms (Malay). git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@332 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/bn_list | 29 +- dictsource/bn_rules | 68 ++-- dictsource/dict_phonemes | 178 ++------- dictsource/en_list | 28 +- dictsource/en_rules | 1 + dictsource/kl_list | 112 ++++++ dictsource/kl_rules | 182 +++++++++ dictsource/ms_list | 784 +++++++++++++++++++++++++++++++++++++++ dictsource/ms_rules | 233 ++++++++++++ dictsource/pa_list | 246 ++++++++++++ dictsource/pa_rules | 469 +++++++++++++++++++++++ dictsource/pt_list | 45 ++- dictsource/pt_rules | 86 ++--- dictsource/sw_rules | 2 +- dictsource/zhy_rules | 2 +- docs/phontab.html | 34 +- phsource/compile_report | 267 +------------ phsource/mbrola/id1 | 42 ++- phsource/ph_bengali | 4 + phsource/ph_indonesian | 52 ++- phsource/phonemes | 82 ++-- phsource/vwl_fr/trr | Bin 1265 -> 1265 bytes src/compiledata.cpp | 20 +- src/compiledict.cpp | 10 +- src/dictionary.cpp | 4 +- src/numbers.cpp | 36 +- src/readclause.cpp | 4 +- src/synthdata.cpp | 18 +- src/tr_languages.cpp | 5 +- src/translate.cpp | 11 +- src/translate.h | 1 + src/voices.cpp | 4 +- 32 files changed, 2436 insertions(+), 623 deletions(-) create mode 100755 dictsource/kl_list create mode 100755 dictsource/kl_rules create mode 100755 dictsource/ms_list create mode 100755 dictsource/ms_rules create mode 100755 dictsource/pa_list create mode 100755 dictsource/pa_rules diff --git a/dictsource/bn_list b/dictsource/bn_list index 25132df2..c7c52e38 100755 --- a/dictsource/bn_list +++ b/dictsource/bn_list @@ -16,22 +16,22 @@ _9 n'Oj _10 d'OS _11 '&garo -_12 b'aro -_13 t'ero -_14 tS'owddo -_15 p'Onero -_16 S'olo -_17 S'Otero -_18 'at.#aro +_12 b'arO +_13 t'erO +_14 tS'owddO +_15 p'OnerO +_16 S'olO +_17 S'OterO +_18 'at.#arO _19 'uniS -_20 b'iS // ?? +_20 k'uri // or b'iS ?? _21 'ekuS _22 b'ajS _23 t'ejS _24 tS'ObbiS _25 p'O~tSiS -_26 tS#'ObbiS +_26 tSh'ObbiS _27 S'ataS _28 'at.#aS _29 'untriS @@ -108,14 +108,17 @@ _dpt dOsomik ধ d#O ন d'ontennO প pO -ফ p#O +ফ fO // or [p#O] ? ব bO ভ b#O ম mO য় Oj য ontostedZ'O র rO -ঢ় hrO +ড় r.O +ড় r.O // (d. + nukta) +ঢ় hr.O +ঢ় hr.O // (d#. + nukta) ল lO শ taleboS:O ষ mud#en:oS:O @@ -124,8 +127,8 @@ _dpt dOsomik ৎ kh'Ond.otO // full vowels -অ SOro'O -আ SOro'a +অ O +আ a ই hrOS:o'i ঈ dirg#o'i উ hrOS:o'u diff --git a/dictsource/bn_rules b/dictsource/bn_rules index bd8dd554..64fb2305 100755 --- a/dictsource/bn_rules +++ b/dictsource/bn_rules @@ -136,57 +136,47 @@ ৌ ow ৌঁ o~w - - // Consonants .group ক ক kV ক (B k - ক (_ k .group খ খ k#V খ (B k# - খ (_ k# .group গ গ gV গ (B g - গ (_ g .group ঘ ঘ g#V ঘ (B g# - ঘ (_ g# .group ঙ ঙ NV ঙ্ (B N - ঙ্ (_ N .group চ চ tSV চ (B tS - চ (_ tS .group ছ ছ tS#V ছ (B tS# - ছ (_ tS# .group জ জ JV জ (B J - জ (_ J জ্ব JV জ্ব (B J @@ -197,142 +187,122 @@ .group ঝ ঝ J#V ঝ (B J# - ঝ (_ J# .group ঞ ঞ nV ঞ্ (B n - ঞ্ (_ n .group ট ট t.V ট (B t. - ট (_ t. .group ঠ ঠ t.#V ঠ (B t.# - ঠ (_ t.# .group ড ড d.V ড (B d. - ড (_ d. ড় r.V // nukta ড় (B r. + .group ঢ - ঢ d.#V - ঢ (B d.# - ঢ (_ d.# + ঢ d.#V + ঢ (B d.# + + ঢ় hr.V + ঢ় (B hr. .group ণ ণ nV // should be [n.] if adjacent to t. or d. ? ণ (B n - ণ (_ n .group ত ত tV ত (B t - ত (_ t .group থ থ t#V থ (B t# - থ (_ t# .group দ দ dV দ (B d - দ (_ d .group ধ ধ d#V ধ (B d# - ধ (_ d# .group ন ন nV ন (B n - ন (_ n .group প প pV প (B p - প (_ p .group ফ ফ fV // or [p#] ? ফ (B f - ফ (_ f .group ব ব bV ব (B b - ব (_ b .group ভ ভ b#V ভ (B b# - ভ (_ b# .group ম ম mV ম (B m - ম (_ m .group য় য় jV য় (B j - য় (_ j .group য য dZV য (B dZ - য (_ dZ য় jV // nukta য় (B j - @) য় (_ j .group র র rV র (B r - র (_ r - ্) র (_ rV .group ল ল lV ল (B l - ল (_ l .group শ শ SV // or [s] ? শ (B S - শ (_ S শ (্ল s @@ -341,7 +311,6 @@ .group ষ ষ SV ষ (B S - ষ (_ S .group স @@ -358,26 +327,25 @@ .group হ হ hV হ (B h - হ (_ h .group হ্ব হ্ব vV হ্ব (B v - হ্ব (_ v .group ৎ ৎ t -.group ড় - ড় r.V - ড় (B r. +.group ড় // can be ড plus nukta + ড় r.V + ড় (B r. + -.group ঢ় - ঢ় r.V - ঢ় (B r. +.group ঢ় // can be ঢ plus nukta + ঢ় hr.V + ঢ় (B hr. @@ -399,4 +367,14 @@ +.group + // obsolete letters + ঋ r- + ৠ r- + ঌ l- + ৡ l- + ৃ r- + ৄ r- + ৢ l- + ৣ l- diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index a8676a90..8da898bb 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -46,17 +46,6 @@ Q r R R2 s S t T t# tS w x -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 bg_dict 2013-03-16 @ a e i o u @@ -68,28 +57,17 @@ s; t t; tS ts v x z Z z; -Dictionary bn_dict 2013-03-22 +Dictionary bn_dict 2013-03-25 & a a~ e e~ i i~ l- -o O o: O~ o~ u u~ V +o O o: O~ o~ r- u u~ +V : b b# d d# d. d.# dZ f g g# h H j J J# k k# l m n N n. p -p# r r. s S t t# t. -t.# tS tS# v w ~ - - -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 +r r. s S t t# t. t.# +tS tS# v w ~ Dictionary ca_dict 2010-07-27 @@ -159,20 +137,6 @@ S t tS ts v w x z 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 el_dict 2011-05-19 a aI e i o oI u @@ -183,7 +147,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-03-22 +Dictionary en_dict 2013-03-25 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -321,16 +285,6 @@ q r r. s S s. t T t# t. t.# v w x 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 hu_dict 2013-03-22 a A a: e E e: i i: @@ -411,17 +365,6 @@ t# tS ts ts# v w x 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 kl_dict 2013-03-18 & 3 @ @- a aI e E @@ -530,18 +473,6 @@ r R r. R2 s s. S; t t# t. t.# tS v w 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 nci_dict 2010-01-20 a e i o O @@ -592,18 +523,6 @@ k l m n N p r R s S s; t v w x 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 pap_dict 2010-07-27 a a/ aI e E eI i o @@ -641,16 +560,7 @@ S s; S; t t; tS ts tS; ts; v w x z Z 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 pt_dict 2013-03-17 +Dictionary pt_dict 2013-03-25 & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU @@ -702,15 +612,16 @@ N n^ p q R s S S; t tS v w x z -Dictionary si_dict 2013-01-18 +Dictionary si_dict 2013-03-23 & &: @ 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 +#@ b b# d d# d. d.# dZ +f g g# h j k k# l +l. m m# n N n# N# n. +n.# n^ n^# p p# r s S +s. t t# t. t.# tS v w Dictionary sk_dict 2011-08-08 @@ -761,7 +672,7 @@ k l m n N p R s S s. S; sx t v w z -Dictionary sw_dict 2008-11-27 +Dictionary sw_dict 2013-03-23 @- a a/ e i m- n- N- o u @@ -785,31 +696,6 @@ Q r R s S s. t T t# t. tS v w z 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 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 tr_dict 2011-09-16 @ a e E i I o O @@ -821,17 +707,6 @@ p Q r R s S t tS v w 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 ur_dict 2013-03-13 @ a a: aI aU e E e: @@ -859,18 +734,6 @@ N n^ p Q s s. t t[ v w x z 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 zh_dict 2013-01-25 @ @r a A ai Au E ei @@ -885,7 +748,7 @@ s. S; t th ts ts. ts.h tS; tS;h tsh v w x X z. -Dictionary zhy_dict 2009-01-19 +Dictionary zhy_dict 2013-03-25 a aa aai aang aau ai au e ei eo eoi eu i iu o oe @@ -894,3 +757,14 @@ 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 ms_dict 2010-10-14 + +@ a aI aU e E E2 eI +i o O u + +* : ? b c d dZ f +g h j k l m n N +n^ p r R R2 s S t +tS v w x z diff --git a/dictsource/en_list b/dictsource/en_list index b6927dbc..2ae975c8 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -150,12 +150,14 @@ _¨ daIa#r'i:sIs _ª fEmI2nIn'O@dI2n@L _« lEft'gIl@mEt _­ makr0n +² tu: +³ Tri: +_¹ su:p@skrIptw'0n _² su:p@skrIptt'u: _³ su:p@skrIptT'ri: _´ a#kju:taksEnt _· mId@Ld0t _¸ sEd'Il@ -_¹ su:p@skrIptw'0n //_º maskjUlIn'O@dI2n@L _º dI2gr'i:z _» raIt'gIl@mEt @@ -943,7 +945,7 @@ blancmange bl@m0nZ blase blA:z'eI blasé blA:z'eI bleh blEh -blockade $2 +blockade bl0k'eId blouse blaUz bluest blu:@st blurry bl3:rI @@ -1279,6 +1281,7 @@ dais deIIs dandelion dandI2laI@n ddu DI $only // Welsh de d@ $only +(de jure) deIdZ'U@ri debacle deIb'A:k@L debrief di:br'i:f debris dEbri: @@ -1429,6 +1432,8 @@ ember Emb3 emphasis Emf@sIs $only empire $1 emu i:mju: +(en masse) 0n||m'as +(en route) 0n||r'u:t enroute 0nr'u:t ensemble 0ns'0mb@L entendre 0nt'0ndr@- @@ -1674,6 +1679,7 @@ hello h@loU henceforth hEnsfo@T ?3 herb 3:b hercules h3:kjUli:z +?3 hereford h3:f3d heretical hI2rEtI2k@L hereto hi@3'tu: heretofore hi@3t2Ufo@ @@ -1697,6 +1703,7 @@ holme hoUm holster hoUlst3 homeowner hoUmoUn3 homepage hoUmpeIdZ +homily h0m@li hominem h0mInEm ?3 hominem h0m@n@m hooah h'u:'A: @@ -1802,6 +1809,8 @@ interven Int3v'i:n // for intervening intray IntreI intro $1 ?3 investigative Inv,EstI2g'eItIv +ipad aIpad +iphone aIfoUn irate aIr'eIt iris aIrIs iron aI3n @@ -2822,6 +2831,7 @@ tonne tVn torment $1 torment $2 $verb tornado tO@n'eIdoU +torrential t@rEnS@L tortilla tO@t'i:a# touche tu:SeI $only toupee tu:peI @@ -2835,6 +2845,7 @@ trajectory tr@dZEkt@rI traverse $alt3 travesty trav@sti treatise tri:tIz +trebuchet trEbUSeI tremendous $alt3 triage tri:A:Z tribunal traIb'ju:n@L @@ -3337,6 +3348,7 @@ Tokyo toUkIoU Topeka toUp'i:k@ Toronto t@r0ntoU Toulouse tu:l'u:z +Trafalgar $alt3 ?3 Tunisia tu:n'i:Z@ Tripoli trIp@li tuareg twA@rEg @@ -3500,6 +3512,7 @@ Evette I2vEt Fainne fan;@ Freda fri:d@ Fírinne fi:rIn;@ +Gareth gar@T Gary gari Geraint gEraInt Gerhard ge@hA@t @@ -3672,6 +3685,7 @@ Susanne $2 Suzy su:zi Tatiana tatI'A:n@ ?3 Tatiana tA:tj'A:n@ +Terese t@reIz Theresa t@ri:z@ Therese t@ri:z Thomas t0m@s @@ -3762,9 +3776,7 @@ zhivago ZI2vA:goU -(de jure) deIdZ'U@ri -(en masse) ,0n||m'as -(en route) ,0n||r'u:t + (each of) i:tS||@v $pause (far more) f'A@_m,o@ (few more) f'ju:m,o@ @@ -3775,9 +3787,9 @@ zhivago ZI2vA:goU (most of) moUst||@v (such as) sVtS||_a#z $pause -(too few) t'u:||f,ju: -(too many) t'u:||m,Eni -(too much) t'u:||m,VtS +(too few) t'u:||fju: +(too many) t'u:||mEni +(too much) t'u:||mVtS //************************************************************************* // COMMON WORDS diff --git a/dictsource/en_rules b/dictsource/en_rules index ec9a1374..30a4b5cf 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -4315,6 +4315,7 @@ d) or (_ o@ _f) or (@ O@ _f) ore (A O@ + _f) ore (kn O@, f) or (k O@ _f) or (s@ %O@ ch) or (d O@ diff --git a/dictsource/kl_list b/dictsource/kl_list new file mode 100755 index 00000000..8db1c6a8 --- /dev/null +++ b/dictsource/kl_list @@ -0,0 +1,112 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Greenlandic + +b bE +c sE +d dE +f Ef +g ji +h ha +j jE +k ka +l El +m Em +n En +p pE +q qa +r Er +s Es +t tE +v vE +w wE +x iks +z zE + +// y +// æ +// ø +// å + +// Native numbers 0-10 +_0n n'u:lu +_1n at'a:sEq +_2n m'arluk +_3n p'iNasut +_4n s'isamat +_5n t'al#imat +_6n arf'inil#it +_7n arfinEqm'arluk +_8n arfinEqp'iNasut +_9n quliNil'uat +_10n q'ulit + +// Danish numbers +_0 'nOl +_1 'en +_2 t'o +_3 tR'e +_4 f'iV +_5 f'Em +_6 s'EQs +_7 s'yw +_8 'O:d@ +_9 n'i +_10 t'i +_11 'Elv@ +_12 t'Vl +_13 tR'&d@-n +_14 fj'ord@-n +_15 f'emt@-n +_16 s'ajsd@-n +_17 s'Wd@-n +_18 '&d@-n +_19 n'ed@-n +_2X t'y:w +_3X tR'&Dv@ +_4X f'W:V +_5X h&l't*Es +_6X t*'Es +_7X h&lfj'&rs +_8X f'irs +_9X h&lf'Ems +_0C h'un*@:D +_1C ed||h'unr@:D +_0M1 t'u:s@-n +_1M1 ed||t'u:s@-n +_1M2 'e:n||milij'o:n +_0M2 milij'o:nV +_1M3 'e:n||milij'a:d +_0M3 milij'a:d3 +_1M4 'e:n||bilij'o:n +_0M4 bilij'o:n3 + +_0and V +_dpt kom:a_ + +// ordinals are followed by a dot in Danish +_ord 3 + +// exceptions for ordinals +_1o fWrsd3 +_2o &n@n +_3o trEdj3 +_4o fjeV +_5o fEmt3 +_6o sjEd3 +_7o syvn3 +_8o Vtn3 +_9o ni@n3 +_10o ti@n3 +_11o Elfd3 +_12o tVlfd3 + +_2Xo t'yv@n@ // 25. +_3Xo tr'&ft@ //36. +_4Xo fWV'tyv@n@ // 42. +_5Xo h<*'Esenstyv@n@ // 52. +_6Xo tr'Esenstyv@n@ // 62. +_7Xo h&lfj'&rsenstyv@n@ // 72. +_8Xo firsenstyv@n@ // 82. +_9Xo h&lf'Emsenstyv@n@ // 95. + diff --git a/dictsource/kl_rules b/dictsource/kl_rules new file mode 100755 index 00000000..59c2a441 --- /dev/null +++ b/dictsource/kl_rules @@ -0,0 +1,182 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Greenlandic + + +// don't stress a vowel before these consonant clusters +.L01 ng nng + + +.group a + a a + a (CC 'a + a (L01 a + + ak (_ &g + ap (_ &p + at (_ &t + + aa a: + aar a: + aaq a: + + ai (_ aI + + + +.group b + b b + + +.group c + c k + c (e s + c (i s + + +.group d + d d + + +.group e + e E + e (CC 'E // a vowel before a consonant cluster is stressed + e (L01 E // ... except for these consonants + + ee E: + + +.group f + f f + ff f: + + +.group g + g Q + gg x: + gg (i C: + + +.group h + h h + hh h: + + +.group i + i i + i (CC 'i + i (L01 i + ii i: + + +.group j + j j + jj j: + + +.group k + k k + kk k: + + +.group l + l l + ll l# + + +.group m + m m + mm m: + + +.group n + n n + na na + naa na: + nn n: + ng N + nng N: + + +.group o + o o + o (CC 'o + o (L01 o + oo o: + + +.group p + p p + pp p: + + +.group q + q q + qq qq + + +.group r + r r + rr X: + rl rl# + +.group s + s s + ss s: + + +.group t + t t + t (i ts + i) t (_ tS; + tt t: + tl tl# + ts ts + + +.group u + u u + u (CC 'u + u (L01 u + uu u: + + +.group v + v v + vv v: + + +.group w + w w + + +.group x + x ks + + +.group y + y j + K) y (K i // not before or after a vowel + K) y (CC 'i + K) y (L01 i + + +.group z + z z + + +.group æ + æ & + + +.group ø + ø W + + +.group å + å O + + +.group + $ d'olar + diff --git a/dictsource/ms_list b/dictsource/ms_list new file mode 100755 index 00000000..47e49155 --- /dev/null +++ b/dictsource/ms_list @@ -0,0 +1,784 @@ +// Last updated: 14 October 2010, Jason Ong (jason@portalgroove.com) +// This file is UTF8 encoded +// Spelling-to-phoneme words for Malay + +a e: +b bi: +c si: +d di: +e i: +f Ef +g dZi: +h etS +i aI +j dZe +k ke +l El +m Em +n En +o o: +p pi: +q kju: +r ar +s Es +t ti: +u ju: +v vi: +w d'ab@liu: +x Eks +y waI +z zEd + + +// numeric +_0 k'osoN +_1 s'atu +_2 d'u@ +_3 t'ig@ +_4 '@mpat +_5 l'im@ +_6 '@nam +_7 t'udZ%oh +_8 l'apan +_9 s@mb'ilan +_10 s@p'uluh +_11 s'@b@las +_12 d'u@b@las +_13 t'ig@b@las +_14 '@mpatb@las +_15 l'im@b@las +_16 '@namb@las +_17 t'udZ%ohb@las +_18 l'apanb@las +_19 s@mb'ilanb@las +_2X d'u@puloh +_3X t'ig@puloh +_4X 'Empatpuloh +_5X l'im@puloh +_6X 'Enampuloh +_7X t'udZ%ohpuloh +_8X l'apanpuloh +_9X s@mb'ilanpuloh +_0C R'atus_| +_1C s@*'atus_| +_0M1 R'ibu_ +_1M1 s@r'ibu_ +_0M2 dZ'ut@_ +_1M2 s@dZ'ut@_ +_0M3 b'ili@n +_1M3 s@b'ili@n +_dpt _p'@rpul'uhan_ + + +_cap b'EsaR // after the letter +_?? k,odeh'uR2uf + +// accented letters +_lig d'aIgRaf +_acu akj'ut +_ac2 dub@lakj'ut +_brv bR2'i:v +_ced s@d'ila +_cir t'opi +_dia 'umlaUt +_dot d'Ot +_grv gR2'av +_hac h'atSEk +_mcn m'akR2On +_ogo 'OgonEk +_rng R2'iNg +_stk stR'ok +_tld t'ild@ + +// punctuation +_! t,anda||s'ER2u +_" t,andak'utip +£ ponst'E*RliN +% p@*Ratus +^ t,andat'opi +& d'an +_* b'intaN +_( k,uR2uN||b'uk@ +_) k,uR2uN||t'utup +__ g,aR2is||b'awah +_- t,andah'ubuN ++ c'ampor += s,am@||d'@Nan +_{ k,uR2uN||kuR2'awal +_} k,uR2uN||kuR2,awal||t'utup +_[ k,uR2uN||s'iku +_] k,uR2uN||s,iku||t'utup +_: t,iti?||d'u@ +_; t,iti?||k'om@ +@ a||k'EOng +_' k,utip||t'uNgal +~ t'ilde +# p'agaR +_< k,uR2aN||d'aR2i +_> l,Ebih||d'aR2i +_, k'om@ +_. t'iti? +_? t,and@||t'an^@ +/ stR2'ok +_\ 'bEkslES + + + + + +// exceptions +// (use phoneme [E2] for an unstressed 'e' which does not reduce to [@] ) + +bebek bEbE2? +becek bEtSE2? +//bekas $2 +perang $2 + + +// ABBREVIATIONS +//************** +abd 'abdul $dot +agenda ag'enda +bhd b'@Rhad $dot +cimb $abbrev +cm s@ntim'et@r +com d'Ot||kOm +(co ltd) k'amp@ni||lim'it@d +dr d'okt@R $dot +drp daR2ip'ad@ +dun d'un +dymm d'uli||jang||mah'a||m'uli@ +exco 'Eksko +en 'intSek $dot +felda f'elda +hb h,arib'ulan +hj h'adZi $dot +ir $abbrev $dot +klci $abbrev +km kilom'et@r +kol kol'on@l $dot +ltd lim'it@d $dot +m'sia malaysia $text +md moh'amad $dot +mm milim'et@r +mohd moh'amad $dot +mr m'ist@r $dot +mw m'egawat +pas p'a:s +pibg $abbrev +prof prof'es@r $dot +pte p'raiv@t +rm R'iNget +sdn s@ndiR2'ian $dot +sdr saUd'aR@ $dot +umno 'amno: +upm $abbrev +utk unto? +yab jang||amat||b@rh'ormat +yb jang||b@rh'ormat +ym jang|m'uli@ +yg jang + + +// MAIN WORD DICTIONARY +//********************* + +// e(pepet)-a +banteras bant'@Ras + membanteras m@mbant'@Ras +bedah b'@dah +bekas b'@kas +belah b'@lah + perbelanjaan p@Rb,@landZ'a|an + sebelah s@b'@lah +benar b'@nar + sebenar s@b'@nar +benda b'@nd@ + kecelaruan k@tS,@laR'uan +berhad b'@Rhad +besar b'@sar + membesar m@mb'@sar + pembesar p@mb'@sar + sebesar s@b'@sar + terbesar t@Rb'@sar +cegah tS'@gah + mencegah m@ntS'@gah + pencegah p@ntS'@gah +cepat tS'@pat + dipercepat dip@RtS'@pat + secepat s@tS'@pat +dekat d'@kat + terdekat t@Rd'@kat +demam d'@mam +denda d'@nd@ + didenda did'@nd@ +dengan d'@Nan +dengar d'@Nar + didengar did'@Nar + mendengar m@nd'@Nar +depan d'@pan + berdepan b@Rd'@pan +dera d'@R@ + pendera p@nd'@R@ +deras d'@Ras +desak d'@sak + mendesak m@nd'@sak + terdesak t@Rd'@sak +empat '@mpat +engkau '@NkaU +gelar g'@lar + bergelar b@Rg'@lar +gemar g'@mar + penggemar p@Ng'@mar +gesa g'@s@ + menggesa m@Ng'@s@ + tergesa t@Rg'@s@ +hendak h'@nda? + dikehendaki dik,@h@nd'aki + kehendak k@h'@nda? +kelas k'@las + sekelas s@k'@las +kemas k'@mas +keras k'@Ras + berkeras b@Rk'@Ras +kertas k'@Rtas +kesan k'@san + dikesan dik'@san +lembah l'@mbah +letak l'@tak + diletak dil'@tak +emak '@mak +emas '@mas +enam '@nam + keenam k@'@nam +enggan '@Ngan +gerak g'@ra? + bergerak b@Rg'@ra? + penggerak p@Ng'@ra? +jebak dZ'@bak + terjebak t@RdZ'@bak +jejas dZ'@dZas + terjejas t@RdZ'@dZas +jelas dZ'@las +kejar k'@dZar + dikejar dik'@dZar +kekal k'@kal +kelam k'@lam + mengembalikan m@N,@mbal'ikan +kembang k'@mbaN + mengembang m@N'@mbaN + perkembangannya p@Rk,@mbaN'ann^@ +kelak k'@lak +kena k'@n@ +kenal k'@nal + dikenal dik'@nal + terkenal t@Rk'@nal +kerap k@Rap +kerja k'@RdZ@ + bekerja b@k'@RdZ@ + bekerjasama b@k,@RdZ@s'am@ + kerjasama k@RdZ@s'am@ + pekerja p@k'@RdZ@ + sekerja s@k'@RdZ@ +kesal k'@sal + menyesal m@n^'@sal +kesan k'@san + berkesan b@Rk'@san + keberkesanan k@b,@Rk@s'anan +kesat k'@sat + mengesat m@N'@sat +lekas l'@kas + lelakinya l@lak'in^@ +lekat l'@kat + melekat m@l'@kat +lemah l'@mah +lembaga l@mb'aga + berperlembagaan b@Rp@Rl,@mbag'a|an +lengan l'@Nan +lepas l'@pas + berlepas b@Rl'@pas + terlepas t@Rl'@pas +letak l'@ta? + peletakan p@l@t'akan + terletak t@Rl'@tak +menang m'@naN + pemenang p@m'@naN +mentah m'@ntah +mesra m'@sR@ +pecah p'@tSah + berpecah b@Rp'@tSah +peka p'@k@ +pegang p'@gaN + dipegang dip'@gaN + memegang m@m'@gaN +pentas p'@ntas +pernah p'@rnah +pesat p'@sat +petang p'@taN +rendah R'@ndah + terendah t@R'@ndah +rentak R'@ntak + berentak b@R'@ntak +retak r'@tak + keretakan k@R@t'akan +rentak r'@ntak + serentak s@r'@ntak +sebak s'@ba? + kesebakan k@s@b'akan +sebentar s@b'@ntar +sedang s'@daN +sedar s'@dar + tersedar t@Rs'@dar +segera s@g'@R@ + disegerakan dis@g@R'@kan + menyegerakan m@n^,@g@R'@kan +sejahtera s@dZaht'@R@ + kesejahteraan k@s@dZ,aht@R'@an +sejak s'@dZak +sekat s'@kat + menyekat m@n^'@kat +selam s'@lam + penyelam p@n^'@lam + keselamatan k@s,@lam'atan +selaras s@l'aRas + keselarasan k@s@laR'asan +selepas s@l'@pas + kesesuaian k@s@su'aIan +sembah s'@mbah + persembahannya p@Rs,@mbah'ann^@ +sempat s'@mpat + berkesempatan b@Rk,@s@mp'atan +sempena s@mp'@n@ + beserta b@s'@Rt@ + peserta p@s'@Rt@ + sertai s@Rt'a|i +serang s'@RaN + diserang dis'@RaN + menyerang m@n^'@raN + penyerang p@n^'@raN +serba s'@Rb@ +tegang t'@gaN + bertegang b'@Rt@gaN +tegas t'@gas +tekak t'@kak + menekak m@n'@kak +tekan t'@kan + menekan m@n'@kan +telah t'@lah +teman t'@man +tempa t'@mp@ + ditempa dit'@mp@ + menempa m@n'@mp@ +tempah t'@mpah + menempah m@n'@mpah +tempat t'@mpat + bertempat b@rt'@mpat +tenang t'@naN + bertenang b@Rt'@naN +tengah t'@Nah + menengah m@n'@Nah + sesetengah s@s@t'@Nah +tengkar t'@Nkar + bertengkar b@Rt'@Nkar +tentang t'@ntaN + ditentang dit'@ntaN + menentang m@n'@ntaN + penentang p@n'@ntaN +tepat t'@pat + juruterbang dZuRut'@RbaN +teram t'@Ram + ketenteraman k@t@nt@R'aman +terkam t'@Rkam + diterkam dit'@Rkam + menerkam m@n'@Rkam +tetap t'@tap + bertetap b@Rt'@tap + menetap m@n'@tap + + +// exceptions +kehebatan k@heb'atan +dibelenggu dib@l'@Ngu +perbendaharaan p@Rb@nd,@haR'a|an +kejayaan k,@dZaj'a|an +galakan gal'akan +setong s@t'oN +aneh 'anE2h +menyelamatkan m@n^,@lam'atkan +//berbaur b@Rb'aUr +gementar g@m'@ntar +hebatnya hEb'atn^@ +diedarkan diEd'aRkan +//berkeliaran b@Rk@li'aRan +//bersebelahan b@Rs@b@l'ahan +//sebaik s@b'aIk +cedera tS@d'@R@ + kecederaan k@tS,@d@r'a|an + tercedera t@RtS@d'@R@ +//ekoran Ek'oRan +kekecewaan k@k,@tSew'a|an +//bermain b@Rm'aIn +//kedai k'@daI + //pekedai p@k'@daI +disertai dis@Rt'ai +persediaan p@Rs,@di'a|an +//bergaul b@Rg'aul +elakkan El'akkan +kebanyakan k@ban^'akan +anda 'anda +//berkepentingan b@Rk,@p@nt'iNan +//berleluasa b@Rl@lu'as@ +iaitu ja|'itu +masalah mas'alah +masakan mas'akan +mengelakkan m@NE2l'akkan +menyelesaikan m@n^,@l@s'aIkan +pergolakan p@Rgol'akan +perempuan p@R@mp'uan + perempuannya p@R,@mpu'ann^@ +pesta p'esta + berpesta b@Rp'esta + menyalah m@n^'alah +setengah s@t'@Nah +berpengalaman b@Rp@Nal'aman +kesemuanya k@s,@mu'@nn^@ +selesema s@l@s'@m@ +tindakan tind'akan +pesalah p@s'alah +wanita wan'ita +bersalah b@Rs'alah +//persetujuan p@Rs,@tudZ'uan +//persetujuannya p@Rs@tudZu'ann^@ +//keseluruhan k@s,@luR'ohan +memberitahu m@mb,@Rit'ahu +//persekutuan p@Rs,@kut'uan +tema t'Ema +kepercayaan k@p,@RtSaj'a|an +dendangan dEnd'aNan +peperiksaan p@p,@Reks'a|an +kebebasan k@bEb'asan +//cerai tS'@RaI +//berbaik b@Rb'aIk +menyembunyikan m@n^,@mbun^'ikan +bermesyuarat b@Rm,@Su'aRat +//pengetahuan p@N,@tah'uan +mengenai m@N@n'ai +penyelesaian p@n^,@l@s'aIan +diselesaikan dis,@l@s'aIkan +ditanya dit'an^@ +prestasi pREst'asi +pembelajaran p@mb,@ladZ'aRan +kepong k'@poN +demikian d@mik'ian +piket p'ikEt +kempennya kEmp'enn^@ +jentera dZ@nt'@R@ +perlembagaan p@Rl,@mbag'a|an +bersesuaian b@Rs,@su'aIan +bumiputera bumip'ut?Ra +kecemerlangan k@tS,@Rm@l'aNan +merdeka m@Rd'eka + kemerdekaan k@m,@Rdek'a|an +kelewatan k@lew'atan +menyelesaikannya m@n^@l@saIk'ann^@ + + +// english derived words +akta 'akta +album 'Elb@m +aspek 'aspE2k +balada bal'ada +digit di'dZit +digital didZ'it@l +doktor d'okt@r +dolar d'Ol@r +domestik dOm'Estik +entiti Ent'iti +flora fl'ora +frekuensi fRiku'@nsi +imej 'imedZ +indeks 'indEks +insentif ins'E2ntif +jean dZ'in +jeneral dZEn'@R@l +kabinet kEb'in@t +kamera kEm'@R@ +kes k'es +komponen komp'on@n +komprehensif kompRih'ensif +koroner koR'on@r +laser l'es@r +majoriti mEdZor'iti +meter m'it@r +muzik m'iuzek +muzium m'iuzi@m +nasional nESh'@n@l +negatif nEg'@tif +nostalgia nost'aldZja +november nov'Emb@r +oktober okt'ob@r +polis p'olis +personaliti p@Rs,@nal'iti +presiden pRE2s'id@n +profesor pRof'E2s@r +produk pR'odak +prospek pR'ospE2k +republik Rip'abli? +saintis s'aIntis +sesi s'esi +subjek s'abdZE2k +surcaj s'@RtSadZ +radio R'edio +realiti Rial'iti +sentimen sEnt'im@n +september sEpt'@mb@r +teater ti'et@r +teknik t'Eknik +teknikal tEkn'ikal +telefon tel'ifon +tenis t'Enis +tiara ti'aRa +unit j'unit +universiti jun,iv@Rs'iti +virus v'aIR@s +zoo zu: + +// place names +Australia _^_EN +Arsenal _^_EN +Asia as'ia +Barcelona b'aRs@l'ona +Borneo _^_EN +Britain _^_EN +Brunei b'R2unaI +Cheras tS'@ras +Coast _^_EN +Commonwealth _^_EN +Denmark _^_EN +England _^_EN +Eropah Er'opah +France _^_EN +George _^_EN +Georgetown _^_EN +Indonesia indon'eIsi@ +Ireland _^_EN +Jamaica _^_EN +Kingdom _^_EN +Korea _^_EN +Liverpool _^_EN +London _^_EN +New _^_EN +Nigeria _^_EN +Macau _^_EN +Malaysia m@l'esi@ +Melbourne _^_EN +Guinea _^_EN +Penang pin'EN +Perak p'erak +Phuket ph'ukEt +Putrajaya putR2@dZ'aj@ +Republic _^_EN +Scotland _^_EN +Seputeh s@p'uteh +Seremban s@R'@mban +Setar s?tar +Sydney _^_EN +Temerloh t@m'@Rloh +Tonga t'onga +Town _^_EN +United _^_EN +Valencia vel'@nsia +Zambia z'ambia +Zealand _^_EN + +// person names +Azura az'uR2a +Barack _^_EN +David _^_EN +Davidson _^_EN +Douglas _^_EN +Edward _^_EN +Karen _^_EN +Jason _^_EN +Lee _^_EN +Leela l'ila +Linda l'inda +Mahathir mah'ater +Michael _^_EN +Merican m'erikan +Ng '@N +Nora n'oRa +Nurhaliza n,uRhal'iza +Obama ob'ama +Ong ON +Ramlee R'amli +Saleh s'aleh +Seha s'eha +Shafie Saf'i?i +Sidek s'idek +Syed s'aId +Teresa t@R2'isa +Tony _^_EN +Yaacob j'a?kob +Yew jiu +Zakaria zak'aRja +Zaleha zal'eha + + +// English words +(& co) En||k'amp@ni +american _^_EN +bank b'Enk +banking b'EnkiN +commerce _^_EN +corp _^_EN $dot +city _^_EN +company _^_EN +consortium _^_EN +daily _^_EN +distribution _^_EN +east _^_EN +education _^_EN +engineering _^_EN +euro _^_EN +girl _^_EN +grand gR2End +genre _^_EN +government _^_EN +group _^_EN +hero h'iR2o +idea 'aIdi@ +island _^_EN +jazz dZ'E:s +international _^_EN +internet _^_EN +left _^_EN +land lEnd +malayan _^_EN +malaysian m@l'esi@n +media _^_EN +methodist _^_EN +multi _^_EN +north _^_EN +pound _^_EN +right _^_EN +school _^_EN +speaker _^_EN +south _^_EN +the _^_EN +enterprise _^_EN +omnibus 'omnibas +online _^_EN +power _^_EN +punk _^_EN +serius _^_EN +service _^_EN +street _^_EN +technologies _^_EN +tender _^_EN +trading _^_EN +trend _^_EN +unity _^_EN +union _^_EN +wall _^_EN +west _^_EN + + +// brands +afp $abbrev +(air asia) 'E:_'e:si@_ +(air france) _^_EN +airbus _^_EN +boeing _^_EN +eon 'ion +firefly _^_EN +iphone aI||fon +ipod aI||pod +malaysiakini m@l'esi@||k'ini +maybank m'eib'Enk +reuters _^_EN +(sime darby) _^_EN +toyota toj'ota +wikipedia wik,ip'idja + + + +// unstressed words +//suatu $u +dari $u +pada $u +daripada $u +ke k@ $u +di $u +si $u +sang $u +hang $u +yang $u +//dan $u +//atau $u +//untuk $u +ialah $u +adalah $u +sebagai $u +bahwa $u +per p@r $u + + +// conjunctions +agar $pause +apabila ap@bil@ $pause +apatah ap@t'ah $pause +atau $pause +ataupun $pause +bagi $pause +bahkan $pause +(bukan sahaja) $pause +dan $pause $u +(di mana) $pause +hanya $pause +jika $pause +kalau $pause +kerana $pause +ketika $pause +mahupun $pause +maka $pause +malah $pause +malahan $pause +manakala $pause +meskipun $pause +misalnya $pause +namun $pause +(sama ada) $pause +sambil $pause +sebab s'@bab $pause +sedangkan $pause +sehingga $pause +selain s@l'ain $pause +semasa $pause +serta s'@rt@ $pause +setelah s@t'@lah $pause +seperti $pause +sepertimana s@p,@Rtim'an@ $pause +supaya $pause +tapi $pause +tetapi $pause +walau $pause +walaupun $pause +untuk $pause +//yang $pause $u +(yang mana) $pause + + +// nuances +anugerah an'ug*Rah +dilaksanakan dil,aksan'@kan +kementerian k@m,@ntR2'ian +sebahagian s@b'ah?gian +mewarnai m@warn'a|i +mulai mul'a|i +meraikan m@Ra|'ikan +sibuk s'ebok +terengganu tR2@Ng'anu +dirasai diRas'a|i +direka diR'ek@ +negeri n'@gR2i diff --git a/dictsource/ms_rules b/dictsource/ms_rules new file mode 100755 index 00000000..a512f336 --- /dev/null +++ b/dictsource/ms_rules @@ -0,0 +1,233 @@ +// Last updated: 14 October 2010, Jason Ong (jason@portalgroove.com) +// This file is UTF8 encoded +// Spelling-to-phoneme rules for Malay + +.group a + a a + a) a _|a + A_) a _|a + au) a _|a + ai aI + au aU + + + _) au o // (automatik) + + @) a (_ @ // (pula) + @) a (kah_ '@ // (apakah) + @) a (kan_ '@ // (bukakan) + @) a (lah_ '@ // (mintalah) + @) a (nya_ '@ // (puncanya) + @) a (pun_ '@ // (bagaimanapun) + + +.group b + b b + + _) be (@@ b@ + + _) ber (@@ b@R // (berdasarkan) + _) ber (CaiX b@R // (bermain) + _) ber (CauX b@R // (bergaul, berbaur) + _) berke (@@ b@Rk@ // (berkeliaran, berkesempatan) + _) berle (@@ b@Rl@ // (berleluasa) + _) berper (@@ b@Rp@R // + _) berse (@@ b@Rs@ // (bersebelahan) + _) bh b // added (kota bharu) + +.group c + c tS + + //************* + + ch tS // (kuching) + //************** + +.group d + d d + dj dZ // Dutch + +.group e + e E //jason: E changed to E2 + e) e _|E + A_) e _|E // *** to check on this *** + e (_ e + + +// ********************* + _) e (Co@ E2 // e-o (ekoran) + + e (CaiX '@ // e-ai (kedai, petai, belai, cerai) + + e (CiX '@ // e-i (betik, ketil, lebih, kerisik, kesedihan, sering, seri, segi, seni) + e (CCiX '@ // e-i (penting, jentik) + e (CCuX '@ // e-u (dibendung, bentuk) + e (CuX '@ // e-u (belut, telur, perut, ketulan, bertemu) + e (CCuX '@ // e-u (perlu, merdu) + e (CCCuX '@ // e-u (tengku, tengkuk) + + e (nyuX '@ // e-u (senyum) + eCC) e (X e // e-e (pendek, benteng) + eC) e (X e // e-e (belek, gelek, leceh, geleng) + e (Ce e // e-e (kelecehan) + oC) e (X e // o-e (oleh, boleh, celoteh, topeng) + oCC) e (X e // o-e (ponteng) + + C) e (CCCoCkan_ e // (bengkokkan) + m) e (_ @ // (autisme) + + + +// ****************** + + +.group f + f f + ff f + +.group g + g g + +.group h + h h + +.group i + i i + i) i _|i + A_) i _|i + + + @) i (CX e // (tekik, masing, masin) + @) i (Cnya_ 'e // (masinnya) + @) i (CCaan_ e // (pemeriksaan) + +.group j + j dZ + +.group k + k k + k (_ ? + kh x + + _) ke (@@ k@ + @@) k (annya_ k' + + _) kese (@@ k@s@ // keseluruhannya + + + +.group l + l l + ll l + +.group m + m m + + _) me (@@ m@ + _) mempe (@ m@mp@ + + //***************** + _) mem (@@ m@m + _) mene (@@ m@n@ // (menerajui) + _) menge (@@ m@N@ // (mengenepikan) + _) mempenge (@@ m@mp@N@ // (mempengerusikan) + //**************** + +.group n + n n + ng N + ny n^ +// nj n^ + +.group o + o o + o) o _|o + A_) o _|o + o (r O + oe u // Dutch spelling + +.group p + p p + pp p + + _) pe (@@ p@ + + + _) pe (CaiX p@ // (pemain, pesaing) + _) peme (@@ p@m@ // (pemeriksaan) + _) pene (@@ p@n@ // (penerokaan) + _) penge (@@ p@N@ // (pengetahuan) + _) penje (@@ p@ndZ@ // (penjenamaan) + _) perse (@@ p@Rs@ // (persetujuan) + + +.group q + q k + qu kw + +.group r + r R //(jason change: R2 to r) + r (K r //(jason change: R to r) + e) r (K *r //(jason change: *R to r) + + r (_ r // jason: added (silent r at the end) + +.group s + s s + ss s + sy S // perhaps [S;] ?? + sj S + + _) se (@@ s@ + + //************* + _) se (CaiX s@ // (sebaik) + sh S + //*************** + + +.group t + t t + tj tS // Dutch + + _) ter (@@ t@*R + + //*************** + _) ter (@ t'@*R // ter- (terbaik, teruk) + //****************** + +.group u + u u + u) u _|u + A_) u _|u + + @) u (CX o // (puluh, tudung) + @) u (Cnya_ 'o // (bentuknya) + @) u (CCnya_ 'o // (tudungnya) + +.group v + v v + +.group w + w w + +.group x + x ks + _) x z + +.group y + y j + +.group z + z z + +.group + $ dOl@R + + + __) - (_D n'eg@tif + + * b'intaN + *) * (* + ** + **) * (_ _:: diff --git a/dictsource/pa_list b/dictsource/pa_list new file mode 100755 index 00000000..538d31b4 --- /dev/null +++ b/dictsource/pa_list @@ -0,0 +1,246 @@ +// This file is UTF8 encoded +// Punjabi/Gurmukhi + +// Numbers +_0 z'iRo +_1 'Ik: +_2 d'o +_3 t'I~n +_4 c'aR +_5 p'VnJ +_6 c#'e +_7 s'Vt: +_8 'Vt.#: +_9 n'O~ +_10 d'Vs +_11 gI'aRa~ +_12 b'aRa~ +_13 t'eRa~ +_14 c'Oda~ +_15 p'Vnd@Ra~ +_16 s'ol.a~ +_17 s@t'aRa~ +_18 Vt.#'aRa~ +_19 'Unni +_20 v'iH +_21 Ik:i +_22 b'ai +_23 t'ei +_24 c'Ovi +_25 p'Vc:i +_26 c#'Vb:i +_27 s@t'ai +_28 Vt.#'ai +_29 Un'Vt:i +_30 t'iH +_31 Ik'Vt:i +_32 b'Vt:i +_33 t'et:i +_34 c'ONti +_35 p'ENti +_36 c#'Vt:i +_37 s'ENti +_38 Vt.#'Vt:i +_39 U~Nt'ali +_40 c'ali +_41 Ik@t'ali +_42 be'ali +_43 t@R@t'ali +_44 cUt'ali +_45 p@nt'ali +_46 c#I'ali +_47 s@nt'ali +_48 ,@R2@t'ali +_49 Un'VnJa +_50 p@nJ'aH +_51 ,@k@v'VnJa +_52 b@v'VnJa +_53 t,@R@v'VnJa +_54 cUR'VnJa +_55 p,@c@v'VnJa +_56 c#@p'VnJa +_57 s,@t@v'VnJa +_58 ,@t.#@v'VnJa +_59 Un.'at.# +_60 s'Vt.#: +_61 Ik'aH@t. +_62 b'aH@t. +_63 t@R'e~H@t. +_64 c'O~H@t. +_65 p'E~H@t. +_66 c#e'aH@t. +_67 s@t'aH@t. +_68 ,@t.#'aH@t. +_69 Un.'Vt:@R +_70 s'Vt:@R +_71 Ik'Vt:@R +_72 b@H'Vt:@R +_73 t@H'et:@R +_74 cOH'Vt:@R +_75 p@J'Vt:@R +_76 c#IH'Vt:@R +_77 s@t'Vt:@R +_78 Vt.#'Vt:@R +_79 Un.'asi +_80 'Vssi +_81 ,IkI;'asi +_82 bI;'asi +_83 t,@RI;'asi +_84 cUR'asi +_85 p@c'asi +_86 c#I;'asi +_87 s@t'asi +_88 Vt.#'asi +_89 Un'an@v,e~ +_90 n'Vb:e +_91 Ik'an@v,e~ +_92 b'an@v,e~ +_93 t@R'a~n@v,e~ +_94 cUR'an@v,e~ +_95 p@c'an@v,e~ +_96 c#I'an@ve~ +_97 s@t'an@ve~ +_98 Vt.#'an@ve~ +_99 n@R2'I~n@v,e~ + +_0C s'O +_0M1 H@J'aR +_0M2 l'Vk#: // 100,000 +_0M3 k'VRoR // 10,000,000 +_0M4 'VR@b // 1,000,000,000 +_0M5 k#'VR@b // 100,000,000,000 + +_dpt _d@s@ml'o: + + +// character names +ਂ bInd'i +ੰ tIpp'i +ੱ VddVk +ਃ visaRg +੍ hVlVnt + +ਅ 'ERV +ੲ 'IRI +ੳ 'URV +_ਆ 'ERV||kVnn'a +_ਇ 'IRI||sIh'aRi +_ਈ 'IRI||bIh'aRi +_ਉ 'URV||'OnkaR +_ਊ 'URV||dUl'EnkaR +_ਏ 'IRI||l'avam +_ਐ 'ERV||dUl'avam +_ਓ 'URV||hoR'a +_ਔ 'ERV||kVnOR'a + +ਾ kVnn'a +ਿ sIh'aRi +ੀ bIh'aRi +ੁ OnkaR +ੂ dUl'EnkaR +ੇ l'ava~ +ੈ d@l'ava~ +ੋ hoR'a +ੌ kVn'ORa + + +// Punctuation +_?? 'Vk#:@R +। d.'Vnd.i ++ J'Vuma += b@R'ab@R +% pR'VtIS@t +* t'aRa + + +// Pronouns +// ਪੁਰਖਵਾਚੀ ਪੜਨਾਂਵ +ਮੈਂ $u // main: I +ਮੈਨੂੰ $u +ਮੇਰਾ $u +ਮੇਰੀ $u +ਮੇਰੇ $u + +ਅਸੀਂ $u // we +ਸਾਨੂੰ $u +ਸਾਡਾ $u +ਸਾਡੀ $u +ਸਾਡੇ $u + + +ਆਪ $u // you(formal) +ਆਪਨੂੰ $u +ਆਪਦਾ $u +ਆਪਦੀ $u +ਆਪਦੇ $u + +ਤੂੰ $u // you (informal) +ਤੂਸੀਂ $u // you(formal) +ਤੁਹਾਨੂੰ $u +ਤੁਹਾਡਾ $u +ਤੁਹਾਡੀ $u +ਤੁਹਾਡੇ $u + +ਤੂੰ $u // you (informal) +ਤੈਨੂੰ $u +ਤੇਰਾ $u + +ਇਹ $u // he/she/it +ਇਸਤੋਂ $u +ਇਸਦਾ $u + +ਇਹ $u // they +ਇਨ੍ਹਾਂਨੂੰ $u +ਇਨ੍ਹਾਂਦਾ $u + +ਉਹ $u // he/she/it +ਉਸਤੋਂ $u +ਉਸਦਾ $u +ਉਸਦੀ $u +ਉਸਦੇ $u + +ਉਹ $u // they +ਉਨ੍ਹਾਂਨੂੰ $u // unhannu: them +ਉਨ੍ਹਾਂਦਾ $u +ਉਨ੍ਹਾਂਦੀ $u +ਉਨ੍ਹਾਂਦੇ $u + + + +// Prepositions/Postpositions +ਦਾ $u // dā: of, possessive particle +ਦੀ $u // dī +ਦੇ $u // de + +ਨੂੰ $u // nu: to +ਤੱਕ $u // tak: until, for(time) +ਬਿਨਾ $u $pause // without (preposition) +ਵਿਚ $u // in +ਵਿੱਚ $u // in +ਤੋਂ $u // ton: from, with, by + + + +// Verbs +ਹਾਂ $u // to be +ਹੋ $u +ਹੈ $u +ਹੈਂ $u +ਹਨ $u + +ਸੀ $u // si: past aux +ਸਨ $u // san: past aux + +ਰਹਾ $u // rahā: continuous +ਰਹੇ $u // rahe +ਰਹੀ $u // rahī + + + +$textmode +ਸੋਫਟਵਿਅਰ software +ਈਮੇਲ email +ਕੀਬੋਰਡ keyboard +ਬੋਰਡ board +$phonememode + diff --git a/dictsource/pa_rules b/dictsource/pa_rules new file mode 100755 index 00000000..5a160b57 --- /dev/null +++ b/dictsource/pa_rules @@ -0,0 +1,469 @@ + +// Punjabi Gurmukhi script +// This file is UTF8 encoded + +// letter groups: +// A vowel letters +// B vowel signs and virama ् +// C consonants +// Y vowel letters and vowel signs + + + +.replace + ੦ 0 + ੧ 1 + ੨ 2 + ੩ 3 + ੪ 4 + ੫ 5 + ੬ 6 + ੭ 7 + ੮ 8 + ੯ 9 + + ૦ 0 + ૧ 1 + ૨ 2 + ૩ 3 + ૪ 4 + ૫ 5 + ૬ 6 + ૭ 7 + ૮ 8 + ૯ 9 + + +// combine dot consonants into a single character +ਸ਼ ਸ਼ +ਲ਼ ਲ਼ // l. +ਖ਼ ਖ਼ // x +ਗ਼ ਗ਼ // Q +ਜ਼ ਜ਼ // z +ਫ਼ ਫ਼ // f + +// combine base vowel+vowel sign into single vowel characters +ਅੈ ਐ // aI +ਅਾ ਆ // aa +ਅੌ ਔ // aU +ੲੀ ਈ // ii +ੲਿ ਇ // i +ੲੇ ਏ // e +ੳੁ ਉ // u +ੳੂ ਊ // uu + + + +// Vowels + +.group ੳ + ੳ u + +.group ੲ + ੲ i + + +.group ਅ + ਅ ,V + ਅਂ V~ + ਅੰ V~ + +.group ਆ + ਆ a + ਆਂ a~ + ਆੰ a~ + +.group ਇ + ਇ I + ਇਂ I~ + ਇੰ I~ + +.group ਈ + ਈ i + ਈਂ i~ + ਈੰ i~ + +.group ਉ + ਉ U + ਉਂ U~ + ਉੰ U~ + +.group ਊ + ਊ u + ਊਂ u~ + ਊੰ u~ + +.group ਏ + ਏ e + ਏਂ e~ + ਏੰ e~ + +.group ਐ + ਐ E + ਐਂ E~ + ਐੰ E~ + +.group ਓ + ਓ o + ਓਂ o~ + ਓੰ o~ + +.group ਔ + ਔ O + ਔਂ O~ + ਔੰ O~ + +.group ૠ + ૠ r- + + +// Vowel Signs + +.group ਾ + ਾ a + ਾਂ a~ + ਾੰ a~ + +.group ਿ + ਿ I + ਿਂ I~ + ਿੰ I~ + +.group ੀ + ੀ i + ੀਂ i~ + ੀੰ i~ + +.group ੁ + ੁ U + ੁਂ U~ + ੁੰ U~ + +.group ੂ + ੂ u + ੂਂ u~ + ੂੰ u~ + +.group ੇ + ੇ e + ੇਂ e~ + ੇੰ e~ + +.group ੈ + ੈ E // aI + ੈਂ E~ + ੈੰ E~ + +.group ੋ + ੋ o + ੋਂ o~ + ੋੰ o~ + +.group ੌ + ੌ O // aU + ੌਂ O~ + ੌੰ O~ + + +// Consonants ਕે + +.group ਕ + ਕ kV // inherent vowel + ਕ (B k // no inherent vowel if vowel or virama follows + @) ਕ (_ k // omit inherent vowel at end of word + ੱ) ਕ k:V + ੱ) ਕ (B k: + ੱ) ਕ (_ k: + +.group ਖ + ਖ k#V + ਖ (B k# + @) ਖ (_ k# + ੱ) ਖ k#:V + ੱ) ਖ (B k#: + ੱ) ਖ (_ k#: + +.group ਗ + ਗ gV + ਗ (B g + @) ਗ (_ g + ੱ) ਗ g:V + ੱ) ਗ (B g: + ੱ) ਗ (_ g: + +.group ਘ + ਘ g#V + ਘ (B g# + @) ਘ (_ g# + _) ਘ k+V // high tone + _) ਘ (B k+ + +.group ਙ + ਙ NV + ਙ (B N + @) ਙ (_ N + ੱ) ਙ N:V + ੱ) ਙ (B N: + ੱ) ਙ (_ N: + +.group ਚ + ਚ cV + ਚ (B c + @) ਚ (_ c + ੱ) ਚ c:V + ੱ) ਚ (B c: + ੱ) ਚ (_ c: + +.group ਛ + ਛ c#V + ਛ (B c# + @) ਛ (_ c# + ੱ) ਛ c#:V + ੱ) ਛ (B c#: + ੱ) ਛ (_ c#: + +.group ਜ + ਜ JV + ਜ (B J + @) ਜ (_ J + ੱ) ਜ J:V + ੱ) ਜ (B J: + ੱ) ਜ (_ J: + +.group ਝ + ਝ J#V + ਝ (B J# + @) ਝ (_ J# + _) ਝ c+V + _) ਝ (B c+ + +.group ਞ + ਞ n^V + ਞ (B n^ + @) ਞ (_ n^ + ੱ) ਞ n^:V + ੱ) ਞ (B n^: + ੱ) ਞ (_ n^: + +.group ਟ + ਟ t.V + ਟ (B t. + @) ਟ (_ t. + ੱ) ਟ t.:V + ੱ) ਟ (B t.: + ੱ) ਟ (_ t.: + +.group ਠ + ਠ t.#V + ਠ (B t.# + @) ਠ (_ t.# + ੱ) ਠ t.#:V + ੱ) ਠ (B t.#: + ੱ) ਠ (_ t.#: + +.group ਡ + ਡ d.V + ਡ (B d. + @) ਡ (_ d. + ੱ) ਡ d.:V + ੱ) ਡ (B d.: + ੱ) ਡ (_ d.: + +.group ਢ + ਢ d.#V + ਢ (B d.# + @) ਢ (_ d.# + _) ਢ t.+V + _) ਢ (B t. + +.group ਣ + ਣ n.V + ਣ (B n. + @) ਣ (_ n. + ੱ) ਣ n.:V + ੱ) ਣ (B n.: + ੱ) ਣ (_ n.: + +.group ਤ + ਤ tV + ਤ (B t + @) ਤ (_ t + ੱ) ਤ t:V + ੱ) ਤ (B t: + ੱ) ਤ (_ t: + +.group ਥ + ਥ t#V + ਥ (B t# + @) ਥ (_ t# + ੱ) ਥ t#:V + ੱ) ਥ (B t#: + ੱ) ਥ (_ t#: + +.group ਦ + ਦ dV + ਦ (B d + @) ਦ (_ d + ੱ) ਦ d:V + ੱ) ਦ (B d: + ੱ) ਦ (_ d: + +.group ਧ + ਧ d#V + ਧ (B d# + @) ਧ (_ d# + _) ਧ t+V + _) ਧ (B t+ + +.group ਨ + ਨ nV + ਨ (B n + @) ਨ (_ n + ੱ) ਨ n:V + ੱ) ਨ (B n: + ੱ) ਨ (_ n: + +.group ਪ + ਪ pV + ਪ (B p + @) ਪ (_ p + ੱ) ਪ p:V + ੱ) ਪ (B p: + ੱ) ਪ (_ p: + +.group ਫ + ਫ p#V + ਫ (B p# + @) ਫ (_ p# + ੱ) ਫ p#:V + ੱ) ਫ (B p#: + ੱ) ਫ (_ p#: + +.group ਬ + ਬ bV + ਬ (B b + @) ਬ (_ b + ੱ) ਬ b:V + ੱ) ਬ (B b: + ੱ) ਬ (_ b: + +.group ਭ + ਭ b#V + ਭ (B b# + @) ਭ (_ b# + _) ਭ p+V + _) ਭ (B p+ + +.group ਮ + ਮ mV + ਮ (B m + @) ਮ (_ m + ੱ) ਮ m:V + ੱ) ਮ (B m: + ੱ) ਮ (_ m: + +.group ਯ + ਯ jV + ਯ (B j + @) ਯ (_ j + ੱ) ਯ j:V + ੱ) ਯ (B j: + ੱ) ਯ (_ j: + +.group ਰ + ਰ RV + ਰ (B R + @) ਰ (_ R + ੱ) ਰ R:V + ੱ) ਰ (B R: + ੱ) ਰ (_ R: + +.group ਲ + ਲ lV + ਲ (B l + @) ਲ (_ l + ੱ) ਲ l:V + ੱ) ਲ (B l: + ੱ) ਲ (_ l: + +.group ਲ਼ + ਲ਼ l.V + ਲ਼ (B l. + @) ਲ਼ (_ l. + +.group ਵ + ਵ vV + ਵ (B v + @) ਵ (_ v + ੱ) ਵ v:V + ੱ) ਵ (B v: + ੱ) ਵ (_ v: + +.group ਸ਼ + ਸ਼ SV + ਸ਼ (B S + @) ਸ਼ (_ S + ੱ) ਸ਼ S:V + ੱ) ਸ਼ (B S: + ੱ) ਸ਼ (_ S: + +.group ਸ + ਸ sV + ਸ (B s + @) ਸ (_ s + ੱ) ਸ s:V + ੱ) ਸ (B s: + ੱ) ਸ (_ s: + +.group ਹ + ਹ HV + ਹ (B H + @) ਹ (_ H + +.group ਖ਼ + ਖ਼ xV + ਖ਼ (B x + @) ਖ਼ (_ x + +.group ਗ਼ + ਗ਼ QV + ਗ਼ (B Q + @) ਗ਼ (_ Q + +.group ਜ਼ + ਜ਼ zV + ਜ਼ (B z + @) ਜ਼ (_ z + +.group ੜ + ੜ r.V + ੜ (B r. + @) ੜ (_ r. + +.group ਫ਼ + ਫ਼ fV + ਫ਼ (B f + @) ਫ਼ (_ f + + +.group ੍ + ੍ // virama + +.group ਼ + ਼ // nukta + +.group ੱ + ੱ // addak + +.group ਂ + ਂ N // bindi + +.group ੰ + ੰ n // tippi + +.group ਃ + ਃ h + +.group + $ dOlVR // TEST + % pVsEnt // TEST diff --git a/dictsource/pt_list b/dictsource/pt_list index 54790b97..092d663c 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -337,7 +337,7 @@ la $u lo $u las $u los $u -//se $u +se $u ?2 este $u+ $nounf 'estSi // this ?2 estes $u+ $nounf 'estSis // these @@ -637,7 +637,6 @@ acertos $alt2 acordo $alt $verb acervo $alt2 adepto $alt -adereço $alt2 adore $alt adorno $alt $verb albatrozes $alt @@ -654,8 +653,8 @@ apego $alt2 $noun apelo $alt $verb aposto $alt $verb aperto $alt2 $noun -apoio $alt2 $noun -aprovo $alt +apneia $alt +apoio $alt $verb arredores $alt arremesso $alt2 $noun arroz $alt2 @@ -668,6 +667,8 @@ atrozes $alt autora $alt2 avesso $alt2 axé aSE +azeda $alt $verb +azedo $alt $verb baqueta $alt2 beco $alt2 belo $alt @@ -675,7 +676,6 @@ besta $alt2 bilhete $alt2 boca $alt2 bochecha $alt2 -boio $alt bojo $alt2 boleia $alt bolero $alt @@ -683,13 +683,14 @@ bolo $alt2 bolo $alt $verb borboleta $alt2 bordo $alt +bosque $alt boto $alt2 $noun bromelha $alt -cabeça $alt2 cabresto $alt2 cacete $alt2 cachorra $alt2 caderneta $alt2 +cadete $alt2 camiseta $alt2 cantora $alt2 capacete $alt2 @@ -704,6 +705,7 @@ cateto $alt2 catorze $alt2 cebola $alt2 cefaleia $alt +centopeia $alt cerca $alt cerca $alt2 $noun cerco $alt $verb @@ -728,7 +730,7 @@ colher $alt $noun colheres $alt $noun colmeia $alt colore $alt -começo $alt2 $noun +começo $alt $verb comodo $alt2 concerto $alt2 $noun concertos $alt2 @@ -758,12 +760,14 @@ desemprego $alt2 desemprego $alt $verb desespero $alt2 $noun desfecho $alt2 +desmantelo $alt $verb desprezo $alt2 $noun desse $alt2 desse $alt $verb deste $alt2 deste $alt $verb desterro $alt2 +destroem $alt deveras $alt dez $alt diarreia $alt @@ -779,11 +783,11 @@ elo $alt emprego $alt2 $noun empregos $alt2 encosto $alt $verb -endereço $alt2 endereço $alt $verb enforco $alt engordo $alt enredo $alt $verb +enrosco $alt $verb enterro $alt2 $noun enumerem $alt envelope $alt @@ -809,20 +813,23 @@ espiroqueta $alt2 espoleta $alt2 esposa $alt2 esqueleto $alt2 +estilete $alt2 estrela $alt2 estrofe $alt estorno $alt $verb estorvo $alt $verb etiqueta $alt2 europa $alt +europeia $alt exagero $alt $verb explore $alt faceta $alt2 +fantoche $alt farelo $alt farofa $alt febre $alt -feitora $alt2 fera $alt +feitora $alt2 ferozes $alt fezes $alt ?1 fixe fiSy @@ -867,11 +874,13 @@ ideia $alt interesse $alt2 $noun jogo $alt2 $noun joguete $alt2 +lagosta $alt2 lambreta $alt2 lebre $alt lembrete $alt2 leste $alt2 $verb lopes $alt +macete $alt2 maior $alt maleta $alt2 marcelo $alt @@ -894,6 +903,7 @@ minueto $alt2 miolo $alt2 miolos $alt moeda $alt +mofo $alt $verb molho $alt2 $noun monera $alt morcego $alt2 @@ -901,10 +911,10 @@ morda $alt2 moreia $alt mortos $alt motora $alt2 -mulher $alt mui mwi muito mw'iNtU // -s is included as a suffix muita mw'iNt& +mulher $alt mulheres $alt mureta $alt2 mutreta $alt2 @@ -917,11 +927,13 @@ obstetra $alt odisseia $alt onu $1 olho $alt2 $noun +onomatopeia $alt opereta $alt2 ordens $alt osso $alt2 ossos $alt ostra $alt2 +ovelha $alt2 ovos $alt pachorra $alt2 paexa paeSa @@ -937,6 +949,7 @@ pastora $alt2 pedra $alt pela $alt $verb pelego $alt2 +pela $alt $verb pelo $alt $verb peso $alt $verb piloto $alt2 $noun @@ -948,32 +961,32 @@ plateia $alt plebeia $alt polca $alt porcos $alt -porrete $alt2 porra $alt2 +porrete $alt2 porto $alt2 portos $alt pose $alt2 povos $alt poxa p'oS& primavera $alt -provo $alt +prosopopeia $alt quarteto $alt2 queda $alt quede $alt2 quinteto $alt2 -recomeço $alt2 $noun +raposa $alt2 +recomeço $alt $verb recordo $alt recorto $alt rede $alt2 redor $alt reembolso $alt $verb -reforços $alt reforço $alt $verb +reforços $alt refresco $alt $verb reitora $alt2 relevo $alt2 $noun remorso $alt -reprovo $alt retorno $alt $verb rixa x'iS& rocha $alt @@ -984,7 +997,7 @@ rota $alt2 rota $alt $noun rumores $alt2 saleta $alt2 -sarjeta $alt +sarjeta $alt2 seborreia $alt seca $alt2 $noun secas $alt2 diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 58166adc..36d23b68 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -1,3 +1,4 @@ + // translation rules Brazilian // translation rules Brazilian // translation rules Brazilian // This file is UTF-8 encoded @@ -178,8 +179,6 @@ e (co_ E e (ctA_ E e (ctAm_ E - e (çA_ E - e (çAm_ E e (de_ E e (dem_ E @@ -447,17 +446,21 @@ proteg) e (L07_ e // des- respond) e (L07_ e // cor- qu) e (brL04_ E _cel) e (brL04_ E + _enr) e (dL01_ E + _arr) e (dL03_ E + _depr) e (dL03_ E _hosp) e (dL03_ E _gr) e (gL03_ e _gal) e (gL03_ e _n) e (grL03_ e - _estr) ei (L03_ EI + estr) ei (L04_ EI _inv) e (jL04_ E tr) e (pL04_ E // es- _dec) e (pL04_ E _in) e (ptL03_ E _p) e (quL02_ E _s) e (quL02_ E + ad) e (quL04_ E l) e (que_ E _imp) e (rL03_ E _sev) e (rL03_ E @@ -473,6 +476,7 @@ respond) e (L07_ e // cor- _tol) e (rL04_ E _ven) e (rL04_ E acel) e (rL04_ E // des- + _apod) e (rL04_ E _coop) e (rL04_ E _temp) e (rL04_ E _recup) e (rL04_ E @@ -488,13 +492,14 @@ _refrig) e (rL04_ E _bez) e (rrL03_ e _inv) e (rtL03_ e _f) e (rvL03_ e - _p) e (sL01_ E + _refr) e (scL01_ E _d) e (scL02_ E _cr) e (scL02_ E _p) e (scL03_ E _m) e (sclL04 E _d) e (spL02_ E _p) e (squL02_ E + _refr) e (squL02_ E _l) e (ssL02_ e _esp) e (ssL03_ e _c) e (stL03_ e @@ -515,43 +520,10 @@ _obsol) e (tL03_ e _despr) e (zL04_ E _embel) e (zL04_ E _menospr) e (zL04_ E -_emagr) e (çL03 - pr) e (çL03_ e // a- - aqu) e (çL03_ e // re- - mer) e (çL03_ e // des- - pad) e (çL03_ e // com- - par) e (çL03_ e // a- re- com- rea- desa- - _ado) e (çL03_ e - _car) e (çL03_ e - _per) e (çL03_ e_ - conh) e (çL03_ e // re- - obed) e (çL03_ e // des- - _esqu) e (çL03_ e - _forn) e (çL03_ e - _ofer) e (çL03_ e - abast) e (çL03_ e // re- -_aborr) e (çL03_ e -_acont) e (çL03_ e -_agrad) e (çL03_ e -_amanh) e (çL03_ e -_amort) e (çL03_ e -_anoit) e (çL03_ e -_arref) e (çL03_ e -_desguarn) e (çL03_ e -_desguarnec) e (çL03_ e -_enfraqu) e (çL03_ e -_enlouqu) e (çL03_ e -_enraiv) e (çL03_ e -_enriqu) e (çL03_ e -_entrist) e (çL03_ e -_envaid) e (çL03_ e -_envelh) e (çL03_ e -_esclar) e (çL03_ e -_espair) e (çL03_ e -_estrem) e (çL03_ e -_fortal) e (çL03_ e -_rejuven) e (çL03_ e -estabel) e (çL03_ e // re- + com) e (çL01_ E + p) e (çL03_ E + _m) e (çL03_ E +_entorp) e (çL03_ e //endsort @@ -600,7 +572,12 @@ estabel) e (çL03_ e // re- ?3 g (_C g_ g (Y Z // ge gi gu (Y g -?1 guen (C gw'eIN // aguenta, etc. + a) gu (ent gw + enxa) gu (e gw + lin) gu (e gw + lin) gu (i gw + san) gu (ín gw + san) gu (in gw ?1 n) gu (A gw // eg: língua, etc. ?1 man) gu (ei g // mangueira ?1 gu (ém_ g // eg: alguém, ninguém, etc... @@ -847,15 +824,19 @@ estabel) e (çL03_ e // re- _engl) o (bL01_ O _s) o (bL02_ O _esn) o (bL04_ O + br) o (chL04_ O _deb) o (chL04_ O -_desabr) o (chL04_ O + _m) o (fL01_ O + _m) o (fL02_ O _s) o (frL02_ O r) o (gL04_ O // inter- _j) o (gL04_ O _af) o (gL04_ O _adv) o (gL04_ O _ref) o (gL04_ O - _ap) oi (L04_ OI + _ap) oi (L01_ OI + _ap) oi (L02_ OI + _b) oi (L04_ OI _t) o (lL03_ o c) o (lhL02_ O // es- en- re- _t) o (lhL02_ O @@ -870,10 +851,13 @@ _desabr) o (chL04_ O _ens) o (pL04_ O _s) o (prL04_ O _) o (ptL04_ O + _defl) o (rL02_ O + _impl) o (rL02_ O _inod) o (rL03_ O _inson) o (rL03_ O _comem) o (rL04 O _remem) o (rL04_ O + f) o (rmL03_ O _enf) o (rquL02_ O _ext) o (rquL02_ O c) o (rrL01_ o // escorra, incorra, corra, recorra @@ -882,8 +866,10 @@ _remem) o (rL04_ O t) o (rçL01_ O // con- _r) o (snL04_ O _c) o (spL02_ O + _enr) o (squL02_ O p) ostos (_ Ost=Us# // dispostos etc. _gar) o (tL03_ o + pr) o (vL03_ O _g) o (zL04_ O _esb) o (çL01_ O _r) o (çL03_ O @@ -940,8 +926,16 @@ _remem) o (rL04_ O ?1 _) qua kwa // quatro, etc. ?1 _) que ke // quente, etc. ?1 _) quei (C k'eI // queira, queima, etc -?1 C) quen (C kw'eIN // cinquenta, etc. -?1 A) quen (C kw'eIN // frequência, etc. + A) quên (C kw'eIN // frequência, etc. + ade) qu (e kw + e) qu (estr kw + _e) qu (in kw + fre) qu (ent kw + li) qu (id kw + lí) qu (id kw + n) qu (en kw + se) qu (en kw + tran) qu (il kw ?1 quec kes // esquece, etc. ?1 queç kes // esqueça. ?1 A) que (nA_ ke // pequeno, etc. diff --git a/dictsource/sw_rules b/dictsource/sw_rules index c393caa2..6f617bef 100644 --- a/dictsource/sw_rules +++ b/dictsource/sw_rules @@ -70,7 +70,7 @@ _) n (k N- _) n (k@@ N- n (g N - _) n (g N- + K) n (g N- _) n (g@@ N- .group o diff --git a/dictsource/zhy_rules b/dictsource/zhy_rules index 17e19035..280f3b81 100644 --- a/dictsource/zhy_rules +++ b/dictsource/zhy_rules @@ -3,7 +3,7 @@ // condition ?1 Speak English letters as English words // condition ?2 Speak English letter as jyutping romanisation - +//voice=zh-yue // to find the voice for this dictionary .group a ?1 a _^_EN diff --git a/docs/phontab.html b/docs/phontab.html index 96112213..2bd9e01d 100644 --- a/docs/phontab.html +++ b/docs/phontab.html @@ -228,31 +228,50 @@ where the ELSE and multiple ELSE parts are optional.

Multiple conditions may be joined with AND or OR, but not a mixture of ANDs and ORs.

+A condition may be preceded by NOT. For example: +

+  IF <condition> AND NOT <condition> THEN
+    <statements>
+  ENDIF
+
+

Condition Can be:

    +
    thisPh(<attribute>) +
    Test this current phoneme +

    prevPh(<attribute>)
    Test the previous phoneme

    prevPhW(<attribute>)
    Test the previous phoneme, but only within the same word. Returns false if there is no previous phoneme in the word.

    -

    thisPh(<attribute>) -
    Test this current phoneme +
    prev2PhW(<attribute>) +
    Test the phoneme before the previous phoneme, but only within the same word. Returns false if it is not in this word.

    nextPh(<attribute>)
    Test the following phoneme

    -

    nextPhW(<attribute>) -
    Test the following phoneme, but only within the same word. Returns false if there is no following phoneme in the word. -

    next2Ph(<attribute>)
    Test the phoneme after the next phoneme.

    +

    nextPhW(<attribute>) +
    Test the next phoneme, but only within the same word. Returns false if there is no following phoneme in the word. +

    +

    next2PhW(<attribute>) +
    Test the phoneme after the next phoneme, but only within the same word. Returns false if not found before the word end. +

    +

    next3PhW(<attribute>) +
    Test the third phoneme after the current phoneme, but only within the same word. Returns false if not found before the word end. +

    nextVowel(<attribute>)
    Test the next vowel after the current phoneme, but only within the same word. Returns false if there is none.

    +

    prevVowel(<attribute>) +
    Test the previous vowel before the current phoneme, but only within the same word. Returns false if there is none. +

    PreVoicing()
    This is used as part of the instructions for voiced stop consonants (eg. [d] [g]). If true then produce a voiced murmur before the stop.

    @@ -263,6 +282,7 @@ Can be: Attributes

      Note: Additional attributes could be added to eSpeak if needed. +

      <phoneme name>
      True if the phoneme has this phoneme name. @@ -294,8 +314,10 @@ Note: Additional attributes could be added to eSpeak if needed.
      isWordEnd
      True if this is the final phoneme in a word.

      +

      isFirstVowel +
      isSecondVowel
      isFinalVowel -
      True if this is the last vowel in a word. +
      True if this is the First, Second, or Last vowel in a word.

      isAfterStress
      True if this phoneme is after the stressed vowel in a word. diff --git a/phsource/compile_report b/phsource/compile_report index 9c2abf10..5d49eb44 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,5 +1,5 @@ -88 phoneme tables +74 phoneme tables new total base 109 109 consonants 11 119 @@ -63,32 +63,18 @@ consonants 11 119 sw 9 110 tr 19 128 ku 18 129 - id 15 127 + id 16 128 sq 33 127 hy 23 119 da 45 138 ka 20 115 fa 9 112 - rw 15 132 - prs 8 113 - sl 10 137 - gd 6 109 - nso 12 113 - ht 11 146 - az 10 129 - ak 8 111 - am 15 114 - wo 18 120 - dv 14 149 - te 16 149 - si 24 155 - tn 27 121 - mt 32 129 - bo 10 153 - kk 20 118 - tt 23 120 ko 15 116 kl 18 119 + am 15 114 + si 24 155 + rw 15 132 + sl 10 137 Data file Used by b/b [b] base @@ -125,7 +111,6 @@ d/d [d] base [d;] pl [d] hr [d] sq - [d] mt d/d_ [d] base [d[] base [d] base2 @@ -142,7 +127,6 @@ d/d_ [d] base [d;] pl [d] hr [d] sq - [d] mt d/d_dnt [d] sr d/dr [*] base [d[] base @@ -161,7 +145,6 @@ d/dr [*] base [d;] pl [d] hr [d] sq - [d] mt d/tap [*;] ro d/tap1 [*] base d/tap2 [t#] en @@ -184,9 +167,6 @@ d/xd [d] base [d] hr [d] sr [d] sq - [d] mt - [dz] bo - [dz#] bo d/xd3 [d#] hi d/xd_pzd [d^] et [d;] lt @@ -195,8 +175,6 @@ d/xdr [d] fr [d.] hi [d.#] hi d/xdz [dz] consonants - [dz] bo - [dz#] bo d/x_tap [t#] en [*] pt dzh/dzh [dZ] base @@ -301,28 +279,23 @@ h/h_ [h] base [h] fi [h] et [] la - [h] mt h/h@ [h] base [h] fi [h] et [h#] sr [] la - [h] mt h/ha [h] base [h] fi [h] et [] la - [h] mt h/he [h] base [h] fi [h] et [] la - [h] mt h/hi [h] base [h] fi [h] et [] la - [h] mt h/ho [h] base [h] et [] la @@ -330,7 +303,6 @@ h/hu [h] base [h] et [] la h/hu_fi [h] fi - [h] mt j2/_j2 [;] base [;] ga j2/j2@ [;] base @@ -456,8 +428,6 @@ l/l@ [l#] base base vowelstart_l [l] fr [l/2] fr - [K] nso - [K] tn l/L1_aL [l] base [l/] base [l/] de @@ -490,8 +460,6 @@ l/la [l#] base base vowelstart_l [l] fr [l/2] fr - [K] nso - [K] tn l/l_a [l/3] base [l/] fr [l/3] da @@ -499,8 +467,6 @@ l/le [l#] base base vowelstart_l [l] fr [l/2] fr - [K] nso - [K] tn l/l_e [l/3] base [l/] fr [l/3] da @@ -513,8 +479,6 @@ l/li [l#] base [l] fr [l/2] fr [l] zh - [K] nso - [K] tn l/l_i [l/3] base [l/] fr [i] sq @@ -526,8 +490,6 @@ l/l_long [l] base l/lo [l#] base base vowelstart_l [l/2] fr - [K] nso - [K] tn l/l_o [l/3] base [l/] fr [l/3] da @@ -539,8 +501,6 @@ l/lu [l#] base base vowelstart_l [l] fr [l/2] fr - [K] nso - [K] tn l/l_u [l/3] base [l/] fr [l/3] da @@ -557,8 +517,6 @@ l/xl [l] base [l] fr [l] hu [ll] sq - [K] nso - [K] tn m/_m [m] base m/m_ [m] base m/m@ [m] base @@ -669,21 +627,14 @@ n/nu [n] base [n#] is [n] zh r2/r2@ [r-] en - [r-] tn r2/r2a [r-] en - [r-] tn r2/r2e [r-] en - [r-] tn r2/r2i [r-] en - [r-] tn r2/r2o [r-] en - [r-] tn r2/r2u [r-] en - [r-] tn r3/r_ [r/] base [r/] af [r] et - [r/] tn r3/r#_ [r#] is r3/r_n [r/] base [r] et @@ -697,14 +648,12 @@ r3/r_trill [R2] base [R] pl [r*] sr [r] ru - [r] tn r3/r_trill2 [R] base [r] cy r3/r_trill2.wav [R] base [r] cy r3/r_trill3.wav [R3] base [r] af - [r] tn r3/r_trill_short [R2] fi r3/r_trill.wav [R2] base [R2] fi @@ -724,7 +673,6 @@ r3/rx [*] base [x] pt-pt [*;] ro [r#] is - [r/] tn r3/rz_cs [R^] sk [R^/] sk r3/@tap [**] base @@ -737,40 +685,33 @@ r/a_ [r] da r/aa [R] da r/r [r] base [r-] en - [r-] tn r/_r [r] base r/r@ [r] base [R3] base [r] af [r] ro - [r] tn r/ra [r] base [R3] base [r] af [r] ro - [r] tn r/re [r] base [R3] base [r] af [r] ro - [r] tn r/ri [r] base [R3] base [r] af [r] ro - [r] tn r/ro [r] base [R3] base [r] af [r] ro - [r] tn r/rr [r/] base [r] ro r/ru [r] base [R3] base [r] af [r] ro - [r] tn r/tr [r] base r/trr [r/] base [r] ro @@ -779,8 +720,6 @@ r/xr [r] base [r-] en [r] af [r] ro - [r] tn - [r-] tn ufric/ch [C] base [J^] base ufric/ch_ [C] base @@ -846,13 +785,10 @@ ufric/th [T] base ufric/th_ [T] base ufric/tl# [tl#] is [tl#] kl -ufric/tlh [K] nso - [K] tn ufric/x [x] base ufric/x2 [x2] af [x] ku [Q2] ka - [X] kk ufric/x_hr [x] base [x] hr [x] ru @@ -876,7 +812,6 @@ ustop/k_asp [k#] consonants [g#] hi [kh] zh [k#] ka - [kh] tn ustop/k_asp_a [k#] consonants [k#] ka ustop/k_asp_e [k#] consonants @@ -903,7 +838,6 @@ ustop/kl [k] base [k] lv [k] el [k] zhy - [kh] tn ustop/kr [k] base [k] base2 [k] et @@ -917,7 +851,6 @@ ustop/k_unasp [k] base [k] el [k] zhy [k] sq - [k-] tn ustop/k_unasp_ [k] zh [k-] ko ustop/null [?] base @@ -929,11 +862,9 @@ ustop/p [p] base ustop/p_ [p] base [ph] consonants [p] fr - [ph] tn ustop/p_asp [ph] consonants [b#] hi [ph] zh - [ph] tn ustop/percus02 [#X2] hi ustop/percus10 [#X1] base ustop/pl [p] base @@ -945,12 +876,10 @@ ustop/pl [p] base [p] sk [p] sq [p] da - [ph] tn ustop/pr [p] base [p-] consonants [p] base2 [p] da - [ph] tn ustop/p_unasp [p] base [p-] consonants [p] base2 @@ -1013,26 +942,16 @@ ustop/ts [ts] consonants [ts] hu [z] zhy [tsh] zh - [ts] tn - [ts#] bo - [dz#] bo ustop/ts_ [ts] consonants [dz] consonants [ts] lv - [ts] tn - [ts#] bo - [dz#] bo ustop/ts2 [ts] lv [ts] hy [ts] ka - [ts] bo - [dz] bo ustop/tsh [tS] base [c] zhy - [tS] tn ustop/tsh_ [tS] base [c] zhy - [tS] tn ustop/tsh2 [tS] hr [dZ] hr ustop/t_short [t-] consonants @@ -1051,7 +970,6 @@ ustop/ts_pzd [tS;] base [tS;] lt [tS;] ru [dZ;] sq - [tS;] tn ustop/ts_pzd_ [c2] consonants ustop/ts_pzd2 [c2] consonants ustop/ts_pzd3 [tS;] hr @@ -1094,14 +1012,12 @@ vdiph2/i@_2 [i@] en-wm vdiph2/i@_3 [iR] de vdiph2/ie [i@] en-wi [ie] fi - [ie] mt vdiph2/ie_2 [ie] lt [ie] lv vdiph2/ii@ [i@] en [i@3] en [i@] en-us [ja] ru -vdiph2/ii@_2 [e] kk vdiph2/ii@_3 [i@] vi vdiph2/iioo [io] zh vdiph2/iu [iU] base2 @@ -1109,12 +1025,10 @@ vdiph2/iu [iU] base2 [iu] zhy vdiph2/iu_2 [iu] fi [iu] lv - [iu] mt vdiph2/iu_3 [iu] af vdiph2/iu_4 [Iu] cy [Yu] cy vdiph2/iy [iy] fi - [iy] mt vdiph2/o@ [o@] af [u@] zh vdiph2/oa [Oa] ro @@ -1128,7 +1042,6 @@ vdiph2/u#@ [U@] en-sc vdiph2/uaa [uo] lt [uo] lv vdiph2/uo [uo] fi - [uo] mt vdiph2/uu@ [U@] en [U@] en-n [U@] en-wm @@ -1137,7 +1050,6 @@ vdiph2/uw_2 [u:] en vdiph2/uw_3 [yU] ro vdiph2/uw_4 [u:] en-n vdiph2/uw_6 [u:] en-us - [u#] kk vdiph2/y@ [y@] zh vdiph2/y#@ [Y@] af vdiph2/ye [yE] sq @@ -1145,7 +1057,6 @@ vdiph2/yu [yU] nl [yu] zh vdiph2/y-y# [yY] fi [y@] vi - [yY] mt vdiph/8u [oU] en-us [ou] zh vdiph/aae [aI] en-us @@ -1157,13 +1068,11 @@ vdiph/aai [aI] ne vdiph/aai_2 [AI] af [AY] cy vdiph/aai_3 [ai] fi - [ai] mt vdiph/aau [au] fi [au] lt [au] lv [aU] is [aU:] is - [au] mt vdiph/aau_2 [aU] en-wi [VU] nl [aU] la @@ -1172,7 +1081,6 @@ vdiph/aau_3 [aU] hi [aU] ne [aU] kn [aU] ml - [aU] te vdiph/aau_4 [aU] vi vdiph/aau_6 [aU] de vdiph/ae [E:] fr-ca @@ -1193,7 +1101,6 @@ vdiph/ai [aI] base2 [aI] id [aI] hy [aI] da - [aI] te [aI] kl vdiph/ai_2 [aI] en [aI] cy @@ -1209,7 +1116,6 @@ vdiph/ai_7 [aI] en-sc [aI] is [aI:] is vdiph/ai_8 [aI] ta - [aI] dv [aI] si vdiph/aoo [aU] en-us [aU] it @@ -1217,7 +1123,6 @@ vdiph/au [aU] en [aU] af [aU] ta [a:U] vi - [aU] prs [aU] si vdiph/au# [aU] en-sc vdiph/au_2 [au] zhy @@ -1238,14 +1143,12 @@ vdiph/eei [EI] base2 [eI] ne [EI] vi [eI] hy - [eI] prs vdiph/eei_2 [eI] eo [ei] fi [ei] lt [ei] lv [eI] id [eI] fa - [ei] mt vdiph/eei_3 [eI] lt [eI] sk [eI] ku @@ -1260,7 +1163,6 @@ vdiph/eeu_3 [aU] en-n [aU] en-wm [eU] ku vdiph/eey [ey] fi - [ey] mt vdiph/ei [eI] base2 [e:] nl [eI] la @@ -1279,20 +1181,17 @@ vdiph/eu [eU] base2 [eU] pt [eU] vi vdiph/eu_2 [eu] fi - [eu] mt vdiph/@i [Yi] et [@I] vi [@:I] vi vdiph/&i [&i] fi [&i] et [aI] hi - [i] mt vdiph/@i_2 [eI] af [@I] cy [@Y] cy [@] am vdiph/i@_2 [e@] af - [e@] tn vdiph/@i_3 [eI] en-wm [@I] ro [ai] zhy @@ -1316,7 +1215,7 @@ vdiph/ooi [OI] en [oi] lv [OI] no [oi] zhy - [oi] mt + [OI] id vdiph/ooi_2 [OI] af [oI] eo vdiph/ooi_3 [OI] en-rp @@ -1328,7 +1227,6 @@ vdiph/oou [oU] cs vdiph/ou [ou] fi [oU] ne [ou] zhy - [ou] mt vdiph/ou_2 [oU] lt [oU] sk [oU] ro @@ -1356,7 +1254,6 @@ vdiph/ui_2 [uI] af vdiph/ui_3 [uI] cy [uY] cy vdiph/ui_4 [ui] fi - [ui] mt vdiph/Vi [VI] ne vdiph/Vu [@U] af [VU] ne @@ -1369,13 +1266,10 @@ vdiph/yi [yi] fi [yI] grc [u-I] no [yi] zh - [yi] mt vdiph/y#i [Yi] fi - [Yi] mt vdiph/y#i_2 [Yy] is [Yy:] is vdiph/y#y [Yy] fi - [Yy] mt vdiph/y#y_2 [Yy] af [eoi] zhy vdiph/y#y_3 [Y:] nl @@ -1392,7 +1286,6 @@ vnasal/aa_n2 [A~] en vnasal/aa_n3 [A~] af vnasal/aa_n4 [A~] de [A~] fr - [A~] ht vnasal/a#_n [&~] pt vnasal/a#_n2 [&~] pt vnasal/a#u_n [&U~] pt @@ -1413,7 +1306,6 @@ vnasal/i_n2 [i~] hi vnasal/oi_n [oI~] pt vnasal/o_n [o~] hi [o~] pt - [O~] ht vnasal/o_n2 [o~] af vnasal/o_n4 [O~] fr vnasal/oo_n2 [O~] en @@ -1430,7 +1322,6 @@ vnasal/u_n [U~] hi vnasal/V_n [V~] hi vnasal/W_n [E~] fr [W~] fr - [E~] ht voc/bh [B] base voc/dh [D] base voc/dh_ [D] base @@ -1450,7 +1341,6 @@ voc/v [v] base [v] et [v] fr [v;] ro - [v] mt voc/v_ [B] base [v] base [v] fi @@ -1458,7 +1348,6 @@ voc/v_ [B] base [v] fr [v#] es [v;] ro - [v] mt voc/v# [v#] base voc/v#_ [v#] base voc/v2 [v#] es @@ -1488,8 +1377,6 @@ voc/z_ [z] base [z] fr [z;] ro [z] sq - [dz] bo - [dz#] bo voc/zh [Z] base [z.] base [R^] sk @@ -1514,9 +1401,6 @@ vowel/@ [@] base [@] hy [@] ka [@] sl - [@] wo - [@:] wo - [@] te vowel/@- [@-] base [r*] hr [@-] da @@ -1532,7 +1416,6 @@ vowel/& [a] en-rp [&#] da [?&#] da [a] fa - [&] az vowel/0 [0] en [O] hi [O] pt @@ -1541,19 +1424,15 @@ vowel/0_2 [0] en-n [O] pt-pt [o] sw [O] sl - [o] nso - [o] tn vowel/0_3 [O:] en-us [O] en-sc [0] en-rp [A] hu [A] fa - [0] tt vowel/@_2 [@:] vi [@] sq [V] sq [@/] sq - [V] tt vowel/&_2 [&] bn vowel/@_3 [@#] en [@] en-sc @@ -1578,7 +1457,6 @@ vowel/@_6 [@] en [W] fr [W2] fr vowel/8 [o-] zh - [8] kk vowel/8_2 [U] en-us [8] sv vowel/8_3 [eo] zhy @@ -1609,9 +1487,8 @@ vowel/a [a] base [a] it [a] zh [a] id - [a] sl - [a] bo [a] kl + [a] sl vowel/a# [a] base2 [a/] base2 [a#] en-sc @@ -1619,9 +1496,6 @@ vowel/a# [a] base2 [&] sr [a#] rw [a/] rw - [a] wo - [a] dv - [a:] dv vowel/a_2 [a] base2 [a] en-wi [A:] en-wi @@ -1644,8 +1518,6 @@ vowel/a#_2 [A] nl [a] is [a/] sw [a] ka - [a] nso - [a] te [a] si vowel/a_3 [a] en-sc [a/] en-sc @@ -1696,16 +1568,11 @@ vowel/a_5 [a:] ta [a] la [a] sv [a] sw - [a:] te - [a] tn - [a] kk vowel/a_6 [a] ca [a] vi [a] am - [a:] wo vowel/a_7 [a] fr [a-] fr - [a] ht vowel/a_8 [a] en [a] sk [A] da @@ -1716,7 +1583,6 @@ vowel/aa [a:] et [A:] no [aa] zhy [a] hy - [a] az vowel/aa# [O] en-us [0] en-wi [a2] fi @@ -1726,10 +1592,8 @@ vowel/aa_2 [A:] en [A:] cy [A:] ga [A] zh - [A@] tn vowel/aa_3 [A:] af [A] sq - [A] prs vowel/aa_4 [A:] sv [O] vi vowel/aa_5 [A:] en-n @@ -1744,7 +1608,6 @@ vowel/aa_8 [0] en-us [A1] et [A] nl [a:] is - [A] tt [a] ko vowel/aa_9 [a] fi [a] et @@ -1752,9 +1615,6 @@ vowel/aa_9 [a] fi [a] bn [a] ne [a] pa - [a] ak - [a] mt - [A] kk vowel/@_bck [@] hi [V] ne [@/] ne @@ -1792,14 +1652,9 @@ vowel/e [e] base [e] sq [e] da [?e] da + [E] kl [e] rw [e#] rw - [e] wo - [e:] wo - [e] dv - [e:] dv - [e:] te - [E] kl vowel/e# [I] en-sc [e] et [E] kl @@ -1816,9 +1671,6 @@ vowel/e_2 [i] en-n vowel/e_3 [e:] hu [e] ku vowel/e_5 [i] en-sc -vowel/e_6 [e] ht - [e] ak - [e:] tt vowel/e_7 [e:] et vowel/e_8 [E:] de [e] fr @@ -1826,7 +1678,6 @@ vowel/e_8 [E:] de vowel/ee [E] en-n [E] sv [e] ka - [&] tt vowel/e_e [E] en-sc [E:] is vowel/ee# [E#] pl @@ -1848,21 +1699,15 @@ vowel/ee_2 [E] cy [E#] ku [&] da [?&] da - [&] kk vowel/ee#_2 [E1] et [E-] sv [E#] sq - [e] tn vowel/ee_3 [&] af [&:] af [E] pt [E] vi vowel/ee_4 [E] sq vowel/ee_5 [E] en - [E] ak - [E] wo - [E:] wo - [E] tn [E] ko vowel/ee_6 [&] sk [E3] sv @@ -1898,10 +1743,8 @@ vowel/e_mid [E] en-rp [E2] id [e] hy [e] ka - [E] prs - [E] sl - [E] ht [e] si + [E] sl vowel/e_mid2 [E] af [E] de [E2] de @@ -1923,17 +1766,11 @@ vowel/e_mid2 [E] af [E] da [?E] da [e] fa - [e] nso - [e] az [e] am - [e] te [e:] si - [e] mt - [e] bo vowel/@_fnt [@] en-wi [@2] en-wi [@2] hr - [E] kk vowel/@_fr [3] en-n vowel/@_hgh [@] fr [@-] fr @@ -1964,18 +1801,10 @@ vowel/i [i] base [i] hy [i] ka [i] fa + [i] kl + [i:] si [i] rw [i#] rw - [i] prs - [i] nso - [i] ak - [i:] wo - [i:] dv - [i:] te - [i:] si - [i] bo - [i] tt - [i] kl vowel/i# [y:] cy vowel/i_2 [i2] de [i:] de @@ -1993,7 +1822,6 @@ vowel/i_4 [i] fi [i] vi [i] da [?i] da - [i] mt vowel/i_5 [i:] en-sc vowel/i#_5 [y] pt-pt [i/] pt-pt @@ -2011,8 +1839,6 @@ vowel/i_6 [i] hi [i] tr [i] ku [i] id - [i] dv - [i] te [i] si vowel/i#_6 [i.] zh vowel/i_7 [i:] et @@ -2023,7 +1849,6 @@ vowel/i#_7 [i1] et [u-] ko vowel/i_8 [i] et [i] fr - [i] ht vowel/i_en [i:] en [i:] en-us vowel/i_fnt [i:] en-wi @@ -2044,20 +1869,15 @@ vowel/ii [I] en-n [i] zhy [I] ku [I#] sq - [i] tn - [I] tt vowel/ii# [I#] en-us [Y] cy [Y] ru [I] ku [i] sq - [I] kk - [e] tt vowel/ii_2 [I] en [I] ga [i] zh [I] da - [I] mt vowel/ii#_2 [y] pl [y] am vowel/ii_3 [I] cy @@ -2073,13 +1893,11 @@ vowel/ii_3 [I] cy vowel/ii#_3 [I2] en-us vowel/ii_4 [I2] en [I] en-us - [I2] tn vowel/ii_5 [i] ta [i] bg [I] la [i] zh [I] tr - [i] az [i] am vowel/ii_6 [I] en-wm [I] en-wi @@ -2090,11 +1908,9 @@ vowel/ii_6 [I] en-wm [i/] pt [i] is [I] sq - [i] wo vowel/ii_7 [i] en [i] ga [i] sq -vowel/ii_8 [i] kk vowel/ii_final [i] en-us [i] en-rp vowel/@_low [@] en-rp @@ -2143,15 +1959,9 @@ vowel/o [o] base2 [o:] sv [o] id [o] hy + [o] kl [o] rw [o#] rw - [o] ak - [o] wo - [o:] wo - [o] te - [o:] te - [o] bo - [o] kl vowel/o_2 [o:] cy [o:] hi [o:] hu @@ -2163,7 +1973,6 @@ vowel/o_2 [o:] cy vowel/o-_2 [V] en-n [V] en-wm vowel/o_3 [oU] en-sc - [o] kk vowel/o-_3 [U] en-rp vowel/o-_4 [o] ro [o] am @@ -2173,15 +1982,13 @@ vowel/o_6 [O] nl [O:] nl vowel/o_7 [o] ku vowel/o_8 [o] fr - [o] sl - [o] ht [o] ko + [o] sl vowel/oe [W] af [W] de [W] hy [W] da [?W] da - [W] tt vowel/oe_2 [W] no vowel/oe_4 [W] sv vowel/o_mid [U@] en-rp @@ -2192,12 +1999,7 @@ vowel/o_mid [U@] en-rp [o] bg [o] tr [o] fa - [o] az - [o] dv - [o:] dv - [o] tt vowel/o_mid2 [O] fr - [O] ht vowel/oo [o] base [O:] en-sc [O] en-wi @@ -2214,9 +2016,6 @@ vowel/oo [o] base [o] zhy [O] tr [O] id - [o] prs - [O] wo - [O:] wo vowel/oo_1 [O:] en-n [O:] en-rp [O@] en-rp @@ -2239,14 +2038,11 @@ vowel/oo_1 [O:] en-n [o] ka [o] si [o:] si - [O] tn - [o] mt vowel/oo_2 [0] en-sc [O] cy [o] cs [0] da [?0] da - [O] ak [@] ko vowel/oo_3 [O] af vowel/oo_4 [O] base2 @@ -2300,11 +2096,6 @@ vowel/u [u] base [u:] cs [U] la [u] id - [u] prs - [u] ak - [u:] wo - [u] bo - [u] tt vowel/u# [u:] en-sc [Y] tr vowel/u_2 [u1] fi @@ -2314,9 +2105,8 @@ vowel/u_2 [u1] fi [u] ro [u] is [u] tr - [u] sl [u] am - [u] wo + [u] sl vowel/u#_2 [u-] sv vowel/u#_3 [U] ta [U:] ta @@ -2325,9 +2115,6 @@ vowel/u#_4 [U] en-sc [y] ml vowel/u_5 [U1] et [u] sw - [u] nso - [u] az - [u] tn vowel/u#_5 [y] vi vowel/u_6 [u] ta [u2] ta @@ -2335,14 +2122,9 @@ vowel/u_6 [u] ta [U] pt-pt [u] pt-pt [u] ku - [u] dv - [u:] dv - [u] te - [u:] te [u] si [u:] si vowel/u#_7 [@] tr - [@] az vowel/u_bck [u] base2 [U] cy [u:] ga @@ -2373,37 +2155,31 @@ vowel/u_bck [u] base2 [u] da [?u] da [u] ka + [u] ko [u] rw [u#] rw - [u] mt - [u] ko vowel/u_bck2 [u] et [u] fr [u:] fr [u:] la [u] es [u] fa - [u] ht [u] kl vowel/u_bck3 [u:] et - [u] kk vowel/uu [U] en [U] en-n [U] en-wm [U] ga - [U] tn vowel/uu# [U] ku vowel/uu_2 [U] base2 [U] de [U] ca [U] tr - [U] kk vowel/uu#_2 [u:] en-rp vowel/uu_3 [u] af [y] zh vowel/uu_4 [U] fi [U] sv - [U] mt vowel/uu_bck [U] en-wi [U] fr-ca [U] hi @@ -2451,9 +2227,6 @@ vowel/y [y] base2 [y] sq [y] da [?y] da - [y] az - [y] mt - [y] tt vowel/y# [Y] base2 [3:] en-wm [Y:] de @@ -2466,18 +2239,15 @@ vowel/y# [Y] base2 [Y] ro [oe] zhy [W] tr - [Y] mt vowel/y## [y] is vowel/y_2 [y:] la [y] zh vowel/y#_2 [Y] hu [Y:] sv - [W] az vowel/y_3 [y] af vowel/y#_3 [W] is [W:] is vowel/y_4 [y:] no -vowel/y#_4 [Y] kk vowel/y_5 [y:] sv [y] tr [y] ku @@ -2620,9 +2390,6 @@ vwl_ru/oo [O] ru vwl_ru/u [u] ru vwl_ru/u# [u#] ru vwl_ru/u#u [u"] ru -vwl_tn/@ [@] tn -vwl_tn/I [I] tn -vwl_tn/r@ [@] tn vwl_zh/aang [aang] zhy vwl_zh/aau [Au] zh vwl_zh/a_n [a] zh @@ -2707,7 +2474,6 @@ x/d_ [d] base [d] hr [d] is [d] sq - [d] mt x/d_dnt [d[] base [d] base2 [d] fi @@ -2716,7 +2482,6 @@ x/d_dnt [d[] base [d] hu [d] lt [d] pl - [d] mt x/d_pzd [d^] et [d;] lt [d;] pl diff --git a/phsource/mbrola/id1 b/phsource/mbrola/id1 index 3fe9587a..a55ab95f 100644 --- a/phsource/mbrola/id1 +++ b/phsource/mbrola/id1 @@ -1,6 +1,5 @@ -// CR1 doesn't like same phonemes twice -0 e E 5 e _ +// ID1 and MS1 don't like same phonemes twice 0 s s 5 s _ 0 ? k 5 k _ 0 t t 5 t _ @@ -8,6 +7,10 @@ 0 n n 5 n _ 0 p p 5 p _ 0 l/ l 5 l _ +0 h h 5 h _ +0 k k 5 k _ +0 z z 5 z _ +0 D D 5 z _ 0 l/2 NULL 0 l 0 l/ NULL 0 l @@ -28,10 +31,13 @@ 0 a NULL 0 V 0 E NULL 0 e +0 E2 NULL 0 e 0 i NULL 0 I 0 o NULL 0 Q 0 O NULL 0 Q 0 u NULL 0 U +// 'id1' has phonemes OI aI aU + 0 n^ NULL 0 nY 0 ? NULL 0 k @@ -40,3 +46,35 @@ 0 R NULL 0 r 0 x NULL 0 h +// some English phonemes +0 A: NULL 60 V r +0 A@ NULL 60 V r +0 eI NULL 0 e +0 oU NULL 60 Q U +0 u: NULL 0 U +0 i: NULL 0 I +0 I2 NULL 0 I +0 I# NULL 0 I +0 3 NULL 0 @ +0 3: NULL 0 @ +0 e@ NULL 0 e +0 i@ NULL 60 I @ +0 i@3 NULL 60 I r +0 o@ NULL 60 Q @ +0 O@ NULL 60 Q @ +0 O: NULL 80 Q @ +0 U@ NULL 60 U @ +0 0 NULL 0 Q +0 a# NULL 0 @ +0 aa NULL 0 V +0 @L NULL 50 @ l +0 aI @ 5 aI _ +0 aI 3 5 aI _ +0 aU @ 5 aU _ +0 aI@ NULL 75 V @ +0 aI3 NULL 75 V r +0 aU@ NULL 75 V @ + +0 Z NULL 60 z j +0 T NULL 0 t +0 D NULL 0 z diff --git a/phsource/ph_bengali b/phsource/ph_bengali index efb46a97..17933f2f 100755 --- a/phsource/ph_bengali +++ b/phsource/ph_bengali @@ -8,6 +8,10 @@ phoneme V // inherent vowel, can be [O] or [o] vowel flag1 starttype #o endtype #o length 200 + IF thisPh(isWordEnd) AND prevPhW(isNotVowel) AND prev2PhW(isNotVowel) THEN + ChangePhoneme(NULL) + ENDIF + IF thisPh(isFirstVowel) THEN IF nextVowel(i) OR nextVowel(u) THEN ChangePhoneme(o) diff --git a/phsource/ph_indonesian b/phsource/ph_indonesian index 38dee3a6..d45adec2 100644 --- a/phsource/ph_indonesian +++ b/phsource/ph_indonesian @@ -3,6 +3,9 @@ phoneme @ vowel starttype #@ endtype #@ unstressed length 140 + IF prevPh(@) THEN + InsertPhoneme(_|) + ENDIF FMT(vowel/@_low) endphoneme @@ -11,6 +14,9 @@ endphoneme phoneme a vowel starttype #a endtype #a length 180 + IF prevPh(a) THEN + InsertPhoneme(_|) + ENDIF ChangeIfUnstressed(a/) FMT(vowel/a) endphoneme @@ -19,6 +25,9 @@ endphoneme phoneme E vowel starttype #e endtype #e length 180 + IF prevPh(#e) THEN + InsertPhoneme(_|) + ENDIF ChangeIfUnstressed(@) FMT(vowel/e_mid) endphoneme @@ -26,6 +35,9 @@ endphoneme phoneme E2 // as [E] but don't reduce to [@] vowel starttype #e endtype #e length 180 + IF prevPh(#e) THEN + InsertPhoneme(_|) + ENDIF FMT(vowel/e_mid) endphoneme @@ -33,6 +45,9 @@ endphoneme phoneme e vowel starttype #e endtype #e length 180 + IF prevPh(#e) THEN + InsertPhoneme(_|) + ENDIF FMT(vowel/e) endphoneme @@ -40,7 +55,9 @@ endphoneme phoneme i vowel starttype #i endtype #i length 180 - IfNextVowelAppend(;) + IF prevPh(i) THEN + InsertPhoneme(_|) + ENDIF FMT(vowel/i_6) endphoneme @@ -48,6 +65,9 @@ endphoneme phoneme O vowel starttype #o endtype #o length 180 + IF prevPh(#o) THEN + InsertPhoneme(_|) + ENDIF FMT(vowel/oo) endphoneme @@ -55,6 +75,9 @@ endphoneme phoneme o vowel starttype #o endtype #o length 180 + IF prevPh(#o) THEN + InsertPhoneme(_|) + ENDIF FMT(vowel/o) endphoneme @@ -62,6 +85,9 @@ endphoneme phoneme u vowel starttype #u endtype #u length 180 + IF prevPh(u) THEN + InsertPhoneme(_|) + ENDIF FMT(vowel/u) endphoneme @@ -69,6 +95,12 @@ endphoneme phoneme aI vowel starttype #a endtype #i length 240 + IF prevPh(isVowel) THEN + InsertPhoneme(_|) + ENDIF + IF nextPh(isVowel) THEN + AppendPhoneme(_|) + ENDIF FMT(vdiph/ai) endphoneme @@ -78,9 +110,27 @@ phoneme eI FMT(vdiph/eei_2) endphoneme +phoneme OI + vowel starttype #o endtype #i + length 240 + IF prevPh(isVowel) THEN + InsertPhoneme(_|) + ENDIF + IF nextPh(isVowel) THEN + AppendPhoneme(_|) + ENDIF + FMT(vdiph/ooi) +endphoneme + phoneme aU vowel starttype #a endtype #u length 240 + IF prevPh(isVowel) THEN + InsertPhoneme(_|) + ENDIF + IF nextPh(isVowel) THEN + AppendPhoneme(_|) + ENDIF FMT(vdiph/au_4) endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index 86c6cbec..a7587850 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1864,6 +1864,20 @@ include ph_georgian phonemetable fa base include ph_farsi +// experimental + +phonemetable ko base +include ph_korean + +phonemetable kl base +include ph_greenlandic + +phonemetable am base +include ph_amhari + +phonemetable si hi +include ph_sinhala + //************************************************************************************** // The following lines are experimental, for future additions. @@ -1882,61 +1896,49 @@ include ph_kinyarwanda //phonemetable mn base //include ph_mongolian -phonemetable prs base -include ph_dari +//phonemetable prs base +//include ph_dari phonemetable sl sk include ph_slovenian -phonemetable gd base -include ph_s_gaelic +//phonemetable gd base +//include ph_s_gaelic -phonemetable nso base -include ph_northern-sotho +//phonemetable nso base +//include ph_northern-sotho -phonemetable ht fr -include ph_haitian +//phonemetable ht fr +//include ph_haitian -phonemetable az tr -include ph_azerbaijani +//phonemetable az tr +//include ph_azerbaijani -phonemetable ak base -include ph_akan +//phonemetable ak base +//include ph_akan -phonemetable am base -include ph_amhari +//phonemetable wo base +//include ph_wolof -phonemetable wo base -include ph_wolof +//phonemetable dv hi +//include ph_divehi -phonemetable dv hi -include ph_divehi +//phonemetable te hi +//include ph_telugu -phonemetable te hi -include ph_telugu - -phonemetable si hi -include ph_sinhala - -phonemetable tn base -include ph_setswana +//phonemetable tn base +//include ph_setswana -phonemetable mt base -include ph_maltese +//phonemetable mt base +//include ph_maltese -phonemetable bo hi -include ph_tibetan +//phonemetable bo hi +//include ph_tibetan -phonemetable kk base -include ph_kazakh +//phonemetable kk base +//include ph_kazakh -phonemetable tt base -include ph_tatar - -phonemetable ko base -include ph_korean - -phonemetable kl base -include ph_greenlandic +//phonemetable tt base +//include ph_tatar diff --git a/phsource/vwl_fr/trr b/phsource/vwl_fr/trr index af1e45affec629071c5a8836de2b8251d92396e1..7555690ac589182f8e878b3e2e649abe4cfc19ca 100755 GIT binary patch delta 96 zcmey!`H^#iGh@I+mq5mliPKD(Tx2GmmE+c6U|^60Vg?4IiQld>GEF|mI2$Tu0GHC8 m`0c>t5N2)0l*tXu`iu^fH!v$Q$?#0R%pAfBQYA9+!%+YW#~LjF delta 84 zcmey!`H^#iGh@m`m%z!!OlFhWSrk}J8GvB24$INWTNx!L>WfT%$k>4<5zMT^7&W

      0) { report = report + dictstr + wxString::Format(_T(" %d, "),err); @@ -2742,6 +2746,7 @@ int CompilePhoneme(int compile_phoneme) int count; int c; char *p; + int vowel_length_factor = 100; // for testing char number_buf[12]; char ipa_buf[N_ITEM_STRING+1]; PHONEME_TAB phoneme_out2; @@ -2844,6 +2849,11 @@ int CompilePhoneme(int compile_phoneme) case i_SET_LENGTH: value = NextItemMax(511); + if(phoneme_out->type == phVOWEL) + { + value = (value * vowel_length_factor)/100; + } + if(after_if == 0) { phoneme_out->std_length = value/2; diff --git a/src/compiledict.cpp b/src/compiledict.cpp index f360a084..eb4e1409 100644 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -470,12 +470,12 @@ static int compile_line(char *linebuf, char *dict_line, int *hash) } ix = 0; - if(isdigit(*p)) + if(IsDigit09(*p)) { ix += (*p-'0'); p++; } - if(isdigit(*p)) + if(IsDigit09(*p)) { ix = ix*10 + (*p-'0'); p++; @@ -542,7 +542,7 @@ static int compile_line(char *linebuf, char *dict_line, int *hash) case 1: if((c == '-') && multiple_words) { - if(isdigit(word[0])) + if(IsDigit09(word[0])) { multiple_numeric_hyphen = 1; } @@ -1156,7 +1156,7 @@ static void copy_rule_string(char *string, int &state) sxflags |= SUFX_M; break; default: - if(isdigit(c)) + if(IsDigit09(c)) value = (value*10) + (c - '0'); break; } @@ -1575,7 +1575,7 @@ static int compile_lettergroup(char *input, FILE *f_out) char item_length[N_LETTERGP_ITEMS]; p = input; - if(!isdigit(p[0]) || !isdigit(p[1])) + if(!IsDigit09(p[0]) || !IsDigit09(p[1])) { fprintf(f_log,"%5d: Expected 2 digits after '.L'\n",linenum); error_count++; diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 3d2e37ce..7d8cb09b 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -607,7 +607,7 @@ char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int break; // # is subscript-h, but only for consonants // ignore digits after the first character - if(!first && isdigit(c)) + if(!first && IsDigit09(c)) continue; if((c >= 0x20) && (c < 128)) @@ -3362,7 +3362,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f if(((c = *word1++)==0) || (c == ' ')) break; - if((c=='.') && (length > 0) && (isdigit(word[length-1]))) + if((c=='.') && (length > 0) && (IsDigit09(word[length-1]))) break; // needed for lang=hu, eg. "december 2.-ig" word[length] = c; diff --git a/src/numbers.cpp b/src/numbers.cpp index 44d11b98..242924ac 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -604,7 +604,7 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) char ph_buf[80]; char ph_buf2[80]; char ph_alphabet[80]; - char hexbuf[6]; + char hexbuf[12]; static char pause_string[] = {phonPAUSE, 0}; ph_buf[0] = 0; @@ -981,7 +981,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) flags[0] = 0; flags[1] = 0; - if(((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) || isdigit(word[-2])) + if(((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) || IsDigit09(word[-2])) return(0); // not '2xx' word_start = word; @@ -1020,7 +1020,7 @@ int TranslateRoman(Translator *tr, char *word, char *ph_out, WORD_TAB *wtab) n_digits++; } - if(isdigit(word[0])) + if(IsDigit09(word[0])) return(0); // eg. 'xx2' acc += prev; @@ -1756,12 +1756,12 @@ bool CheckThousandsGroup(char *word, int group_len) // Is this a group of 3 digits which looks like a thousands group? int ix; - if(isdigit(word[group_len]) || isdigit(-1)) + if(IsDigit09(word[group_len]) || IsDigit09(-1)) return(false); for(ix=0; ix < group_len; ix++) { - if(!isdigit(word[ix])) + if(!IsDigit09(word[ix])) return(false); } return(true); @@ -1812,7 +1812,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned digit_lookup = buf_digit_lookup; number_control = control; - for(ix=0; isdigit(word[ix]); ix++) ; + for(ix=0; IsDigit09(word[ix]); ix++) ; n_digits = ix; value = this_value = atoi(word); @@ -1821,14 +1821,14 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned group_len = 4; // is there a previous thousands part (as a previous "word") ? - if((n_digits == group_len) && (word[-2] == tr->langopts.thousands_sep) && isdigit(word[-3])) + if((n_digits == group_len) && (word[-2] == tr->langopts.thousands_sep) && IsDigit09(word[-3])) { prev_thousands = 1; } else if((tr->langopts.thousands_sep == ' ') || (tr->langopts.numbers & NUM_ALLOW_SPACE)) { // thousands groups can be separated by spaces - if((n_digits == 3) && !(wtab->flags & FLAG_MULTIPLE_SPACES) && isdigit(word[-2])) + if((n_digits == 3) && !(wtab->flags & FLAG_MULTIPLE_SPACES) && IsDigit09(word[-2])) { prev_thousands = 1; } @@ -1850,7 +1850,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned } } - if((word[ix] == '.') && !isdigit(word[ix+1]) && !isdigit(word[ix+2]) && !(wtab[1].flags & FLAG_NOSPACE)) + if((word[ix] == '.') && !IsDigit09(word[ix+1]) && !IsDigit09(word[ix+2]) && !(wtab[1].flags & FLAG_NOSPACE)) { // remove dot unless followed by another number word[ix] = 0; @@ -1879,7 +1879,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned { ordinal = 2; } - else if(!isdigit(suffix[0])) // not _#9 (tab) + else if(!IsDigit09(suffix[0])) // not _#9 (tab) { sprintf(string,"_#%s",suffix); if(Lookup(tr, string, ph_ordinal2)) @@ -1904,7 +1904,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if((word[0] == '0') && (prev_thousands == 0) && (word[1] != ' ') && (word[1] != tr->langopts.decimal_sep)) { - if((n_digits == 2) && (word[3] == ':') && isdigit(word[5]) && isspace(word[7])) + if((n_digits == 2) && (word[3] == ':') && IsDigit09(word[5]) && isspace(word[7])) { // looks like a time 02:30, omit the leading zero } @@ -1973,7 +1973,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned } } - if((word[n_digits] == tr->langopts.decimal_sep) && isdigit(word[n_digits+1])) + if((word[n_digits] == tr->langopts.decimal_sep) && IsDigit09(word[n_digits+1])) { // this "word" ends with a decimal point Lookup(tr, "_dpt", ph_append); @@ -2018,8 +2018,8 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned char *p2; // look for combinations of the number with the next word p = word; - while(isdigit(p[1])) p++; // just use the last digit - if(isdigit(p[-1])) + while(IsDigit09(p[1])) p++; // just use the last digit + if(IsDigit09(p[-1])) { p2 = p - 1; if(LookupDictList(tr, &p2, buf_digit_lookup, flags, FLAG_SUFX, wtab)) // lookup 2 digits @@ -2082,7 +2082,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned n_digits++; decimal_count = 0; - while(isdigit(word[n_digits+decimal_count])) + while(IsDigit09(word[n_digits+decimal_count])) decimal_count++; // if(decimal_count > 1) @@ -2101,7 +2101,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned decimal_count--; n_digits++; } - if((decimal_count <= max_decimal_count) && isdigit(word[n_digits])) + if((decimal_count <= max_decimal_count) && IsDigit09(word[n_digits])) { LookupNum3(tr, atoi(&word[n_digits]), buf1, 0,0,0); strcat(ph_out,buf1); @@ -2152,7 +2152,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned } } - while(isdigit(c = word[n_digits]) && (strlen(ph_out) < (N_WORD_PHONEMES - 10))) + while(IsDigit09(c = word[n_digits]) && (strlen(ph_out) < (N_WORD_PHONEMES - 10))) { // speak any remaining decimal fraction digits individually value = word[n_digits++] - '0'; @@ -2165,7 +2165,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned if(Lookup(tr, "_dpt2", buf1)) strcat(ph_out,buf1); - if((c == tr->langopts.decimal_sep) && isdigit(word[n_digits+1])) + if((c == tr->langopts.decimal_sep) && IsDigit09(word[n_digits+1])) { Lookup(tr, "_dpt", buf1); strcat(ph_out,buf1); diff --git a/src/readclause.cpp b/src/readclause.cpp index b701d854..ea8bcbbb 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -1287,10 +1287,10 @@ static int attrnumber(const wchar_t *pw, int default_value, int type) {//================================================================== int value = 0; - if((pw == NULL) || !isdigit(*pw)) + if((pw == NULL) || !IsDigit09(*pw)) return(default_value); - while(isdigit(*pw)) + while(IsDigit09(*pw)) { value = value*10 + *pw++ - '0'; } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index f9c2c8f7..8d47553c 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.03b 22.Mar.13"; +const char *version_string = "1.47.03c 23.Mar.13"; const int version_phdata = 0x014701; int option_device_number = -1; @@ -615,6 +615,7 @@ static int CountVowelPosition(PHONEME_LIST *plist) static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, USHORT *p_prog, WORD_PH_DATA *worddata) {//======================================================================================================================== int which; + int ix; unsigned int data; int instn; int instn2; @@ -705,6 +706,21 @@ static bool InterpretCondition(Translator *tr, int control, PHONEME_LIST *plist, return(false); // no previous vowel plist = &(worddata->prev_vowel); break; + + case 9: // next3PhW + for(ix=1; ix<=3; ix++) + { + if(plist[ix].sourceix) + return(false); + } + plist = &plist[3]; + break; + + case 10: // prev2PhW + if((plist[0].sourceix) || (plist[-1].sourceix)) + return(false); + plist-=2; + break; } if((which == 0) || (which == 5)) diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index fe5b5867..066edfd5 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -975,6 +975,7 @@ SetLengthMods(tr,3); // all equal break; case L('i','d'): // Indonesian + case L('m','s'): // Malay { static const short stress_lengths_id[8] = {160, 200, 180, 180, 0, 0, 220, 240}; static const unsigned char stress_amps_id[8] = {16,18, 18,18, 20,22, 22,21 }; @@ -1312,7 +1313,7 @@ SetLengthMods(tr,3); // all equal tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable - + tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words. Need to allow "bw'" prefix tr->langopts.numbers = NUM_HUNDRED_AND | NUM_AND_UNITS | NUM_DFRACTION_2 | NUM_AND_HUNDRED; tr->langopts.numbers2 = 0x200; // say "thousands" before its number } @@ -1429,6 +1430,8 @@ SetLengthMods(tr,3); // all equal tr->langopts.vowel_pause = 1; tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; + tr->langopts.max_initial_consonants = 4; // for example: mwngi + tr->langopts.numbers = NUM_AND_UNITS | NUM_HUNDRED_AND | NUM_SINGLE_AND | NUM_OMIT_1_HUNDRED; tr->langopts.break_numbers = 0x49249268; // for languages which have numbers for 100,000 and 1,000,000 diff --git a/src/translate.cpp b/src/translate.cpp index cc8977c1..eeafb2c5 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -374,6 +374,7 @@ void SetLengthMods(Translator *tr, int value) } + int IsAlpha(unsigned int c) {//======================== // Replacement for iswalph() which also checks for some in-word symbols @@ -429,8 +430,8 @@ int IsAlpha(unsigned int c) return(0); } -static int IsDigit09(unsigned int c) -{//========================= +int IsDigit09(unsigned int c) +{//============================ if((c >= '0') && (c <= '9')) return(1); return(0); @@ -2311,10 +2312,10 @@ static int EmbeddedCommand(unsigned int &source_index) source_index++; } - if(isdigit(source[source_index])) + if(IsDigit09(source[source_index])) { value = atoi(&source[source_index]); - while(isdigit(source[source_index])) + while(IsDigit09(source[source_index])) source_index++; } @@ -3331,7 +3332,7 @@ if((c == '/') && (tr->langopts.testing & 2) && IsDigit09(next_in) && IsAlpha(pre while(pn < &number_buf[sizeof(number_buf)-20]) { - if(!isdigit(c = *pw++) && (c != tr->langopts.decimal_sep)) + if(!IsDigit09(c = *pw++) && (c != tr->langopts.decimal_sep)) break; *pn++ = c; diff --git a/src/translate.h b/src/translate.h index 6ce17c3d..898cd9b7 100644 --- a/src/translate.h +++ b/src/translate.h @@ -709,6 +709,7 @@ void InitNamedata(void); void InitText(int flags); void InitText2(void); int IsDigit(unsigned int c); +int IsDigit09(unsigned int c); int IsAlpha(unsigned int c); int IsVowel(Translator *tr, int c); int isspace2(unsigned int c); diff --git a/src/voices.cpp b/src/voices.cpp index be7da4f4..bdaeec1d 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -601,7 +601,7 @@ voice_t *LoadVoice(const char *vname, int control) // which directory to look for a named voice. List of voice names, must end in a space. static const char *voices_asia = - "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; + "fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta tr vi vi-hue zh zh-yue "; static const char *voices_europe = "an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; @@ -1134,7 +1134,7 @@ static char *ExtractVoiceVariantName(char *vname, int variant_num, int add_dir) // The voice name has a +variant suffix variant_num = 0; *p++ = 0; // delete the suffix from the voice name - if(isdigit(*p)) + if(IsDigit09(*p)) { variant_num = atoi(p); // variant number } From d781d100195f16ba862101ce65ec8167c7b14cc1 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 26 Mar 2013 01:25:20 +0000 Subject: [PATCH 19/23] 1.47.03c (from http://espeak.sourceforge.net/test/latest.html) --- dictsource/ms_list | 0 dictsource/ms_rules | 0 dictsource/pa_list | 492 +++++++++++++------------- dictsource/si_list | 22 +- dictsource/si_rules | 28 +- espeak-data/voices/asia/ms | 17 + espeak-data/voices/test/bn | 3 + phsource/ph_portugal | 17 + phsource/ph_sinhala | 41 ++- platforms/windows/make_espeak.iss | 2 +- platforms/windows/make_espeakedit.iss | 12 +- 11 files changed, 335 insertions(+), 299 deletions(-) mode change 100755 => 100644 dictsource/ms_list mode change 100755 => 100644 dictsource/ms_rules create mode 100644 espeak-data/voices/asia/ms create mode 100644 espeak-data/voices/test/bn diff --git a/dictsource/ms_list b/dictsource/ms_list old mode 100755 new mode 100644 diff --git a/dictsource/ms_rules b/dictsource/ms_rules old mode 100755 new mode 100644 diff --git a/dictsource/pa_list b/dictsource/pa_list index b157c47d..538d31b4 100644 --- a/dictsource/pa_list +++ b/dictsource/pa_list @@ -1,246 +1,246 @@ -// This file is UTF8 encoded -// Punjabi/Gurmukhi - -// Numbers -_0 z'iRo -_1 'Ik: -_2 d'o -_3 t'I~n -_4 c'aR -_5 p'VnJ -_6 c#'e -_7 s'Vt: -_8 'Vt.#: -_9 n'O~ -_10 d'Vs -_11 gI'aRa~ -_12 b'aRa~ -_13 t'eRa~ -_14 c'Oda~ -_15 p'Vnd@Ra~ -_16 s'ol.a~ -_17 s@t'aRa~ -_18 Vt.#'aRa~ -_19 'Unni -_20 v'iH -_21 Ik:i -_22 b'ai -_23 t'ei -_24 c'Ovi -_25 p'Vc:i -_26 c#'Vb:i -_27 s@t'ai -_28 Vt.#'ai -_29 Un'Vt:i -_30 t'iH -_31 Ik'Vt:i -_32 b'Vt:i -_33 t'et:i -_34 c'ONti -_35 p'ENti -_36 c#'Vt:i -_37 s'ENti -_38 Vt.#'Vt:i -_39 U~Nt'ali -_40 c'ali -_41 Ik@t'ali -_42 be'ali -_43 t@R@t'ali -_44 cUt'ali -_45 p@nt'ali -_46 c#I'ali -_47 s@nt'ali -_48 ,@R2@t'ali -_49 Un'VnJa -_50 p@nJ'aH -_51 ,@k@v'VnJa -_52 b@v'VnJa -_53 t,@R@v'VnJa -_54 cUR'VnJa -_55 p,@c@v'VnJa -_56 c#@p'VnJa -_57 s,@t@v'VnJa -_58 ,@t.#@v'VnJa -_59 Un.'at.# -_60 s'Vt.#: -_61 Ik'aH@t. -_62 b'aH@t. -_63 t@R'e~H@t. -_64 c'O~H@t. -_65 p'E~H@t. -_66 c#e'aH@t. -_67 s@t'aH@t. -_68 ,@t.#'aH@t. -_69 Un.'Vt:@R -_70 s'Vt:@R -_71 Ik'Vt:@R -_72 b@H'Vt:@R -_73 t@H'et:@R -_74 cOH'Vt:@R -_75 p@J'Vt:@R -_76 c#IH'Vt:@R -_77 s@t'Vt:@R -_78 Vt.#'Vt:@R -_79 Un.'asi -_80 'Vssi -_81 ,IkI;'asi -_82 bI;'asi -_83 t,@RI;'asi -_84 cUR'asi -_85 p@c'asi -_86 c#I;'asi -_87 s@t'asi -_88 Vt.#'asi -_89 Un'an@v,e~ -_90 n'Vb:e -_91 Ik'an@v,e~ -_92 b'an@v,e~ -_93 t@R'a~n@v,e~ -_94 cUR'an@v,e~ -_95 p@c'an@v,e~ -_96 c#I'an@ve~ -_97 s@t'an@ve~ -_98 Vt.#'an@ve~ -_99 n@R2'I~n@v,e~ - -_0C s'O -_0M1 H@J'aR -_0M2 l'Vk#: // 100,000 -_0M3 k'VRoR // 10,000,000 -_0M4 'VR@b // 1,000,000,000 -_0M5 k#'VR@b // 100,000,000,000 - -_dpt _d@s@ml'o: - - -// character names -ਂ bInd'i -ੰ tIpp'i -ੱ VddVk -ਃ visaRg -੍ hVlVnt - -ਅ 'ERV -ੲ 'IRI -ੳ 'URV -_ਆ 'ERV||kVnn'a -_ਇ 'IRI||sIh'aRi -_ਈ 'IRI||bIh'aRi -_ਉ 'URV||'OnkaR -_ਊ 'URV||dUl'EnkaR -_ਏ 'IRI||l'avam -_ਐ 'ERV||dUl'avam -_ਓ 'URV||hoR'a -_ਔ 'ERV||kVnOR'a - -ਾ kVnn'a -ਿ sIh'aRi -ੀ bIh'aRi -ੁ OnkaR -ੂ dUl'EnkaR -ੇ l'ava~ -ੈ d@l'ava~ -ੋ hoR'a -ੌ kVn'ORa - - -// Punctuation -_?? 'Vk#:@R -। d.'Vnd.i -+ J'Vuma -= b@R'ab@R -% pR'VtIS@t -* t'aRa - - -// Pronouns -// ਪੁਰਖਵਾਚੀ ਪੜਨਾਂਵ -ਮੈਂ $u // main: I -ਮੈਨੂੰ $u -ਮੇਰਾ $u -ਮੇਰੀ $u -ਮੇਰੇ $u - -ਅਸੀਂ $u // we -ਸਾਨੂੰ $u -ਸਾਡਾ $u -ਸਾਡੀ $u -ਸਾਡੇ $u - - -ਆਪ $u // you(formal) -ਆਪਨੂੰ $u -ਆਪਦਾ $u -ਆਪਦੀ $u -ਆਪਦੇ $u - -ਤੂੰ $u // you (informal) -ਤੂਸੀਂ $u // you(formal) -ਤੁਹਾਨੂੰ $u -ਤੁਹਾਡਾ $u -ਤੁਹਾਡੀ $u -ਤੁਹਾਡੇ $u - -ਤੂੰ $u // you (informal) -ਤੈਨੂੰ $u -ਤੇਰਾ $u - -ਇਹ $u // he/she/it -ਇਸਤੋਂ $u -ਇਸਦਾ $u - -ਇਹ $u // they -ਇਨ੍ਹਾਂਨੂੰ $u -ਇਨ੍ਹਾਂਦਾ $u - -ਉਹ $u // he/she/it -ਉਸਤੋਂ $u -ਉਸਦਾ $u -ਉਸਦੀ $u -ਉਸਦੇ $u - -ਉਹ $u // they -ਉਨ੍ਹਾਂਨੂੰ $u // unhannu: them -ਉਨ੍ਹਾਂਦਾ $u -ਉਨ੍ਹਾਂਦੀ $u -ਉਨ੍ਹਾਂਦੇ $u - - - -// Prepositions/Postpositions -ਦਾ $u // dā: of, possessive particle -ਦੀ $u // dī -ਦੇ $u // de - -ਨੂੰ $u // nu: to -ਤੱਕ $u // tak: until, for(time) -ਬਿਨਾ $u $pause // without (preposition) -ਵਿਚ $u // in -ਵਿੱਚ $u // in -ਤੋਂ $u // ton: from, with, by - - - -// Verbs -ਹਾਂ $u // to be -ਹੋ $u -ਹੈ $u -ਹੈਂ $u -ਹਨ $u - -ਸੀ $u // si: past aux -ਸਨ $u // san: past aux - -ਰਹਾ $u // rahā: continuous -ਰਹੇ $u // rahe -ਰਹੀ $u // rahī - - - -$textmode -ਸੋਫਟਵਿਅਰ software -ਈਮੇਲ email -ਕੀਬੋਰਡ keyboard -ਬੋਰਡ board -$phonememode - +// This file is UTF8 encoded +// Punjabi/Gurmukhi + +// Numbers +_0 z'iRo +_1 'Ik: +_2 d'o +_3 t'I~n +_4 c'aR +_5 p'VnJ +_6 c#'e +_7 s'Vt: +_8 'Vt.#: +_9 n'O~ +_10 d'Vs +_11 gI'aRa~ +_12 b'aRa~ +_13 t'eRa~ +_14 c'Oda~ +_15 p'Vnd@Ra~ +_16 s'ol.a~ +_17 s@t'aRa~ +_18 Vt.#'aRa~ +_19 'Unni +_20 v'iH +_21 Ik:i +_22 b'ai +_23 t'ei +_24 c'Ovi +_25 p'Vc:i +_26 c#'Vb:i +_27 s@t'ai +_28 Vt.#'ai +_29 Un'Vt:i +_30 t'iH +_31 Ik'Vt:i +_32 b'Vt:i +_33 t'et:i +_34 c'ONti +_35 p'ENti +_36 c#'Vt:i +_37 s'ENti +_38 Vt.#'Vt:i +_39 U~Nt'ali +_40 c'ali +_41 Ik@t'ali +_42 be'ali +_43 t@R@t'ali +_44 cUt'ali +_45 p@nt'ali +_46 c#I'ali +_47 s@nt'ali +_48 ,@R2@t'ali +_49 Un'VnJa +_50 p@nJ'aH +_51 ,@k@v'VnJa +_52 b@v'VnJa +_53 t,@R@v'VnJa +_54 cUR'VnJa +_55 p,@c@v'VnJa +_56 c#@p'VnJa +_57 s,@t@v'VnJa +_58 ,@t.#@v'VnJa +_59 Un.'at.# +_60 s'Vt.#: +_61 Ik'aH@t. +_62 b'aH@t. +_63 t@R'e~H@t. +_64 c'O~H@t. +_65 p'E~H@t. +_66 c#e'aH@t. +_67 s@t'aH@t. +_68 ,@t.#'aH@t. +_69 Un.'Vt:@R +_70 s'Vt:@R +_71 Ik'Vt:@R +_72 b@H'Vt:@R +_73 t@H'et:@R +_74 cOH'Vt:@R +_75 p@J'Vt:@R +_76 c#IH'Vt:@R +_77 s@t'Vt:@R +_78 Vt.#'Vt:@R +_79 Un.'asi +_80 'Vssi +_81 ,IkI;'asi +_82 bI;'asi +_83 t,@RI;'asi +_84 cUR'asi +_85 p@c'asi +_86 c#I;'asi +_87 s@t'asi +_88 Vt.#'asi +_89 Un'an@v,e~ +_90 n'Vb:e +_91 Ik'an@v,e~ +_92 b'an@v,e~ +_93 t@R'a~n@v,e~ +_94 cUR'an@v,e~ +_95 p@c'an@v,e~ +_96 c#I'an@ve~ +_97 s@t'an@ve~ +_98 Vt.#'an@ve~ +_99 n@R2'I~n@v,e~ + +_0C s'O +_0M1 H@J'aR +_0M2 l'Vk#: // 100,000 +_0M3 k'VRoR // 10,000,000 +_0M4 'VR@b // 1,000,000,000 +_0M5 k#'VR@b // 100,000,000,000 + +_dpt _d@s@ml'o: + + +// character names +ਂ bInd'i +ੰ tIpp'i +ੱ VddVk +ਃ visaRg +੍ hVlVnt + +ਅ 'ERV +ੲ 'IRI +ੳ 'URV +_ਆ 'ERV||kVnn'a +_ਇ 'IRI||sIh'aRi +_ਈ 'IRI||bIh'aRi +_ਉ 'URV||'OnkaR +_ਊ 'URV||dUl'EnkaR +_ਏ 'IRI||l'avam +_ਐ 'ERV||dUl'avam +_ਓ 'URV||hoR'a +_ਔ 'ERV||kVnOR'a + +ਾ kVnn'a +ਿ sIh'aRi +ੀ bIh'aRi +ੁ OnkaR +ੂ dUl'EnkaR +ੇ l'ava~ +ੈ d@l'ava~ +ੋ hoR'a +ੌ kVn'ORa + + +// Punctuation +_?? 'Vk#:@R +। d.'Vnd.i ++ J'Vuma += b@R'ab@R +% pR'VtIS@t +* t'aRa + + +// Pronouns +// ਪੁਰਖਵਾਚੀ ਪੜਨਾਂਵ +ਮੈਂ $u // main: I +ਮੈਨੂੰ $u +ਮੇਰਾ $u +ਮੇਰੀ $u +ਮੇਰੇ $u + +ਅਸੀਂ $u // we +ਸਾਨੂੰ $u +ਸਾਡਾ $u +ਸਾਡੀ $u +ਸਾਡੇ $u + + +ਆਪ $u // you(formal) +ਆਪਨੂੰ $u +ਆਪਦਾ $u +ਆਪਦੀ $u +ਆਪਦੇ $u + +ਤੂੰ $u // you (informal) +ਤੂਸੀਂ $u // you(formal) +ਤੁਹਾਨੂੰ $u +ਤੁਹਾਡਾ $u +ਤੁਹਾਡੀ $u +ਤੁਹਾਡੇ $u + +ਤੂੰ $u // you (informal) +ਤੈਨੂੰ $u +ਤੇਰਾ $u + +ਇਹ $u // he/she/it +ਇਸਤੋਂ $u +ਇਸਦਾ $u + +ਇਹ $u // they +ਇਨ੍ਹਾਂਨੂੰ $u +ਇਨ੍ਹਾਂਦਾ $u + +ਉਹ $u // he/she/it +ਉਸਤੋਂ $u +ਉਸਦਾ $u +ਉਸਦੀ $u +ਉਸਦੇ $u + +ਉਹ $u // they +ਉਨ੍ਹਾਂਨੂੰ $u // unhannu: them +ਉਨ੍ਹਾਂਦਾ $u +ਉਨ੍ਹਾਂਦੀ $u +ਉਨ੍ਹਾਂਦੇ $u + + + +// Prepositions/Postpositions +ਦਾ $u // dā: of, possessive particle +ਦੀ $u // dī +ਦੇ $u // de + +ਨੂੰ $u // nu: to +ਤੱਕ $u // tak: until, for(time) +ਬਿਨਾ $u $pause // without (preposition) +ਵਿਚ $u // in +ਵਿੱਚ $u // in +ਤੋਂ $u // ton: from, with, by + + + +// Verbs +ਹਾਂ $u // to be +ਹੋ $u +ਹੈ $u +ਹੈਂ $u +ਹਨ $u + +ਸੀ $u // si: past aux +ਸਨ $u // san: past aux + +ਰਹਾ $u // rahā: continuous +ਰਹੇ $u // rahe +ਰਹੀ $u // rahī + + + +$textmode +ਸੋਫਟਵਿਅਰ software +ਈਮੇਲ email +ਕੀਬੋਰਡ keyboard +ਬੋਰਡ board +$phonememode + diff --git a/dictsource/si_list b/dictsource/si_list index 146a69a1..84d602a6 100644 --- a/dictsource/si_list +++ b/dictsource/si_list @@ -105,34 +105,34 @@ _dpt d'aS@m#@ // Consonants ක k@ -ඛ kh@ +ඛ k#@ ග g@ -ඝ gh@ +ඝ g#@ ඞ N@ ඟ N#g@ ච tS@ -ඡ tSh@ +ඡ tS#@ ජ dZ@ -ඣ dZh@ +ඣ dZ#@ ඤ n^@ ඥ gn@ ඦ n^#dZ@ ට t.@ -ඨ t.h@ +ඨ t.#@ ඩ d.@ -ඪ d.h@ +ඪ d.#@ ණ n.@ ඬ n.#d.@ ත t@ -ථ th@ +ථ t#@ ද d@ -ධ dh@ +ධ d#@ න n@ ඳ n#d@ ප p@ -ඵ ph@ +ඵ p#@ බ b@ -භ bh@ +භ b#@ ම m@ ඹ m#b@ ය j@ @@ -153,7 +153,7 @@ _, k'oma:v@ ? pr'a:Sna:rt,@j@ ! v'iSm#@j,a:rt@j@ _“ 'udrut,@pa:t.,@a:r,@mb@j@ -_” 'udhrut,@pa:t.h,@@w,@s.a:n,@j@ +_” 'ud#rut,@pa:t.#,@@w,@s.a:n,@j@ _: t'itkom,a:v@ _; d'etit@ $ do:l.ar $max3 diff --git a/dictsource/si_rules b/dictsource/si_rules index a27479fe..80f44fb3 100644 --- a/dictsource/si_rules +++ b/dictsource/si_rules @@ -19,16 +19,16 @@ ක (B k .group ඛ - ඛ kha - ඛ (B kh + ඛ k#a + ඛ (B k# .group ග ග ga ග (B g .group ඝ - ඝ gha - ඝ (B gh + ඝ g#a + ඝ (B g# .group ඞ ඞ Na @@ -71,8 +71,8 @@ ට (B t. .group ඨ - ඨ t.ha - ඨ (B t.h + ඨ t.#a + ඨ (B t.# .group ඩ ඩ d.a @@ -95,16 +95,16 @@ ත (B t .group ථ - ථ tha - ථ (B th + ථ t#a + ථ (B t# .group ද ද da ද (B d .group ධ - ධ dha - ධ (B dh + ධ d#a + ධ (B d# .group න න na @@ -119,16 +119,16 @@ ප (B p .group ඵ - ඵ pha - ඵ (B ph + ඵ p#a + ඵ (B p# .group බ බ ba බ (B b .group භ - භ bha - භ (B bh + භ b#a + භ (B b# .group ම ම ma diff --git a/espeak-data/voices/asia/ms b/espeak-data/voices/asia/ms new file mode 100644 index 00000000..90a38a37 --- /dev/null +++ b/espeak-data/voices/asia/ms @@ -0,0 +1,17 @@ +// Last updated: 14 October 2010, Jason Ong (jason@portalgroove.com) +name malay +language ms +gender male +phonemes id + +translator id + +stressLength 160 200 180 180 0 0 220 240 +stressAmp 16 18 18 18 0 0 22 21 +intonation 3 // Less intonation, and comma does not raise the pitch. + +// Nuance - Peninsula Malaysia +// replace 3 a @ // change 'saya' to 'saye' + // (only the last phoneme of a word, only in unstressed syllables) + +consonants 80 80 diff --git a/espeak-data/voices/test/bn b/espeak-data/voices/test/bn new file mode 100644 index 00000000..1e99fa8c --- /dev/null +++ b/espeak-data/voices/test/bn @@ -0,0 +1,3 @@ +name bengali +language bn +gender male diff --git a/phsource/ph_portugal b/phsource/ph_portugal index df714512..37f51ed7 100644 --- a/phsource/ph_portugal +++ b/phsource/ph_portugal @@ -133,6 +133,23 @@ phoneme w endphoneme +phoneme x // [r] for Portugal + liquid + trill + ipa ʁ + lengthmod 7 + Vowelin f1=0 f2=1500 -400 400 f3=-400 80 + IF nextPh(isNotVowel) THEN + ChangePhoneme(r/) + ENDIF + FMT(vwl_fr/@R) addWav(r3/rx, 120) +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 diff --git a/phsource/ph_sinhala b/phsource/ph_sinhala index d606b32e..cee7ba6f 100644 --- a/phsource/ph_sinhala +++ b/phsource/ph_sinhala @@ -6,7 +6,7 @@ phoneme @ vowel starttype #a endtype #a - length 130 + length 150 FMT(vowel/@_low) endphoneme @@ -14,7 +14,7 @@ endphoneme phoneme a vowel long starttype #a endtype #a ipa ɐ - length 130 + length 150 ChangeIfNotStressed(@) FMT(vowel/a#_2) endphoneme @@ -29,42 +29,42 @@ endphoneme phoneme & vowel starttype #e endtype #e - length 130 + length 150 FMT(vowel/ee_6) endphoneme phoneme &: vowel starttype #e endtype #e - length 270 + length 300 FMT(vowel/ee_6) endphoneme phoneme e vowel starttype #e endtype #e - length 130 + length 150 FMT(vowel/e_mid) endphoneme phoneme e: vowel starttype #e endtype #e - length 270 + length 300 FMT(vowel/e_mid2) endphoneme phoneme i vowel starttype #i endtype #i - length 130 + length 150 FMT(vowel/i_6) endphoneme phoneme i: vowel starttype #i endtype #i - length 270 + length 300 FMT(vowel/i) endphoneme @@ -72,7 +72,7 @@ endphoneme phoneme o vowel starttype #o endtype #o - length 130 + length 150 FMT(vowel/oo_1) endphoneme @@ -86,13 +86,13 @@ endphoneme phoneme u vowel starttype #u endtype #u - length 110 + length 130 FMT(vowel/u_6) endphoneme phoneme u: vowel starttype #u endtype #u - length 280 + length 300 FMT(vowel/u_6) endphoneme @@ -100,13 +100,13 @@ endphoneme phoneme aI vowel long starttype #a endtype #i - length 280 + length 300 FMT(vdiph/ai_8) endphoneme phoneme aU vowel long starttype #a endtype #u - length 270 + length 300 FMT(vdiph/au) endphoneme @@ -130,21 +130,26 @@ endphoneme // temporary, map [n#] etc. to [n] etc. phoneme m# - import_phoneme base/m + ipa U+1D50 + CALL base/m endphoneme phoneme n# - import_phoneme base/n + ipa U+207F + CALL base/n endphoneme phoneme n.# - import_phoneme base/n. + ipa U+1DAF + CALL base/n. endphoneme phoneme n^# - import_phoneme base/n^ + ipa U+1DAE + CALL base/n^ endphoneme phoneme N# - import_phoneme base/N + ipa U+1D51 + CALL base/N endphoneme diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index 2a83b5fa..439e913b 100644 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -2,7 +2,7 @@ [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.47.03 +AppVerName=eSpeak version 1.47.01 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes diff --git a/platforms/windows/make_espeakedit.iss b/platforms/windows/make_espeakedit.iss index bafbdf3e..ffbebf1c 100644 --- a/platforms/windows/make_espeakedit.iss +++ b/platforms/windows/make_espeakedit.iss @@ -1,7 +1,7 @@ [Setup] AppName=eSpeakEdit -AppVerName=eSpeakEdit version 1.47.03 +AppVerName=eSpeakEdit version 1.47.01 DefaultDirName={pf}\eSpeak DefaultGroupName=eSpeak OutputBaseFilename=setup_espeakedit @@ -32,24 +32,18 @@ Source: "License.txt"; DestDir: "{app}"; [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: "ka"; MessagesFile: "compiler:Languages\Georgian.islu" -Name: "lv"; MessagesFile: "compiler:Languages\Latvian.isl" -Name: "ne"; MessagesFile: "compiler:Languages\Nepali.islu" +Name: "lv"; MessagesFile: "compiler:Languages\Latvian-1-5.1.11.isl" Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" Name: "no"; MessagesFile: "compiler:Languages\Norwegian.isl" Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" @@ -57,8 +51,8 @@ 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" From c5e73961f3207f172c89c4703228956bb6a32127 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 26 Mar 2013 01:40:13 +0000 Subject: [PATCH 20/23] mkdictlist: support updating Makefile.am in-place --- mkdictlist | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/mkdictlist b/mkdictlist index 57ecdac3..4457f266 100755 --- a/mkdictlist +++ b/mkdictlist @@ -38,19 +38,34 @@ for filename in os.listdir('dictsource'): dictionaries[dic] = [] dictionaries[dic].append('dictsource/%s' % filename) -print '##### dictionaries:' -print -print 'dictionaries: \\' -for n, name in enumerate(sorted(dictionaries.keys())): - if not name in ['bo']: # espeak fails to read these voices - if n == len(dictionaries.keys()) - 1: - print '\tespeak-data/%s_dict' % name - else: - print '\tespeak-data/%s_dict \\' % name -for name, files in sorted(dictionaries.items()): - print - print '%s: espeak-data/%s_dict' % (name, name) - print 'dictsource/%s_extra:' % name - print '\ttouch dictsource/%s_extra' % name - print 'espeak-data/%s_dict: src/espeak espeak-data/phontab %s dictsource/%s_extra' % (name, ' '.join(sorted(files)), name) - print '\tcd dictsource && ../src/espeak --compile=%s && cd ..' % name +def write_dictionary_make_rules(f): + f.write('##### dictionaries:\n') + f.write('\n') + f.write('dictionaries: \\\n') + for n, name in enumerate(sorted(dictionaries.keys())): + if not name in ['bo']: # espeak fails to read these voices + if n == len(dictionaries.keys()) - 1: + f.write('\tespeak-data/%s_dict\n' % name) + else: + f.write('\tespeak-data/%s_dict \\\n' % name) + for name, files in sorted(dictionaries.items()): + f.write('\n') + f.write('%s: espeak-data/%s_dict\n' % (name, name)) + f.write('dictsource/%s_extra:\n' % name) + f.write('\ttouch dictsource/%s_extra\n' % name) + f.write('espeak-data/%s_dict: src/espeak espeak-data/phontab %s dictsource/%s_extra\n' % (name, ' '.join(sorted(files)), name)) + f.write('\tcd dictsource && ../src/espeak --compile=%s && cd ..\n' % name) + +try: + filename = sys.argv[1] +except: + filename = None + +if filename: + with open(filename, 'r') as f: + prelude = f.read().split('##### dictionaries:\n')[0] + with open(filename, 'w') as f: + f.write(prelude) + write_dictionary_make_rules(f) +else: + write_dictionary_make_rules(sys.stdout) From 6ed7feddbb2e6eefd3a7d8856496cd7fc5db19d3 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 26 Mar 2013 01:42:00 +0000 Subject: [PATCH 21/23] autotools: support building new dictionaries --- Makefile.am | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Makefile.am b/Makefile.am index 23907a47..d2e3d043 100644 --- a/Makefile.am +++ b/Makefile.am @@ -132,6 +132,7 @@ dictionaries: \ espeak-data/an_dict \ espeak-data/az_dict \ espeak-data/bg_dict \ + espeak-data/bn_dict \ espeak-data/ca_dict \ espeak-data/cs_dict \ espeak-data/cy_dict \ @@ -167,12 +168,15 @@ dictionaries: \ espeak-data/lv_dict \ espeak-data/mk_dict \ espeak-data/ml_dict \ + espeak-data/ms_dict \ espeak-data/mt_dict \ + espeak-data/nci_dict \ espeak-data/ne_dict \ espeak-data/nl_dict \ espeak-data/no_dict \ espeak-data/nso_dict \ espeak-data/pa_dict \ + espeak-data/pap_dict \ espeak-data/pl_dict \ espeak-data/prs_dict \ espeak-data/pt_dict \ @@ -232,6 +236,12 @@ dictsource/bg_extra: espeak-data/bg_dict: src/espeak espeak-data/phontab dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra cd dictsource && ../src/espeak --compile=bg && cd .. +bn: espeak-data/bn_dict +dictsource/bn_extra: + touch dictsource/bn_extra +espeak-data/bn_dict: src/espeak espeak-data/phontab dictsource/bn_list dictsource/bn_rules dictsource/bn_extra + cd dictsource && ../src/espeak --compile=bn && cd .. + ca: espeak-data/ca_dict dictsource/ca_extra: touch dictsource/ca_extra @@ -442,12 +452,24 @@ dictsource/ml_extra: espeak-data/ml_dict: src/espeak espeak-data/phontab dictsource/ml_list dictsource/ml_rules dictsource/ml_extra cd dictsource && ../src/espeak --compile=ml && cd .. +ms: espeak-data/ms_dict +dictsource/ms_extra: + touch dictsource/ms_extra +espeak-data/ms_dict: src/espeak espeak-data/phontab dictsource/ms_list dictsource/ms_rules dictsource/ms_extra + cd dictsource && ../src/espeak --compile=ms && cd .. + mt: espeak-data/mt_dict dictsource/mt_extra: touch dictsource/mt_extra espeak-data/mt_dict: src/espeak espeak-data/phontab dictsource/mt_list dictsource/mt_rules dictsource/mt_extra cd dictsource && ../src/espeak --compile=mt && cd .. +nci: espeak-data/nci_dict +dictsource/nci_extra: + touch dictsource/nci_extra +espeak-data/nci_dict: src/espeak espeak-data/phontab dictsource/nci_list dictsource/nci_rules dictsource/nci_extra + cd dictsource && ../src/espeak --compile=nci && cd .. + ne: espeak-data/ne_dict dictsource/ne_extra: touch dictsource/ne_extra @@ -478,6 +500,12 @@ dictsource/pa_extra: espeak-data/pa_dict: src/espeak espeak-data/phontab dictsource/pa_list dictsource/pa_rules dictsource/pa_extra cd dictsource && ../src/espeak --compile=pa && cd .. +pap: espeak-data/pap_dict +dictsource/pap_extra: + touch dictsource/pap_extra +espeak-data/pap_dict: src/espeak espeak-data/phontab dictsource/pap_list dictsource/pap_rules dictsource/pap_extra + cd dictsource && ../src/espeak --compile=pap && cd .. + pl: espeak-data/pl_dict dictsource/pl_extra: touch dictsource/pl_extra From 52d5ce901dcb86fd41abdc8d87c64ee1a49b5397 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 26 Mar 2013 02:48:03 +0000 Subject: [PATCH 22/23] 1.47.03c (from http://espeak.sourceforge.net/test/latest.html) take 2 This deletes the rules/list files removed from the sources as they have been removed from the dict_phoneme file. --- dictsource/ak_rules | 113 ------------ dictsource/az_list | 80 --------- dictsource/az_rules | 111 ------------ dictsource/bo_rules | 409 ------------------------------------------- dictsource/dv_list | 174 ------------------ dictsource/dv_rules | 189 -------------------- dictsource/ht_list | 167 ------------------ dictsource/ht_rules | 104 ----------- dictsource/kk_list | 68 ------- dictsource/kk_rules | 130 -------------- dictsource/mt_list | 319 --------------------------------- dictsource/mt_rules | 205 ---------------------- dictsource/nso_list | 206 ---------------------- dictsource/nso_rules | 150 ---------------- dictsource/prs_list | 69 -------- dictsource/prs_rules | 235 ------------------------- dictsource/rw_list | 83 --------- dictsource/rw_rules | 105 ----------- dictsource/te_list | 171 ------------------ dictsource/te_rules | 277 ----------------------------- dictsource/tn_list | 149 ---------------- dictsource/tn_rules | 147 ---------------- dictsource/tt_list | 83 --------- dictsource/tt_rules | 134 -------------- dictsource/wo_list | 43 ----- dictsource/wo_rules | 128 -------------- phsource/ph_bengali | 2 +- 27 files changed, 1 insertion(+), 4050 deletions(-) delete mode 100644 dictsource/ak_rules delete mode 100644 dictsource/az_list delete mode 100644 dictsource/az_rules delete mode 100644 dictsource/bo_rules delete mode 100644 dictsource/dv_list delete mode 100644 dictsource/dv_rules delete mode 100644 dictsource/ht_list delete mode 100644 dictsource/ht_rules delete mode 100644 dictsource/kk_list delete mode 100644 dictsource/kk_rules delete mode 100644 dictsource/mt_list delete mode 100644 dictsource/mt_rules delete mode 100644 dictsource/nso_list delete mode 100644 dictsource/nso_rules delete mode 100644 dictsource/prs_list delete mode 100644 dictsource/prs_rules delete mode 100644 dictsource/rw_list delete mode 100644 dictsource/rw_rules delete mode 100644 dictsource/te_list delete mode 100644 dictsource/te_rules delete mode 100644 dictsource/tn_list delete mode 100644 dictsource/tn_rules delete mode 100644 dictsource/tt_list delete mode 100644 dictsource/tt_rules delete mode 100644 dictsource/wo_list delete mode 100644 dictsource/wo_rules diff --git a/dictsource/ak_rules b/dictsource/ak_rules deleted file mode 100644 index 2ee9444b..00000000 --- a/dictsource/ak_rules +++ /dev/null @@ -1,113 +0,0 @@ -// This file is UTF8 encoded -// Spelling to phoneme rules for Akan (Ghana) - - -.group a - a a - -.group b - b b - -.group c - c k - c (e s - c (i s - -.group d - d d - dw dZ - dw (i dZ; - -.group e - e e - -.group f - f f - -.group g - g g - gy dz; - -.group h - h h - h (i C - hw (i Cw - hy C - -.group i - i i - -.group j - j dZ - -.group k - k k - ky tS; - -.group l - l l - -.group m - m m - -.group n - n n - n (k N - ng N: - ng (i n^ - nj n^ - nw N:w - nw (i n^ - ny (i n^: - nny (i n^: - -.group o - o o - -.group p - p p - -.group ɛ - ɛ E - -.group q - q k - qu kw - -.group r - r R - -.group s - s s - -.group t - t t - t (i tC - -.group u - u u - -.group v - v v - -.group w - w w - -.group ɔ - ɔ O - -.group x - x ks - _) x z - -.group y - y j - K) y (K i - -.group z - z z - -.group - $ dOlaR - - diff --git a/dictsource/az_list b/dictsource/az_list deleted file mode 100644 index f174747c..00000000 --- a/dictsource/az_list +++ /dev/null @@ -1,80 +0,0 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Azerbaijani - - -// Numbers -_0 s@f'@R -_1 b'iR -_2 ic'i -_3 'ytS -_4 d'WRd -_5 b'eS -_6 alt'@ -_7 jedd'i -_8 s&Cc'iz -_9 dogg'uz -_1X 'on -_2X ijiRm'i -_3X ot'uz -_4X g'@Rx -_5X &ll'i -_6X altm'@S -_7X jetm'iS -_8X s&Cs'&n -_9X doxs'an -_0C j'yz -_0M1 m'in -_0M2 milj'on -_0M3 milj'aRd -_dpt _viRg,yl_| // ?? - - -// Function words - // personal pronouns -mən $u+ -sən $u+ -o $u+ -biz $u+ -siz $u+ -onlar $u+ - - // possessive pronouns -mənim $u+ -sənin $u+ -onun $u+ -bizim $u+ -sizin $u+ -onların $u+ - - - -// Character names -b be -c dZe -ç tSe -d de -f fe -g Je -ğ Qe -h he -x xe -j Ze -k ka -q ge -l el -m em -n en -_o o -p pe -r eR -s se -ş Se -t te -v ve -w dubElv'E -y je -z ze - - - diff --git a/dictsource/az_rules b/dictsource/az_rules deleted file mode 100644 index 3d208745..00000000 --- a/dictsource/az_rules +++ /dev/null @@ -1,111 +0,0 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Azerbaijani - -// Stress rule: Right-most vowel, but stop before the vowel which is -// marked as unstressed [%]. - - -.group a - a a - -.group b - b b - -.group c - c dZ - -.group ç - ç tS - -.group d - d d - -.group e - e e - -.group ə - ə & - -.group f - f f - -.group g - g J - -.group ğ - ğ Q - -.group h - h h - -.group x - x x - -.group ı - ı @ - -.group i - i i - -.group j - j Z - -.group k - k c - k (K C - -.group q - q g - -.group l - l l - -.group m - m m - -.group n - n n - -.group o - o o - -.group ö - ö W - -.group p - p p - -.group r - r R - A) r (A * - -.group s - s s - -.group ş - ş S - -.group t - t t - -.group u - u u - -.group ü - ü y - -.group v - v v - -.group w - w w - -.group y - y j - -.group z - z z - -.group - ä & diff --git a/dictsource/bo_rules b/dictsource/bo_rules deleted file mode 100644 index 3dd786ea..00000000 --- a/dictsource/bo_rules +++ /dev/null @@ -1,409 +0,0 @@ -// This file is UTF8 encoded -// Spelling-to-phoneme rules for Tibetan - -.replace -༠ 0 -༡ 1 -༢ 2 -༣ 3 -༤ 4 -༥ 5 -༦ 6 -༧ 7 -༨ 8 -༩ 9 - - - -.group ཀ - ཀ ka - ཀ (B k - @) ཀ (_ k - -.group ཁ - ཁ k#a - ཁ (B k# - @) ཁ (_ k# - -.group ག - ག ga - ག (B g - @) ག (_ g - -.group གྷ - གྷ g#a - གྷ (B g# - @) གྷ (_ g# - -.group ང - ང Na - ང (B N - @) ང (_ N - -.group ཅ - ཅ ca - ཅ (B c - @) ཅ (_ c - -.group ཆ - ཆ c#a - ཆ (B c# - @) ཆ (_ c# - -.group ཇ - ཇ Ja - ཇ (B J - @) ཇ (_ J - -.group ཉ - ཉ n^a - ཉ (B n^ - @) ཉ (_ n^ - -.group ཊ - ཊ t.a - ཊ (B t. - @) ཊ (_ t. - -.group ཋ - ཋ t.#a - ཋ (B t.# - @) ཋ (_ t.# - -.group ཌ - ཌ d.a - ཌ (B d. - @) ཌ (_ d. - -.group ཌྷ - ཌྷ d.#a - ཌྷ (B d.# - @) ཌྷ (_ d.# - -.group ཎ - ཎ n.a - ཎ (B n. - @) ཎ (_ n. - -.group ཏ - ཏ ta - ཏ (B t - @) ཏ (_ t - -.group ཐ - ཐ t#a - ཐ (B t# - @) ཐ (_ t# - -.group ད - ད da - ད (B d - @) ད (_ d - -.group དྷ - དྷ d#a - དྷ (B d# - @) དྷ (_ d# - -.group ན - ན na - ན (B n - @) ན (_ n - -.group པ - པ pa - པ (B p - @) པ (_ p - -.group ཕ - ཕ p#a - ཕ (B p# - @) ཕ (_ p# - -.group བ - བ ba - བ (B b - @) བ (_ b - -.group བྷ - བྷ b#a - བྷ (B b# - @) བྷ (_ b# - -.group མ - མ ma - མ (B m - @) མ (_ m - -.group ཙ - ཙ tsa - ཙ (B ts - @) ཙ (_ ts - -.group ཚ - ཚ ts#a - ཚ (B ts# - @) ཚ (_ ts# - -.group ཛ - ཛ dza - ཛ (B dz - @) ཛ (_ dz - -.group ཛྷ - ཛྷ dz#a - ཛྷ (B dz# - @) ཛྷ (_ dz# - -.group ཝ - ཝ wa - ཝ (B w - @) ཝ (_ w - -.group ཞ - ཞ Za - ཞ (B Z - @) ཞ (_ Z - -.group ཟ - ཟ za - ཟ (B z - @) ཟ (_ z - -.group འ - འ ?a - འ (B ? - @) འ (_ ? - -.group ཡ - ཡ ja - ཡ (B j - @) ཡ (_ j - -.group ར - ར ra - ར (B r - @) ར (_ r - -.group ལ - ལ la - ལ (B l - @) ལ (_ l - -.group ཤ - ཤ Sa - ཤ (B S - @) ཤ (_ S - -.group ཥ - ཥ s.a - ཥ (B s. - @) ཥ (_ s. - -.group ས - ས sa - ས (B s - @) ས (_ s - -.group ཧ - ཧ Ha - ཧ (B H - @) ཧ (_ H - -.group ཨ - ཨ ?a - ཨ (B ? - @) ཨ (_ ? - -.group ཀྵ - ཀྵ ks.a - ཀྵ (B ks. - @) ཀྵ (_ ks. - - -// vowel signs -// Give the utf8 codes in octal, because these characters don't -// display correctly without a letter to attach to. -.group 0xe0bd - 0xe0bdb1 a: - 0xe0bdb2 i - 0xe0bdb3 i: - 0xe0bdb4 u - 0xe0bdb5 u: - 0xe0bdb6 r- - 0xe0bdb7 r-: - 0xe0bdb8 l- - 0xe0bdb9 l-: - 0xe0bdba e - 0xe0bdbb e: - 0xe0bdbc o - 0xe0bdbd o: - -// subjoined letters -.group 0xe0be // characters which start with UTF-8 bytes: [e0 be] - ྐ ka - ྐ (B k - @) ྐ (_ k - - ྑ k#a - ྑ (B k# - @) ྑ (_ k# - - ྒ ga - ྒ (B g - @) ྒ (_ g - - ྒྷ g#a - @) ྒྷ (_ g# - - ྔ Na - ྔ (B N - @) ྔ (_ N - - ྕ ca - ྕ (B c - @) ྕ (_ c - - ྖ c#a - ྖ (B c# - @) ྖ (_ c# - - ྗ Ja - ྗ (B J - @) ྗ (_ J - - ྙ n^a - ྙ (B n^ - @) ྙ (_ n^ - - ྚ t.a - ྚ (B t. - @) ྚ (_ t. - - ྛ t.#a - ྛ (B t.# - @) ྛ (_ t.# - - ྜ d.a - ྜ (B d. - @) ྜ (_ d. - - ྜྷ d.#a - ྜྷ (B d.# - @) ྜྷ (_ d.# - - ྞ n.a - ྞ (B n. - @) ྞ (_ n. - - ྟ ta - ྟ (B t - @) ྟ (_ t - - ྠ t#a - ྠ (B t# - @) ྠ (_ t# - - ྡ da - ྡ (B d - @) ྡ (_ d - - ྡྷ d#a - ྡྷ (B d# - @) ྡྷ (_ d# - - ྣ na - ྣ (B n - @) ྣ (_ n - - ྤ pa - ྤ (B p - @) ྤ (_ p - - ྥ p#a - ྥ (B p# - @) ྥ (_ p# - - ྦ ba - ྦ (B b - @) ྦ (_ b - - ྦྷ b#a - ྦྷ (B b# - @) ྦྷ (_ b# - - ྨ ma - ྨ (B m - @) ྨ (_ m - - ྩ tsa - ྩ (B ts - @) ྩ (_ ts - - ྪ ts#a - ྪ (B ts# - @) ྪ (_ ts# - - ྫ dza - ྫ (B dz - @) ྫ (_ dz - - ྫྷ dz#a - ྫྷ (B dz# - @) ྫྷ (_ dz# - - ྭ wa - ྭ (B w - @) ྭ (_ w - - ྮ Za - ྮ (B Z - @) ྮ (_ Z - - ྯ za - ྯ (B z - @) ྯ (_ z - - ྰ ?a - ྰ (B ? - @) ྰ (_ ? - - ྱ ja - ྱ (B j - @) ྱ (_ j - - ྲ ra - ྲ (B r - @) ྲ (_ r - - ླ la - ླ (B l - @) ླ (_ l - - ྴ Sa - ྴ (B S - @) ྴ (_ S - - ྵ s.a - ྵ (B s. - @) ྵ (_ s. - - ྶ sa - ྶ (B s - @) ྶ (_ s - - ྷ Ha - ྷ (B H - @) ྷ (_ H - - ྸ ?a - ྸ (B ? - @) ྸ (_ ? - - ྐྵ ks.a - ྐྵ (B ks. - @) ྐྵ (_ ks. - - -.group - $ dolar diff --git a/dictsource/dv_list b/dictsource/dv_list deleted file mode 100644 index 4ce2ae63..00000000 --- a/dictsource/dv_list +++ /dev/null @@ -1,174 +0,0 @@ - -// This file is UTF8 encoded -// Spelling-to-phoneme rules for Divehi (Maldives) - -// Numbers - -_0 s'umeI -_1 e'keI -_2 d'eI -_3 tineI -_4 ha't#a'reI -_5 fa'heI -_6 ha'eI -_7 ha't#eI -_8 a'SeI -_9 n'uaeI -_10 d'ihaeI - -_11 e'gj'a:r@1 //egaara -_12 b'ar@2 //baara -_13 t'E:r@2 //theyra -_14 c#'O:d@2 //saada (d like in _2) -_15 p'Vndr@2 //fanara -_16 s'o:l@2 //soalha lh like in ޅ -_17 s'Vt:r@2 //sathaara -_18 Vt.#:'a:r@2 //ashaara -_19 Unn'Is //navaara - -_20 b'i:s //vihi (we he) -_21 Ik:'Is //eka wees -_22 b'a:Is //baa wees -_23 t'e:Is //tei wees -_24 c'O:bIs sav wees -_25 p@c:'Is //fansavees -_26 c#@bb'i:rs // sabbees -_27 s@t:'a:Is // sathawees -_28 at#:'a:Is // asha wees -_29 Unt'Is // ona thirees -_30 t'i:s // thirees - -_31 Ik@t:'Is // thirees eke --from hence it starts with the 10th digit and follows with the single digit. -_32 bat:'Is // eg. 32 = thirees (30) eke (1) -_33 tE~t'Is // E~ ? -_34 cO~t'Is -_35 pE~t'Is -_36 c#aT'tIs -_37 sE~t'Is -_38 art'Is -_39 Unta:l'Is - -_40 ca:l'Is //saalhees -_41 Ikta:l'Is -_42 baIa:l'Is -_43 tE~ta:l'Is -_44 cO:wa:l'Is -_45 paI'nta:l'Is -_46 c#hIja:l'Is -_47 sE~ta:l'Is -_48 arta:l'Is -_49 'Un^ca:s - -_50 p@c'a:s //fansaas -_51 Ikj'a:wVn -_52 b'a:wVn -_53 t'IrpVn -_54 c'Ou:wVn -_55 p'ac#pVn -_56 c#h@p:'Vn -_57 sVt:'a:w@n -_58 at#:'a:w@n -_59 Uns'Vt# - -_60 s'a:t.# //fas dho (ދ) lhas -_61 'Iks@t.# -_62 b'a:s@t.# -_63 t'Irs@t.# -_64 c'O~s@t.# -_65 paIns@t.# -_66 c#'Ija:s@t.# -_67 s'Vrs@t.# -_68 ars@t.# -_69 Un@h,at:'Vr: - -_70 sat:'Vr: // hai dhiha -_71 Ik#at:'Vr: -_72 b@hat:'Vr: -_73 tIhat:'Vr: -_74 cO:hat:'Vr: -_75 pac#,at:'Vr: -_76 c#Ihat:'Vr: -_77 s@t@hat:'Vr: -_78 at#hat:'Vr: -_79 ,Un^Ia:s'i: - -_80 ,Vss'i: // addiha -_81 Ikja:s'i: -_82 baIa:s'i: -_83 tIra:s'i: -_84 cO:ra:s'i: -_85 pI'ca:s'i: -_86 c#Ija:s'i: -_87 sVt:a:s'i: -_88 at#:a:s'i: -_89 nVwa:s'i: - -_90 nVb:'e: nuvadhiha -_91 Ikj'a:n@we: -_92 b'a:n@we: -_93 tIr'a:n@we: -_94 cO:r'a:m@we: -_95 p@c'a:n@we: -_96 c#Ij'a:n@we: -_97 s@t:'a:n@we: -_98 at#:'a:n@we: -_99 nIn^j'a:n@we: - -_0C sa't#eIka //satheyka (th like them) -_0M1 h@z'a:r (haas) -_0M2 l'a:kh // lakka -_0M3 cr'ore //curoadu - -// letter names -ހ h'a: -ށ s.'avijani -ނ n'u:nu -ރ R'a: -ބ b'a: -ޅ l.'av,ijani -ކ k'a:fu -އ 'alifu -ވ v'a:vu -މ m'i:mu -ފ f'a:fu -ދ d'a:lu -ތ t'a: -ލ l'a:mu -ގ g'a:fu -ޏ n^'avijani -ސ s'i:nu -ޑ d.'avijani -ޒ z'avijani -ޓ t.'avijani -ޔ j'a: -ޕ p'avijani -ޖ dZ'avijani -ޗ tS'avijani -ޘ T'a: -ޙ hh'a: -ޚ x'a: -ޛ D'a:lu -ޜ z'a: -ޝ S'i:nu -ޞ s'a:du -ޟ d'a:du -ޠ t'o -ޡ z'o -ޢ a'inu -ޣ Qa'inu -ޤ q'a:fu -ޥ w'a:vu -ޱ n'a||vijani - ަ 'aba||f,ili - ާ 'a:ba:||f,ili - ި 'ibi||f,ili - ީ 'i:bi:||f,ili - ު 'ubu||f,ili - ޫ 'u:bu:||f,ili - ެ 'ebe||f,ili - ޭ 'e:be:||f,ili - ޮ 'obo||f,ili - ޯ 'o:bo:||f,ili - ް s'ukun - - diff --git a/dictsource/dv_rules b/dictsource/dv_rules deleted file mode 100644 index a975f20f..00000000 --- a/dictsource/dv_rules +++ /dev/null @@ -1,189 +0,0 @@ - -// This file is UTF8 encoded -// Spelling-to-phoneme rules for Divehi (Maldives) - -.group ހ - ހ h - -.group ށ - ށ s. - -.group ނ - ނ n - ން (ނ nn - ން (މ mm - ން (ޏ n^n^ - -.group ރ - ރ R - -.group ބ - ބ b - -.group ޅ - ޅ l. - -.group ކ - ކ k - -.group އ - އ // alifu - އް (_ eh - އް (ހ h - އް (ށ h - އް (ހ s. - އް (ނ n - އް (ރ R - އް (ބ b - އް (ޅ l. - އް (ކ k - އް (ކ v - އް (މ m - އް (ދ d - އް (ތ t - އް (ލ l - އް (ގ g - އް (ޏ N - އް (ސ s - އް (ޑ d. - އް (ޒ z - އް (ޓ t. - އް (ޔ j - އް (ޕ p - އް (ޖ dZ - އް (ޗ tS - އް (ޜ Z - -.group ވ - ވ v - -.group މ - މ m - -.group ފ - ފ f - -.group ދ - ދ d - -.group ތ - ތ t - -.group ލ - ލ l - -.group ގ - ގ g - -.group ޏ - ޏ n^ - -.group ސ - ސ s - -.group ޑ - ޑ d. - -.group ޒ - ޒ z - -.group ޓ - ޓ t. - -.group ޔ - ޔ j - -.group ޕ - ޕ p - -.group ޖ - ޖ dZ - -.group ޗ - ޗ tS - -.group ޘ - ޘ T - -.group ޙ - ޙ h - -.group ޚ - ޚ x - -.group ޛ - ޛ D - - - -.group ޜ - ޜ Z - -.group ޝ - ޝ S - -.group ޞ - ޞ s - -.group ޟ - ޟ d - -.group ޠ - ޠ t - -.group ޡ - ޡ z - -.group ޢ - ޢ ? - -.group ޣ - ޣ Q - -.group ޤ - ޤ q - -.group ޥ - ޥ w - - -.group ަ - ަ a - -.group ާ - ާ a: - -.group ި - ި i - -.group ީ - ީ i: - -.group ު - ު u - -.group ޫ - ޫ u: - -.group ެ - ެ e - -.group ޭ - ޭ e: - -.group ޮ - ޮ o - -.group ޯ - ޯ o: - -.group ް - ް // sukun - -.group ޱ - ޱ n. - -.group - $ dolaR - - diff --git a/dictsource/ht_list b/dictsource/ht_list deleted file mode 100644 index 094b8799..00000000 --- a/dictsource/ht_list +++ /dev/null @@ -1,167 +0,0 @@ -// Haitian Creole translation rules -// This file is UTF-8 encoded - - - -// numbers -_0 zewo -_1 E~ -_2 de -_3 twa -_4 kat -_5 sE~k -_6 sis -_7 sEt -_8 yit -_9 nEf -_10 dis -_11 O~z -_12 duz -_13 trEz -_14 katOz -_15 kE~z -_16 sEz -_17 disEt -_18 dizyit -_19 diznEf -_20 vE~ -_21 vE~te;E~ -_2X vE~n -_28 vE~tyit -_29 vE~tnEf -_30 trA~t -_31 trA~te;E~ -_3X trA~n -_38 trA~tyit -_39 trA~tnEf -_40 karA~t -_41 karA~te;E~ -_4X karA~n -_48 karA~tyit -_49 karA~tnEf -_50 sE~kA~t -_51 sE~kA~te;E~ -_5X sE~kA~n -_58 sE~kA~tyit -_59 sE~kA~tnEf - -_60 swasA~t -_61 swasA~te;E~ -_6X swasA~n -_70 swasA~tdis -_71 swasA~te;O~z -_8X katrevE~ -_81 katrevE~tE~ -_91 katrevE~tO~z - -_0C sA~ -_0M1 mil -_1M1 mil -_0M2 miljon -_0M3 milja -_0M4 biljon -_dpt _pwE~ - - -// Common function words -//====================== - -// Articles -on $u -yon $u - -la $u -lan $u -a $u -an $u - -sa $u - - -// Pronouns -mwen $u -ou $u -li $u -nou $u -yo $u - -ki $u - - -// Verbs -se $u // to be -vin $u - -te $u // tense markers -tap $u -(t ap) tap $u -ap $u -a $u -pral $u -ta $u - - -// Prepositions -ak $u $brk -nan $u -pou $u - - -// Conjunctions -epi $u $pause - - -// Adverbs -kèk $u // some - - -// Characters -% pusA~ $max3 -* asteris $max3 -+ plis $max3 -= egal $max3 -/ slaS $max3 -\ A~tislaS $max3 -# aSaj $max3 - -_, vigil -_; pwE~vigil -_. pwE~ - - -// Letter names -// (note: some letters must be distinguished from one-letter words) -_a a -a a $atstart $atend -b bi -c si -d di -e e -è egr'av -f Ef -g ge -h aS -i i -j Zi -k ka -_l el -l el $atend -_m em -m em $atend -_n en -n en $atend -o o -ò ogr'av -p pi -q kju -r ara -s Es -_t ta -t ta $atend -u u -v va -_w dubv'a -w dubv'a $atend -_y ipsil'on -y ipsil'on $atend -z zed diff --git a/dictsource/ht_rules b/dictsource/ht_rules deleted file mode 100644 index ef14b21f..00000000 --- a/dictsource/ht_rules +++ /dev/null @@ -1,104 +0,0 @@ -// Haitian Creole translation rules -// This file is UTF-8 encoded - -.group a - a a - an (K A~ - -.group à - à a - -.group b - b b - -.group c - ch S - c k - c (Y s - -.group d - d d - -.group e - e e - en (K E~ - -.group è - è E - -.group f - f f - -.group g - g g - -.group h - h // silent ? - -.group i - i i - -.group j - j Z - -.group k - k k - -.group l - l l - -.group m - m m - -.group n - n n - ng N - -.group o - o o - on (K O~ - ou u - -.group ò - ò O - -.group p - p p - -.group q - q k - -.group r - r r - -.group s - s s - -.group t - t t - tch tS - -.group u - u u - ui yi - -.group v - v v - -.group w - w w - -.group x - x ks - -.group y - y j - K) y (K i // not next to a vowel - -.group z - z z - -.group - ç s - $ dola - diff --git a/dictsource/kk_list b/dictsource/kk_list deleted file mode 100644 index 36aa86c3..00000000 --- a/dictsource/kk_list +++ /dev/null @@ -1,68 +0,0 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Kazakh - -б be -в ve -г ge -ғ Ge -д de -ж Ze -з ze -й q8sqA'i -к kA -қ qA -л El -м Em -н En -ң EN -п pe -р Er -с Es -т te -ф Ef -х XA -һ hA -ц tse -ч tSe -ш Sa -щ StSa -ъ Aj8ru -ь ZINISkelIk - -//numbers -_0 n'Yl -_1 b'Ir -_2 ek'I -_3 u#S -_4 t'Yrt -_5 b'es -_6 Alt'8 -_7 Z'et'I -_8 seg'Iz -_9 toG'8z -_1X 'on -_2X Zi'8rmA -_3X 'ot8z -_4X q'8r8q -_5X 'el;u -_6X 'Alp8s -_7X Z'etpIs -_8X s'eksen -_9X t'oqsAn -_0C Z'u#z -_0M1 m'8N -_0M2 milli'on -_0M3 milli'Ard -_dpt _b,u#tIn - -// used after decimal point -_0Z1 'onnAn // tenths -_0Z2 Z'u#zden // hundredths -_0Z3 m'8NnAn -_0Z4 'on||m,8NnAn -_0Z5 Z'u#z||m,8NnAn -_0Z6 milli'onnAn -_0Z7 'on||milli,onnAn -_0Z8 Z'u#z||milli'onnAn -_0Z9 milli'ArdtAn diff --git a/dictsource/kk_rules b/dictsource/kk_rules deleted file mode 100644 index 0b8ef9b8..00000000 --- a/dictsource/kk_rules +++ /dev/null @@ -1,130 +0,0 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Kazakh - -.group а - а A - а (й a - -.group ә - ә & - -.group б - б b - -.group в - в v - -.group г - г g - -.group ғ - ғ G - -.group д - д d - -.group е - е e - -.group ё - ё ;o - -.group ж - ж Z - -.group з - з z - -.group и - и i - -.group й - й j - -.group к - к k - -.group қ - қ q - -.group л - л l - -.group м - м m - -.group н - н n - -.group ң - ң N - -.group о - о o - -.group ө - ө Y - -.group п - п p - -.group р - р r - -.group с - с s - -.group т - т t - -.group у - у u - A) у w - у (A w - -.group ұ - ұ U - -.group ү - ү u# - -.group ф - ф f - -.group х - х X - -.group һ - һ h - -.group ц - ц ts - -.group ч - ч tS - -.group ш - ш S - -.group щ - щ StS - -.group ы - ы 8 // oU ?? - -.group і - і I - -.group э - э E - -.group ю - ю ;u - -.group я - я ;a - -.group - ъ - ь diff --git a/dictsource/mt_list b/dictsource/mt_list deleted file mode 100644 index 48630e0a..00000000 --- a/dictsource/mt_list +++ /dev/null @@ -1,319 +0,0 @@ - -// This file in UTF8 encoded - -// Letters maltese - - - -a a -b b@ -c ka -ċ tS@e -d dee -e e -f effe -g gie -ġ dZe -h akka -ħ h'@ -i i -j ie -k k'@ -l elle -m emme -n enne -o o -p pe -q '@ -r erre -s esse -t te -u u -v ve -w u'@ -x eSSe -y y -z tsee -ż z'@ - - - - - - -_. punt -_, koma -_! punt ta’ esklamazzjoni -_? mistoqsija -_" kwoUts -_# hash -_$ dollaru: -_% procentuali: -_& u -_' accent -_: koUl@n -_; semIk'oUl@n -€ ewro -_( parentezi tondi -_) parentezi tondi -_[ parentezi kwadri -_] parentezi kwadri -_{ alkua:lto -_} lop:ua:lto -_< iz'@ minn -_> akbar minn -_- haIf@n -__ alavi:va -+ plus $max3 -* stil:a $max3 -= i:kw@lz $max3 -/ kaut:a -\ keno -£ sterlina -@ _at -~ tilde - - - -// numbers maltese - - - -_0 z'e*o -_1 ui:h'@d -_2 nei:n -_3 tli:eta -_4 erba -_5 h'@amsa -_6 si:t:a -_7 seba: -_8 tmi:ni:a -_9 dydin'asa -_10 a'@ra -_11 h'@daSe -_12 tnaSe -_13 tletaSe -_14 erbataSe -_15 h'@mistaSe -_16 sitaSe -_17 sbataSe -_18 tmintaSe -_19 tsetaSe -_2X oSerin -_3X tl'@ti:n -_4X erbai:n -_5X h'@amsi:n -_6X sit:i:n -_7X s'@bei:n -_8X tmeni:n -_9X d,ydin'isei:n -_0C mi:a -_1C mi:au -_0M1 elf -_1M1 -_2M1 elfeiun -3000 tlet: elef -4000 erbatelef -_0M2 m'iliun -2000000 z'@euge m'iliuni -_0M3 bi'li'un -_2M3 z'@euge bi'li'uni -_3M3 tlet: bi'li'uni -_4M3 erba bi'li'uni -_5M3 h'@ames bi'li'uni - - - - -// articles - - -// pronouns maltese -jiena iuena $u -inti inti: $u -huwa ua $u -hija i:a $u -aħna ah'@na $u -intom i:ntom $u -huma u:ma $u - - - - - - -// possessives maltese - - -tiegħi ti:ai: $u -tiegħek ti:ake $u -tiegħu ti:u: $u -tagħha tah'@a $u -tagħna tana: $u -tagħkom takom $u -tagħhom tahom $u - - -// prepositions -ta ta: -għal al: -lil li:l: -ġo dZeo -mal mal: -mingħajr mi:nai:r -madwar madua:r -il-quddiem il-di:m:'@ -qabel a:bel -wara uara -minbarra minba:ra: -bejn bei:n -flimkien flimkin: -viċin vi:S@i:n -minn mi:n -minn fejn mi:n fei:n -isfel isfel -fil-mija fi:l-mi:a -permezz permets -lejn lein: -fuq fu'@ -taħt taht -fi fi: -mingħajr mi:nair -madwar madu:ar -kontra contra -quddiem '@udi:m -fost fost -qabel abel -wara uara -taħt taht -lil hinn lil:in: -ħdejn h'@dein -bejn bei:n -flimkien flinki:m -qrib ri:p -minn hemm min:em: - - - - - - - -// conjunctions - - -minkejja minCeia -u u -kif Ci:f -għax aS -darba dar:ba -jew ieu: -iżda i:z'@da -jekk ietSe -minkejja mintSei:a -minflok minflotSe -irrespettivament ir:espetivament -mindu mindu: -b’hekk betSe -għalkemm altSem: -kull darba kul: darba -kull min kul: mi:n -tkun xi tkun tkun Si tkun -waqt ua:t - - - - - - -// negative maltese - -ma $u - - - - - -// auxillary verbs - - -ikun icu:n: -kien Ci:n -qiegħed ied -huwa u:a -huma uma -ma kienx ma CieS -kienu Cienu -mhux muS -mhumiex umumiS -ma kienux ma CienuS -għamel amel -għandhom andom -ghandu jkollhom andu kolum -ma jridux ikunu mrdS kunu -għandu andu -m'għandux m'anduS -jista ista -ma jistax ma istaS -għandi andi -għandha an:a -kienet ki:net -ikseb i:kseb -mur mu:r -tmur tmur -sejjer sei:er -mort mort -agħmel a:mel -tagħmilx ta:milS -jagħmel ia:mel -għamel a:mel -għamilt amilt -tpoġġi tpodZi: -poġġi odZi: -issir is:ir -saret sa:ret -għamel a:mel - - - - - - -// adverbs - -biss bis: -qatt at: -issa is:a -dalwaqt daluat -xorta Sorta -diġa didZa -mhux mu:S -kull cul: -bosta bosta -xi Si: -dan dan -dak dak -dawn dau:n -dawk dau:k -hemm em: -minn min: - - - - - - - -// Abbreviations maltese - -$textmode -eċċ etSetra -mm milim'etri -cm tSentim'etri -km kilom'etri -ml milil'itri -mg miligr'am:i -kg kilogr'am:i - - - diff --git a/dictsource/mt_rules b/dictsource/mt_rules deleted file mode 100644 index 7aea2957..00000000 --- a/dictsource/mt_rules +++ /dev/null @@ -1,205 +0,0 @@ -// Maltese translation rules -// This file is UTF-8 encoded - - -.group a - a a - aa a: - au au - ax aS - - - -.group b - b b - bb b: - be b'@ - br br'@ - bi bi: - bie bi'@ - -.group c - - c c - - -.group ċ - ċ tS@ - ċa tS@a - ċe tS@e - ċi tS@i - ċw tS@u'@ - -.group d - d de - dd d: - - - -.group e - e e - eu eu: - ew eu - - -.group f - f f - ff f: - fo fo - -.group g - g g - gg g: - ge gie - gi gi: - għ : - -.group ġ - ġ dZ - ġo dZo - -.group h - - h : - - -.group ħ - - ħ h - ħu h:u: - ħt ht -.group i - i I - iu Iu - ie i: - - - -.group j - j iu - jj i: - jo io - je ie - ja ia - - -.group k - k ke - ka ka - ke ke - ki ki: - kie ki:e - ku ku: - ko co - -.group l - l l - - -.group m - m m - m (n im - m (p im - m (r im - -.group n - n n - nu nu: - - - -.group o - o o - - -.group p - p p - pp p: - - _ole) p (a p: - _ota) p (a p: - - kam) p (anj p: - - sam) p (oo p: - sham) p (o p: - - -.group q - q '@ - qa a - qe e - qo o - qu - - -.group r - r r - rie ri:e - ro ro: - ra ra: - - -.group s - s s - sie si:e - saqq sa - saq sa - - -.group t - t t - tt t: - - - - -.group u - u u - ux uS - - -.group v - v v - - -.group w - w u - - -.group x - x Se - xie Sei: - - - -.group y - y y - yy y: - yi yi - yö yY - - -.group z - z tse - K) zh Z - - - - -.group ż - ż z'@ - ża za - że ze - żie zi:e - żgħ za - -// default group for "non of the above" - -.group - ż z'@ - ċ tS@ -// non-ascii characters with specified pronunciations - - - diff --git a/dictsource/nso_list b/dictsource/nso_list deleted file mode 100644 index e3d28f79..00000000 --- a/dictsource/nso_list +++ /dev/null @@ -1,206 +0,0 @@ -// Northern Sotho translation list -// This file is UTF-8 encoded. - -// letters (just guesses) -a a -b bi:i: -c si:i: -d di:i: -e i:i: -f e:fu -g x2@ -h eitSi -j dZ'ei -k kei -l e:li -m 'emu -n 'eni -o o:o: -p p'i:i: -q kju -r aR3e -s 'e:si -t t'i:i: -u u:u: - -v v'i:i: -w dabalju -x ek'ese -y w'ai -z z'e:ti - - - - -// numbers -_0 lef'e:la -_1 tee -_2 p'edi -_3 t'a:R3o -_4 'n-ne -_5 l#'a:no -_6 ts'e:la -_7 S'u:pa -_8 sisw'a:i -_9 sen^'ane -_1X les'o:me -_2X mas'o:mepedi -_3X mas'o:met'a:R3o -_4X mas'o:me'n-ne -_5X mas'o:mel#'a:no -_6X mas'o:mets'e:la -_7X mas'o:meS'u:pa -_8X mas'o:mesisw'a:i -_9X mas'o:mesen^'ane -_0C lekX'olo -//_1C m,iam'oJa -_2C _|makX'olopedi -_3C _|makX'olot'a:R3o -_4C _|makX'olo'n-ne -_5C _|makX'olol#'a:no -_6C _|makX'olots'e:la -_7C makX'oloS'u:pa -_8C makX'olosisw'a:i -_9C makX'olosen^'ane -_0M1 's-'ikete -_1M1 _|'s-'ikete -_2M1 dik'etep'edi -_3M1 dik'etet'a:R3o -_4M1 dik'eten-ne -_5M1 dik'etel#'a:no -_6M1 dik'etets'e:la -_7M1 dik'eteSu:pa -_8M1 dik'etesisw'a:i -_9M1 dik'etesen^'ane -_1M2 dik'etetSelekX'o:lo -_2M2 dik'etetSemakX'o:lop'edi -_3M2 dik'etetSemakX'o:lot'a:R3o -_4M2 dik'etetSemakX'o:lon-ne -_5M2 dik'etetSemakX'o:lol#'ano -_6M2 dik'etetSemakX'o:lots'e:la -_7M2 dik'etetSemakX'o:loSu:pa -_8M2 dik'etetSemakX'o:losisw'a:i -_9M2 dik'etetSemakX'o:losen^'ane -_0M3 _|mili'oni // 1,000,000 -_0M4 _|bili'oni -_dpt fe:Xelu'a:na - - -bona $u // they,them -yona $u+ // it -wena $u+ //you - -nna $u+ // i -yena $u+ // him, her, it - -lena $u+ //ploral to wena -rena $u+ // we,us - - -//accents -_cir k'efa - -// pronouns -mimi $u+ -sisi $u+ -wewe $u+ -nyinyi $u+ -yeye $u+ -wao $u+ - -hii $u // this, these -hilo $u+ // this,that (previously menioned) - -wake $u+ // his,her,its -yake $u+ -zake $u+ - - -// prepositions -wa $u $brk // of -ya $u $brk // of,by they,them -la $u $brk // of -cha $u $brk // of -vya $u $brk // of -za $u $brk // of -pa $u $brk // of -kwa $u $brk // of -mwa $u $brk // of - -bi $u $brk // in -fi $u $brk // in,on -pa $u $brk // at - -min $u $brk // from -toka $u $brk // from -katika $u $brk // from, out of -kuanzia $brk // from,since -tangu Su $brk // from,between -hata $u $pause // until -baada $u $brk // after -bila $u $pause // without -hadi $u $pause // up to -huko $u $brk // there, as when - -kwacho $pause // by means of which -kwalo $pause // by means of which -kwao $pause // by means of which -kwavyo $pause // by means of which -kwaye $pause // by means of which - -kwa $u $brk // with -mwenye $u $brk // with -wenye $u $brk // with -yenye $u $brk // with -1enye $u $brk // with -chenye $u $brk // with -vyenye $u $brk // with -zenye $u $brk // with - - -// conjunctions -na $u $pause // and -ama $u $pause // or -ao $u $pause // or -au $u $pause // or -aidha $pause // and -bali $u $pause // but -ila $pause // but,except -angao $pause // although -badalaya $pause // instead -basi $u+ $pause // so,then -ili $u+ $pause // so that -ilikwamba $pause // so that -ijapo $pause // although, even if -ijapokuwa $pause // although -ingawa $pause // although -iwapo $pause // when -japo $pause -(juu ya) J,u:ja $pause // as for -kama $u+ $pause // if,like -kisha $pause // moreover -kusudi $pause // in order to -kuwa $u $pause // that -(kwa kuwa) kwa||k,uwa $pause // becuse -kwamba $u $pause // that -lakini $pause // however -walakini $pause // however -pamoja $pause // together with -panapo $pause // when it is -pindi $u+ $pause // if,when -taraa $u+ $pause // if -wala $pause // either,neither -yaani $pause // i.e. -//Northern Sotho words -bja vvJ'a - -raloka R3%al'U:ka -sekolo sek'U:lU -taba t_'a:ba -thaba t'a:ba - - - - - - diff --git a/dictsource/nso_rules b/dictsource/nso_rules deleted file mode 100644 index 52c9a44a..00000000 --- a/dictsource/nso_rules +++ /dev/null @@ -1,150 +0,0 @@ - -// Northern Sotho translation rules -// This file is UTF-8 encoded - - -.group a - a a - _C) a a - _) a (C a - a (_ a - a (s a: - -.group b - b B - - -.group c - c k - ch tS - -.group d - d d - dh D - -.group e - e e - ee i;e: - s) e i - - -.group f - f f - -.group g - g X - _k) g x2 - - gh Q - - -.group h - h h - hl l# - - -.group i - i i - ii i: - -.group j - j J - -.group k - k k - kh x - -.group l - l l - -.group m - m m - _) m m- - m (A m - K) m (@@ _|m - K) m (C m- - K) m (b@@ _|m - K) m (v@@ _|m - K) m (w@@ _|m - -.group n - n n - _) n n- - n (A n - n (@@ n - ny n^ - n (ch n^ - n (j n^ - ng' N - n (k N - _) n (k N- - _) n (k@@ N- - n (g N - _) n (g N- - _) n (g@@ N- - ng N - -.group o - o U - oo o: - -.group p - p p - -.group q - q k - -.group r - r R3 - -.group s - s s - s (e s- - _t) se si: -// sh S - -.group t - t t - th th - tsen ts'e:n - tlh K - tl l# - - -.group u - u u - uu u: - _d) u u: - -.group v - v v - -.group w - w w - -.group x - x ks - -.group y - y j - -.group z - z z - - -.group - $ dola - % asilimia - - * n^ota - *) * (* - ** - **) * (_ _:: - - š S - -_t) š tS - _p) š (h S - - ê E - ô o diff --git a/dictsource/prs_list b/dictsource/prs_list deleted file mode 100644 index 37b1fefa..00000000 --- a/dictsource/prs_list +++ /dev/null @@ -1,69 +0,0 @@ - -// This file in UTF8 encoded -// For persian (Dari) language - - -//numeric -_0 sE'fEr -_1 j'Ak -_2 d'u: -_3 s'E:h -_4 tS'Ahr -_5 pA'ndZ -_6 SE'S -_7 h'Aft -_8 h'ASt -_9 n'o -// _۱۱ j'AzdAh // what's this ? - -_1X d'Ah -_2X b'ist -_3X s'i -_4X tS'Ehl -_5X p'indZAh -_6X S'Ast -_7X h'AftAd -_8X h'AStAd -_9X nAv'Ad - - -_0C s'Ad - -_0and o - -//alphabets -ا Al'Ef -ب b'E: -پ p'E: -ت t'E: -ث s'E: -ج dZ'im -چ tS'E: -ح h'E: -خ X'E: -د d'Al -ذ z'Al -ر r'E: -ز z'E: -س s'in -ش S'in -ص s'Ad -ض z'Ad -ط t'A: -ظ z'A: -ع 'eIn -غ R'eIn -ف f'E: -ق R'Af -ک k'Af -گ g'Af -ل l'Am -م m'im -ن n'un -و w'o:w -ه h'E:dotSASm -ء hAmz'E: -ی j'A: - - - diff --git a/dictsource/prs_rules b/dictsource/prs_rules deleted file mode 100644 index e267a17b..00000000 --- a/dictsource/prs_rules +++ /dev/null @@ -1,235 +0,0 @@ -// This file is UTF-8 encoded -// Text to phoneme rules for Dari - -// replace Arabic character numbers with Latin character numbers -.replace -٠ 0 -١ 1 -٢ 2 -٣ 3 -٤ 4 -٥ 5 -٦ 6 -٧ 7 -٨ 8 -٩ 9 - - -//all vowels -.L01 َ ِ ُ ً ٍ و ا ه ی ة ي - -//commonly unwritten vowels -.L02 َ ِ ُ - -//list of consonants -.L03 ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی - -.group ا - _) ا (L01 - ا A - ا (_ A - اً An - اٍ En - -.group ب - ب (L01 b - ب bA - ب (_ b - L03) ب (L03 b - -.group پ - پ (L01 p - پ pA - پ (_ p - L03) پ (L03 p - -.group ة - ة (L01 h - ة hA - ة (_ @ - -.group ت - ت (L01 t - ت tA - ت (_ t - -.group ث - ث (L01 s - ث sA - ث (_ s - -.group ج - ج (L01 dZ - ج dZA - ج (_ dZ - - -.group چ - چ (L01 tS - چ tSA - چ (_ tS - -.group ح - ح (L01 h - ح hA - ح (_ h - -.group خ - خ (L01 X - خ XA - خ (_ X - -.group د - د (L01 d - د dA - د (_ d - -.group ذ - ذ (L01 z - ذ zA - ذ (_ z - -.group ر - ر (L01 R - ر RA - ر (_ R - -.group ز - ز (L01 z - ز zA - ز (_ z - -.group ژ - ژ (L01 Z - ژ ZA - ژ (_ Z - -.group س - س (L01 s - س sA - س (_ s - L03) س (L03 s - L02) س (L03 s - -.group ش - ش (L01 S - ش SA - ش (_ S - -.group ص - ص (L01 s - ص sA - ص (_ s - -.group ض - ض (L01 z - ض zA - ض (_ z - -.group ط - ط (L01 t - ط tA - ط (_ t - -.group ظ - ظ (L01 z - ظ zA - ظ (_ z - -.group ع - ع (L01 - ع A - ع (_ @_: - -.group غ - غ (L01 R - غ RA - غ (_ R - -.group ـ - ـ - -.group ف - ف (L01 f - ف fA - ف (_ f - -.group ق - ق (L01 R - ق RA - ق (_ R - -.group ک - ک (L01 k - ک kA - L02) ک (L03 k - L03) ک (L03 k - ک (_ k - -.group گ - گ (L01 g - گ gA - گ (_ g - -.group ل - ل (L01 l - ل lA - ل (_ l - -.group م - م (L01 m - م mA - م (_ m - -.group ن - ن (L01 n - ن (_ n - L02) ن (L03 n - L03) ن (L03 n - ن nA - -.group ه - ه (L01 h - ه hA - ه (_ @ - -.group و - و (L01 v - و (_ u - L03) و (L03 u - و vA - -.group ی - ی i - _) ی jA - -.group ي - ي i - _) ي jA - -.group - $ dol@ - -.group ء - ء @ - ء (L01 - -.group ّ - ّ : - -.group آ - آ A - -//vowels that are not usually written: - -.group َ - َ A - -.group ِ - ِ E - -.group ُ - ُ o - - - diff --git a/dictsource/rw_list b/dictsource/rw_list deleted file mode 100644 index 3c9f0b04..00000000 --- a/dictsource/rw_list +++ /dev/null @@ -1,83 +0,0 @@ - -// This file is UTF8 encoded -// Spelling-to-phoneme words for Kinyarwanda - -a a: -b ba: -c ca: -d da: -e e: -f fa: -g ga: -h ha: -i i: -j dZa: -k ka: -l la: -m ma: -n na: -o o: -p pa: -q kwa: -r *a: -s sa: -t ta: -u u: -v va: -w wa: -x eks -y ja: -z za: - - -// numbers -_0 z'e*u -_1 R'imwe -_2 kaB'i*i -_3 gat'atu -_4 k'ane -_5 gat'anu -_6 gatand'atu -_7 ka*'indwi -_8 umun'ani -_9 ikj'enda - -_1X itS'umi -_2X makumjaB'i*i -_3X mi*,oNgwit'atu -_4X mi*,oNgw'ine -_5X mi*,oNgwit'anu -_6X mi*,oNgitand'atu -_7X mi*,oNgwi*'indwi -_8X mi*,oNgwin'ani -_9X mi*,oNgwej'enda - -_1C idZ'ana -_2C mag,anaB'i*i -_3C mag,anat'atu -_4C mag,an'ane -_5C mag,anat'anu -_6C mag,anatand'atu -_7C mag,ana*'indwi -_8C mag,anin'ani -_9C mag,anakj'enda - -_0M1 iBih'umbi -_1M1 iJih'umbi -_2M1 iBih'umbibiB'i*i -_3M1 iBih'umbibit'atu -_4M1 iBih'umbib'ine -_5M1 iBih'umbibit'anu -_6M1 iBih'umbibitand'atu -_7M1 iBih'umbibi*'indwi - -_0M2 milij'oni -_1M2 milij'on'imwe -_2M2 milij'oneBj'i*i -_3M2 milij'oneS'atu -_4M2 m,ilij'on'en^e - -_0and na -_dpt _niB'itSe - - diff --git a/dictsource/rw_rules b/dictsource/rw_rules deleted file mode 100644 index b9e787ea..00000000 --- a/dictsource/rw_rules +++ /dev/null @@ -1,105 +0,0 @@ - -// Kinyarwanda translation rules -// This file is UTF-8 encoded - -.group a - a a - -.group b - b B - _) b b - m) b b - -.group c - c tS - cy kj - -.group d - d d - -.group e - e e - -.group f - f f - -.group g - g g - g (e J - g (i J - -.group h - h h - -.group i - i i - -.group j - j dZ - jy Jj - -.group k - k k - k (e c - k (i c - -.group l - l l - -.group m - m m - mp mh - -.group n - n n - n (g N - n (ge n^ - n (gi n^ - nk Nx - nt nh - ny n^ - -.group o - o o - -.group p - p p - -.group q - q q - -.group r - r * // try ** - _) r R - -.group s - s s - sh S - shy S; - -.group t - t t - -.group u - u u - -.group v - v c - -.group w - w w - b) w g - -.group x - x ks - _) x z - -.group y - y j - -.group z - z z - -.group - $ dola*a // just a guess - diff --git a/dictsource/te_list b/dictsource/te_list deleted file mode 100644 index 9f2a78e6..00000000 --- a/dictsource/te_list +++ /dev/null @@ -1,171 +0,0 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Telugu - - - -// speak Latin letters as English -a e:j -b bi: -c si: -d di: -e i: -f Ef -g dZi: -h e:tS -i a:j -j dZe:j -k ke:j -l El -m Em -n En -o o: -p pi: -q kju: -r a:r -s Es -t t#i: -u ju: -v vi: -w dVbVlju: -x Eks -y wa:j -z zEd - - - -// numbers -_0 sunna -_1 okat.i -_1a oka -_2 rend.u -_3 mu:d.u -_4 na:lgu -_5 aIdu -_6 a:ru -_7 e:d.u -_8 ;enimidi -_9 tommidi -_1X padi -_11 padakond.u -_12 pannemd.u -_13 padamu:d.u: -_14 pad#na:lugu -_15 padihe:nu -_16 padaha:ru -_17 padihe:d.u -_18 padd#enimidi -_19 pamdommadi -_2X iravaI -_3X muppaI -_4X nalub#aI -_5X ja:b#aI -_6X aravaI -_7X d.eb#baI -_8X jenab#aI -_9X tomb#aI -_0C vandala -_0C0 vandalu -_1C okavanda -_0M1 vela -_0M1x velu -_1M1 okavejji -_0M2 laks.ala -_0M2x laks.alu -_1M2 laks.a -_0M3 kotla -_0M3x kotlu -_1M3 koti -_dpt _d,aS;a:mkam - - -// symbols -_?? aks.aram // 'unknown character' -% S;a:tam -+ ku:d.ika -* naks.atra -\ bja:kasla:s. -/ sla:s. -© ka:pi:raIt. -¶ ve:ra: - -_, ka:ma: -_; semi:ko:lan -_: ko:lan -_! a:S;carja:rt#aka -_? praS;na:rt#aka -_- haIfan -__ amd.ar||sko:r - - -// unstressed function words -// articles -ద $u -అ $u+ -ఆ $u+ -ఒక $u - - -// letter names -U+c01 am -U+c02 an -U+c03 ah -U+c4d vottu - - // consonants with virama -క్ ik -ఖ్ ik# -గ్ ig -ఘ్ ig# -ఙ్ iN -చ్ ic -ఛ్ ic# -జ్ iJ -ఝ్ iJ# -ఞ్ in^ -ట్ it. -ఠ్ it.# -డ్ id. -ఢ్ id.# -ణ్ in. -త్ it -థ్ it# -ద్ id -ధ్ id# -న్ in -ప్ ip -ఫ్ ip# -బ్ ib -భ్ ib# -మ్ im -య్ ij -ర్ ir -ఱ్ ir -ల్ il -ళ్ il. -వ్ iv -శ్ iS; -ష్ is. -స్ is -హ్ ih -ౘ్ its -ౙ్ idz - - - // combining vowels, precede by a click so they - // can be distinguished from stand-alone vowels -ా #X2a:: -ి #X1i -ీ #X2i:: -ు #X1u -ూ #X2u:: -ృ #X1ru -ౄ #X2ru: -ె #X1e -ే #X2e:: -ై #X2aI -ొ #X1o -ో #X2o:: -ౌ #X2aU - - diff --git a/dictsource/te_rules b/dictsource/te_rules deleted file mode 100644 index 2ceb5476..00000000 --- a/dictsource/te_rules +++ /dev/null @@ -1,277 +0,0 @@ - -// This file is UTF8 encoded -// Spelling to phoneme rules for Telugu - -// A means vowel letters (not vowel signs) -// B means a combining vowel sign or a virama - - -.replace -౦ 0 // Convert Telugu numbers -౧ 1 -౨ 2 -౩ 3 -౪ 4 -౫ 5 -౬ 6 -౭ 7 -౮ 8 -౯ 9 - - -.group క - క ka - క (B k - -.group ఖ - ఖ k#a - ఖ (B k# - -.group గ - గ ga - గ (B g - -.group ఘ - ఘ g#a - ఘ (B g# - -.group ఙ - ఙ Na - ఙ (B N - -.group చ - చ ca - చ (B c - -.group ఛ - ఛ c#a - ఛ (B c# - -.group జ - జ Ja - జ (B J - -.group ఝ - ఝ J#a - ఝ (B J# - -.group ఞ - ఞ n^a - ఞ (B n^ - -.group ట - ట t.a - ట (B t. - -.group ఠ - ఠ t.#a - ఠ (B t.# - -.group డ - డ d.a - డ (B d. - -.group ఢ - ఢ d.#a - ఢ (B d.# - -.group ణ - ణ n.a - ణ (B n. - -.group త - త ta - త (B t - -.group థ - థ t#a - థ (B t# - -.group ద - ద da - ద (B d - -.group ధ - ధ d#a - ధ (B d# - -.group న - న na - న (B n - -.group ప - ప pa - ప (B p - -.group ఫ - ఫ p#a - ఫ (B p# - -.group బ - బ ba - బ (B b - -.group భ - భ b#a - భ (B b# - -.group మ - మ ma - మ (B m - -.group య - య ja - య (B j - -.group ర - ర ra - ర (B r - -.group ఱ - ఱ ra - ఱ (B r - -.group ల - ల la - ల (B l - -.group ళ - ళ l.a - ళ (B l. - -.group వ - వ va - వ (B v - -.group శ - శ S;a - శ (B S; - -.group ష - ష s.a - ష (B s. - -.group స - స sa - స (B s - -.group హ - హ ha - హ (B h - -.group ౘ - ౘ tsa - ౘ (B ts - -.group ౙ - ౙ dza - ౙ (B dz - -.group ౠ - ౠ ru - -.group ౡ - ౡ l- - - -// Stand-alone vowels -.group అ - అ a - -.group ఆ - ఆ a: - -.group ఇ - ఇ i - -.group ఈ - ఈ i: - -.group ఉ - ఉ u - -.group ఊ - ఊ u: - -.group ఋ - ఋ ru - -.group ఌ - ఌ l- - -.group ఎ - ఎ e - _) ఎ ;e - -.group ఏ - ఏ e: - -.group ఐ - ఐ aI - -.group ఒ - ఒ o - -.group ఓ - ఓ o: - -.group ఔ - ఔ aU - - - -.group 0xe0b0 // characters which start with UTF-8 bytes: [e0 b0] - -. ఁ n // candrabindu - - ం m // anusvara (this should nasalize the vowel) - - ః h // visarga - -// combining vowel signs - - ా a: - - ి i - - -.group 0xe0b1 // characters which start with UTF-8 bytes: [e0 b1] - - ీ i: - - ు u - - ూ u: - - ృ ru - - ౄ r-: - - ె e - - ే e: - - ై aI - - ొ o - - ో o: - - ౌ aU - - ్ // virama - - ౕ : // length mark ?? - ౖ : // ai length mark ?? - - -.group 0xe0a4 // devanagari - 0xe0a4 _^_HI // switch to hindi voice for devanagari characters -.group 0xe0a5 // devanagari - 0xe0a5 _^_HI - - -.group - $ d.a:lar - - diff --git a/dictsource/tn_list b/dictsource/tn_list deleted file mode 100644 index 4cdf9b72..00000000 --- a/dictsource/tn_list +++ /dev/null @@ -1,149 +0,0 @@ -// maintainer: Sternly K Simon -// email:sternly_simon@yahoo.com -// setswana translation list -// This file is UTF-8 encoded. - -// letters (just guesses) -a a -b bi:i: -c si:i: -d di:i: -e i:i: -f e:fo -g gi:i -h eitSi -j dZ'ei -k kei -l e:li -m 'emu -n 'eni -o o:o: -p p'i:i: -q kju -r aR3e -s 'e:si -t t'i:i: -u u:u: -v v'i:i: -x ek'ese -w dabolju -y w'ai -z z'e:ti - - -// numbers -_0 lef'e:la -_1 n'ngwe: -_2 p'edi -_3 t'a:R3o -_4 'n-ne -_5 l#'a:no -_6 th'ataro -_7 s'u:pa -_8 roba'bobedi -_9 roba'n'ngwe -_1X les'o:me -_2X mas'o:mepedi -_3X mas'o:me'ama:R3o -_4X mas'o:me'ama:ne -_5X mas'o:me'amal#'a:no -_6X mas'o:me'ath'ataro -_7X mas'o:me'a'S'u:pa -_8X mas'o:me'abo'roba'bedi: -_9X mas'o:me'a'roba'bo'ngwe - -//number plurals - -//numbers money wise -_0C lekX'olo -_1C0 lekX'olo -_2C _|makX'olopedi -_3C _|makX'olot'a:R3o -_4C _|makX'olo'n-ne -_5C _|makX'olol#'a:no -_6C _|makX'olo'th'ataro -_7C makX'oloS'u:pa -_8C makX'olo'a'ma'roba'bobedi: -_9C makX'olo'a'ma'roba'bo'n'ngwe -_0M1 's-'ikete -_1M1 _|'s-'ikete -_2M1 dik'etep'edi -_3M1 dik'etet'a:R3o -_4M1 dik'eten-ne -_5M1 dik'etel#'a:no -_6M1 dik'etets'e'th'ataro -_7M1 dik'eteSu:pa -_8M1 dik'ete'tse'bo'roba'bobedi -_9M1 dik'ete'tse'bo'roba'bo'ngwe -_1M2 dik'etetSelekX'o:lo -_2M2 dik'etetSemakX'o:lop'edi -_3M2 dik'etetSemakX'o:lot'a:R3o -_4M2 dik'etetSemakX'o:lon-ne -_5M2 dik'etetSemakX'o:lol#'ano -_6M2 dik'etetSemakX'o:lo'th'a'taro -_7M2 dik'etetSemakX'o:loSu:pa -_8M2 dik'etetSemakX'o:lo'bo'roba'bobedi: -_9M2 dik'etetSemakX'o:lo'bo'roba'bo'ngwe -_0M3 _|mili'oni // 1,000,000 -_0M4 _|bili'oni -_dpt fe:Xelu'a:na -_0and _|na - -bona $u $brk // they,them -yona $u+ $brk // it -wena $u+ $brk //you - -nna $u+ $brk // i -yona $u+ $brk // him, her, it -ene $u+ $brk // him, her -lona $u+ //ploral to wena -rona $u+ // we,us - -//number of chances/probabilities - - -//Days - - -//accents - -_cir k'efa - -lenna $u+ // and me -waka $u+ // mine or lying -gaka $u+ // mine -tshaka $u+ // plural of mine -dilo $u+ // things -mole $u+ // that -naya $u+ // give - -//nouns - -// prepositions -wa $u $brk // of -ya $u $brk // of,by they,them -la $u $brk // of -fa $u $brk // of -kwa $u $brk // at - -mo $u $brk // in -fa $u $brk // in,on - -kgolo $u $pause // dig -konte $u $pause // without - -kwala $pause // by means of which -kwa $u $brk // with - - -// conjunctions -le $u $pause // and -kana $u $pause // or -ao $u $pause // or -mme $u $pause // but -ntswa $u $pause // although -kuwa $u $pause // shout - - - - diff --git a/dictsource/tn_rules b/dictsource/tn_rules deleted file mode 100644 index 4525f234..00000000 --- a/dictsource/tn_rules +++ /dev/null @@ -1,147 +0,0 @@ -// maintainer: Sternly K Simon -// email:sternly_simon@yahoo.com -// setswana translation rules -// with support from Jonathan Duddington - -//2-letter groupds that represent classes of setswana nouns -// mo, ba, mo, me, le, ma, se, di, lo, bo, go, fa, ko, mo - -.group a - a a - _C) a a - _) a (C a - a (_ a - a (s a: - aa a: - -.group b - b b - b B - -.group c - c k - ch tS - -.group d - d d - dh D - -.group e - e e - ee e: - s) e i - -.group f - f f - -.group g - g g - _k) g g x2 - gh Q - - -.group h - h h - hl l# - -.group i - i i - ii i: - -.group j - j J - -.group k - k k - kh x - -.group l - l l - -.group m - m m - _) m m- - m (A m - K) m (@@ _|m - K) m (C m- - K) m (b@@ _|m - K) m (v@@ _|m - K) m (w@@ _|m - -.group n - n n - _) n n- - n (A n - n (@@ n - ny n^ - n (ch n^ - n (j n^ - ng' N - n (k N - _) n (k N- - _) n (k@@ N- - n (g N - _) n (g N- - _) n (g@@ N- - -.group o - o o - oo o: - -.group p - p p - -.group q - q k - -.group r - r r - r R - r R3 - A) r (A R - C) r (A @-* - rr RR - -.group s - s s - sh S - s (e s- - _t) se si: - -.group t - t t - th T - tsen ts'e:n - tlh K - tl l# - -.group u - u u - uu u: - _d) u u: - -.group v - v v - -.group w - w w - -.group x - x ks - -.group y - y j - -.group z - z z - -.group - $ dola - % asilimia - - * n^ota - *) * (* - ** - **) * (_ _:: - - diff --git a/dictsource/tt_list b/dictsource/tt_list deleted file mode 100644 index b34ce97d..00000000 --- a/dictsource/tt_list +++ /dev/null @@ -1,83 +0,0 @@ -// This file is UTF8 encoded -// Spelling-to-phoneme rules for Tatar - - -// Letters -б be -в we -г ge -д de -е je -ё jo -ж Ze -җ Z;e -з ze -и i -й kVsk,A'i -к kA -л el -м em -н en -ң eN -о o: -ө W: -п pe -р er -с es -т te -у u -ү y -ф ef -х xA -һ he -ц tse -ч S;e -ш SA -щ SS;A -ъ kAlVnl,Vqbilges'e -ы V: -ь neS;k&l,ekbilges'e -э e|: -ю ju -я jA - - -// Numbers -_0 n'ul? -_1 b'er -_2 ik'e -_3 'WS; -_4 d'yrt -_5 b'iS -_6 Alt'V -_7 Z;id'e -_8 sig'ez -_9 tug'Vz -_10 'un -_11 unb'er -_12 unik'e -_13 un'WS; -_14 und'yrt -_15 unb'iS -_16 unAlt'V -_17 unZ;id'e -_18 unsig'ez -_19 untug'Vz -_2X egerm'e -_3X ut'Vz -_4X kVr'Vk -_5X ill'e -_6X Altm'VS -_7X Z;itm'eS -_8X siks'&n -_9X tuks'An -_0C j'Wz -_0M1 m'eN -_0M2 milli'on -_1M2 milli'on -_0M3 milli'Ard -_1M3 milli'Ard -_0M4 billi'on -_1M4 billi'on - -_dpt _bWt,en diff --git a/dictsource/tt_rules b/dictsource/tt_rules deleted file mode 100644 index 2923bff1..00000000 --- a/dictsource/tt_rules +++ /dev/null @@ -1,134 +0,0 @@ -// This file is UTF8 encoded -// Spelling-to-phoneme rules for Tatar - - -.group а - а A - -.group ә - ә & - әе e: // 'әнкәен' - -.group б - б b - -.group в - в w // [v] in Russian words - -.group г - г g // changes to [Q] or [Q"] - -.group д - д d - -.group е - _) е je2 // changes to [je] or [jV] - е e - -.group ё - ё jo - -.group ж - ж Z - -.group җ - җ Z; - -.group з - з z - -.group и - и i - A) и j - -.group й - й j - K) й (K I // not next to a vowel - -.group к - к k - -.group л - л l - -.group м - м m - -.group н - н n -// н (к N - н (г N - н (х N - -.group ң - ң N - -.group о - о o - -.group ө - ө W - -.group п - п p - -.group р - р r - -.group с - с s - -.group т - т t - -.group у - у u // or w - A) у w - -.group ү - ү y // or w - A) ү w - -.group ф - ф f - -.group х - х x - -.group һ - һ h - -.group ц - ц ts - -.group ч - ч S; - -.group ш - ш S - -.group щ - щ SS; - -.group ъ - ъ ? - -.group ы - ы V - ый Vj // need a diphthong phoneme ?? - -.group ь - ь ? - -.group э - э e - -.group ю - ю ju2 // changes to ju or jy - -.group я - я ja // changes to jA or j& - -.group - $ dolAR - diff --git a/dictsource/wo_list b/dictsource/wo_list deleted file mode 100644 index c8b3a8ea..00000000 --- a/dictsource/wo_list +++ /dev/null @@ -1,43 +0,0 @@ - -// Spelling-to-phoneme rules for Wolof (Senegal, Gambia) -// This file is UTF-8 encoded - -// Numbers -_0 t'us -_1 b'En: -_2 n^'a:R2 -_3 n^'Et: -_4 n^'E:nt -_5 J'uR2o:m -_6 J'uR2o:mbEn: -_7 J'uR2o:mn^a:R2 -_8 J'uR2o:mn^Et: -_9 J'uR2o:mn^E:nt -_1X f'uk: -_2X n^'a:R2fuk: -_3X n^'Et:fuk: -_4X n^'E:ntfuk: -_5X J'uR2o:mfuk: -_6X J'uR2o:mbEn:fuk: -_7X J'uR2o:mn^a:R2fuk: -_8X J'uR2o:mn^Et:fuk: -_9X J'uR2o:mn^E:ntfuk: -_0C t'e:me:R2 -_1C t'e:me:R2 -_0M1 J'un:i -_0M2 t'amndaR2E:t -_0and %ak - -// Letter names - - -// Symbols - - -// Unstressed words - - -// Exceptions - - - diff --git a/dictsource/wo_rules b/dictsource/wo_rules deleted file mode 100644 index 9db5b03e..00000000 --- a/dictsource/wo_rules +++ /dev/null @@ -1,128 +0,0 @@ - -// Spelling-to-phoneme rules for Wolof (Senegal, Gambia) -// This file is UTF-8 encoded - -.group a - a a - aa a: - -.group b - b b - bb b: - -.group c - c c - cc c: - -.group d - d d - dd d: - -.group e - e E - ee E: - -.group é - é e - ée e: - éé e: - -.group ë - ë @ - ëe @: - ëë @: - -.group f - f f - -.group g - g g - gg g: - -.group h - h h - -.group i - i i - ii i: - -.group j - j J - j J: - -.group k - k k - kk k: - -.group l - l l - -.group m - m m - mm m: - K) m (K m- - -.group n - n n - nn n: - K) n (K n- - -.group ŋ - ŋ N - ŋŋ N: - K) ŋ (K N- - -.group ñ - ñ n^ - -.group o - o O - oo O: - -.group ó - ó o - óo o: - óó o: - -.group p - p p - pp p: - -.group q - q q - qq q: - -.group r - r R2 - r (r R - -.group s - s s - ss ss2 - -.group t - t t - tt t: - -.group u - u u - uu u: - -.group v - v v - -.group w - w w - -.group x - x x - -.group y - y j - -.group z - z z - - -.group - $ dOlaR2 diff --git a/phsource/ph_bengali b/phsource/ph_bengali index 17933f2f..7b93cc90 100644 --- a/phsource/ph_bengali +++ b/phsource/ph_bengali @@ -8,7 +8,7 @@ phoneme V // inherent vowel, can be [O] or [o] vowel flag1 starttype #o endtype #o length 200 - IF thisPh(isWordEnd) AND prevPhW(isNotVowel) AND prev2PhW(isNotVowel) THEN + IF thisPh(isWordEnd) AND prevPhW(isNotVowel) AND prev2PhW(isVowel) THEN ChangePhoneme(NULL) ENDIF From 36b275ff17d301197d62247559571ca0edf8dc86 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 26 Mar 2013 02:54:47 +0000 Subject: [PATCH 23/23] autotools: update to remove dictionaries no longer supported --- Makefile.am | 91 ----------------------------------------------------- 1 file changed, 91 deletions(-) diff --git a/Makefile.am b/Makefile.am index d2e3d043..8b3ef227 100644 --- a/Makefile.am +++ b/Makefile.am @@ -127,10 +127,8 @@ espeak-data/phontab: src/espeakedit espeak-data/dir.stamp espeak-data/dictsource dictionaries: \ espeak-data/af_dict \ - espeak-data/ak_dict \ espeak-data/am_dict \ espeak-data/an_dict \ - espeak-data/az_dict \ espeak-data/bg_dict \ espeak-data/bn_dict \ espeak-data/ca_dict \ @@ -138,7 +136,6 @@ dictionaries: \ espeak-data/cy_dict \ espeak-data/da_dict \ espeak-data/de_dict \ - espeak-data/dv_dict \ espeak-data/el_dict \ espeak-data/en_dict \ espeak-data/eo_dict \ @@ -150,7 +147,6 @@ dictionaries: \ espeak-data/ga_dict \ espeak-data/grc_dict \ espeak-data/hi_dict \ - espeak-data/ht_dict \ espeak-data/hu_dict \ espeak-data/hy_dict \ espeak-data/id_dict \ @@ -158,7 +154,6 @@ dictionaries: \ espeak-data/it_dict \ espeak-data/jbo_dict \ espeak-data/ka_dict \ - espeak-data/kk_dict \ espeak-data/kl_dict \ espeak-data/kn_dict \ espeak-data/ko_dict \ @@ -169,20 +164,16 @@ dictionaries: \ espeak-data/mk_dict \ espeak-data/ml_dict \ espeak-data/ms_dict \ - espeak-data/mt_dict \ espeak-data/nci_dict \ espeak-data/ne_dict \ espeak-data/nl_dict \ espeak-data/no_dict \ - espeak-data/nso_dict \ espeak-data/pa_dict \ espeak-data/pap_dict \ espeak-data/pl_dict \ - espeak-data/prs_dict \ espeak-data/pt_dict \ espeak-data/ro_dict \ espeak-data/ru_dict \ - espeak-data/rw_dict \ espeak-data/si_dict \ espeak-data/sk_dict \ espeak-data/sl_dict \ @@ -190,13 +181,9 @@ dictionaries: \ espeak-data/sv_dict \ espeak-data/sw_dict \ espeak-data/ta_dict \ - espeak-data/te_dict \ - espeak-data/tn_dict \ espeak-data/tr_dict \ - espeak-data/tt_dict \ espeak-data/ur_dict \ espeak-data/vi_dict \ - espeak-data/wo_dict \ espeak-data/zh_dict \ espeak-data/zhy_dict @@ -206,12 +193,6 @@ dictsource/af_extra: espeak-data/af_dict: src/espeak espeak-data/phontab dictsource/af_list dictsource/af_rules dictsource/af_extra cd dictsource && ../src/espeak --compile=af && cd .. -ak: espeak-data/ak_dict -dictsource/ak_extra: - touch dictsource/ak_extra -espeak-data/ak_dict: src/espeak espeak-data/phontab dictsource/ak_rules dictsource/ak_extra - cd dictsource && ../src/espeak --compile=ak && cd .. - am: espeak-data/am_dict dictsource/am_extra: touch dictsource/am_extra @@ -224,12 +205,6 @@ dictsource/an_extra: espeak-data/an_dict: src/espeak espeak-data/phontab dictsource/an_list dictsource/an_rules dictsource/an_extra cd dictsource && ../src/espeak --compile=an && cd .. -az: espeak-data/az_dict -dictsource/az_extra: - touch dictsource/az_extra -espeak-data/az_dict: src/espeak espeak-data/phontab dictsource/az_list dictsource/az_rules dictsource/az_extra - cd dictsource && ../src/espeak --compile=az && cd .. - bg: espeak-data/bg_dict dictsource/bg_extra: touch dictsource/bg_extra @@ -272,12 +247,6 @@ dictsource/de_extra: espeak-data/de_dict: src/espeak espeak-data/phontab dictsource/de_list dictsource/de_rules dictsource/de_extra cd dictsource && ../src/espeak --compile=de && cd .. -dv: espeak-data/dv_dict -dictsource/dv_extra: - touch dictsource/dv_extra -espeak-data/dv_dict: src/espeak espeak-data/phontab dictsource/dv_list dictsource/dv_rules dictsource/dv_extra - cd dictsource && ../src/espeak --compile=dv && cd .. - el: espeak-data/el_dict dictsource/el_extra: touch dictsource/el_extra @@ -344,12 +313,6 @@ dictsource/hi_extra: espeak-data/hi_dict: src/espeak espeak-data/phontab dictsource/hi_list dictsource/hi_rules dictsource/hi_extra cd dictsource && ../src/espeak --compile=hi && cd .. -ht: espeak-data/ht_dict -dictsource/ht_extra: - touch dictsource/ht_extra -espeak-data/ht_dict: src/espeak espeak-data/phontab dictsource/ht_list dictsource/ht_rules dictsource/ht_extra - cd dictsource && ../src/espeak --compile=ht && cd .. - hu: espeak-data/hu_dict dictsource/hu_extra: touch dictsource/hu_extra @@ -392,12 +355,6 @@ dictsource/ka_extra: espeak-data/ka_dict: src/espeak espeak-data/phontab dictsource/ka_list dictsource/ka_rules dictsource/ka_extra cd dictsource && ../src/espeak --compile=ka && cd .. -kk: espeak-data/kk_dict -dictsource/kk_extra: - touch dictsource/kk_extra -espeak-data/kk_dict: src/espeak espeak-data/phontab dictsource/kk_list dictsource/kk_rules dictsource/kk_extra - cd dictsource && ../src/espeak --compile=kk && cd .. - kl: espeak-data/kl_dict dictsource/kl_extra: touch dictsource/kl_extra @@ -458,12 +415,6 @@ dictsource/ms_extra: espeak-data/ms_dict: src/espeak espeak-data/phontab dictsource/ms_list dictsource/ms_rules dictsource/ms_extra cd dictsource && ../src/espeak --compile=ms && cd .. -mt: espeak-data/mt_dict -dictsource/mt_extra: - touch dictsource/mt_extra -espeak-data/mt_dict: src/espeak espeak-data/phontab dictsource/mt_list dictsource/mt_rules dictsource/mt_extra - cd dictsource && ../src/espeak --compile=mt && cd .. - nci: espeak-data/nci_dict dictsource/nci_extra: touch dictsource/nci_extra @@ -488,12 +439,6 @@ dictsource/no_extra: espeak-data/no_dict: src/espeak espeak-data/phontab dictsource/no_list dictsource/no_rules dictsource/no_extra cd dictsource && ../src/espeak --compile=no && cd .. -nso: espeak-data/nso_dict -dictsource/nso_extra: - touch dictsource/nso_extra -espeak-data/nso_dict: src/espeak espeak-data/phontab dictsource/nso_list dictsource/nso_rules dictsource/nso_extra - cd dictsource && ../src/espeak --compile=nso && cd .. - pa: espeak-data/pa_dict dictsource/pa_extra: touch dictsource/pa_extra @@ -512,12 +457,6 @@ dictsource/pl_extra: espeak-data/pl_dict: src/espeak espeak-data/phontab dictsource/pl_list dictsource/pl_rules dictsource/pl_extra cd dictsource && ../src/espeak --compile=pl && cd .. -prs: espeak-data/prs_dict -dictsource/prs_extra: - touch dictsource/prs_extra -espeak-data/prs_dict: src/espeak espeak-data/phontab dictsource/prs_list dictsource/prs_rules dictsource/prs_extra - cd dictsource && ../src/espeak --compile=prs && cd .. - pt: espeak-data/pt_dict dictsource/pt_extra: touch dictsource/pt_extra @@ -536,12 +475,6 @@ dictsource/ru_extra: espeak-data/ru_dict: src/espeak espeak-data/phontab dictsource/ru_list dictsource/ru_rules dictsource/ru_extra cd dictsource && ../src/espeak --compile=ru && cd .. -rw: espeak-data/rw_dict -dictsource/rw_extra: - touch dictsource/rw_extra -espeak-data/rw_dict: src/espeak espeak-data/phontab dictsource/rw_list dictsource/rw_rules dictsource/rw_extra - cd dictsource && ../src/espeak --compile=rw && cd .. - si: espeak-data/si_dict dictsource/si_extra: touch dictsource/si_extra @@ -584,30 +517,12 @@ dictsource/ta_extra: espeak-data/ta_dict: src/espeak espeak-data/phontab dictsource/ta_list dictsource/ta_rules dictsource/ta_extra cd dictsource && ../src/espeak --compile=ta && cd .. -te: espeak-data/te_dict -dictsource/te_extra: - touch dictsource/te_extra -espeak-data/te_dict: src/espeak espeak-data/phontab dictsource/te_list dictsource/te_rules dictsource/te_extra - cd dictsource && ../src/espeak --compile=te && cd .. - -tn: espeak-data/tn_dict -dictsource/tn_extra: - touch dictsource/tn_extra -espeak-data/tn_dict: src/espeak espeak-data/phontab dictsource/tn_list dictsource/tn_rules dictsource/tn_extra - cd dictsource && ../src/espeak --compile=tn && cd .. - tr: espeak-data/tr_dict dictsource/tr_extra: touch dictsource/tr_extra espeak-data/tr_dict: src/espeak espeak-data/phontab dictsource/tr_list dictsource/tr_rules dictsource/tr_extra cd dictsource && ../src/espeak --compile=tr && cd .. -tt: espeak-data/tt_dict -dictsource/tt_extra: - touch dictsource/tt_extra -espeak-data/tt_dict: src/espeak espeak-data/phontab dictsource/tt_list dictsource/tt_rules dictsource/tt_extra - cd dictsource && ../src/espeak --compile=tt && cd .. - ur: espeak-data/ur_dict dictsource/ur_extra: touch dictsource/ur_extra @@ -620,12 +535,6 @@ dictsource/vi_extra: espeak-data/vi_dict: src/espeak espeak-data/phontab dictsource/vi_list dictsource/vi_rules dictsource/vi_extra cd dictsource && ../src/espeak --compile=vi && cd .. -wo: espeak-data/wo_dict -dictsource/wo_extra: - touch dictsource/wo_extra -espeak-data/wo_dict: src/espeak espeak-data/phontab dictsource/wo_list dictsource/wo_rules dictsource/wo_extra - cd dictsource && ../src/espeak --compile=wo && cd .. - zh: espeak-data/zh_dict dictsource/zh_extra: touch dictsource/zh_extra