mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
671 lines
15 KiB
Plaintext
671 lines
15 KiB
Plaintext
// International Phonetic Alphabet phonemes using the Conlang X-SAMPA (CXS)
|
||
// transcription scheme.
|
||
|
||
// Consonants (Pulmonic)
|
||
// =====================
|
||
//
|
||
// | | blb | | lbd | | dnt | | alv | | pla | | rfx | | alp | | pal | | vel | | uvl | | phr | | glt | |
|
||
// | | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd |
|
||
// |---------|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|
||
// | nas | | m | | | | | | n | | | | n` | | | | J | | N | | | | | | |
|
||
// | stp | | b | | | t_d | d_d | t | d | | | | | | | | J\ | | g | | | | | | |
|
||
// | sib afr | | | | | | | | | | dZ) | | | dz\)| | | | | | | | | | | |
|
||
// | afr | | | | | | | | | | | | | | | | | | | | | | | | |
|
||
// | lat afr | | | | | | | | | | | | | | | | | | | | | | | | |
|
||
// | sib frc | | | | | | | | z | | Z | | z` | | z\ | | | | | | | | | | |
|
||
// | frc | | B | | v | | D | | | | | | | | | | j\ | | G | | R | | | | |
|
||
// | lat frc | | | | | | | | | | | | | | | | | | | | | | | | |
|
||
// | apr | | P | | | | | | r\ | | | | | | | | j | | | | | | | | |
|
||
// | lat apr | | | | | | | | | | | | | | | | | | | | | | | | |
|
||
// | flp | | | | | | | | | | | | | | | | | | | | | | | | |
|
||
// | lat flp | | | | | | | | | | | | | | | | | | | | | | | | |
|
||
// | trl | | | | | | | | | | | | | | | | | | | | | | | | |
|
||
|
||
// Other Symbols
|
||
// =============
|
||
//
|
||
// | | bld | | alv | | pla | | pal | | lbv | | vel | |
|
||
// | | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd |
|
||
// |-------------|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|
||
// | nas | | | | | | | | | | | | |
|
||
// | stp | | | | | | | | | | | | |
|
||
// | afr | | | | | | | | | | | | |
|
||
// | vzd frc | | | | | | | | | | | | |
|
||
// | ptr apr | | | | | | | | | | | | w |
|
||
// | fzd lat apr | | | | | | | | | | | | |
|
||
|
||
// nasal
|
||
|
||
phoneme m
|
||
vcd blb nas
|
||
ipa m
|
||
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
|
||
|
||
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 n
|
||
vcd alv nas
|
||
ipa n
|
||
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk
|
||
lengthmod 4
|
||
|
||
IF KlattSynth THEN
|
||
Vowelin f1=0 f2=1500 -200 200 f3=0 80
|
||
FMT(klatt/n)
|
||
ENDIF
|
||
|
||
NextVowelStarts
|
||
VowelStart(n/n@)
|
||
VowelStart(n/na)
|
||
VowelStart(n/ne)
|
||
VowelStart(n/ni)
|
||
VowelStart(n/no)
|
||
VowelStart(n/nu)
|
||
EndSwitch
|
||
|
||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
|
||
FMT(n/nj)
|
||
ELIF prevPh(isPause) OR prevPh(n) THEN
|
||
FMT(n/_n)
|
||
ELIF nextPh(isNotVowel) THEN
|
||
FMT(n/n_)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
phoneme n`
|
||
vcd rfx nas
|
||
ipa ɳ
|
||
starttype n endtype n
|
||
Vowelin f1=2 f2=1700 -300 300 f3=-500 80 rms=20 colr=2
|
||
Vowelout f1=2 f2=1700 -300 300 f3=-500 80 rms=20 brk colr=2
|
||
lengthmod 4
|
||
|
||
IF KlattSynth THEN
|
||
FMT(klatt/nr)
|
||
ENDIF
|
||
|
||
NextVowelStarts
|
||
VowelStart(n/nr@)
|
||
VowelStart(n/nra)
|
||
VowelStart(n/nre)
|
||
VowelStart(n/nri)
|
||
VowelStart(n/nro)
|
||
VowelStart(n/nru)
|
||
EndSwitch
|
||
|
||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
|
||
FMT(n/nj)
|
||
ELIF prevPh(isPause) OR prevPh(n`) THEN
|
||
FMT(n/_nr)
|
||
ELIF nextPh(isNotVowel) THEN
|
||
FMT(n/nr_)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
phoneme J
|
||
vcd pal nas
|
||
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(J) THEN
|
||
length 75
|
||
ELIF prevPhW(J) THEN
|
||
length 100
|
||
ENDIF
|
||
FMT(n^/n^_)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
phoneme N
|
||
vcd vel nas
|
||
ipa ŋ
|
||
Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
|
||
lengthmod 8 // longer than 'n'
|
||
|
||
IF KlattSynth THEN
|
||
Vowelin f1=0 f2=2100 50 300 f3=0 80
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/nn_)
|
||
ENDIF
|
||
FMT(klatt/nn)
|
||
ENDIF
|
||
|
||
NextVowelStarts
|
||
VowelStart(nn/nn@)
|
||
VowelStart(nn/nna)
|
||
VowelStart(nn/nne)
|
||
VowelStart(nn/nni)
|
||
VowelStart(nn/nno)
|
||
VowelStart(nn/nnu)
|
||
EndSwitch
|
||
|
||
IF prevPh(#i) THEN
|
||
VowelEnding(nn/inn, -40)
|
||
ENDIF
|
||
|
||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
|
||
FMT(nn/nnj)
|
||
ELIF prevPh(isPause) THEN
|
||
FMT(nn/_nn)
|
||
ELIF nextPh(isNotVowel) THEN
|
||
FMT(nn/nn_)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
// stop
|
||
|
||
phoneme b
|
||
vcd blb stp
|
||
ipa b
|
||
Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
|
||
lengthmod 5
|
||
|
||
IF PreVoicing THEN
|
||
FMT(b/xb)
|
||
ENDIF
|
||
|
||
IF KlattSynth THEN
|
||
Vowelin f1=1 f2=1000 -500 -300 f3=-300 80
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/b) addWav(x/b_)
|
||
ENDIF
|
||
FMT(klatt/b) addWav(x/b)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(b/b_) addWav(x/b_)
|
||
ELIF nextPh(#@) THEN
|
||
FMT(b/b@) addWav(x/b)
|
||
ELIF nextPh(#a) THEN
|
||
FMT(b/ba) addWav(x/b)
|
||
ELIF nextPh(#e) THEN
|
||
FMT(b/be) addWav(x/b)
|
||
ELIF nextPh(#i) THEN
|
||
FMT(b/bi) addWav(x/b)
|
||
ELIF nextPh(#o) THEN
|
||
FMT(b/bo) addWav(x/b)
|
||
ELIF nextPh(#u) THEN
|
||
FMT(b/bu) addWav(x/b)
|
||
ENDIF
|
||
|
||
FMT(b/b) addWav(x/b)
|
||
endphoneme
|
||
|
||
phoneme t_d
|
||
vls dnt stp
|
||
ipa t̪
|
||
lengthmod 2
|
||
Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
|
||
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
||
|
||
IF nextPh(isPause2) THEN
|
||
WAV(ustop/t_dnt, 35)
|
||
ENDIF
|
||
WAV(ustop/t_hi, 70)
|
||
endphoneme
|
||
|
||
phoneme d_d
|
||
vcd dnt stp
|
||
ipa d̪
|
||
lengthmod 5
|
||
Vowelin f1=2 f2=1500 -300 300 f3=-150 80
|
||
Vowelout f1=2 f2=1500 -300 300 f3=-150 80
|
||
|
||
IF PreVoicing THEN
|
||
FMT(d/xd)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(d/d_) addWav(x/d_)
|
||
ELIF nextPh(isRhotic) THEN
|
||
FMT(d/dr) addWav(x/d_dnt, 100)
|
||
ENDIF
|
||
|
||
FMT(d/d) addWav(x/d_dnt, 100)
|
||
endphoneme
|
||
|
||
phoneme t
|
||
vls alv stp
|
||
ipa t
|
||
lengthmod 2
|
||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
||
|
||
IF nextPh(isPause2) THEN
|
||
WAV(ustop/t_)
|
||
ELIF nextPh(isRhotic) THEN
|
||
WAV(ustop/tr)
|
||
ENDIF
|
||
WAV(ustop/t, 90)
|
||
endphoneme
|
||
|
||
phoneme d
|
||
vcd alv stp
|
||
ipa d
|
||
lengthmod 5
|
||
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
|
||
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
|
||
|
||
IF PreVoicing THEN
|
||
FMT(d/xd)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(d/d_) addWav(x/d_)
|
||
ENDIF
|
||
|
||
FMT(d/d) addWav(x/d)
|
||
endphoneme
|
||
|
||
phoneme J\\
|
||
vcd pal stp
|
||
ipa ɟ
|
||
lengthmod 5
|
||
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
|
||
Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1
|
||
|
||
IF PreVoicing THEN
|
||
FMT(dzh/xdz_pzd)
|
||
ENDIF
|
||
|
||
IF KlattSynth THEN
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/dz_pzd_) addWav(x/dzh, 35)
|
||
ENDIF
|
||
FMT(klatt/dz_pzd) addWav(x/dzh, 45)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(dzh/dz_pzd_) addWav(x/dzh, 35)
|
||
ENDIF
|
||
FMT(dzh/dz_pzd) addWav(x/dzh, 45)
|
||
endphoneme
|
||
|
||
phoneme g
|
||
vcd vel stp
|
||
ipa ɡ
|
||
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/g2, 150)
|
||
endphoneme
|
||
|
||
// affricate
|
||
|
||
phoneme dZ\)
|
||
vcd pla sib afr
|
||
ipa d͡ʒ
|
||
lengthmod 5
|
||
Vowelin f1=2 f2=2300 200 400 f3=100 80
|
||
Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
|
||
|
||
IF PreVoicing THEN
|
||
FMT(dzh/xdzh)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(dzh/dzh_) addWav(x/dzh_)
|
||
ENDIF
|
||
FMT(dzh/dzh) addWav(x/dzh)
|
||
endphoneme
|
||
|
||
phoneme dz\\\)
|
||
vcd alp sib afr
|
||
ipa d͡ʑ
|
||
lengthmod 5
|
||
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
|
||
Vowelout f1=2 f2=2700 400 600 f3=300 80
|
||
|
||
IF PreVoicing THEN
|
||
FMT(dzh/xdzh)
|
||
ENDIF
|
||
|
||
IF KlattSynth THEN
|
||
IF nextPh(isPause2) THEN
|
||
FMT(dzh/dzh_) addWav(x/dzh_)
|
||
ENDIF
|
||
FMT(dzh/dzh) addWav(x/dz_pzd)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(dzh/dzh_) addWav(x/dzh_)
|
||
ENDIF
|
||
FMT(dzh/dzh) addWav(x/dz_pzd)
|
||
endphoneme
|
||
|
||
// fricative
|
||
|
||
phoneme B
|
||
vcd blb frc
|
||
ipa β
|
||
lengthmod 6
|
||
Vowelin f1=2 f2=1000 -300 -200 f3=-100 100
|
||
Vowelout f1=2 f2=1000 -500 -300 f3=-100 60 len=50
|
||
|
||
IF KlattSynth THEN
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/v_) addWav(vocw/v)
|
||
ENDIF
|
||
FMT(klatt/bh) addWav(vocw/v)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/v_) addWav(vocw/v)
|
||
ENDIF
|
||
FMT(voc/bh) addWav(vocw/v)
|
||
endphoneme
|
||
|
||
phoneme v
|
||
vcd lbd frc
|
||
ipa v
|
||
lengthmod 6
|
||
Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
|
||
Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
|
||
|
||
IF KlattSynth THEN
|
||
Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/v_) addWav(vocw/v)
|
||
ENDIF
|
||
FMT(klatt/v) addWav(vocw/v, 150)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/v_) addWav(vocw/v)
|
||
ENDIF
|
||
IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
|
||
length 70
|
||
ENDIF
|
||
FMT(voc/v) addWav(vocw/v)
|
||
endphoneme
|
||
|
||
phoneme D
|
||
vcd dnt frc
|
||
ipa ð
|
||
lengthmod 6
|
||
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
|
||
|
||
IF KlattSynth THEN
|
||
Vowelin f1=0 f2=1290 -300 300 f3=0 0
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/dh_) addWav(vocw/dh)
|
||
ENDIF
|
||
FMT(voc/dh) addWav(vocw/dh)
|
||
endphoneme
|
||
|
||
phoneme z
|
||
vcd alv sib frc
|
||
ipa z
|
||
lengthmod 6
|
||
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
|
||
|
||
IF KlattSynth THEN
|
||
Vowelin f1=0 f2=1390 -300 300 f3=0 0
|
||
Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/z_) addWav(ufric/s_, 70)
|
||
ENDIF
|
||
FMT(voc/z) addWav(ufric/s_, 85)
|
||
endphoneme
|
||
|
||
phoneme Z
|
||
vcd pla sib frc
|
||
ipa ʒ
|
||
lengthmod 6
|
||
Vowelin f1=0 f2=2000 0 300 f3=-200 80
|
||
Vowelout f1=2 f2=2000 0 300 f3=-200 80 brk
|
||
|
||
IF KlattSynth THEN
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/zh_, 60) addWav(vocw/zh, 70)
|
||
ENDIF
|
||
FMT(klatt/zh) addWav(vocw/zh, 130)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/zh_, 60) addWav(vocw/zh, 70)
|
||
ENDIF
|
||
FMT(voc/zh) addWav(vocw/zh, 130)
|
||
endphoneme
|
||
|
||
phoneme z`
|
||
vcd rfx sib frc
|
||
ipa ʐ
|
||
lengthmod 6
|
||
Vowelin f1=0 f2=1800 -100 300 f3=-300 80
|
||
Vowelout f1=2 f2=1800 -100 300 f3=-300 80 brk
|
||
|
||
IF KlattSynth THEN
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/zh_) addWav(vocw/zh_rfx)
|
||
ENDIF
|
||
FMT(klatt/zh) addWav(vocw/zh_rfx)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/zh_) addWav(vocw/zh_rfx)
|
||
ENDIF
|
||
FMT(voc/zh) addWav(vocw/zh_rfx)
|
||
endphoneme
|
||
|
||
phoneme z\\
|
||
vcd alp sib frc
|
||
ipa ʑ
|
||
lengthmod 6
|
||
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
|
||
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/z_pzd_) addWav(ufric/s_pzd_, 80)
|
||
ENDIF
|
||
FMT(voc/z_pzd) addWav(ufric/s_pzd, 80)
|
||
endphoneme
|
||
|
||
phoneme j\\
|
||
vcd pal frc
|
||
ipa ʝ
|
||
lengthmod 6
|
||
Vowelin f1=1 f2=2700 400 600 f3=200 70
|
||
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=100
|
||
|
||
FMT(voc/j) addWav(ufric/ch, 25)
|
||
endphoneme
|
||
|
||
phoneme G
|
||
vcd vel frc
|
||
ipa ɣ
|
||
lengthmod 6
|
||
Vowelin f1=2 f2=2300 200 400 f3=-100 80
|
||
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
||
|
||
IF KlattSynth THEN
|
||
IF nextPh(isPause2) THEN
|
||
FMT(klatt/qqh_) addWav(vocw/Q_)
|
||
ENDIF
|
||
FMT(klatt/qqh) addWav(vocw/Q)
|
||
ENDIF
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/Q_) addWav(vocw/Q_)
|
||
ENDIF
|
||
FMT(voc/Q) addWav(vocw/Q)
|
||
endphoneme
|
||
|
||
phoneme R
|
||
vcd uvl frc
|
||
ipa ʁ
|
||
lengthmod 6
|
||
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/Q_ulv) addWav(ufric/xx, 60)
|
||
ENDIF
|
||
FMT(voc/Q_ulv) addWav(ufric/xx, 80)
|
||
endphoneme
|
||
|
||
// approximant
|
||
|
||
phoneme P
|
||
vcd lbd apr
|
||
ipa ʋ
|
||
lengthmod 6
|
||
Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
|
||
Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
|
||
IF nextPh(isPause2) THEN
|
||
FMT(voc/v#_)
|
||
ENDIF
|
||
FMT(voc/v#)
|
||
endphoneme
|
||
|
||
phoneme r\\
|
||
vcd alv apr liquid rhotic
|
||
ipa ɹ
|
||
lengthmod 7
|
||
|
||
IF nextPh(isNotVowel) THEN
|
||
lengthmod 2
|
||
|
||
IF nextPh(n) THEN
|
||
FMT(r3/r_n) addWav(r3/rx)
|
||
ELIF prevPh(isUStop) THEN
|
||
FMT(r/trr)
|
||
ELIF prevPh(isNotVowel) THEN
|
||
FMT(r/rr)
|
||
ENDIF
|
||
|
||
FMT(r3/r_) addWav(r3/rx)
|
||
ENDIF
|
||
|
||
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 prevPh(isVowel) THEN
|
||
VowelEnding(r/xr, -50)
|
||
ELIF prevPh(isPause) THEN
|
||
FMT(r/_r)
|
||
ELIF prevPh(isUStop) THEN
|
||
FMT(r/tr)
|
||
ENDIF
|
||
|
||
FMT(r/r)
|
||
endphoneme
|
||
|
||
phoneme j
|
||
vcd pal apr liquid starttype #i
|
||
ipa j
|
||
lengthmod 7
|
||
|
||
IF nextPhW(isVowel) THEN
|
||
NextVowelStarts
|
||
VowelStart(j/j@)
|
||
VowelStart(j/ja)
|
||
VowelStart(j/je)
|
||
VowelStart(j/ji)
|
||
VowelStart(j/jo)
|
||
VowelStart(j/ju)
|
||
EndSwitch
|
||
|
||
VowelEnding(j/xj, -30)
|
||
|
||
IF prevPh(isPause) THEN
|
||
FMT(j/_j)
|
||
ENDIF
|
||
ELSE
|
||
// no vowel follows
|
||
Vowelout len=70
|
||
FMT(j/j_)
|
||
ENDIF
|
||
endphoneme
|
||
|
||
phoneme w
|
||
vcd ptr vel apr liquid starttype #u
|
||
ipa w
|
||
lengthmod 7
|
||
|
||
IF nextPh(isVowel) THEN
|
||
NextVowelStarts
|
||
VowelStart(w/w@)
|
||
VowelStart(w/wa)
|
||
VowelStart(w/we)
|
||
VowelStart(w/wi)
|
||
VowelStart(w/wo)
|
||
VowelStart(w/wu)
|
||
EndSwitch
|
||
|
||
VowelEnding(w/xw, -30)
|
||
|
||
IF prevPhW(isNasal) THEN
|
||
FMT(w/w)
|
||
ELSE
|
||
FMT(w/_w)
|
||
ENDIF
|
||
ELSE
|
||
// no vowel follows
|
||
Vowelout len=50
|
||
IF prevPh(#i) THEN
|
||
FMT(w/iw_)
|
||
ENDIF
|
||
FMT(w/w_)
|
||
ENDIF
|
||
endphoneme
|