mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
500 lines
8.3 KiB
Plaintext
500 lines
8.3 KiB
Plaintext
|
|
//====================================================
|
|
// Tone Numbers
|
|
//====================================================
|
|
|
|
phoneme 11 // tone: low level
|
|
stress
|
|
Tone(12, 9, envelope/i_risefall, NULL)
|
|
endphoneme
|
|
|
|
phoneme 21 // tone: low fall
|
|
stress
|
|
Tone(20, 10, envelope/p_fall, NULL)
|
|
endphoneme
|
|
|
|
phoneme 214 // tone: fall rise
|
|
stress
|
|
Tone(18, 42, envelope/p_214, NULL)
|
|
endphoneme
|
|
|
|
phoneme 22 // tone: mid-low level
|
|
stress
|
|
Tone(22, 20, envelope/p_fall, NULL)
|
|
endphoneme
|
|
|
|
phoneme 33 // tone: mid level
|
|
stress
|
|
Tone(32, 30, envelope/p_fall, NULL)
|
|
endphoneme
|
|
|
|
phoneme 35 // tone: mid rise
|
|
stress
|
|
Tone(30, 50, envelope/p_rise, NULL)
|
|
endphoneme
|
|
|
|
phoneme 44 // tone: mid-high level
|
|
stress
|
|
Tone(38, 41, envelope/p_rise, NULL)
|
|
endphoneme
|
|
|
|
phoneme 51 // tone: high fall
|
|
stress
|
|
Tone(50, 10, envelope/p_fall, NULL)
|
|
endphoneme
|
|
|
|
phoneme 53 // tone: high fall
|
|
stress
|
|
Tone(50, 30, envelope/p_fall, NULL)
|
|
endphoneme
|
|
|
|
phoneme 55 // tone: high level
|
|
stress
|
|
Tone(55, 50, envelope/p_level, NULL)
|
|
endphoneme
|
|
|
|
//====================================================
|
|
// Consonants
|
|
//====================================================
|
|
|
|
|
|
phoneme n
|
|
vcd alv nas
|
|
Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
|
|
lengthmod 2
|
|
|
|
NextVowelStarts
|
|
VowelStart(n/n@)
|
|
VowelStart(n/na)
|
|
VowelStart(n/ne)
|
|
VowelStart(n/ni)
|
|
VowelStart(n/no)
|
|
VowelStart(n/nu)
|
|
EndSwitch
|
|
|
|
IF nextPh(isNotVowel) THEN
|
|
FMT(n/n_long_)
|
|
ENDIF
|
|
FMT(n/_n)
|
|
endphoneme
|
|
|
|
|
|
phoneme N
|
|
vcd vel nas
|
|
Vowelout f1=2 f2=1900 0 300 f3=400 80 len=50 rms=15 brk
|
|
lengthmod 7
|
|
|
|
NextVowelStarts
|
|
VowelStart(nn/nn@)
|
|
VowelStart(nn/nna)
|
|
VowelStart(nn/nne)
|
|
VowelStart(nn/nni)
|
|
VowelStart(nn/nno)
|
|
VowelStart(nn/nnu)
|
|
EndSwitch
|
|
|
|
IF prevPh(isPause) THEN
|
|
FMT(nn/_nn)
|
|
ELIF nextPh(isNotVowel) THEN
|
|
FMT(nn/nn2_)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
phoneme l
|
|
liquid
|
|
lengthmod 2
|
|
|
|
CALL vowelstart_l
|
|
|
|
IF nextPhW(#i) THEN
|
|
VowelStart(l/li)
|
|
ENDIF
|
|
FMT(l/_l)
|
|
endphoneme
|
|
|
|
|
|
phoneme j
|
|
liquid pal
|
|
lengthmod 1
|
|
|
|
IF nextPh(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)
|
|
|
|
FMT(j/_j)
|
|
ELSE
|
|
// no vowel follows
|
|
Vowelout len=70
|
|
FMT(j/j_)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
phoneme p
|
|
vls blb stp
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
|
|
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
|
|
WAV(ustop/p_unasp)
|
|
endphoneme
|
|
|
|
phoneme ph
|
|
vls blb stp
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
|
|
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
|
|
WAV(ustop/p_asp)
|
|
endphoneme
|
|
|
|
phoneme f //not clear before some vowel
|
|
vls lbd frc
|
|
lengthmod 2
|
|
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
|
|
WAV(ufric/f)
|
|
endphoneme
|
|
|
|
phoneme t
|
|
vls alv stp
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 rms=40
|
|
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
|
WAV(ustop/t_unasp2, 40)
|
|
endphoneme
|
|
|
|
|
|
phoneme th
|
|
vls alv stp
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
|
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
|
WAV(ustop/t_)
|
|
endphoneme
|
|
|
|
phoneme k
|
|
vls uvl stp
|
|
lengthmod 2
|
|
Vowelin f1=1 f2=1700 0 200 f3=-300 80 f4
|
|
Vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30
|
|
WAV(ustop/k_unasp_, 75)
|
|
endphoneme
|
|
|
|
phoneme kh
|
|
vls uvl stp
|
|
lengthmod 2
|
|
Vowelin f1=1 f2=1700 0 200 f3=-300 80 f4
|
|
Vowelout f1=1 f2=1700 0 200 f3=-300 80 f4 rms=30
|
|
WAV(ustop/k_asp, 80)
|
|
endphoneme
|
|
|
|
phoneme tS;
|
|
vls alp sib afr
|
|
ipa tɕ
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=2700 400 600 f3=300 80
|
|
WAV(ustop/tsh_pzd_unasp)
|
|
endphoneme
|
|
|
|
phoneme tS;h
|
|
vls alp sib afr
|
|
ipa tɕh
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=2700 400 600 f3=300 80
|
|
WAV(ustop/tsh_pzd, 80)
|
|
endphoneme
|
|
|
|
phoneme S;
|
|
vls pla frc sib
|
|
lengthmod 2
|
|
ipa ɕ
|
|
Vowelin f1=0 f2=2700 400 600 f3=300 80
|
|
WAV(ufric/sh_pzd2, 20)
|
|
endphoneme
|
|
|
|
phoneme s.
|
|
vls pla frc sib
|
|
lengthmod 3
|
|
Vowelin f1=0 f2=1800 -100 300 f3=-300 80
|
|
Vowelout f1=0 f2=1800 -100 300 f3=-300 80
|
|
IF nextPh(isPause2) THEN
|
|
WAV(ufric/sh_rfx, 50)
|
|
ENDIF
|
|
WAV(ufric/sh_rfx, 50) // quieter
|
|
endphoneme
|
|
|
|
|
|
phoneme ts
|
|
vls alv afr sib
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
|
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
|
WAV(ustop/ts_unasp, 70)
|
|
endphoneme
|
|
|
|
phoneme tsh
|
|
vls alv afr sib
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
|
|
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
|
|
WAV(ustop/ts, 60)
|
|
endphoneme
|
|
|
|
phoneme ts.
|
|
vls pla frc sib
|
|
lengthmod 3
|
|
Vowelin f1=0 f2=1800 -100 300 f3=-300 80
|
|
Vowelout f1=0 f2=1800 -100 300 f3=-300 80
|
|
WAV(ustop/ts_rfx_unasp)
|
|
endphoneme
|
|
|
|
phoneme ts.h
|
|
vls pla frc sib
|
|
lengthmod 3
|
|
Vowelin f1=0 f2=1800 -100 300 f3=-300 80
|
|
Vowelout f1=0 f2=1800 -100 300 f3=-300 80
|
|
WAV(ustop/ts_rfx)
|
|
endphoneme
|
|
|
|
//====================================================
|
|
// Vowels and Diphtnongs
|
|
//====================================================
|
|
|
|
phoneme N- // syllabic N
|
|
vwl starttype N endtype N
|
|
length 250
|
|
FMT(nn/nn2_)
|
|
endphoneme
|
|
|
|
|
|
phoneme a
|
|
vwl starttype #a endtype #a
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vwl_zh/a_n)
|
|
ENDIF
|
|
FMT(vowel/a)
|
|
endphoneme
|
|
|
|
phoneme A
|
|
vwl starttype #a endtype #a
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vowel/aa_2)
|
|
ENDIF
|
|
FMT(vowel/a_3)
|
|
endphoneme
|
|
|
|
phoneme ai
|
|
vwl starttype #a endtype #i
|
|
length 250
|
|
FMT(vdiph/ai_6)
|
|
endphoneme
|
|
|
|
phoneme Au
|
|
vwl starttype #a endtype #u
|
|
length 250
|
|
FMT(vwl_zh/aau)
|
|
endphoneme
|
|
|
|
phoneme @
|
|
vwl starttype #@ endtype #@
|
|
length 200
|
|
IF nextPh(N) THEN
|
|
FMT(vowel/@_bck)
|
|
ENDIF
|
|
FMT(vowel/3_2)
|
|
endphoneme
|
|
|
|
phoneme @r //tmp use V3_r
|
|
vwl starttype #@ endtype #@
|
|
length 350
|
|
FMT(vowelr/V3_r)
|
|
endphoneme
|
|
|
|
phoneme E
|
|
vwl starttype #e endtype #e
|
|
length 250
|
|
FMT(vowel/ee_2)
|
|
endphoneme
|
|
|
|
phoneme ei
|
|
vwl starttype #e endtype #i
|
|
length 250
|
|
FMT(vdiph2/ei_4)
|
|
endphoneme
|
|
|
|
phoneme i
|
|
vwl starttype #i endtype #i
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vowel/ii_2)
|
|
ENDIF
|
|
IF nextPh(n) THEN
|
|
FMT(vowel/ii_5)
|
|
ENDIF
|
|
FMT(vowel/i)
|
|
endphoneme
|
|
|
|
phoneme i[ //after ts tsh s
|
|
vwl starttype #i endtype #i
|
|
length 250
|
|
FMT(vowel/i#_7)
|
|
endphoneme
|
|
|
|
phoneme i. //after ts. ts.h s. z.
|
|
vwl starttype #i endtype #i
|
|
length 250
|
|
FMT(vowel/i#_6)
|
|
endphoneme
|
|
|
|
phoneme iA //try more before N
|
|
vwl starttype #i endtype #a
|
|
length 250
|
|
FMT(vwl_zh/iaa)
|
|
endphoneme
|
|
|
|
phoneme iAu
|
|
vwl starttype #i endtype #u
|
|
length 250
|
|
FMT(vwl_zh/iaau)
|
|
endphoneme
|
|
|
|
phoneme iE
|
|
vwl starttype #i endtype #e
|
|
length 250
|
|
FMT(vwl_zh/ie)
|
|
endphoneme
|
|
|
|
phoneme io
|
|
vwl starttype #i endtype #o
|
|
length 250
|
|
FMT(vdiph2/iioo)
|
|
endphoneme
|
|
|
|
phoneme iou
|
|
vwl starttype #i endtype #u
|
|
length 250
|
|
FMT(vwl_zh/iou)
|
|
endphoneme
|
|
|
|
phoneme o
|
|
vwl starttype #o endtype #o
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vnasal/oo_n2)
|
|
ENDIF
|
|
FMT(vdiph2/o_oo)
|
|
endphoneme
|
|
|
|
phoneme o-
|
|
vwl starttype #o endtype #o
|
|
length 250
|
|
FMT(vowel/8)
|
|
endphoneme
|
|
|
|
phoneme ou
|
|
vwl starttype #o endtype #u
|
|
length 250
|
|
FMT(vdiph/8u)
|
|
endphoneme
|
|
|
|
phoneme ong
|
|
vwl starttype #o endtype #o
|
|
length 500
|
|
FMT(vwl_zh/ong)
|
|
endphoneme
|
|
|
|
phoneme u //try more before N
|
|
vwl starttype #u endtype #u
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vnasal/u_n)
|
|
ENDIF
|
|
FMT(vowel/u_bck)
|
|
endphoneme
|
|
|
|
phoneme uA
|
|
vwl starttype #u endtype #a
|
|
length 250
|
|
FMT(vwl_zh/uaa)
|
|
endphoneme
|
|
|
|
phoneme ua
|
|
vwl starttype #u endtype #a
|
|
length 250
|
|
FMT(vdiph2/oa)
|
|
endphoneme
|
|
|
|
phoneme uai
|
|
vwl starttype #u endtype #i
|
|
length 511
|
|
FMT(vwl_zh/uai)
|
|
endphoneme
|
|
|
|
phoneme u@
|
|
vwl starttype #u endtype #@
|
|
length 230
|
|
FMT(vdiph2/o@)
|
|
endphoneme
|
|
|
|
phoneme uei
|
|
vwl starttype #u endtype #i
|
|
length 250
|
|
FMT(vwl_zh/uei)
|
|
endphoneme
|
|
|
|
phoneme uo
|
|
vwl starttype #u endtype #o
|
|
length 280
|
|
FMT(vwl_zh/uo)
|
|
endphoneme
|
|
|
|
phoneme y
|
|
vwl starttype #i endtype #u
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vowel/uu_3)
|
|
ENDIF
|
|
FMT(vowel/y_2)
|
|
endphoneme
|
|
|
|
phoneme yu //try more before N
|
|
vwl starttype #i endtype #u
|
|
length 250
|
|
FMT(vdiph2/yu)
|
|
endphoneme
|
|
|
|
phoneme y&
|
|
vwl starttype #i endtype #e
|
|
length 250
|
|
FMT(vwl_zh/y&)
|
|
endphoneme
|
|
|
|
phoneme yE //try more so not similar to iE
|
|
vwl starttype #i endtype #e
|
|
length 250
|
|
FMT(vwl_zh/yee)
|
|
endphoneme
|
|
|
|
phoneme y@
|
|
vwl starttype #i endtype #@
|
|
length 250
|
|
FMT(vdiph2/y@)
|
|
endphoneme
|
|
|
|
phoneme yi
|
|
vwl starttype #i endtype #i
|
|
length 250
|
|
FMT(vdiph/yi)
|
|
endphoneme
|