Files
espeak-ng/phsource/ph_malayalam
T
jonsd b84ec8a609 [1.47.10a]
Lang=sl, set open/close 'e' and 'o' from syllable stress.
Lang=tr, fix 'r'.
Lang=te, ml:  change [t.#] [d.#]
Lang=hi, change [d.#]


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@356 d46cf337-b52f-0410-862d-fd96e6ae7743
2013-05-03 11:04:19 +00:00

280 lines
4.3 KiB
Plaintext

// Phonemes for Malayalam
// This inherits from ph_hindi
phoneme @
vowel starttype #@ endtype #@
length 130
FMT(vowel/@_low)
endphoneme
phoneme y // epenthetic vowel
vowel starttype #@ endtype #@
unstressed
ipa ɨ
length 80
FMT(vowel/u#_4, 80)
endphoneme
phoneme a
vowel starttype #a endtype #a
ipa ɐ
length 130
IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN
FMT(vowel/a#_4)
ELSE
ChangeIfUnstressed(@)
IF nextPh(m) AND nextPh(isWordEnd) THEN
ChangePhoneme(@)
ENDIF
FMT(vowel/a#_3)
ENDIF
endphoneme
phoneme a# // don't reduce to [@]
vowel starttype #a endtype #a
ChangePhoneme(a)
endphoneme
phoneme a:
vowel long starttype #a endtype #a
length 300
FMT(vowel/a_5)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 130
FMT(vowel/e)
endphoneme
phoneme e:
vowel long starttype #e endtype #e
length 270
FMT(vowel/e)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 130
FMT(vowel/i_6)
endphoneme
phoneme I
vowel starttype #i endtype #i
length 130
FMT(vowel/ii)
endphoneme
phoneme i:
vowel long starttype #i endtype #i
length 270
FMT(vowel/i)
endphoneme
phoneme o
vowel starttype #o endtype #o
length 130
FMT(vowel/o)
endphoneme
phoneme o:
vowel long starttype #o endtype #o
length 300
FMT(vowel/o)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 110
FMT(vowel/u)
endphoneme
phoneme u:
vowel long starttype #u endtype #u
length 280
FMT(vowel/u)
endphoneme
phoneme aI
vowel long starttype #a endtype #i
length 280
FMT(vdiph/ai)
endphoneme
phoneme aU
vowel long starttype #a endtype #u
length 270
FMT(vdiph/aau_3)
endphoneme
// ?? This is standard [v]. Should be it [v] without the fricative noise?
phoneme v
import_phoneme base/v
endphoneme
phoneme r
import_phoneme base/**
endphoneme
phoneme R
import_phoneme base/R2
endphoneme
phoneme d2 // 'rr' sounds like English 'd'
import_phoneme base/d
endphoneme
// Aspirated voice stops, sound like aspirated unvoiced stops ?
phoneme b#
vls blb stop prevoice
lengthmod 2
voicingswitch b
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
IF prevPhW(isVowel) THEN
FMT(b/xb)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF
IF nextPh(isPause2) THEN
WAV(ustop/p_)
ENDIF
IF nextPh(l) THEN
WAV(ustop/pl)
ENDIF
WAV(ustop/p_asp)
endphoneme
phoneme d#
vls dnt stop prevoice
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 PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(d/xd)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF
IF nextPh(isPause2) THEN
WAV(ustop/t_dnt, 35)
ENDIF
WAV(ustop/t_dnt, 50)
endphoneme
phoneme t.#
vls rfx stop
lengthmod 2
ipa ʈU+02B0
voicingswitch d.#
Vowelin f1=0 f2=1800 -300 300 f3=-200 80
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
IF nextPhW(t.#) THEN
ChangePhoneme(t.)
ENDIF
WAV(ustop/th_rfx2, 80)
endphoneme
phoneme d.#
vls rfx stop prevoice
lengthmod 2
ipa ʈU+02B0
Vowelin f1=0 f2=1800 -300 300 f3=-200 80
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
IF PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(d/xdr)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF
voicingswitch d.#
WAV(ustop/th_rfx2, 80)
endphoneme
phoneme J#
vls pal afr sibilant palatal prevoice
voicingswitch c#
lengthmod 2
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
IF PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(dzh/xdz_pzd)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF
IF nextPh(isPause2) THEN
WAV(ustop/ts_pzd)
ENDIF
WAV(ustop/ts_pzd)
endphoneme
phoneme g#
vls vel stop prevoice
lengthmod 2
Vowelin f1=1 f2=1400 -100 100 f3=-150 80
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20
IF PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(g/xg)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF
IF nextPh(isPause2) THEN
WAV(ustop/k_asp, 40)
ENDIF
IF nextPhW(#e) OR nextPhW(#i) THEN
WAV(ustop/k_asp_e, 40)
ELIF nextPhW(#o) OR nextPhW(#u) THEN
WAV(ustop/k_asp_a, 25)
ELSE
WAV(ustop/k_asp_a, 30)
ENDIF
endphoneme