Browse Source

Merge commit 'f5539fc5fb2f8bf40d35a287ec08dad71c624d4c'

master
Reece H. Dunn 7 years ago
parent
commit
2692a92072
3 changed files with 154 additions and 199 deletions
  1. 13
    11
      dictsource/ru_list
  2. 7
    11
      dictsource/ru_rules
  3. 134
    177
      phsource/ph_russian

+ 13
- 11
dictsource/ru_list View File

вас $u+ вас $u+
вы $u+ вы $u+
вы $u+ вы $u+
его $u+
её $u+
его $u2+
её $u2+
ей $u+ ей $u+
ему $u+
ему $u2+
им $u+ им $u+
ими $u+ ими $u+
их $u+ их $u+
меня $u+
меня $u2+
мне $u+ мне $u+
мной $u+ мной $u+
мы $u+ мы $u+
мы $u+
нам $u+ нам $u+
нами $u+ нами $u+
нас $u+ нас $u+
о $u+ о $u+
обо $u+ обо $u+
он $u+ он $u+
он $u+
она $u+
она $u+ она $u+
они $u+ они $u+
тебе $u+
тебя $u+
тобой $u+
ты $u+
тебе $u2+
тебя $u2+
тобой $u2+
ты $u+ ты $u+
я $u+ я $u+


ю ju ю ju
я ja я ja


// Common names where 'е' is written instead of 'ё'
еще jIStS;'8
(не о чем) n^i||o||tS'im
чем tS;'8m
ее jIj'8

// exceptions // exceptions
радио r'ad;Io радио r'ad;Io



+ 7
- 11
dictsource/ru_rules View File

г (ффY k г (ффY k
г (хY k г (хY k
г (хкY k г (хкY k
_е) г (о_ v
е) г (ося_ v
е) г (о_ v
_мно) г (о_ g _мно) г (о_ g
_мое) г (о_ v
_не) г (о_ v
_се) г (о v
_твое) г (о_ v


.group д .group д
д d д d
ж (ффY S ж (ффY S
ж (хY S ж (хY S
ж (хкY S ж (хкY S
жч S;
ж S;


.group з .group з
з z з z
з (Y z; з (Y z;
з (_ s з (_ s
з (дY z; з (дY z;
з (е z
з (ж Z з (ж Z
з (зY_ s; з (зY_ s;
з (зY z; з (зY z;
с (сY s; с (сY s;
с (тY s; с (тY s;
с (ть s с (ть s
сч S;
с S;
с (ш S с (ш S
с (щ s;s; с (щ s;s;






.group щ .group щ
щ S;
щ StS;
щ (бY Z; щ (бY Z;
щ (б Z; щ (б Z;
щ (бвY Z; щ (бвY Z;
щ (з Z; щ (з Z;


.group ъ .group ъ
ъ (Y j
ъ (Y _|


.group ы .group ы
ы y ы y


.group ь .group ь
ь (Y j
ь (Y _|


.group э .group э
э E2 э E2

+ 134
- 177
phsource/ph_russian View File



phoneme g phoneme g
vcd vel stp prevoice vcd vel stp prevoice
voicingswitch k voicingswitch k
endphoneme endphoneme





phoneme x phoneme x
vls vel frc vls vel frc
lengthmod 3 lengthmod 3
Vowelin f1=0 f2=2300 200 400 f3=-100 80 Vowelin f1=0 f2=2300 200 400 f3=-100 80
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
// IF nextPh(isPause) THEN
// WAV(ufric/x, 120)
// ENDIF
WAV(ufric/x_hr, 30)
WAV(ufric/x_hr, 5)
endphoneme endphoneme




endphoneme endphoneme





phoneme l phoneme l

liquid rfx
ipa ɭ
lengthmod 7
length 40
FMT(l^/l_rfx)
liquid rfx
ipa ɭ
lengthmod 7
length 80
IF nextPh(isPause) THEN
FMT(l/l_,120)
ELSE
FMT(l/l_,120)
ENDIF
endphoneme endphoneme


phoneme l^
liquid rfx pzd
ipa ɭ
// lengthmod 7
length 80
// FMT(l^/l^)
FMT(l^/l_rfx)
phoneme l^ // From Latvian ļ
liquid
ipa ʎ
lengthmod 7
Vowelout len=60 lenadd rate
length 80

NextVowelStarts
VowelStart(l^/j2@)
VowelStart(l^/j2a)
VowelStart(l^/j2e)
VowelStart(l^/j2i)
VowelStart(l^/j2o)
VowelStart(l^/j2u)
EndSwitch

IF prevPh(isPause) THEN
FMT(l^/_l^)
ELSEIF nextPh(isPause) THEN
FMT(l^/l^_,120)
ENDIF

FMT(l^/l^)
endphoneme endphoneme



phoneme s phoneme s
vls alv frc sib vls alv frc sib
// voicingswitch z
lengthmod 3 lengthmod 3
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
// IF nextPh(isPause) THEN
// WAV(ufric/s_)
// ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
// WAV(ufric/s!)
// ENDIF
WAV(ufric/s) WAV(ufric/s)
endphoneme endphoneme


phoneme s; phoneme s;
import_phoneme en/s import_phoneme en/s
//CALL en/s
endphoneme endphoneme





//phoneme n
// vcd pal nas
// FMT(n/nru)
//
// import_phoneme en/n
// length 200
//endphoneme

phoneme n_ phoneme n_
// vcd pal nas
// FMT(n/nru)

import_phoneme en/n import_phoneme en/n
// length 200
endphoneme endphoneme






phoneme n# phoneme n#
vcd pal nas pzd vcd pal nas pzd
ipa ɲ ipa ɲ
lengthmod 4 lengthmod 4


IF KlattSynth THEN IF KlattSynth THEN
VowelStart(klatt/n^@)
FMT(klatt/n^)
VowelStart(klatt/n^@)
FMT(klatt/n^)
ENDIF ENDIF


NextVowelStarts NextVowelStarts
VowelStart(n^/n^@)
VowelStart(n^/n^a)
VowelStart(n^/n^e)
VowelStart(n^/n^i)
VowelStart(n^/n^o)
VowelStart(n^/n^u)
VowelStart(n^/n^@)
VowelStart(n^/n^a)
VowelStart(n^/n^e)
VowelStart(n^/n^i)
VowelStart(n^/n^o)
VowelStart(n^/n^u)
EndSwitch EndSwitch


IF prevPh(isPause) THEN IF prevPh(isPause) THEN
FMT(n^/_n^)
FMT(n^/_n^)
ELIF nextPh(isNotVowel) THEN ELIF nextPh(isNotVowel) THEN
IF nextPhW(n^) THEN
length 75
ELIF prevPhW(n^) THEN
length 100
ENDIF
FMT(n^/n^_)
IF nextPhW(n^) THEN
length 75
ELIF prevPhW(n^) THEN
length 100
ENDIF
FMT(n^/n^_)
ENDIF ENDIF
endphoneme endphoneme


endphoneme endphoneme





phoneme ts phoneme ts
import_phoneme consonants/ts import_phoneme consonants/ts
endphoneme endphoneme
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70


IF PreVoicing THEN IF PreVoicing THEN
FMT(dzh/xdzh)
FMT(dzh/xdzh)
ENDIF ENDIF


IF nextPh(isPause2) THEN IF nextPh(isPause2) THEN
FMT(dzh/dzh_) addWav(x/dzh_)
FMT(dzh/dzh_) addWav(x/dzh_)
ENDIF ENDIF
endphoneme endphoneme


endphoneme endphoneme





// Palatalized versions of consonants // Palatalized versions of consonants


phoneme t phoneme t
import_phoneme pl/d; import_phoneme pl/d;
endphoneme endphoneme


//phoneme m;
// import_phoneme ro/m;
//endphoneme

phoneme m; phoneme m;
vcd blb nas vcd blb nas
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
length 20 length 20


IF KlattSynth THEN IF KlattSynth THEN
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
IF nextPh(isPause2) THEN
FMT(klatt/m_)
ENDIF
FMT(klatt/m)
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
IF nextPh(isPause2) THEN
FMT(klatt/m_)
ENDIF
FMT(klatt/m)
ENDIF ENDIF

VowelStart(m/mi)

// NextVowelStarts
// VowelStart(m/m@)
// VowelStart(m/ma)
// VowelStart(m/me)
// VowelStart(m/mi)
// VowelStart(m/mo)
// VowelStart(m/mu)
// EndSwitch

// IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(m/mj)
// ELIF prevPh(isPause) THEN
// FMT(m/_m)
// ELIF nextPh(isNotVowel) THEN
// FMT(m/m_)
// ENDIF
VowelStart(m/mi)
endphoneme endphoneme





phoneme I^ // "silent i", palatilizes the preceding consonant
phoneme I^ // "silent i", palatilizes the preceding consonant
vwl starttype #i endtype #i vwl starttype #i endtype #i
unstressed nsy unstressed nsy
length 70 length 70
IF nextPh(isVowel) THEN IF nextPh(isVowel) THEN
ChangePhoneme(;)
ChangePhoneme(;)
ENDIF ENDIF
IF prevPh(m;) THEN IF prevPh(m;) THEN
FMT(vwl_ro/mi)
FMT(vwl_ro/mi)
ENDIF ENDIF
FMT(vwl_ru/ii-) FMT(vwl_ru/ii-)
endphoneme endphoneme





//******************************************************************* //*******************************************************************
// VOWELS // VOWELS
//******************************************************************* //*******************************************************************


phoneme i phoneme i
IF prevPh(Z) THEN IF prevPh(Z) THEN
ChangePhoneme(y)
ChangePhoneme(y)
ENDIF ENDIF
vwl starttype #i endtype #i vwl starttype #i endtype #i
length 50 length 50
vwl starttype #i endtype #i vwl starttype #i endtype #i
length 80 length 80
IF nextVowel(isMaxStress) THEN IF nextVowel(isMaxStress) THEN
ChangePhoneme(I)
ChangePhoneme(I)
ENDIF ENDIF
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
ChangePhoneme(i)
ChangePhoneme(i)
ENDIF ENDIF
FMT(vwl_ru/ii#) FMT(vwl_ru/ii#)
endphoneme endphoneme
length 80 length 80


IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(a)
ELSE
ChangePhoneme(i)
ENDIF
IF prevPhW(j) THEN
ChangePhoneme(a)
ELSE
ChangePhoneme(i)
ENDIF
ENDIF ENDIF
FMT(vwl_ru/ii) FMT(vwl_ru/ii)
endphoneme endphoneme
vwl starttype #i endtype #i vwl starttype #i endtype #i
length 80 length 80
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
ChangePhoneme(e)
ChangePhoneme(e)
ENDIF ENDIF
IF prevPhW(isPalatal) THEN IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ChangePhoneme(I)
ENDIF ENDIF
FMT(vwl_ru/ii) FMT(vwl_ru/ii)
endphoneme endphoneme
vwl starttype #i endtype #i vwl starttype #i endtype #i
length 80 length 80
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(ja)
ENDIF
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(ja)
ENDIF
ENDIF ENDIF
IF prevPhW(isPalatal) THEN IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ChangePhoneme(I)
ENDIF ENDIF
FMT(vwl_ru/ii) FMT(vwl_ru/ii)
endphoneme endphoneme
vwl starttype #e endtype #e vwl starttype #e endtype #e
length 100 length 100
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(E)
ENDIF
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(E)
ENDIF
ENDIF ENDIF
FMT(vwl_ru/E#) FMT(vwl_ru/E#)
endphoneme endphoneme
vwl starttype #e endtype #e vwl starttype #e endtype #e
length 80 length 80
IF nextVowel(isMaxStress) THEN IF nextVowel(isMaxStress) THEN
IF prevPh(j) THEN
ChangePhoneme(I3)
ELSE
ChangePhoneme(E#)
ENDIF
IF prevPh(j) THEN
ChangePhoneme(I3)
ELSE
ChangePhoneme(E#)
ENDIF
ENDIF ENDIF


IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(E)
ENDIF
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(E)
ENDIF
ENDIF ENDIF


FMT(vwl_ru/E@) FMT(vwl_ru/E@)
vwl starttype #e endtype #e vwl starttype #e endtype #e
length 80 length 80
IF nextVowel(isMaxStress) THEN IF nextVowel(isMaxStress) THEN
ChangePhoneme(I)
ChangePhoneme(I)
ENDIF ENDIF
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
ChangePhoneme(e)
ChangePhoneme(e)
ENDIF ENDIF
IF prevPhW(isPalatal) THEN IF prevPhW(isPalatal) THEN
ChangePhoneme(E2)
ChangePhoneme(E2)
ENDIF ENDIF
FMT(vwl_ru/E@) FMT(vwl_ru/E@)
endphoneme endphoneme
vwl starttype #o endtype #o vwl starttype #o endtype #o
length 80 length 80
IF prevPhW(isPalatal) THEN IF prevPhW(isPalatal) THEN
ChangePhoneme(8)
ChangePhoneme(8)
ENDIF ENDIF
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
ChangePhoneme(o)
ChangePhoneme(o)
ENDIF ENDIF
FMT(vwl_ru/oo) FMT(vwl_ru/oo)
endphoneme endphoneme
vwl starttype #e endtype #e vwl starttype #e endtype #e
length 100 length 100
IF prevPh(Z) THEN IF prevPh(Z) THEN
ChangeIfNotStressed(y)
ChangePhoneme(E)
ChangeIfNotStressed(y)
ChangePhoneme(E)
ENDIF ENDIF
IF prevPh(S) THEN IF prevPh(S) THEN
ChangeIfNotStressed(y)
ChangePhoneme(E)
ChangeIfNotStressed(y)
ChangePhoneme(E)
ENDIF ENDIF
IF prevPh(ts) THEN IF prevPh(ts) THEN
ChangeIfNotStressed(y)
ChangePhoneme(E)
ChangeIfNotStressed(y)
ChangePhoneme(E)
ENDIF ENDIF
ChangeIfNotStressed(i) ChangeIfNotStressed(i)
FMT(vwl_ru/ee) FMT(vwl_ru/ee)
phoneme ja phoneme ja
vwl starttype #i endtype #a vwl starttype #i endtype #a
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
length 200
FMT(vwl_ru/ja)
length 200
FMT(vwl_ru/ja)
ELSE ELSE
FMT(vdiph2/ii@)
FMT(vdiph2/ii@)
ENDIF ENDIF
endphoneme endphoneme


phoneme ja# phoneme ja#
vwl starttype #i endtype #a vwl starttype #i endtype #a
IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
FMT(vowel/&)
// ChangePhoneme(A)
FMT(vowel/&)
// ChangePhoneme(A)
ELSE ELSE
IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ENDIF
IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ENDIF
ENDIF ENDIF


// length 200 // length 200
vwl starttype #a endtype #@ vwl starttype #a endtype #@
unstressed unstressed
length 80 length 80
// IF nextVowel(isMaxStress) THEN
// not needed? because V# is only used at end-of-word
// ChangePhoneme(I3)
// ENDIF


IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(A)
ELSE
ChangePhoneme(ja)
ENDIF
IF prevPhW(j) THEN
ChangePhoneme(A)
ELSE
ChangePhoneme(ja)
ENDIF
ENDIF ENDIF


IF prevPhW(isPalatal) THEN IF prevPhW(isPalatal) THEN
ChangePhoneme(V)
ChangePhoneme(V)
ENDIF ENDIF


FMT(vowel/V_2) FMT(vowel/V_2)


IF prevPhW(j) THEN IF prevPhW(j) THEN
ELSE ELSE
IF thisPh(isMaxStress) THEN
IF prevPhW(isPalatal) THEN
ChangePhoneme(ja)
ELSE
ChangePhoneme(A)
ENDIF
ELSE
IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ENDIF
ENDIF
IF thisPh(isMaxStress) THEN
IF prevPhW(isPalatal) THEN
ChangePhoneme(ja)
ELSE
ChangePhoneme(A)
ENDIF
ELSE
IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ENDIF
ENDIF
ENDIF ENDIF


IF thisPh(isWordEnd) THEN IF thisPh(isWordEnd) THEN
FMT(vowel/a#_3)
FMT(vowel/a#_3)
ENDIF ENDIF
FMT(vwl_ru/aa) FMT(vwl_ru/aa)
endphoneme endphoneme
unstressed unstressed


IF nextVowel(isMaxStress) THEN IF nextVowel(isMaxStress) THEN
ChangePhoneme(a)
ChangePhoneme(a)
ENDIF ENDIF


IF thisPh(isMaxStress) THEN IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(a)
// ELIF prevPhW(isPalatal) THEN
// ChangePhoneme(ja)
ELSE
ChangePhoneme(A)
ENDIF
IF prevPhW(j) THEN
ChangePhoneme(a)
ELSE
ChangePhoneme(A)
ENDIF
ENDIF ENDIF


FMT(vowel/V_2) FMT(vowel/V_2)
FMT(r3/r_ru2) addWav(r3/r_ru, 50) FMT(r3/r_ru2) addWav(r3/r_ru, 50)
endphoneme endphoneme




Loading…
Cancel
Save