Adjust phoneme [R]. Lang=ru Revert to phonemes [S] and [Z] instead of [s.] and [z.]. Lang=ru Remove rule to give 1st syllable a secondary stress if the second syllable has a primary stress. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@9 d46cf337-b52f-0410-862d-fd96e6ae7743master
| _3 t;r'i | _3 t;r'i | ||||
| _4 ts;It'yr;I | _4 ts;It'yr;I | ||||
| _5 p;'jat; | _5 p;'jat; | ||||
| _6 s.'Es;t; | |||||
| _6 S'Es;t; | |||||
| _7 s;'em | _7 s;'em | ||||
| _8 v'os;E2m | _8 v'os;E2m | ||||
| _9 d;'ev;It; | _9 d;'ev;It; | ||||
| _13 tr;In'AttsVt; | _13 tr;In'AttsVt; | ||||
| _14 ts;It'y@-*nVttsVt; | _14 ts;It'y@-*nVttsVt; | ||||
| _15 p;Itn'AttsVt; | _15 p;Itn'AttsVt; | ||||
| _16 s.E#stn'AttsVt; | |||||
| _16 SE#stn'AttsVt; | |||||
| _17 s;Imn'AttsVt; | _17 s;Imn'AttsVt; | ||||
| _18 vOs;Imn'AttsVt; | _18 vOs;Imn'AttsVt; | ||||
| _19 d;E2v;Itn'AttsVt; | _19 d;E2v;Itn'AttsVt; | ||||
| _3X tr;'ittsVt; | _3X tr;'ittsVt; | ||||
| _4X s'o@-*Ok | _4X s'o@-*Ok | ||||
| _5X p;Id;d;Is;'jat | _5X p;Id;d;Is;'jat | ||||
| _6X s.E2z;d;d;Is;'jat | |||||
| _6X SE2z;d;d;Is;'jat | |||||
| _7X s;'emd;E2s;It | _7X s;'emd;E2s;It | ||||
| _8X v'os;E2md;E2s;It | _8X v'os;E2md;E2s;It | ||||
| _9X d;E2v;In'ostO | _9X d;E2v;In'ostO | ||||
| _3C tr;'ista | _3C tr;'ista | ||||
| _4C ts;It'yr;E2sta | _4C ts;It'yr;E2sta | ||||
| _5C p;,It;s'ot | _5C p;,It;s'ot | ||||
| _6C s.,E#s;t;s'ot | |||||
| _6C S,E#s;t;s'ot | |||||
| _7C s;,Ims'ot | _7C s;,Ims'ot | ||||
| _8C vOs;Ims'ot | _8C vOs;Ims'ot | ||||
| _9C d;E2v;It;s'ot | _9C d;E2v;It;s'ot | ||||
| // questions | // questions | ||||
| что s.to $u $pause // what, that | |||||
| что Sto $u $pause // what, that | |||||
| // misc. | // misc. |
| .group ж | .group ж | ||||
| _) ж (_ z.E | |||||
| ж (кY s. | |||||
| ж (кь s. | |||||
| ж (пY s. | |||||
| ж (пь s. | |||||
| ж (сь s. | |||||
| ж (сY s. | |||||
| ж (ть s. | |||||
| ж (тY s. | |||||
| ж (фь s. | |||||
| ж (фY s. | |||||
| ж (ффь s. | |||||
| ж (ффY s. | |||||
| ж (хь s. | |||||
| ж (хY s. | |||||
| ж (хкY s. | |||||
| ж (хкь s. | |||||
| ж z. | |||||
| _) ж (_ ZE | |||||
| ж (кY S | |||||
| ж (кь S | |||||
| ж (пY S | |||||
| ж (пь S | |||||
| ж (сь S | |||||
| ж (сY S | |||||
| ж (ть S | |||||
| ж (тY S | |||||
| ж (фь S | |||||
| ж (фY S | |||||
| ж (ффь S | |||||
| ж (ффY S | |||||
| ж (хь S | |||||
| ж (хY S | |||||
| ж (хкY S | |||||
| ж (хкь S | |||||
| ж Z | |||||
| .group з | .group з | ||||
| _) з (_ zE | _) з (_ zE | ||||
| з (сь s; | з (сь s; | ||||
| з (сY s; | з (сY s; | ||||
| з (ж z. | |||||
| з (ш s. | |||||
| з (ж Z | |||||
| з (ш S | |||||
| з (щ s;s; | з (щ s;s; | ||||
| з (ч s;s; | з (ч s;s; | ||||
| з z | з z | ||||
| .group л | .group л | ||||
| _) л (_ El^ | _) л (_ El^ | ||||
| // л (_ l^ // rule removed | |||||
| л (Y l^ | л (Y l^ | ||||
| л l | л l | ||||
| .group н | .group н | ||||
| _) н (_ En | _) н (_ En | ||||
| н (ь n; | |||||
| н (ь n^ | |||||
| н (Y n; | н (Y n; | ||||
| н (B n; | |||||
| н (дь n; | |||||
| н (дY n; | |||||
| н (дB n; | |||||
| н (ть n; | |||||
| н (тY n; | |||||
| н (зь n; | |||||
| н (зY n; | |||||
| н (сь n; | |||||
| н (сY n; | |||||
| н (нь n; | |||||
| н (нY n; | |||||
| н (нB n; | |||||
| н (B n^ | |||||
| н (дь n^ | |||||
| н (дY n^ | |||||
| н (дB n^ | |||||
| н (ть n^ | |||||
| н (тY n^ | |||||
| н (зь n^ | |||||
| н (зY n^ | |||||
| н (сь n^ | |||||
| н (сY n^ | |||||
| н (нь n^ | |||||
| н (нY n^ | |||||
| н (нB n^ | |||||
| н n | н n | ||||
| .group о | .group о | ||||
| о o | о o | ||||
| о (B oj | о (B oj | ||||
| о (Cь oj | |||||
| о (FY oj | о (FY oj | ||||
| .group п | .group п | ||||
| _) п (_ pE | _) п (_ pE | ||||
| п (б b | п (б b | ||||
| с (дY z; | с (дY z; | ||||
| с (дB z; | с (дB z; | ||||
| с (ж z. | |||||
| с (ш s. | |||||
| с (щ s; | |||||
| с (ч s; | |||||
| с (ж Z | |||||
| с (ш S | |||||
| с (щ s;s; | |||||
| с (ч s;s; | |||||
| с s | с s | ||||
| т (ж d | т (ж d | ||||
| т t | |||||
| т t | |||||
| .group у | .group у | ||||
| _) у (_ u | _) у (_ u | ||||
| .group ш | .group ш | ||||
| _) ш (_ s.A | |||||
| ш (б z. | |||||
| ш (бь z. | |||||
| ш (бY z. | |||||
| ш (бмь z. | |||||
| ш (бмY z. | |||||
| ш (бвь z. | |||||
| ш (бвY z. | |||||
| ш (г z. | |||||
| ш (гь z. | |||||
| ш (гY z. | |||||
| ш (д z. | |||||
| ш (дь z. | |||||
| ш (дY z. | |||||
| ш (дB z. | |||||
| ш (ж z. | |||||
| ш (з z. | |||||
| ш (зь z. | |||||
| ш (зY z. | |||||
| _) ш (_ SA | |||||
| ш (б Z | |||||
| ш (бь Z | |||||
| ш (бY Z | |||||
| ш (бмь Z | |||||
| ш (бмY Z | |||||
| ш (бвь Z | |||||
| ш (бвY Z | |||||
| ш (г Z | |||||
| ш (гь Z | |||||
| ш (гY Z | |||||
| ш (д Z | |||||
| ш (дь Z | |||||
| ш (дY Z | |||||
| ш (дB Z | |||||
| ш (ж Z | |||||
| ш (з Z | |||||
| ш (зь Z | |||||
| ш (зY Z | |||||
| ш s. | |||||
| ш S | |||||
| .group щ | .group щ | ||||
| _) щ (_ S;ja | _) щ (_ S;ja |
| hu 24 109 | hu 24 109 | ||||
| nl 25 112 | nl 25 112 | ||||
| pl 17 103 | pl 17 103 | ||||
| sk 22 118 | |||||
| sk 23 118 | |||||
| cs 7 119 | cs 7 119 | ||||
| hr 16 122 | hr 16 122 | ||||
| ru 36 120 | ru 36 120 | ||||
| 7 ustop/p_unasp base fi hi hu hr it ro | 7 ustop/p_unasp base fi hi hu hr it ro | ||||
| 6 ustop/p_unasp_ fi hi hu hr it ro | 6 ustop/p_unasp_ fi hi hu hr it ro | ||||
| 2 ustop/t base hi | 2 ustop/t base hi | ||||
| 4 ustop/t_ base hi el | |||||
| 5 ustop/t_ base hi sk el | |||||
| 26 ustop/t_dnt base fi fr hi hu pl hr ru it ro vi sw | 26 ustop/t_dnt base fi fr hi hu pl hr ru it ro vi sw | ||||
| 2 ustop/t_dnt2 hi vi | 2 ustop/t_dnt2 hi vi | ||||
| 4 ustop/t_pzd pl ru | 4 ustop/t_pzd pl ru | ||||
| 7 ustop/tr base hi ru el | |||||
| 9 ustop/tr base hi sk ru el | |||||
| 8 ustop/ts de eo hu pl ru it ro zh_yue | 8 ustop/ts de eo hu pl ru it ro zh_yue | ||||
| 2 ustop/tsh base zh_yue | 2 ustop/tsh base zh_yue | ||||
| 2 ustop/tsh_ base zh_yue | 2 ustop/tsh_ base zh_yue | ||||
| 2 ustop/t_short hi el | |||||
| 3 ustop/t_short hi sk el | |||||
| 8 ustop/ts_pzd base hi ru | 8 ustop/ts_pzd base hi ru | ||||
| 2 ustop/ts_pzd_ hi hu | 2 ustop/ts_pzd_ hi hu | ||||
| 2 ustop/ts_pzd2 hi hu | 2 ustop/ts_pzd2 hi hu |
| after _ w/w2 | after _ w/w2 | ||||
| endphoneme | endphoneme | ||||
| phoneme t | |||||
| vls alv stop | |||||
| vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||||
| vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||||
| lengthmod 2 | |||||
| wave ustop/t_short | |||||
| before _ ustop/t_ | |||||
| before r ustop/tr | |||||
| before R ustop/tr | |||||
| switchvoicing d | |||||
| endphoneme | |||||
| liquid | liquid | ||||
| vowelin f1=0 f2=1700 -300 300 f3=-300 80 | vowelin f1=0 f2=1700 -300 300 f3=-300 80 | ||||
| vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | ||||
| formants r3/r_trill+r3/r_trill.wav%60 | |||||
| formants r3/r_trill+r3/r_trill.wav%45 | |||||
| trill | |||||
| lengthmod 6 | lengthmod 6 | ||||
| endphoneme | endphoneme | ||||
| vowelout f1=0 f2=1800 -100 300 f3=-300 80 | vowelout f1=0 f2=1800 -100 300 f3=-300 80 | ||||
| length 100 | length 100 | ||||
| lengthmod 3 | lengthmod 3 | ||||
| wave ufric/sh_rfx%80 | |||||
| wave ufric/sh_rfx%90 | |||||
| before _ ufric/sh_rfx%60 | before _ ufric/sh_rfx%60 | ||||
| switchvoicing z. | switchvoicing z. | ||||
| endphoneme | endphoneme |
| } | } | ||||
| // write a word so that further data doesn't start at displ=0 | // write a word so that further data doesn't start at displ=0 | ||||
| fwrite(&version_phdata,4,1,f_phdata); | |||||
| fwrite(&version_phdata,4,1,f_phindex); | |||||
| Write4Bytes(f_phdata,version_phdata); | |||||
| Write4Bytes(f_phindex,version_phdata); | |||||
| memset(ref_hash_tab,0,sizeof(ref_hash_tab)); | memset(ref_hash_tab,0,sizeof(ref_hash_tab)); | ||||
| stress = 3; | stress = 3; | ||||
| if((langopts.stress_flags & 0x1000) && (vowel_stress[1] == 0)) | |||||
| if((langopts.stress_flags & 0x1000) && (vowel_count == 2)) | |||||
| { | |||||
| // Two syllable word, if one syllable has primary stress, then give the other secondary stress | |||||
| if(vowel_stress[1] == 4) | |||||
| vowel_stress[2] = 3; | |||||
| if(vowel_stress[2] == 4) | |||||
| vowel_stress[1] = 3; | |||||
| } | |||||
| #if deleted | |||||
| if((langopts.stress_flags & 0x2000) && (vowel_stress[1] == 0)) | |||||
| { | { | ||||
| // If there is only one syllable before the primary stress, give it a secondary stress | // If there is only one syllable before the primary stress, give it a secondary stress | ||||
| if((vowel_count > 2) && (vowel_stress[2] >= 4)) | if((vowel_count > 2) && (vowel_stress[2] >= 4)) | ||||
| vowel_stress[1] = 3; | vowel_stress[1] = 3; | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| for(v=1; v<vowel_count; v++) | for(v=1; v<vowel_count; v++) | ||||
| { | { |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.24.07 11.May.07"; | |||||
| const char *version_string = "1.24.08 12.May.07"; | |||||
| const int version_phdata = 0x012201; | const int version_phdata = 0x012201; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| langopts.param[LOPT_REGRESSIVE_VOICING] = 1; | langopts.param[LOPT_REGRESSIVE_VOICING] = 1; | ||||
| langopts.param[LOPT_KEEP_UNSTR_VOWEL] = 1; | langopts.param[LOPT_KEEP_UNSTR_VOWEL] = 1; | ||||
| langopts.stress_rule = 5; | langopts.stress_rule = 5; | ||||
| langopts.stress_flags = 0x1020; | |||||
| langopts.stress_flags = 0x0020; // waas 0x1010 | |||||
| langopts.numbers = 0x409; | langopts.numbers = 0x409; | ||||
| langopts.phoneme_change = 1; | langopts.phoneme_change = 1; | ||||
| /*4*/ {'i', PH('I','#'), 'i', 'i', PH('I','#'), 'i'}, // I# | /*4*/ {'i', PH('I','#'), 'i', 'i', PH('I','#'), 'i'}, // I# | ||||
| /*5*/ {'E', PH('E','#'), 'E', 'e', PH('E','#'), 'e'}, // E# | /*5*/ {'E', PH('E','#'), 'E', 'e', PH('E','#'), 'e'}, // E# | ||||
| /*6*/ {'E', PH('E','2'), 'E', 'e', PH('E','2'), 'e'}, // E2 Uses 3,4,5 columns. | /*6*/ {'E', PH('E','2'), 'E', 'e', PH('E','2'), 'e'}, // E2 Uses 3,4,5 columns. | ||||
| /*7*/ {'i', 'V', 'i', 'A', 'V', 'A'}, // V# | |||||
| /*7*/ {PH('j','a'), 'V', PH('j','a'), 'A', 'V', 'A'}, // V# | |||||
| /*8*/ {PH('j','a'), 'I', PH('j','a'), 'e', 'I', 'e'}, // I3 Uses 3,4,5 columns. | /*8*/ {PH('j','a'), 'I', PH('j','a'), 'e', 'I', 'e'}, // I3 Uses 3,4,5 columns. | ||||
| /*9*/ {'e', 'I', 'e', 'e', 'I', 'e'}, // I2 | /*9*/ {'e', 'I', 'e', 'e', 'I', 'e'}, // I2 | ||||
| /*10*/ {'e', PH('E', '2'), 'e', 'e', PH('E','2'), 'e'} // E3 | /*10*/ {'e', PH('E', '2'), 'e', 'e', PH('E','2'), 'e'} // E3 |
| // bit6=light syllable followed by heavy, move secondary stress to the heavy syllable. LANG=Finnish | // bit6=light syllable followed by heavy, move secondary stress to the heavy syllable. LANG=Finnish | ||||
| // bit8=stress last syllable if it doesn't end in a vowel | // bit8=stress last syllable if it doesn't end in a vowel | ||||
| // bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish | // bit9=stress last syllable if it doesn't end in vowel or "s" or "n" LANG=Spanish | ||||
| // bit12= If there is only one syllable before the primary stress, give it a secondary stress | |||||
| // bit12= In a 2-syllable word, if one has primary stress then give the other secondary stress | |||||
| // bit13= If there is only one syllable before the primary stress, give it a secondary stress | |||||
| int stress_flags; | int stress_flags; | ||||
| int unstressed_wd1; // stress for $u word of 1 syllable | int unstressed_wd1; // stress for $u word of 1 syllable |