Files
espeak-ng/phsource/ph_russian
T
jonsd 805c5dfdee [1.43.03] release
Fix crash when embedded control codes are followed by numbers of 5 or more digits.

Fix lang=hu,  First character of an abbreviation is missed after an ordinal number (eg."2. cd")

Fix XML tag not recognized after "..." when announce punctuation is enabled.

Fix lang=zh-yue, 'p' 't' 'k' after a vowel give a long pause.

Fix lang=ru, "o" missing in unstressed syllables.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@241 d46cf337-b52f-0410-862d-fd96e6ae7743
2010-03-13 21:45:17 +00:00

415 lines
6.2 KiB
Plaintext
Executable File

phoneme l
import_phoneme en/l
endphoneme
phoneme r
liquid
trill
lengthmod 7
NextVowelStarts
VowelStart(r/r@, -15)
VowelStart(r/ra, -15)
VowelStart(r/re, -15)
VowelStart(r/ri, -15)
VowelStart(r/ro, -15)
VowelStart(r/ru, -15)
EndSwitch
IF nextPh(isNotVowel) THEN
ChangePhoneme(r/)
ENDIF
IF prevPhW(t) OR prevPhW(p) OR prevPhW(k) THEN
FMT(r/trr)
ENDIF
FMT(r/rr)
endphoneme
phoneme r/ // used for [r] when not preceding a vowel
liquid
lengthmod 2
IF nextPh(n) THEN
FMT(r3/r_n) addWav(r3/rx)
ENDIF
FMT(r3/r_) addWav(r3/rx)
endphoneme
phoneme ts
import_phoneme consonants/ts
endphoneme
phoneme dZ;
vcd pal afr sibilant palatal
voicingswitch tS;
lengthmod 5
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
IF PreVoicing THEN
FMT(dzh/xdzh)
ENDIF
IF nextPh(isPause2) THEN
FMT(dzh/dzh_) addWav(x/dzh_)
ENDIF
endphoneme
phoneme tS;
vls pal afr sibilant palatal
voicingswitch dZ;
lengthmod 2
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
WAV(ustop/ts_pzd)
endphoneme
// Palatalized versions of consonants
phoneme t
import_phoneme pl/t
endphoneme
phoneme t;
import_phoneme pl/t;
endphoneme
phoneme d
import_phoneme pl/d
endphoneme
phoneme d;
import_phoneme pl/d;
endphoneme
phoneme m;
import_phoneme ro/m;
endphoneme
phoneme I^ // "silent i", palatilizes the preceding consonant
vowel starttype #i endtype #i
unstressed nonsyllabic
Length 70
IF nextPh(isVowel) THEN
ChangePhoneme(;)
ENDIF
IF prevPh(m;) THEN
FMT(vwl_ro/mi)
ENDIF
FMT(vwl_ru/ii-)
endphoneme
//*******************************************************************
// VOWELS
//*******************************************************************
phoneme i
vowel starttype #i endtype #i
Length 100
FMT(vwl_ru/i)
endphoneme
phoneme I#
vowel starttype #i endtype #i
Length 80
IF nextVowel(isMaxStress) THEN
ChangePhoneme(I)
ENDIF
IF thisPh(isMaxStress) THEN
ChangePhoneme(i)
ENDIF
FMT(vwl_ru/ii#)
endphoneme
phoneme y
vowel starttype #i endtype #i
Length 100
FMT(vwl_ru/i#)
endphoneme
phoneme I
vowel starttype #i endtype #i
Length 80
IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(a)
ELSE
ChangePhoneme(i)
ENDIF
ENDIF
FMT(vwl_ru/ii)
endphoneme
phoneme I2
vowel starttype #i endtype #i
Length 80
IF thisPh(isMaxStress) THEN
ChangePhoneme(e)
ENDIF
IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ENDIF
FMT(vwl_ru/ii)
endphoneme
phoneme I3
vowel starttype #i endtype #i
Length 80
IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(ja)
ENDIF
ENDIF
IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ENDIF
FMT(vwl_ru/ii)
endphoneme
phoneme E
vowel starttype #e endtype #e
Length 200
FMT(vwl_ru/e)
endphoneme
phoneme E#
vowel starttype #e endtype #e
Length 100
IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(E)
ENDIF
ENDIF
FMT(vwl_ru/E#)
endphoneme
phoneme E2
vowel starttype #e endtype #e
Length 80
IF nextVowel(isMaxStress) THEN
IF prevPh(j) THEN
ChangePhoneme(I3)
ELSE
ChangePhoneme(E#)
ENDIF
ENDIF
IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(e)
ELSE
ChangePhoneme(E)
ENDIF
ENDIF
FMT(vwl_ru/E@)
endphoneme
phoneme E3
vowel starttype #e endtype #e
Length 80
IF nextVowel(isMaxStress) THEN
ChangePhoneme(I)
ENDIF
IF thisPh(isMaxStress) THEN
ChangePhoneme(e)
ENDIF
IF prevPhW(isPalatal) THEN
ChangePhoneme(E2)
ENDIF
FMT(vwl_ru/E@)
endphoneme
phoneme o
vowel starttype #o endtype #o
Length 100
FMT(vwl_ru/o)
endphoneme
phoneme O
vowel starttype #o endtype #o
Length 80
IF prevPhW(isPalatal) THEN
ChangePhoneme(8)
ENDIF
IF thisPh(isMaxStress) THEN
ChangePhoneme(o)
ENDIF
FMT(vwl_ru/oo)
endphoneme
phoneme u
vowel starttype #u endtype #u
Length 80
FMT(vwl_ru/u)
endphoneme
phoneme u#
vowel starttype #u endtype #u
Length 80
FMT(vwl_ru/u#)
endphoneme
phoneme u"
vowel starttype #u endtype #u
Length 150
FMT(vwl_ru/u#u)
endphoneme
phoneme 8
vowel starttype #o endtype #o
Length 150
ChangeIfNotStressed(V)
FMT(vwl_ru/8)
endphoneme
phoneme e
vowel starttype #e endtype #e
Length 100
FMT(vwl_ru/ee)
endphoneme
phoneme ju
vowel starttype #u endtype #u
Length 190
FMT(vwl_ru/ju)
endphoneme
phoneme ja
vowel starttype #i endtype #a
Length 200
FMT(vwl_ru/ja)
endphoneme
phoneme V#
vowel starttype #a endtype #@
unstressed
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 prevPhW(j) THEN
ChangePhoneme(A)
ELSE
ChangePhoneme(ja)
ENDIF
ENDIF
IF prevPhW(isPalatal) THEN
ChangePhoneme(V)
ENDIF
FMT(vowel/V_2)
endphoneme
phoneme Y // will not be used in future
vowel starttype #u endtype #u
unstressed
Length 140
FMT(vowel/ii#)
endphoneme
phoneme A
vowel starttype #a endtype #a
Length 100
FMT(vwl_ru/a)
endphoneme
phoneme a
vowel starttype #a endtype #a
Length 100
IF prevPhW(j) THEN
ELSE
IF thisPh(isMaxStress) THEN
IF prevPhW(isPalatal) THEN
ChangePhoneme(ja)
ELSE
ChangePhoneme(A)
ENDIF
ELSE
IF prevPhW(isPalatal) THEN
ChangePhoneme(I)
ENDIF
ENDIF
ENDIF
IF thisPh(isWordEnd) THEN
FMT(vowel/a#_3)
ENDIF
FMT(vwl_ru/aa)
endphoneme
phoneme V
vowel starttype #a endtype #@
Length 80
unstressed
IF nextVowel(isMaxStress) THEN
ChangePhoneme(a)
ENDIF
IF thisPh(isMaxStress) THEN
IF prevPhW(j) THEN
ChangePhoneme(a)
ELIF prevPhW(isPalatal) THEN
ChangePhoneme(ja)
ELSE
ChangePhoneme(A)
ENDIF
ENDIF
FMT(vowel/V_2)
endphoneme
phoneme a#
vowel starttype #a endtype #a
Length 100
FMT(vowel/a#_3)
endphoneme
phoneme R4
liquid
lengthmod 6
Vowelin f1=0 f2=1500 -300 300 f3=-200 80 rms=60 brk
Vowelout f1=2 f2=1500 -300 300 f3=-200 80
FMT(r3/r_ru2) addWav(r3/r_ru, 50)
endphoneme