diff --git a/dictsource/an_list b/dictsource/an_list index 5fa0cb12..36999e41 100755 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -1,7 +1,30 @@ - // Aragon translation rules // This file is UTF-8 encoded +// letters + +_cap m'aJ^uskla // should be after the letter +_?? simb'Olo +_#32 Esp'aTjo + + +// accent names +_lig liQaD'ura +_acu akT'ento aQ'uDo +_ac2 d'Ople||aQ'uDo +_brv br'eu +_ced TeD'il^a +_cir Tirkumfl'ekso +_dia djEr'esi +_dac d'Ople||aQ'uDo +_dot p'unto +_grv gr'iEu +_hac kar'On +_mcn makr'On +_ogo kod'eta +_rng an'iel^o +_stk b'aRR2a // ?? +_tld t'il^a // letter names @@ -31,6 +54,14 @@ z Teta y i $u // word 'and' _y je y je $atend +ch tSe +ll 'El^e +á 'a||akTEntw'aDa +é 'e||akTEntw'aDa +í 'i||akTEntw'aDa +_ó 'o||akTEntw'aDa +ú 'u||akTEntw'aDa +ü ,uDjEr'Esi // numbers @@ -56,7 +87,7 @@ _2X B,int _3X tr'enta _4X kwar'anta _5X Tinkw'anta -_6X siks'anta +_6X siS'anta _7X set'anta _8X gwit'anta _9X noB'anta @@ -70,6 +101,7 @@ _7C sjEteTj'Entos _8C gwitoTj'Entos _9C nowTj'Entos _0M1 m'il +_1M1 m'il _0M2 mil^'ons _1M2 un||mil^'on _0M4 bil^'ons @@ -79,7 +111,65 @@ _0and i _dpt kon +// ordinal numbers +_#º 'eno +_#ª 'ena +//_ord eno + +_1o un +1o prim'Er +_2o dos +2o seQ'und +_3o tres +3o tErT'Er +_4o kwatr +_5o Tink +_6o seIs +_7o sEt +_8o gwit +_9o n'U +_10o DET +_11o onT +_12o DoT +_13o tReT +_14o katorT +_15o kinT +_16o sET +_1Xo DeTi +_20o Bint +_2Xo Binti +_30o trent +_3Xo trentaI +_40o kwarant +_4Xo kwarantaI +_50o Tinkwant +_5Xo TinkwantaI +_60o siSant +_6Xo siSantaI +_70o sEtant +_7Xo sEtantaI +_80o gwitant +_8Xo gwitantaI +_90o noBant +_9Xo noBantaI +_0Co TEnt +_1Co TEnt +_0M1o mil +_1M1 mil +_0M2o mil^on +_1M2o mil^on + + // unstressed words +o $u +o $atend +a $u +a $atend +os $u +os $atend +as $u +as $atend + lo $u la $u los $u @@ -90,4 +180,44 @@ me $u te $u se $u le $u -les $u \ No newline at end of file +li $u +nos $u +mos $u +tos $u +vos $u +os $u +les $u +lis $u + +// exceptions +holio x'olio +jazz dZ'as + + +// Foreign words +android andr'oId +apple 'apEl +at 'at +chat tS'at +chrome kr'ome +espeak isp'ik +(e speak) isp'ik +facebook f'eIsbuk +firefox f'aIrfoks +google g'ugEl +(i phone) 'aIfon +iphone 'aIfon +(i pod) 'aIpod +ipod 'aIpod +hardware x'ardwer +live l'aIB +messenger m'esendZer +mozilla moT'ila +nvda ene|be|de|'a +office 'ofis +skype esk'aIp +software s'oftwer +thunderbird Tanderb'ird +twitter tw'iter +whatsapp was'app +windows w'indows diff --git a/dictsource/an_rules b/dictsource/an_rules index 48e922bf..7f0e1ecb 100755 --- a/dictsource/an_rules +++ b/dictsource/an_rules @@ -1,8 +1,6 @@ - // Aragon translation rules // This file is UTF-8 encoded - .L01 l r y .L03 f h j s y z r // allow [B] [D] [Q] before these consonants .L04 b v f p // labials, nasals are [m] @@ -10,18 +8,19 @@ .group a - a a - ai aI - ai (X 'aI - ay (K aI - ay (X 'aI - au aU - au (X 'aU + a a + aix aS + ai aI + ai (X 'aI + ay (K aI + ay (X 'aI + au aU + au (X 'aU .group b b b - _) b b // phoneme definition may change it to [B] + _) b b // phoneme definition may change it to [B] _) b (A b b (A B b (cY B @@ -33,15 +32,15 @@ .group c - c k - c (Y T // ce ci - cc kT - ch tS + c k + c (Y T // ce ci + ck k // Forano (Foreign) + ch tS .group d d d - _) d d // phoneme definition may change it to [D] + _) d d // phoneme definition may change it to [D] _) d (A d d (A D d (cY D @@ -51,138 +50,156 @@ l) d d r) d d - n) d (_ = // silent, but stress on last vowel + n) d (_ = // silent, but stress on last vowel .group e - e e - ei eI - ei (X 'eI - ey (K eI - ey (X 'eI - eu eU - eu (X 'eU - i) e E - u) e E - y) e E + e e + eix eS + ei eI + ei (X 'eI + ey (K eI + ey (X 'eI + eu eU + eu (X 'eU + i) e E + u) e E + y) e E .group f - f f + f f .group g g g - _) g g // phoneme definition may change it to [Q] - _) gh (A g // allow _gh in foreign words + gü gw + _) gh (A g // allow _gh in foreign words _) gn (A n - _) g (A g + g (A Q g (cY Q g (L03 Q m) g g n) g g - g (Y+ x // ge gi - - gu (A gw - gü gw - gu (e g - gu (i g + g (Y+ x // ge gi + gu (A gw + gu (e g + gu (i g + gu (é g + gu (í g .group h - h // silent + h // silent .group i - i i - i (A j - A) ix S - _) ix iS + i i + i (u i + i (A j .group j - j x + j x .group k - k k + k k .group l - l l - ll l^ + l l + ll l^ + ll (_ l .group m - m m + m m .group n - n n - n (L04 m - n (_L04 m - ny n^ + n n + n (L04 m + n (_L04 m + ny n^ .group ñ - ñ n^ + ñ n^ .group o - o o - oi oI - oi (X 'oI - oy (K oI - oy (X 'oI - ou ow - ou (X 'ow - i) o O - u) o O - y) o O + o o + oix oS + oi oI + oi (X 'oI + oy (K oI + oy (X 'oI + ou ow + ou (X 'ow + i) o O + u) o O + y) o O .group p - p p + p p + _) ps s .group q - qu (A kw - qü kw - qu (e k - qu (i k - + qu (A kw + qü kw + qu (e k + qu (i k + qu (é k + qu (í k .group r - r r - _) r R - rr RR2 - @) r (- = // followed by hyphen. Silent, but stress on last vowel - rs (_ =s - + r r + r (_ r + r (t r + A) r (A r + C) r (A r + _) r (A R + l) r (A R + m) r (A R + n) r (A R + s) r (A R + rr RR2 + @) r (- = // followed by hyphen. Silent, but stress on last vowel + rs (_ =s .group s - s s - &) s (_S1 s + s s + &) s (_S1 s .group t - t t - a) t (_ t# // becomes silent in a stressed syllable - u) t (_ t# - ei) t (_ t# - n) t (_ = // silent, but stress on last vowel - tz T + t t + a) t (_ t# // becomes silent in a stressed syllable + u) t (_ t# + ei) t (_ t# + n) t (_ = // silent, but stress on last vowel + tz T + ue) t (_ t# + ui) t (_ t# + s) t (_ = // silent, but stress on last vowel .group u - u u - u (A w - _) u (A gw + u u + u (u u + u (i u + u (A w + _) u (A gw + uix uS + .group v // same as 'b' v b - _) v b // phoneme definition may change it to [B] + _) v b // phoneme definition may change it to [B] _) v (A b v (A B v (cY B @@ -194,26 +211,26 @@ .group w - w w + w B .group x - x ks - _) x S - + x ks + _) x S + i) x S .group y - y j - + y j + y (_ i .group z - z T + z T .group - á ''a - é ''e - í ''i - ó ''o - ú ''u + á ''a + é ''e + í ''i + ó ''o + ú ''u diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 274de6d3..b1a4f7bf 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -104,7 +104,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-03-12 +Dictionary en_dict 2013-03-15 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -156,7 +156,7 @@ l m n N p r R s S s2 t v w Z -Dictionary fr_dict 2012-05-04 +Dictionary fr_dict 2013-03-14 @ @- a a- A~ e E e- E: E~ i I o O O~ u @@ -206,7 +206,7 @@ q r r. s S s. t T t# t. t.# v w x z -Dictionary ta_dict 2013-03-10 +Dictionary ta_dict 2013-03-14 a a: aI aU e E e: i I i: o o: u U u2 u: @@ -379,7 +379,7 @@ S s; S; t t; tS ts tS; ts; v w x z Z Z; -Dictionary pt_dict 2013-03-13 +Dictionary pt_dict 2013-03-15 & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU @@ -860,15 +860,15 @@ r R s S t tS v w x z Z -Dictionary an_dict 2013-02-13 +Dictionary an_dict 2013-03-15 a aI aU e E eI eU i -o O oI u +o O oI u U -b B d D f g j k -l l^ m n n^ p Q r -R R2 s S t T t# tS -w x +b B d D dZ f g j +J^ k l l^ m n n^ p +Q r R R2 s S t T +t# tS w x Dictionary bn_dict 2013-03-09 diff --git a/dictsource/en_rules b/dictsource/en_rules index f17077ed..fc42cdaa 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -3926,10 +3926,12 @@ o (blo 0 _r) o (bo oU _) o (bs %0 +?3 _) o (bs %0# _) obs (er %0bz obso (l 0bs@ o (bstin 0 _) o (bt %0 +?3 _) o (bt %0# o (by_ oU f) o (cA oU _l) o (cA oU diff --git a/dictsource/fr_rules b/dictsource/fr_rules index eb4cf4ba..65b5f5e8 100755 --- a/dictsource/fr_rules +++ b/dictsource/fr_rules @@ -953,7 +953,7 @@ _re) name _^_en oin (_ wE~ // coin oi wa // poil oê (l wa // poêle - om (L11 O~ // bombe, pompe + om (L11e O~ // bombe, pompe om (t O~ // comte n) om (X O~ // nom om (_ Om // www.web.com diff --git a/dictsource/pt_list b/dictsource/pt_list index dcd1d75d..3650ea21 100755 --- a/dictsource/pt_list +++ b/dictsource/pt_list @@ -662,6 +662,7 @@ arroz $alt2 assembleia $alt ateia $alt aterro $alt2 $noun +aterros $alt2 atmosfera $alt atrozes $alt autora $alt2 @@ -716,6 +717,7 @@ chovesse $alt2 chupeta $alt2 clamores $alt2 clero $alt +crepe $alt coco $alt2 cofre $alt cogumelo $alt @@ -754,11 +756,15 @@ desemprego $alt $verb desespero $alt2 $noun desfecho $alt2 desprezo $alt2 $noun +desse $alt2 +desse $alt $verb +deste $alt2 +deste $alt $verb +desterro $alt2 deveras $alt dez $alt diarreia $alt discordo $alt -dissermos $alt dobro $alt2 $noun doce $alt2 doutora $alt2 @@ -786,6 +792,7 @@ erros $alt2 esboço $alt $verb escopeta $alt2 escova $alt2 $noun +escovo $alt escroto $alt2 esforço $alt $verb esforços $alt @@ -820,12 +827,13 @@ folga $alt fogos $alt foguete $alt2 foice $alt2 +fora $alt +fora $alt2 $verb forca $alt2 força $alt2 $noun forças $alt2 forço $alt -fordes $alt2 -fores $alt2 +fossem $alt2 forro $alt $verb fosse $alt2 frevo $alt2 @@ -949,6 +957,7 @@ primavera $alt provo $alt quarteto $alt2 queda $alt +quede $alt2 quinteto $alt2 recomeço $alt2 $noun recordo $alt @@ -969,6 +978,8 @@ rocha $alt rock $alt rola $alt2 $noun rolo $alt2 $noun +rota $alt2 +rota $alt $noun rumores $alt2 saleta $alt2 sarjeta $alt diff --git a/dictsource/pt_rules b/dictsource/pt_rules index 8ce4ba30..72f540d6 100755 --- a/dictsource/pt_rules +++ b/dictsource/pt_rules @@ -360,6 +360,7 @@ _quis) e (L05_ E _soub) e (L05_ E proteg) e (L05_ e // des- + diss) e (L06_ E / contra- tend) e (L06_ e // a- con- en- es- _mord) e (L06_ e _rend) e (L06_ e @@ -372,6 +373,7 @@ _escond) e (L06_ e preend) e (L06_ e // com- a- re- sur- respond) e (L06_ e // cor- bat) e (L07_ e // re- com- + ceb) e (L07_ e / re- per- con- ced) e (L07_ e // pro- con- su- met) e (L07_ e // co- pro- arre- re- intro- compro- sub- mov) e (L07_ e // re- co- @@ -417,6 +419,7 @@ _emagrec) e (L07_ e _endurec) e (L07_ e _enlouquec) e (L07_ e _enraivec) e (L07_ e +_entorpec) e (L07_ e _entristec) e (L07_ e _envaidec) e (L07_ e _envelhec) e (L07_ e @@ -425,6 +428,7 @@ _escond) e (L07_ e _escurec) e (L07_ e _espairec) e (L07_ e _esquec) e (L07_ e +_estremec) e (L07_ e _interromp) e (L07_ e _perec) e (L07_ e _rejuvenec) e (L07_ e @@ -440,6 +444,7 @@ respond) e (L07_ e // cor- qu) e (brL04_ E _hosp) e (dL03_ E _gr) e (gL03_ e + _gal) e (gL03_ e _n) e (grL03_ e _estr) ei (L03_ EI _inv) e (jL04_ E @@ -463,6 +468,7 @@ respond) e (L07_ e // cor- acel) e (rL04_ E // des- _coop) e (rL04_ E _temp) e (rL04_ E +_recup) e (rL04_ E _v) e (rbL03_ E _p) e (rdL02_ E _l) e (rdL03_ E @@ -496,17 +502,16 @@ _obsol) e (tL03_ e _d) e (vL03_ e scr) e (vL03_ e // e- in- pre- ree- de- _atr) e (vL03_ e - pr) e (zL04_ E // des- menos- + _r) e (zL04_ E + pr) e (zL04_ E / des- menos- _embel) e (zL04_ E -_acont) e (çL01_ e -_arref) e (çL01_ e _emagr) e (çL03 pr) e (çL03_ e // a- + aqu) e (çL03_ e / re- mer) e (çL03_ e // des- pad) e (çL03_ e // com- par) e (çL03_ e // a- re- com- rea- desa- _ado) e (çL03_ e - _aqu) e (çL03_ e _car) e (çL03_ e _per) e (çL03_ e_ conh) e (çL03_ e // re- @@ -516,10 +521,12 @@ _emagr) e (çL03 _ofer) e (çL03_ e abast) e (çL03_ e // re- _aborr) e (çL03_ e +_acont) e (çL03_ e _agrad) e (çL03_ e _amanh) e (çL03_ e _amort) e (çL03_ e _anoit) e (çL03_ e +_arref) e (çL03_ e _desguarn) e (çL03_ e _desguarnec) e (çL03_ e _enfraqu) e (çL03_ e @@ -825,6 +832,7 @@ estabel) e (çL03_ e // re- ?1 v) o (lt O //sort + _f) o (L06_ o _engl) o (bL01_ O _s) o (bL02_ O _esn) o (bL04_ O @@ -858,6 +866,7 @@ _desabr) o (chL04_ O _r) o (snL04_ O _c) o (spL02_ O p) ostos (_ Ost=Us# // dispostos etc. + _gar) o (tL03_ o _g) o (zL04_ O _ad) o (çL03_ O _end) o (çL03_ O @@ -935,10 +944,9 @@ _desabr) o (chL04_ O r (C *@- A) r (A * A) r (_A * - rr rx + rr x XC) r (A R C) r (A * -//?1 C) r (A r _) r x l) r x n) r (+ x diff --git a/dictsource/ta_list b/dictsource/ta_list index 0e285130..e7f02eff 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -49,7 +49,7 @@ U+bcd ot.RU // speak Latin letters as English -a e:j +a e:j $atend b bi: c si: d di: @@ -57,7 +57,7 @@ e i: f Ef g dZi: h e:tS -i a:j +i a:j $atend j dZe:j k ke:j l El @@ -540,7 +540,7 @@ tamil தமிழ் $text கிர் $alt கங்க $alt காந்த $alt - +கேம் $alt diff --git a/dictsource/ta_rules b/dictsource/ta_rules index fbf38c5c..2ef2fd0c 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -334,6 +334,7 @@ _) கி (ளாமர g _) கி (ளாஸ்_ g _) கி (ளாஸ்_மேட k + _) கிளாஸ்க (ோ gl.a:sg _) கிளிக் (_L29 kl.ik _) கிளிட kl.it.V# _) கிளிண்ட (ன klint.V @@ -483,6 +484,7 @@ _மன்மதக்) க (ுகை g _) க (ேட்டைக் g _) க (ேட்டைத் g _) க (ேட்டைப் g + _) க (ேமை g _) க (ேம்ஸ g _) கேரண்ட ge:rVn.t.V# _) க (ேலரி g @@ -667,6 +669,7 @@ _ஹன்L04ி) க (ா k அ) க (ாடமி k _நேர்) க (ாணல k _கண்) க (ாணா k + _கர்ம) க (ாண்ட g உத்திரா) க (ாண்ட k _ராம) க (ாதை k இராம) க (ாதை k @@ -1054,11 +1057,14 @@ _தணிகா) ச (ல tSV _வரதா) ச (ாரி tS _வேதா) ச (ாரி tS _கிருஷ்ணமா) ச (ாரி tS +_சங்கரா) ச (ாரி tS _தேசிகா) ச (ாரி tS _பட்டா) ச (ாரி tS +_பிரம்ம) ச (ாரி tS _மத்வா) ச (ாரி tS அனந்தா) ச (ாரி tS அன்னமா) ச (ாரி tS +ராமானுஜா) ச (ாரி tS ஆ) ச (ாரிய_ tS ஆ) ச (ாரியார tS அ) ச (ாருதீன z @@ -2157,6 +2163,7 @@ _ஸ்வர்ணல) த (ா t _மால) த (ி t _ரேவ) த (ி t _வசந்) த (ி t + அவந்) த (ி t வாசந்) த (ி t _கோம) த (ி t ஜெயந்) த (ி t @@ -2790,6 +2797,7 @@ _விளையாடு_) ப (ாம்பே p _) ப (ாவேய b _) ப (ாவ்நகர b _) ப (ாஷாக்கள b + _) ப (ாஷாபிமான b _) ப (ாஷாவ b _) ப (ாஷிய b _) ப (ாஷை b @@ -3315,6 +3323,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோதகன b _) ப (ோதகர b _) ப (ோதன b + _) ப (ோதம b _) ப (ோதிக்க b _) ப (ோதிசத் b _) ப (ோதிசத்வ b @@ -3349,6 +3358,8 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ோர்_அடி b _) ப (ோர்ஜரி f _) ப (ோர்டL31 b + _) ப (ோர்டு b + _) ப (ோர்ட்டிகோ p _) ப (ோர்தான்_அடி b _) ப (ோர்மேன f _) ப (ோர்வெல் b @@ -3547,6 +3558,7 @@ _ஜெனி) ப (ர fV ஆ) ப (ரேஷன pV _கார்) ப (ரேஷன pV _பம்) ப (ர்_ pV + அ) ப (ர்ணா pV _கன்) ப (ர்ம fV இன்) ப (ர்ம fV கரம்) ப (ற் pV @@ -3659,6 +3671,7 @@ _பிளாட்) ப (ார f இம்) ப (ால f இரு) ப (ால p ஒரு) ப (ால p + _தங்க) ப (ால b ஆண்) ப (ால p _பெண்) ப (ால p L03தன்) ப (ால p @@ -4032,6 +4045,7 @@ _சந்தேக) ப்ப (ுத்தி bb கம்) ப்யூட (ர pjU:t.V _பெர்) ப் (யூம f _யூ) ப்ரட (ீஸ frVt. + _சு) ப் (ரியா p _ஸ்ரீ) ப் (ரியா p _சு) ப் (ரீம p _) ப் (ரீயா f @@ -4218,6 +4232,7 @@ _சந்தேக) ப்ப (ுத்தி bb இ (ரதத்த இ (ரதம இ (ரத்த + இ (ரபீந்திர இரப்ப (ர rVbbV இ (ரமண இ (ரம்மிய diff --git a/phsource/compile_report b/phsource/compile_report index 33c2a042..e87a792c 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -452,7 +452,7 @@ l/l_ [l] base l/l_@ [l/3] base [l/] fr [l/3] da -l/l@ [¨\.] base +l/l@ [¨2] base [l#] base [l] fr [l/2] fr @@ -486,7 +486,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 [¨\.] base +l/la [¨2] base [l#] base [l] fr [l/2] fr @@ -495,7 +495,7 @@ l/la [ l/l_a [l/3] base [l/] fr [l/3] da -l/le [¨\.] base +l/le [¨2] base [l#] base [l] fr [l/2] fr @@ -508,7 +508,7 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [¨\.] base +l/li [¨2] base [l#] base [l] fr [l/2] fr @@ -523,7 +523,7 @@ ll/ll [L] base ll/_ll [L] base l/l_long [l] base [l] fr -l/lo [¨\.] base +l/lo [¨2] base [l#] base [l/2] fr [K] nso @@ -535,7 +535,7 @@ l^/l_rfx [l.] base [l;] lt [l] ru [l^] ru -l/lu [¨\.] base +l/lu [¨2] base [l#] base [l] fr [l/2] fr @@ -2072,7 +2072,8 @@ vowel/ii_3 [I] cy [I] no [i] sl vowel/ii#_3 [I2] en-us -vowel/ii_4 [I2] en +vowel/ii_4 [@2] en + [I2] en [I] en-us [I2] tn vowel/ii_5 [i] ta diff --git a/phsource/ph_english b/phsource/ph_english index 48368c97..d6f0ccd5 100644 --- a/phsource/ph_english +++ b/phsource/ph_english @@ -145,6 +145,9 @@ phoneme @2 // Schwa, changes to I before a vowel IF nextPh(isVowel) THEN ChangePhoneme(I2) ENDIF + IF nextPh(isVowel) THEN + FMT(vowel/ii_4) + ENDIF FMT(vowel/@) endphoneme diff --git a/phsource/ph_hindi b/phsource/ph_hindi index d9e9d610..4a934108 100644 --- a/phsource/ph_hindi +++ b/phsource/ph_hindi @@ -33,14 +33,12 @@ phoneme V ChangePhoneme(NULL) ENDIF - IF nextVowel(isFlag1) THEN - ELSE + IF NOT nextVowel(isFlag1) THEN IF thisPh(isSeqFlag1) THEN // delete the last inherent vowel of a sequence ChangePhoneme(NULL) ELSE - IF thisPh(isFirstVowel) THEN - ELSE + IF NOT thisPh(isFirstVowel) THEN // delete if not the first vowel, and is an isolated 'a' ChangePhoneme(NULL) ENDIF diff --git a/platforms/windows/windows_cmd/src/speech.h b/platforms/windows/windows_cmd/src/speech.h index 7e0179aa..7a389b4c 100755 --- a/platforms/windows/windows_cmd/src/speech.h +++ b/platforms/windows/windows_cmd/src/speech.h @@ -36,6 +36,8 @@ #define NO_VARIADIC_MACROS #define INCLUDE_KLATT #define INCLUDE_MBROLA +#define INCLUDE_SONIC + // will look for espeak_data directory here, and also in user's home directory #define PATH_ESPEAK_DATA "/usr/share/espeak-data" diff --git a/platforms/windows/windows_dll/src/speech.h b/platforms/windows/windows_dll/src/speech.h index 5015e288..86275d8c 100755 --- a/platforms/windows/windows_dll/src/speech.h +++ b/platforms/windows/windows_dll/src/speech.h @@ -39,6 +39,7 @@ #define LIBRARY #define INCLUDE_KLATT #define INCLUDE_MBROLA +#define INCLUDE_SONIC // will look for espeak_data directory here, and also in user's home directory #define PATH_ESPEAK_DATA "/usr/share/espeak-data" diff --git a/platforms/windows/windows_sapi/src/speech.h b/platforms/windows/windows_sapi/src/speech.h index 97184e68..764aed0a 100755 --- a/platforms/windows/windows_sapi/src/speech.h +++ b/platforms/windows/windows_sapi/src/speech.h @@ -41,6 +41,7 @@ //#define USE_NANOSLEEP #define INCLUDE_KLATT #define INCLUDE_MBROLA +#define INCLUDE_SONIC // will look for espeak_data directory here, and also in user's home directory #define PATH_ESPEAK_DATA "/usr/share/espeak-data" diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 89e389a4..9eef55d2 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -3178,7 +3178,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor continue; } - if((dictionary_flags2 & FLAG_ATEND) && (word_end < tr->clause_end)) + if((dictionary_flags2 & FLAG_ATEND) && (word_end < translator->clause_end)) { // only use this pronunciation if it's the last word of the clause continue; @@ -3190,7 +3190,7 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor continue; } - if((dictionary_flags2 & FLAG_SENTENCE) && !(tr->clause_terminator & CLAUSE_BIT_SENTENCE)) + if((dictionary_flags2 & FLAG_SENTENCE) && !(translator->clause_terminator & CLAUSE_BIT_SENTENCE)) { // only uis this clause is a sentence , i.e. terminator is {. ? !} not {, : :} continue; diff --git a/src/phonemelist.cpp b/src/phonemelist.cpp index a0c3f9d4..d8d18be9 100644 --- a/src/phonemelist.cpp +++ b/src/phonemelist.cpp @@ -122,6 +122,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) int regression; int end_sourceix; int alternative; + int delete_count; PHONEME_DATA phdata; int n_ph_list3; @@ -166,18 +167,40 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) } // look for switch of phoneme tables + delete_count = 0; current_phoneme_tab = tr->phoneme_tab_ix; for(j = 0; j < n_ph_list2; j++) { - if(plist2[j].phcode == phonSWITCH) - { - current_phoneme_tab = plist2[j].tone_ph; - } if(current_phoneme_tab != tr->phoneme_tab_ix) { plist2[j].synthflags |= SFLAG_SWITCHED_LANG; } + + if(delete_count > 0) + { + memcpy(&plist2[j-delete_count], &plist2[j], sizeof(plist2[0])); + } + + if(plist2[j].phcode == phonSWITCH) + { + if((!(plist2[j].synthflags & SFLAG_EMBEDDED)) && ( + (plist2[j].tone_ph == current_phoneme_tab) || + (plist2[j+1].phcode == phonSWITCH) || + ((plist2[j+1].phcode == phonPAUSE) && (plist2[j+2].phcode == phonSWITCH)) + )) + { + // delete this phonSWITCH if it's switching to the current phoneme table, or + // delete this phonSWITCH if its followed by another phonSWITCH + delete_count++; + } + else + { + current_phoneme_tab = plist2[j].tone_ph; + } + } + } + n_ph_list2 -= delete_count; if((regression = tr->langopts.param[LOPT_REGRESSIVE_VOICING]) != 0) { @@ -343,12 +366,6 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) if(plist3->phcode == phonSWITCH) { - if(!(plist3->synthflags & SFLAG_EMBEDDED)) // ?? phonSWITCH can't have SFLAG_EMBEDDED ?? - { - if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) - continue; // next phoneme is also a phonSWITCH, so ignore - } - // change phoneme table SelectPhonemeTable(plist3->tone_ph); } diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 056c1a78..b8ec9e5d 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.46.48 13.Mar.13"; +const char *version_string = "1.46.50 15.Mar.13"; const int version_phdata = 0x014640; int option_device_number = -1; diff --git a/src/translate.cpp b/src/translate.cpp index 069fc255..039423ff 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -1073,10 +1073,16 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt { if(word_length > 1) return(FLAG_SPELLWORD); // a mixture of languages, retranslate as individual letters, separated by spaces + if(phonemes[0] == phonSWITCH) + { +// problem with espeak -vbg "b.c.d.e.f" + } return(0); } strcpy(word_phonemes, phonemes); - return(dictionary_flags[0] & FLAG_SKIPWORDS); // ?? + if(wflags & FLAG_TRANSLATOR2) + return(0); + return(dictionary_flags[0] & FLAG_SKIPWORDS); // for "b.c.d" } else if(found == 0) { diff --git a/src/voices.cpp b/src/voices.cpp index b1b9223f..be300d2d 100644 --- a/src/voices.cpp +++ b/src/voices.cpp @@ -586,7 +586,7 @@ voice_t *LoadVoice(const char *vname, int control) static const char *voices_asia = "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; static const char *voices_europe = - "bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; + "an bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; strncpy0(voicename, vname, sizeof(voicename));