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 |