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 |