From 8cba4d3b9659e95936c76679024bf66195e11ad2 Mon Sep 17 00:00:00 2001 From: jonsd Date: Tue, 19 Mar 2013 08:44:12 +0000 Subject: [PATCH] [1.47.02] Fixed crash in Russian voice. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@328 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/an_list | 4 +- dictsource/an_rules | 1 + dictsource/dict_phonemes | 251 ++++++++++++++++++++++++++++++++++++++- dictsource/en_list | 12 ++ dictsource/en_rules | 5 + dictsource/hu_rules | 9 ++ dictsource/ko_rules | 2 +- src/dictionary.cpp | 4 +- src/phonemelist.cpp | 11 +- src/synthdata.cpp | 2 +- src/tr_languages.cpp | 1 + 11 files changed, 288 insertions(+), 14 deletions(-) diff --git a/dictsource/an_list b/dictsource/an_list index b0bcabde..7ee670d3 100755 --- a/dictsource/an_list +++ b/dictsource/an_list @@ -102,7 +102,6 @@ _7C sjEteTj'Entos _8C gwitoTj'Entos _9C nowTj'Entos _0M1 m'il -_1M1 m'il _0M2 mil^'ons _1M2 un||mil^'on _0M4 bil^'ons @@ -115,7 +114,7 @@ _dpt kon // ordinal numbers _#º o _#ª a -//_ord eno + _1ox prim'Er _2ox seQ'und @@ -166,7 +165,6 @@ _8Co gw,eItoTEnt'en _9Co nweUTEnt'en _0M1o mil'en -_1M1 mil'en _0M2o mil^on'en _1M2o mil^on'en diff --git a/dictsource/an_rules b/dictsource/an_rules index 22c0b893..731e9acc 100755 --- a/dictsource/an_rules +++ b/dictsource/an_rules @@ -256,6 +256,7 @@ .group + ' á ''a é ''e í ''i diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index df9afd37..c3d6035e 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -15,7 +15,27 @@ n N n^ p r s S t T tS v w x x2 z Z -Dictionary an_dict 2013-03-17 +Dictionary ak_dict 2010-08-11 + +a e E i o O u + +: b C d dZ dZ; f g +h j k l m n N n^ +p R s t tS; v w z +z; + + +Dictionary am_dict 2011-11-22 + +@ a e i o u y + +: ? b B d dZ f g +h j k k` l m n N +n^ p p` r s S t t` +tS tS` v w x z Z + + +Dictionary an_dict 2013-03-19 a aI aU e E eI eU i o O oI u U @@ -26,6 +46,17 @@ Q r R R2 s S t T t# tS w x +Dictionary az_dict 2010-07-27 + +& @ a e E i o u +W y + +* b c C d dZ f g +h j J k l m n p +Q R s S t tS v w +x z Z + + Dictionary bg_dict 2013-03-16 @ a e i o u @@ -51,6 +82,18 @@ n. n^ p p# r r. s S s. t t# t. t.# v w z +Dictionary bo_dict 2013-03-09 + +a a: e e: i i: l- o +o: r- u u: + +: ? b b# c c# d d# +d. d.# dz dz# g g# H j +J k k# l m n N n. +n^ p p# r s S s. t +t# t. t.# ts ts# w z Z + + Dictionary ca_dict 2010-07-27 @ a a# aI e E E2 i @@ -118,6 +161,20 @@ S t tS ts v w x z Z +Dictionary dv_dict 2013-03-09 + +@ @2 a a: aI e e: E: +E~ i I i: o O o: O: +O~ u U u: V + +: ? b c c# d D d. +dZ f g h j k k# l +l. m n N n. n^ p Q +q r R s S s. t T +t# t. t.# tS v w x z +Z + + Dictionary el_dict 2011-05-19 a aI e i o oI u @@ -128,7 +185,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2013-03-16 +Dictionary en_dict 2013-03-19 0 0# 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 @@ -266,7 +323,17 @@ q r r. s S s. t T t# t. t.# v w x z -Dictionary hu_dict 2013-03-13 +Dictionary ht_dict 2010-06-29 + +a A~ e E E~ i o O +O~ u w y + +; b d f g j k l +m n N p r s S t +tS v z Z + + +Dictionary hu_dict 2013-03-18 a A a: e E e: i i: o o: u u: Y y y: Y: @@ -346,6 +413,28 @@ t# tS ts ts# v w x z Z +Dictionary kk_dict 2011-12-07 + +& 8 a A e E i I +o u U u# Y + +; b d f g G h j +k l m n N p q r +s S t tS v w X z +Z + + +Dictionary kl_dict 2013-03-18 + +& 3 @ @- a aI e E +i o O u V W y + +* : b C d D f g +h j k l l# m n N +p Q q r R s t tl# +ts tS; v w x X z + + Dictionary kn_dict 2013-03-16 a a: aI aU e E e: i @@ -359,6 +448,16 @@ S s. S; t t# t. t.# tS v w z +Dictionary ko_dict 2013-03-19 + +@ a e E i o u u- + +* - ; b d dZ; g h +j k k- kh l L m n +N p p- ph q r R s +t t- tS tS; w + + Dictionary ku_dict 2008-04-14 8 a e E E# eI eU i @@ -433,6 +532,27 @@ r R r. R2 s s. S; t t# t. t.# tS v w z +Dictionary mt_dict 2011-07-29 + +@ a ai au e ei eu i +I ie iu l- o u U ui +y yi yY + +* : b c C d dZ f +g h j k l m n p +q r s S t tS v w +x z Z + + +Dictionary nci_dict 2010-01-20 + +a e i o O + +: ? b c d f g j +k l m n p R s S +t tS v w x + + Dictionary ne_dict 2013-03-09 @ @/ @2 @3 a a: aI aU @@ -474,6 +594,29 @@ k l m n N p r R s S s; t v w x z +Dictionary nso_dict 2010-08-27 + +@ a e E i m- n- N- +o u U + +- : ; b B d D dZ +f h j J k K l l# +m n N n^ p Q R3 s +S t tS v w x X x2 +z + + +Dictionary pap_dict 2010-07-27 + +a a/ aI e E eI i o +O u y Y + +: ? b d dZ f g h +j k l m n N n^ p +R s S t tS v w x +z Z + + Dictionary pa_dict 2013-03-17 @ a a~ e E e~ E~ i @@ -500,6 +643,15 @@ S s; S; t t; tS ts tS; ts; v w x z Z Z; +Dictionary prs_dict 2009-12-01 + +@ A E eI i o u + +: b d dZ f g h j +k l m n p r R s +S t tS v w X z Z + + Dictionary pt_dict 2013-03-17 & &/ &U~ &~ @ @- a A @@ -542,6 +694,27 @@ t; ts tS; v x z Z z; Z; +Dictionary rw_dict 2008-03-27 + +a e i o u + +* : b B c d dZ f +g h j J k l m n +N n^ p q R s S S; +t tS v w x z + + +Dictionary si_dict 2013-01-18 + +& &: @ a a: aI aU e +e: i i: o o: u u: + +b d d. dZ f g h j +k l l. m m# n N n# +N# n. n.# n^ n^# p r s +S s. t t. tS v w + + Dictionary sk_dict 2011-08-08 & @- a a: e e: i i: @@ -555,6 +728,17 @@ S t t; tS ts v w x z Z +Dictionary sl_dict 2013-01-30 + +@ @- a a: e E e: i +i: o O o: u u: y + +: b d dZ dz f g h +j k l l^ m n N n^ +p R R^ s S t tS ts +v v# w x z Z + + Dictionary sq_dict 2008-12-22 @ @/ a A a/ aI e E @@ -603,6 +787,31 @@ Q r R s S s. t T t# t. tS v w z z. +Dictionary te_dict 2013-03-16 + +a a: aI aU e E e: i +i: l- o o: r- u u: V + +#X1 #X2 : ; b b# c c# +d d# d. d.# dZ f g g# +h j J J# k k# l l. +m n N n. n^ p p# r +s s. S; t t# t. t.# tS +v w z + + +Dictionary tn_dict 2011-02-17 + +@- a e i m- n- N- o +u + +* - : b B d D dZ +f g h j J k K l +l# m n N n^ p Q r +R R3 s S t T tS ts +v w x X z + + Dictionary tr_dict 2011-09-16 @ a e E i I o O @@ -614,6 +823,30 @@ p Q r R s S t tS v w z Z +Dictionary tt_dict 2012-09-14 + +& a A e e2 e: i I +o u u2 V W y + +: ? b d f g h j +k l m n N p q r +R s S S; t w x z +Z Z; + + +Dictionary ur_dict 2013-03-13 + +@ a a: aI aU e E e: +i I i: O o: U u: V + +: ; b b# c c# d D +d# d. d.# f g g# h H +j J J# k k# l m n +N p p# Q q r R r. +s S s. t T t# t. t.# +v w x z Z z. + + Dictionary vi_dict 2013-03-16 @ @: @:I @:U @I @U a a: @@ -628,6 +861,18 @@ N n^ p Q s s. t t[ v w x z Z z. +Dictionary wo_dict 2010-11-30 + +@ @: a a: e E e: E: +i i: m- n- N- o O O: +o: u u: + +: b c d f g h j +J k l m n N n^ p +q R R2 s s2 t v w +x z + + Dictionary zh_dict 2013-01-25 @ @r a A ai Au E ei diff --git a/dictsource/en_list b/dictsource/en_list index bc412af6..32f992d6 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -510,6 +510,7 @@ agm $abbrev ai $abbrev amd $abbrev aol $abbrev +aph $abbrev api $abbrev apr apr@ asap $abbrev @@ -1051,6 +1052,7 @@ caterer keIt3r3 cathedral $alt3 catholic kaTlIk carotid $alt3 +cartel kA@t'El cavalier $3 caveat kavIat ?3 caveat kavIA:t @@ -1156,6 +1158,7 @@ colonel k3:n@L colosseum k0l@s'i@m comanche k@mantSi combat k0mbat // combating +?3 combative k@mbatIv combo k0mboU comely kVmlI // comeliness comer kVm3 @@ -1625,6 +1628,7 @@ goodday $2 goodnight $2 gorilla g3rIl@ gospel g0sp@L +gossamer g0s@m3 goto goUtu: gourmand gU@mA:nd gourmet gU@meI @@ -1780,6 +1784,7 @@ interim $1 intermediate Int3m'i:di@t intern Int3:n $noun interrogatory $3 +intestine I2ntEstI#n inventory Inv@ntri ?3 inventory Inv@nto:ri interface $1 @@ -1843,6 +1848,7 @@ laboratory la#b'0r@trI labor leIb3 labored leIb@d laborer leIb@r3 +laborious $alt3 labyrinth lab3rInT lager lA:g3 laity leI@ti @@ -1875,6 +1881,7 @@ lemonade $3 leo li:oU leona li:'oUn@ leopard lEp3d +leprechaun lEpr@kO:n lesion li:Z@n lethal li:T@L liaison li:'eIz0n @@ -1970,6 +1977,7 @@ mausoleum mO:s@'li:@m mayhem meIhEm meant mEnt meadow mEdoU +medallion $alt3 mediaeval mEdI'i:v@L medicine mEds@n ?3 medicine mEd@s@n @@ -2380,6 +2388,7 @@ pythagoras paIT'ag@r@s python paIT@n pyramidal pI2r'amId@L +qaeda kaId@ quadrilateral $3 quash kw0S quaternary kw@t3:n@rI @@ -2825,6 +2834,7 @@ trajectory tr@dZEkt@rI traverse $alt3 travesty trav@sti treatise tri:tIz +tremendous $alt3 triage tri:A:Z tribunal traIb'ju:n@L triceratops traIs'Er@t0ps @@ -3007,6 +3017,7 @@ yessir jEss3: yoghurt j0g3t ?3 yoghurt joUg3t ?3 yogurt joUg3t +?3 youtube ju:t2u:b yoyo joUjoU zavala $alt3 @@ -3203,6 +3214,7 @@ Korean kOr'i:@n Kosovo k0s@voU Kuala kwA:la# Lagos leIg0s +Lebanon lEba#n@n Leipzig laIpsIg Leone li:'oUn Lesotho l@s'u:tu: diff --git a/dictsource/en_rules b/dictsource/en_rules index a55f7b09..715b4b11 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -1190,6 +1190,9 @@ au (_ aU _) auch %O:x aud (_ 'O:d + audio O:dI2oU + _) aud (iolo O:d + _) aud (iom O:d augh O: l) augh aaf sl) augh O: @@ -5403,6 +5406,8 @@ s) uag weIdZ @g) ua (ge wI u (al_ ju: + g) u (al_ w + n) u (al_ ju: g) ua (rA a g) uar (d A@ uary (_ ju:@ri diff --git a/dictsource/hu_rules b/dictsource/hu_rules index d99e1978..3641678c 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -820,6 +820,12 @@ _megsz) í (vatta i szabad) ítsz its: sz) í (vemészt i: vesz) ítsz i:ts: +progressz) í (ve i: +sz) í (vemel i: +sz) í (vere i: +sz) í (veré i: +sz) í (verő i: +sz) í (vevő i: .group j j j @@ -1171,6 +1177,7 @@ _tetszé) s S kolbászo) s S feldolgozá) s S _ki) s (szín S +kérdé) s S .group ss ssz ss2 @@ -1706,6 +1713,8 @@ szállodá) ssz Ss visszaélé) ssz Ss esé) ssz (erű Ss webe) ssz Ss +beleve) ssz (en s: + .group sz sz s diff --git a/dictsource/ko_rules b/dictsource/ko_rules index 6190cbe0..2ca039a5 100644 --- a/dictsource/ko_rules +++ b/dictsource/ko_rules @@ -260,7 +260,7 @@ ᇂ (A .group ᆯ // ㄹ - ᆯ rr + ᆯ L ᆯᄅ l ᆯ (A * diff --git a/src/dictionary.cpp b/src/dictionary.cpp index 9eef55d2..1af05357 100644 --- a/src/dictionary.cpp +++ b/src/dictionary.cpp @@ -1495,8 +1495,8 @@ void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, else { // no long vowels or consonant clusters - if(vowel_count > 4) - stressed_syllable = vowel_count - 3; + if(vowel_count > 5) + stressed_syllable = vowel_count - 3; // more than 4 syllables else stressed_syllable = vowel_count - 1; } diff --git a/src/phonemelist.cpp b/src/phonemelist.cpp index cd7e478c..3905865f 100644 --- a/src/phonemelist.cpp +++ b/src/phonemelist.cpp @@ -124,6 +124,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) int alternative; int delete_count; int word_start; + int inserted; PHONEME_DATA phdata; int n_ph_list3; @@ -341,9 +342,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) { plist3 = &ph_list3[j]; - if(plist3->sourceix != 0) - word_start = j; - + inserted = 0; if(insert_ph != 0) { // we have a (linking) phoneme which we need to insert here @@ -374,10 +373,14 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) ph = phoneme_tab[insert_ph]; plist3->ph = ph; insert_ph = 0; + inserted = 1; // don't insert the same phoneme repeatedly } else { // otherwise get the next phoneme from the list + if(plist3->sourceix != 0) + word_start = j; + ph = phoneme_tab[plist3->phcode]; plist3[0].ph = ph; @@ -394,7 +397,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence) InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata); - if((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0) + if(((alternative = phdata.pd_param[pd_INSERTPHONEME]) > 0) && (inserted == 0)) { // PROBLEM: if we insert a phoneme before a vowel then we loose the stress. PHONEME_TAB *ph2; diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 2a11b7ab..77bf2eca 100644 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.47.01 18.Mar.13"; +const char *version_string = "1.47.02 19.Mar.13"; const int version_phdata = 0x014701; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index 07c86abe..2f29bdc7 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -1084,6 +1084,7 @@ SetLengthMods(tr,3); // all equal case L('k','l'): // Greenlandic { + SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); tr->langopts.stress_rule = 12; tr->langopts.stress_flags = S_NO_AUTO_2; tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_SWAP_TENS | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_ORDINAL_DOT | NUM_1900 | NUM_ROMAN | NUM_ROMAN_CAPITALS | NUM_ROMAN_ORDINAL;