mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +00:00
603 lines
8.6 KiB
Plaintext
603 lines
8.6 KiB
Plaintext
|
||
|
||
phoneme g
|
||
vcd vel stp prevoice
|
||
voicingswitch k
|
||
lengthmod 5
|
||
Vowelin f1=2 f2=2300 200 300 f3=-300 80
|
||
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
||
|
||
IF PreVoicing THEN
|
||
FMT(g/xg)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(g/g_) addWav(x/g_)
|
||
ENDIF
|
||
FMT(g/g) addWav(x/g3, 90)
|
||
endphoneme
|
||
|
||
|
||
phoneme p
|
||
import_phoneme consonants/p-
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme x
|
||
vls vel frc
|
||
lengthmod 3
|
||
Vowelin f1=0 f2=2300 200 400 f3=-100 80
|
||
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)
|
||
endphoneme
|
||
|
||
|
||
phoneme k
|
||
import_phoneme consonants/k-
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme l
|
||
|
||
liquid rfx
|
||
ipa ɭ
|
||
lengthmod 7
|
||
length 40
|
||
FMT(l^/l_rfx)
|
||
endphoneme
|
||
|
||
phoneme l^
|
||
liquid rfx pzd
|
||
ipa ɭ
|
||
// lengthmod 7
|
||
length 80
|
||
// FMT(l^/l^)
|
||
FMT(l^/l_rfx)
|
||
endphoneme
|
||
|
||
phoneme s
|
||
vls alv frc sib
|
||
// voicingswitch z
|
||
lengthmod 3
|
||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||
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)
|
||
endphoneme
|
||
|
||
phoneme s;
|
||
import_phoneme en/s
|
||
//CALL en/s
|
||
endphoneme
|
||
|
||
|
||
|
||
//phoneme n
|
||
// vcd pal nas
|
||
// FMT(n/nru)
|
||
//
|
||
// import_phoneme en/n
|
||
// length 200
|
||
//endphoneme
|
||
|
||
phoneme n_
|
||
// vcd pal nas
|
||
// FMT(n/nru)
|
||
|
||
import_phoneme en/n
|
||
// length 200
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme n#
|
||
vcd pal nas pzd
|
||
ipa ɲ
|
||
Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate
|
||
lengthmod 4
|
||
|
||
IF KlattSynth THEN
|
||
VowelStart(klatt/n^@)
|
||
FMT(klatt/n^)
|
||
ENDIF
|
||
|
||
NextVowelStarts
|
||
VowelStart(n^/n^@)
|
||
VowelStart(n^/n^a)
|
||
VowelStart(n^/n^e)
|
||
VowelStart(n^/n^i)
|
||
VowelStart(n^/n^o)
|
||
VowelStart(n^/n^u)
|
||
EndSwitch
|
||
|
||
IF prevPh(isPause) THEN
|
||
FMT(n^/_n^)
|
||
ELIF nextPh(isNotVowel) THEN
|
||
IF nextPhW(n^) THEN
|
||
length 75
|
||
ELIF prevPhW(n^) THEN
|
||
length 100
|
||
ENDIF
|
||
FMT(n^/n^_)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
|
||
phoneme r
|
||
liquid rhotic alv trl nolink
|
||
length 80
|
||
IF prevPhW(isVowel) THEN
|
||
ELSE
|
||
InsertPhoneme(@-)
|
||
ENDIF
|
||
FMT(r3/r_trill,80) addWav(r3/r_trill.wav, 50)
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme ts
|
||
import_phoneme ipa/ts\)
|
||
endphoneme
|
||
|
||
|
||
phoneme dZ;
|
||
vcd alp sib afr
|
||
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 alp sib afr
|
||
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 m;
|
||
vcd blb nas
|
||
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
|
||
lengthmod 4
|
||
|
||
IF KlattSynth THEN
|
||
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/m_)
|
||
ENDIF
|
||
FMT(klatt/m)
|
||
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
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme I^ // "silent i", palatilizes the preceding consonant
|
||
vwl starttype #i endtype #i
|
||
unstressed nsy
|
||
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
|
||
IF prevPh(Z) THEN
|
||
ChangePhoneme(y)
|
||
ENDIF
|
||
vwl starttype #i endtype #i
|
||
length 50
|
||
FMT(vwl_ru/ii)
|
||
endphoneme
|
||
|
||
|
||
phoneme I#
|
||
vwl 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
|
||
vwl starttype #i endtype #i
|
||
length 100
|
||
FMT(vwl_ru/i#)
|
||
endphoneme
|
||
|
||
|
||
phoneme I
|
||
vwl 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
|
||
vwl 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
|
||
vwl 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
|
||
vwl starttype #e endtype #e
|
||
length 100
|
||
FMT(vwl_ru/e)
|
||
endphoneme
|
||
|
||
|
||
phoneme E#
|
||
vwl 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
|
||
vwl 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
|
||
vwl 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 E% // е in prefix "интер"
|
||
vwl
|
||
// starttype #e endtype #e
|
||
//ChangeIfNotStressed(y)
|
||
ChangePhoneme(E#)
|
||
endphoneme
|
||
|
||
|
||
phoneme o
|
||
vwl starttype #o endtype #o
|
||
length 100
|
||
ChangeIfNotStressed(V)
|
||
FMT(vwl_ru/o)
|
||
endphoneme
|
||
|
||
|
||
phoneme O
|
||
vwl 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
|
||
vwl starttype #u endtype #u
|
||
length 80
|
||
FMT(vwl_ru/u)
|
||
endphoneme
|
||
|
||
phoneme u#
|
||
vwl starttype #u endtype #u
|
||
length 80
|
||
FMT(vwl_ru/u#)
|
||
endphoneme
|
||
|
||
phoneme u"
|
||
vwl starttype #u endtype #u
|
||
length 150
|
||
FMT(vwl_ru/u#u)
|
||
endphoneme
|
||
|
||
phoneme 8
|
||
vwl starttype #o endtype #o
|
||
length 100
|
||
ChangeIfNotStressed(V)
|
||
FMT(vwl_ru/8)
|
||
endphoneme
|
||
|
||
phoneme e
|
||
vwl starttype #e endtype #e
|
||
length 100
|
||
IF prevPh(Z) THEN
|
||
ChangeIfNotStressed(y)
|
||
ChangePhoneme(E)
|
||
ENDIF
|
||
IF prevPh(S) THEN
|
||
ChangeIfNotStressed(y)
|
||
ChangePhoneme(E)
|
||
ENDIF
|
||
IF prevPh(ts) THEN
|
||
ChangeIfNotStressed(y)
|
||
ChangePhoneme(E)
|
||
ENDIF
|
||
ChangeIfNotStressed(i)
|
||
FMT(vwl_ru/ee)
|
||
endphoneme
|
||
|
||
phoneme ju
|
||
vwl starttype #u endtype #u
|
||
length 190
|
||
FMT(vwl_ru/ju)
|
||
endphoneme
|
||
|
||
phoneme ja
|
||
vwl starttype #i endtype #a
|
||
IF thisPh(isMaxStress) THEN
|
||
length 200
|
||
FMT(vwl_ru/ja)
|
||
ELSE
|
||
FMT(vdiph2/ii@)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
phoneme ja#
|
||
vwl starttype #i endtype #a
|
||
IF thisPh(isMaxStress) THEN
|
||
FMT(vowel/&)
|
||
// ChangePhoneme(A)
|
||
ELSE
|
||
IF prevPhW(isPalatal) THEN
|
||
ChangePhoneme(I)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
// length 200
|
||
// FMT(vwl_ru/ja)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme V#
|
||
vwl 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
|
||
vwl starttype #u endtype #u
|
||
unstressed
|
||
length 140
|
||
FMT(vowel/ii#)
|
||
endphoneme
|
||
|
||
|
||
phoneme A
|
||
vwl starttype #a endtype #a
|
||
length 100
|
||
FMT(vwl_ru/a)
|
||
endphoneme
|
||
|
||
|
||
phoneme a
|
||
vwl 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
|
||
vwl 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#
|
||
vwl 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
|
||
|
||
|