mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
291 lines
7.3 KiB
Plaintext
291 lines
7.3 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 | | | | | t_d | d_d | t | d | | | | | | | | | | | | | | | | |
|
|
// | sib afr | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | afr | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | lat afr | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | sib frc | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | frc | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | lat frc | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | apr | | | | | | | | r\ | | | | | | | | | | | | | | | | |
|
|
// | lat apr | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | flp | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | lat flp | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
// | trl | | | | | | | | | | | | | | | | | | | | | | | | |
|
|
|
|
// 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 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
|
|
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
|
|
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
|
|
|
|
// approximant
|
|
|
|
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
|