| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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]) | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| # _: | |||
| @@ -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 | |||
| @@ -51,7 +51,7 @@ For details of the voice files see <a href="voices.html">Voices</a>. | |||
| <p> | |||
| <dt> | |||
| <strong>en-sc</strong><br> | |||
| <dd> Scottish English. | |||
| <dd> English with a Scottish accent. | |||
| <p> | |||
| <dt> | |||
| <strong>en-n<br> | |||
| @@ -68,7 +68,7 @@ To make alternative voices for a language, you can make additional voice files i | |||
| <p> | |||
| Alternatively there are some preset voice variants which can be applied to any of the language voices, by appending <code>+</code> and a variant name. Their effects are defined by files in <code>espeak-data/voices/!v</code>. | |||
| <p> | |||
| The variants are <code> +m1 +m2 +m3 +m4 +m5 </code> for male voices, <code> +f1 +f2 +f3 +f4 </code> for female voices, and <code> +croak +wisper</code> for other effects. For example: | |||
| The variants are <code> +m1 +m2 +m3 +m4 +m5 +m6 +m7</code> for male voices, <code> +f1 +f2 +f3 +f4 +f5 </code> for female voices, and <code> +croak +whisper</code> for other effects. For example: | |||
| <pre> espeak -ven+m3</pre> | |||
| The available voice variants can be listed with:<br> | |||
| <pre> espeak --voices=variant</pre> | |||
| @@ -96,6 +96,11 @@ The eSpeak speech synthesizer does text to speech for the following additional l | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>da Danish</strong><br> | |||
| <dd>Usable. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>de German</strong><br> | |||
| <dd>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. | |||
| </dd> | |||
| @@ -143,6 +148,11 @@ This contains a few changes from <strong>es</strong>, notably the pronunciation | |||
| <dd>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].</dd> | |||
| <p> | |||
| <dt> | |||
| <strong>kn Kannada</strong><br> | |||
| <dd>Not much feedback yet, but I'm told that it sounds reasonable. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>ku Kurdish</strong><br> | |||
| <dd> | |||
| 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. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>nl Dutch</strong><br> | |||
| <dd>Needs improvement of the spelling-to-phoneme rules. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>pl Polish</strong><br> | |||
| <dd> | |||
| Usable. | |||
| @@ -176,7 +191,7 @@ Usable. | |||
| <p> | |||
| <dt> | |||
| <strong>sk Slovak</strong><br> | |||
| <dd>This has had assistance from a nativ speaker, so it should be OK. | |||
| <dd>This has had assistance from a native speaker, so it should be OK. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| @@ -196,8 +211,7 @@ Usable. | |||
| <p> | |||
| <dt> | |||
| <strong>ta Tamil</strong><br> | |||
| <dd> | |||
| Not much work yet, but I'm told it sounds reasonable. | |||
| <dd>This has had assistance from a native speaker, so it should be OK. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| @@ -255,6 +269,11 @@ These languages are only initial naive implementations which have had little or | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>ka Georgian</strong><br> | |||
| <dd>An initial guess, awaiting feedback. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>la Latin</strong><br> | |||
| <dd>Stress rules are implemented, but it needs text where long vowels are marked with macrons. | |||
| </dd> | |||
| @@ -265,11 +284,6 @@ These languages are only initial naive implementations which have had little or | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>nl Dutch</strong><br> | |||
| <dd>Needs improvement of the spelling-to-phoneme rules. | |||
| </dd> | |||
| <p> | |||
| <dt> | |||
| <strong>no Norwegian</strong><br> | |||
| <dd>An initial guess, awaiting feedback. | |||
| </dd> | |||
| @@ -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 | |||
| @@ -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 @ | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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; | |||
| @@ -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" | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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)); | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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; | |||
| @@ -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; | |||