diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index e9d82f59..03ff95a5 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -43,7 +43,7 @@ Dictionary de_dict 3 @ @- a A: aI aU E E2 E: e: I i: O o: OI -U u: u: W y y: Y: +U u: W y y: Y: * ; b C d D f g h j k l m n N p @@ -66,9 +66,9 @@ Dictionary en_dict 0 3 3: @ @- @2 @5 @L a a2 A: A@ aa aI aI@ aU -aU@ E e@ eI I i I2 i: -i@ IR O O: o: O@ o@ OI -oU O~ U u: U@ V VR +aU@ E e@ eI I I2 i: i@ +IR O O: o: O@ o@ OI oU +O~ U u: U@ V VR : ; b C d D dZ f g g- h j k l L m @@ -112,8 +112,8 @@ S s2 t v Z Dictionary fr_dict -@ @- a A A~ e E E~ -i o O oU O~ u U u: +@ @- a A aU A~ e E +E~ i I o O O O~ u W w^i W~ y Y (o) : ; b c d dZ f @@ -141,23 +141,23 @@ Dictionary hr_dict & 8 @ @- @2 a A a: aI aU E e e: eI i I i: iI l- o o: oI oU r- -u U u: +u U u: uI * b d d; dZ dZ; f g h j k l l^ m n N -n^ p r R s S t tS -ts tS; v w x z Z +n^ p r R s S t t; +tS ts tS; v x z Z Dictionary hu_dict -@- A a: E e e: i i: -o o: u u: y Y y: Y: +A a: E e e: i i: o +o: u u: y Y y: Y: * : b c C d dZ f g h j J k l m n -N n^ p r s S s2 t -tS ts v z Z +N n^ p r R s S s2 +t tS ts v z Z Dictionary it_dict @@ -212,8 +212,8 @@ Dictionary pt_dict & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU -i i/ iU o O oI OI o~ -U u uI u~ y +i i/ iU i~ o O oI OI +o~ U u uI u~ y * : ; b C d dZ f g h j k l l^ m n @@ -312,11 +312,11 @@ tS v w z Dictionary is_dict & @- a aI aU e E eI -i I o O oU u W y -Yy +i I o O oU oU2 u W +y Yy * : ; b c C d D -f g h j J k l L -l# m m# n N n# N# n^ -n^# p Q r r# s S t -T tl# v x z +f g h j J k l l# +m m# n N n# N# n^ n^# +p Q r r# s S t T +tl# v x z diff --git a/dictsource/en_list b/dictsource/en_list index 04a172c5..abeb93e5 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -182,6 +182,7 @@ ui $abbrev uk $abbrev url $abbrev usa $abbrev +u.s ju:'Es wwii dVb@Lju:dVb@Lju:t'u: xy $abbrev @@ -722,7 +723,7 @@ dingy dIndZI2 dinosaur daIn@sO@ diode daIoUd diplomacy dIpl'oUm@sI2 -disconsolate dIsC'0ns@l@t +disconsolate dIsk'0ns@l@t disc dIsk // for discs disciple dIs'aIp@L discounted $2 diff --git a/dictsource/en_rules b/dictsource/en_rules index c795b1ae..ef8e9851 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -480,7 +480,7 @@ _) al (i al _) al (ig a2l _) ali (Be a2laI - &) ali (sC_ @li + &) ali (sC_ @lI &) al (isCic @l _) al (k al _) all (@ a2l @@ -5115,6 +5115,8 @@ š S ş S ž Z + þ T + ð D \\ bakstroUk diff --git a/dictsource/eo_rules b/dictsource/eo_rules index d997f885..a45f2c31 100644 --- a/dictsource/eo_rules +++ b/dictsource/eo_rules @@ -124,8 +124,9 @@ r R A) r (A R K) r (A @-* + rr RR - -) ro (_ R%o d-ro, n-ro + -) ro (_ R%o // d-ro, n-ro .group s _) s(_ so diff --git a/dictsource/hr_list b/dictsource/hr_list index e6406a23..21a17003 100644 --- a/dictsource/hr_list +++ b/dictsource/hr_list @@ -20,8 +20,8 @@ m m@ n n@ nj n^@ p p@ -q kvE -r r- +q kv@ // new +r R@ // new _s s@ š S@ t t@ diff --git a/dictsource/hr_rules b/dictsource/hr_rules index ee58abe8..92a92c20 100644 --- a/dictsource/hr_rules +++ b/dictsource/hr_rules @@ -83,7 +83,7 @@ .group r r R A) r (A R - K) r (A @-* + K) r (A R rr R r (_ R @@ -101,7 +101,8 @@ .group u u u - uj (K wi + uj (K uI + X) uj (_ u'i .group v v v diff --git a/dictsource/hu_list b/dictsource/hu_list index 4b843db3..41852a89 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -13,7 +13,7 @@ m Em n En p pe: q ku: -r Er +r ER s S_ s ES $atend _s ES @@ -30,7 +30,7 @@ _. pont _0 n'ullA _1 'EJ _2 k'EttY: -_3 h'a:rom +_3 h'a:Rom _4 n'e:J _5 'Yt _6 h'At @@ -51,9 +51,9 @@ _9X k'ilEntsvEn _0C s'a:z_ _1C s'a:z -_0M1 'EzEr -_1M1 'EzEr -_2M1 k'e:t,EzEr +_0M1 'EzER +_1M1 'EzER +_2M1 k'e:t,EzER _0M2 m'illio: _1M2 m'illio: _2M2 k'e:tm,illio: @@ -68,7 +68,7 @@ _dpt v,Ess2Y: // Articles a $u -a A: $atend +a A: $atend // letter "a" az $u ez $u // this diff --git a/dictsource/hu_rules b/dictsource/hu_rules index ede4b11d..cf24986a 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -133,10 +133,11 @@ qu kv .group r - r r - A) r (A * - C) r (A @-* - rr *r + r R + A) r (A R + C) r (A R + r (C r + rr R .group s s S diff --git a/dictsource/is_list b/dictsource/is_list new file mode 100755 index 00000000..a9f2b916 --- /dev/null +++ b/dictsource/is_list @@ -0,0 +1,382 @@ + +// Exceptions dictionary for: Icelandic +// This file in UTF8 encoded + +// Letters +// If a letter has a "word" pronunciation which is different from its +// "letter" name, then include the letter name here, with the letter +// prefixed by a _ character. + +// numeric +//******** +_0 n'utl# +_1 'eIdn +_2 dv'eI:r# +_3 Tr#'i:r# +_4 fj'oU:@-*Ir# +_1f 'eIhd +_2f tv'W: +_3f Tr#j'u: +_4f fj'W:Qyr# +_5 f'Im +_6 s'e:xs +_7 S'W: +_8 'aUhd& +_9 n'i:;y +_10 t'i:;y +_11 'EdlEv,y +_12 t'oUl#f +_13 Tr#'EhdaUn +_14 fj'oUr#taUn +_15 f'ImtaUn +_16 s'ExsdaUn +_17 s'Yy:djaUn +_18 'aU:djaUn +_19 n'i:djaUn +_2X t'yhdyQ,y +_3X Tr#j'aU:ti;,y +_4X fj'W:@-*yt,i;y +_5X f'Imti;,y +_6X s'Exsdi;,y +_7X sj'W:ti;,y +_8X 'aUhd&t,i;y +_9X n'i:;yt,i;y +_0C h'ynd@-*yD +_1C 'eIhd||h'ynd@-*&D +_2C tv'W:||h'ynd@-*yD +_3C Tr#j'u:||h'ynd@-*yD +_4C fj'W:Qyr#||h'ynd@-*yD +_0M1 T'u:synd +_0M2 m'IdljoUn +_1M2 eI:n||m'IdljoUn +_2M2 tv'aI:r#||m'IdljoUn +_3M2 Tr#j'aU:r#||m'IdljoUn +_4M2 fj'oU:*&r#||m'IdljoUn + +_0and o:Q + +// abbreviations +//************** +hinn $u+ +hin $u+ +hið $u+ +hitt $u+ // this +hina $u+ +hinir $u+ +hinar $u+ +hinum $u+ +hinni $u+ +hinu $u+ +hins $u+ +hinnar $u+ +hinna $u+ + +// articles + + +// pronouns +ég $u // nominative +þú $u +hann $u +hún $u +það $u +við $u +þið $u +þeir $u +þær $u +þau $u + +mig $u+ +þig $u+ +hana $u+ +okkur $u+ +ykkur $u+ +þá $u+ + +þessi $u+ // this +þetta $u+ +þessir $u+ +þessar $u+ +þessi $u+ +þennan $u+ +þessa $u+ +þessum $u+ +þessari $u+ +þessu $u+ +þessarar $u+ + + +sá $u+ // that +sú $u+ +það $u+ +þann $u+ +þá $u+ +þeim $u+ +þeirri $u+ +því $u+ +þess $u+ +þeirrar $u+ +þeir $u+ +þær $u+ +þau $u+ +þeim $u+ +þeirra $u+ + + +hver $u+ $pause // who + + + +// possessive adjectives +minn $u+ +mín $u+ +mitt $u+ +mína $u+ +mínum $u+ +mínar $u+ +minni $u+ +mínu $u+ +míns $u+ +minnar $u+ +mínir $u+ +minna $u+ + +þinn $u+ +þín $u+ +þitt $u+ +þína $u+ +þínum $u+ +þínar $u+ +// etc + +sinn $u+ +sín $u+ +sitt $u+ +sína $u+ +sínum $u+ +sínar $u+ + +vor $u+ +vort $u+ +vorn $u+ +vora $u+ +vorar $u+ +// etc... + + +// prepositions +á $u+ $brk +að $u+ $brk // towards +af $u+ $brk // from,off of +eftir $u+ $pause // after,by +frá $u+ $brk // off +fyrir $u+ $pause // for,by +í $u+ $brk +með $u+ $brk // with +til $u+ $brk // to +um $u+ $brk // about +við $u+ $brk // with,at,against + +úr $u+ $brk // out of +án $u+ $pause // without +hjá $u+ $brk // by, with +milli $pause // between +mót $u+ $brk // against +auk $brk // in addition to, besides +gegnum $brk // through +gegn $brk // against +undir $u $brk // under +yfir $brk // over +framhjá $brk // by, past +handa $brk // for +áður $pause // before +vegna $pause // because of +síðan $pause // since +líka $pause // also, as well + + + +// conjunctions +en $u+ $pause // but +eða $u+ $pause // or +né $pause // nor +og $u+ $pause // and +þegar $pause // when, as soon as +ef $u+ $pause // if +enda $pause // but, however +þó $pause // although +vegna $pause // because of +nema $pause // unless, except +hvort $pause // whether +þannig $pause // thus, so +meðan $pause // while, as long as +annars $pause // else, otherwise +svo $pause // so (that) +sem $u+ $brk // as +því $u+ $pause // the..the.. + + +// negative +ekki $u+ +nei $u+ + + +// questions + + +// auxillary verbs (be, have, can, etc) +//**************** + +vera $u // to be +er $u // is, present +ert $u +erum $u +eruð $u +eru $u + +ertu $u // are you? + +var $u // was, past +varst $u +vorum $u +voruð $u +voru $u +verið $u + +á $u+ // to have (own) +átt $u+ +eigum $u+ +eigið $u+ +eiga $u+ + +átti $u+ // to have (own) past +áttir $u+ +áttum $u+ +áttuð $u+ +áttu $u+ + +hafa $u // to have +hef $u +hefur $u +höfum $u +hafið $u + +hafði $u // had, past +hafðir $u +höfðum $u +höfðuð $u +höfðu $u + +verð $u // to become +verður $u +verðum $u +verðið $u +verða $u + +varð $u // became, past +varðst $u +urðum $u +urðuð $u +urðu $u + +get $u+ // can +getur $u+ +getum $u+ +getið $u+ +geta $u+ + +gat $u+ // could, past +gast $u+ +gátum $u+ +gátuð $u+ +gátu $u+ + +mun $u+ // will +munt $u+ +munum $u+ +munuð $u+ +munu $u+ + +muni $u+ // will, subj +munir $u+ +munum $u+ +munið $u+ + +mundi $u+ // would, past +mundir $u+ +mundum $u+ +munduð $u+ +mundu $u+ + +myndi $u+ // would, past subj +myndir $u+ +myndum $u+ +mynduð $u+ +myndu $u+ + +fæ $u+ // get +færð $u+ +fær $u+ +fáum $u+ +fáið $u+ +fæ $u+ + +fékk $u+ // got, past +fékkst $u+ +fengum $u+ +fenguð $u+ +fengu $u+ + + +// some common adjectives and adverbs +nokkur $u+ // any, some, a few +nokkurt $u+ +nokkuð $u+ +nokkurn $u+ +nokkra $u+ +nokkrir $u+ +nokkrar $u+ + +sumur $u+ // some + + +// common adverbs etc. +fram $u+ // forward + + +// character names +//**************** +_á aU: +á aU: $atend +b bje: +c sje: +d dje: +ð e:D +f Ef +g gje: +h haU: +_í i: +í i: $atend +j j'o:D +k k'aU: +l El +m Em +n En +p pje: +q ku: +r Err# +s Es +t tje: +v vaf +w tv'W:v&ldv,af +x e:xs +_y 'yfsilOn||,I: +_ý 'yfsilOn||,i: +y 'yfsilOn||,I: $atend +ý 'yfsilOn||,i: $atend +z se:t& +þ T'Ordn# + + +// MAIN WORD DICTIONARY +//********************* diff --git a/dictsource/is_rules b/dictsource/is_rules new file mode 100644 index 00000000..b026bd8f --- /dev/null +++ b/dictsource/is_rules @@ -0,0 +1,320 @@ +// Spelling-to-phoneme rules for Icelandic +// This file is UTF8 encoded. + +// letter group L08 voiceless consonants +// letter group F p,t,k,s +// letter group H j,r,v, + + +.group a + a a: + a (FH a: + a (CC & + a (ng aU + a (nk aU + + au Yy: + au (FH Yy: + au (CC Yy + + _) al (@P2N ,a:l + +.group á + á aU: + á (FH aU: + á (CC aU + + +.group b + b b + bb b + +.group c + c k + c (e s + c (i s + + +.group d + d d + dd d + + +.group ð + ð D + ð (L08 T + ð (__ T // before pause + + +.group e + e e: + e (FH e: + e (CC E + e (ng eI + e (nk eI + + ei eI: + ey eI: + ei (FH eI: + ey (FH eI: + ei (CC eI + ey (CC eI + + +.group é + é jE: + é (FH jE: + é (CC jE + + +.group f + f f + ff f + A) f (A v +// A) f (_ v // ?? + l) f (A v + @) f (l b + @) f (n b + fnd mt + fnt m#bt + + +.group g + g g + gg g + _) g g + A) g (l g + A) g (n g + _) g (e J + _) g (i J + _) g (í J + _) g (æ J + _) g (j J + A) g (a Q + A) g (u Q + A) g (ð Q + A) g (r Q + g (_ Q + gn (_ g + gt xd + g (s x + gj J + g (i J + A) g (j j + A) g (i j + á) g (a + á) g (u + ó) g (a + ó) g (u + ú) g (a + ú) g (u + + +.group h + h h + hj C + hl l# + hn hn# + hr r# + hv kv + + +.group i + i I: + i (FH I: + i (CC I + K) i (ng i + K) i (nk i + + +.group í + í i: + í (FH i: + í (CC i + + +.group j + j j + + +.group k + k k + _) k (e c + _) k (i c + _) k (í c + _) k (y c + _) k (ý c + _) k (æ c + kj c + k (K g + k (k h // [hk] + + +.group l + l l + l (_ l# + l (L08X l# + ll dl + ll (L08 tl# + ll (_ tl# // ?? + + +.group m + m m + mm (K m + L08) m hm# + m (L08 m# + + +.group n + n n + L08) n hn# + n (L08 n# + n (g N + ng (_ Ng + ngt (K N#d + n (gi n^ + nk(i n^#J + n (k N# + A) n (k N#h + á) nn dn + é) nn dn + í) nn dn + ó) nn dn + ú) nn dn + ý) nn dn + au) nn dn + ei) nn dn + ey) nn dn + nn (K n + + + +.group o + o o: + o (FH o: + o (CC O + o (ng oU + o (nk oU + + +.group ó + ó oU: + ó (FH oU: + ó (CC oU + óf (A oU2 + + +.group p + _) p p + p p + L08) p b + s) p b + p (K b + p (s f + p (k f + p (t f + pp hb + + +.group q + q kv + + +.group r + _) r @-* + C) r @-* + A) r (A @-* + L08) r r# + r (L08 r# + r (_ r# + r r + rl dl + rl (K rtl# + rn rdn# + + +.group s + s s + ss s + sj S + + +.group t + _) t t + t t + L08) t d + s) t d + t (K d + tt hd + t (l ht //?? ætla + + +.group u + u y: + u (FH y: + u (CC y + K) u (ng u + K) u (nk u + + +.group ú + ú u: + ú (FH u: + ú (CC u + + +.group v + v v + + +.group w + w v + + +.group x + x xs + + +.group y + y I: + y (FH I: + y (CC I + K) y (ng i + K) y (nk i + + +.group ý + ý i: + ý (FH i: + ý (CC i + + +.group z + z z + zz ts // pizza + + +.group þ + þ T + + +.group æ + æ aI: + æ (FH aI: + æ (CC aI + + +.group ö + ö W: + ö (FH W: + ö (CC W + ö (ng Yy + ö (ng Yy + + _) ö (@P1N ,W: + +.group + $ dolar + + diff --git a/phsource/compile_report b/phsource/compile_report index 57df62e6..ab75ee94 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,39 +1,39 @@ 34 phoneme tables new total - base 92 92 - en 52 139 - en_n 29 139 - en_us 36 139 - en_sc 39 141 - en_rp 34 139 - en_wm 30 139 - af 37 123 - cy 30 118 - de 28 115 - eo 16 104 - fi 40 123 + base 93 93 + en 52 140 + en_n 29 140 + en_us 36 140 + en_sc 39 142 + en_rp 34 140 + en_wm 30 140 + af 37 124 + cy 30 119 + de 28 116 + eo 13 105 + fi 40 124 fr 33 115 fr_ca 11 115 - hi 49 127 - hu 26 111 - nl 25 112 - pl 17 103 - sk 25 120 - cs 5 120 - hr 26 132 - ru 36 120 - it 28 112 - es 6 112 - pt 25 127 - pt_pt 17 127 - ro 36 136 - el 8 112 - sv 25 114 - no 29 118 - is 32 117 - vi 41 129 - zh_yue 32 120 - sw 14 101 + hi 49 128 + hu 24 110 + nl 25 113 + pl 17 104 + sk 26 121 + cs 5 121 + hr 25 131 + ru 36 121 + it 28 114 + es 6 114 + pt 25 129 + pt_pt 17 129 + ro 36 138 + el 8 114 + sv 25 115 + no 29 119 + is 32 118 + vi 41 130 + zh_yue 32 121 + sw 14 102 3 b/b base hi ro 2 b/b_ base hi @@ -177,36 +177,35 @@ 1 r2/r2i base 1 r2/r2o base 1 r2/r2u base - 7 r3/r_ base af cy eo fr pl ru + 6 r3/r_ base af cy fr pl ru 1 r3/r_@ base 1 r3/r#_ is 1 r3/r_a base 1 r3/r_e base 1 r3/r_i base - 6 r3/r_n base cy eo fr pl ru + 5 r3/r_n base cy fr pl ru 1 r3/r_o base - 2 r3/r_test1.wav hu hr - 2 r3/r_test2.wav hu hr - 3 r3/r_trill base eo it - 4 r3/r_trill2 hu hr - 3 r3/r_trill.wav base eo it + 3 r3/r_trill base sk it + 2 r3/r_trill2 base hr + 2 r3/r_trill2.wav base hr + 3 r3/r_trill.wav base sk it 1 r3/r_u base - 28 r3/rx base af cy eo fr fr_ca pl ru pt_pt ro is + 26 r3/rx base af cy fr fr_ca pl ru pt_pt ro is 2 r3/rz_cs sk 2 r3/@tap base 2 r3/@tap_i base 7 r/r base en_sc de fr hu it 5 r/_r base en_sc fr hu it - 17 r/r_ base en_sc af cy de eo fi fr hu nl pl ru ++ + 16 r/r_ base en_sc af cy de fi fr hu nl pl ru it ++ 1 r/r@ base 1 r/ra base 1 r/re base 1 r/ri base 1 r/ro base - 29 r/rr base af cy de eo fi nl pl ru it ro no ++ + 26 r/rr base af cy de fi nl pl ru it ro no sw 1 r/ru base 15 r/tr base en_sc fr hu it - 57 r/trr base af cy de eo fi nl pl ru it ro sv ++ + 51 r/trr base af cy de fi nl pl ru it ro sv no ++ 11 r/xr base 1 ufric/ch base 3 ufric/f base de ro diff --git a/phsource/d/tap1 b/phsource/d/tap1 index 032338dc..93f7075e 100644 Binary files a/phsource/d/tap1 and b/phsource/d/tap1 differ diff --git a/phsource/mbrola/en1 b/phsource/mbrola/en1 index 24c754b2..bfea6f7a 100644 --- a/phsource/mbrola/en1 +++ b/phsource/mbrola/en1 @@ -5,6 +5,7 @@ 0 @5 NULL 0 @ 0 3 NULL 0 @ 0 I2 NULL 0 I +0 i NULL 0 I 0 a NULL 0 { 0 aa NULL 0 { 0 0 NULL 0 Q diff --git a/phsource/n/n#_ b/phsource/n/n#_ index c9e57aa6..b1125a53 100644 Binary files a/phsource/n/n#_ and b/phsource/n/n#_ differ diff --git a/phsource/n^/n^#_ b/phsource/n^/n^#_ index 23895f28..b4d10673 100644 Binary files a/phsource/n^/n^#_ and b/phsource/n^/n^#_ differ diff --git a/phsource/n^/n^_ b/phsource/n^/n^_ index c8f3f359..50838e13 100644 Binary files a/phsource/n^/n^_ and b/phsource/n^/n^_ differ diff --git a/phsource/nn/nn#_ b/phsource/nn/nn#_ index cdcfd5af..6d29891f 100644 Binary files a/phsource/nn/nn#_ and b/phsource/nn/nn#_ differ diff --git a/phsource/ph_croatian b/phsource/ph_croatian index 96c72ac5..87ac80e2 100644 --- a/phsource/ph_croatian +++ b/phsource/ph_croatian @@ -184,20 +184,11 @@ phoneme x switchvoicing Q endphoneme -phoneme R2 // test +phoneme R liquid vowelin f1=0 f2=1600 -300 300 f3=-200 80 vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk - formants r3/r_trill2+r3/r_test1.wav%140 - trill - lengthmod 6 -endphoneme - -phoneme R3 // test - liquid - vowelin f1=0 f2=1600 -300 300 f3=-200 80 - vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk - formants r3/r_trill2+r3/r_test2.wav%140 + formants r3/r_trill2+r3/r_trill2.wav%65 trill lengthmod 6 endphoneme diff --git a/phsource/ph_esperanto b/phsource/ph_esperanto index 9bdd8125..a6276e1f 100644 --- a/phsource/ph_esperanto +++ b/phsource/ph_esperanto @@ -85,39 +85,6 @@ endphoneme // CONSONANTS //=========== -phoneme r - liquid - length 100 - lengthmod 7 - beforenotvowel r/ - trill - formants r/rr - after _ r/rr - after t r/trr p r/trr k r/trr - before _ r/r_ -endphoneme - - -phoneme r/ // used for [r] when not preceding a vowel - liquid - length 100 - lengthmod 2 // - formants r3/r_+r3/rx - before n r3/r_n+r3/rx - after _ r/rr - after t r/trr p r/trr k r/trr -endphoneme - -phoneme R - liquid - vowelin f1=0 f2=1700 -300 300 f3=-300 80 - vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk - beforenotvowel r/ - formants r3/r_trill+r3/r_trill.wav%50 - trill - lengthmod 6 -endphoneme - phoneme ts diff --git a/phsource/ph_hungarian b/phsource/ph_hungarian index ff13f2bc..9f060f72 100644 --- a/phsource/ph_hungarian +++ b/phsource/ph_hungarian @@ -33,7 +33,7 @@ endphoneme phoneme A vowel starttype (a) endtype (a) - length 160 + length 140 formants vowel/0_3 endphoneme @@ -135,7 +135,7 @@ phoneme d // dental variant of /d/ vowelin f1=2 f2=1500 -300 300 f3=-150 80 vowelout f1=2 f2=1500 -300 300 f3=-150 80 formants d/d+x/d_dnt%110 - before _ d/d_+x/d_dnt%80 + before _ d/d_+x/d_dnt%100 before r d/dr+x/d_dnt%110 after _ NULL after @ d/xd @@ -202,23 +202,4 @@ phoneme s2 // second part of geminated [s:] endphoneme -phoneme R2 // test - liquid - vowelin f1=0 f2=1600 -300 300 f3=-200 80 - vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk - formants r3/r_trill2+r3/r_test1.wav%140 - trill - lengthmod 6 -endphoneme - -phoneme R3 // test - liquid - vowelin f1=0 f2=1600 -300 300 f3=-200 80 - vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk - formants r3/r_trill2+r3/r_test2.wav%140 - trill - lengthmod 6 -endphoneme - - diff --git a/phsource/ph_icelandic b/phsource/ph_icelandic new file mode 100644 index 00000000..6cd18ca7 --- /dev/null +++ b/phsource/ph_icelandic @@ -0,0 +1,266 @@ + + +//========================================================= +// Icelandic +//========================================================= + +phoneme : // Lengthen previous vowel by "length" + virtual + length 110 +endphoneme + + +// Vowels +//======= + +phoneme i + vowel starttype (i) endtype (i) + length 130 + formants vowel/i_4 + linkout ; +endphoneme + + +phoneme I + vowel starttype (i) endtype (i) + length 130 + formants vowel/ii + linkout ; +endphoneme + + +phoneme e + vowel starttype (e) endtype (e) + length 130 + formants vowel/e_e + reduceto E 4 +endphoneme + + +phoneme E + vowel starttype (e) endtype (e) + length 130 + formants vowel/e_mid +endphoneme + + +phoneme a + vowel starttype (a) endtype (a) + length 130 + formants vowel/a_3 + reduceto & 4 +endphoneme + + +phoneme & + vowel starttype (@) endtype (@) + length 130 + formants vowel/a#_2 +endphoneme + + +phoneme o + vowel starttype (o) endtype (o) + length 130 + formants vdiph2/o_oo + reduceto O 4 +endphoneme + + +phoneme O + vowel starttype (o) endtype (o) + length 130 + formants vowel/oo_5 +endphoneme + + +phoneme u + vowel starttype (u) endtype (u) + length 130 + formants vowel/u_bck +endphoneme + + +phoneme y + vowel starttype (i) endtype (i) + length 130 + formants vowel/yy_4 +endphoneme + +phoneme W + vowel starttype (@) endtype (@) + length 130 + formants vowel/y#_3 +endphoneme + + +phoneme aI + vowel starttype (a) endtype (i) + length 170 + formants vdiph/ai_7 +endphoneme + +phoneme eI + vowel starttype (e) endtype (i) + length 170 + formants vdiph/ei +endphoneme + +phoneme aU + vowel starttype (a) endtype (u) + length 170 + formants vdiph/au_4 +endphoneme + +phoneme oU + vowel starttype (o) endtype (u) + length 170 + formants vdiph/ou_3 +endphoneme + +phoneme oU2 // long version for óf + vowel starttype (o) endtype (u) + length 230 + formants vdiph/ou_3 +endphoneme + +phoneme Yy + vowel starttype (@) endtype (i) + length 150 + formants vdiph/y#i_2 +endphoneme + + + +// Consonants +//=========== + +phoneme m# + vcd blb nasal +// starttype m endtype m + vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk + length 100 + lengthmod 6 + formants NULL + before _ m/m#_ +endphoneme + + +phoneme n# + vcd alv nasal + starttype n endtype n + vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk + length 100 + lengthmod 6 + formants NULL + before _ n/n#_ +endphoneme + + +phoneme n^# + vcd pal nasal palatal + vowelout f1=3 f2=2300 300 400 f3=100 80 brk rate + length 100 + lengthmod 6 + formants NULL + before _ n^/n^#_ +endphoneme + + + +phoneme N# + vcd vel nasal + starttype N endtype N + vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk + length 100 + formants NULL + before _ nn/nn#_ + lengthmod 6 // longer than 'n' +endphoneme + + +phoneme l# + vls alv frc + length 100 + lengthmod 3 + wave ufric/ll%25 +endphoneme + + +phoneme tl# + vls alv stop + vowelin f1=0 f2=1700 -300 300 f3=-100 80 + vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + lengthmod 2 + wave ufric/tl#%50 +endphoneme + + +phoneme r#2 + vls alv frc + vowelin f1=0 f2=1700 -300 300 f3=-300 80 + vowelout f1=0 f2=1700 -300 250 f3=-300 80 rms=20 + lengthmod 2 + wave r3/rx%90 +endphoneme + +phoneme r# // used for [r] when not preceding a vowel + liquid + length 100 + lengthmod 2 // + formants r3/r#_+r3/rx +// before n r3/r_n+r3/rx +endphoneme + + +phoneme c + vls vel stop + vowelin f1=0 f2=2700 200 400 f3=300 80 rate len=60 + vowelout f1=0 f2=2700 300 400 f3=300 80 rms=20 + lengthmod 2 + wave ustop/ki + switchvoicing g +endphoneme + + +phoneme b + vls blb stop + vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk + vowelin f1=2 f2=1000 -300 -200 f3=-200 80 rms=30 + lengthmod 5 + wave x/b + before _ x/b_ +endphoneme + + +phoneme d + vls alv stop + vowelin f1=2 f2=1700 -300 300 f3=-100 80 + vowelout f1=2 f2=1700 -300 300 f3=-100 80 + lengthmod 5 + wave x/d%80 + before _ x/d_ +endphoneme + +phoneme g + vls vel stop + vowelin f1=2 f2=2300 200 300 f3=-300 80 + vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + lengthmod 5 + wave x/g2%150 + before _ x/g_ +endphoneme + + + +phoneme v // no fricative noise + vcd lbd frc + vowelin f1=1 f2=900 -300 -300 f3=-100 100 + vowelout f1=1 f2=900 -500 -300 f3=-100 60 len=50 + lengthmod 6 + formants voc/v + before _ voc/v_ + switchvoicing f +endphoneme + + diff --git a/phsource/ph_italian b/phsource/ph_italian index 65077da1..85c042c5 100644 --- a/phsource/ph_italian +++ b/phsource/ph_italian @@ -151,7 +151,7 @@ phoneme r endphoneme -phoneme R2 +phoneme R2x liquid starttype r endtype r length 100 lengthmod 7 @@ -164,7 +164,7 @@ phoneme R2 endphoneme -phoneme R +phoneme R3x liquid vowelin f1=0 f2=1700 -300 300 f3=-300 80 vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk diff --git a/phsource/ph_slovak b/phsource/ph_slovak index 1b2a16aa..40873b4c 100644 --- a/phsource/ph_slovak +++ b/phsource/ph_slovak @@ -107,6 +107,17 @@ phoneme r: formants vowelr/r-voc endphoneme + +phoneme R + liquid + vowelin f1=0 f2=1700 -300 300 f3=-300 80 + vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk + formants r3/r_trill+r3/r_trill.wav%50 + trill + lengthmod 6 +endphoneme + + phoneme R^ // Czech r-caron vcd pla frc sibilant vowelin f1=0 f2=1700 -300 300 f3=-300 80 diff --git a/phsource/phonemes b/phsource/phonemes index 83c32a9c..0884638a 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -380,6 +380,15 @@ endphoneme phoneme R + liquid + vowelin f1=0 f2=1600 -300 300 f3=-200 80 + vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk + formants r3/r_trill2+r3/r_trill2.wav%65 + trill + lengthmod 6 +endphoneme + +phoneme R2 // this is [R] from Slovak/Czech liquid vowelin f1=0 f2=1700 -300 300 f3=-300 80 vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk @@ -388,6 +397,8 @@ phoneme R lengthmod 6 endphoneme + + phoneme l liquid length 100 @@ -526,7 +537,7 @@ endphoneme phoneme n^ vcd pal nasal palatal - vowelout f1=3 f2=2300 300 400 f3=100 80 brk rate + vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate length 100 lengthmod 4 formants NULL diff --git a/phsource/vowel/0_3 b/phsource/vowel/0_3 index d92c8f35..1f2191d6 100644 Binary files a/phsource/vowel/0_3 and b/phsource/vowel/0_3 differ diff --git a/src/options.cpp b/src/options.cpp index 1de43274..06bdf680 100755 --- a/src/options.cpp +++ b/src/options.cpp @@ -51,7 +51,7 @@ wxString path_dictsource; wxString path_speaktext; int option_speed=160; -char path_dsource[80]; +char path_dsource[120]; BEGIN_EVENT_TABLE(Options, wxDialog) EVT_BUTTON(wxID_SAVE,Options::OnCommand) @@ -175,9 +175,9 @@ void ConfigInit() void ConfigSave(int exit) {//====================== wxFileConfig *pConfig = (wxFileConfig *)(wxConfigBase::Get()); - + #ifndef PLATFORM_WINDOWS - pConfig->Write(_T("/samplerate"),samplerate); + pConfig->Write(_T("/samplerate"),samplerate); #endif pConfig->Write(_T("/basedir"),basedir); pConfig->Write(_T("/spectload"),path_spectload); diff --git a/src/options.h b/src/options.h index 2d862e74..55dd3586 100755 --- a/src/options.h +++ b/src/options.h @@ -37,7 +37,7 @@ extern wxString path_phsource; extern wxString path_dictsource; extern char path_source[80]; -extern char path_dsource[80]; +extern char path_dsource[120]; extern int option_speed; diff --git a/src/speak.cpp b/src/speak.cpp index 342f1a13..ee4b7964 100755 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -538,7 +538,11 @@ int main (int argc, char **argv) if(flag_compile) { #ifdef PLATFORM_WINDOWS - CompileDictionary("C:\\Program Files\\eSpeak\\dictsource\\",dictionary_name,NULL,NULL); + char path_dsource[120]; + strcpy(path_dsource,path_home); + path_dsource[strlen(path_home)-11] = 0; // renove "espeak-data" from the end + strcat(path_dsource,"dictsource\\"); + CompileDictionary(path_dsource,dictionary_name,NULL,NULL); #else CompileDictionary(NULL,dictionary_name,NULL,NULL); #endif diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index 8b8f83d7..9b86cb13 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -280,13 +280,23 @@ void Free(void *ptr) static void init_path(const char *path) {//==================================== #ifdef PLATFORM_WINDOWS + HKEY RegKey; + unsigned long size; + unsigned long var_type; + unsigned char buf[100]; + if(path != NULL) { sprintf(path_home,"%s/espeak-data",path); return; } + buf[0] = 0; + RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey); + size = sizeof(buf); + var_type = REG_SZ; + RegQueryValueEx(RegKey, "path", 0, &var_type, buf, &size); - strcpy(path_home,"c:\\Program Files\\espeak\\espeak-data"); + sprintf(path_home,"%s\\espeak-data",buf); #else if(path != NULL) diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 696e8d32..0dfa7629 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.25.03 22.May.07"; +const char *version_string = "1.25.04 23.May.07"; const int version_phdata = 0x012501; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 4a7f53f1..75538dc1 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -312,8 +312,8 @@ Translator *SelectTranslator(const char *name) case L('h','u'): // Hungarian { - static int stress_amps_hu[8] = {16,16, 20,20, 20,24, 24,22 }; - static int stress_lengths_hu[8] = {180,160, 200,180, 0,0, 230,270}; + static int stress_amps_hu[8] = {17,16, 20,19, 20,24, 24,22 }; + static int stress_lengths_hu[8] = {180,160, 200,190, 0,0, 220,240}; static const wchar_t replace_chars_hu[] = {0xd4,0xf4,0xdb,0xfb,0}; static const unsigned int replacement_chars_hu[] = {0x150,0x151,0x170,0x171,0}; // allow o,u-circumflex for o,u-double-acute @@ -323,9 +323,10 @@ Translator *SelectTranslator(const char *name) tr->langopts.replace_chars = replace_chars_hu; tr->langopts.replacement_chars = replacement_chars_hu; + tr->langopts.vowel_pause = 0x10; tr->langopts.stress_rule = 0; - tr->langopts.stress_flags = 0x16; // move secondary stress from light to a following heavy syllable - tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x1; + tr->langopts.stress_flags = 0x16; + tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x4; // don't propagate over word boundaries tr->langopts.param[LOPT_IT_DOUBLING] = 1; tr->langopts.long_stop = 130; @@ -338,13 +339,15 @@ Translator *SelectTranslator(const char *name) case L('i','s'): // Icelandic { static int stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 }; - static int stress_lengths_is[8] = {180,160, 200,200, 0,0, 240,260}; + static int stress_lengths_is[8] = {180,155, 200,200, 0,0, 240,250}; static const wchar_t is_L08[] = {'c','f','h','k','p','t','x',0xfe,0}; // voiceless conants, including 'þ' ?? 's' tr = new Translator(); SetupTranslator(tr,stress_lengths_is,stress_amps_is); tr->langopts.stress_rule = 1; + tr->langopts.stress_flags = 0x10; tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels + tr->langopts.param[LOPT_KEEP_UNSTR_VOWEL] = 1; ResetLetterBits(tr,0x18); SetLetterBits(tr,4,"kpst"); // Letter group F