Files
espeak-ng/phsource/ph_english
T
jonsd 18240ae109 [1.43.46]
Fix: Speak punctuation option also caused text after [[ to be spoken as phoneme codes even if espeakPHONEMES flag is not set.

Speak sequences of letters and dots as individual letters, and don't speak 'dot', eg. "u.s.a."

Don't announce punctuation in the alternative text inside <audio ... </audio>

Vowelcharts, show the positions of multiple FMT() in vowel phonemes definitions.

Phoneme definitions:
New attributes:  flag1, flag2, flag3
New attribute: nopause. Prevents the insertion of a short pause when this phoneme starts a word which follows a vowel.
New conditions: isFlag1, isFlag2, isFlag3, isSibilant.
New statement: InsertPhoneme()

Phonemes: improve syllablic [m-] [n-] [N-]

*_rules: add attributes  $p_alt .. $p_alt3,  $w_alt .. $w_alt3

*_list:  add attributes:  $sentence, $atstart

klatt synthesizer: implement echo.

espeakedit, Prosody display: Indicate stressed and secondary-stress syllables.

espeakedit: remember window size and position.

Intonation:
New file, 'phsource/intonation' to define 'tunes' which can be used from voice files.

espeakedit: add Compile -> Intonationm data

Speed: Increase range to 80 to 450, with default=175.
Improve speaking at high speeds.

lang=en: Reduce consecutive unstressed syllables to 'diminished' stress, only in unstressed words.

lang=de: Change 'r' phoneme.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@244 d46cf337-b52f-0410-862d-fd96e6ae7743
2010-06-20 13:15:35 +00:00

446 lines
6.7 KiB
Plaintext

phoneme t2 // [t] which doesn't reduce
import_phoneme base/t
endphoneme
phoneme t# // reduced [t] as in "city"
vcd alv stop
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80
IF KlattSynth THEN
IF PreVoicing THEN
FMT(klatt/x_tap)
ENDIF
FMT(klatt/tap2) addWav(x/d, 70)
ENDIF
IF PreVoicing THEN
FMT(d/x_tap)
ENDIF
FMT(d/tap2) addWav(x/d, 70)
endphoneme
phoneme l // use dark [l/2] before not-vowel
liquid
lengthmod 7
IF nextPh(isNotVowel) THEN
IF prevPh(isNotVowel) THEN
ChangePhoneme(l/)
ELSE
ChangePhoneme(l/2)
ENDIF
ENDIF
CALL base/l
endphoneme
phoneme g-
vcd vel stop
lengthmod 5
Vowelin f1=2 f2=2300 200 300 f3=-300 80
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
IF PreVoicing THEN
FMT(g/xg)
ENDIF
IF nextPh(isPause2) THEN
FMT(g/g_) addWav(x/g2_)
ENDIF
FMT(g/g) addWav(x/g2_)
endphoneme
phoneme r- // linking r, used in English between certain vowels and a following vowel
liquid rhotic
lengthmod 0
NextVowelStarts
VowelStart(r2/r2@)
VowelStart(r2/r2a)
VowelStart(r2/r2e)
VowelStart(r2/r2i)
VowelStart(r2/r2o)
VowelStart(r2/r2u)
EndSwitch
IF prevPh(isVowel) THEN
VowelEnding(r/xr, -60)
ENDIF
FMT(r/r)
endphoneme
phoneme z/2 // used for 's suffix
vcd alv frc sibilant
lengthmod 6
IF prevPh(isSibilant) THEN
InsertPhoneme(I2)
ENDIF
IF prevPh(isVoiced) THEN
ELSE
ChangePhoneme(s)
ENDIF
ChangePhoneme(z)
endphoneme
//*******************************************************************
// VOWELS
//*******************************************************************
phoneme @ // Schwa
vowel starttype #@ endtype #@
unstressed
length 140
IfNextVowelAppend(r-)
IF thisPh(isWordEnd) THEN
FMT(vowel/@_6)
ENDIF
FMT(vowel/@)
endphoneme
phoneme 3 // Schwa, used for rhotic schwa in American
vowel starttype #@ endtype #@
unstressed
length 140
IfNextVowelAppend(r-)
IF thisPh(isWordEnd) THEN
FMT(vowel/@_6)
ENDIF
FMT(vowel/@)
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/@)
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/@)
endphoneme
phoneme @L
vowel starttype #@ endtype l
unstressed
length 160
CALL vowelstart_l
FMT(vwl_en/@L)
endphoneme
phoneme a
vowel starttype #a endtype #a
length 160
ChangeIfDiminished(a#)
IF thisPh(isUnstressed) THEN
FMT(vowel/a_7)
ENDIF
FMT(vowel/a)
endphoneme
phoneme a#
vowel starttype #@ endtype #@
unstressed
length 150
FMT(vowel/a#_3)
endphoneme
phoneme aa // 'bath' etc.
vowel starttype #a endtype #a
length 190
IfNextVowelAppend(r-)
FMT(vowel/a)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 140
ChangeIfDiminished(I2)
FMT(vowel/ee_5)
endphoneme
phoneme I
vowel starttype #i endtype #i
length 130
IfNextVowelAppend(;)
FMT(vowel/ii_2)
endphoneme
phoneme I2
vowel starttype #i endtype #i
unstressed
length 130
IfNextVowelAppend(;)
FMT(vowel/ii_4)
endphoneme
phoneme i // optional variant of [I] for end of words
vowel starttype #i endtype #i
length 140
IfNextVowelAppend(;)
FMT(vowel/ii_en)
endphoneme
phoneme 0
vowel starttype #o endtype #o
length 140
ChangeIfDiminished(@)
FMT(vowel/0)
endphoneme
phoneme V
vowel starttype #a endtype #@
length 140
ChangeIfDiminished(@)
FMT(vowel/V_2)
endphoneme
phoneme U
vowel starttype #o endtype #o
length 150
FMT(vowel/uu)
endphoneme
phoneme A:
vowel starttype #a endtype #a
length 230
IfNextVowelAppend(r-)
FMT(vowel/aa_2)
endphoneme
phoneme A@ // Used for [A:] when followed by 'r'
vowel starttype #a endtype #a
length 230
IfNextVowelAppend(r-)
FMT(vowel/aa_2)
endphoneme
phoneme 3:
vowel starttype #@ endtype #@
length 210
IfNextVowelAppend(r-)
ChangeIfDiminished(@)
FMT(vowel/3_en)
endphoneme
phoneme i:
vowel starttype #i endtype #i
length 175 long
IfNextVowelAppend(;)
IF prevPh(w) THEN
VowelStart(w/wi2)
ENDIF
FMT(vowel/i_en)
endphoneme
phoneme O:
vowel starttype #o endtype #o
length 230
ChangeIfDiminished(@)
FMT(vowel/oo_en)
endphoneme
phoneme O
vowel starttype #o endtype #o
length 200
ChangeIfDiminished(@)
FMT(vowel/oo_en)
endphoneme
phoneme O@
vowel starttype #o endtype #o
length 240
IfNextVowelAppend(r-)
FMT(vowel/oo_en)
endphoneme
phoneme o@
vowel starttype #o endtype #o
length 250
IfNextVowelAppend(r-)
FMT(vowel/oo_en)
endphoneme
phoneme u:
vowel starttype #u endtype #u
length 210
IF nextPh(l/2) THEN
FMT(vwl_en/u_L)
ENDIF
FMT(vdiph2/uw_2)
endphoneme
phoneme aU
vowel starttype #a endtype #u
length 230
FMT(vdiph/au)
endphoneme
phoneme oU
vowel starttype #@ endtype #u
length 220
FMT(vdiph/@u_en)
endphoneme
phoneme aI
vowel starttype #a endtype #i
length 240
FMT(vdiph/ai_2)
endphoneme
phoneme eI
vowel starttype #e endtype #i
length 210
FMT(vdiph/eei)
endphoneme
phoneme OI
vowel starttype #o endtype #i
length 230
FMT(vdiph/ooi)
endphoneme
phoneme e@
vowel starttype #e endtype #@
length 230
IfNextVowelAppend(r-)
FMT(vowel/ee_1)
endphoneme
phoneme i@
vowel starttype #i endtype #@
length 250
IfNextVowelAppend(r-)
FMT(vdiph2/ii@)
endphoneme
phoneme i@3
vowel starttype #i endtype #@
length 250
IfNextVowelAppend(r-)
FMT(vdiph2/ii@)
endphoneme
phoneme U@
vowel starttype #u endtype #@
length 200
IfNextVowelAppend(r-)
FMT(vdiph2/uu@)
endphoneme
phoneme aI@
vowel starttype #a endtype #@
length 270
IfNextVowelAppend(r-)
FMT(vwl_en/aI@)
endphoneme
phoneme aU@
vowel starttype #a endtype #@
length 270
IfNextVowelAppend(r-)
FMT(vwl_en/aU@)
endphoneme
phoneme IR // used for "ir" when [3:] is split (Scottish)
vowel starttype #@ endtype #@
length 190
IfNextVowelAppend(r-)
FMT(vowelr/V_r)
endphoneme
phoneme VR // used for "or"/"ur" when [3:] is split (Scottish)
vowel starttype #@ endtype #@
length 210
IfNextVowelAppend(r-)
FMT(vowelr/V3_r)
endphoneme
phoneme o:
vowel starttype #o endtype #o
length 220
FMT(vowel/o)
endphoneme
phoneme A~
vowel starttype #a endtype #a
length 260
FMT(vnasal/aa_n2)
endphoneme
phoneme O~
vowel starttype #o endtype #o
length 240
FMT(vnasal/oo_n2)
endphoneme
phoneme e:
vowel starttype #e endtype #e
length 210
FMT(vowel/e)
endphoneme