diff --git a/dictsource/de_list b/dictsource/de_list index 3697f8d5..25de24fe 100644 --- a/dictsource/de_list +++ b/dictsource/de_list @@ -109,7 +109,7 @@ _13 'draItse:n _14 'fIrtse:n _15 'fynftse:n _16 'zECtse:n -_17 'zi:btse:n +_17 'zi:ptse:n _18 '_axtse:n _19 'nOYntse:n _2X 'tsvantsIC @@ -117,7 +117,7 @@ _3X 'draIsIC _4X 'fIrtsIC _5X 'fynftsIC _6X 'zECtsIC -_7X 'zi:btsIC +_7X 'zi:ptsIC _8X '_axtsIC _9X 'nOYntsIC _0C 'hUnd3t diff --git a/dictsource/de_rules b/dictsource/de_rules index 539d89cf..36a9b324 100644 --- a/dictsource/de_rules +++ b/dictsource/de_rules @@ -19,7 +19,7 @@ // ***************************************************************************/ .L01 l r -.L02 c f h k p q s t // unvoiced, except s+vowel +.L02 c f h k p q s t z // unvoiced, except s+vowel // This file is UTF-8 encoded @@ -521,6 +521,8 @@ _) ge (imp g@ ge (mach g@ ge (mal g@ + _) ge (mK gE + _) ge (nK gE ge (tr g@ general ge:nEr'al general (is ge:n@ral diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 9eee0875..4322358f 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -77,7 +77,7 @@ n n^ p r R R2 s S s2 t t2 tS ts v z Z -Dictionary de_dict 2011-03-13 +Dictionary de_dict 2011-03-14 3 3: @ @- a A A: aI aU A~ e E E2 E: e: EI @@ -402,7 +402,7 @@ ts; v v; w w2 x z Z z; Z; -Dictionary ru_dict 2011-03-10 +Dictionary ru_dict 2011-03-14 8 @- a A e E E# E% E2 i I I# I3 I^ ja ju @@ -463,7 +463,7 @@ p Q R s S t T tS v w x z -Dictionary sl_dict 2010-08-14 +Dictionary sl_dict 2011-03-14 @ a a: e E e: i i: o O o: u u: y @@ -688,7 +688,7 @@ t. th th. tS v w x z Z -Dictionary kn_dict 2011-03-11 +Dictionary kn_dict 2011-03-14 a a: aI aU e E e: i I i: o o: r- u u: @@ -713,7 +713,7 @@ R R3 s S t T tS ts v w x X z -Dictionary te_dict 2011-02-08 +Dictionary te_dict 2011-03-14 a a: aI aU e E e: i i: l- o o: r- u u: V diff --git a/dictsource/ka_list b/dictsource/ka_list new file mode 100755 index 00000000..83e586d4 --- /dev/null +++ b/dictsource/ka_list @@ -0,0 +1,154 @@ + +// translation rules for Georgian +// This file is UTF-8 encoded + +_0 n'uli +_1 'ert#i +_2 'ori +_3 s'ami +_4 'ot#xi +_5 x'ut#i +_6 'ek#vsi +_7 Sv'idi +_8 rv'a +_9 ts#xr'a + +_0a n'ul +_1a 'ert# +_2a 'or +_3a s'am +_4a 'ot#x +_5a x'ut# +_6a 'ek#vs +_7a Sv'id + +_10 'at#i +_11 t#'ert#meti +_12 t#'ormeti +_13 ts#'ameti +_14 t#'ot#xmeti +_15 t#x'ut#meti +_16 t#'ek#vsmeti +_17 tSv'idmeti +_18 t#vr'ameti +_19 ts#xr'ameti + +_10a 'at# +_11a t#'ert#met +_12a t#'ormet +_13a ts#'amet +_14a t#'ot#xmet +_15a t#x'ut#met +_16a t#'ek#vsmet +_17a tSv'idmet +_18a t#vr'amet +_19a ts#xr'amet + +_20 'ots#i +_20a 'ots# +_2X 'ots# +_40 'ormotsi +_40a 'ormots +_4X 'ormots +_60 s'amotsi +_60a s'amots +_6X s'amots +_80 'ot#xotsi +_80a 'ot#xots +_8X 'ot#xots +_0C0 asi +_0C as +_0M1 'at#asi +_0M2 m'ilioni + +_0and d%a +_dpt mt#eli_ + +_0Z1 me'at#edi +_0Z2 me'asedi +_0Z3 me'at#asedi +_0Z4 me'at#iat#asedi +_0Z5 me'asiat#asedi +_0Z6 mem'ilionedi + +// letter and symbol names + +ა a +_ე e +ი i +ო o +უ u + +ბ b'@ +გ g'@ +დ d'@ +ვ v'@ +ზ z'@ +თ t#'@ +კ k'@ +ლ l'@ +მ m'@ +ნ n'@ +პ p'@ +ჟ Z'@ +რ r'@ +ს s'@ +ტ t'@ +ფ p#'@ +ქ k#'@ +ღ Q'@ +ყ q'@ +შ S'@ +ჩ tS'@ +ც ts#'@ +ძ dz'@ +წ ts'@ +ჭ c'@ +ხ x'@ +ჯ dZ'@ +ჰ h'@ + +ჱ he +ჲ hie +ჳ vie +ჴ har +ჵ hoe +ჶ fi +ჷ shva +ჸ elifi +უ unbrigu + + +% prots#enti $max3 ++ pliusi $max3 += toloba $max3 +* varvskvlavi $max3 +@ dzaQluka +& da +# n'omeri $max3 +! dz'axilis||n,iSani +_? k'it#xvis||n,iSani +. tsertili +_- tire +_: ortsertili +_; tsertilmdzime +_, mdzime +_" br@-cqali +_> metoba +_< nakleboba +_' apostrofi +_` ukuQma||apostrofi +_( m'arts#xena||p#'igur,uli||p#r@-tSx'ili +_) m'ardZvena||p#'igur,uli||p#r@-tSx'ili +_[ m'arts#xena||kv'adrat,uli||p#r@-tSx'ili +_] m'ardZvena||p#'igur,uli||p#r@-tSx'ili +_( m'arts#xena||mr@-gv'ali||p#r@-tSx'ili +_) m'ardZvena||mr@-gv'ali||p#r@-tSx'ili +/ m'arts#xniv||d'axrili||x'azi $max3 +\ m'ardZvniv||d'axrili||x'azi $max3 + +// abbreviations +(http ://) 'ejtStitiphi_ + +// common function words +და $u $brk diff --git a/dictsource/ka_rules b/dictsource/ka_rules new file mode 100755 index 00000000..5dff815c --- /dev/null +++ b/dictsource/ka_rules @@ -0,0 +1,152 @@ + +// translation rules for Georgian +// This file is UTF-8 encoded +// all words lower case + +.group ა + ა a + -) ა (_ %a + +.group ბ + ბ b + +.group გ + გ g + +.group დ + დ d + +.group ე + ე e + -) ე (_ %e + +.group ვ + ვ v + +.group ზ + ზ z + +.group თ + თ t# + +.group ი + ი i + -) ი (_ %i + +.group კ + კ k + +.group ლ + ლ l + +.group მ + მ m + +.group ნ + ნ n + +.group ო + ო o + -) ო (_ %o + +.group პ + პ p + +.group ჟ + ჟ Z + +.group რ + რ r + K) რ (CC r@- + +.group ს + ს s + +.group ტ + ტ t + +.group უ + უ u + -) უ (_ %u + +.group ფ + ფ p# + +.group ქ + ქ k# + +.group ღ + ღ Q + +.group ყ + ყ q + +.group შ + შ S + +.group ჩ + ჩ tS + +.group ც + ც ts# + +.group ძ + ძ dz + +.group წ + წ ts + +.group ჭ + ჭ c + +.group ხ + ხ x + +.group ჯ + ჯ dZ + +.group ჰ + ჰ h + +.group ჱ + ჱ ej + +.group ჲ + ჲ j + +.group ჳ + ჳ w + +.group ჴ + ჴ x + +.group ჵ + ჵ o: + +.group ჶ + ჶ f + +.group ჷ + ჷ @ + +.group ჸ + ჸ ? + +.group ჹ + ჹ + +.group ჺ + ჺ + +// For cyrillic characters (U+0400 to U+04FF) use Russian voice +.group 0xd0 + \320 _^_RU +.group 0xd1 + \321 _^_RU +.group 0xd2 + \322 _^_RU +.group 0xd3 + \323 _^_RU + +.group + $ dolari diff --git a/dictsource/kn_list b/dictsource/kn_list new file mode 100755 index 00000000..df76f602 --- /dev/null +++ b/dictsource/kn_list @@ -0,0 +1,297 @@ + +// This file is UTF8 encoded +// Spelling to phoneme words and exceptions for Kannada + + +// letter names (consonants) + + +// 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 thi: +u ju: +v vi: +w dabalju: +x Eks +y wa:j +z zEd + +_?? aks.ara // 'unknown character' + +// letter names + +ಕ್ ik +ಖ್ ikh +ಗ್ ig +ಘ್ igh +ಙ್ iN +ಚ್ ic +ಛ್ ich +ಜ್ iJ +ಝ್ iJh +ಞ್ in^ +ಟ್ it. +ಠ್ ith. +ಡ್ id. +ಢ್ idh. +ಣ್ in. +ತ್ it +ಥ್ ith +ದ್ id +ಧ್ id. +ನ್ in +ಪ್ ip +ಫ್ iph +ಬ್ ib +ಭ್ ibh +ಮ್ im +ಯ್ ij +ರ್ ir +ಱ್ ir +ಲ್ il +ಳ್ il. +ವ್ iv +ಶ್ iS; +ಷ್ is. +ಸ್ is +ಹ್ ih +ೞ್ if +U+c82 am +U+c83 ah +U+cbc nukta +U+cbd avagraha +U+ccd vattu + +// combining vowels, precede by a click so they can be distinguished from stand-alone vowels +ಾ #X2a:: +ಿ #X1i +ೀ #X2i:: +ು #X1u +ೂ #X2u:: +ೃ #X1ru +ೄ #X2r-: +ೆ #X1e +ೇ #X2e:: +ೈ #X2aI +ೊ #X1o +ೋ #X2o:: +ೌ #X2aU + + +// symbols +% pratis.ata +! a:scharjachinhe +_? aks.ara +. pu:rn.avira:ma +, alpavira:ma +¼ ka:lu +½ ardha +¾ mukka:lu +(1 / 2) ardha +(1 / 4) ka:lu +(3 / 4) mukka:lu +÷ bha:ga:ka:ra +& mattu + + +// numbers +_0 s'onne +_1 'ondu +_2 'erad.u +_3 m'u:ru +_4 n'a:lku +_5 'aIdu +_6 'a:ru +_7 'e:l.u +_8 'ent.u +_9 'ombath:u +_1X h'ath:u +_11 hann'ondu +_12 han:erad.u +_13 hadim'u:ru +_14 hadin'a:lku +_15 hadinaIdu +_16 hadina:ru +_17 hadin'e:l.u +_18 hadin'ent.u +_19 ha'th:'ombath:u + +_2X Ip:ath:u +_21 'Ip:a'th:ondu +_22 Ip:a'th:erad.u +_23 Ip:a'th:m'u:ru +_24 Ip:a'th:n'a:lku +_25 Ip:a'th:'aIdu +_26 Ip:a'th:a:ru +_27 Ip:a'th:e:l.u +_28 Ip:a'th:ent.u +_29 Ip:a'th:ombath:u + +_3X m'ovath:u +_31 m'ovath:ondu +_32 m'ovatherad.u +_33 m'ovathm'u:ru +_34 m'ovathn'a:lku +_35 m'ovath'aIdu +_36 m'ovatha:ru +_37 m'ovathe:l.u +_38 m'ovathent.u +_39 m'ovathombath:u + +_4X n'alavath:u +_41 n'alavath:ondu +_42 n'alavatherad.u +_43 n'alavathm'u:ru +_44 n'alavathn'a:lku +_45 n'alavathaIdu +_46 n'alavatha:ru +_47 n'alavathe:l.u +_48 n'alavathent.u +_49 n'alavathombath:u + +_5X 'aIvath:u +_51 aIvath:ondu +_52 aIvatherad.u +_53 aIvathm'u:ru +_54 aIvathn'a:lku +_55 aIvath'aIdu +_56 aIvatha:ru +_57 aIvathe:l.u +_58 aIvathent.u +_59 aIvathombath:u +_6X 'aravath:u +_61 aravath:ondu +_62 aravatherad.u +_63 aravathm'u:ru +_64 aravathn'a:lku +_65 aravathaIdu +_66 aravatha:ru +_67 aravathe:l.u +_68 aravathent.u +_69 aravathombath:u + +_7X 'Ep:ath:u +_71 Ep:ath:ondu +_72 Ep:atherad.u +_73 Ep:athm'u:ru +_74 Ep:athn'a:lku +_75 Ep:athaIdu +_76 Ep:atha:ru +_77 Ep:athe:l.u +_78 Ep:athent.u +_79 Ep:athombath:u +_8X 'Embath:u +_81 Embath:ondu +_82 Embatherad.u +_83 Embathm'u:ru +_84 Embathn'a:lku +_85 EmbathaIdu +_86 Embatha:ru +_87 Embathe:l.u +_88 Embathent.u +_89 Embathombath:u + +_9X th'ombath:u +_91 th'ombath:ondu +_92 th'ombath:erad.u +_93 th'ombathm'u:ru +_94 th'ombathn'a:lku +_95 th'ombathaIdu +_96 th'ombatha:ru +_97 th'ombathe:l.u +_98 th'ombathent.u +_99 th'ombathombath:u + +_0C0 n'u:ru +_1C0 nu:ru +_2C0 'innu:ru +_3C0 m'unnu:ru +_5C0 'aInu:ru +_9C0 ombainu:ru + +_0C n'u:ra: +_1C nu:ra: +_2C 'innu:ra: +_3C m'unnu:ra: +_5C 'aInu:ra: +_9C ombainu:ra: + +_0M1 s'a:virada +_0M1x s'a:vira +_0M2x l'akSa // 100,000 +_0M2 l'akSada +_0M3 k'oti // 100,00,000 +_0M4 b'ilion // ?? English +_dpt _d'as.a:ms.a + +// abbreviations + +(http ://) e:tSti:ti:'pi:_ + + +// unstressed words +ಅದು $u // that +ಅದರ $u // that, possessive +ಅವು $u // those +ಅವುಗಳ $u // those, possessive +ಇದು $u // it/this +ಇದರ $u // it/this, possessive +ಇವು $u // these +ಇವುಗಳ $u // these, possessive +ನಾನು $u // I +ನನ್ನ $u // my +ನಾವು $u // we +ನಮ್ಮ $u // our +ನೀನು $u // you +ನಿನ್ನ $u // your +ನೀವು $u // you (formal) +ನಿಮ್ಮ $u // your (formal) +ಅವರು $u // they +ಅವರ $u // their +ಇವರು $u // they +ಇವರ $u // their +ಅವನು $u // he +ಅವನ $u // his +ಇವನು $u // he +ಇವನ $u // his +ತಾವು $u // you (more formal), (also used to indicate self) +ತಮ್ಮ $u // (possessive form of the above) also means (his/her own) +ಅವಳು $u // she +ಅವಳ $u // her +ಇವಳು $u // she +ಇವಳ $u // her +ಕೆಲವು $u // few +ಹಲವು $u // many +ಅನೇಕ $u // several +ಇತರ $u // other +ಮತ್ತು $u $pause // and +ಆದರೆ $u $pause // but +ಆದ್ದರಿಂದ $u $pause // so, therefore. +ಆದಾಗ್ಯೂ $u $pause // though +ಈ $u+ // [i:] (this) $u+ so it's stressed if it's by itself, as a letter name +ಆ $u+ // [a:] (that) +ಇಂದ $u // from +ಯಾವುದು $u // which +ಯಾವುದೇ $u // whichever (adding the "ಏ" in the end of the word, indicates ever) +ಈಗ $u // now. + +// ಕ್ಕೆ, ಗೆ, ಗ್ಗೆ to (note: these do not come independently, means they come as a part of the word in the end) +// ದ (adds the possession to words [postfix]) diff --git a/dictsource/kn_rules b/dictsource/kn_rules new file mode 100644 index 00000000..e081f280 --- /dev/null +++ b/dictsource/kn_rules @@ -0,0 +1,265 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Kannada + +// A means vowel letters (not vowel signs) +// B means a combining vowel sign or a virama + + +.replace +೦ 0 // Convert Kannada numbers +೧ 1 +೨ 2 +೩ 3 +೪ 4 +೫ 5 +೬ 6 +೭ 7 +೮ 8 +೯ 9 + + +.group ಕ + ಕ ka + ಕ (B k + +.group ಖ + ಖ kha + ಖ (B kh + +.group ಗ + ಗ ga + ಗ (B g + +.group ಘ + ಘ gha + ಘ (B gh + +.group ಙ + ಙ Na + ಙ (B N + +.group ಚ + ಚ ca + ಚ (B c + +.group ಛ + ಛ cha + ಛ (B ch + +.group ಜ + ಜ Ja + ಜ (B J + +.group ಝ + ಝ Jha + ಝ (B Jh + +.group ಞ + ಞ n^a + ಞ (B n^ + +.group ಟ + ಟ t.a + ಟ (B t. + +.group ಠ + ಠ th.a + ಠ (B th. + +.group ಡ + ಡ d.a + ಡ (B d. + +.group ಢ + ಢ dh.a + ಢ (B dh. + +.group ಣ + ಣ n.a + ಣ (B n. + +.group ತ + ತ ta + ತ (B t + +.group ಥ + ಥ tha + ಥ (B th + +.group ದ + ದ da + ದ (B d + +.group ಧ + ಧ dha + ಧ (B dh + +.group ನ + ನ na + ನ (B n + +.group ಪ + ಪ pa + ಪ (B p + +.group ಫ + ಫ pha + ಫ (B ph + +.group ಬ + ಬ ba + ಬ (B b + +.group ಭ + ಭ bha + ಭ (B bh + +.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 ೞ + ೞ fa + ೞ (B f + +.group ೠ + ೠ r- + + +// Stand-alone vowels +.group ಅ + ಅ a + +.group ಆ + ಆ a: + +.group ಇ + ಇ i + +.group ಈ + ಈ i: + +.group ಉ + ಉ u + +.group ಊ + ಊ u: + +.group ಋ + ಋ ru + +.group ಎ + ಎ e + +.group ಏ + ಏ e: + +.group ಐ + ಐ aI + +.group ಒ + ಒ o + +.group ಓ + ಓ o: + +.group ಔ + ಔ aU + + + +.group 0xe0b2 // characters which start with UTF-8 bytes: [e0 b2] + + ಂ m // anusvara (this should nasalize the vowel) + + ಃ h // visarga + +// combining vowel signs + + ಾ a: + + ಿ i + + +.group 0xe0b3 // characters which start with UTF-8 bytes: [e0 b3] + + ೀ i: + + ು u + + ೂ u: + + ೃ ru + + ೄ r-: + + ೆ e + + ೇ e: + + ೈ aI + + ೊ o + + ೋ o: + + ೌ aU + + ್ // virama +// ್ (C y // virama+consonant, insert epenthetic vowel + + ೕ : // length mark ?? + ೖ : // ai length mark ?? + + +.group 0xe0a4 // devanagari + \340\244 _^_HI // switch to hindi voice for devanagari characters +.group 0xe0a5 // devanagari + \340\245 _^_HI + + +.group + $ do:l.ar + + diff --git a/dictsource/nci_list b/dictsource/nci_list new file mode 100755 index 00000000..5e3990f0 --- /dev/null +++ b/dictsource/nci_list @@ -0,0 +1,25 @@ + +// This file is UTF8 encoded +// Spelling to phoneme words for Nahuatl. + +// Note: initial/final "." has already been removed + +// numeric + +//_0 zero $text // TEST +_0 a?tle +_1 se: +_2 O:me +_3 e:ji +_4 na:wi +_5 ma:kwi:lli +_6 tSikwase: +_7 tSicO:me +_8 tSiwke:ji +_9 tSiwkna:wi +_10 ma?tlaktli +_1X ma?tlaktlion +_20 sempO:walli +_2X sempO:wallion +_30 sempO:walliomma?tlaktli +_3X sempO:walliomma?tlaktlion diff --git a/dictsource/nci_rules b/dictsource/nci_rules new file mode 100755 index 00000000..7c36a9cf --- /dev/null +++ b/dictsource/nci_rules @@ -0,0 +1,90 @@ +// translation rules for Classical Nahuatl +// This file is UTF-8 encoded + +.L01 e ē i ī // letter group for front vowels + + +.group a + a a + +.group ā + ā a: + +.group c + c k + c (L01 s + ch tS + cu kw + +.group e + e e + +.group ē + ē e: + ē (_ 'e: // vocative, stress in final vowel + +.group h + h ? + hu w + +.group i + i i + +.group ī + ī i: + +.group l + l l + +.group m + m m + + +.group n + n n + +.group o + o o + +.group ō + ō o: + +.group p + p p + +.group q + qu k + +.group t + t t + +.group u + u o + u (A w + uc wk + uq k + uh w + + +.group x + x S + +.group y + y j + +.group z + z s + +.group + b b + d d + f f + g g + j x + k k + r R + s s + v v + w w + ç s + # _: diff --git a/dictsource/ta_rules b/dictsource/ta_rules index 925f0420..9bd7f6e0 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -173,6 +173,7 @@ _) கி (ரீன்லாந்த g _) கி (ரீம k _) க (ிரீஷ g + _) கி (ரீஸ g _) க (ிருகஸ்தர g _) க (ிருகிரு g _) க (ிருஹஸ்தர g @@ -707,6 +708,7 @@ _தணிகா) ச (ல tSV சு (வாதீன s சு (வாமி s _) சுவாரசி (ய sva:rVs + அ) சுவாரசி (ய sva:rVs சு (வாரஸ்ய s _) சு (விட்ச s _) சு (வீட s @@ -777,6 +779,7 @@ _ரிப்போர்) ட t.V# இண்டர்மீடியே) ட t.V# _) ட (க்கர t.V ங்) ட (ன t.V // -ington + _நியூ) ட (ன t.V _மில்) ட (ன t.V _) ட (ன் t.V _) ட (ப்_ t.V @@ -836,6 +839,7 @@ _நாவல்) ட (ி t. _) ட (ிப்ஸ t. _) டி (யூசன t. _) டியூட (ி d.jU:t. + _) டி (யூன t. _) டி (யூஷன t. _) டி (ரங் t. _) டி (ரங்கு t. @@ -922,6 +926,8 @@ _லான்_) ட (ென்னிஸ t. _ரெ) ட்ட (ியா d.d. இ) ட்ட (ிலி d.d. அப்பாயிண்) ட்மெண்ட t.men.t.V# + _) ட் (யூசன t. + _) ட் (யூன t. ஸ்) ட் (ர _|t. // ?? make t. distinct _) ட் (ரங் t. _) ட் (ரங்கு t. @@ -1400,6 +1406,7 @@ _காமசூ) த் (ர t ந nV ந (B n // dental n _) நி (யாய n + _) நி (யூ n .group ன @@ -2065,12 +2072,14 @@ _பச்சாதா) ப (+ bV# திரௌ) ப (தி pV பிரஜா) பத (ி pVt மகுட) பதி pVti + அலோ) ப (தி pV பிரகஸ்) பதி pVti லக்ஷ்மி) பதி pVti வித்யா) பதி pVti _ராஷ்டிர) ப (தி pV அம்பிகா) பதி pVti இராஷ்டிர) ப (தி pV +மியோ) ப (தி pV வளையா) பதி pVti வேங்கட) பதி pVti _புகு) ப (திகை pV diff --git a/docs/languages.html b/docs/languages.html index 45025fe5..21e687df 100644 --- a/docs/languages.html +++ b/docs/languages.html @@ -51,7 +51,7 @@ For details of the voice files see Voices.

en-sc
-
Scottish English. +
English with a Scottish accent.

en-n
@@ -68,7 +68,7 @@ To make alternative voices for a language, you can make additional voice files i

Alternatively there are some preset voice variants which can be applied to any of the language voices, by appending + and a variant name. Their effects are defined by files in espeak-data/voices/!v.

-The variants are +m1 +m2 +m3 +m4 +m5 for male voices, +f1 +f2 +f3 +f4 for female voices, and +croak +wisper for other effects. For example: +The variants are +m1 +m2 +m3 +m4 +m5 +m6 +m7 for male voices, +f1 +f2 +f3 +f4 +f5 for female voices, and +croak +whisper for other effects. For example:

   espeak -ven+m3
The available voice variants can be listed with:
   espeak --voices=variant
@@ -96,6 +96,11 @@ The eSpeak speech synthesizer does text to speech for the following additional l

+da  Danish
+
Usable. +
+

+

de  German
This has improved from easlier versions. A problem is stress placement (which like English is irregular), prosody, and the use of compound words where correct detection of the sub-word boundaries would probably be needed for accurate pronunciation.
@@ -143,6 +148,11 @@ This contains a few changes from es, notably the pronunciation
This has had some feedback from a native speaker but more work is needed. Spelling is fairly regular, but stress marks and vowel accents are often omitted from text, so for some words the dictionary/exceptions list will need to determine the stress position or whether to use open/close [e] or [E] and [o] or [O].

+kn  Kannada
+
Not much feedback yet, but I'm told that it sounds reasonable. +
+

+

ku  Kurdish
Not much work yet, but Kurdish has good spelling rules so it should be OK. @@ -154,6 +164,11 @@ Not much work yet, but Kurdish has good spelling rules so it should be OK.

+nl  Dutch
+
Needs improvement of the spelling-to-phoneme rules. +
+

+

pl  Polish
Usable. @@ -176,7 +191,7 @@ Usable.

sk  Slovak
-
This has had assistance from a nativ speaker, so it should be OK. +
This has had assistance from a native speaker, so it should be OK.

@@ -196,8 +211,7 @@ Usable.

ta  Tamil
-
-Not much work yet, but I'm told it sounds reasonable. +
This has had assistance from a native speaker, so it should be OK.

@@ -255,6 +269,11 @@ These languages are only initial naive implementations which have had little or

+ka  Georgian
+
An initial guess, awaiting feedback. +
+

+

la  Latin
Stress rules are implemented, but it needs text where long vowels are marked with macrons.
@@ -265,11 +284,6 @@ These languages are only initial naive implementations which have had little or

-nl  Dutch
-
Needs improvement of the spelling-to-phoneme rules. -
-

-

no  Norwegian
An initial guess, awaiting feedback.
diff --git a/phsource/compile_report b/phsource/compile_report index b6f2961a..d740115a 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -360,7 +360,7 @@ l/l_ [l] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [h¶p] base +l/l@ [h–x] base [l#] base [l] fr [l/2] fr @@ -394,7 +394,7 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [h¶p] base +l/la [h–x] base [l#] base [l] fr [l/2] fr @@ -402,7 +402,7 @@ l/la [h [K] tn l/l_a [l/3] base [l/] fr -l/le [h¶p] base +l/le [h–x] base [l#] base [l] fr [l/2] fr @@ -414,7 +414,7 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [h¶p] base +l/li [h–x] base [l#] base [l] fr [l/2] fr @@ -428,7 +428,7 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [h¶p] base +l/lo [h–x] base [l#] base [l/2] fr [K] nso @@ -438,7 +438,7 @@ l/l_o [l/3] base l^/l_rfx [l.] base [l] ru [l^] ru -l/lu [h¶p] base +l/lu [h–x] base [l#] base [l] fr [l/2] fr diff --git a/phsource/mbrola/de4 b/phsource/mbrola/de4 index 6a566ab3..d387559f 100644 --- a/phsource/mbrola/de4 +++ b/phsource/mbrola/de4 @@ -41,7 +41,6 @@ 0 Y: NULL 0 2: 0 OI NULL 0 OY 0 3 NULL 0 6 -0 _| NULL 0 ? 0 pF NULL 0 pf 0 r NULL 0 R @@ -51,6 +50,9 @@ 0 A~ NULL 0 a~ 0 O~ NULL 0 o~ +16 _| VWL 0 ? +16 _! VWL 0 ? + // phonemes for English words 0 @L NULL 0 L 0 @2 NULL 0 @ diff --git a/phsource/mbrola/nl b/phsource/mbrola/nl index fddcd05b..4bc1d3ee 100644 --- a/phsource/mbrola/nl +++ b/phsource/mbrola/nl @@ -16,7 +16,7 @@ 0 d; NULL 0 dj 0 J NULL 0 dj 0 n^ NULL 0 nj -0 v2 NULL 0 v +0 v# NULL 0 w 0 s; NULL 0 S 0 C NULL 0 x 0 Q NULL 0 G @@ -33,6 +33,8 @@ 0 Wy NULL 0 9y 0 VU NULL 0 Au 0 eU NULL 70 e W +0 yU NULL 70 y W +0 E2 NULL 0 E // phonemes for English words @@ -48,7 +50,7 @@ 0 a# NULL 0 @ 0 I2 NULL 0 I 0 aa NULL 0 a -0 V NULL 0 @ +0 V NULL 0 2 0 U NULL 0 u 0 0 NULL 0 O 0 3: NULL 0 2 @@ -67,7 +69,8 @@ 0 aI@ NULL 70 a @ 0 aU@ NULL 70 Au @ -0 dZ NULL 0 dj +0 dZ VWL 0 dj +0 dZ NULL 0 tj 0 tS NULL 0 tj 0 T NULL 0 t 0 D NULL 0 z diff --git a/phsource/ph_spanish b/phsource/ph_spanish index c70d6b2c..613d3d2c 100644 --- a/phsource/ph_spanish +++ b/phsource/ph_spanish @@ -98,7 +98,7 @@ phoneme s ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN WAV(ufric/s!) ENDIF - WAV(ufric/s) + WAV(ufric/s, 80) endphoneme diff --git a/phsource/vdiph/ai_5 b/phsource/vdiph/ai_5 index 44dcf547..9eff28a0 100644 Binary files a/phsource/vdiph/ai_5 and b/phsource/vdiph/ai_5 differ diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss index 97b215c3..379ab49f 100755 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -2,7 +2,7 @@ [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.44.01 +AppVerName=eSpeak version 1.45.01 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes @@ -13,9 +13,13 @@ Compression=lzma SolidCompression=yes ShowLanguageDialog=auto +[Icons] +Name: "{group}\TTSApp"; Filename: "{app}\TTSApp.exe"; WorkingDir: "{app}" + [InstallDelete] Type: files; Name: "{app}\espeak.dll" Type: filesandordirs; Name: "{app}\espeak-data\voices\test" +Type: filesandordirs; Name: "{app}\docs" [Dirs] Name: "{app}\espeak-data\soundicons" @@ -30,6 +34,7 @@ Source: "docs\*"; DestDir: "{app}\docs"; Flags: recursesubdirs Source: "command_line\*"; DestDir: "{app}\command_line" Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme Source: "License.txt"; DestDir: "{app}"; +Source: "ChangeLog.txt"; DestDir: "{app}"; [Registry] Root: HKLM; Subkey: "Software\Microsoft\Speech\PhoneConverters\Tokens\eSpeak"; Flags: deletekey uninsdeletekey @@ -57,7 +62,7 @@ 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: "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: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl" @@ -150,11 +155,13 @@ begin $39: Result := 'hi'; $41: Result := 'sw'; $49: Result := 'ta'; - //$4b: Result := 'kn'; + $4b: Result := 'kn'; //$50: Result := 'mn'; $52: Result := 'cy'; + //$5e: Result := 'am'; //$61: Result := 'ne'; //$87: Result := 'rw'; + //$88: Result := 'wo'; end; // is there a match on the full language code? @@ -191,6 +198,7 @@ begin // when a SAPI5 voice is installed. case lang1 of 'af': value := $436; + 'am': value := $45e; 'az': value := $42c; 'bg': value := $402; 'bs': value := $41a; // should be $141a but Jaws crashes on startup @@ -199,12 +207,15 @@ begin 'cy': value := $452; 'da': value := $406; 'de': value := $407; + 'dv': value := $465; 'el': value := $408; 'en': value := $409; 'es': value := $40a; + 'et': value := $425; 'eu': value := $42d; 'fi': value := $40b; 'fr': value := $40c; + 'gu': value := $447; 'hi': value := $439; 'hr': value := $41a; 'hu': value := $40e; @@ -212,10 +223,12 @@ begin 'id': value := $421; 'is': value := $40f; 'it': value := $410; + 'ka': value := $437; 'kn': value := $44b; 'ko': value := $412; 'lv': value := $426; 'mk': value := $42f; + 'ml': value := $44c; 'mn': value := $450; 'ne': value := $461; 'nl': value := $413; @@ -231,8 +244,11 @@ begin 'sv': value := $41d; 'sw': value := $441; 'ta': value := $449; + 'te': value := $44a; + 'tn': value := $432; 'tr': value := $41f; 'vi': value := $42a; + 'wo': value := $488; 'zh': value := $804; // mbrola voices '-af': value := $436; diff --git a/platforms/windows/make_espeakedit.iss b/platforms/windows/make_espeakedit.iss index 848b5b3c..66034eeb 100755 --- a/platforms/windows/make_espeakedit.iss +++ b/platforms/windows/make_espeakedit.iss @@ -1,7 +1,7 @@ [Setup] AppName=eSpeakEdit -AppVerName=eSpeakEdit version 1.44.01 +AppVerName=eSpeakEdit version 1.45.01 DefaultDirName={pf}\eSpeak DefaultGroupName=eSpeak OutputBaseFilename=setup_espeakedit @@ -50,7 +50,7 @@ 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: "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: "zh"; MessagesFile: "compiler:Languages\ChineseSimp-12-5.1.11.isl" diff --git a/platforms/windows/windows_sapi/version.rc2 b/platforms/windows/windows_sapi/version.rc2 index 1a6e80c8..89a1b110 100755 --- a/platforms/windows/windows_sapi/version.rc2 +++ b/platforms/windows/windows_sapi/version.rc2 @@ -5,8 +5,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,44,00 - PRODUCTVERSION 1,0,44,00 + FILEVERSION 1,0,45,00 + PRODUCTVERSION 1,0,45,00 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -24,14 +24,14 @@ BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "Jonathan Duddington\0" VALUE "FileDescription", "Text to Speech\0" - VALUE "FileVersion", "1, 0,44,00\0" - VALUE "InternalName", "espeak1.44\0" + VALUE "FileVersion", "1, 0,45,00\0" + VALUE "InternalName", "espeak1.45\0" VALUE "LegalCopyright", "Copyright (c) Jonathan Duddington\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "espeak_sapi.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "espeak TTS\0" - VALUE "ProductVersion", "1, 0, 44, 00\0" + VALUE "ProductVersion", "1, 0, 45, 00\0" VALUE "SpecialBuild", "\0" END END diff --git a/src/Makefile b/src/Makefile index 27c36683..a184e85d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,7 +7,7 @@ BINDIR=$(PREFIX)/bin INCDIR=$(PREFIX)/include/espeak LIBDIR=$(PREFIX)/lib -RELEASE = 1.44 +RELEASE = 1.45 BIN_NAME = speak BIN2_NAME = espeak LIB_NAME = libespeak.so diff --git a/src/readclause.cpp b/src/readclause.cpp index 143aea22..18bc8ec2 100644 --- a/src/readclause.cpp +++ b/src/readclause.cpp @@ -202,18 +202,18 @@ const int param_defaults[N_SPEECH_PARAM] = { 0, // voice type }; - #ifdef NEED_WCHAR_FUNCTIONS // additional Latin characters beyond the Latin1 character set #define MAX_WALPHA 0x233 // indexed by character - 0x100 -// 0=not alphabetic, 0xff=lower case, other=value to add to upper case to convert to lower case +// 0=not alphabetic, 0xff=lower case, 0xfe=special case +// other=value to add to upper case to convert to lower case static unsigned char walpha_tab[MAX_WALPHA-0xff] = { 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 100 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 110 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 120 - 0xff,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1, // 130 + 0xfe,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1, // 130 0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, // 140 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 150 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 160 @@ -264,6 +264,12 @@ int towlower(int c) return(tolower(c)); if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x100])==0xff)) return(c); // already lower case + if(x == 0xfe) + { + // special cases + if(c == 0x130) // uppercase i-dot + return('i'); + } return(c + x); // convert to lower case } @@ -358,7 +364,11 @@ int towlower2(unsigned int c) { c = 0x131; // I -> ı } - } + } +#ifdef __WIN32__ + if(c == 0x130) // uppercase i-dot + return('i'); +#endif return(towlower(c)); } diff --git a/src/synth_mbrola.cpp b/src/synth_mbrola.cpp index 245778b7..a8459a36 100644 --- a/src/synth_mbrola.cpp +++ b/src/synth_mbrola.cpp @@ -109,7 +109,7 @@ void unload_MBR() static MBROLA_TAB *mbrola_tab = NULL; static int mbrola_control = 0; - +static int mbr_name_prefix = 0; espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int srate) {//=================================================================================== @@ -123,6 +123,7 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int mbrola_name[0] = 0; mbrola_delay = 0; + mbr_name_prefix = 0; if(mbrola_voice == NULL) { @@ -200,16 +201,22 @@ static int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev {//========================================================================================================================================== // Look up a phoneme in the mbrola phoneme name translation table // It may give none, 1, or 2 mbrola phonemes - int mnem = ph->mnemonic; MBROLA_TAB *pr; PHONEME_TAB *other_ph; int found = 0; + static int mnem; // control // bit 0 skip the next phoneme // bit 1 match this and Previous phoneme // bit 2 only at the start of a word // bit 3 don't match two phonemes across a word boundary + // bit 4 add this phoneme name as a prefix to the next phoneme name (used for de4 phoneme prefix '?') + + *name2=0; + *split=0; + *control=0; + mnem = ph->mnemonic; pr = mbrola_tab; while(pr->name != 0) @@ -249,15 +256,25 @@ static int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev *name2 = pr->mbr_name2; *split = pr->percent; *control = pr->control; - return(pr->mbr_name); + + if(pr->control & 0x10) + { + mbr_name_prefix = pr->mbr_name; + return(0); + } + mnem = pr->mbr_name; + break; } } pr++; } - *name2=0; - *split=0; - *control=0; + + if(mbr_name_prefix != 0) + { + mnem = (mnem << 8) | (mbr_name_prefix & 0xff); + } + mbr_name_prefix = 0; return(mnem); } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 77e03966..df8ca526 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,8 +35,8 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.44.42 12.Mar.11"; -const int version_phdata = 0x014415; +const char *version_string = "1.45.02 15.Mar.11"; +const int version_phdata = 0x014500; int option_device_number = -1; FILE *f_logespeak = NULL; diff --git a/src/voices.cpp b/src/voices.cpp index 13a137e2..ae00a656 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -411,7 +411,7 @@ void VoiceReset(int tone_only) voice->samplerate = 22050; memset(voice->klattv,0,sizeof(voice->klattv)); - speed.fast_settings[0] = 400; + speed.fast_settings[0] = 450; speed.fast_settings[1] = 800; speed.fast_settings[2] = 175;