mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-07 07:23:52 +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
329 lines
4.9 KiB
Plaintext
Executable File
329 lines
4.9 KiB
Plaintext
Executable File
|
|
|
|
//****************************************************************
|
|
//redefinition of the : phoneme
|
|
phoneme : // lengthen previous vowel by "length"
|
|
virtual
|
|
length 140
|
|
endphoneme
|
|
|
|
// VOWELS
|
|
//****************************************************************
|
|
|
|
|
|
phoneme @ // Schwa, but always unstressed
|
|
vowel starttype #@ endtype #@
|
|
unstressed
|
|
length 140
|
|
IF nextPh(r/) THEN
|
|
Length 190
|
|
FMT(vwl_af/r@)
|
|
ENDIF
|
|
FMT(vwl_af/@)
|
|
endphoneme
|
|
|
|
|
|
phoneme a // short A
|
|
vowel starttype #a endtype #a
|
|
length 140
|
|
FMT(vowel/V_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme E // short E
|
|
vowel starttype #e endtype #e
|
|
length 140
|
|
FMT(vowel/e_mid2)
|
|
endphoneme
|
|
|
|
phoneme I // short I, Schwa
|
|
vowel starttype #@ endtype #@
|
|
length 140
|
|
IF nextPh(r/) THEN
|
|
Length 190
|
|
FMT(vwl_af/r@)
|
|
ENDIF
|
|
FMT(vwl_af/I)
|
|
endphoneme
|
|
|
|
|
|
phoneme O // short O
|
|
vowel starttype #o endtype #o
|
|
length 140
|
|
FMT(vowel/oo_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme W // short U
|
|
vowel starttype #@ endtype #@
|
|
length 140
|
|
FMT(vowel/oe)
|
|
endphoneme
|
|
|
|
|
|
phoneme u // short OE
|
|
vowel starttype #u endtype #u
|
|
length 110
|
|
FMT(vowel/uu_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme & // more open [E]
|
|
vowel starttype #e endtype #e
|
|
length 150
|
|
IF nextPh(l/2) THEN
|
|
VowelEnding(l/L_eL_af, -30)
|
|
ENDIF
|
|
FMT(vowel/ee_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme &: // more open [E] longer
|
|
vowel starttype #e endtype #e
|
|
length 280
|
|
IF nextPh(l/2) THEN
|
|
VowelEnding(l/L_eL_af, -30)
|
|
ENDIF
|
|
FMT(vowel/ee_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme @L // syllabic L
|
|
vowel starttype #@ endtype l
|
|
unstressed
|
|
length 160
|
|
FMT(vwl_en/@L)
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme A: // long A
|
|
vowel starttype #a endtype #a
|
|
length 280
|
|
FMT(vowel/aa_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme e@ // long E
|
|
vowel starttype #i endtype #@
|
|
length 230
|
|
FMT(vdiph/i@_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme i // long I
|
|
vowel starttype #i endtype #i
|
|
length 100
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/i_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme o@ // long O
|
|
vowel starttype #u endtype #@
|
|
length 250
|
|
FMT(vdiph2/o@)
|
|
endphoneme
|
|
|
|
|
|
phoneme y // long U
|
|
vowel starttype #i endtype #i
|
|
length 180
|
|
FMT(vowel/y_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme iu
|
|
vowel starttype #i endtype #u
|
|
length 220
|
|
FMT(vdiph2/iu_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme @U
|
|
vowel starttype #@ endtype #u
|
|
length 170
|
|
FMT(vdiph/Vu)
|
|
endphoneme
|
|
|
|
|
|
phoneme aI
|
|
vowel starttype #a endtype #i
|
|
length 220
|
|
IfNextVowelAppend(;)
|
|
FMT(vdiph/ai_4)
|
|
endphoneme
|
|
|
|
|
|
phoneme AI
|
|
vowel starttype #a endtype #i
|
|
length 310
|
|
IfNextVowelAppend(;)
|
|
FMT(vdiph/aai_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme eI
|
|
vowel starttype #e endtype #i
|
|
length 170
|
|
IfNextVowelAppend(;)
|
|
FMT(vdiph/@i_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme OI
|
|
vowel starttype #o endtype #i
|
|
length 230
|
|
IfNextVowelAppend(;)
|
|
FMT(vdiph/ooi_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme oI
|
|
vowel starttype #o endtype #i
|
|
length 290
|
|
IfNextVowelAppend(;)
|
|
FMT(vdiph/oi_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme uI
|
|
vowel starttype #u endtype #i
|
|
length 240
|
|
IfNextVowelAppend(;)
|
|
FMT(vdiph/ui_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme Yy
|
|
vowel starttype #@ endtype #i
|
|
length 220
|
|
IfNextVowelAppend(;)
|
|
FMT(vdiph/y#y_2)
|
|
endphoneme
|
|
|
|
|
|
phoneme Y@
|
|
vowel starttype #i endtype #@
|
|
length 210
|
|
FMT(vdiph2/y#@)
|
|
endphoneme
|
|
|
|
|
|
phoneme aU
|
|
vowel starttype #a endtype #u
|
|
length 230
|
|
FMT(vdiph/au)
|
|
endphoneme
|
|
|
|
|
|
// circumflex accent vowels
|
|
|
|
phoneme e:
|
|
vowel starttype #e endtype #e
|
|
length 210
|
|
FMT(vowel/e)
|
|
endphoneme
|
|
|
|
|
|
phoneme O:
|
|
vowel starttype #o endtype #o
|
|
length 280
|
|
FMT(vowel/oo_1)
|
|
endphoneme
|
|
|
|
|
|
phoneme 3:
|
|
vowel starttype #@ endtype #@
|
|
length 230
|
|
FMT(vowel/3_en)
|
|
endphoneme
|
|
|
|
|
|
// Nasal vowels
|
|
|
|
phoneme A~
|
|
vowel starttype #a endtype #a
|
|
length 240
|
|
FMT(vnasal/aa_n3)
|
|
endphoneme
|
|
|
|
|
|
phoneme e~
|
|
vowel starttype #e endtype #e
|
|
length 240
|
|
FMT(vnasal/e_n)
|
|
endphoneme
|
|
|
|
|
|
phoneme o~
|
|
vowel starttype #o endtype #o
|
|
length 240
|
|
FMT(vnasal/o_n2)
|
|
endphoneme
|
|
|
|
|
|
|
|
// CONSONANTS
|
|
//===========
|
|
|
|
phoneme x2
|
|
vls vel frc
|
|
Vowelin f1=0 f2=2300 200 400 f3=-100 100
|
|
Vowelout f1=0 f2=2300 300 400 f3=-100 100 rms=20
|
|
lengthmod 3
|
|
WAV(ufric/x2, 60) // stronger version of [x]
|
|
endphoneme
|
|
|
|
|
|
phoneme r
|
|
liquid rhotic
|
|
trill
|
|
lengthmod 6
|
|
Vowelin f1=2 f2=2700 -300 -200 f3=-1300 80
|
|
Vowelout f1=2 f2=1700 -300 -200 f3=-1300 80
|
|
|
|
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)
|
|
ENDIF
|
|
|
|
FMT(r3/r_trill) addWav(r3/r_trill3.wav, 100)
|
|
endphoneme
|
|
|
|
|
|
phoneme r/ // used for [r] when not preceding a vowel
|
|
liquid
|
|
lengthmod 7
|
|
|
|
IF prevPh(@) OR prevPh(I) THEN
|
|
ELSE
|
|
FMT(r3/r_) addWav(r3/rx)
|
|
ENDIF
|
|
endphoneme
|
|
|
|
|
|
phoneme l
|
|
import_phoneme en/l
|
|
endphoneme
|
|
|
|
|
|
phoneme c // used in -tjie
|
|
vls pal stop palatal
|
|
voicingswitch g
|
|
lengthmod 2
|
|
Vowelin f1=0 f2=2700 400 600 f3= 200 80
|
|
Vowelout f1=0 f2=2700 400 600 f3= 200 80 rms=20
|
|
WAV(ustop/ki)
|
|
endphoneme
|
|
|
|
|