mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-07 23:31:26 +00:00
espeakedit: Prosody window now shows the FMT() or WAV() filename and the standard length of the selected phoneme. Added the ability to produce speech at different sample rates. To use rates other than the default 22050Hz, the phoneme data must be recompiled. This needs the "sox" program to be available. (sox.sourceforge.net). espeakedit: Added menu option to compile the phoneme data at a specified sample rate (rather than the default 22050Hz). phondata: Includes the value of the sample rate at which the data was compiled. Language changes: pt. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@302 d46cf337-b52f-0410-862d-fd96e6ae7743
385 lines
5.8 KiB
Plaintext
385 lines
5.8 KiB
Plaintext
|
||
//*******************************************************************
|
||
// VOWELS
|
||
//*******************************************************************
|
||
|
||
|
||
phoneme 3 // Schwa, used for rhotic schwa in American
|
||
vowel starttype #@ endtype #@
|
||
ipa ɚ
|
||
unstressed
|
||
length 200
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en_us/3_us)
|
||
endphoneme
|
||
|
||
|
||
phoneme @ // Schwa
|
||
vowel starttype #@ endtype #@
|
||
unstressed
|
||
length 130
|
||
IF nextPh(isRhotic) THEN
|
||
ChangePhoneme(3)
|
||
ENDIF
|
||
IF thisPh(isWordEnd) THEN
|
||
FMT(vowel/@_6)
|
||
ENDIF
|
||
FMT(vowel/@_4)
|
||
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/@_low2)
|
||
endphoneme
|
||
|
||
|
||
phoneme a
|
||
vowel starttype #e endtype #@
|
||
ipa æ
|
||
length 210
|
||
|
||
ChangeIfDiminished(a#)
|
||
|
||
IF nextPh(isNasal) THEN
|
||
FMT(vnasal/ee_n2)
|
||
ENDIF
|
||
FMT(vwl_en_us/a)
|
||
endphoneme
|
||
|
||
|
||
phoneme aa // 'bath' etc.
|
||
import_phoneme en-us/a
|
||
endphoneme
|
||
|
||
|
||
phoneme a#
|
||
vowel starttype #@ endtype #@
|
||
ipa ɐ
|
||
unstressed
|
||
length 150
|
||
FMT(vowel/a#_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme E
|
||
vowel starttype #e endtype #e
|
||
length 195
|
||
ChangeIfDiminished(I2)
|
||
FMT(vwl_en_us/ee)
|
||
endphoneme
|
||
|
||
|
||
phoneme I
|
||
vowel starttype #i endtype #i
|
||
length 160
|
||
IfNextVowelAppend(;)
|
||
ChangeIfDiminished(I2)
|
||
FMT(vowel/ii_4)
|
||
endphoneme
|
||
|
||
|
||
phoneme I2
|
||
vowel starttype #i endtype #i
|
||
unstressed
|
||
length 160
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii#_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme I#
|
||
vowel starttype #i endtype #i
|
||
unstressed
|
||
length 160
|
||
// FMT(vowel/@_fnt)
|
||
FMT(vowel/ii#)
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme i // optional variant of [I] for end of words
|
||
vowel starttype #i endtype #i
|
||
unstressed
|
||
length 170
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii_final)
|
||
endphoneme
|
||
|
||
|
||
phoneme 0
|
||
vowel starttype #a endtype #a
|
||
length 200
|
||
ipa ɑː
|
||
ChangeIfDiminished(@)
|
||
IF nextPh(r) THEN
|
||
ChangePhoneme(O:)
|
||
ENDIF
|
||
FMT(vowel/aa_8)
|
||
endphoneme
|
||
|
||
|
||
phoneme V
|
||
vowel starttype #a endtype #@
|
||
length 170
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/V_6)
|
||
endphoneme
|
||
|
||
|
||
phoneme U
|
||
vowel starttype #o endtype #o
|
||
length 145
|
||
FMT(vowel/8_2)
|
||
endphoneme
|
||
|
||
|
||
phoneme A:
|
||
vowel starttype #a endtype #a
|
||
length 200
|
||
IF nextPh(r) THEN
|
||
FMT(vwl_en_us/ar)
|
||
ENDIF
|
||
FMT(vowel/aa_8)
|
||
endphoneme
|
||
|
||
|
||
phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American
|
||
vowel starttype #a endtype #a
|
||
ipa ɑːɹ
|
||
IF nextPh(r-) THEN
|
||
ipa ɑː
|
||
ENDIF
|
||
length 260
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en_us/ar)
|
||
endphoneme
|
||
|
||
|
||
phoneme 3:
|
||
vowel starttype #@ endtype #@
|
||
length 240
|
||
IfNextVowelAppend(r-)
|
||
ChangeIfDiminished(3)
|
||
FMT(vwl_en_us/3_us2)
|
||
endphoneme
|
||
|
||
|
||
phoneme i:
|
||
vowel starttype #i endtype #i
|
||
length 170
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/i_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme O:
|
||
vowel starttype #o endtype #o
|
||
length 210
|
||
ChangeIfDiminished(@)
|
||
IF nextPh(r) THEN
|
||
FMT(vwl_en_us/oor)
|
||
ENDIF
|
||
FMT(vowel/0_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme O@
|
||
vowel starttype #o endtype #@
|
||
length 250
|
||
ipa ɔːɹ
|
||
IF nextPhW(r) THEN
|
||
ipa ɔː
|
||
ENDIF
|
||
IfNextVowelAppend(r)
|
||
FMT(vwl_en_us/oor)
|
||
endphoneme
|
||
|
||
|
||
phoneme o@
|
||
vowel starttype #o endtype #@
|
||
length 250
|
||
ipa oːɹ
|
||
IF nextPhW(r) THEN
|
||
ipa oː
|
||
ENDIF
|
||
IfNextVowelAppend(r)
|
||
FMT(vwl_en_us/or)
|
||
endphoneme
|
||
|
||
|
||
phoneme O
|
||
vowel starttype #o endtype #o
|
||
length 200
|
||
ChangeIfDiminished(@)
|
||
FMT(vowel/aa#)
|
||
endphoneme
|
||
|
||
|
||
phoneme u:
|
||
vowel starttype #u endtype #u
|
||
length 190
|
||
FMT(vdiph2/uw_6)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU
|
||
vowel starttype #a endtype #o
|
||
length 235
|
||
FMT(vdiph/aoo)
|
||
endphoneme
|
||
|
||
|
||
phoneme oU
|
||
vowel starttype #@ endtype #u
|
||
length 230
|
||
FMT(vdiph/8u)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI
|
||
vowel starttype #a endtype #i
|
||
length 250
|
||
IF nextPh(#a) OR nextPh(#o) THEN
|
||
AppendPhoneme(;)
|
||
ENDIF
|
||
FMT(vdiph/aae)
|
||
endphoneme
|
||
|
||
|
||
phoneme eI
|
||
vowel starttype #e endtype #i
|
||
length 230
|
||
FMT(vdiph/eei_5)
|
||
endphoneme
|
||
|
||
|
||
phoneme OI
|
||
vowel starttype #o endtype #i
|
||
length 285
|
||
FMT(vdiph/ooi_4)
|
||
endphoneme
|
||
|
||
|
||
phoneme e@
|
||
vowel starttype #e endtype #@
|
||
length 280
|
||
ipa ɛɹ
|
||
IF nextPhW(r) THEN
|
||
ipa ɛ
|
||
ENDIF
|
||
IfNextVowelAppend(r)
|
||
FMT(vwl_en_us/er)
|
||
endphoneme
|
||
|
||
|
||
phoneme i@
|
||
vowel starttype #i endtype #@
|
||
length 250
|
||
FMT(vdiph2/ii@) // don't append [r] before a vowel
|
||
endphoneme
|
||
|
||
|
||
phoneme i@3
|
||
vowel starttype #i endtype #@
|
||
length 280
|
||
ipa ɪɹ
|
||
IF nextPhW(r) THEN
|
||
ipa ɪ
|
||
ENDIF
|
||
IfNextVowelAppend(r)
|
||
FMT(vwl_en_us/ir)
|
||
endphoneme
|
||
|
||
|
||
phoneme U@
|
||
vowel starttype #@ endtype #@
|
||
length 250
|
||
ipa ʊɹ
|
||
IF nextPhW(r-) THEN
|
||
ipa ʊ
|
||
ENDIF
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en_us/ur)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI@
|
||
vowel starttype #a endtype #@
|
||
length 300
|
||
ipa aɪə
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en_us/ai@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI3
|
||
vowel starttype #a endtype #@
|
||
length 300
|
||
ipa aɪɚ
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en_us/ai3)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU@
|
||
vowel starttype #a endtype #@
|
||
length 300
|
||
ipa aɪʊɹ
|
||
IF nextPhW(r) THEN
|
||
ipa aɪʊ
|
||
ENDIF
|
||
IfNextVowelAppend(r)
|
||
FMT(vwl_en_us/aU@)
|
||
endphoneme
|
||
|
||
|
||
//==============
|
||
// Consonants
|
||
//==============
|
||
|
||
phoneme r/ // used for [r] when not preceding a vowel
|
||
liquid
|
||
lengthmod 2 //
|
||
// formants NULL
|
||
endphoneme
|
||
|
||
|
||
phoneme t
|
||
vls alv stop
|
||
voicingswitch d
|
||
lengthmod 2
|
||
|
||
// IF prevPhW(isVowel) OR prevPhW(n) THEN
|
||
IF prevPhW(isVowel) THEN // test, don't reduce [t] after [n]
|
||
IF nextPhW(isVowel) AND nextPh(isUnstressed) THEN
|
||
IF next2Ph(n) AND next2Ph(notWordStart) THEN
|
||
ELSE
|
||
ChangePhoneme(t#)
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
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(r) OR nextPh(R) OR nextPh(R2) THEN
|
||
WAV(ustop/tr)
|
||
ELIF nextPh(@-) THEN
|
||
WAV(ustop/t_dnt, 50)
|
||
ENDIF
|
||
WAV(ustop/t, 90)
|
||
endphoneme
|
||
|
||
|
||
phoneme t2 // [t] which doesn't reduce
|
||
import_phoneme base/t
|
||
endphoneme
|