mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Indicate language changes in IPA phoneme output. Phoneme definitions FMT(), second parameter is amplitude percentage. Phoneme definitions CALL(), If phoneme type is not defined, copy the static attributes from the called phoneme. Unpronouncable word check: stop when an apostrophe is reached. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@250 d46cf337-b52f-0410-862d-fd96e6ae7743
500 lines
8.4 KiB
Plaintext
500 lines
8.4 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 nasal
|
|
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 nasal
|
|
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 palatal
|
|
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 stop
|
|
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 stop
|
|
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 stop
|
|
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 stop
|
|
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 stop
|
|
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 stop
|
|
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 pal afr sibilant palatal
|
|
ipa tɕ
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=2700 400 600 f3=300 80
|
|
WAV(ustop/tsh_pzd_unasp)
|
|
endphoneme
|
|
|
|
phoneme tS;h
|
|
vls pal afr sibilant palatal
|
|
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 sibilant
|
|
lengthmod 2
|
|
ipa ɕ
|
|
Vowelin f1=0 f2=2700 400 600 f3=300 80
|
|
WAV(ufric/sh_pzd2, 20)
|
|
endphoneme
|
|
|
|
phoneme s.
|
|
vls pla frc sibilant
|
|
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 sibilant
|
|
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 sibilant
|
|
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 sibilant
|
|
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 sibilant
|
|
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
|
|
vowel starttype N endtype N
|
|
length 250
|
|
FMT(nn/nn2_)
|
|
endphoneme
|
|
|
|
|
|
phoneme a
|
|
vowel starttype #a endtype #a
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vwl_zh/a_n)
|
|
ENDIF
|
|
FMT(vowel/a)
|
|
endphoneme
|
|
|
|
phoneme A
|
|
vowel starttype #a endtype #a
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vowel/aa_2)
|
|
ENDIF
|
|
FMT(vowel/a_3)
|
|
endphoneme
|
|
|
|
phoneme ai
|
|
vowel starttype #a endtype #i
|
|
length 250
|
|
FMT(vdiph/ai_6)
|
|
endphoneme
|
|
|
|
phoneme Au
|
|
vowel starttype #a endtype #u
|
|
length 250
|
|
FMT(vwl_zh/aau)
|
|
endphoneme
|
|
|
|
phoneme @
|
|
vowel starttype #@ endtype #@
|
|
length 200
|
|
IF nextPh(N) THEN
|
|
FMT(vowel/@_bck)
|
|
ENDIF
|
|
FMT(vowel/3_2)
|
|
endphoneme
|
|
|
|
phoneme @r //tmp use V3_r
|
|
vowel starttype #@ endtype #@
|
|
length 350
|
|
FMT(vowelr/V3_r)
|
|
endphoneme
|
|
|
|
phoneme E
|
|
vowel starttype #e endtype #e
|
|
length 250
|
|
FMT(vowel/ee_2)
|
|
endphoneme
|
|
|
|
phoneme ei
|
|
vowel starttype #e endtype #i
|
|
length 250
|
|
FMT(vdiph2/ei_4)
|
|
endphoneme
|
|
|
|
phoneme i
|
|
vowel 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
|
|
vowel starttype #i endtype #i
|
|
length 250
|
|
FMT(vowel/i#_7)
|
|
endphoneme
|
|
|
|
phoneme i. //after ts. ts.h s. z.
|
|
vowel starttype #i endtype #i
|
|
length 250
|
|
FMT(vowel/i#_6)
|
|
endphoneme
|
|
|
|
phoneme iA //try more before N
|
|
vowel starttype #i endtype #a
|
|
length 250
|
|
FMT(vwl_zh/iaa)
|
|
endphoneme
|
|
|
|
phoneme iAu
|
|
vowel starttype #i endtype #u
|
|
length 250
|
|
FMT(vwl_zh/iaau)
|
|
endphoneme
|
|
|
|
phoneme iE
|
|
vowel starttype #i endtype #e
|
|
length 250
|
|
FMT(vwl_zh/ie)
|
|
endphoneme
|
|
|
|
phoneme io
|
|
vowel starttype #i endtype #o
|
|
length 250
|
|
FMT(vdiph2/iioo)
|
|
endphoneme
|
|
|
|
phoneme iou
|
|
vowel starttype #i endtype #u
|
|
length 250
|
|
FMT(vwl_zh/iou)
|
|
endphoneme
|
|
|
|
phoneme o
|
|
vowel starttype #o endtype #o
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vnasal/oo_n2)
|
|
ENDIF
|
|
FMT(vdiph2/o_oo)
|
|
endphoneme
|
|
|
|
phoneme o-
|
|
vowel starttype #o endtype #o
|
|
length 250
|
|
FMT(vowel/8)
|
|
endphoneme
|
|
|
|
phoneme ou
|
|
vowel starttype #o endtype #u
|
|
length 250
|
|
FMT(vdiph/8u)
|
|
endphoneme
|
|
|
|
phoneme ong
|
|
vowel starttype #o endtype #o
|
|
length 500
|
|
FMT(vwl_zh/ong)
|
|
endphoneme
|
|
|
|
phoneme u //try more before N
|
|
vowel starttype #u endtype #u
|
|
length 250
|
|
IF nextPh(N) THEN
|
|
FMT(vnasal/u_n)
|
|
ENDIF
|
|
FMT(vowel/u_bck)
|
|
endphoneme
|
|
|
|
phoneme uA
|
|
vowel starttype #u endtype #a
|
|
length 250
|
|
FMT(vwl_zh/uaa)
|
|
endphoneme
|
|
|
|
phoneme ua
|
|
vowel starttype #u endtype #a
|
|
length 250
|
|
FMT(vdiph2/oa)
|
|
endphoneme
|
|
|
|
phoneme uai
|
|
vowel starttype #u endtype #i
|
|
length 250
|
|
FMT(vwl_zh/uai)
|
|
endphoneme
|
|
|
|
phoneme u@
|
|
vowel starttype #u endtype #@
|
|
length 230
|
|
FMT(vdiph2/o@)
|
|
endphoneme
|
|
|
|
phoneme uei
|
|
vowel starttype #u endtype #i
|
|
length 250
|
|
FMT(vwl_zh/uei)
|
|
endphoneme
|
|
|
|
phoneme uo
|
|
vowel starttype #u endtype #o
|
|
length 280
|
|
FMT(vwl_zh/uo)
|
|
endphoneme
|
|
|
|
phoneme y
|
|
vowel 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
|
|
vowel starttype #i endtype #u
|
|
length 250
|
|
FMT(vdiph2/yu)
|
|
endphoneme
|
|
|
|
phoneme y&
|
|
vowel starttype #i endtype #e
|
|
length 250
|
|
FMT(vwl_zh/y&)
|
|
endphoneme
|
|
|
|
phoneme yE //try more so not similar to iE
|
|
vowel starttype #i endtype #e
|
|
length 250
|
|
FMT(vwl_zh/yee)
|
|
endphoneme
|
|
|
|
phoneme y@
|
|
vowel starttype #i endtype #@
|
|
length 250
|
|
FMT(vdiph2/y@)
|
|
endphoneme
|
|
|
|
phoneme yi
|
|
vowel starttype #i endtype #i
|
|
length 250
|
|
FMT(vdiph/yi)
|
|
endphoneme
|