Files
espeak-ng/phsource/ph_hindi
T
jonsd fc0bd7fe79 [1.44.42]
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
2011-03-13 13:30:04 +00:00

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