mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-06 15:12:24 +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
384 lines
5.6 KiB
Plaintext
384 lines
5.6 KiB
Plaintext
|
||
|
||
//*******************************************************************
|
||
// VOWELS
|
||
//*******************************************************************
|
||
|
||
|
||
phoneme @ // Schwa
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 140
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/@_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme 3 // Schwa, used for rhotic schwa in American
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 140
|
||
IF nextPh(isVowel) THEN
|
||
ChangePhoneme(@)
|
||
ENDIF
|
||
IfNextVowelAppend(r-)
|
||
IF nextPh(isPause) THEN
|
||
FMT(vowelr/V3_r)
|
||
ENDIF
|
||
FMT(vowel/V)
|
||
endphoneme
|
||
|
||
|
||
phoneme @2 // Schwa, changes to I before a vowel
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 120
|
||
IF nextPh(isVowel) THEN
|
||
ChangePhoneme(I2)
|
||
ENDIF
|
||
FMT(vowel/@_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme @5 // Schwa, changes to U before a vowel
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 140
|
||
IF nextPh(isVowel) OR nextPh(isPause) THEN
|
||
ChangePhoneme(U)
|
||
ENDIF
|
||
FMT(vowel/@_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme a
|
||
vowel starttype #a endtype #a
|
||
length 200
|
||
ChangeIfDiminished(a#)
|
||
ChangeIfNotStressed(a/)
|
||
FMT(vowel/a_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme a/
|
||
vowel starttype #a endtype #a
|
||
length 160
|
||
ChangeIfDiminished(a#)
|
||
FMT(vowel/a_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme a#
|
||
vowel starttype #@ endtype #@
|
||
ipa ɐ
|
||
unstressed
|
||
length 140
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/a#)
|
||
endphoneme
|
||
|
||
|
||
phoneme aa // 'bath' etc.
|
||
vowel starttype #a endtype #a
|
||
ipa a:
|
||
length 220
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/a_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme E
|
||
vowel starttype #e endtype #e
|
||
length 170
|
||
ChangeIfDiminished(I2)
|
||
FMT(vowel/e_e)
|
||
endphoneme
|
||
|
||
|
||
phoneme I
|
||
vowel starttype #@ endtype #@
|
||
length 110
|
||
IF nextPh(l/2) THEN
|
||
VowelEnding(l/L2_@L, -30)
|
||
FMT(vowel/@_3)
|
||
ENDIF
|
||
FMT(vowel/e#)
|
||
endphoneme
|
||
|
||
|
||
phoneme I2
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 110
|
||
CALL I
|
||
endphoneme
|
||
|
||
|
||
phoneme i // optional variant of [I] for end of words
|
||
vowel starttype #i endtype #e
|
||
ipa e
|
||
length 150
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/e_5)
|
||
endphoneme
|
||
|
||
|
||
phoneme 0
|
||
vowel starttype #o endtype #o
|
||
length 200
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/oo_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme V
|
||
vowel starttype #a endtype #@
|
||
length 140
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/V_4)
|
||
endphoneme
|
||
|
||
|
||
phoneme U
|
||
vowel starttype #u endtype #u
|
||
ipa ʉ
|
||
length 140
|
||
FMT(vowel/u#_4)
|
||
endphoneme
|
||
|
||
|
||
phoneme A:
|
||
vowel starttype #a endtype #a
|
||
length 220
|
||
ipa a:
|
||
IfNextVowelAppend(r-)
|
||
IF nextPh(r) THEN
|
||
Length 250
|
||
FMT(vowelr/aa_r)
|
||
ENDIF
|
||
FMT(vowel/a_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American
|
||
vowel starttype #a endtype #@
|
||
length 250
|
||
ipa aː
|
||
AppendPhoneme(r)
|
||
FMT(vowelr/aa_r)
|
||
endphoneme
|
||
|
||
|
||
phoneme 3:
|
||
vowel starttype #e endtype #@
|
||
length 210
|
||
ChangeIfNotStressed(VR) // also need "replace 02 3: VR" in voice file
|
||
ipa e
|
||
AppendPhoneme(r)
|
||
FMT(vdiph2/e@)
|
||
endphoneme
|
||
|
||
|
||
phoneme i:
|
||
vowel starttype #i endtype #i
|
||
length 130
|
||
IfNextVowelAppend(;)
|
||
IF prevPh(w) THEN
|
||
VowelStart(w/wi2)
|
||
ENDIF
|
||
IF nextPh(isVFricative) OR nextPh(isPause) THEN
|
||
Length 180
|
||
ENDIF
|
||
FMT(vowel/i_5)
|
||
endphoneme
|
||
|
||
|
||
phoneme O:
|
||
vowel starttype #o endtype #o
|
||
length 200
|
||
ChangeIfDiminished(@)
|
||
IF nextPh(r) THEN
|
||
FMT(vwl_en_us/or)
|
||
ENDIF
|
||
FMT(vowel/oo)
|
||
endphoneme
|
||
|
||
|
||
phoneme O@
|
||
vowel starttype #o endtype #@
|
||
length 230
|
||
ipa ɔ
|
||
AppendPhoneme(r)
|
||
FMT(vowelr/oo_r)
|
||
endphoneme
|
||
|
||
phoneme o@
|
||
vowel starttype #o endtype #@
|
||
length 230
|
||
ipa o
|
||
AppendPhoneme(r)
|
||
FMT(vowelr/o_r)
|
||
endphoneme
|
||
|
||
|
||
phoneme O
|
||
vowel starttype #o endtype #o
|
||
length 150
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/0_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme u:
|
||
vowel starttype #u endtype #u
|
||
ipa ʉː
|
||
length 160
|
||
IF nextPh(isVFricative) THEN
|
||
Length 200
|
||
ENDIF
|
||
IF nextPh(isPause) THEN
|
||
Length 200
|
||
FMT(vowel/u#_4)
|
||
ENDIF
|
||
FMT(vowel/u#)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU
|
||
vowel starttype #a endtype #u
|
||
ipa ʌʉ
|
||
length 200
|
||
FMT(vdiph/au#)
|
||
endphoneme
|
||
|
||
|
||
phoneme oU
|
||
vowel starttype #o endtype #u
|
||
ipa oː
|
||
length 190
|
||
FMT(vowel/o_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI
|
||
vowel starttype #a endtype #i
|
||
length 190
|
||
IF nextPh(isVowel) OR nextPh(isVFricative) THEN
|
||
ChangePhoneme(aI2)
|
||
ENDIF
|
||
IF nextPh(l/2) THEN
|
||
// before l/2 vwl_en/aI@_2+vwl_en/@L_2
|
||
FMT(vwl_en/aI@_2)
|
||
ENDIF
|
||
|
||
// FMT(vdiph/&i_2
|
||
FMT(vdiph/ai_7)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI2
|
||
vowel starttype #a endtype #i
|
||
length 240
|
||
FMT(vdiph/ai_7)
|
||
endphoneme
|
||
|
||
|
||
phoneme eI
|
||
vowel starttype #e endtype #i
|
||
ipa eː
|
||
length 190
|
||
FMT(vowel/e_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme OI
|
||
vowel starttype #o endtype #i
|
||
length 210
|
||
FMT(vdiph/0i_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme e@
|
||
vowel starttype #e endtype #@
|
||
length 220
|
||
ipa e
|
||
AppendPhoneme(r)
|
||
FMT(vdiph2/e@)
|
||
endphoneme
|
||
|
||
|
||
phoneme i@3
|
||
vowel starttype #i endtype #@
|
||
ipa ɪ
|
||
length 220
|
||
AppendPhoneme(r)
|
||
FMT(vowelr/i_r)
|
||
endphoneme
|
||
|
||
|
||
phoneme U@
|
||
vowel starttype #u endtype #@
|
||
ipa ʉɹ
|
||
IF nextPh(r-) THEN
|
||
ipa ʉ
|
||
ENDIF
|
||
length 240
|
||
IfNextVowelAppend(r-)
|
||
FMT(vdiph2/u#@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU@
|
||
vowel starttype #a endtype #@
|
||
length 270
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en/aU@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI@
|
||
vowel starttype #a endtype #@
|
||
length 270
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en/aI@_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme @L
|
||
vowel starttype #@ endtype l
|
||
unstressed
|
||
length 160
|
||
CALL vowelstart_l
|
||
FMT(vwl_en/@L_2)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
//==============
|
||
// Consonants
|
||
//==============
|
||
|
||
phoneme r/ // used for [r] when not preceding a vowel
|
||
liquid
|
||
lengthmod 2 //
|
||
FMT(NULL)
|
||
endphoneme
|
||
|
||
phoneme r
|
||
liquid rhotic
|
||
lengthmod 7
|
||
trill
|
||
|
||
IF nextPh(isNotVowel) THEN
|
||
ChangePhoneme(r/)
|
||
ENDIF
|
||
CALL base/r
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
|
||
|