mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Phoneme definitions. New keyword "prevoice", always add murmer before a voiced stop, not only after a vowel. Fixed bug in nextVowel() condition. Fixed bug is condition "isRhotic". Command line options. On Windows, -- means don't treat following arguments as options. --help output now should the espeak-data path. Tools->Lexicon. Redesign Lexicon processing for Russian and Bulgarian. Numbers. Fixes for Hungarian ordinal numbers. Fixed bug where double .. was ignored. Fixed bug in reporting word event lengths in callbacks. Fixed bug in reporting marker event positions in callbacks, when non-ascii text. SSML. Allow single as well as double quotes around strings. Fix bugs in SSML "prosody rate". Speed. Only use Sonic speedups greater than x2. Use custom eSpeak speed settings when Sonic speedup is used. Mbrola. Look for Mbrola voice also at /usr/share/mbrola/xx/xx espeakedit. Try "aplay" and then "play" to play sound. Languages: Kannada (kn) now in official release. Esperanto (eo) change prosody. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@257 d46cf337-b52f-0410-862d-fd96e6ae7743
464 lines
6.9 KiB
Plaintext
464 lines
6.9 KiB
Plaintext
|
||
phoneme t2 // [t] which doesn't reduce
|
||
import_phoneme base/t
|
||
endphoneme
|
||
|
||
|
||
phoneme t# // reduced [t] as in "city"
|
||
vcd alv stop
|
||
ipa ɾ
|
||
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 nextPhW(isVowel) THEN
|
||
ELSE
|
||
IF prevPh(isVowel) OR prevPh(j) OR prevPh(w) THEN
|
||
ChangePhoneme(l/2)
|
||
ELSE
|
||
ChangePhoneme(l/)
|
||
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
|
||
ipa ɹ
|
||
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
|
||
CALL @
|
||
ipa ə
|
||
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 #@
|
||
ipa ɐ
|
||
unstressed
|
||
length 150
|
||
FMT(vowel/a#_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme aa // 'bath' etc.
|
||
vowel starttype #a endtype #a
|
||
ipa a
|
||
length 185
|
||
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
|
||
ipa ɪ
|
||
length 140
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii_7)
|
||
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
|
||
ipa ɑː
|
||
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
|
||
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
|
||
ipa ɔː
|
||
length 240
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowel/oo_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme o@
|
||
vowel starttype #o endtype #o
|
||
ipa ɔː
|
||
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
|
||
ipa əʊ
|
||
length 220
|
||
FMT(vdiph/@u_en)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI
|
||
vowel starttype #a endtype #i
|
||
length 240
|
||
IF nextPh(#a) THEN
|
||
AppendPhoneme(;)
|
||
ENDIF
|
||
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-)
|
||
IF thisPh(isUnstressed) THEN
|
||
FMT(vdiph2/8@)
|
||
ENDIF
|
||
FMT(vdiph2/uu@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aI@
|
||
vowel starttype #a endtype #@
|
||
length 280
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en/aI@)
|
||
endphoneme
|
||
|
||
|
||
phoneme aU@
|
||
vowel starttype #a endtype #@
|
||
length 280
|
||
IfNextVowelAppend(r-)
|
||
FMT(vwl_en/aU@)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme IR // used for "ir" when [3:] is split (Scottish)
|
||
vowel starttype #@ endtype #@
|
||
length 190
|
||
ipa əɹ
|
||
IF nextPhW(r-) THEN
|
||
ipa ə
|
||
ENDIF
|
||
IfNextVowelAppend(r-)
|
||
FMT(vowelr/V_r)
|
||
endphoneme
|
||
|
||
|
||
phoneme VR // used for "or"/"ur" when [3:] is split (Scottish)
|
||
vowel starttype #@ endtype #@
|
||
length 210
|
||
ipa ʌɹ
|
||
IF nextPhW(r-) THEN
|
||
ipa ʌ
|
||
ENDIF
|
||
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
|
||
|
||
|