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
| @@ -18,7 +18,7 @@ _2 dv'A | |||
| _3 t;r'i | |||
| _4 ts;It'yr;I | |||
| _5 p;'jat; | |||
| _6 s.'Es;t; | |||
| _6 S'Es;t; | |||
| _7 s;'em | |||
| _8 v'os;E2m | |||
| _9 d;'ev;It; | |||
| @@ -28,7 +28,7 @@ _12 dv;In'AttsVt; | |||
| _13 tr;In'AttsVt; | |||
| _14 ts;It'y@-*nVttsVt; | |||
| _15 p;Itn'AttsVt; | |||
| _16 s.E#stn'AttsVt; | |||
| _16 SE#stn'AttsVt; | |||
| _17 s;Imn'AttsVt; | |||
| _18 vOs;Imn'AttsVt; | |||
| _19 d;E2v;Itn'AttsVt; | |||
| @@ -36,7 +36,7 @@ _2X dv'AttsVt; | |||
| _3X tr;'ittsVt; | |||
| _4X s'o@-*Ok | |||
| _5X p;Id;d;Is;'jat | |||
| _6X s.E2z;d;d;Is;'jat | |||
| _6X SE2z;d;d;Is;'jat | |||
| _7X s;'emd;E2s;It | |||
| _8X v'os;E2md;E2s;It | |||
| _9X d;E2v;In'ostO | |||
| @@ -45,7 +45,7 @@ _2C dv;'es;t;I | |||
| _3C tr;'ista | |||
| _4C ts;It'yr;E2sta | |||
| _5C p;,It;s'ot | |||
| _6C s.,E#s;t;s'ot | |||
| _6C S,E#s;t;s'ot | |||
| _7C s;,Ims'ot | |||
| _8C vOs;Ims'ot | |||
| _9C d;E2v;It;s'ot | |||
| @@ -82,7 +82,7 @@ _dpt2 _d;Is;'atYx // end of decimal fraction | |||
| // questions | |||
| что s.to $u $pause // what, that | |||
| что Sto $u $pause // what, that | |||
| // misc. | |||
| @@ -177,25 +177,25 @@ | |||
| .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 з | |||
| _) з (_ zE | |||
| @@ -243,8 +243,8 @@ | |||
| з (сь s; | |||
| з (сY s; | |||
| з (ж z. | |||
| з (ш s. | |||
| з (ж Z | |||
| з (ш S | |||
| з (щ s;s; | |||
| з (ч s;s; | |||
| з z | |||
| @@ -285,7 +285,6 @@ | |||
| .group л | |||
| _) л (_ El^ | |||
| // л (_ l^ // rule removed | |||
| л (Y l^ | |||
| л l | |||
| @@ -308,21 +307,21 @@ | |||
| .group н | |||
| _) н (_ En | |||
| н (ь n; | |||
| н (ь 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 | |||
| @@ -330,10 +329,8 @@ | |||
| .group о | |||
| о o | |||
| о (B oj | |||
| о (Cь oj | |||
| о (FY oj | |||
| .group п | |||
| _) п (_ pE | |||
| п (б b | |||
| @@ -400,10 +397,10 @@ | |||
| с (дY z; | |||
| с (дB z; | |||
| с (ж z. | |||
| с (ш s. | |||
| с (щ s; | |||
| с (ч s; | |||
| с (ж Z | |||
| с (ш S | |||
| с (щ s;s; | |||
| с (ч s;s; | |||
| с s | |||
| @@ -434,7 +431,7 @@ | |||
| т (ж d | |||
| т t | |||
| т t | |||
| .group у | |||
| _) у (_ u | |||
| @@ -550,27 +547,27 @@ | |||
| .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 щ | |||
| _) щ (_ S;ja | |||
| @@ -18,7 +18,7 @@ | |||
| hu 24 109 | |||
| nl 25 112 | |||
| pl 17 103 | |||
| sk 22 118 | |||
| sk 23 118 | |||
| cs 7 119 | |||
| hr 16 122 | |||
| ru 36 120 | |||
| @@ -248,15 +248,15 @@ | |||
| 7 ustop/p_unasp base fi hi hu hr it ro | |||
| 6 ustop/p_unasp_ fi hi hu hr it ro | |||
| 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 | |||
| 2 ustop/t_dnt2 hi vi | |||
| 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 | |||
| 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 | |||
| 2 ustop/ts_pzd_ hi hu | |||
| 2 ustop/ts_pzd2 hi hu | |||
| @@ -138,4 +138,16 @@ phoneme w | |||
| after _ w/w2 | |||
| 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 | |||
| @@ -383,7 +383,8 @@ phoneme R | |||
| liquid | |||
| vowelin f1=0 f2=1700 -300 300 f3=-300 80 | |||
| 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 | |||
| endphoneme | |||
| @@ -1028,7 +1029,7 @@ phoneme s. | |||
| vowelout f1=0 f2=1800 -100 300 f3=-300 80 | |||
| length 100 | |||
| lengthmod 3 | |||
| wave ufric/sh_rfx%80 | |||
| wave ufric/sh_rfx%90 | |||
| before _ ufric/sh_rfx%60 | |||
| switchvoicing z. | |||
| endphoneme | |||
| @@ -1997,8 +1997,8 @@ memset(markers_used,0,sizeof(markers_used)); | |||
| } | |||
| // 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)); | |||
| @@ -1097,7 +1097,16 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int | |||
| 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((vowel_count > 2) && (vowel_stress[2] >= 4)) | |||
| @@ -1105,6 +1114,7 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int | |||
| vowel_stress[1] = 3; | |||
| } | |||
| } | |||
| #endif | |||
| for(v=1; v<vowel_count; v++) | |||
| { | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.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; | |||
| int option_device_number = -1; | |||
| @@ -639,7 +639,7 @@ Translator_Russian::Translator_Russian() : Translator() | |||
| langopts.param[LOPT_REGRESSIVE_VOICING] = 1; | |||
| langopts.param[LOPT_KEEP_UNSTR_VOWEL] = 1; | |||
| langopts.stress_rule = 5; | |||
| langopts.stress_flags = 0x1020; | |||
| langopts.stress_flags = 0x0020; // waas 0x1010 | |||
| langopts.numbers = 0x409; | |||
| langopts.phoneme_change = 1; | |||
| @@ -702,7 +702,7 @@ PH('V','#'),PH('I','3'),PH('I','2'),PH('E','3')}; | |||
| /*4*/ {'i', PH('I','#'), 'i', 'i', PH('I','#'), 'i'}, // I# | |||
| /*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. | |||
| /*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. | |||
| /*9*/ {'e', 'I', 'e', 'e', 'I', 'e'}, // I2 | |||
| /*10*/ {'e', PH('E', '2'), 'e', 'e', PH('E','2'), 'e'} // E3 | |||
| @@ -255,7 +255,8 @@ typedef struct { | |||
| // 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 | |||
| // 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 unstressed_wd1; // stress for $u word of 1 syllable | |||