mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +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
492 lines
7.2 KiB
Plaintext
492 lines
7.2 KiB
Plaintext
|
|
//====================================================
|
|
// Hindi
|
|
//====================================================
|
|
|
|
phoneme : // Lengthen the previous vowel by "length"
|
|
virtual
|
|
length 100
|
|
endphoneme
|
|
|
|
phoneme @
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
ChangeIfDiminished(@-)
|
|
IF nextPh(H) THEN
|
|
FMT(vowel/@_low)
|
|
ENDIF
|
|
FMT(vowel/@_bck)
|
|
endphoneme
|
|
|
|
phoneme @/
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
FMT(vowel/@_bck)
|
|
endphoneme
|
|
|
|
phoneme V
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
ChangeIfNotStressed(@)
|
|
IF nextPh(H) THEN
|
|
FMT(vowel/@_low)
|
|
ENDIF
|
|
FMT(vowel/V_3)
|
|
endphoneme
|
|
|
|
phoneme @2
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
FMT(vowel/@_low)
|
|
endphoneme
|
|
|
|
phoneme @3
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
ChangeIfDiminished(@-)
|
|
FMT(vowel/@_3)
|
|
endphoneme
|
|
|
|
phoneme @4
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
FMT(vowel/@)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
phoneme i:
|
|
vowel long starttype #i endtype #i
|
|
length 230
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/i_fnt)
|
|
endphoneme
|
|
|
|
phoneme i // as [i:] but not marked as 'long'
|
|
vowel starttype #i endtype #i
|
|
length 230
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/i_6)
|
|
endphoneme
|
|
|
|
phoneme I
|
|
vowel starttype #i endtype #i
|
|
length 100
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/ii_3)
|
|
endphoneme
|
|
|
|
phoneme e:
|
|
vowel long starttype #e endtype #e
|
|
length 220
|
|
FMT(vowel/e_2)
|
|
endphoneme
|
|
|
|
phoneme e
|
|
vowel starttype #e endtype #e
|
|
length 130
|
|
FMT(vowel/e_2)
|
|
endphoneme
|
|
|
|
phoneme E:
|
|
vowel long starttype #e endtype #e
|
|
length 220
|
|
FMT(vdiph/ee-e)
|
|
endphoneme
|
|
|
|
phoneme E
|
|
vowel starttype #e endtype #e
|
|
length 130
|
|
FMT(vowel/e_mid)
|
|
endphoneme
|
|
|
|
phoneme &:
|
|
vowel long starttype #a endtype #a
|
|
length 220
|
|
FMT(vowel/&)
|
|
endphoneme
|
|
|
|
|
|
phoneme a:
|
|
vowel long starttype #a endtype #a
|
|
length 230
|
|
FMT(vowel/aa_9)
|
|
endphoneme
|
|
|
|
phoneme a
|
|
vowel long starttype #a endtype #a
|
|
length 130
|
|
FMT(vowel/a#_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme o:
|
|
vowel long starttype #o endtype #o
|
|
length 220
|
|
FMT(vowel/o_2)
|
|
endphoneme
|
|
|
|
phoneme o
|
|
vowel starttype #o endtype #o
|
|
length 130
|
|
FMT(vowel/o)
|
|
endphoneme
|
|
|
|
phoneme O:
|
|
vowel long starttype #o endtype #o
|
|
length 210
|
|
FMT(vowel/oo_4)
|
|
endphoneme
|
|
|
|
|
|
phoneme O
|
|
vowel starttype #o endtype #o
|
|
length 130
|
|
FMT(vowel/0)
|
|
endphoneme
|
|
|
|
|
|
phoneme U
|
|
vowel starttype #u endtype #u
|
|
length 120
|
|
FMT(vowel/uu_bck)
|
|
endphoneme
|
|
|
|
|
|
phoneme u:
|
|
vowel long starttype #u endtype #u
|
|
length 230
|
|
FMT(vowel/u_bck)
|
|
endphoneme
|
|
|
|
|
|
// Nasal vowels
|
|
//=============
|
|
|
|
phoneme i~
|
|
vowel long starttype #i endtype #i
|
|
length 220
|
|
FMT(vnasal/i_n2)
|
|
endphoneme
|
|
|
|
phoneme I~
|
|
vowel long starttype #i endtype #i
|
|
length 170
|
|
FMT(vnasal/ii_n)
|
|
endphoneme
|
|
|
|
phoneme e~
|
|
vowel long starttype #e endtype #e
|
|
length 220
|
|
FMT(vnasal/e_n)
|
|
endphoneme
|
|
|
|
phoneme E~
|
|
vowel long starttype #e endtype #e
|
|
length 230
|
|
FMT(vnasal/ee_n2)
|
|
endphoneme
|
|
|
|
phoneme a~
|
|
vowel long starttype #a endtype #a
|
|
length 250
|
|
FMT(vnasal/aa_n)
|
|
endphoneme
|
|
|
|
phoneme V~
|
|
vowel long starttype #@ endtype #@
|
|
length 250
|
|
FMT(vnasal/V_n)
|
|
endphoneme
|
|
|
|
phoneme O~
|
|
vowel long starttype #o endtype #o
|
|
length 230
|
|
FMT(vnasal/oo_n2)
|
|
endphoneme
|
|
|
|
phoneme o~
|
|
vowel long starttype #o endtype #o
|
|
length 220
|
|
FMT(vnasal/o_n)
|
|
endphoneme
|
|
|
|
phoneme U~
|
|
vowel starttype #u endtype #u
|
|
length 170
|
|
FMT(vnasal/u_n)
|
|
endphoneme
|
|
|
|
phoneme u~
|
|
vowel long starttype #u endtype #u
|
|
length 230
|
|
FMT(vnasal/u_n)
|
|
endphoneme
|
|
|
|
|
|
// Diphthongs
|
|
//===========
|
|
|
|
|
|
phoneme aI
|
|
vowel long starttype #@ endtype #i
|
|
length 240
|
|
long
|
|
FMT(vdiph/&i)
|
|
endphoneme
|
|
|
|
phoneme aU
|
|
vowel long starttype #a endtype #u
|
|
length 240
|
|
long
|
|
FMT(vdiph/aau_3)
|
|
endphoneme
|
|
|
|
|
|
|
|
// CONSONANTS
|
|
//===========
|
|
|
|
phoneme v // approximant, not fricative
|
|
import_phoneme base/v#
|
|
voicingswitch f
|
|
endphoneme
|
|
|
|
|
|
phoneme H // use for full "h"
|
|
import_phoneme base/h
|
|
endphoneme
|
|
|
|
|
|
|
|
// bilabial plosives
|
|
//==================
|
|
|
|
phoneme p
|
|
import_phoneme consonants/p-
|
|
endphoneme
|
|
|
|
|
|
phoneme ph
|
|
import_phoneme consonants/ph
|
|
endphoneme
|
|
|
|
|
|
phoneme b // this is [b]
|
|
import_phoneme base/b
|
|
endphoneme
|
|
|
|
|
|
phoneme bh
|
|
vcd blb stop
|
|
lengthmod 5
|
|
voicingswitch ph
|
|
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80
|
|
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
|
|
|
|
IF PreVoicing THEN
|
|
FMT(b/xb)
|
|
ENDIF
|
|
|
|
FMT( b/b@2) addWav(ustop/p_asp, 70)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
// dental plosives
|
|
//==================
|
|
|
|
phoneme t // dental variant of /t/
|
|
import_phoneme base/t[
|
|
voicingswitch d
|
|
endphoneme
|
|
|
|
|
|
phoneme th // dental variant of /t/
|
|
vls dnt stop
|
|
lengthmod 2
|
|
voicingswitch d
|
|
Vowelin f1=0 f2=1500 -300 300 f3=-100 80 amp=16
|
|
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
|
IF nextPh(isPause2) THEN
|
|
WAV(ustop/t_dnt, 35)
|
|
ENDIF
|
|
WAV(ustop/t_dnt, 50)
|
|
endphoneme
|
|
|
|
|
|
phoneme d // dental variant of /d/
|
|
import_phoneme base/d[
|
|
voicingswitch t
|
|
endphoneme
|
|
|
|
|
|
phoneme dh
|
|
vcd dnt stop
|
|
lengthmod 5
|
|
voicingswitch th
|
|
Vowelin f1=0 f2=1500 -300 300 f3=-100 80
|
|
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
|
|
|
IF PreVoicing THEN
|
|
FMT(d/xd)
|
|
ENDIF
|
|
|
|
FMT(d/xd3) addWav(ustop/t_dnt, 40)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
// retroflex plosives
|
|
//===================
|
|
|
|
phoneme t.
|
|
vls rfx stop
|
|
lengthmod 2
|
|
ipa ʈ
|
|
voicingswitch d.
|
|
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
|
|
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
|
|
WAV(ustop/t_short)
|
|
endphoneme
|
|
|
|
phoneme th.
|
|
vls rfx stop
|
|
lengthmod 2
|
|
ipa ʈh
|
|
voicingswitch dh.
|
|
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
|
|
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
|
|
// WAV(ustop/th_rfx)
|
|
WAV(ustop/t)
|
|
endphoneme
|
|
|
|
phoneme d.
|
|
vcd rfx stop
|
|
lengthmod 5
|
|
voicingswitch t.
|
|
ipa ɖ
|
|
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
|
|
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
|
|
|
|
IF PreVoicing THEN
|
|
FMT(d/xd)
|
|
ENDIF
|
|
|
|
IF nextPh(isPause2) THEN
|
|
FMT(d/d_) addWav(x/d_)
|
|
ENDIF
|
|
|
|
FMT(d/dr) addWav(x/d)
|
|
endphoneme
|
|
|
|
|
|
phoneme dh.
|
|
vcd rfx stop
|
|
lengthmod 5
|
|
ipa ɖh
|
|
voicingswitch th.
|
|
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
|
|
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2
|
|
|
|
IF PreVoicing THEN
|
|
FMT(d/xd)
|
|
ENDIF
|
|
|
|
FMT(d/dr) addWav(ustop/t)
|
|
// FMT(d/dr) addWav(ustop/th_rfx)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
// palatal plosives
|
|
//=================
|
|
|
|
// also try [tS] and [dZ]
|
|
|
|
phoneme c
|
|
import_phoneme base/c
|
|
endphoneme
|
|
|
|
|
|
phoneme ch
|
|
CALL base/tS;
|
|
ipa ch
|
|
endphoneme
|
|
|
|
|
|
phoneme J
|
|
import_phoneme base/J
|
|
endphoneme
|
|
|
|
|
|
phoneme Jh
|
|
vcd pal afr sibilant
|
|
lengthmod 5
|
|
voicingswitch ch
|
|
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
|
|
Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1
|
|
|
|
IF PreVoicing THEN
|
|
FMT(dzh/xdz_pzd)
|
|
ENDIF
|
|
|
|
FMT(dzh/xdz_pzd) addWav(ustop/ts_pzd)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
|
|
// velar plosives
|
|
//==================
|
|
|
|
|
|
phoneme k
|
|
import_phoneme consonants/k-
|
|
voicingswitch g
|
|
endphoneme
|
|
|
|
phoneme kh
|
|
import_phoneme consonants/kh
|
|
voicingswitch gh
|
|
endphoneme
|
|
|
|
|
|
phoneme g
|
|
import_phoneme base/g
|
|
voicingswitch k
|
|
endphoneme
|
|
|
|
|
|
phoneme gh
|
|
vcd dnt stop
|
|
lengthmod 5
|
|
voicingswitch kh
|
|
Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
|
|
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
|
|
|
|
IF PreVoicing THEN
|
|
FMT(g2/xg)
|
|
ENDIF
|
|
|
|
IF nextPh(isPause2) THEN
|
|
FMT(g2/xg) addWav(ustop/k_asp, 35)
|
|
ENDIF
|
|
FMT(g2/xg) addWav(ustop/k_asp, 50)
|
|
endphoneme
|
|
|
|
//================
|
|
|
|
phoneme #X2 // click, use for indicating combining long vowels
|
|
vls alv frc sibilant
|
|
lengthmod 3
|
|
WAV(ustop/percus02, 60)
|
|
endphoneme
|
|
|
|
|