Fixed crash in Russian voice. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@328 d46cf337-b52f-0410-862d-fd96e6ae7743master
| _8C gwitoTj'Entos | _8C gwitoTj'Entos | ||||
| _9C nowTj'Entos | _9C nowTj'Entos | ||||
| _0M1 m'il | _0M1 m'il | ||||
| _1M1 m'il | |||||
| _0M2 mil^'ons | _0M2 mil^'ons | ||||
| _1M2 un||mil^'on | _1M2 un||mil^'on | ||||
| _0M4 bil^'ons | _0M4 bil^'ons | ||||
| // ordinal numbers | // ordinal numbers | ||||
| _#º o | _#º o | ||||
| _#ª a | _#ª a | ||||
| //_ord eno | |||||
| _1ox prim'Er | _1ox prim'Er | ||||
| _2ox seQ'und | _2ox seQ'und | ||||
| _9Co nweUTEnt'en | _9Co nweUTEnt'en | ||||
| _0M1o mil'en | _0M1o mil'en | ||||
| _1M1 mil'en | |||||
| _0M2o mil^on'en | _0M2o mil^on'en | ||||
| _1M2o mil^on'en | _1M2o mil^on'en | ||||
| .group | .group | ||||
| ' | |||||
| á ''a | á ''a | ||||
| é ''e | é ''e | ||||
| í ''i | í ''i |
| T tS v w x x2 z Z | 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 | a aI aU e E eI eU i | ||||
| o O oI u U | o O oI u U | ||||
| t# tS w x | 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 | Dictionary bg_dict 2013-03-16 | ||||
| @ a e i o u | @ a e i o u | ||||
| s. t t# t. t.# v w z | 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 | Dictionary ca_dict 2010-07-27 | ||||
| @ a a# aI e E E2 i | @ a a# aI e E E2 i | ||||
| 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 | Dictionary el_dict 2011-05-19 | ||||
| a aI e i o oI u | a aI e i o oI u | ||||
| ts v x z | ts v x z | ||||
| Dictionary en_dict 2013-03-16 | |||||
| Dictionary en_dict 2013-03-19 | |||||
| 0 0# 3 3: @ @- @2 @5 | 0 0# 3 3: @ @- @2 @5 | ||||
| @L a a# A: A@ aa aI aI3 | @L a a# A: A@ aa aI aI3 | ||||
| t# t. t.# v w x z | 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: | a A a: e E e: i i: | ||||
| o o: u u: Y y y: Y: | o o: u u: Y y y: Y: | ||||
| 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 | Dictionary kn_dict 2013-03-16 | ||||
| a a: aI aU e E e: i | a a: aI aU e E e: i | ||||
| v w z | 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 | Dictionary ku_dict 2008-04-14 | ||||
| 8 a e E E# eI eU i | 8 a e E E# eI eU i | ||||
| t# t. t.# tS v w z | 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 | Dictionary ne_dict 2013-03-09 | ||||
| @ @/ @2 @3 a a: aI aU | @ @/ @2 @3 a a: aI aU | ||||
| s S s; t v w x z | 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 | Dictionary pa_dict 2013-03-17 | ||||
| @ a a~ e E e~ E~ i | @ a a~ e E e~ E~ i | ||||
| ts; v w x z Z Z; | 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 | Dictionary pt_dict 2013-03-17 | ||||
| & &/ &U~ &~ @ @- a A | & &/ &U~ &~ @ @- a A | ||||
| 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 | Dictionary sk_dict 2011-08-08 | ||||
| & @- a a: e e: i i: | & @- a a: e e: i i: | ||||
| z Z | 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 | Dictionary sq_dict 2008-12-22 | ||||
| @ @/ a A a/ aI e E | @ @/ a A a/ aI e E | ||||
| t# t. tS v w z z. | 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 | Dictionary tr_dict 2011-09-16 | ||||
| @ a e E i I o O | @ a e E i I o O | ||||
| v w z Z | 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 | Dictionary vi_dict 2013-03-16 | ||||
| @ @: @:I @:U @I @U a a: | @ @: @:I @:U @I @U a a: | ||||
| v w x z Z z. | 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 | Dictionary zh_dict 2013-01-25 | ||||
| @ @r a A ai Au E ei | @ @r a A ai Au E ei |
| ai $abbrev | ai $abbrev | ||||
| amd $abbrev | amd $abbrev | ||||
| aol $abbrev | aol $abbrev | ||||
| aph $abbrev | |||||
| api $abbrev | api $abbrev | ||||
| apr apr@ | apr apr@ | ||||
| asap $abbrev | asap $abbrev | ||||
| cathedral $alt3 | cathedral $alt3 | ||||
| catholic kaTlIk | catholic kaTlIk | ||||
| carotid $alt3 | carotid $alt3 | ||||
| cartel kA@t'El | |||||
| cavalier $3 | cavalier $3 | ||||
| caveat kavIat | caveat kavIat | ||||
| ?3 caveat kavIA:t | ?3 caveat kavIA:t | ||||
| colosseum k0l@s'i@m | colosseum k0l@s'i@m | ||||
| comanche k@mantSi | comanche k@mantSi | ||||
| combat k0mbat // combating | combat k0mbat // combating | ||||
| ?3 combative k@mbatIv | |||||
| combo k0mboU | combo k0mboU | ||||
| comely kVmlI // comeliness | comely kVmlI // comeliness | ||||
| comer kVm3 | comer kVm3 | ||||
| goodnight $2 | goodnight $2 | ||||
| gorilla g3rIl@ | gorilla g3rIl@ | ||||
| gospel g0sp@L | gospel g0sp@L | ||||
| gossamer g0s@m3 | |||||
| goto goUtu: | goto goUtu: | ||||
| gourmand gU@mA:nd | gourmand gU@mA:nd | ||||
| gourmet gU@meI | gourmet gU@meI | ||||
| intermediate Int3m'i:di@t | intermediate Int3m'i:di@t | ||||
| intern Int3:n $noun | intern Int3:n $noun | ||||
| interrogatory $3 | interrogatory $3 | ||||
| intestine I2ntEstI#n | |||||
| inventory Inv@ntri | inventory Inv@ntri | ||||
| ?3 inventory Inv@nto:ri | ?3 inventory Inv@nto:ri | ||||
| interface $1 | interface $1 | ||||
| labor leIb3 | labor leIb3 | ||||
| labored leIb@d | labored leIb@d | ||||
| laborer leIb@r3 | laborer leIb@r3 | ||||
| laborious $alt3 | |||||
| labyrinth lab3rInT | labyrinth lab3rInT | ||||
| lager lA:g3 | lager lA:g3 | ||||
| laity leI@ti | laity leI@ti | ||||
| leo li:oU | leo li:oU | ||||
| leona li:'oUn@ | leona li:'oUn@ | ||||
| leopard lEp3d | leopard lEp3d | ||||
| leprechaun lEpr@kO:n | |||||
| lesion li:Z@n | lesion li:Z@n | ||||
| lethal li:T@L | lethal li:T@L | ||||
| liaison li:'eIz0n | liaison li:'eIz0n | ||||
| mayhem meIhEm | mayhem meIhEm | ||||
| meant mEnt | meant mEnt | ||||
| meadow mEdoU | meadow mEdoU | ||||
| medallion $alt3 | |||||
| mediaeval mEdI'i:v@L | mediaeval mEdI'i:v@L | ||||
| medicine mEds@n | medicine mEds@n | ||||
| ?3 medicine mEd@s@n | ?3 medicine mEd@s@n | ||||
| python paIT@n | python paIT@n | ||||
| pyramidal pI2r'amId@L | pyramidal pI2r'amId@L | ||||
| qaeda kaId@ | |||||
| quadrilateral $3 | quadrilateral $3 | ||||
| quash kw0S | quash kw0S | ||||
| quaternary kw@t3:n@rI | quaternary kw@t3:n@rI | ||||
| traverse $alt3 | traverse $alt3 | ||||
| travesty trav@sti | travesty trav@sti | ||||
| treatise tri:tIz | treatise tri:tIz | ||||
| tremendous $alt3 | |||||
| triage tri:A:Z | triage tri:A:Z | ||||
| tribunal traIb'ju:n@L | tribunal traIb'ju:n@L | ||||
| triceratops traIs'Er@t0ps | triceratops traIs'Er@t0ps | ||||
| yoghurt j0g3t | yoghurt j0g3t | ||||
| ?3 yoghurt joUg3t | ?3 yoghurt joUg3t | ||||
| ?3 yogurt joUg3t | ?3 yogurt joUg3t | ||||
| ?3 youtube ju:t2u:b | |||||
| yoyo joUjoU | yoyo joUjoU | ||||
| zavala $alt3 | zavala $alt3 | ||||
| Kosovo k0s@voU | Kosovo k0s@voU | ||||
| Kuala kwA:la# | Kuala kwA:la# | ||||
| Lagos leIg0s | Lagos leIg0s | ||||
| Lebanon lEba#n@n | |||||
| Leipzig laIpsIg | Leipzig laIpsIg | ||||
| Leone li:'oUn | Leone li:'oUn | ||||
| Lesotho l@s'u:tu: | Lesotho l@s'u:tu: |
| au (_ aU | au (_ aU | ||||
| _) auch %O:x | _) auch %O:x | ||||
| aud (_ 'O:d | aud (_ 'O:d | ||||
| audio O:dI2oU | |||||
| _) aud (iolo O:d | |||||
| _) aud (iom O:d | |||||
| augh O: | augh O: | ||||
| l) augh aaf | l) augh aaf | ||||
| sl) augh O: | sl) augh O: | ||||
| s) uag weIdZ | s) uag weIdZ | ||||
| @g) ua (ge wI | @g) ua (ge wI | ||||
| u (al_ ju: | u (al_ ju: | ||||
| g) u (al_ w | |||||
| n) u (al_ ju: | |||||
| g) ua (rA a | g) ua (rA a | ||||
| g) uar (d A@ | g) uar (d A@ | ||||
| uary (_ ju:@ri | uary (_ ju:@ri |
| szabad) ítsz its: | szabad) ítsz its: | ||||
| sz) í (vemészt i: | sz) í (vemészt i: | ||||
| vesz) ítsz i:ts: | vesz) ítsz i:ts: | ||||
| progressz) í (ve i: | |||||
| sz) í (vemel i: | |||||
| sz) í (vere i: | |||||
| sz) í (veré i: | |||||
| sz) í (verő i: | |||||
| sz) í (vevő i: | |||||
| .group j | .group j | ||||
| j j | j j | ||||
| kolbászo) s S | kolbászo) s S | ||||
| feldolgozá) s S | feldolgozá) s S | ||||
| _ki) s (szín S | _ki) s (szín S | ||||
| kérdé) s S | |||||
| .group ss | .group ss | ||||
| ssz ss2 | ssz ss2 | ||||
| visszaélé) ssz Ss | visszaélé) ssz Ss | ||||
| esé) ssz (erű Ss | esé) ssz (erű Ss | ||||
| webe) ssz Ss | webe) ssz Ss | ||||
| beleve) ssz (en s: | |||||
| .group sz | .group sz | ||||
| sz s | sz s |
| ᇂ (A | ᇂ (A | ||||
| .group ᆯ // ㄹ | .group ᆯ // ㄹ | ||||
| ᆯ rr | |||||
| ᆯ L | |||||
| ᆯᄅ l | ᆯᄅ l | ||||
| ᆯ (A * | ᆯ (A * | ||||
| else | else | ||||
| { | { | ||||
| // no long vowels or consonant clusters | // 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 | else | ||||
| stressed_syllable = vowel_count - 1; | stressed_syllable = vowel_count - 1; | ||||
| } | } |
| int alternative; | int alternative; | ||||
| int delete_count; | int delete_count; | ||||
| int word_start; | int word_start; | ||||
| int inserted; | |||||
| PHONEME_DATA phdata; | PHONEME_DATA phdata; | ||||
| int n_ph_list3; | int n_ph_list3; | ||||
| { | { | ||||
| plist3 = &ph_list3[j]; | plist3 = &ph_list3[j]; | ||||
| if(plist3->sourceix != 0) | |||||
| word_start = j; | |||||
| inserted = 0; | |||||
| if(insert_ph != 0) | if(insert_ph != 0) | ||||
| { | { | ||||
| // we have a (linking) phoneme which we need to insert here | // we have a (linking) phoneme which we need to insert here | ||||
| ph = phoneme_tab[insert_ph]; | ph = phoneme_tab[insert_ph]; | ||||
| plist3->ph = ph; | plist3->ph = ph; | ||||
| insert_ph = 0; | insert_ph = 0; | ||||
| inserted = 1; // don't insert the same phoneme repeatedly | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| // otherwise get the next phoneme from the list | // otherwise get the next phoneme from the list | ||||
| if(plist3->sourceix != 0) | |||||
| word_start = j; | |||||
| ph = phoneme_tab[plist3->phcode]; | ph = phoneme_tab[plist3->phcode]; | ||||
| plist3[0].ph = ph; | plist3[0].ph = ph; | ||||
| InterpretPhoneme(tr, 0x100, plist3, &phdata, &worddata); | 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. | // PROBLEM: if we insert a phoneme before a vowel then we loose the stress. | ||||
| PHONEME_TAB *ph2; | PHONEME_TAB *ph2; |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.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; | const int version_phdata = 0x014701; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| case L('k','l'): // Greenlandic | case L('k','l'): // Greenlandic | ||||
| { | { | ||||
| SetupTranslator(tr,stress_lengths_equal,stress_amps_equal); | |||||
| tr->langopts.stress_rule = 12; | tr->langopts.stress_rule = 12; | ||||
| tr->langopts.stress_flags = S_NO_AUTO_2; | 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; | 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; |